2010-06-04 2 views
14

Я ищу библиотеку с открытым исходным кодом для совместной работы с последовательным портом на C, что-то похожее на грандиозную библиотеку PySerial (к сожалению, я должен использовать C для этого приложения).C: межплатформенная последовательная библиотека RS-232?

Я нашел только одно: http://www.teuniz.net/RS-232/, и это, кажется, не упоминает ОС   X совместимость.

ответ

25

Можно было бы подумать, что крест -платформенная библиотека C для последовательных портов - это то, что существовало бы уже 20 лет, но с 2013 года все еще не было, поэтому я создал libserialport.

Он протестирован на Windows, Mac OS X, Linux (включая Android), BSD и, вероятно, будет работать и на других Unix-системах. Он поддерживает:

  • Port перечисление (получение списка последовательных портов в системе)
  • Открытие, закрытие и запрашивающие портов
  • Настройка параметров порта (скорость, четность и т.д.)
  • Порт сигнализации операций (линии управления модемом, разрывы и т.д.)
  • чтения, записи и промывочных данных
  • Ожидание событий
  • Получение ошибки Информатио n

Начальная версия 0.1.0 активно используется проектом Sigrok для поддержки серийного оборудования и уже упакована в нескольких дистрибутивах Linux. Версия git также включает новые вызовы API для получения информации о последовательных USB-адаптерах (VID/PID и т. Д.).

+3

Отлично, за исключением лицензии gnu – jjxtra

+0

Лицензия LGPL.Мы приняли это решение специально, чтобы его можно было использовать и в проектах с закрытыми исходными кодами. –

5

Я понимаю, что вы сказали C, а не C++, но, возможно, вы могли бы использовать Boost Asio's serial ports и скомпилировать его в библиотеку, связанную с вашим приложением C. Он утверждает, что совместим с POSIX, а OS   X - это POSIX.

+0

Спасибо за предложение. – Hamza

3

Получить дополнительную ОС   X-специфический код Objective-C по строкам AMSerialPort, goSerial, serialconnect, PolKit, ... и реализовать условную компиляцию исходного файла C.

http://osx.hyperjeff.net/Apps/apps?f=serial

+0

Спасибо за предложение, но я хотел бы сохранить его только C. – Hamza

2

OS X поддерживает стандарт POSIX API, последовательный из <termios.h> и <unistd.h>. Посмотрите функции tcsetattr(), cfsetspeed() и так далее.

6

Это бесстыдная вилка, но у меня есть лицензионная библиотека MIT для RS-232, который является портативным для Windows, и Linux и OS   X здесь:

http://wjwwood.io/serial/

2

Я выпустил мину под лицензией MIT: https://github.com/Marzac/rs232

Он запрограммирован в C и хорошо работает для Windows, Mac и Linux.

+0

Действительно приятно и чисто. –

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

  • Нет связанных вопросов^_^