下面是世字七号的《从基础开始的刷牙方案介绍》,让我们怀着一颗崇拜的心一起来学习吧。
使用
——基于14229 UDS刷机思路
l 前言
软件介绍
l 主界面
1.面板界面控件闪烁的含义
l 3.涂刷工序
——————————————
前言
软件(国产独木舟):支持/-CANoe/PEAK//Zlg/等
软件介绍
是一款与CANoe相媲美的软件,点击此处查看(())了解详情,下载方法可在公众号查看。
好,我们来看看怎么写。
主界面
1.写出Panel界面控件的含义
1. OEM选择
主机厂选择,这个用于刷机和开机时读取DID。
2. 提示
当前操作到哪一步,会提示加载配置文件成功/失败; 阅读的成功/失败; 刷机成功/失败; 修改ID、DID成功/失败;
3、配置文件
Path框,加载配置文件.txt的绝对路径,不需要自己更改,下面会详细讲解如何获取配置文件的路径。
4. 改变
点击,会自动弹出.txt窗口,修改里面的值,然后修改后的值会自动刷新。 该按钮是调用exe命令来操作txt。 下面将详细介绍如何获取exe命令。
5. 信息
当配置文件的路径正确时,会自动加载ID和DID的值,也可以在框中更改值,为十六进制格式; 最后,选择应用程序或启动来阅读。 读取到的值将以ASCII格式显示在界面上,一一对应。
6. 阅读
点击获取info信息并阅读DID。
7. 文件数量
要刷新的文件数。
8. 下载次数
需要连续下载的次数
9. 应用程序路径
所需的连续写入次数
10. 路径
路径框,获取绝对路径并显示。
11.应用程序路径
路径框,获取应用程序的绝对路径并显示。
12. 加载
点击,会出现一个文本框,找到flash文件的路径,然后将该路径写入.txt并显示在路径框中; 这个按钮是通过我自己的exe(API)来操作的(该控件没有路径按钮),调用的exe命令来操作。 下面将详细介绍如何制作exe。
13. 好的
点击闪烁;
14.下载进度
刷写进度条,范围:0-100;
2.如何加载配置文件
点击启动按钮后,会自动加载配置文件,如下图。
1.获取配置文件路径思路
(1) 使用应用程序。 函数获取当前项目目录,然后使用函数获取配置文件路径,如下图
(2)找到cfg文件夹后,可以通过fopen和fgets读取.txt的值。 .txt中的值,如下图
可以清晰地看到【ID】/【DID】/【FILE】,与面板的信息一一对应。
ID就不说了,就是用来发送消息id的,DID是用来获取ECU版本信息的。
(3)通过程序启动事件将上面得到的值赋给系统变量,控件与系统变量绑定,因此控件显示配置文件的值。
2.修改配置文件路径idea(控制alter)
如果想直接点击按钮,会弹出txt文件,如下图:
代码如下图所示: 通过app.()函数调用下的.exe打开配置文件路径。 本来想用的,但是这个功能已经集成了,所以就选择了。 而且打开后没有命令窗口,完美!
3.获取刷写文件路径的思路(控制加载)
如果你想像canoe一样,让用户能够自己查找并烧写文件,并将路径加载到框中,你必须自己制作一个exe,并以同样的方式使用或app.()。
我的思路:
(1) 创建命令c++文件并制作exe。
(2)弹出电脑盘符窗口,部分VS代码可以识别.s19或者.hex,就看你的选择了。如下图
效果如下:
(3)flash文件打开后需要写入配置文件,配置文件的路径与exe相关,且在同一个工程目录下(自己建的)
VS code编写完集成的exe后,将exe集成到VS目录下的解决方案文件下,然后将exe放在\exe\下。 VS代码如下图
① 获取当前exe文件的路径
②出现选择flash文件的窗口,选择文件
③去掉exe,只保存当前工程路径
④ 拼接配置文件路径
⑤ 以只读方式打开配置文件
⑥ 找到配置文件中的字符串,因为这一行需要写路径
⑦写入flash文件路径
⑧ 以只写方式打开配置文件
⑨ 写入成功后,程序自动刷新面板路径
3、刷涂工艺
确认接口信息后,就可以开始刷机了。 旧的操作中,需要先解析文件,然后将数据存入数组buff中进行传输。
1. 文件分析
S19文件分析:
S1 10 2000 00 00 00 00 00 00 00 00 00 00 00 00 10 BF
以上数据:
1.S1:文件地址的字节数为1+1=2,最常见的有S2、S3等;
2.10:表示10之后所有数据的个数为0x10字节,即16字节;
3.2000:文件地址
4.00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01:数据
5.BF:值BF = 0XFF - (0X10 +0X20 + 00 …+0X10),注意这个值的最终结果只能是一个字节的数字。
HEX文件解析:
:
:1EC
以上数据:
1.::以 HEX 开头
2.02:0x02字节数据,即2个数据
3.0000:地址
4.02: 数据类型:
(1)0x00:下载的数据
(2)0x01:读文件结束标志
(3)0x02:扩展段地址记录,例如0xFFB