Files
clawd/lib/led.js
2026-04-26 23:12:12 +08:00

40 lines
1.2 KiB
JavaScript

'use strict';
const log = require('./logger');
const { isRK3566, readDeviceModel } = require('./led/detect');
function loadImpl() {
const forced = String(process.env.CLAWD_LED_IMPL || '').trim().toLowerCase();
const model = readDeviceModel();
let name;
if (forced) {
name = forced;
} else if (isRK3566()) {
name = 'rk3566';
} else {
name = 'openvfd';
}
try {
if (name === 'rk3566' || name === '3566') {
log.info('led', `LED/VFD backend → rk3566-openvfd (${model || 'unknown model'})`);
return require('./led/rk3566-openvfd');
}
if (name === 'noop' || name === 'none' || name === 'off') {
log.info('led', `LED/VFD backend → noop (${model || 'unknown model'})`);
return require('./led/noop');
}
if (name !== 'openvfd' && name !== 'default') {
log.warn('led', `未知 CLAWD_LED_IMPL=${name},回退 openvfd`);
}
log.info('led', `LED/VFD backend → openvfd-class (${model || 'unknown model'})`);
return require('./led/openvfd-class');
} catch (e) {
log.warn('led', `LED/VFD backend ${name} 加载失败:${e.message},回退 noop`);
return require('./led/noop');
}
}
module.exports = loadImpl();