128 lines
2.9 KiB
Markdown
128 lines
2.9 KiB
Markdown
|
|
# 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. 更新相关文档
|
|||
|
|
|
|||
|
|
## 致谢
|
|||
|
|
|
|||
|
|
感谢所有贡献者和使用者的支持!
|