Files
Cue-View/plugins/watchout/main.js
T

59 lines
1.5 KiB
JavaScript

exports.defaultName = 'Dataton Watchout';
exports.connectionType = 'TCPsocket';
exports.heartbeatInterval = 500;
exports.searchOptions = {
type: 'TCPport',
searchBuffer: Buffer.from('authenticate 1\n', 'ascii'),
testPort: 3040,
validateResponse (msg, info) {
return msg.toString().substring(0, 5) === 'Ready';
},
};
exports.defaultPort = 3040;
exports.ready = function ready(device) {
device.send('authenticate 1\n');
};
exports.data = function data(_device, _message) {
const message = message.toString();
const device = _device;
if (message.substring(0, 5) === 'Ready') {
device.send('getStatus\n');
}else if (message.substring(0, 5) === 'Reply') {
const arr = message.split(' ');
device.data.showName = '';
let i = 0;
while (arr[i][arr[i].length - 1] !== '"') {
i++;
device.data.showName += `${arr[i]} `;
}
device.data.showName = device.data.showName.substring(
1,
device.data.showName.length - 2
);
i--;
device.data.busy = arr[i + 2];
device.data.health = arr[i + 3];
device.data.displayOpen = arr[i + 4];
device.data.showActive = arr[i + 5];
device.data.programmerOnline = arr[i + 6];
device.data.position = Number(arr[i + 7]).toFixed(2);
device.data.rate = arr[i + 8];
device.data.standby = arr[i + 9];
this.deviceInfoUpdate(device, 'defaultName', device.data.showName);
device.draw();
}
};
exports.heartbeat = function heartbeat(device) {
device.send('getStatus\n');
};