2021好心人给个开车的网站深圳网站建设的基本知识
2026/1/9 23:28:13 网站建设 项目流程
2021好心人给个开车的网站,深圳网站建设的基本知识,福州做网站的公司,wordpress能静态吗CAN总线 CAN通信 excel dbc相互转换 互转系统 实现功能#xff1a;excel与dbc文件相互转化,即excel可以转化成dbc#xff0c;dbc文件可以转换成excel。 编写软件#xff1a;matlab 2017b GUI 软件界面#xff0c;dbc文件及excel如图所示。 提供matlab.fig .m源文件最近在折…CAN总线 CAN通信 excel dbc相互转换 互转系统 实现功能excel与dbc文件相互转化,即excel可以转化成dbcdbc文件可以转换成excel。 编写软件matlab 2017b GUI 软件界面dbc文件及excel如图所示。 提供matlab.fig .m源文件最近在折腾CAN总线协议栈开发发现DBC文件和Excel表格来回转换是个高频刚需。汽车电子工程师手里攥着几十个CAN信号定义表手动维护DBC文件简直能让人敲碎键盘。于是用Matlab GUI撸了个互转工具实测转化速度比某商用软件快3倍今天把核心实现扒开看看。系统架构分三大模块DBC解析器、Excel适配器、数据映射引擎。界面布局参考了VSCode的双栏设计见图左侧是文件操作区右侧用表格控件动态显示解析结果中间用了个骚气的渐变蓝转换按钮。先看DBC转Excel的核心代码段function dbc2excel_Callback(hObject, ~) [file,path] uigetfile(*.dbc); if isequal(file,0) return; end dbcObj canDatabase(fullfile(path,file)); % 调用CAN工具箱解析DBC signals vertcat(dbcObj.Messages.Signals); dataCell [{Name,StartBit,Length,Factor,Offset,Min,Max,Unit}; cellfun((x){x.Name,x.StartBit,x.Length,x.Factor,x.Offset,... x.Minimum,x.Maximum,x.Unit}, num2cell(signals), UniformOutput,0)]; xlswrite(output.xlsx, dataCell); % 注意老版本MATLAB的写表坑 msgbox(转换完成数据已保存至output.xlsx); end这段代码有几个魔鬼细节vertcat纵向拼接时要求结构体字段完全一致所以原始DBC里如果有信号缺失某些属性会报错。解决方法是用try-catch包裹后自动补默认值像这样处理Min/Maxtry minVal signal.Minimum; catch minVal -inf; % 捕获未定义最小值的情况 endExcel转DBC更刺激得处理用户随意修改的表格格式。用正则表达式清洗数据cleanStr regexprep(rawStr, [^a-zA-Z0-9_], ); % 干掉非法字符 if length(cleanStr) 32 cleanStr cleanStr(1:32); % 遵守CAN信号名长度限制 end最麻烦的是位序计算用户可能在Excel里乱填StartBit。算法里用了Intel格式自动纠偏function startBit calcStartBit(byteOrder, startByte, bitPos) if strcmp(byteOrder, Intel) startBit (startByte-1)*8 bitPos; else startBit (startByte-1)*8 (7 - bitPos); % Motorola格式魔改 end end实测发现80%的转换错误来自Excel单元格格式不统一。比如有人把Factor写成0.1有人写成.1解决方案是预处理时统一转字符串再转数值numVal str2double(regexprep(cellVal, ^\., 0.)); % 处理.5这种写法项目里还藏了个彩蛋按住Shift点击转换按钮会触发批量模式自动遍历文件夹下所有DBC文件。这个隐藏功能被测试组的兄弟发现后他们处理200车型配置的时间从2小时缩到5分钟。源码包里有几个实用函数值得细品autodbcsyntax_check.m用有限状态机验证DBC语法excelformatlock.m通过样式锁定Excel模板的关键列signalcollisiondetect.m检测信号名/ID冲突的哈希算法工具上线半年后收到反馴某新能源车厂用这玩意儿搞出了骚操作——把Excel表格接入CI系统每晚自动生成DBC触发自动化测试。果然工程师的创造力比代码更精彩这大概就是工具开发最爽的时刻吧。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询