@signageos/front-applet-extension-nexmosphere
Version:
Nexmosphere extension for signageOS Front Applet
40 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = require("events");
const ISerialPort_1 = require("@signageos/nexmosphere-sdk/es6/ISerialPort");
const SerialPortReadlineParser_1 = require("./SerialPortReadlineParser");
/**
* Wrapper class that wraps serial port instance from front applet and implements ISerialPort interface that nexmosphere library requires
*/
class SerialPort {
constructor(serialPort) {
this.serialPort = serialPort;
this.eventEmitter = new events_1.EventEmitter();
this.parser = new SerialPortReadlineParser_1.default(serialPort);
this.bindEvents();
}
on(event, listener) {
this.eventEmitter.on(event, listener);
}
removeListener(event, listener) {
this.eventEmitter.removeListener(event, listener);
}
removeAllListeners(event) {
if (event) {
this.eventEmitter.removeAllListeners(event);
}
else {
this.eventEmitter.removeAllListeners();
}
}
sendMessage(message) {
this.serialPort.write(message + '\r\n');
}
bindEvents() {
this.parser.onData((data) => {
this.eventEmitter.emit(ISerialPort_1.SerialPortEvent.MESSAGE, data);
});
}
}
exports.default = SerialPort;
//# sourceMappingURL=SerialPort.js.map