cantools.database获取消息的发送节点

cantools.database get the sending node of a message

我有一个程序,我需要知道消息的 CAN 节点,我从 DBC 获得。我是这样读 DBC 的:

db_input = cantools.db.load_file(dbc_path,database_format='dbc',encoding=None,frame_id_mask=None,strict=True,cache_dir=None)

我收到这样的特定消息:

print(db_input.messages[0])

输出为:

message('HOURS', 0x18fee59e, True, 8, None)

但是在 DBC 中,消息具有相应的 CAN 节点:

BO_ 2566841758 HOURS: 8 Sensor3

DBC语法是这样的:

BO_ <CAN-ID> <MessageName>: <MessageLength> <SendingNode>

有没有可能得到这样的东西?:

 message('HOURS', 0x18fee59e, True, 8, Sensor3)

PS。我查看了具体的节点,输出是:

node('Sensor3', None)

可能 None 被误认为是节点输入,但我找不到 cantools.database 库的源代码中是否输入了节点 https://cantools.readthedocs.io/en/latest/_modules/cantools/database.html

根据 doc,您应该可以通过 .senders:

获取发件人
print(db_input.messages[0].senders)

您正在打印的只是消息的表示形式(请参阅我的 link 中的 __repr__)。该消息具有更多属性(_senders 等)