在使用 canmatrix库时,
matrix_obj.add_frame_defines("GenMsgSendType", 'ENUM "Cyclic", "Event"' ) 除了事件型和周期型不能定义其他类型吗,
我想把“”事件周期型“的也生成DBC
可是报错显示列表中没有这个值 ValueError:“EC”is not in list
那么请问“”事件周期型报文“应该怎么定义呢
在使用 canmatrix库时,
matrix_obj.add_frame_defines("GenMsgSendType", 'ENUM "Cyclic", "Event"' ) 除了事件型和周期型不能定义其他类型吗,
我想把“”事件周期型“的也生成DBC
可是报错显示列表中没有这个值 ValueError:“EC”is not in list
那么请问“”事件周期型报文“应该怎么定义呢
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
在使用 canmatrix 库定义 DBC 文件时,你确实可以定义事件型和周期型的消息类型。但是,对于其他的自定义类型或者组合类型(如事件周期型报文),你需要确保这些类型在你的 DBC 文件的其他部分已经被定义过。否则,当你尝试添加这样的类型时,会出现错误。
关于你的问题,"事件周期型报文"不是一个在 canmatrix 库中直接支持的枚举值。如果你想在 DBC 文件中定义这样的消息类型,你可能需要手动创建它,并在适当的地方引用它。一种可能的做法是在你的 DBC 文件中先定义一个新的枚举类型,然后在这个枚举类型中包含 "Cyclic"(周期型)和 "Event"(事件型)。然后你可以使用这个新定义的枚举类型来定义你的消息类型。这样,"事件周期型报文"就可以看作是包含这两种类型的复合类型。这是一个基本的例子:
# 定义新的枚举类型
matrix_obj.add_enum("SendType", ["Cyclic", "Event", "Combined"]) # "Combined"代表事件周期型报文
# 使用新的枚举类型定义消息类型
matrix_obj.add_frame_defines("GenMsgSendType", 'Combined') # 使用Combined代表事件周期型报文
请注意,"Combined" 这个名称是你为这个新的消息类型选择的名称,你可以根据需要进行更改。通过这种方式,"事件周期型报文"就可以在 DBC 文件中被正确地定义了。但是,你需要确保你的应用程序能够正确地理解和处理这种新的消息类型。