XScript 手册 · Chapter 15
TOWERLAMP — 三色灯 · 蜂鸣器控制
TOWERLAMP 全局对象统一控制设备的 状态灯(Red/Orange/Green/Blue) 与
蜂鸣器。各状态(INIT、RUN、STOP、ERROR …)以
IO 组合预设的形式注册在 TowerLamp Editor 中。
基础示例
xscript
TOWERLAMP.SetLamp("INIT");
Sleep(1000);
if (TOWERLAMP.CurrentState == "INIT")
{
TOWERLAMP.SetLamp("STOP");
}
else
{
TOWERLAMP.BeepNo();
}实战示例 — 系统事件钩子
xscript
FUNCTION OnSystemStart()
{
TOWERLAMP.SetLamp("RUN");
return true;
}
FUNCTION OnSystemStop()
{
TOWERLAMP.SetLamp("STOP");
return true;
}
FUNCTION OnSystemError()
{
TOWERLAMP.SetLamp("ERROR");
TOWERLAMP.BeepNo();
}
FUNCTION OnSystemReset()
{
if (SYS.IsRunning)
{
TOWERLAMP.SetLamp("RUN");
}
else
{
TOWERLAMP.SetLamp("STOP");
}
}方法
| 签名 | 说明 |
|---|---|
bool SetLamp(string state) | 切换为已注册的状态预设 |
bool SetBuzzer(bool on) | 蜂鸣器 ON/OFF |
bool Contains(string lampState) | 该状态名是否存在 |
void Stop(void) | 停止当前灯/蜂鸣器动作 |
void BeepInitCompleteSound(void) | 初始化完成旋律 |
void BeepYes(void) | 确认提示音 |
void BeepNo(void) | 拒绝/错误提示音 |
void Beep(void) | 单次提示音 |
属性
| 属性 | 类型 | 说明 |
|---|---|---|
CurrentState | string | 当前状态名 |
Count | int | 已注册状态数 |
RedOn / OrangeOn / GreenOn / BlueOn | bool | 各颜色是否 ON |
BuzzerOn | bool | 蜂鸣器是否 ON |
IsExistBlueLampIO / IsExistBuzzerIO | bool | 硬件是否连接 |
RedLampIoName / OrangeLampIoName / GreenLampIoName / BlueLampIoName / BuzzerIoName | string | 映射的 IO 名称 |
提示
- 状态预设需在 TowerLamp Editor 中预先注册。脚本仅以名称引用。
- 在没有蓝灯·蜂鸣器的设备上,先用
IsExistBlueLampIO、IsExistBuzzerIO确认存在与否后再调用。 - 可用
BeepYes()/BeepNo()一致地实现用户触摸反馈。