fix(display): 用 printf 代替 echo,修复 VFD 写入失败及数字显示偏移问题
Made-with: Cursor
This commit is contained in:
@@ -113,14 +113,15 @@ class Display {
|
||||
showPinMiddle4(pin) {
|
||||
const s = String(pin || '');
|
||||
const mid4 = s.length >= 6 ? s.slice(1, 5) : s.padStart(4, '0').slice(-4);
|
||||
// 不加空格分隔符,内容直接跟在 #m3 后,否则空格占用第一个显示位
|
||||
this._write('#m3' + mid4);
|
||||
log.info('display', `显示屏 → PIN 中间4位: ${mid4}`);
|
||||
}
|
||||
|
||||
_write(val) {
|
||||
try {
|
||||
// 用 shell 管道写入,与 echo "..." | tee ... 行为完全一致
|
||||
execSync(`echo "${val}" | tee ${DISPLAY_PATH} > /dev/null`, { timeout: 3000 });
|
||||
// 用 printf 避免 echo 的换行符导致 sysfs 写入失败
|
||||
execSync(`printf '%s' "${val}" | tee ${DISPLAY_PATH} > /dev/null`, { timeout: 3000 });
|
||||
} catch (e) {
|
||||
log.warn('display', `写入失败: ${e.message}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user