/
pi_coder
/
ByteMachine
Обзор
Документация
Войти
/
pi_coder
/
ByteMachine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/nodes/com_port_packet_modes.cpp
82 строки
3 KB
pimenov-and
Перенос функциональности из старого проекта, в основном это описания узлов
19 июл 2026, 20:13
19 июл 2026, 20:13
cb3c51b
Код
Авторство
О чём код?
//////////////////////////////////////////////////////////////// // ByteMachine // Режимы разбора пакетов COM-порта //////////////////////////////////////////////////////////////// #include "com_port_packet_modes.h" #include <QMap> #include <QObject> //============================================================== // Конвертация режима разбора пакетов COM-порта в строку //============================================================== QString comPortPacketModeToStr(ComPortPacketModes mode) { const QMap<ComPortPacketModes, QString> map { {ComPortPacketModes::Raw, "Raw"}, {ComPortPacketModes::TextDelimiter, "TextDelimiter"}, {ComPortPacketModes::FixedSize, "FixedSize"}, {ComPortPacketModes::Timeout, "Timeout"}, {ComPortPacketModes::LenghtPrefix, "LenghtPrefix"} }; return map.value(mode, "Unknown"); } //============================================================== // Конвертация режима разбора пакетов COM-порта в строку с учётом перевода //============================================================== QString comPortPacketModeToStrTr(ComPortPacketModes mode) { const QMap<ComPortPacketModes, QString> map { {ComPortPacketModes::Raw, QObject::tr("Raw")}, {ComPortPacketModes::TextDelimiter, QObject::tr("TextDelimiter")}, {ComPortPacketModes::FixedSize, QObject::tr("FixedSize")}, {ComPortPacketModes::Timeout, QObject::tr("Timeout")}, {ComPortPacketModes::LenghtPrefix, QObject::tr("LenghtPrefix")} }; return map.value(mode, QObject::tr("Unknown")); } //============================================================== // Перевод строки в режим разбора пакетов COM-порта //============================================================== ComPortPacketModes strToComPortPacket(const QString &str) { const QMap<QString, ComPortPacketModes> map { {"Raw", ComPortPacketModes::Raw}, {"TextDelimiter", ComPortPacketModes::TextDelimiter}, {"FixedSize", ComPortPacketModes::FixedSize}, {"Timeout", ComPortPacketModes::Timeout}, {"LenghtPrefix", ComPortPacketModes::LenghtPrefix} }; return map.value(str, ComPortPacketModes::Unknown); } //============================================================== // Получение списка режимов разбора пакетов COM-порта //============================================================== QVector<ComPortPacketModes> comPortPacketModeValues() { return QVector<ComPortPacketModes> { ComPortPacketModes::Unknown, ComPortPacketModes::Raw, ComPortPacketModes::TextDelimiter, ComPortPacketModes::FixedSize, ComPortPacketModes::Timeout, ComPortPacketModes::LenghtPrefix }; } //============================================================== // Проверка корректности режима разбора пакетов COM-порта //============================================================== bool isCorrect(ComPortPacketModes mode) { return comPortPacketModeValues().contains(mode); }