Distribution_Service/CC_SDK/Environment/libdatachannel/deps/plog/README.md

128 lines
2.9 KiB
Markdown
Raw Normal View History

2025-11-11 17:46:19 +08:00
# CSerialPort
[CSerialPort](https://github.com/itas109/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安装
```bash
vcpkg install cserialport
```
### 交叉编译
支持多种架构的交叉编译包含CMake工具链配置文件
- aarch64
- arm
- mips64el
- riscv64
## 示例代码
### C++ 基础使用
```cpp
#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;
}
```
## 文档
- [中文文档](doc/CSerialPort_doc_cn.chm)
- [英文文档](doc/CSerialPort_doc_en.chm)
## 应用案例
1. [CommMaster通信大师](https://gitee.com/itas109/CommMaster)
2. [CommLite](https://github.com/itas109/CommLite)
## 许可证
本项目采用开源协议,请查看[LICENSE](LICENSE)文件获取详细信息。
## 联系方式
如需技术支持或商务合作请通过GitHub/Gitee页面联系作者。
## 开发环境要求
- 支持C++11的编译器
- CMake 3.14+
- 支持跨语言绑定的工具SWIG等
## 构建说明
请参考各绑定目录下的README文件获取具体构建方法
- [C绑定](bindings/c/README.md)
- [CSharp绑定](bindings/csharp/README.md)
- [Java绑定](bindings/java/README.md)
- [JavaScript绑定](bindings/javascript/README.md)
- [Python绑定](bindings/python/README.md)
## 贡献指南
欢迎贡献代码和文档提交PR前请确保
1. 遵循代码风格
2. 包含必要的测试
3. 更新相关文档
## 致谢
感谢所有贡献者和使用者的支持!