bugfix basically everything about heartbeats

This commit is contained in:
sparks-alec
2023-01-08 23:11:07 -05:00
parent 185b360d8a
commit ababf93e2b
3 changed files with 26 additions and 14 deletions
+17 -3
View File
@@ -7,8 +7,8 @@ exports.config = {
connectionType: 'osc',
defaultPort: 53000,
mayChangePort: true,
heartbeatInterval: 500,
heartbeatTimeout: 5000,
heartbeatInterval: 100,
heartbeatTimeout: 9000,
searchOptions: {
type: 'Bonjour',
bonjourName: 'qlab',
@@ -303,7 +303,12 @@ exports.data = function data(_device, oscData) {
}
} else if (match(oscAddressParts, ['update', 'workspace', '*', 'disconnect'])) {
delete device.data.workspaces[oscAddressParts[2]];
if (Object.keys(device.data.workspaces).length === 0) {
device.data.permission = 'no workspaces';
}
device.draw();
} else if (match(oscAddressParts, ['reply', 'thump'])) {
// intermittent connection check even if nothing's happening
} else {
// console.log(address)
}
@@ -392,7 +397,16 @@ exports.heartbeat = function heartbeat(device) {
interval = 1;
}
if (heartbeatCount % interval === 0) {
if (heartbeatCount % 20 === 0 && device.data.workspaces && Object.keys(device.data.workspaces).length === 0) {
device.send(`/version`);
device.send('/workspaces');
}
if (heartbeatCount % 50 === 0) {
device.send(`/thump`);
}
if (heartbeatCount % interval === 0 && device.data.workspaces && Object.keys(device.data.workspaces).length > 0) {
device.send(`/cue_id/active/preWaitElapsed`);
device.send(`/cue_id/active/actionElapsed`);
device.send(`/cue_id/active/postWaitElapsed`);
+7 -1
View File
@@ -44,7 +44,9 @@ function registerDevice(newDevice, discoveryMethod) {
pinIndex: false,
lastDrawn: 0,
lastHeartbeat: 0,
lastMessage: 0,
heartbeatInterval: PLUGINS.all[newDevice.type].heartbeatInterval,
heartbeatTimeout: PLUGINS.all[newDevice.type].heartbeatTimeout,
draw() {
VIEW.draw(this);
},
@@ -168,6 +170,7 @@ function initDeviceConnection(id) {
device.connection.on('message', (msg, info) => {
plugins[type].data(device, msg);
device.lastMessage = Date.now();
infoUpdate(device, 'status', 'ok');
});
});
@@ -185,6 +188,7 @@ function initDeviceConnection(id) {
device.connection.on('message', (msg, info) => {
plugins[type].data(device, msg);
device.lastMessage = Date.now();
infoUpdate(device, 'status', 'ok');
});
});
@@ -204,7 +208,9 @@ module.exports.deleteActive = function deleteActive() {
);
if (choice) {
device.connection.destroy();
if (device.plugin.connectionType === 'TCPsocket') {
device.connection.destroy();
}
VIEW.removeDeviceFromList(device);
delete devices[device.id];
SAVESLOTS.removeDevice(device);
+2 -10
View File
@@ -35,17 +35,9 @@ module.exports.init = function init(callback) {
plugin.info = _.template(fs.readFileSync(path.join(pluginDirectoryPath, `/${pluginDir}/info.html`), 'utf8'));
if (plugin.config.heartbeatTimeout) {
plugin.heartbeatTimeout = plugin.config.heartbeatInterval * 1.5;
} else {
plugin.heartbeatTimeout = 10000;
}
plugin.heartbeatTimeout = plugin.config.heartbeatTimeout;
plugin.heartbeatInterval = plugin.config.heartbeatInterval;
if (plugin.config.heartbeatInterval) {
plugin.heartbeatInterval = Math.max(50, plugin.config.heartbeatInterval);
} else {
plugin.heartbeatInterval = 5000;
}
console.log(`${pluginDir} loaded`);
}
});