python can通信_Python中的高级/抽象Canbus接口

博客探讨了在Python中使用CAN总线通信时遇到的数据管理和处理问题。作者提出目前的实现方式是通过嵌套字典存储参数,包括读写操作、ID、SubID和解析函数,但希望能找到一个更易于访问和理解的结构。目标是消除基于CAN消息的直接操作,创建一个线程负责通信,更新变量,发送请求和周期性信号。讨论了线程与GUI交互、内部数据存储以及如何利用PyQT的信号和槽机制。
摘要由CSDN通过智能技术生成

我在python(pcanbasicapi)中使用canbus,希望它更易于使用。在

许多设备通过总线连接。他们都被允许发送数据,如果发生碰撞,最低的ID将获胜。在

数据以ID、SubID、hexvalues的帧组织

为了说明我试图解决的问题,想象一个信号的振幅。在

读取帧发送到的值问题ID问题子ID问题数据

如果没有优先级更高的消息(=lowerID),则答案将写入总线:答案ID答案子ID答案数据

由于任何模块/设备都可以写入总线,因此您不知道下一个将得到哪个答案。设置值也是一样的,只是使用不同的ID。因此,对于上述示例,振幅将具有:4与读/写问题/答案相关的ID和子ID

此外,必须指定/存储数据的长度has(0-8)。在

由于数据都是十六进制值,因此必须指定解析器以获得人类可读的值(例如十进制表示的电压)

为了存储这些信息,我使用嵌套dict:parameters = {'Parameter_1': {'Read': {'question_ID': ID,

'question_SUBID': SubID,

'question_Data': hex_value_list,

'answer_ID': ...,

'answer_subID': ...,

'answer_parser': function},

'Write': {'ID': ...,

'SubID': ...,

'parser

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值