| .. | ||
| .circleci | ||
| doc | ||
| include/plog | ||
| samples | ||
| test | ||
| .appveyor.yml | ||
| .cirrus.yml | ||
| .editorconfig | ||
| .gitignore | ||
| CMakeLists.txt | ||
| library.json | ||
| LICENSE | ||
| plog.nuspec | ||
| plog.targets | ||
| README.md | ||
CSerialPort
CSerialPort 是一个跨平台的串口通信库,支持多种操作系统和编程语言绑定。它提供了一套统一的API用于串口通信,适用于GUI、TUI和无界面应用程序开发。
特性
- 跨平台支持(Windows、Linux、macOS等)
- 支持多种操作模式:同步/异步
- 提供丰富的串口配置选项(波特率、校验位、数据位、停止位等)
- 支持事件驱动的数据接收机制
- 包含多种示例程序(MFC、QT、WXWidgets、TUI、NoGui等)
- 支持C/C++、CSharp、Java、Python、JavaScript等多种语言绑定
最新版本
当前版本: 4.3.1.240204 (2024-02-04)
快速开始
使用vcpkg安装
vcpkg install cserialport
交叉编译
支持多种架构的交叉编译,包含CMake工具链配置文件:
- aarch64
- arm
- mips64el
- riscv64
示例代码
C++ 基础使用
#include "CSerialPort/SerialPort.h"
class MyListener : public itas109::CSerialPortListener
{
public:
MyListener(itas109::CSerialPort *sp) : p_sp(sp) {}
void onReadEvent(const char *portName, unsigned int readBufferLen)
{
// 处理接收到的数据
char data[1024] = {0};
int bytesRead = p_sp->readData(data, sizeof(data));
// ...
}
private:
itas109::CSerialPort *p_sp;
};
int main()
{
// 创建串口对象
itas109::CSerialPort sp;
// 初始化串口
sp.init("/dev/ttyUSB0", itas109::BaudRate::BaudRate9600);
// 设置操作模式为异步模式
sp.setOperateMode(itas109::AsynchronousOperate);
// 创建监听器
MyListener listener(&sp);
sp.connectReadEvent(&listener);
// 打开串口
if(sp.open())
{
// 串口操作...
// 关闭串口
sp.close();
}
return 0;
}
文档
应用案例
许可证
本项目采用开源协议,请查看LICENSE文件获取详细信息。
联系方式
如需技术支持或商务合作,请通过GitHub/Gitee页面联系作者。
开发环境要求
- 支持C++11的编译器
- CMake 3.14+
- 支持跨语言绑定的工具(SWIG等)
构建说明
请参考各绑定目录下的README文件获取具体构建方法:
贡献指南
欢迎贡献代码和文档,提交PR前请确保:
- 遵循代码风格
- 包含必要的测试
- 更新相关文档
致谢
感谢所有贡献者和使用者的支持!