Смена скорости COM-порта на ходу

331
07 июня 2017, 04:05

Необходимость смены скорости на ходу возникла из-за требований к обратной совместимости системы. Контроллер работает на скорости 9600, и особый пакет, отправляемый клиентским приложением, переводит его на скорость 128000. Вот код клиентского приложения (прошу относиться к нему как к псевдокоду, пишу по памяти).

m_port.write(modePacket);
m_port.waitForBytesWritten(500);
QThread::msleep(10);
m_port.setBaudRate(128000);
m_port.waitForReadyRead(500);
m_port.readAll();

Вот код обработки пакета контроллером:

void handleModePacket(int mode)
{
    if (mode == 1) 
        UartInit128000();
    else 
        UartInit9600();
    DelayMS(10);
    SendResponce();
}

Собственно, я не хотел бы здесь описывать, что именно не работает в этом коде. Я бы хотел услышать, какие подводные камни могут возникнуть в таком подходе. Можно ли вообще менять скорость таким образом?

READ ALSO
Сборка проекта Qt компилятором Intel C++ Compiler

Сборка проекта Qt компилятором Intel C++ Compiler

Здравствуйте! Имеется Qt 55

421
Jquery-ползунок с маркером

Jquery-ползунок с маркером

Подскажите, как добавить маркер к jqueryslider ?

359
responseText (AJAX) [требует правки]

responseText (AJAX) [требует правки]

Как запрашивать у файла не весь код, а только одну переменную? К примеру, нужно взять переменную $text из файлаНо responseText берет весь текст

290
Jquery Sortable. “Захватить” элемент по клику

Jquery Sortable. “Захватить” элемент по клику

Реализовано простое перемещение путем drag&drop - https://jsfiddlenet/dfx1cqmp/

332