2015-10-20 5 views
0

Я хотел бы читать/записывать данные из/в последовательный порт в C++, но я хотел бы иметь мой код как можно более портативный. В настоящее время я работаю над средой окна и использую только функцию std (windows.h никогда не было # include'ed). Есть ли какой-либо портативный, правильный (т. Е. Не #ifdef, not boost) способ интерфейса последовательного порта?Стандартная библиотека C++ Интерфейс последовательного порта (UART)

Предполагая, что ответ на это не так, есть ли какой-либо прочный пакет, который может выполнить эту (основную) задачу?

Благодаря

ответ

6

Стандарт C (++) библиотеки не предоставляют специализированный интерфейс для последовательного порта. Тем не менее вы используете , используя общий ввод-вывод (например, <iostream>), учитывая, что ваша операционная система поддерживает доступ к файлу на основе файлов. Это относится к Unix/Linux через обычные файлы в /dev/tty... и Windows через зарезервированные имена устройств COM1 и т. Д.

Чтобы установить и получить параметры порта (скорость передачи данных и т. Д.), Вам все равно необходимо использовать платформу API. Вероятно, это будет Winapi для Windows (https://msdn.microsoft.com/en-us/library/ff802693.aspx) и может быть termios для Linux (обратите внимание, что в Linux существует несколько интерфейсов, termios стандартизован в POSIX).

В качестве портативной библиотеки Qt предоставляет класс QSerialPort, например.

Смежные вопросы