/
pi_coder
/
ByteMachine
Обзор
Документация
Войти
/
pi_coder
/
ByteMachine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/nodes/com_port_baud_rates.cpp
113 строк
4 KB
pimenov-and
Перенос функциональности из старого проекта, в основном это описания узлов
19 июл 2026, 20:13
19 июл 2026, 20:13
cb3c51b
Код
Авторство
О чём код?
//////////////////////////////////////////////////////////////// // ByteMachine // Частоты COM-порта //////////////////////////////////////////////////////////////// #include "com_port_baud_rates.h" #include <QMap> //============================================================== // Конвертация частоты COM-порта в строку //============================================================== QString comPortBaudRateToStr(ComPortBaudRates baud) { const QMap<ComPortBaudRates, QString> map { {ComPortBaudRates::Baud_1200, "Rate_1200"}, {ComPortBaudRates::Baud_2400, "Rate_2400"}, {ComPortBaudRates::Baud_4800, "Rate_4800"}, {ComPortBaudRates::Baud_9600, "Rate_9600"}, {ComPortBaudRates::Baud_19200, "Rate_19200"}, {ComPortBaudRates::Baud_38400, "Rate_38400"}, {ComPortBaudRates::Baud_57600, "Rate_57600"}, {ComPortBaudRates::Baud_115200, "Rate_115200"} }; return map.value(baud, "Unknown"); } //============================================================== // Конвертация строку в частоту COM-порта //============================================================== ComPortBaudRates comPortBaudRateToStr(const QString &str) { const QMap<QString, ComPortBaudRates> map { {"Rate_1200", ComPortBaudRates::Baud_1200}, {"Rate_2400", ComPortBaudRates::Baud_2400}, {"Rate_4800", ComPortBaudRates::Baud_4800}, {"Rate_9600", ComPortBaudRates::Baud_9600}, {"Rate_19200", ComPortBaudRates::Baud_19200}, {"Rate_38400", ComPortBaudRates::Baud_38400}, {"Rate_57600", ComPortBaudRates::Baud_57600}, {"Rate_115200", ComPortBaudRates::Baud_115200} }; return map.value(str, ComPortBaudRates::Unknown); } //============================================================== // Конвертация числа в частоту COM-порта //============================================================== ComPortBaudRates intToComPortBaudRate(int value) { const ComPortBaudRates rate = static_cast<ComPortBaudRates>(value); return isCorrect(rate) ? rate : ComPortBaudRates::Unknown; } //============================================================== // Конвертация частоты COM-порта в значение //============================================================== QSerialPort::BaudRate comPortBaudRateToQtBaudRate(ComPortBaudRates baud) noexcept { const QMap<ComPortBaudRates, QSerialPort::BaudRate> map { {ComPortBaudRates::Baud_1200, QSerialPort::Baud1200}, {ComPortBaudRates::Baud_2400, QSerialPort::Baud2400}, {ComPortBaudRates::Baud_4800, QSerialPort::Baud4800}, {ComPortBaudRates::Baud_9600, QSerialPort::Baud9600}, {ComPortBaudRates::Baud_19200, QSerialPort::Baud19200}, {ComPortBaudRates::Baud_38400, QSerialPort::Baud38400}, {ComPortBaudRates::Baud_57600, QSerialPort::Baud57600}, {ComPortBaudRates::Baud_115200, QSerialPort::Baud115200} }; return map.value(baud, QSerialPort::Baud9600); } //============================================================== // Получение списка частот COM-порта //============================================================== QVector<ComPortBaudRates> getComPortBaudRates() { return QVector<ComPortBaudRates> { ComPortBaudRates::Unknown, ComPortBaudRates::Baud_1200, ComPortBaudRates::Baud_2400, ComPortBaudRates::Baud_4800, ComPortBaudRates::Baud_9600, ComPortBaudRates::Baud_19200, ComPortBaudRates::Baud_38400, ComPortBaudRates::Baud_57600, ComPortBaudRates::Baud_115200 }; } //============================================================== // Проверка корректности значения типа генерации //============================================================== bool isCorrect(ComPortBaudRates baud) { return getComPortBaudRates().contains(baud); } //============================================================== // Получение количества типов генерации //============================================================== qint32 getComPortBaudRateCount() { static qint32 count = getComPortBaudRates().count(); return count; }