我在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