解析.dbc文件并生成C ++代码以表示每个消息的类/结构对于目标ECU

问题描述

我正在尝试从.dbc文件生成C ++代码

例如在.dbc文件中定义如下消息

BO_ 500 IO_DEBUG: 5 IO
 SG_ IO_DEBUG_test_unsigned : 0|8@1+ (1,0) [0|0] "" DBG
 SG_ IO_DEBUG_test_signed : 8|8@1- (1,-128) [0|0] "" DBG
 SG_ IO_DEBUG_test_float1 : 16|8@1+ (0.1,0) [0|0] "" DBG
 SG_ IO_DEBUG_test_float2 : 24|12@1+ (0.01,-20.48) [-20.48|20.47] "" DBG
 SG_ IO_DEBUG_test_enum : 38|2@1+ (1,0) [0|0] "" DBG

BA_ "FieldType" SG_ 500 IO_DEBUG_test_enum "IO_DEBUG_test_enum";
VAL_ 500 IO_DEBUG_test_enum 2 "IO_DEBUG_test2_enum_two" 1 "IO_DEBUG_test2_enum_one" ;

我正在尝试生成类似这样的C ++代码。消息名称将成为类名称,所有信号应与数据类型一起成为该类的成员。

// IoDebug.h-ProcessMessageInterface是一个接口。

class IoDebug : public ProcessMessageInterface {
pubic:
   // ProcessMessageInterface implementation
   void processMessage();


private:
   uint8_t testUnSigned;
   int8_t  testSigned;
   float   testFloat1;
   float   testFloat2; 
   IO_DEBUG_test_enum testEnum;
};

// IoDebug.cpp

#include "IoDebug.h"

IoDebug::processMessage() 
{
   
}

是否存在可以生成上述代码的dbc解析器和代码生成工具?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)