CAPL 提供了一系列用户界面函数,用于创建交互式测试环境和增强用户体验。这些函数允许您与测试人员交互、控制面板元素以及自定义界面显示。
一、对话框交互函数
1. 消息提示框
- testWaitForUser() - 显示消息并等待用户确认
testWaitForUser("请确认连接好测试设备", "连接确认");
- writeWindow() - 在指定窗口输出信息
writeWindow("Diagnostic", "开始诊断流程...");
2. 输入对话框
- getValue() - 获取用户输入的数值
int threshold = getValue("请输入阈值", "参数设置", 50, 0, 100);
- getString() - 获取用户输入的字符串
char filename[100];
getString("请输入日志文件名", "文件设置", filename, elcount(filename));
二、测试步骤控制函数
1. 测试步骤交互
- testStepPrompt() - 带交互的测试步骤
testStepPrompt("执行传感器校准", "请等待校准完成", "校准完成?");
- testStepInteract() - 更复杂的交互步骤
testStepInteract("手动测试", "请按下设备按钮", "按钮已按下?", "是", "否");
三、面板控制函数
1. 面板操作
- setPanelValue() - 设置面板控件值
setPanelValue("MainPanel", "EngineSwitch", 1); // 打开引擎开关
- getPanelValue() - 获取面板控件值
int state = getPanelValue("MainPanel", "EngineSwitch");
2. 面板显示
- setPanelText() - 设置面板文本
setPanelText("StatusPanel", "MessageBox", "系统初始化中...");
- setPanelColor() - 设置面板颜色
setPanelColor("AlarmPanel", "WarningLight", "red");
四、图形显示函数
1. 曲线图控制
- addGraphPoint() - 添加数据点到曲线图
addGraphPoint("RPM_Graph", timeNow(), getSignal(this, "EngineSpeed"));
- clearGraph() - 清除曲线图数据
clearGraph("RPM_Graph");
2. 仪表显示
- setGaugeValue() - 设置仪表值
setGaugeValue("SpeedGauge", getSignal(this, "VehicleSpeed"));
五、多媒体函数
1. 声音提示
- playSound() - 播放声音文件
playSound("warning.wav");
2. 图像显示
- showImage() - 显示图片
showImage("status_ok.png");
六、综合应用示例
variables {
char operatorName[50];
int testCount;
}
on start {
// 获取操作员信息
getString("请输入您的姓名", "操作员登录", operatorName, elcount(operatorName));
// 显示欢迎信息
setPanelText("MainPanel", "WelcomeLabel", strcat("欢迎, ", operatorName));
// 初始化测试
testCount = 0;
setupTestEnvironment();
}
on key 's' {
// 开始测试
if(testWaitForUser("确认开始测试?", "测试确认") == 1) {
runTestSequence();
}
}
on testStepPass {
testCount++;
setPanelValue("MainPanel", "TestCounter", testCount);
setPanelColor("MainPanel", "StatusLight", "green");
playSound("beep_ok.wav");
}
on testStepFail {
setPanelColor("MainPanel", "StatusLight", "red");
playSound("alarm.wav");
addGraphPoint("ErrorGraph", timeNow(), ++errorCount);
}
七、注意事项
- 线程安全:UI函数通常在主线程执行
- 性能考虑:避免高频更新UI元素
- 错误处理:检查用户输入的有效性
- 国际化:考虑多语言支持
- 布局兼容性:适应不同分辨率的显示器
CAPL的用户界面函数可以创建高度交互的测试环境,特别适合需要人工参与或监控的测试场景。通过合理使用这些函数,可以显著提升测试效率和用户体验。