Commit Graph

27 Commits

Author SHA1 Message Date
48f64a6858 feat(led): add rk3588 lvgl display backend 2026-05-23 16:01:31 +08:00
stswangzhiping
cdf2a5f5ac feat: skip VFD on RK3588 devices (v1.3.8)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-08 22:38:18 +08:00
OpenClaw Bot
03dc7c2527 feat: split VFD backends by hardware 2026-04-26 23:12:12 +08:00
stswangzhiping
fb8a408f93 fix(led): VFD 管道用 O_NONBLOCK 防止事件循环阻塞
FIFO 写入改为 O_WRONLY | O_NONBLOCK:
- 无读端(vfdservice 关闭读端后)openSync 立即抛 ENXIO 而非永久阻塞
- showPin blink timer 每 500-1000ms 自动重试,vfdservice 恢复读后
  即可成功显示 PIN,彻底解决"长时间激活后解绑 PIN 不闪"问题

同时移除 66b94d8 加的 showTime keepalive:
- keepalive 用的也是阻塞 openSync,vfdservice 关闭读端时反而会
  在 setTimeout 回调里阻塞整个事件循环,比不加更危险

Made-with: Cursor
2026-04-03 19:01:14 +08:00
stswangzhiping
66b94d828f fix: 还原 inactive 路径 restartGateway + showTime keepalive
1. 还原 7737e08:removeProviderByName 重新调用 restartGateway(),
   inactive/active 状态变化均重启 gateway 使 openclaw.json 生效

2. led.js showTime() 加 30s keepalive 定时器:持续向 vfdservice
   管道写入,防止长时间无写入后管道"冷却",导致随后 showPin()
   调用 openSync(FIFO, 'w') 因无读端而阻塞、blink timer 无法触发

Made-with: Cursor
2026-04-03 18:40:08 +08:00
stswangzhiping
fcee9ca709 fix(led): blink AP on VFD like Conn/PIN for provisioning visibility 2026-03-29 13:49:48 +08:00
stswangzhiping
23afd24f4d feat(led): drive VFD digits via vfdservice pipe (TITLE/CLOCK), keep display API 2026-03-29 13:40:56 +08:00
stswangzhiping
f7c462220e fix(led): map LAN to play icon and WiFi status to wifi+eth pair 2026-03-28 22:39:26 +08:00
stswangzhiping
1910a2fb9f fix(led,provision): AP forces WiFi(play) off; LAN uses carrier+operstate
- Monitor: every tick in ap state led.off() so play never stays on with hotspot
- hasLanCableCarrier: _ifacePhysicalLinkUp (carrier=1 and operstate not down)
- When end0/eth0 exist but link down, return false (no fallback to hasWiredCarrier)
- LAN poll 500ms

Made-with: Cursor
2026-03-28 22:15:48 +08:00
stswangzhiping
8f5a8ec896 fix(led): swap WiFi(play)/LAN(wifi+eth), LAN carrier via CLAWD_ETH_IFACE, faster alarm
- WifiLed drives play; LanLed drives wifi+eth pair (matches panel silkscreen)
- hasLanCableCarrier(): CLAWD_ETH_IFACE-only carrier when set (reliable unplug)
- LAN poll 1s; config.activated persisted for immediate setApps on boot/reconnect
- setApps double vfdOn alarm after 50ms for slow OpenVFD
- Clear activated + setSetup on credential errors
- install.sh env comment for CLAWD_ETH_IFACE

Made-with: Cursor
2026-03-28 21:50:56 +08:00
stswangzhiping
347b19a0c9 feat(led): OpenVFD sysfs (wifi+eth, alarm, play/lan), skip BT without hci
- Write /sys/class/leds/openvfd led_on/led_off (CLAWD_OPENVFD_PATH)
- WiFi product LED: wifi+eth together; SETUP/APPS -> alarm off/on
- LanLed polls hasWiredCarrier -> play; export led.lan, start/stop from client
- BT monitor only if CLAWD_DISABLE_BT unset and hci* exists (RK3528)
- Display strings remain debug-only (数码管暂不驱动)
- install.sh env template: CLAWD_DISABLE_BT, CLAWD_OPENVFD_PATH comments

Made-with: Cursor
2026-03-28 21:35:38 +08:00
stswangzhiping
402440aadc refactor(led): drop openvfd sysfs writes, log [vfd] at debug
- WiFi/BT/status/display: no fs/tee; preserve info-level state messages
- install: remove ExecStartPre openvfd init

Made-with: Cursor
2026-03-27 16:31:17 +08:00
stswangzhiping
37e93c66eb feat: 添加蓝牙指示灯(b6)控制
led.js: 新增 BtLed 类,路径 /sys/devices/platform/openvfd/attr/b6
  - blink() AP 配网进行中
  - on()    配网成功 / WiFi 已连接
  - off()   蓝牙不工作 / 初始/停止状态

provisioning.js: 各配网状态同步驱动 BT 灯
  - AP 模式 / 等待自动重连 → 闪烁
  - WiFi 连接成功 → 常亮
  - stop() → 熄灭

Made-with: Cursor
2026-03-24 22:58:10 +08:00
stswangzhiping
878f3592bf feat: connect 消息上报 local_ip 和 external_ip
Made-with: Cursor
2026-03-21 08:18:27 +08:00
stswangzhiping
9b4287db1d feat(vfd): showConn blink on WS connecting, showErr0 on VPS unreachable
Made-with: Cursor
2026-03-19 23:17:08 +08:00
stswangzhiping
53b9804c72 feat(led): showErr(code) + WS fail>=3 shows ERRa or AP on VFD
Made-with: Cursor
2026-03-19 22:44:56 +08:00
stswangzhiping
fba9d401c2 feat(display): PIN 显示时加闪烁效果(亮1s灭0.5s)
Made-with: Cursor
2026-03-19 09:13:07 +08:00
stswangzhiping
b4fa850445 feat(display): PIN 改为 4 位,showPinMiddle4 → showPin
Made-with: Cursor
2026-03-19 08:57:44 +08:00
stswangzhiping
ce7f9f028e fix(display): 改用 #m2 模式显示 PIN 数字,修复 #m3 不支持数字导致的显示错误
Made-with: Cursor
2026-03-19 08:52:52 +08:00
stswangzhiping
33046948b9 fix(display): 用 printf 代替 echo,修复 VFD 写入失败及数字显示偏移问题
Made-with: Cursor
2026-03-19 08:37:00 +08:00
stswangzhiping
57c0a1b6f8 feat(display): 未激活+连网时 VFD 显示 PIN 码中间4位
Made-with: Cursor
2026-03-19 07:37:57 +08:00
stswangzhiping
a737101c2e fix(display): use execSync shell pipe instead of fs.writeFileSync to avoid EINVAL
Made-with: Cursor
2026-03-18 21:11:22 +08:00
stswangzhiping
9da4cd0aa1 feat: VFD display shows AP when disconnected, time when connected
Made-with: Cursor
2026-03-18 21:10:14 +08:00
stswangzhiping
a0f767f267 fix(led): swap SETUP/APPS paths, WiFi LED off in AP mode
Made-with: Cursor
2026-03-18 20:56:49 +08:00
stswangzhiping
90bba5f348 feat: add SETUP/APPS status LEDs (b2/b1), toggle on activation
Made-with: Cursor
2026-03-18 20:25:54 +08:00
stswangzhiping
b95e909d48 fix(led): use log.info for LED state, show write errors and hasInternet failures
Made-with: Cursor
2026-03-18 20:07:31 +08:00
stswangzhiping
875e69a454 feat: add WiFi LED indicator (openvfd b5)
Made-with: Cursor
2026-03-18 19:47:20 +08:00