diff --git a/lib/led.js b/lib/led.js index f72c0d0..1ba2c5f 100644 --- a/lib/led.js +++ b/lib/led.js @@ -1,7 +1,8 @@ 'use strict'; -const fs = require('fs'); -const log = require('./logger'); +const fs = require('fs'); +const { execSync } = require('child_process'); +const log = require('./logger'); /** * 前面板指示灯控制 @@ -110,9 +111,10 @@ class Display { _write(val) { try { - fs.writeFileSync(DISPLAY_PATH, val); + // 用 shell 管道写入,与 echo "..." | tee ... 行为完全一致 + execSync(`echo "${val}" | tee ${DISPLAY_PATH} > /dev/null`, { timeout: 3000 }); } catch (e) { - log.warn('display', `写入失败 (${DISPLAY_PATH}): ${e.message}`); + log.warn('display', `写入失败: ${e.message}`); } } }