У меня есть программа, использующая Boost Asio, и я хочу обновить эту программу с Boost 1.64 до 1.84. Программа использует один io_context в одном потоке. После запуска регистрируются 2 posix::basic_stream_descriptor, один boost::asio::serial_port и несколько boost::asio::ip::tcp::sockets.
Программа структурирована следующим образом: я запускаю вызовы async_read_some для объектов, созданных выше, затем вызываю метод io_context::run(). Если данные поступают в какой-либо TCP-сокет или дескриптор потока, в программе выполняется действие через цепочку асинхронных обработчиков. Я всегда перезапускаю асинхронное чтение после получения запроса, поэтому io_context всегда должен работать и не останавливается.
Моя проблема в том, что связь через последовательный порт не работает должным образом в моей программе под версией Boost 1.84.
Когда я отправляю сообщение последовательному устройству с помощью async_write_some, я не получаю какую-то часть или весь ответ (даже с длительным таймаутом). Я использую несколько async_read_some, позже я попробовал один async_read_until.
Если я использую макрос BOOST_ASIO_DISABLE_EPOLL при сборке, связь через последовательный порт работает нормально, как и в Boost 1.64.
Я создал отдельную небольшую программу, которая содержит только связь через последовательный порт, написанную с помощью Boost Asio. Однако эта небольшая программа работает нормально даже без макроса BOOST_ASIO_DISABLE_EPOLL.
Мой вопрос: в чем может быть корень проблемы, где искать причину ошибки?
Заранее спасибо.
Примечание 1. Это кросс-скомпилированная программа, в которой старая программа, использующая Boost 1.64, работала на устройстве с ядром Linux. 4.9 (32-разрядная версия), а новая версия Boost 1.84 должна работать на ядре Linux 6.6 (64-разрядная версия).
Подробнее здесь: https://stackoverflow.com/questions/799 ... oost-versi
Проблема связи последовательного порта Boost asio при обновлении до более новой версии Boost ⇐ C++
Программы на C++. Форум разработчиков
1772798901
Anonymous
У меня есть программа, использующая Boost Asio, и я хочу обновить эту программу с Boost 1.64 до 1.84. Программа использует один io_context в одном потоке. После запуска регистрируются 2 posix::basic_stream_descriptor, один boost::asio::serial_port и несколько boost::asio::ip::tcp::sockets.
Программа структурирована следующим образом: я запускаю вызовы async_read_some для объектов, созданных выше, затем вызываю метод io_context::run(). Если данные поступают в какой-либо TCP-сокет или дескриптор потока, в программе выполняется действие через цепочку асинхронных обработчиков. Я всегда перезапускаю асинхронное чтение после получения запроса, поэтому io_context всегда должен работать и не останавливается.
Моя проблема в том, что связь через последовательный порт не работает должным образом в моей программе под версией Boost 1.84.
Когда я отправляю сообщение последовательному устройству с помощью async_write_some, я не получаю какую-то часть или весь ответ (даже с длительным таймаутом). Я использую несколько async_read_some, позже я попробовал один async_read_until.
Если я использую макрос BOOST_ASIO_DISABLE_EPOLL при сборке, связь через последовательный порт работает нормально, как и в Boost 1.64.
Я создал отдельную небольшую программу, которая содержит только связь через последовательный порт, написанную с помощью Boost Asio. Однако эта небольшая программа работает нормально даже без макроса BOOST_ASIO_DISABLE_EPOLL.
Мой вопрос: в чем может быть корень проблемы, где искать причину ошибки?
Заранее спасибо.
Примечание 1. Это кросс-скомпилированная программа, в которой старая программа, использующая Boost 1.64, работала на устройстве с ядром Linux. 4.9 (32-разрядная версия), а новая версия Boost 1.84 должна работать на ядре Linux 6.6 (64-разрядная версия).
Подробнее здесь: [url]https://stackoverflow.com/questions/79902262/boost-asio-serial-port-communication-problem-when-upgrading-to-newer-boost-versi[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия