当前位置: 首页 > news >正文

青岛做网站皆赴青岛博网站备案注销查询

青岛做网站皆赴青岛博,网站备案注销查询,网站建设教程照片,想做水果外卖怎么做网站使用dbc文件建模完成CAN通讯是一种比较高效的开发模式#xff0c;不过在建模的过程中dbc文件中描述的数据需要自己去定义。使用文本编辑工具打开dbc文件可以看到#xff0c;实际上dbc文件是一个可以进行语义解析的文本。这样#xff0c;通过脚本语言便可以轻松的实现simulin…使用dbc文件建模完成CAN通讯是一种比较高效的开发模式不过在建模的过程中dbc文件中描述的数据需要自己去定义。使用文本编辑工具打开dbc文件可以看到实际上dbc文件是一个可以进行语义解析的文本。这样通过脚本语言便可以轻松的实现simulink建模所需要的数据定义。以下面的dbc文件为例简单做一下尝试。首先定义dbc文件中定义两个消息帧以及消息帧相关的部分变量。出于示例的简单只定义了8位和16位的数据。具体的dbc文件文本如下VERSIONNS_ :NS_DESC_CM_BA_DEF_BA_VAL_CAT_DEF_CAT_FILTERBA_DEF_DEF_EV_DATA_ENVVAR_DATA_SGTYPE_SGTYPE_VAL_BA_DEF_SGTYPE_BA_SGTYPE_SIG_TYPE_REF_VAL_TABLE_SIG_GROUP_SIG_VALTYPE_SIGTYPE_VALTYPE_BO_TX_BU_BA_DEF_REL_BA_REL_BA_DEF_DEF_REL_BU_SG_REL_BU_EV_REL_BU_BO_REL_SG_MUL_VAL_BS_:BU_:BO_ 2147486754 Message2: 8 Vector__XXXBO_ 2147486753 Message1: 8 Vector__XXXSG_ message_var3_16bit : 55|160 (1,0) [0|0] Vector__XXXSG_ message_var2_16bit : 39|160 (1,0) [0|0] Vector__XXXSG_ message_var2_8bit : 31|80 (1,0) [0|0] Vector__XXXSG_ message_var1_16bit : 15|160 (1,0) [0|0] Vector__XXXSG_ test_flag : 7|80 (1,0) [0|0] Vector__XXXBA_DEF_ SG_SigType ENUMDefault,Range,RangeSigned,ASCII,Discrete,Control,ReferencePGN,DTC,StringDelimiter,StringLength,StringLengthControl;BA_DEF_ SG_GenSigEVName STRING;BA_DEF_ SG_GenSigILSupportENUMNo,Yes;BA_DEF_ SG_GenSigSendTypeENUMCyclic,OnWrite,OnWriteWithRepetition,OnChange,OnChangeWithRepetition,IfActive,IfActiveWithRepetition,NoSigSendType;BA_DEF_ BO_GenMsgFastOnStart INT 0100000;BA_DEF_ SG_GenSigInactiveValue INT 00;BA_DEF_ BO_GenMsgCycleTimeFast INT 03600000;BA_DEF_ BO_GenMsgNrOfRepetition INT 01000000;BA_DEF_ SG_GenSigStartValue INT 010000;BA_DEF_ BO_GenMsgDelayTime INT 01000;BA_DEF_ BO_GenMsgILSupportENUMNo,Yes;BA_DEF_ BO_GenMsgStartDelayTime INT 0100000;BA_DEF_ BU_NodeLayerModules STRING;BA_DEF_ BU_ECU STRING ;BA_DEF_ BU_NmJ1939SystemInstance INT 015;BA_DEF_ BU_NmJ1939System INT 0127;BA_DEF_ BU_NmJ1939ManufacturerCode INT 02047;BA_DEF_ BU_NmJ1939IndustryGroup INT 07;BA_DEF_ BU_NmJ1939IdentityNumber INT 02097151;BA_DEF_ BU_NmJ1939FunctionInstance INT 07;BA_DEF_ BU_NmJ1939Function INT 0255;BA_DEF_ BU_NmJ1939ECUInstance INT 03;BA_DEF_ BU_NmJ1939AAC INT 0 1;BA_DEF_ BU_NmStationAddress INT 0255;BA_DEF_ BO_GenMsgSendTypeENUMcyclic,NotUsed,IfActive,NotUsed,NotUsed,NotUsed,NotUsed,NotUsed,noMsgSendType;BA_DEF_ BO_GenMsgRequestable INT 01;BA_DEF_ BO_GenMsgCycleTime INT 03600000;BA_DEF_ SG_SPN INT 0 524287;BA_DEF_DBName STRING ;BA_DEF_BusType STRING ;BA_DEF_ProtocolType STRING;BA_DEF_ BO_VFrameFormatENUMStandardCAN,ExtendedCAN,reserved,J1939PG;BA_DEF_DEF_SigTypeDefault;BA_DEF_DEF_GenSigEVNameEnvNodename_Signame;BA_DEF_DEF_GenSigILSupportYes;BA_DEF_DEF_GenSigSendTypeNoSigSendType;BA_DEF_DEF_GenMsgFastOnStart 0;BA_DEF_DEF_GenSigInactiveValue0;BA_DEF_DEF_GenMsgCycleTimeFast0;BA_DEF_DEF_GenMsgNrOfRepetition0;BA_DEF_DEF_GenSigStartValue 0;BA_DEF_DEF_GenMsgDelayTime 0;BA_DEF_DEF_GenMsgILSupportYes;BA_DEF_DEF_GenMsgStartDelayTime0;BA_DEF_DEF_NodeLayerModules;BA_DEF_DEF_ECU;BA_DEF_DEF_NmJ1939SystemInstance0;BA_DEF_DEF_NmJ1939System 0;BA_DEF_DEF_NmJ1939ManufacturerCode0;BA_DEF_DEF_NmJ1939IndustryGroup0;BA_DEF_DEF_NmJ1939IdentityNumber0;BA_DEF_DEF_NmJ1939FunctionInstance0;BA_DEF_DEF_NmJ1939Function 0;BA_DEF_DEF_NmJ1939ECUInstance0;BA_DEF_DEF_NmJ1939AAC 0;BA_DEF_DEF_NmStationAddress254;BA_DEF_DEF_GenMsgSendTypenoMsgSendType;BA_DEF_DEF_GenMsgRequestable 1;BA_DEF_DEF_GenMsgCycleTime 0;BA_DEF_DEF_SPN 0;BA_DEF_DEF_DBName;BA_DEF_DEF_BusTypeCAN;BA_DEF_DEF_ProtocolTypeJ1939;BA_DEF_DEF_VFrameFormatJ1939PG;BA_ DBNameECUTstInf;BA_VFrameFormat BO_ 21474867543;BA_VFrameFormat BO_ 21474867533;编写Python脚本首先数据的解析。完成一个M脚本脚本会通过对MATLABWorkspace中的数据模板进行拷贝修改完成数据定义。脚本如下(其中Excel写入变量信息表的功能可以去掉)#!/usr/bin/python################################################################################# Grey 2016.03.02# Update : add the function to gnerate M scriptfor data import.# Grey  2016.03.01# generate variables list according to dbcfile.# Inupt : dbc file name as a string, excel filename as a string.# Output : An excel file : variables listfile#import refrom xlwt import WorkbookdefGetVarList(dbc_file,var_list,model_name):data_c_file model_name _Data.cdata_head_file model_name _Data.hfid open(var_import.m,w)book Workbook()sheet_result book.add_sheet(variables)data_type_dict {2:uint8,8:uint8,12:uint16,16:uint16}text_lines open(dbc_file,r)regexp_var re.compile(rSG_\s(\w)\s.*\|(\w))var_detailre.compile(rSG_.*\((\S),(\S)\).*\[(\S)\|(\S)\].*\(\S*)\)index_col_num 0var_name_col_num  1data_type_col_num 2raw_num 0sheet_result.write(raw_num,index_col_num,index)sheet_result.write(raw_num,var_name_col_num,variablename)sheet_result.write(raw_num,data_type_col_num,datatype)for each_line in text_lines:line_info  each_line.strip()if line_info.startswith(SG_ ):search_result regexp_var.search(line_info)var_detail_result var_detail.search(line_info)try:raw_num 1var_name search_result.group(1)data_index int(search_result.group(2))data_type data_type_dict[data_index]factor_value  var_detail_result.group(1)bias_value var_detail_result.group(2)min_value var_detail_result.group(3)max_value var_detail_result.group(4)unit_str var_detail_result.group(5)sheet_result.write(raw_num,index_col_num,raw_num)sheet_result.write(raw_num,var_name_col_num,var_name)sheet_result.write(raw_num,data_type_col_num,data_type)if data_type uint8:fid.write(%s copy(base_8bit);\n % var_name)fid.write(%s.DataType \fixdt(0,8,%s,%s)\;\n%(var_name,factor_value,bias_value))fid.write(%s.Min %s;\n % (var_name,0))fid.write(%s.Max %s;\n % (var_name,255))fid.write(%s.DocUnits \%s\;\n % (var_name,unit_str))fid.write(%s.RTWInfo.CustomAttributes.DefinitionFile %s;\n % (var_name,data_c_file))fid.write(%s.RTWInfo.CustomAttributes.HeaderFile %s;\n % (var_name,data_head_file))elif data_type uint16:fid.write(%s copy(base_16bit);\n % var_name)fid.write(%s.DataType \fixdt(0,16,%s,%s)\;\n%(var_name,factor_value,bias_value))fid.write(%s.Min %s;\n % (var_name,0))fid.write(%s.Max %s;\n % (var_name,65535))fid.write(%s.DocUnits \%s\;\n % (var_name,unit_str))fid.write(%s.RTWInfo.CustomAttributes.DefinitionFile %s;\n % (var_name,data_c_file))fid.write(%s.RTWInfo.CustomAttributes.HeaderFile %s;\n % (var_name,data_head_file))#print(%s factor : %s\t bias :%s\tMin : %s\tMax : %s\tUnit : %s % \#(var_name,factor_value,bias_value,min_value,max_value,unit_str))except:print(ERROR:%s %line_info)book.save(var_list)fid.close()print(Process Done! Pleaserefer to excel file %s % var_list)GetVarList(test.dbc,temp.xls,DbcTst)运行脚本生成如下内容的M文件message_var3_16bit copy(base_16bit);message_var3_16bit.DataType fixdt(0,16,1,0);message_var3_16bit.Min 0;message_var3_16bit.Max 65535;message_var3_16bit.DocUnits ;message_var3_16bit.RTWInfo.CustomAttributes.DefinitionFile DbcTst_Data.c;message_var3_16bit.RTWInfo.CustomAttributes.HeaderFile DbcTst_Data.h;message_var2_16bit copy(base_16bit);message_var2_16bit.DataType fixdt(0,16,1,0);message_var2_16bit.Min 0;message_var2_16bit.Max 65535;message_var2_16bit.DocUnits ;message_var2_16bit.RTWInfo.CustomAttributes.DefinitionFile DbcTst_Data.c;message_var2_16bit.RTWInfo.CustomAttributes.HeaderFile DbcTst_Data.h;message_var2_8bit copy(base_8bit);message_var2_8bit.DataType fixdt(0,8,1,0);message_var2_8bit.Min 0;message_var2_8bit.Max 255;message_var2_8bit.DocUnits ;message_var2_8bit.RTWInfo.CustomAttributes.DefinitionFile DbcTst_Data.c;message_var2_8bit.RTWInfo.CustomAttributes.HeaderFile DbcTst_Data.h;message_var1_16bit copy(base_16bit);message_var1_16bit.DataType fixdt(0,16,1,0);message_var1_16bit.Min 0;message_var1_16bit.Max 65535;message_var1_16bit.DocUnits ;message_var1_16bit.RTWInfo.CustomAttributes.DefinitionFile DbcTst_Data.c;message_var1_16bit.RTWInfo.CustomAttributes.HeaderFile DbcTst_Data.h;test_flag copy(base_8bit);test_flag.DataType fixdt(0,8,1,0);test_flag.Min 0;test_flag.Max 255;test_flag.DocUnits ;test_flag.RTWInfo.CustomAttributes.DefinitionFile DbcTst_Data.c;test_flag.RTWInfo.CustomAttributes.HeaderFile DbcTst_Data.h;在MATLAB的Workspace中定义8位以及16位的数据定义模板然后执行M文件。数据定义模板运行后Workspace中已经生成dbc中的数据定义只需要把这些数据保存成mat文件即可保存使用。后续提供使用这个示例中的dbc文件进行建模的方法。
http://www.zqtcl.cn/news/548494/

