首页 > 其他分享 >CANoe_UDS-boorloader 自动化测试系列(六)基本功能:CAPL实现bin文件数据解析

CANoe_UDS-boorloader 自动化测试系列(六)基本功能:CAPL实现bin文件数据解析

时间:2024-08-22 16:22:19浏览次数:8  
标签:bin UDS 测试 文件 CANoe CAPL booroader

一、前言

hello,大家好,我是小鸟鹏。

上一篇给大家介绍了如何通过CAPL脚本实现一键通过#0x27安全访问,今天我打算介绍一下在CAPL中如何获取panel 上 Path Diaglog 文件路径信息,并且通过CAPL内置的函数接口解析文件信息,提取出文件数据和数据大小。分析源码和思路。

二、面板

#文件路径组件 Path Diaglog

面板大概是下面这个样子,最重要的是两个Path Diaglog,一个用于加载app的文件路径,一个用于加载flashdriver的文件路径。其实并不复杂,定义好后将组件和系统变量关联起来即可,我们需要时读取系统变量就能得到相对应的文件路径。

#系统变量 

三、CAPL读取文件路径

1、读取文件路径

#读取系统变量所使用的函数接口: 

sysGetVariableString();

#读取一个字符串类型的系统变量到缓存区

sysGetVariableString(sysvar::SysVar_Flash_Driver_File, FlashDrvFileAddress, elCount(FlashDrvFileAddress));

#函数的三个参数:

①.系统变量(sysvar::SysVar_Flash_Driver_File)

②.系统变量缓存区(FlashDrvFileAddress)

③.缓存区大小(FlashDrvFileAddress)

2、通过文件路径得到句柄

#打开文件函数接口

OpenFileRead();

#得到文件句柄 

glbHandle = OpenFileRead(FlashDrvFileAddress, 1);

以上的这个函数接口同通过文件路径得到了一个句柄,通过这个句柄我们就能够轻松得到文件的数据和大小了。

3.解析文件

#读取文件数据的函数接口

fileGetBinaryBlock();

#读取文件数据和大小 

ulDataLength = fileGetBinaryBlock(ucDataBuf, BIN_FILE_MAX_SIZE, glbHandle);

通过以上的接口,我们只需要传入句柄和一个数据缓存区就可以得到.bin文件的数据和大小,文件数据由参数返回,函数返回值则是数据的大小。通过以上的步骤我们得到了固件的数据和大小,因为这一篇讲的是解析.bin文件,所以还没有地址信息,我们根据项目需求自行设置即可,使用时在面板输入文件路径后在测试用例开始前调用即可。这一步完成后下一步就可以进行固件传输了。

#完整代码

void GetApplicationFileInformation(void)
{
    dword glbHandle = 0;
    char ApplicationFileAddress[200];

    sysGetVariableString(sysvar::SysVar_Application_File, ApplicationFileAddress, elCount(ApplicationFileAddress));
    if (ApplicationFileAddress[0] != 0)
    {
        write("ApplicationFileAddress:%s", ApplicationFileAddress);

        glbHandle      = OpenFileRead(ApplicationFileAddress, 1);
        ulDataLength   = fileGetBinaryBlock(g_stApplicationInfor.ucDataBuf, BIN_FILE_MAX_SIZE, glbHandle);
        ulStartAddress = AppStartAddrs;
        ulStopAddress  = ulStartAddress + ulDataLength;
    }
}

四、总结

今天给大家介绍了在CAPL中如何使用面板和一些内置的函数接口去获取文件路径以及解析我们的固件信息,相信看完后你也轻松实现了,基于前面几篇的知识点结合今天的内容,搭建起一个CAPL测试脚本框架基本上没啥问题的。如果对大家有帮助,求个三连,码字不易,大家的支持是我更新的最大动力【感谢】。

下一篇:

CANoe_UDS-booroader 自动化测试系列(七)基本功能:CAPL实现#34#36#37服务#数据下载

如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。

作者:小鸟鹏

联系方式:

邮箱:[email protected]

标签:bin,UDS,测试,文件,CANoe,CAPL,booroader
From: https://blog.csdn.net/m0_68882790/article/details/141429348

