Я общаюсь с устройством через последовательный порт, используя Ubuntu. Все сообщения должны быть шестнадцатеричными значениями. Я протестировал настройку связи с помощью термита в среде Windows и получил ожидаемые ответы. Однако я не могу получить никаких ответов при использовании Boost: asio.
Вот как я настраиваю свой последовательный порт:
boost::asio::serial_port serialPort;
serialPort.open(portNumber);
serialPort.set_option(boost::asio::serial_port_base::baud_rate(baudRate));
serialPort.set_option(boost::asio::serial_port_base::character_size(8));
serialPort.set_option(boost::asio::serial_port_base::stop_bits(boost::asio::serial_port_base::stop_bits::one));
serialPort.set_option(boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::none));
serialPort.set_option(boost::asio::serial_port_base::flow_control(boost::asio::serial_port_base::flow_control::none));
uint8_t hexValue = message.at(i) >= 'A' ? (message.at(i) - 'A' + 10) : message.at(i) - '0';
serialPort.write_some(boost::asio::buffer(&hexValue, sizeof(uint8_t)));
Итак, мне нужно что-то настроить в ASIO, чтобы он отправлял правильно?