每行读取一行并使用boost :: asio :::写入串行端口设备

时间:2019-03-04 10:23:27

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

我想做什么:

  1. 加载并读取文件中的行
  2. 写入串行端口

问题: 需要等待时间,否则数据发送太快,并且董事会无法一一处理消息。

我的代码段:

//class.cpp
while (!file.atEnd())
    {
        std::string str = file.readLine();
        QString qstr = QString::fromStdString(str);
        writeTextToMessageLog("PRINTF: " + qstr);

        sendCommand(str, str.c_str(), str.size());

        // THE STRAIGHTFORWARD WAY WITH SLEEP
        Sleep(100);
    }     

    void class::sendCommand(const std::string str, const char *buf, const int &size)
{
    size_t bytes = boost::asio::write(m_portConfig, boost::asio::buffer(buf, size));
}

基本上就是这样。我使用SLEEP函数解决了该问题,但是我希望有一种更好的方法在硬件发送信号或某物后开始写新行。有这样的东西吗?

0 个答案:

没有答案