mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
Merge pull request #257 from DJ2LS/ls-gui
HOTFIX: rigctld control interface
This commit is contained in:
commit
2719875b35
3 changed files with 61 additions and 77 deletions
120
gui/main.js
120
gui/main.js
|
@ -9,7 +9,9 @@ const { autoUpdater } = require('electron-updater');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const exec = require('child_process').spawn;
|
const spawn = require('child_process').spawn;
|
||||||
|
const exec = require('child_process').exec;
|
||||||
|
|
||||||
const log = require('electron-log');
|
const log = require('electron-log');
|
||||||
const mainLog = log.scope('main');
|
const mainLog = log.scope('main');
|
||||||
const daemonProcessLog = log.scope('freedata-daemon');
|
const daemonProcessLog = log.scope('freedata-daemon');
|
||||||
|
@ -285,7 +287,7 @@ app.whenReady().then(() => {
|
||||||
mainLog.info('Starting freedata-daemon binary');
|
mainLog.info('Starting freedata-daemon binary');
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
if(os.platform()=='darwin'){
|
||||||
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
daemonProcess = spawn(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
||||||
{
|
{
|
||||||
cwd: path.join(process.resourcesPath, 'tnc'),
|
cwd: path.join(process.resourcesPath, 'tnc'),
|
||||||
});
|
});
|
||||||
|
@ -310,7 +312,7 @@ app.whenReady().then(() => {
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
daemonProcess = spawn(path.join(process.resourcesPath, 'tnc', 'freedata-daemon'), [],
|
||||||
{
|
{
|
||||||
cwd: path.join(process.resourcesPath, 'tnc'),
|
cwd: path.join(process.resourcesPath, 'tnc'),
|
||||||
});
|
});
|
||||||
|
@ -321,7 +323,7 @@ app.whenReady().then(() => {
|
||||||
// for windows the relative path via path.join(__dirname) is not needed for some reason
|
// for windows the relative path via path.join(__dirname) is not needed for some reason
|
||||||
//daemonProcess = exec('\\tnc\\daemon.exe', [])
|
//daemonProcess = exec('\\tnc\\daemon.exe', [])
|
||||||
|
|
||||||
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'freedata-daemon.exe'), [],
|
daemonProcess = spawn(path.join(process.resourcesPath, 'tnc', 'freedata-daemon.exe'), [],
|
||||||
{
|
{
|
||||||
cwd: path.join(process.resourcesPath, 'tnc'),
|
cwd: path.join(process.resourcesPath, 'tnc'),
|
||||||
});
|
});
|
||||||
|
@ -735,20 +737,20 @@ function close_sub_processes(){
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if(os.platform()=='win32' || os.platform()=='win64'){
|
if(os.platform()=='win32' || os.platform()=='win64'){
|
||||||
exec('Taskkill', ['/IM', 'freedata-tnc.exe', '/F'])
|
spawn('Taskkill', ['/IM', 'freedata-tnc.exe', '/F'])
|
||||||
exec('Taskkill', ['/IM', 'freedata-daemon.exe', '/F'])
|
spawn('Taskkill', ['/IM', 'freedata-daemon.exe', '/F'])
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='linux'){
|
if(os.platform()=='linux'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'freedata-tnc'])
|
spawn('pkill', ['-9', 'freedata-tnc'])
|
||||||
exec('pkill', ['-9', 'freedata-daemon'])
|
spawn('pkill', ['-9', 'freedata-daemon'])
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
if(os.platform()=='darwin'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'freedata-tnc'])
|
spawn('pkill', ['-9', 'freedata-tnc'])
|
||||||
exec('pkill', ['-9', 'freedata-daemon'])
|
spawn('pkill', ['-9', 'freedata-daemon'])
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -779,7 +781,7 @@ ipcMain.on('request-start-rigctld',(event, data)=>{
|
||||||
|
|
||||||
|
|
||||||
try{
|
try{
|
||||||
exec(data.path, data.parameters);
|
spawn(data.path, data.parameters);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
|
@ -803,18 +805,18 @@ ipcMain.on('request-stop-rigctld',(event,data)=>{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if(os.platform()=='win32' || os.platform()=='win64'){
|
if(os.platform()=='win32' || os.platform()=='win64'){
|
||||||
exec('Taskkill', ['/IM', 'rigctld.exe', '/F'])
|
spawn('Taskkill', ['/IM', 'rigctld.exe', '/F'])
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='linux'){
|
if(os.platform()=='linux'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'rigctld'])
|
spawn('pkill', ['-9', 'rigctld'])
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
if(os.platform()=='darwin'){
|
||||||
|
|
||||||
exec('pkill', ['-9', 'rigctld'])
|
spawn('pkill', ['-9', 'rigctld'])
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -827,68 +829,50 @@ ipcMain.on('request-stop-rigctld',(event,data)=>{
|
||||||
// CHECK RIGCTLD
|
// CHECK RIGCTLD
|
||||||
ipcMain.on('request-check-rigctld',(data)=>{
|
ipcMain.on('request-check-rigctld',(data)=>{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if(os.platform()=='win32' || os.platform()=='win64'){
|
|
||||||
var state = exec('tasklist', ['/svc', '/FI', 'ImageName eq rigctld*'])
|
|
||||||
state.on('close', function(code) {
|
|
||||||
if(code == 0){
|
|
||||||
let Data = {
|
|
||||||
state: "running",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
let Data = {
|
let Data = {
|
||||||
state: "unknown",
|
state: "unknown",
|
||||||
};
|
};
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if(os.platform()=='linux'){
|
|
||||||
|
|
||||||
var state = exec('pgrep', ['rigctld'])
|
|
||||||
state.on('close', function(code) {
|
|
||||||
if(code == 0){
|
|
||||||
let Data = {
|
|
||||||
state: "running",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
|
isRunning('rigctld', (status) => {
|
||||||
|
if (status){
|
||||||
|
Data["state"] = "running";
|
||||||
} else {
|
} else {
|
||||||
let Data = {
|
Data["state"] = "unknown/stopped";
|
||||||
state: "unknown",
|
}
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
win.webContents.send('action-check-rigctld', Data);
|
||||||
|
})
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
|
||||||
|
|
||||||
var state = exec('pgrep', ['rigctld'])
|
|
||||||
state.on('close', function(code) {
|
|
||||||
if(code == 0){
|
|
||||||
let Data = {
|
|
||||||
state: "running",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
let Data = {
|
|
||||||
state: "unknown",
|
|
||||||
};
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
mainLog.error(e)
|
mainLog.error(e)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// https://stackoverflow.com/a/51084163
|
||||||
|
// Function for checking if a process is running or not
|
||||||
|
/*
|
||||||
|
isRunning('rigctld', (status) => {
|
||||||
|
if (status){
|
||||||
|
Data["state"] = "running";
|
||||||
|
} else {
|
||||||
|
Data["state"] = "unknown";
|
||||||
|
}
|
||||||
|
win.webContents.send('action-check-rigctld', Data);
|
||||||
|
})
|
||||||
|
*/
|
||||||
|
const isRunning = (query, cb) => {
|
||||||
|
let platform = process.platform;
|
||||||
|
let cmd = '';
|
||||||
|
switch (platform) {
|
||||||
|
case 'win32' : cmd = `tasklist`; break;
|
||||||
|
case 'darwin' : cmd = `ps -ax | grep ${query}`; break;
|
||||||
|
case 'linux' : cmd = `ps -A`; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
exec(cmd, (err, stdout) => {
|
||||||
|
cb(stdout.toLowerCase().indexOf(query.toLowerCase()) > -1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1788,7 +1788,7 @@ ipcRenderer.on('action-update-daemon-connection', (event, arg) => {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcRenderer.on('action-update-tnc-connection', (arg) => {
|
ipcRenderer.on('action-update-tnc-connection', (event, arg) => {
|
||||||
|
|
||||||
if (arg.tnc_connection == "open") {
|
if (arg.tnc_connection == "open") {
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1185,11 +1185,11 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-group input-group-sm mb-1">
|
<div class="input-group input-group-sm mb-1">
|
||||||
<label class="input-group-text w-50">Enable 500Hz mode</label>
|
<label class="input-group-text w-50">Enable 563Hz mode</label>
|
||||||
<label class="input-group-text bg-white w-50">
|
<label class="input-group-text bg-white w-50">
|
||||||
<div class="form-check form-switch form-check-inline">
|
<div class="form-check form-switch form-check-inline">
|
||||||
<input class="form-check-input" type="checkbox" id="500HzModeSwitch">
|
<input class="form-check-input" type="checkbox" id="500HzModeSwitch">
|
||||||
<label class="form-check-label" for="500HzModeSwitch">500Hz</label>
|
<label class="form-check-label" for="500HzModeSwitch">563Hz</label>
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue