boost::asio::serial_port 和 RTS 引脚

boost::asio::serial_port and RTS pin

我想用c++程序来控制仪器的运行。

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

我最终使用 windows api(OS 特定)方法来解决我的问题。

#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 );
  }
};

}