相关文章

  • BST 二叉搜索树 BinarySearchTree C++实现(递归/非递归)
    目录二叉搜索树基本概念常用结论用途二叉搜索树的性能分析二叉搜索树的操作查找插入删除代码实现BSTree.hpptest.cc二叉搜索树基本概念二叉搜索树(BST,BinarySearchTree)二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树......
  • [20240818]测试21c下sqlplus show recyclebin的小问题2.txt
    [20240818]测试21c下sqlplusshowrecyclebin的小问题2.txt--//以前测试过,链接[20210722]sqlplus下showrecycebin的小问题.txt--//注:recycebin拼写错误应该是recyclebin.--//这个问题当时也是浪费了大量实际,我记忆遇到问题时是上午,执行showrecyclebin;[注空格+;],linux......
  • AUTOSAR&UDS 理论要点及isolar实战-2F服务讲解及配置实战
    1.输入输出控制2F服务此服务服务用于代替ECU输入信号的值、电控单元内部参数或控制电子系统的输出值。举个例子:利用2F服务来实现简单的开关控制(转向灯,雨刮之类等)。报文格式:目前项目中主要是用到了00和03子服务,03: 在诊断模式中,请求该子ID的服务,会短暂控制输出,如上述:控制左......
  • AUTOSAR&UDS 理论要点及isolar实战-22服务讲解及配置实战(2)
    1.读取数据22服务此部分和22服务讲解及配置实战(1)中保持一致,有需要的小伙伴前往上一博客查看。2.配置实战2.1DcmDsdServiceTables的配置1.DcmDsdSidTabFnc:工具自带的回调函数,调用静态代码包中的服务函数2.DcmDsdSidTabServiceId为0x22,配置22服务;3.DcmDsdSidTabSub......
  • CANoe小白上手思路
    本文申明:2024.8.19无实操截图,皆在提供新建仿真工程思路,按个人需求根据CANoe明显的图标名称进行操作。操作环境:CANoe版本9.0.54,CANcase版本VN1610/30/40。新建工程和配置网络第一步:连上CANcase,打开CANoe,选择可用模板并创建配置新建工程,之后配置波特率。第二步:Mapping配......
  • CANoe_UDS-boorloader 自动化测试系列(二)基本功能:CAPL实现UDS协议下的CAN报文接收#解析
    目录一、前言二、CAPL实现1、报文接收接收报文函数:2、报文发送发送报文函数:三、总结展望一、前言halle,大家好,我是小鸟鹏。上篇文章《CANoe_UDS-boorloader自动测试系列(二)基本刷写流程》简单介绍了整Bootloader的基本刷写流程,包括具体使用哪些服务实现哪些功能,对......
  • [LeetCode] 1367. Linked List in Binary Tree 二叉树中的链表
    Givenabinarytree root anda linkedlistwith head asthefirstnode.ReturnTrueifalltheelementsinthelinkedliststartingfromthe head correspondtosome downwardpath connectedinthebinarytree otherwisereturnFalse.Inthiscontext......
  • failed to solve: process “/bin/sh -c yum -y install vim“ did not complete succ
    网上有好多种方法(都试过了只有方法四可以用):方法一:systemctl restart  docker(生产上不建议)方法二:看看你的网络是否有问题,检查一下网络连通性方法三:有可能是容器版本的问题,推荐使用centos7,看网上说最新的镜像会有这类的的问题方法四:就像这个博主大佬说的修改主机源修改......
  • 《艾尔登法环》游戏启动时闪退提示缺少bink2w64.dll文件该怎么修复?艾尔登法环游戏崩溃
    当系统提示缺少bink2w64.dll文件时,您不必过于担忧。可以尝试重新安装相关软件来解决,或者从正规网站下载该文件并放置到指定目录。也可以利用系统的修复工具进行修复,多种途径助您解决这一问题。本篇将为大家带来缺少bink2w64.dll文件的修复方法的内容,感兴趣的小伙伴们一起来看看......
  • H7-TOOL新版固件2.26发布,增加20多款新系列芯片脱机烧录支持,CAN UDS解析,升级CAN助手,串
    H7-TOOL详细介绍(含操作手册):http://www.armbbs.cn/forum.php?mod=viewthread&tid=89934【PC软件】V2.261.PC软件取消自动检查版本,替换为手动按钮检查更新2.CAN助手  -支持时钟选择(20M40M80M),CANFD支持最高8M波特率(需支持8M的canPHY芯片)  -增加“J1939通用解......