Использование Boost.Asio с другими последовательными устройствами, такими как SPI

Boost.Asio использует Proactor для великолепной обработки ввода-вывода, используя один поток. Я использовал его с розетками, и мне это нравится. Я вижу, что есть способ использовать io_service Boost.Asio (и базовый Proactor) с последовательными портами (устройства COMX в Windows и / dev / ttyXXX в Linux) вместо сокетов. На самом деле, я думаю, что Boost.Asio предназначен для использования с любым типом ввода-вывода, включая дескриптор файла и так далее.

Мне интересно, могу ли я использовать его напрямую, из коробки, для любых последовательных устройств, таких как SPI или же I2C. Эти виды последовательных устройств появляются как / dev / spi в Linux.

Например, могу ли я использовать это так:

boost::asio::io_service my_io_service;
boost::asio::serial_port my_spi_serial_port("/dev/spi0", my_io_service);

и автоматически, он работает так же, как обычный последовательный порт (то есть RS232)?

В качестве альтернативы, если SPI напрямую не поддерживается Boost.Asio, предлагает ли последний способ легко включить поддержку любого другого типа устройства без изменения основного кода Boost.Asio?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]