CAPL通用函数整理---记录

目录

# capl通用函数   

## 总线连接  

## logging  

## 关闭/开启CANoe  

## Replay  

## CAN 总线  

## CAN控制器事件  

## 诊断函数  

## 系统变量  

## 获取系统时间

## 其他  

## file access  

## file  

## write

## 字符串处理API  

## 数字和字符串相互转换  


# capl通用函数   

## panel

|   函数名    |    功能        |  

|---------------|----------------| 

|   openPanel        |   打开Panel|  

|   closePanel        |   关闭panel |  

|   enableControl        |   启用或禁用控件|  

|   SetControlBackColor        |   设置Panel中控件的背景色|  

|   SetControlColors        |   设置Panel中控件和文字的背景色|  

|   SetControlForeColor        |   设置Panel中控件文字的颜色|  

|   SetControlVisibility        |   设置Paenl中控件可视性|  

|   SetMediaFile        |   替换Panel中Media Player控件的媒体文件|  

|   SetPictureBoxImage        |   替换Paenl中Picture Box的图片|  

***  

## timer

|   函数名    |    功能        |  

|---------------|----------------|  

|  on timer timer_user | 定时器事件入口 |

|   CancelTimer        |   取消正在运行的定时器|  

|   setTimer        |   设置一个定时器|  

|   getLocalTime        |   返回当前的日期和时间|  

***  

## 总线连接  

|   函数名    |    功能        |  

|---------------|----------------|  

|   canOffline        |   断开节点与总线之间的连接|  

|   canOnline        |   恢复总线与节点之间的连接|  

|   getStartdelay        |   设定该节点延迟开始的时间|  

|   stop        |   结束正在运行的测量|  

***  

## logging  

|   函数名    |    功能        |  

|---------------|----------------|  

|  setLogFileName        |   设置Logging文件的文件名|  

|  StartLogging        |   立刻开始所有Logging模块|  

|  StopLogging        |   立刻停止所有Logging模块|  

***  

## 关闭/开启CANoe  

|   函数名    |    功能        |  

|---------------|----------------|  

|   sysExit        在CAPL |   程序中退出CANoe运行|  

|   sysMinimize         |   最小化或恢复CANoe窗口|  

***  

## Replay  

|   函数名    |    功能        |  

|---------------|----------------| 

|   ReplayResume        |   恢复运行Replay模块|  

|   ReplayStart          |   开始运行Replay模块|  

|   ReplayState        |   返回当前Replay模块的状态|  

|   ReplayStop        |   结束运行Replay模块|  

|   ReplaySuspend        |   暂停运行Replay模块|  

***  

## CAN 总线  

|   函数名    |    功能        |  

|---------------|----------------|   

|   canGetDataLength        |   返回CAN Message的长度|  

|   canOutputErrorFrame        |   向CAN总线发送一帧错误帧|  

|   canConfigureBusOff        |   设置CAN总线状态为Bus Off|  

|   GetMessageID        |   得到CAN Message的ID|  

|   GetMessageName        |   得到CAN Message的名称|  

|   setSignalStartValues        |   设置在dbc中定义的Sig的初始值|  

|   resetCan        |   复位CAN控制器|  

|   ResetCanEx        |   复位指定通道的CAN控制器|  

|   canResetStatistics        |   复位CAN总线数据统计|  

|   Busload        |   返回当前通道的总线负载率|  

|   ChipState        |   返回当前CAN控制器状态|  

|   ErrorFrameCount        |   返回指定通道从测量开始错误帧的数量|  

|   StandardFrameCount        |   返回指定通道从测量开始标准帧的数量|  

***  

## CAN控制器事件  

|   函数名    |    功能        |  

|---------------|----------------|   

|   on busoff        |   CAN控制器进入Bus Off状态|  

|   on errorActive        |   CAN控制器进入主动错误状态|  

|   on errorPassive        |   CAN控制器进入被动错误状态|  

