feat: add simplified windows x86 support
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
'use strict';
|
||||
|
||||
const log = require('../logger');
|
||||
|
||||
function box(lines) {
|
||||
const width = Math.max(...lines.map((line) => line.length), 28);
|
||||
const top = `+${'-'.repeat(width + 2)}+`;
|
||||
const body = lines.map((line) => `| ${line.padEnd(width)} |`);
|
||||
return ['', top, ...body, top, ''].join('\n');
|
||||
}
|
||||
|
||||
class BasicLed {
|
||||
constructor(name) {
|
||||
this.name = name;
|
||||
this._current = null;
|
||||
}
|
||||
on() { this._set('on'); }
|
||||
off() { this._set('off'); }
|
||||
blink() { this._set('blink'); }
|
||||
destroy() { this._set('off'); }
|
||||
_set(next) {
|
||||
if (this._current === next) return;
|
||||
this._current = next;
|
||||
log.debug('led', `[terminal] ${this.name} ${next}`);
|
||||
}
|
||||
}
|
||||
|
||||
class StatusLed {
|
||||
setSetup() { log.info('status', 'SETUP / waiting for activation'); }
|
||||
setApps() { log.info('status', 'APPS / activated'); }
|
||||
off() { log.debug('status', 'off'); }
|
||||
}
|
||||
|
||||
class Display {
|
||||
showAP() {
|
||||
log.info('display', box([
|
||||
'Claw Daemon',
|
||||
'Waiting for network',
|
||||
'Windows/x86 has no AP mode',
|
||||
]));
|
||||
}
|
||||
|
||||
showConn() {
|
||||
log.info('display', box([
|
||||
'Claw Daemon',
|
||||
'Connecting to claw cloud...',
|
||||
]));
|
||||
}
|
||||
|
||||
showErr0() {
|
||||
log.info('display', box([
|
||||
'Claw Daemon',
|
||||
'Connection error',
|
||||
]));
|
||||
}
|
||||
|
||||
showTime() {
|
||||
log.info('display', box([
|
||||
'Claw Daemon',
|
||||
'Running on Windows/x86',
|
||||
]));
|
||||
}
|
||||
|
||||
showPin(pin) {
|
||||
const s = String(pin || '').trim();
|
||||
log.info('display', box([
|
||||
'Claw Daemon Activation',
|
||||
`PIN: ${s}`,
|
||||
'Enter this PIN in the web console',
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
class LanLed {
|
||||
start() { log.debug('led', '[terminal] LAN monitor ignored'); }
|
||||
stop() { log.debug('led', '[terminal] LAN monitor stopped'); }
|
||||
}
|
||||
|
||||
const led = new BasicLed('network');
|
||||
led.bt = new BasicLed('bt');
|
||||
led.status = new StatusLed();
|
||||
led.display = new Display();
|
||||
led.lan = new LanLed();
|
||||
|
||||
module.exports = led;
|
||||
Reference in New Issue
Block a user