Как программировать последовательные порты в Visual Studio C ++, переносимой между Windows и Amp; линукс?

Я пишу тестовую программу, которая требует доступа к последовательному порту. Я делаю это в Visual Studio 2012 сейчас, но я хочу портировать на Linux позже. (Для использования в моем Pandaboard)
Можете ли вы предложить мне способ доступа к последовательному порту, который имеет почти такой же интерфейс между Win & Linux?
Раньше я делал это в Labview, но теперь я хочу обратиться к C ++

Спасибо большое за вашу помощь!

0

Решение

Boost.Asio хорошо документирован, хорошо протестирован, проверен тысячами людей и полностью поддерживает связь через последовательный порт на кроссплатформенной основе. Конкретную документацию можно найти Вот.

Тем не менее, он предполагает умеренный уровень квалификации в современном C ++, поэтому, если вы новичок в языке, то кривая обучения может быть немного крутой.

3

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

В интерфейсе последовательного порта нет ничего особенного … вы должны быть в состоянии обернуть все детали реализации под ним.

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 последовательный порт и вернемся с более конкретным вопросом. Вы только что спросили об интерфейсе;)

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector