在CAPL自动化开发中,特别是通过Vector CAPL Browser开发中,最终都是通过仿真节点来进行最终的测试,然而这种测试方式没有自动化执行过程报告,只能通过最后的html报告来查看执行过程,那我们是否有更好的调试方法呢?当然是有的,那就是write窗口,通过该窗口我们不但可以打印执行流程的log,也可以输出任意我们需要的数据,方便快捷的实现自动化调试;下面我们就来介绍与之相关的常见函数。
功能:将文本消息输出到写入窗口。Write基于C函数printf。
编译器无法检查格式字符串。非法的格式条目将导致未定义的结果。使用写入功能输出的消息将显示在单独的行上。
注意:%n格式无效,不能使用
CAPL Type |
Display Description |
Format Windows |
Format Linux |
int |
int型显示 |
%d |
%d |
long |
long型显示 |
%ld |
%d |
int64 |
int64型显示 |
%I64d or %lld |
%ld or %lld |
byte/word |
无符号显示 |
%u |
%u |
dword |
无符号显示 |
%lu |
%u |
qword |
无符号显示 |
%I64u or %llu |
%lu or %llu |
byte/word/int |
十六进制显示 |
%x |
%x |
dword/long |
十六进制显示 |
%lx |
%x |
qword/int64 |
十六进制显示 |
%I64x or %llx |
%lx or %llx |
byte/word/int |
十六进制显示(大写) |
%X |
%X |
dword/long |
十六进制显示(大写) |
%lX |
%X |
qword/int64 |
十六进制显示(大写) |
%I64X or %llX |
%lX or %llX |
byte/word/int |
八进制显示 |
%o |
%o |
dword/long |
八进制显示 |
%lo |
%o |
qword/int64 |
八进制显示 |
%I64o or %llo |
%lo or %llo |
float/double |
浮点型显示 |
%g or %f |
%g or %f |
字符型显示 |
%c |
%c |
|
字符串显示 |
%s |
%s |
|
%字符的显示 |
%% |
%% |
|
dword |
32-bit pointer (without implicit pointer format 0xABABABAB) |
%p |
%08x |
32-bit pointer (with implicit pointer format 0xABABABAB) |
%#p |
%p |
|
qword |
64-bit pointer (without implicit pointer format 0xABABABABABABABAB) |
%I64p |
%016lx |
64-bit pointer (with implicit pointer format 0xABABABABABABABAB) |
%#I64p |
%p |
float f=123.456;
on key 'h'
{
write("Hello World!");
write("f = %5.3f",f);
write("format is not supported for the given variable");
write("f = %7.3f",f);
write("f = %9.3f",f);
}
on key 'q'
{
qword q = 0x1234567890ABCDEFLL;
write("Decimal: %I64u", q);
write("Hexadecimal: %I64X", q);
}
on key 'd'
{
dword d = 0x1234;
write("Decimal: %u", d);
write("Hexadecimal: %X", d);
}
功能:清除“写入窗口”中指定页面的内容。目标标识符或消息类型使用以下常量:
//写入接收器
双字WRITE_SYSTEM=0;
双字WRITE_CAPL=1;
使用writeCreate函数返回的目标标识符之一。可以使用“-1”作为参数清除所有选项卡。Overview页面不能单独清除。
sink:要删除的页面的目标标识符。
功能:在写入窗口中生成具有指定名称的新页面;下次开始测量时,页面将自动删除。
name:创建新页面的名字
返回值:对输出到新页面有效的接收器标识符
功能:从写入窗口中删除指定的页面。只能删除借助writeCreate函数创建的页面。
sink:要删除的页面的目标标识符
variables
{
//接收器标识符
long mNewPage;
}
on start
{
//在写入窗口创建新页面
mNewPage= writeCreate("New Page");
//配置页面以记录其内容
writeConfigure(mNewPage, 20, 1, "c:\\temp\\writelog.TXT");
//清除CAPL页面的内容
writeclear(1);
//显示程序说明
writeLineEx(mNewPage,2,"This program shows the keyboard sequence in a new created Page ");
writeLineEx(mNewPage,4,"\nKeyboard sequence: ");
}
on key *
{
//在“新建页面”中显示当前密钥
char currentKey;
currentKey = this;
writeEx(mNewPage,4,"%c ",currentKey);
}
on stopMeasurement
{
//关闭新创建的页面
writeDestroy(mNewPage);
}
功能:将文本写入指定窗口的最后一行或写入写入窗口的页面,而不必创建新行。
说明:将文本写入指定CANoe窗口的最后一行、写入窗口的页面或日志文件中,而无需创建新行。
要写入CANoe Trace Window,请在跟踪窗口的预定义过滤器中激活CAPL系统消息。
sink:将向其进行输出的页面的接收器标识符
-3 |
CANoe Trace窗口 |
-2 |
输出到日志文件(仅以ASC格式,如果CAPL节点插入到日志块前面的测量设置中)保留 |
-1 |
保留值 |
0 |
输出到write窗口的System页面 |
1 |
输出到write窗口的CAPL页面 |
4 |
输出到write窗口的Test页面 |
severity:消息类型的常量。
0 |
Success |
1 |
Information |
2 |
Warning |
3 |
Error |
format:输出类型,参考write参数介绍
功能:将文本写入指定窗口的新行或写入窗口的页面
说明:将文本写入指定CANoe窗口的最后一行、写入窗口的页面或日志文件中,而无需创建新行。
要写入CANoe Trace Window,请在跟踪窗口的预定义过滤器中激活CAPL系统消息。
其他参数参考WriteEx函数
功能:设置“写入窗口”中指定页面的文本背景颜色
说明:设置“写入窗口”中指定页面的文本背景颜色;您可以使用以下常量作为目标标识符:
//写入接收器
双字WRITE_SYSTEM=0;
双字WRITE_CAPL=1;
此外,您可以使用writeCreate函数返回的目标标识符之一;颜色设置也会影响“写入窗口”的“全部”页面。
sink:颜色设置应影响的页面的目标标识符。
red:指定红色的强度。
green:指定绿色的强度。
blue:指定蓝色的强度。
WriteTextBkgColor(0,0,255,0);
WriteLineEx(0,1,"This is red text with green background");
WriteTextColor(0,0,0,0);
WriteTextBkgColor(0,255,255,255);
WriteLineEx(0,1,"This is black text with white background");
功能:设置“写入窗口”中指定页面的文本颜色
参数参考函数writeTextBkgColor
WriteTextColor(0,255,0,0);
WriteLineEx(0,1,"This is red text");
以上就是write窗口或log输出常用函数,方便大家的代码调试和问题分析,欢迎评论区沟通!!!