XScript 手册 · Chapter 15

TOWERLAMP — 三色灯 · 蜂鸣器控制

TOWERLAMP 全局对象统一控制设备的 状态灯(Red/Orange/Green/Blue)蜂鸣器。各状态(INITRUNSTOPERROR …)以 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)单次提示音

属性

属性类型说明
CurrentStatestring当前状态名
Countint已注册状态数
RedOn / OrangeOn / GreenOn / BlueOnbool各颜色是否 ON
BuzzerOnbool蜂鸣器是否 ON
IsExistBlueLampIO / IsExistBuzzerIObool硬件是否连接
RedLampIoName / OrangeLampIoName / GreenLampIoName / BlueLampIoName / BuzzerIoNamestring映射的 IO 名称

提示

  • 状态预设需在 TowerLamp Editor 中预先注册。脚本仅以名称引用。
  • 在没有蓝灯·蜂鸣器的设备上,先用 IsExistBlueLampIOIsExistBuzzerIO 确认存在与否后再调用。
  • 可用 BeepYes() / BeepNo() 一致地实现用户触摸反馈。