相关文章:

  • 建设工程监理招标网站W做网站
  • 网站建设与维护教学课件网站上线前做环境部署
  • 信誉好的网站建设做网站成为首富的外国人
  • 常州网站制作市场湖北省荆门市城乡建设网站
  • 泉州网站制作运营商专业北京软件公司招聘信息查询
  • 车床加工东莞网站建设网站建设教学改进
  • 深圳专业做网站建设西安网站建设有限公司
  • wordpress 一键建站wordpress子主题style
  • 昆明设计网站怎么做网络广告
  • 2018什么做网站深圳企业网站设
  • 北京旅游外贸网站建设博客集成wordpress
  • 中国最好的建设网站哪些网站教你做系统
  • 自己做网站别人怎么看见网站建设办公
  • 凡科做网站视频网站哪家好
  • 查询网站是否正规营销策略国内外文献综述
  • 做网页用的网站wordpress用户角色权限管理
  • 怎么查网站备案的公司wordpress 无刷新评论
  • 学前心理学课程建设网站百度极速版下载
  • 佛山做营销型网站建设深圳宝安区租房
  • 做汽车团购的网站建设营销方案有哪些
  • 做设计的网站网络公关什么意思
  • 一般课程网站要怎么做做钓鱼网站软件下载
  • 济南网站建设92jzh收不到wordpress的邮件
  • 一键优化在哪里打开新手怎么入行seo
  • 网站建设的费用明细创建公司网站需要注意什么
  • 微网站怎么做的好宣传片拍摄服务
  • 抚州网站开发机构wordpress开源
  • 企业营销网站建设不属于网页制作工具
  • 呼和浩特网站建设信息建服装类网站需要考虑的因素
  • 百度站长平台工具南京开发app的公司