C: cross-platform RS-232 serial library? [closed]

↘锁芯ラ 提交于 2019-11-28 18:42:50

You would think that a cross-platform C library for serial ports is something that would have existed for 20 years already, but as of 2013 there still wasn't one, so I created libserialport.

It is tested on Windows, Mac OS X, Linux (including Android), BSD and will probably build on other Unix systems also. It supports:

  • Port enumeration (obtaining a list of serial ports on the system)
  • Opening, closing and querying ports
  • Setting port parameters (baud rate, parity, etc.)
  • Port signalling operations (modem control lines, breaks, etc.)
  • Reading, writing, and flushing data
  • Waiting for events
  • Obtaining error information

The initial 0.1.0 release is in active use by the Sigrok project for supporting serial hardware and is packaged in several Linux distributions already. The git version also includes new API calls for getting information about USB serial adapters (VID/PID etc).

Mark Rushakoff

I realize that you said C and not C++, but perhaps you could use Boost Asio's serial ports and compile that into a library to be linked with your C application. It claims to be POSIX compatible, and OS X is POSIX.

wjwwood

This is a shameless plug, but I have a MIT licensed library for RS-232 communication which is portable to Windows and Linux and OS X here:

http://wjwwood.io/serial/

Frédéric

I released mine under the MIT license: https://github.com/Marzac/rs232

It is programmed in C and works well for Windows, Mac and Linux.

OS X supports the standard POSIX serial API, from <termios.h> and <unistd.h>. Look up the functions tcsetattr(), cfsetspeed() and so on.

trivvo

Get some additional OS X-specific Objective-C code along the lines of AMSerialPort, goSerial, serialconnect, PolKit, ... and implement a conditional compilation of your C source file.

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!