🚗 CANalyzer 实战
CAPL 自动分析脚本
🎒 风格 · 30章完整版
01
CANalyzer基础与CAPL概述
工具界面介绍
CAPL语言特点
第一个脚本Hello World
02
CAPL数据类型与变量
int, long, byte, word, dword
枚举与结构体
变量作用域与生命周期
03
CAPL运算符与表达式
算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
04
CAPL流程控制
if-else
switch-case
for循环
while循环
do-while循环
05
CAPL函数定义与调用
函数声明与定义
值传递与引用传递
返回值
系统/自定义函数
06
CAN报文基础
帧结构 SOF, ID, DLC…
标准帧与扩展帧
数据帧与远程帧
07
CAPL中的报文发送
output()函数
设置ID与数据
周期/事件触发发送
08
CAPL中的报文接收
on message事件
ID过滤与匹配
接收数据解析
09
信号与信号矩阵
DBC文件基础
信号定义与属性
$SignalName访问
10
CAPL中的定时器
msTimer / timer
设置与启动
回调函数
应用场景
11
CAPL中的系统变量
定义与使用
与面板交互
on sysvar事件
12
CAPL中的环境变量
环境变量概念
与系统变量区别
读写环境变量
13
CAPL中的文件操作
openFile / fileClose
读写文本文件
读写二进制文件
14
CAPL中的字符串处理
strlen, strcmp, strcpy…
字符串与数字转换
格式化输出
15
CAPL中的数组与缓冲区
一维/二维数组
循环缓冲区
FIFO队列实现
16
CAPL中的诊断功能
诊断请求与响应
UDS协议基础
diagRequest发送
17
CAPL中的LIN总线操作
LIN帧结构
发送与接收LIN
调度表操作
18
CAPL中的FlexRay操作
FlexRay帧结构
发送与接收
网络管理
19
CAPL中的以太网操作
以太网帧结构
TCP/UDP协议
收发以太网报文
20
CAPL中的面板编程
创建控件(按钮/输入框)
控件事件处理
面板与脚本交互
21
CAPL中的数据库访问
CANdb++创建DBC
加载DBC
通过信号名称访问
22
CAPL中的日志记录
write()输出日志
日志级别控制
写入文件
23
CAPL中的测试功能
测试模块与测试用例
testPass / testFail
测试报告生成
24
CAPL中的仿真节点
创建仿真节点
节点状态机
节点间通信与同步
25
CAPL中的网络管理
CAN NM基础
实现NM状态机
NM报文处理
26
CAPL中的错误处理
错误检测与处理
try-catch模拟
运行时错误与调试
27
CAPL多线程与并发
伪多线程机制
事件驱动模型
避免竞态条件
28
CAPL与外部程序交互
COM接口调用外部程序
DLL扩展功能
与Python脚本交互
29
CAPL脚本性能优化
减少系统调用
合理使用定时器
内存管理
代码重构
30
综合实战:CAN总线自动化测试
需求分析
架构设计
模块实现
集成测试与调试