C: Кроссплатформенная последовательная библиотека RS-232? [закрыто
-
24-10-2019 - |
Вопрос
Я ищу кроссплатформенную библиотеку с открытым исходным кодом для работы с последовательным портом в C, что-то вроде Awesome Писсериальный Библиотека (к сожалению, я должен использовать C для этого приложения).
Я только нашел это: http://www.teuniz.net/rs-232/, и это, похоже, не упоминает совместимость OS X.
Решение
Вы могли бы подумать, что кроссплатформенная библиотека C для последовательных портов-это то, что существовало бы уже в течение 20 лет, но с 2013 года все еще не было, поэтому я создал Libserialport.
Он тестируется в Windows, Mac OS X, Linux (включая Android), BSD и, вероятно, будет построить также на других системах UNIX. Он поддерживает:
- Перечисление порта (получение списка последовательных портов в системе)
- Открытие, закрытие и запросы портов
- Установка параметров порта (скорость передачи, паритет и т. Д.)
- Операции передачи сигналов порта (линии управления модемом, разрывы и т. Д.)
- Чтение, написание и промывание данных
- В ожидании событий
- Получение информации об ошибке
Начальный выпуск 0,1,0 активно используется Сигрок Проект для поддержки последовательного оборудования и уже упакован в несколько распределений Linux. Версия GIT также включает новые вызовы API для получения информации о серийных адаптерах USB (VID/PID и т. Д.).
Другие советы
Я понимаю, что вы сказали C, а не C ++, но, возможно, вы могли бы использовать Boost Asio's Serial Ports и составьте это в библиотеку, которая будет связана с вашим приложением C. Он утверждает, что является Posix совместимы, а OS X - POSIX.
Это бесстыдный штекер, но у меня есть лицензированная библиотека MIT для связи RS-232, которая портативна для Windows и Linux и OS X здесь:
Я выпустил свою по лицензии MIT: https://github.com/marzac/rs232
Он запрограммирован в C и хорошо работает для Windows, Mac и Linux.
OS X поддерживает стандартный серийный API POSIX, от <termios.h>
а также <unistd.h>
. Анкет Посмотрите функции tcsetattr()
, cfsetspeed()
и так далее.
Получите дополнительный OS X-специфический код Objective-C в соответствии с линиями Amserialport, Goserial, SerialConnect, Polkit, ... и реализуйте условное компиляцию вашего исходного файла C.