当前位置: 首页 > 后端技术 > Python

cushy-serial一个轻量级的PythonSerial框架

时间:2023-03-26 19:19:28 Python

本文来自作者博客:https://www.blog.zeeland.cn/archives/rgoihgxcoci3项目地址:https://github.com/Undertone0809/cushy-serial/Introductioncushy-serial是一个轻量级的Serial框架。初衷是为了让串口编程更简单、更快捷。因此,与传统的pyserial相比,该框架可以更快速地构建串行程序。主要功能兼容pyserial的所有功能。自定义串口消息异步回调,无需在多线程上花费精力。提供串口定时任务,方便实现和管理多个串口连接。可自定义消息协议,兼容性强快速启动pipinstallrushy-serial--upgrade下面是一个简单的串口程序,当python客户端从串口接收到信息时,会自动回调fromcushy_serialimportCushySerialserial=CushySerial("COM1",9600)serial.send("Iampythonclient")@serial.on_message()defhandle_serial_message(msg:bytes):str_msg=msg.decode("utf-8")print(f[serial]recmsg:{str_msg}")需要注意的是CushySerial是兼容所有函数的,所以你可以在CushySerial中使用Serial的所有函数。运行结果如下如果要执行定时任务,CushySerial也提供了相关解决方案,可以方便的轮询串口发送指令和获取信息,例子如下:fromrushy_serialimportCushySerial,enable_logenable_log()serial=CushySerial("COM1",9600)instruction=bytes([0x01,0x06,0x00,0x7F,0x00,0x01,0x79,0xD2])#msg是你要轮询发送的指令,interval是轮询间隔时间,times是执行次数,@serial.polling_task(不用填)msg=instruction,interval=0.5,times=5)defhandle_rec_msg(rec_msg):print(f[serial]recpollingmessage:{rec_msg}")Todo[]提供polling_task的函数回调版本[]提供字节包分析功能,降低包分析工作的成本[]提供相关的持久化解决方案[]提供数据流监控提高数据稳定性[]提供更精细的数据包控制,降低丢包率[x]提供串口定时任务调度[]贡献提升单元测试如果你想为这个项目做出贡献,可以提交pr或issue。我很高兴看到更多的人参与进来并对其进行优化。