boost :: asio :: serial_port和RTS引脚

时间:2015-02-12 23:19:05

标签: c++ boost serial-port boost-asio

我想通过使用c ++程序来控制仪器操作。

如何使用boost asio库将RTS引脚设置为逻辑真或逻辑假?这适用于RS-232串口。

1 个答案:

答案 0 :(得分:1)

我最终使用windows api(特定于操作系统)方法来解决我的问题。

#include <iostream>

#include <cstdlib>
#include <string>
#include <windows.h>

namespace comm{

class rs232
{
  const HANDLE commDevice;
  const DWORD clear_RTS = 4;
  const DWORD set_RTS = 3;

public:
  rs232( HANDLE commDeviceIn ): commDevice(commDeviceIn)  {}
  rs232( std::string commName )
      : commDevice(CreateFileA(commName.data(),
                               GENERIC_READ | GENERIC_WRITE,
                               0,
                               0,
                               OPEN_EXISTING,
                               FILE_FLAG_OVERLAPPED,
                               0))  {}

  void send_RTS_signal( void ) {
      EscapeCommFunction( commDevice, set_RTS );
  }
  void clear_RTS_signal( void ) {
      EscapeCommFunction( commDevice, clear_RTS );
  }
};

}