52 Star 289 Fork 27

itas109 / CSerialPort

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

CSerialPort

English

CSerialPort是一个基于C/C++的轻量级开源跨平台串口类库,可以轻松实现跨平台多操作系统的串口读写,同时还支持C#, Java, Python, Node.js等。

Version Stars Stars License language appveyor-ci


Design Principles 设计原则

  • 跨平台
  • 简单易用
  • 高效

Platform 平台

CSerialPort已经在以下平台做过测试

  • Windows ( x86, x86_64, arm64 )
  • Linux ( x86, x86_64, arm, arm64/aarch64, mips64el, riscv, s390x, ppc64le )
  • macOS ( x86_64 )
  • Raspberry Pi ( armv7l )
  • FreeBSD ( x86_64 )
  • ...

Todo List 待处理事项

Long-term Goal 长期目标

  • 1.首先支持windows和linux平台
  • 2.增加通用串口通信协议
  • 3.支持热插拔 - CSerialPortExtend
  • 4.更高效的通知模块 - CSerialPortListener
  • 5.支持其他语言 - C#, Python, Java, Node.js - 详见bindings
  • 6.同步串口通信
  • 7.全新的跨平台串口调试助手 - CommMaster通信大师
  • 8.增加CSerialPort的介绍和使用教程 - CSerialPort教程
  • 9.串口侦听hook

Short-term Goal 短期目标

  • 1.跨平台操作系统识别库
  • 2.跨平台多线程类库
  • 3.跨平台锁类库
  • 4.跨平台高效定时器类库
  • 5.跨平台线程池库
  • 6.性能测试报告(吞吐量、时延、丢包率)

Latest version 最新版本

Version: 4.3.1.240204

by itas109 on 2024-02-04

Quick Start 快速开始

$ git clone --depth=1 https://github.com/itas109/CSerialPort.git
$ cd CSerialPort
$ mkdir bin && cd bin
$ cmake ..
$ cmake --build .

运行示例程序(如linux下串口环回测试)

CSerialPort/bin $ ./CSerialPortDemoNoGui 
Version: https://github.com/itas109/CSerialPort - V4.3.1.240204

AvailableFriendlyPorts:
1 - /dev/ttyUSB0 QinHeng CH340 serial converter 1a86:7523
2 - /dev/pts/0 0 pty terminal

Please Input The Index Of Port(1 - 2)
1
Port Name: /dev/ttyUSB0
[CSERIALPORT_DEBUG] openPort - portName: /dev/ttyUSB0, baudRate: 9600, dataBit: 8, parity: 0, stopBit: 0, flowControl: 0, mode: async, readBufferSize:4096(4096), readIntervalTimeoutMS: 0, minByteReadNotify: 1
[CSERIALPORT_DEBUG] openPort - open /dev/ttyUSB0. code: 0, message: success
Open /dev/ttyUSB0 Success
Code: 0, Message: success
[CSERIALPORT_DEBUG] writeData - write. len: 5, hex(top100): 3132333435
[CSERIALPORT_DEBUG] writeData - write. len: 7, hex(top100): 69746173313039
[CSERIALPORT_DEBUG] commThreadMonitor - write buffer(usedLen 12). len: 12, hex(top100): 313233343569746173313039
[CSERIALPORT_DEBUG] commThreadMonitor - onReadEvent. portName: /dev/ttyUSB0, readLen: 12
[CSERIALPORT_DEBUG] readData - read. len: 12, hex(top100): 313233343569746173313039
/dev/ttyUSB0 - Count: 1, Length: 12, Str: 12345itas109, Hex: 0x31 0x32 0x33 0x34 0x35 0x69 0x74 0x61 0x73 0x31 0x30 0x39 

Install CSerialPort Using Vcpkg 使用vcpkg安装CSerialPort

您可以通过vcpkg依赖包管理工具下载和安装CSerialPort

$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ ./bootstrap-vcpkg.sh
$ ./vcpkg install cserialport

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

image

Tui 终端用户界面

示例路径: CSerialPort/examples/CommTui

image

No Gui 无界面

示例路径: CSerialPort/examples/CommNoGui

image

Documents 文档

API接口文档 目录列表文档 错误指南文档 常见问题回答

Contacting 联系方式

Links 链接

CSerialPort-based Applications 基于CSerialPort的应用

1. CommMaster通信大师

  • 支持windows/linux/macos/raspberrypi等等
  • 支持自定义串口名称
  • 支持自定义波特率
  • 支持自定义语言
  • 支持自定义主题

https://gitee.com/itas109/CommMaster

image

2. CommLite

CommLite是一款基于CSerialPort的文本UI串口调试助手

  • 支持x86, arm, mips等cpu架构
  • 支持windows dos, linux, macos, raspberrypi, freebsd等操作系统

https://github.com/itas109/CommLite

image

Donate 捐助

CSDN博客


Other branches 其他分支

仅支持windows版本分支 : https://github.com/itas109/CSerialPort/tree/CSerialPort_win_3.0.3

非常感谢Remon Spekreijse的串口通信库


License 开源协议

自 V3.0.0.171216 版本后采用GNU Lesser General Public License v3.0

空文件

简介

CSerialPort轻量级跨平台串口类库(支持C/C++/C#/Java/Python/Node.js) lightweight cross-platform serial port library for C/C++/C#/Java/Python/Node.js 展开 收起
取消

发行版 (8)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/itas109/CSerialPort.git
git@gitee.com:itas109/CSerialPort.git
itas109
CSerialPort
CSerialPort
master

搜索帮助