diff --git a/express/routes/setupRoutes.js b/express/routes/setupRoutes.js index 9a31795..09c2566 100644 --- a/express/routes/setupRoutes.js +++ b/express/routes/setupRoutes.js @@ -4,6 +4,7 @@ import express from 'express'; import { fileURLToPath } from 'url'; import { generateUniqueID } from '../../modules/baseUtils.mjs'; import { restartApplication } from '../../modules/selfUpdater.mjs' +import { launchProcess } from '../../modules/subprocessHandler.mjs' const router = express.Router(); const __dirname = path.dirname(fileURLToPath(import.meta.url)); // Define __dirname for ESM @@ -12,8 +13,10 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)); // Define __dirn let systemsData = []; let nodeData = {}; -router.get('/', (req, res) => { - res.render('setup/setup'); +router.get('/', async (req, res) => { + const output = await launchProcess('python', ['./discordAudioBot/pdab/getDevices.py'], true, true) + console.log("Device List", output); + res.render('setup/setup', { deviceList: output }); }); // Route to serve the page for adding nearby systems @@ -23,13 +26,14 @@ router.get('/add-system', (req, res) => { router.post('/', (req, res) => { // Handle form submission here - const { clientName, clientLocation, clientCapabilities } = req.body; + const { clientName, clientLocation, clientCapabilities, audioDeviceId } = req.body; - console.log(clientName, clientLocation, clientCapabilities); + console.log(clientName, clientLocation, clientCapabilities, audioDeviceId); nodeData.clientName = clientName; nodeData.clientLocation = clientLocation; nodeData.clientCapabilities = clientCapabilities; + nodeData.audioDeviceId = audioDeviceId; res.redirect('/setup/add-system'); }); @@ -86,8 +90,11 @@ const exportCsv = (nodeData) => { CLIENT_CAPABILITIES: nodeData.clientCapabilities, SERVER_IP: "", SERVER_PORT: 0, - OP25_FULL_PATH: `${__dirname}/op25/op25/gr-op25_repeater/apps`, + OP25_FULL_PATH: path.resolve(__dirname, '../../op25/op25/gr-op25_repeater/apps'), CONFIG_PATH: "./config/radioPresets.json", + AUDIO_DEVICE_ID: nodeData.audioDeviceId, + PDAB_PORT: 3110, + NODE_ENV: "production", }; // Generate .env file content diff --git a/express/views/setup/setup.ejs b/express/views/setup/setup.ejs index aa52ed7..8719ef2 100644 --- a/express/views/setup/setup.ejs +++ b/express/views/setup/setup.ejs @@ -19,7 +19,14 @@
+ + +
+
+

Audio Devices

+

<%- deviceList.replace(/\n/g, '
') %>

+