|   on warningLimit        |   CAN控制器达到报警线|  

***  

## 诊断函数  

|   函数名    |    功能        |  

|---------------|----------------|   

|   diagSetCurrentSeesion        |   设置当前ECU的诊断会话模式|  

|   diagInitialize        |   初始化诊断服务和数据|  

|   diagIsNegativeResponse        |   用于判断对象是否为否定响应,如果是则返回一个不等于0的值|  

|   diagIsPositiveResponse        |   用于判断对象是否是肯定响应,如果是则返回一个不等于0的值|  

|   diagSetPrimitiveData        |   用于设定诊断对象完整的原始数据|  

|   diagGetP2Extended        |   返回P2ex超时时间|  

|   diagGetP2Timeout        |   返回P2超时时间|  

|   diagSendResponse        |   用于发送诊断相应给诊断仪,仅用于ECU仿真节点时|  

|   diagSendPositiveResponse        |   用于发送肯定诊断响应给诊断仪,仅用于ECU仿真节点时|  

|   diagSendNegativeResponse        |   用于发送否定诊断响应给诊断仪,并指定错误代码|  

|   diagSendRequest        |   用于发送诊断请求给目标ECU|  

|   diagSendResponse        |   用于发送诊断响应给诊断仪,仅用于ECU仿真节点时|  

|   diagStartTesterPresent        |   用于设置CANoe开始向诊断目标ECU发送Tester Present|  

|   diagStopTesterPresnet        |   用于设置CANoe停止向诊断目标ECU发送Tester Present|  

***  

## 系统变量  

|   函数名    |    功能        |  

|---------------|----------------|  

|   sysSetVariableInt |   设置系统变量的值(整形)|  

|   SysGetVariableInt  |   获取系统变量的值   |  

***  

## 获取系统时间

- addTimeToMeasurementStartTime()

``` c  

long time[8];

addTimeToMeasurementStartTime(timeNowNS(), time);

writeLineEx(DVLogPage,4,"DV Log:%02d/%02d/%02d   %02d:%02d:%02d.%-3d",time[5]+1, time[4], time[6]-100, time[3], time[2], time[1], time[0]);

```  

***  

## 其他  

|   函数名    |    功能        |  

|---------------|----------------| 

|   getConfigurationName        |   返回当前工程文件名(不含后缀名)|  

|   GetComputerName        |   检索当前计算机的全称|  

|   GetIPAddress        |   检索当前默认IP地址|  

|   DeleteControlContent        |   清空CAPL Outputview 控件中的内容|  

|   MakeRGB        |   计算当前颜色值|  

|   putValue        |   为环境变量赋值|  

|   getValue        |   得到环境变量的值|  

|   getValueSize        |   以字节形式返回环境变量的大小|  

|   GetCANMessage        |   返回CAN或CAN FD报文的数据|  

***  

## file access  

- 获取文件所在位置路径  

    - getUserFilePath   

```c  

char WriteLogPath[255];

getUserFilePath("dv_writelog.txt",WriteLogPath,255);  

```

***  

## file  

|   函数名    |    功能        |  

|---------------|----------------|  

|   fileClose        |   关闭文件|  

|   fileGetBinaryBlock        |   从指定文件中读取二进制内容|  

|   fileGetString        |   从指定文件中读取字符串|  

|   filePutString        |   将字符串写入指定文件中|  

|   fileRewind        |   重置文件内容位置至文件开始处|  

|   fileWriteBinaryBlock        |   写字节到指定的文件中|  

|   getAbsFilePath        |   得到与当前工程相对路径的文件全名|  

|   getUserFilePath        |   得到文件的绝对路径|  

|   Open        |   打开指定文件名的文件|  

|   setFilePath        |   设置文件的读写路径|   

***  

## write

|   函数名    |    功能        |  

|---------------|----------------|  

|   write  |   在write窗口中输出信息 |  

|   writeClear |清除write窗口中指定页面中的内容|  

