c++ - Boost Asio serial_port - 需要 io 帮助

标签 c++ boost

所以我一直在尝试学习 boost::asio 的东西,以便使用 RS232 与串行设备进行通信。文档很少,示例也不存在。无法弄清楚如何与设备进行通信。该设备无法发送数据,所以我需要做的就是编写,但其他项目需要实际的来回通信,因此将不胜感激。到目前为止我的代码如下。

#include <boost/asio/serial_port.hpp>
using namespace::boost::asio;

int main()
{
    io_service io;
    serial_port port( io, "COM3" );
    port.set_option( serial_port_base::baud_rate( 19200 ) );

    unsigned char commands[4] = { 1, 128, 240, 0 };

    // write the commands to the device

    return 0;
}

简而言之:需要有关 serial_port 的 io 部分的帮助。

最佳答案

除了波特率,您可能还需要设置其他选项,例如:character_size、flow_control、parity 和 stop_bits。要将数据写入串行端口,您可以执行以下操作:

boost::asio::write(port, boost::asio::buffer(commands, 4));

库对缓冲区类型的接受非常灵活,您可能希望在此处进一步了解该主题:Buffers .

关于c++ - Boost Asio serial_port - 需要 io 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/267752/

相关文章:

java - 通过 Socket 发送的图像流 - 服务器死锁问题

c++ - 使用 'magic numbers' 保卫类(class)

c++ - intrusive_ptr 使用基类进行引用计数并包含循环 hell

boost - Google mock 不能使用 std::vector 的 boost::variant 编译

c++ - boost::array of boost::reference_wrapper 未编译

c++ - 修改排序数组还是每次都对数组排序?

c++ - 在能够从另一个线程添加元素的同时迭代列表时如何最小化互斥锁?

c++ - unordered_map 复杂度

c++ - `boost::signals2` 中的信号签名是如何实现的?

c++ - 如何正确关闭 asio tcp 服务器?