Files
DRBv3/client/client.js
2024-01-19 23:57:03 -05:00

47 lines
1.7 KiB
JavaScript

import { generateUniqueID } from './modules/baseUtils.mjs';
import { updateId } from './modules/updateConfig.mjs';
import { ClientNodeConfig } from './modules/clientObjectDefinitions.mjs';
import { initSocketConnection, initSocketListeners, sendNodeUpdate } from './modules/socketClient.mjs';
import dotenv from 'dotenv';
dotenv.config()
var localNodeConfig = new ClientNodeConfig({})
async function boot() {
if (localNodeConfig.node.id === undefined || localNodeConfig.node.id === '' || localNodeConfig.node.id === 0) {
// Run the first time boot sequence
await firstTimeBoot();
}
// Initialize the socket connection with the server
return initSocketConnection(localNodeConfig);
}
/**
* Run the first time the client boots on a pc
* @returns {any}
*/
async function firstTimeBoot() {
// Generate a new ID for the node
localNodeConfig.node.id = generateUniqueID();
console.log(`Generated a new unique ID for this node: '${localNodeConfig.node.id}'`);
// Update the config with the new ID
updateId(localNodeConfig.node.id);
console.log("Updated the config with the new node ID");
// TODO - Create the config file with the ID given and replace the update above
// TODO - Check if the system is linux or windows and set the 'type' param in DAB
// TODO - Implement web server so users can update radio systems easily
// TODO - Implement logic to check if the presets are set
return
}
// Boot the client application
boot().then((openSocket) => {
initSocketListeners(openSocket, localNodeConfig);
//console.log(openSocket, "Open socket");
setTimeout(() => {sendNodeUpdate(openSocket);}, 2500);
})