Skip to content

命令脚本动作 ​

动作 15 执行受限的逐行命令序列,不执行 JavaScript。固件须包含 FASTBEE_ENABLE_COMMAND_SCRIPT;运行时 commandScript 是“规则引擎” ruleScript 的内部附属能力,依赖与强制组合开关由功能配置管理。功能、资源、来源或目标不可用时,不应继续输出。

支持的命令 ​

命令格式含义
GPIOGPIO <pin> HIGH|LOW受检查的直接数字引脚操作
DELAYDELAY <ms>延时,单次最多 10000 ms
PWMPWM <pin> <0..255>直接引脚 PWM 指令
DACDAC <pin> <value>直接引脚 DAC;芯片须支持,旧命令解析会钳位到 0~255
LOGLOG <message>写日志
PERIPHPERIPH <id> <subAction> [value]操作已配置外设
MQTTMQTT <topicIndex> <message>发布到配置主题的索引,索引不是 QoS

推荐 PERIPH 命名外设,以复用类型、资源、来源占用与配置版本检查。直接引脚命令也受受检输出路径限制,不能绕过专用电机、温控或已占用资源。

PERIPH 可解析 HIGH/LOW/STOP/TOGGLE/CLEAR,带参数的 PWM/DAC/BLINK/BREATHE/BRIGHTNESS、DISPLAY/TEXT 和可选页码 SHOW。执行还须符合目标类型;不能为任意外设使用所有子命令。灯效、步进、RTC 等专用参数使用对应动作或通用外设指令,不在脚本里虚构 COLOR 或 FORWARD 子命令。命名 PWM 使用外设分辨率,直接引脚 PWM 的范围是 0~255。

一次指示灯脉冲 ​

先配置 led1 为启用的数字输出,确认 HIGH 为预期电平:

text
PERIPH led1 HIGH
DELAY 300
PERIPH led1 LOW
LOG pulse finished

动作对象如下,不是完整导入文件:

json
{
  "actionType": 15,
  "targetPeriphId": "",
  "actionValue": "PERIPH led1 HIGH\nDELAY 300\nPERIPH led1 LOW\nLOG pulse finished",
  "syncDelayMs": 0,
  "execMode": 0
}

只支持以 # 开头的整行注释。不要在 GPIO/PERIPH/DELAY 后追加行尾注释,额外参数会使整份脚本解析失败。LOG 和 MQTT 中的 # 会作为正文。

限制与失败 ​

脚本文本最多 1024 字节、50 条命令,单次延时最多 10000 ms,延时总计最多 30000 ms,执行保护上限 35000 ms。先解析和校验完整脚本;某行非法不会执行有效前缀。执行期间已完成的输出不能自动回滚,首次失败或取消后不继续余下命令。

MQTT 命令绑定开始时的实际客户端实例和有效主题,单条消息及模板中间、最终输出都须满足 512 字节上限。有界发送槽最多 8 条等待项加 1 条保留项;同实例短时离线可准入,不保证送达。未知或更换实例、主题无效、锁忙、限流、OTA/NTP 限制或容量不足会使命令失败并停止后续命令。不得因此重放先前已经执行的硬件操作。

语法与模板区别见脚本系统,输出结果见动作检查。

蜂信物联 | fastbee.cn