Я пытаюсь написать протокол последовательной связи между приложением C ++ и микроконтроллером ESP32. Основная структура использует 1 -байтовые заголовки, указывающая категорию данных, за которыми следуют различные длины данных массива байтов (я хочу кодировать целые числа и в основном плавает). Я проверил сторону ESP32 протокола, используя приложение бинарного терминала, и она имеет ожидаемое поведение, поэтому проблема связана со стороной приложения C ++, которая использует библиотеку Boost Asio (V 1.82.0). Каждый раз, когда я пытаюсь отправлять двоичные данные, используя метод синхронного записи, я получаю ошибку «Ручка недействительна», поэтому я думаю, что основная проблема заключается в том, что я не могу получить данные массива байтов в формат, приемлемый для библиотеки. Я пробовал различные методы передачи данных в функцию записи, включая просто передачу указателя в массив байтов, обертывание в вектор и преобразование в строку C ++, но все они получают одинаковую ошибку. Кроме того, я предполагаю, что чтение данных просто будет включать в себя изменение этого преобразования, но я не уверен. Ниже приведены мои основные методы настройки порта, отправки и получения данных до сих пор. < /P>
bool SerialInterface::begin(const char* port, long baudRate) {
try {
serialPort.open(port);
serialPort.set_option(asio::serial_port_base::baud_rate(baudRate));
serialPort.set_option(asio::serial_port_base::character_size(8));
serialPort.set_option(asio::serial_port_base::parity(asio::serial_port_base::parity::none));
serialPort.set_option(asio::serial_port_base::stop_bits(asio::serial_port_base::stop_bits::one));
serialPort.set_option(asio::serial_port_base::flow_control(asio::serial_port_base::flow_control::none));
}
catch (boost::system::system_error& e) {
cerr
Подробнее здесь: https://stackoverflow.com/questions/794 ... boost-asio
Правильный метод отправки и получения двоичных данных через последовательный порт с Boost Asio? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
AttributeError: модуль «последовательный» не имеет атрибута «последовательный».
Anonymous » » в форуме Python - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-