使用Python处理a2l文件

        最近研究Simulink生成代码,使用XCP进行测量和标定,需要处理模型代码产生的一堆.a2l文件。本来想找现成的,奈何要么不好用,要么收费,本着能省一点是一点的原则,只能手搓了。上位机原本想用MFC/C#,回想自己老大不小的年纪,算了,还是Python吧。这里记录下大体思路,供有同样需求的伙计参考。

    基本流程如下:

   Python代码如下:

1.获取Asw文件夹下所有的a2l文件,并拷贝到中间文件夹备用。获取编译器产生的elf文件。

2.关键部分,查找每个a2l文件中的测量和标定部分,并汇总到一个文件中。

3.将上一步产生的有用信息文本,插入模板a2l对应位置。

4. 调用Matlab函数,通过添加来自.elf文件的地址字段来更新模板a2l文件。

rtw.asap2SetAddress('model.a2l','model.elf')

5.由于存在大量print调试语句,debug时处理时间很长,几十个文件大概5分钟。好在打包成exe后,只需要1分钟左右,还可以接受。Python直接调用Matlab函数,暂时没找到办法,用批处理从中过渡了一下,代码略显ugly but useful。如果使用m语言,可能速度更快,可以生成代码的同时,调用命令行编译,自动生成a2l,这个就留待以后研究吧。

后记:需要记住这段时间,因此发这一篇提醒一下自己。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值