Лучший способ справиться с COM-портами для кроссплатформенной программы? - PullRequest
0 голосов
/ 13 июля 2010

Я пишу приложение, которое должно отправить данные на последовательное устройство, подключенное к COM-порту.Я не понимаю, как лучше всего справиться с таким устройством?

Должен ли я написать модуль связи на C ++ или мне следует написать на Java?приложение на Windows, а также Linux.

Ответы [ 6 ]

3 голосов
/ 13 июля 2010

Я рекомендую вам:

Повышение ASIO

QextSerialPort (на основе Qt)

3 голосов
/ 13 июля 2010

В Linux я бы порекомендовал libserial .Вы также можете рассмотреть возможность использования Python.Существует мультиплатформенный модуль pySerial .Если вы решили использовать Java, rxtx - это многоплатформенная библиотека.В Windows вы можете использовать Windows API для последовательной связи и объединить его с libserial, используя #ifndef, как предложено @Dharma.

2 голосов
/ 13 июля 2010

Вы можете написать модуль на c ++, указав #ifndef "_WINDOWS_CODE" для кода Windows и еще часть для кода Linux.

при компиляции в Vc ++ поместите макросы (_WINDOWS_CODE) в настройки проекта ив gc ++ удалить макрос из файла проекта

1 голос
/ 13 июля 2010

COM-порт - просто битовая труба. Ожидается, что API будут довольно простыми. В C ++ у мира гораздо больше опыта записи в порты.

Другой вопрос - вы знаете, какой это номер порта? Есть несколько способов выяснить, какой из них ваш, например, настроить API для Windows.

0 голосов
/ 13 июля 2010

Должен ли я написать модуль связи на C ++ или я должен написать это на JAVA?

С чем вы больше знакомы?Вы ограничены этими двумя языками?Вы также можете использовать python с pyserial.

Вы делаете это как личный проект?Это для работы?Кто-то еще работает над этим с вами?С чем они более знакомы?

Для C ++ вы можете использовать Boost.Asio .

Для Java ... Я не знаю.

0 голосов
/ 13 июля 2010

Мое предложение, если вы хотите запустить приложение в Linux и Windows, перейдите на JAVA !. Вы можете запустить свою программу без необходимости компиляции. в противном случае вам придется распространять отдельный двоичный файл как для Windows, так и для Linux.

Также программирование в Windows и Linux для доступа к SerialPort в C ++. Поскольку я предварительно являюсь разработчиком Windows C ++, вы можете использовать CreateFile WIn32 Api для доступа к последовательному порту.

...