2012-10-22 22 views
2

我发现这个细行代码:如何serial_port FLOW_CONTROL设置为非提振下没有ASIO

serial_port_base :: FLOW_CONTROL FLOW(serial_port_base :: FLOW_CONTROL ::无);现在

,我需要FLOW_CONTROL设置为硬件流控 - 我该怎么办呢?

上有没有文件,到目前为止,我已经很伤心,我不得不使用Windows头文件来解决我的问题,发送一个中断信号。

请告诉我,至少有一种方式来设置,而无需使用Windows头所有串行端口选项。

如果没有办法没有窗户的头,我会在这里坐脏路太多,所以也请张贴脏的例子。

+0

interesetingly这个'提高:: ASIO :: serial_port_base :: FLOW_CONTROL :: hardware'不会产生一个错误,但我有一个很难搞清楚,如果它的工作原理 - 我却断信号仍然会导致的不正确的响应我的设备 - 也许我必须去其他地方看看。 – Jook

+0

对不起,我想我跳过那个枪..你是否将FLOW传递到了插座的某处?看起来你只是在创建这个选项。 – Collin

+0

@collin没有,你没有,我有一个后续行'serialPort.set_option(FLOW);' - 但是,我认为流动选项设置,但这并没有帮助我的主要情况 - 但尽管如此,感谢您的快速帮助 – Jook

回答

2

如果升压文档中检查出的header file itself,你会发现类flow_control

class flow_control 
    { 
    public: 
    enum type { none, software, hardware }; 
    BOOST_ASIO_DECL explicit flow_control(type t = none); 
    type value() const; 
    BOOST_ASIO_DECL boost::system::error_code store(
     BOOST_ASIO_OPTION_STORAGE& storage, 
     boost::system::error_code& ec) const; 
    BOOST_ASIO_DECL boost::system::error_code load(
     const BOOST_ASIO_OPTION_STORAGE& storage, 
     boost::system::error_code& ec); 
    private: 
    type value_; 
    }; 

您应该能够在该函数调用中必须启用硬件流控制使用serial_port_base::flow_control::hardware

+0

感谢这一点,它是一个整体解决方案的解谜信号 - 通过休息信号问题 - 我不得不扩展它与其他选项,以使我的串行端口的声音设置。有点奇怪,这是没有记录,但至少现在有更多的方法来找出它。这篇文章也有帮助:http://stackoverflow.com/questions/267752/boost-asio-serial-port-need-help-with-io – Jook