Проблемы при чтении каждой строки и записи с boost :: asio :: write в устройство с последовательным портом - PullRequest
0 голосов
/ 04 марта 2019

Что я пытаюсь сделать:

  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, но я хочу лучше написать новую строку после того, как мое оборудование отправит сигнал или что-то в этом роде.Есть ли что-то подобное?

...