CSerialPort
CSerialPort copied to clipboard
CSerialPort - lightweight cross-platform serial port library for C++/C/C#/Java/Python/Node.js/Electron
CSerialPort
语言:English / 中文
基于C++的轻量级开源跨平台串口类库,可以轻松实现跨平台多操作系统的串口读写
Design Principles 设计原则
- 跨平台
- 简单易用
- 高效
Platform 平台
CSerialPort已经在以下平台做过测试:
- DOS ( x86_64 )
- Windows ( x86_64 )
- Linux ( x86_64, aarch64, mips64el, riscv, s390x, ppc64le )
- macOS ( x86_64 )
- Raspberry Pi ( armv7l )
- FreeBSD ( x86_64 )
- ...
Todo List 待处理事项
Strategic Goal 战略目标
- [x] 1.首先支持windows和linux平台
- [ ] 2.增加通用串口通信协议
- [ ] 3.支持热插拔
- [ ] 4.更高效的通知模块
- [ ] 5.支持其他语言,如C, C#, Python, Java, Golang等
- [x] 6.同步串口通信
- [X] 7.全新的跨平台串口调试助手
- [ ] 8.增加一个类库的介绍和使用视频
- [ ] 9.串口侦听hook
Short-term Goal 短期目标
- [x] 1.跨平台操作系统识别库
- [x] 2.跨平台多线程类库
- [x] 3.跨平台锁类库
- [ ] 4.跨平台高效定时器类库
- [ ] 5.性能测试报告(吞吐量、时延、丢包率)
Last Modify 最新版本
Version: 4.1.1.210903
by itas109 on 2021-09-03
Quick Start 快速开始
$ git clone --depth=1 https://github.com/itas109/CSerialPort.git
$ cd CSerialPort
$ mkdir bin && cd bin
$ cmake ..
$ cmake --build .
运行示例程序(如linux下串口环回测试)
CSerialPort/bin $ ./bin/CSerialPortDemoNoGui
Version : https://github.com/itas109/CSerialPort - V4.1.1.210903
availableFriendlyPorts :
0 - /dev/ttyS0
1 - /dev/pts/0
2 - /dev/pts/1
Please input index of the port(0 - 2 ) :
0
select port name : /dev/ttyS0
open /dev/ttyS0 success
receive data : i, receive size : 1, receive count : 1
receive data : t, receive size : 1, receive count : 2
receive data : a, receive size : 1, receive count : 3
receive data : s, receive size : 1, receive count : 4
receive data : 1, receive size : 1, receive count : 5
receive data : 0, receive size : 1, receive count : 6
receive data : 9, receive size : 1, receive count : 7
receive data : i, receive size : 1, receive count : 8
close serial port when receive count > 7
Cross Compile 交叉编译
- arm on ubuntu 20.04
$ sudo apt-get install g++-arm-linux-gnueabi
$ cd CSerialPort
$ mkdir bin_arm && cd bin_arm
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_arm.cmake
$ cmake --build .
- aarch64 on ubuntu 20.04
$ sudo apt-get install g++-aarch64-linux-gnu
$ cd CSerialPort
$ mkdir bin_aarch64 && cd bin_aarch64
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_aarch64.cmake
$ cmake --build .
- mips64el on ubuntu 20.04
$ sudo apt-get install g++-mips64el-linux-gnuabi64
$ cd CSerialPort
$ mkdir bin_mips64el && cd bin_mips64el
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_mips64el.cmake
$ cmake --build .
- riscv64 on ubuntu 20.04
$ sudo apt-get install g++-riscv64-linux-gnu
$ cd CSerialPort
$ mkdir bin_riscv64 && cd bin_riscv64
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_riscv64.cmake
$ cmake --build .
Screenshot 截图
Gui 图形用户界面
示例路径: CSerialPort/examples/CommQT
Tui 终端用户界面
示例路径: CSerialPort/examples/CommTui
No Gui 无界面
示例路径: CSerialPort/examples/CommNoGui
Directory List 目录列表
目录列表文档
Error Guide 错误指南文档
错误指南文档
Frequently Asked Questions 常见问题回答
常见问题回答
Contacting 联系方式
-
Email : [email protected]
-
QQ群 : 129518033
Links 链接
CSerialPort-based Applications 基于CSerialPort的应用
1.CommMaster通信大师
- 支持windows/linux/macos/raspberrypi等等
- 支持自定义串口名称
- 支持自定义波特率
- 支持自定义语言
- 支持自定义主题
https://gitee.com/itas109/CommMaster
2.CommLite
CommLite是一款基于CSerialPort的文本UI串口调试助手
- 支持x86, arm, mips等cpu架构
- 支持windows dos, linux, macos, raspberrypi, freebsd等操作系统
https://github.com/itas109/CommLite
Donate 捐助
Other branches 其他分支
Remon Spekreijse的串口类库对于本类库有着深远的影响,十分感谢Remon Spekreijse http://www.codeguru.com/cpp/i-n/network/serialcommunications/article.php/c2483/A-communication-class-for-serial-port.htm
仅支持windows版本分支 : https://github.com/itas109/CSerialPort/tree/CSerialPort_win_3.0.3
License 开源协议
自 V3.0.0.171216 版本后采用GNU Lesser General Public License v3.0