第一个.can文件
variables {
int i=0;
}
on start {
write("开始程序");
}
on key 语法
variables {
int i=0;
}
on start {
write("开始程序");
}
on key 'a' {
write("a执行了");
}
export void function_name(){}自定义函数
简单函数
variables {
int i=0;
}
on start {
write("开始程序");
}
export void function_name(){
write("function_name函数执行了");
}
函数参数和返回值
variables {
int i=0;
}
on start {
write("开始程序");
}
export int function_name(int j, char k){
write("function_name函数执行了j=d%,k=s%");
return j*j;
}
设置信号值
variables {
int i=0;
}
on start {
write("开始程序");
}
export void SetSignalValue(){
setSignal(sys_var_demo::speed, 0);
write("SetSignalValue成功");
}
on key 'a' {
setSignal(sys_var_demo::speed, 0);
write("SetSignalValue成功");
}
发送CAN报文
单帧
variables {
int i=0;
}
on start {
write("开始程序");
SetSignalValue();
}
export void SetSignalValue (){
message * Msg;
Msg.id = 0x111;
Msg.dlc= 15;
Msg.DataLength = 64;
Msg.FDF = 1;
Msg.BRS = 1;
Msg.byte(0) = 1;
Msg.byte(1) = 2;
Msg.byte(2) = 3;
output(Msg);
}
周期发送
variables {
msTimer msTime100;
}
on start {
write("开始程序");
setTimer(msTime100,100);
}
export void SetSignalValue (){
message * Msg;
Msg.id = 0x111;
Msg.dlc= 15;
Msg.DataLength = 64;
Msg.FDF = 1;
Msg.BRS = 1;
Msg.byte(0) = 1;
Msg.byte(1) = 2;
Msg.byte(2) = 3;
output(Msg);
}
on timer msTime100 {
SetSignalValue();
setTimer(msTime100,100);
}
on key 'a' {
setTimer(msTime100,100);
}
on key 'b' {
cancelTimer(msTime100);
}
停止周期发送
on key 'b' {
cancelTimer(msTime100);
}
使用capl编写测试用例
testcase CASE1(){
testStepPass("Step_1","步骤一执行成功);
testStepPass("Step_2","步骤二执行成功);
testStepPass("Step_3","步骤三执行成功);
testStepPass("Step_4","步骤四执行成功);
}
testcase CASE2(){
testStepPass("Step_1","步骤一执行成功);
testStepPass("Step_2","步骤二执行成功);
testStepPass("Step_3","步骤三执行成功);
testWaitForTimeout(500);
testStepFail("Step_4","步骤四执行成功);
}