|   writeConfigure  |  在Write窗口中配置指定的页面 |  

|   writeCreate  | 在Write窗口中新建页面并指定名称  |  

|   writeEx   | 在指定的窗口或write窗口的页面中最后一行的末尾输出信息  |  

|   writeLineEX        |在指定的窗口或write窗口的页面中新起一行输出信息|  

|   writeTextBkgColor        |  设定write窗口的页面的背景色|  

|   writeTextColor        |  设置write窗口页面中的文字颜色|  

|   setWriteDbgLevel  |        设置writeDbgLevel函数的优先等级|  

|   WriteDbgLevel  |           在write窗口以特定等级输出信息|  

``` c  

long DVLogPage;//应为全局变量

    DVLogPage= writeCreate("DV message");

    writeConfigure(DVLogPage, 20, 1,WriteLogPath);  //需要写的txt文件路径

    writeclear(1);

    writeLineEx(DVLogPage,2,"DV message report");

```    

## 字符串处理API  

|   函数名    |    功能        |  

|---------------|----------------|  

|strncat  | 将源字符串拼接到到目的字符串后面,注意“\0”也占用一个字节。|  

|strncmp | 字符串数组比较|  

|strncpy | 把源字符串拷贝到目的字符串数组,拷贝长度由len参数决定,拷贝过程会覆盖目的字符串数组原来内容。|  

| strncpy_off | 相当于 strncpy 和 strncat 的结合 |  

|str_replace  |  搜索并替代字符串 |  

|swapWord | 高低位切换 |  

## 数字和字符串相互转换  

|   函数名    |    功能        |  例子 |  

|---------------|----------------| ---|  

|atol   | 长整形的字符串转为整形 | long z1 = atol("200");|  

|atodbl | 浮点数的字符串转为整形 | double d1 = atodbl("-3.5");|  

|_atoi64 | 64字节的字符串转为整形 | int i64 = _atoi64("4564616546516");|  

|strtod | 复合整型字符串转为整形 | |  

| ltoa  | 整型转字符串,第三个参数选择转换出来的进制类型,2:二进制,10:十进制,16:十六进制   | long z = 255; char s1[10]; ltoa(z,s1,16); |  

|_gcvt  |浮点数转字符串 | char s1[15]; float f1 = 3.1415926; _gcvt(f1,10,s1);|  

***  

  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的CAPL示例代码,用于进行诊断测试: ```c variables { message Diagnostic_Request; message Diagnostic_Response; } on key 't' // 按下 't' 键触发测试 { // 构造诊断请求消息 Diagnostic_Request.dlc = 8; Diagnostic_Request.ID = 0x7DF; Diagnostic_Request.byte(0) = 0x02; // 控制服务ID Diagnostic_Request.byte(1) = 0x10; // 请求子功能ID(可以根据需求修改) // 其他字节根据需求设置 // 发送诊断请求消息 output(Diagnostic_Request); // 等待诊断响应消息 Diagnostic_Response = waitMessage(0x7E8, 1000); // 等待1秒钟接收响应消息 if (Diagnostic_Response.ID == 0x7E8) // 接收到诊断响应消息 { // 处理诊断响应消息 // 可以根据响应消息的内容进行相应的处理操作 // 如判断响应码、处理数据等 } else // 未接收到诊断响应消息 { // 处理未接收到响应消息的情况 // 可以进行相应的错误处理操作 } } ``` 上述代码中,按下 't' 键会触发诊断测试。该代码构造了一个诊断请求消息,并发送到车辆网络中。然后,等待1秒钟接收诊断响应消息。接收到响应消息后,可以根据响应消息的内容进行相应的处理操作,例如判断响应码、处理数据等。 请注意,以上示例代码仅为演示目的,实际的诊断测试代码需要根据具体的诊断协议和需求进行调整和扩展。在实际使用中,您可能还需要处理多个请求和响应、解析诊断数据等。此示例仅供参考,具体的实现方式可能因系统和需求而异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值