Я пишу тестовую программу, которая требует доступа к последовательному порту. Я делаю это в Visual Studio 2012 сейчас, но я хочу портировать на Linux позже. (Для использования в моем Pandaboard)
Можете ли вы предложить мне способ доступа к последовательному порту, который имеет почти такой же интерфейс между Win & Linux?
Раньше я делал это в Labview, но теперь я хочу обратиться к C ++
Спасибо большое за вашу помощь!
Boost.Asio хорошо документирован, хорошо протестирован, проверен тысячами людей и полностью поддерживает связь через последовательный порт на кроссплатформенной основе. Конкретную документацию можно найти Вот.
Тем не менее, он предполагает умеренный уровень квалификации в современном C ++, поэтому, если вы новичок в языке, то кривая обучения может быть немного крутой.
В интерфейсе последовательного порта нет ничего особенного … вы должны быть в состоянии обернуть все детали реализации под ним.
class ISerialPort
{
public:
void open(const std::string &serialPortName) = 0;
void close() = 0;
void write(const vector<char> &data) = 0;
vector<char> read(size_t bytesToRead) = 0;
}
Хотя это не очень «интерфейс», поскольку это общий заголовок, который будут реализовывать две разные платформы.
Редактировать:
Доступ к последовательным портам в Linux осуществляется путем открытия узлов устройства. Например, / dev / ttyS0 (последовательный порт 0). В Windows вы делаете то же самое, но вместо открытия узла устройства вы открываете файл (COM-порт). Таких как COM1.
В Linux вы погружаетесь в проблемы, зависящие от платформы, такие как открытие узлов устройства. В Linux будут открываться файлы (COM-порты).
Google c ++ Windows / Linux последовательный порт и вернемся с более конкретным вопросом. Вы только что спросили об интерфейсе;)