普遍性函数
CompleteStop
表示CANoe停止前的preStop阶段的完成
这句话什么意思
需要结合下面的一个方法一起说明
DeferStop
推迟CANoe停止的生效
首先需要明白的是,当点击CANoe运行图标时,会经历两个阶段,preStart和start
我们可以在capl中用on preStart和on start这两个回调函数来设置CANoe运行时需要的一些条件
其中,preStart比start要更提前一点,然而,实际测试中发现它们完全同步
on preStart
{
write("preStart time: %d", timeNow()/100);
}
on start
{
write("start time: %d", timeNow()/100);
}
同样地,当停止CANoe运行时,也会经历两个阶段,preStop和stopMeasurement
我们可以在capl中用on preStop和on stopMeasurement这两个回调函数来设置CANoe停止时需要的一些条件
其中,preStop比stopMeasurement更早一点
这里要明确一点,只有preStop阶段完成,才会停止CANoe的运行
实际测试两者的时间差为
on preStop
{
write("preStop time: %d", timeNow()/100);
}
on stopMeasurement
{
write("stopMeasurement time: %d", timeNow()/100);
}
打印的结果为
可以看出preStop到真正的stop差10毫秒,也可以说是preStop持续10毫秒
DeferStop函数的作用是推迟stop生效,也可以看成是延长preStop持续的时间
可以做个试验
on preStop
{
write("preStop time: %d", timeNow()/100);
DeferStop(10000);
}
on stopMeasurement
{
write("stopMeasurement time: %d", timeNow()/100);
}
如果在preStop时调用函数DeferStop(10000),推迟stop生效的时间为10秒
打印的结果为
这里当你点击CANoe的stop按钮时,有个有趣的现象,就是点击stop时,首先打印了on preStop里的结果,然后stop图标并没有变灰色(说明程序未真正的停止),10秒以后,stop图标变为了不可用状态,且打印了on stopMeasurement里的结果
那函数CompleteStop呢,这里我们再做一个实验
on preStop
{
write("preStop time: %d", timeNow()/100);
DeferStop(10000);
}
on stopMeasurement
{
write("stopMeasurement time: %d", timeNow()/100);
}
on key 's'
{
CompleteStop();
}
当我们在10秒的preStop阶段内,点击键盘上的按键s,触发函数CompleteStop(),看下打印的结果
发现preStop到stop的时间差并没有10秒,说明调用的函数CompleteStop()完成了本应该持续10秒的preStop阶段,从而进入了stop阶段
GetBusContext
获取capl所在的节点的总线信息,返回的值不是总线channel,这必须要注意
可以把它理解成是一个句柄
GetBusNameContext
获取指定总线的信息,要传入指定总线名称
getConfigurationName
返回config文件的信息,这里可以理解成句柄,要传入config文件名作为参数
GetComputerName
获取计算机的全名
GetEventSortingStatus
确定事件排序状态是否正确,这里的事件通常指message
GetIPAddress
获取计算机的第一个ip地址
gmLanGetPID
这个咨询了做通用项目的小伙伴,像这种GMLAN字样的,都是通用独有的GMLAN网络协议,vector专门为它们集成在里面了
interpretAsDouble
这是数据类型的强制转换,把其他类型转成double类型
SetBusContext
设置capl模块的总线
traceSetEventColors
设置trace窗口中消息显示的字体和背景颜色
traceWindowClear
清除trace窗口中的内容
访问CANoe变量和面板
callAllOnEnvVar
调用所有的环境变量的on envVar事件,这个函数一般用在on start里,用来初始化环境变量
ClockControlReset
重置面板上的时钟控件
ClockControlStart
启动面板上的时钟控件
ClockControlStop
停止面板上的时钟控件
closePanel
关闭一个面板
DeleteControlContent
删除面板上的输出控件上的内容
enableControl
激活或停用面板上的指定的控件
getValue
获取环境变量的值
getValueSize
获取环境变量的值的字节的大小
MakeRGB
从三个原色值来计算颜色值,返回的值用来设置控件的背景色等
MakeARGB
根据alpha值和三个原色值计算颜色值,返回的值用来设置控件的背景色等
openPanel
打开一个面板
putValue
为环境变量赋值
putValueAsync
为环境变量赋值
putValueToControl
为面板上的控件赋值,这个值的类型是多样的,有可能是数字、字符串、消息等
SetClockControlTime
设置面板上的时钟控件的时间
SetControlBackColor
设置面板控件的背景颜色
SetControlColors
设置面板控件的背景和字体颜色
SetControlForeColor
设置面板控件的文本颜色
SetControlProperty
设置面板控件的属性
SetControlVisibility
设置面板控件的可见性
SetDefaultControlColors
将面板控件的背景和文本颜色恢复为默认颜色
SetMediaFile
替换媒体播放器的媒体文件
SetMediaStream
面板媒体流运行时替换指定索引处的媒体流
SetPictureBoxImage
替换面板图片框中的图片
sysSetVariableAsync
为系统变量赋值
字节交换
小端转大端