mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
Merge pull request #253 from DJ2LS/ls-gui
WIP: new rigctld control interface
This commit is contained in:
commit
6d97dc2ebe
6
.github/workflows/build_multiplatform.yml
vendored
6
.github/workflows/build_multiplatform.yml
vendored
|
@ -173,6 +173,7 @@ jobs:
|
||||||
|
|
||||||
# Produce a binary artifact and place it in the mounted volume
|
# Produce a binary artifact and place it in the mounted volume
|
||||||
run: |
|
run: |
|
||||||
|
|
||||||
git clone https://github.com/drowe67/codec2.git
|
git clone https://github.com/drowe67/codec2.git
|
||||||
cd codec2
|
cd codec2
|
||||||
git checkout master
|
git checkout master
|
||||||
|
@ -206,18 +207,21 @@ jobs:
|
||||||
generator: Unix Makefiles
|
generator: Unix Makefiles
|
||||||
daemon_binary_name: freedata-daemon
|
daemon_binary_name: freedata-daemon
|
||||||
tnc_binary_name: freedata-tnc
|
tnc_binary_name: freedata-tnc
|
||||||
|
electron_parameters: "-p always"
|
||||||
|
|
||||||
- os: macos-11
|
- os: macos-11
|
||||||
zip_name: macos_tnc
|
zip_name: macos_tnc
|
||||||
generator: Unix Makefiles
|
generator: Unix Makefiles
|
||||||
daemon_binary_name: freedata-daemon
|
daemon_binary_name: freedata-daemon
|
||||||
tnc_binary_name: freedata-tnc
|
tnc_binary_name: freedata-tnc
|
||||||
|
electron_parameters: "-p always"
|
||||||
|
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
zip_name: windows_tnc
|
zip_name: windows_tnc
|
||||||
generator: Visual Studio 16 2019
|
generator: Visual Studio 16 2019
|
||||||
daemon_binary_name: freedata-daemon.exe
|
daemon_binary_name: freedata-daemon.exe
|
||||||
tnc_binary_name: freedata-tnc.exe
|
tnc_binary_name: freedata-tnc.exe
|
||||||
|
electron_parameters: "-p always --x64 --ia32"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code for ${{ matrix.platform.name }}
|
- name: Checkout code for ${{ matrix.platform.name }}
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
@ -395,7 +399,7 @@ jobs:
|
||||||
# If the commit is tagged with a version (e.g. "v1.0.0"),
|
# If the commit is tagged with a version (e.g. "v1.0.0"),
|
||||||
# release the app after building
|
# release the app after building
|
||||||
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||||
args: "-p always"
|
args: ${{ matrix.electron_parameters }}
|
||||||
|
|
||||||
- name: LIST ALL FILES
|
- name: LIST ALL FILES
|
||||||
run: ls -R
|
run: ls -R
|
||||||
|
|
167
gui/main.js
167
gui/main.js
|
@ -49,22 +49,30 @@ const configDefaultSettings = '{\
|
||||||
"daemon_port": "3001",\
|
"daemon_port": "3001",\
|
||||||
"mycall": "AA0AA-0",\
|
"mycall": "AA0AA-0",\
|
||||||
"mygrid": "JN40aa",\
|
"mygrid": "JN40aa",\
|
||||||
"deviceid": "RIG_MODEL_DUMMY_NOVFO",\
|
"radiocontrol" : "disabled",\
|
||||||
"deviceport": "/dev/ttyACM1",\
|
"hamlib_deviceid": "RIG_MODEL_DUMMY_NOVFO",\
|
||||||
"serialspeed_direct": "9600",\
|
"enable_hamlib_deviceport" : "False",\
|
||||||
|
"hamlib_deviceport": "/dev/ttyACM1",\
|
||||||
|
"enable_hamlib_stop_bits" : "False",\
|
||||||
|
"hamlib_stop_bits" : "1",\
|
||||||
|
"enable_hamlib_data_bits" : "False",\
|
||||||
|
"hamlib_data_bits" : "8",\
|
||||||
|
"enable_hamlib_handshake" : "False",\
|
||||||
|
"hamlib_handshake" : "None",\
|
||||||
|
"enable_hamlib_serialspeed" : "False",\
|
||||||
|
"hamlib_serialspeed" : "9600",\
|
||||||
|
"enable_hamlib_pttprotocol" : "False",\
|
||||||
|
"hamlib_pttprotocol" : "USB",\
|
||||||
|
"enable_hamlib_pttport" : "False",\
|
||||||
|
"hamlib_pttport": "/dev/ttyACM1",\
|
||||||
|
"hamlib_dcd": "None",\
|
||||||
|
"hamlbib_serialspeed_ptt": "9600",\
|
||||||
|
"hamlib_rigctld_port" : "4532",\
|
||||||
|
"hamlib_rigctld_ip" : "127.0.0.1",\
|
||||||
|
"hamlib_rigctld_path" : "",\
|
||||||
|
"hamlib_rigctld_server_port" : "4532",\
|
||||||
"spectrum": "waterfall",\
|
"spectrum": "waterfall",\
|
||||||
"tnclocation": "localhost",\
|
"tnclocation": "localhost",\
|
||||||
"stop_bits_direct" : "1",\
|
|
||||||
"data_bits_direct" : "8",\
|
|
||||||
"handshake_direct" : "None",\
|
|
||||||
"radiocontrol" : "disabled",\
|
|
||||||
"deviceport_rigctl" : "3",\
|
|
||||||
"deviceid_rigctl" : "3",\
|
|
||||||
"serialspeed_rigctl" : "9600",\
|
|
||||||
"pttprotocol_direct" : "USB",\
|
|
||||||
"pttprotocol_rigctl" : "USB",\
|
|
||||||
"rigctld_port" : "4532",\
|
|
||||||
"rigctld_ip" : "127.0.0.1",\
|
|
||||||
"enable_scatter" : "False",\
|
"enable_scatter" : "False",\
|
||||||
"enable_fft" : "False",\
|
"enable_fft" : "False",\
|
||||||
"enable_fsk" : "False",\
|
"enable_fsk" : "False",\
|
||||||
|
@ -379,7 +387,7 @@ app.on('window-all-closed', () => {
|
||||||
|
|
||||||
// IPC HANDLER
|
// IPC HANDLER
|
||||||
|
|
||||||
ipcMain.on('request-show-chat-window', (event, arg) => {
|
ipcMain.on('request-show-chat-window', () => {
|
||||||
chat.show();
|
chat.show();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -437,10 +445,19 @@ ipcMain.on('request-update-transmission-status', (event, arg) => {
|
||||||
chat.webContents.send('action-update-transmission-status', arg);
|
chat.webContents.send('action-update-transmission-status', arg);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on('request-open-tnc-log', (event) => {
|
ipcMain.on('request-open-tnc-log', () => {
|
||||||
logViewer.show();
|
logViewer.show();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//file selector
|
||||||
|
ipcMain.on('get-file-path',(event,data)=>{
|
||||||
|
dialog.showOpenDialog({defaultPath: path.join(__dirname, '../'),
|
||||||
|
buttonLabel: 'Select rigctld', properties: ['openFile']}).then(filePaths => {
|
||||||
|
win.webContents.send('return-file-paths', {path: filePaths,})
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
//folder selector
|
//folder selector
|
||||||
ipcMain.on('get-folder-path',(event,data)=>{
|
ipcMain.on('get-folder-path',(event,data)=>{
|
||||||
dialog.showOpenDialog({defaultPath: path.join(__dirname, '../'),
|
dialog.showOpenDialog({defaultPath: path.join(__dirname, '../'),
|
||||||
|
@ -757,3 +774,121 @@ function close_all() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// RUN RIGCTLD
|
||||||
|
ipcMain.on('request-start-rigctld',(event, data)=>{
|
||||||
|
|
||||||
|
|
||||||
|
try{
|
||||||
|
exec(data.path, data.parameters);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
const rigctld = exec(data.path, data.parameters);
|
||||||
|
rigctld.stdout.on("data", data => {
|
||||||
|
console.log(`stdout: ${data}`);
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// STOP RIGCTLD
|
||||||
|
ipcMain.on('request-stop-rigctld',(event,data)=>{
|
||||||
|
mainLog.warn('closing rigctld');
|
||||||
|
try {
|
||||||
|
|
||||||
|
if(os.platform()=='win32' || os.platform()=='win64'){
|
||||||
|
exec('Taskkill', ['/IM', 'rigctld.exe', '/F'])
|
||||||
|
}
|
||||||
|
|
||||||
|
if(os.platform()=='linux'){
|
||||||
|
|
||||||
|
exec('pkill', ['-9', 'rigctld'])
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(os.platform()=='darwin'){
|
||||||
|
|
||||||
|
exec('pkill', ['-9', 'rigctld'])
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
mainLog.error(e)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// CHECK RIGCTLD
|
||||||
|
ipcMain.on('request-check-rigctld',(data)=>{
|
||||||
|
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 = {
|
||||||
|
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);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
let Data = {
|
||||||
|
state: "unknown",
|
||||||
|
};
|
||||||
|
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) {
|
||||||
|
mainLog.error(e)
|
||||||
|
}
|
||||||
|
});
|
|
@ -77,6 +77,10 @@
|
||||||
"icon": "src/img/icon.png",
|
"icon": "src/img/icon.png",
|
||||||
"target": [
|
"target": [
|
||||||
"nsis"
|
"nsis"
|
||||||
|
],
|
||||||
|
"arch": [
|
||||||
|
"x64",
|
||||||
|
"ia32"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"linux": {
|
"linux": {
|
||||||
|
@ -84,6 +88,9 @@
|
||||||
"target": [
|
"target": [
|
||||||
"AppImage"
|
"AppImage"
|
||||||
],
|
],
|
||||||
|
"arch": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
"category": "Development"
|
"category": "Development"
|
||||||
},
|
},
|
||||||
"publish": {
|
"publish": {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const {ipcRenderer} = require('electron');
|
const {ipcRenderer} = require('electron');
|
||||||
|
const exec = require('child_process').spawn;
|
||||||
const sock = require('./sock.js');
|
const sock = require('./sock.js');
|
||||||
const daemon = require('./daemon.js');
|
const daemon = require('./daemon.js');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
@ -62,13 +63,6 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
// DISABLE HAMLIB DIRECT AND RIGCTL ON WINDOWS
|
|
||||||
if(os.platform()=='win32' || os.platform()=='win64'){
|
|
||||||
|
|
||||||
document.getElementById("radio-control-switch1").style.disabled = true;
|
|
||||||
//document.getElementById("radio-control-switch2").style.disabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ENABLE TOOLTIPS EVERYWHERE
|
// ENABLE TOOLTIPS EVERYWHERE
|
||||||
// https://getbootstrap.com/docs/5.1/components/tooltips/
|
// https://getbootstrap.com/docs/5.1/components/tooltips/
|
||||||
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
||||||
|
@ -90,31 +84,45 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
|
|
||||||
document.getElementById("myCallSSID").value = ssid;
|
document.getElementById("myCallSSID").value = ssid;
|
||||||
document.getElementById("myGrid").value = config.mygrid;
|
document.getElementById("myGrid").value = config.mygrid;
|
||||||
|
|
||||||
document.getElementById('hamlib_deviceid').value = config.deviceid;
|
|
||||||
document.getElementById('hamlib_serialspeed').value = config.serialspeed_direct;
|
|
||||||
document.getElementById('hamlib_ptt_protocol').value = config.pttprotocol_direct;
|
|
||||||
|
|
||||||
document.getElementById("hamlib_rigctld_ip").value = config.rigctld_ip;
|
// hamlib settings
|
||||||
document.getElementById("hamlib_rigctld_port").value = config.rigctld_port;
|
document.getElementById('hamlib_deviceid').value = config.hamlib_deviceid;
|
||||||
|
|
||||||
//document.getElementById("hamlib_deviceid_rigctl").value = config.deviceid_rigctl;
|
set_setting_switch("enable_hamlib_deviceport", "hamlib_deviceport", config.enable_hamlib_deviceport)
|
||||||
//document.getElementById("hamlib_serialspeed_rigctl").value = config.serialspeed_rigctl;
|
set_setting_switch("enable_hamlib_ptt_port", "hamlib_ptt_port", config.enable_hamlib_ptt_port)
|
||||||
//document.getElementById("hamlib_ptt_protocol_rigctl").value = config.pttprotocol_rigctl;
|
|
||||||
|
document.getElementById('hamlib_serialspeed').value = config.hamlib_serialspeed;
|
||||||
document.getElementById('hamlib_serialspeed_advanced').value = config.serialspeed_direct;
|
set_setting_switch("enable_hamlib_serialspeed", "hamlib_serialspeed", config.enable_hamlib_serialspeed)
|
||||||
document.getElementById('hamlib_ptt_protocol_advanced').value = config.pttprotocol_direct;
|
|
||||||
document.getElementById('hamlib_databits_advanced').value = config.data_bits_direct;
|
document.getElementById('hamlib_pttprotocol').value = config.hamlib_pttprotocol;
|
||||||
document.getElementById('hamlib_stopbits_advanced').value = config.stop_bits_direct;
|
set_setting_switch("enable_hamlib_pttprotocol", "hamlib_pttprotocol", config.enable_hamlib_pttprotocol)
|
||||||
document.getElementById('hamlib_handshake_advanced').value = config.handshake_direct;
|
|
||||||
|
document.getElementById('hamlib_databits').value = config.hamlib_data_bits;
|
||||||
|
set_setting_switch("enable_hamlib_databits", "hamlib_databits", config.enable_hamlib_databits)
|
||||||
|
|
||||||
|
document.getElementById('hamlib_stopbits').value = config.hamlib_stop_bits;
|
||||||
|
set_setting_switch("enable_hamlib_stopbits", "hamlib_stopbits", config.enable_hamlib_stopbits)
|
||||||
|
|
||||||
|
document.getElementById('hamlib_handshake').value = config.hamlib_handshake;
|
||||||
|
set_setting_switch("enable_hamlib_handshake", "hamlib_handshake", config.enable_hamlib_handshake)
|
||||||
|
|
||||||
|
document.getElementById('hamlib_dcd').value = config.hamlib_dcd;
|
||||||
|
set_setting_switch("enable_hamlib_dcd", "hamlib_dcd", config.enable_hamlib_dcd)
|
||||||
|
|
||||||
|
|
||||||
|
document.getElementById("hamlib_rigctld_ip").value = config.hamlib_rigctld_ip;
|
||||||
|
document.getElementById("hamlib_rigctld_port").value = config.hamlib_rigctld_port;
|
||||||
|
document.getElementById("hamlib_rigctld_path").value = config.hamlib_rigctld_path;
|
||||||
|
document.getElementById("hamlib_rigctld_server_port").value = config.hamlib_rigctld_server_port;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
document.getElementById("beaconInterval").value = config.beacon_interval;
|
document.getElementById("beaconInterval").value = config.beacon_interval;
|
||||||
|
|
||||||
document.getElementById("scatterSwitch").value = config.enable_scatter;
|
document.getElementById("scatterSwitch").value = config.enable_scatter;
|
||||||
document.getElementById("fftSwitch").value = config.enable_fft;
|
document.getElementById("fftSwitch").value = config.enable_fft;
|
||||||
//document.getElementById("500HzModeSwitch").value = config.low_bandwidth_mode;
|
|
||||||
//document.getElementById("fskModeSwitch").value = config.enable_fsk;
|
|
||||||
//document.getElementById("respondCQSwitch").value = config.respond_to_cq;
|
|
||||||
|
|
||||||
document.getElementById("received_files_folder").value = config.received_files_folder;
|
document.getElementById("received_files_folder").value = config.received_files_folder;
|
||||||
|
|
||||||
|
@ -193,70 +201,59 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
}
|
}
|
||||||
|
|
||||||
// radio control element
|
// radio control element
|
||||||
if (config.radiocontrol == 'direct') {
|
if (config.radiocontrol == 'rigctld') {
|
||||||
|
|
||||||
document.getElementById("radio-control-switch0").checked = false;
|
document.getElementById("radio-control-switch-disabled").checked = false;
|
||||||
document.getElementById("radio-control-switch1").checked = true;
|
document.getElementById("radio-control-switch-radio").checked = true;
|
||||||
//document.getElementById("radio-control-switch2").checked = false;
|
document.getElementById("radio-control-switch-connect").checked = false;
|
||||||
document.getElementById("radio-control-switch3").checked = false;
|
document.getElementById("radio-control-switch-network").checked = false;
|
||||||
|
|
||||||
//document.getElementById("radio-control-rigctl").style.visibility = 'hidden';
|
document.getElementById("radio-control-disabled").style.visibility = 'hidden';
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
document.getElementById("radio-control-disabled").style.display = 'none';
|
||||||
//document.getElementById("radio-control-rigctl").style.display = 'none';
|
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'visible';
|
||||||
|
document.getElementById("radio-control-radio").style.display = '100%';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'none';
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'block';
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'visible';
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
document.getElementById("radio-control-direct").style.height = '100%';
|
|
||||||
|
|
||||||
/*
|
|
||||||
} else if (config.radiocontrol == 'rigctl') {
|
|
||||||
|
|
||||||
document.getElementById("radio-control-switch0").checked = false;
|
|
||||||
document.getElementById("radio-control-switch1").checked = false;
|
|
||||||
//document.getElementById("radio-control-switch2").checked = true;
|
|
||||||
document.getElementById("radio-control-switch3").checked = false;
|
|
||||||
|
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'none';
|
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'none';
|
|
||||||
|
|
||||||
document.getElementById("radio-control-rigctl").style.display = 'block';
|
|
||||||
document.getElementById("radio-control-rigctl").style.visibility = 'visible';
|
|
||||||
document.getElementById("radio-control-rigctl").style.height = '100%';
|
|
||||||
*/
|
|
||||||
} else if (config.radiocontrol == 'rigctld') {
|
|
||||||
|
|
||||||
document.getElementById("radio-control-switch0").checked = false;
|
|
||||||
document.getElementById("radio-control-switch1").checked = false;
|
|
||||||
//document.getElementById("radio-control-switch2").checked = false;
|
|
||||||
document.getElementById("radio-control-switch3").checked = true;
|
|
||||||
|
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'hidden';
|
|
||||||
//document.getElementById("radio-control-rigctl").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'none';
|
|
||||||
//document.getElementById("radio-control-rigctl").style.display = 'none';
|
|
||||||
|
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'block';
|
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'visible';
|
|
||||||
document.getElementById("radio-control-rigctld").style.height = '100%';
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
document.getElementById("radio-control-switch0").checked = true;
|
document.getElementById("radio-control-switch-disabled").checked = true;
|
||||||
document.getElementById("radio-control-switch1").checked = false;
|
document.getElementById("radio-control-switch-radio").checked = false;
|
||||||
//document.getElementById("radio-control-switch2").checked = false;
|
document.getElementById("radio-control-switch-connect").checked = false;
|
||||||
document.getElementById("radio-control-switch3").checked = false;
|
document.getElementById("radio-control-switch-network").checked = false;
|
||||||
|
document.getElementById("radio-control-switch-rigctld").checked = false;
|
||||||
|
document.getElementById("radio-control-switch-rigctld-info").checked = false;
|
||||||
|
|
||||||
//document.getElementById("radio-control-rigctl").style.visibility = 'hidden';
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
//document.getElementById("radio-control-rigctl").style.display = 'none';
|
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'none';
|
|
||||||
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'block';
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'visible';
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
document.getElementById("radio-control-direct").style.height = '100%';
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,63 +278,379 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
|
|
||||||
// on click radio control toggle view
|
// on click radio control toggle view
|
||||||
// disabled
|
// disabled
|
||||||
document.getElementById("radio-control-switch0").addEventListener("click", () => {
|
document.getElementById("radio-control-switch-disabled").addEventListener("click", () => {
|
||||||
//document.getElementById("radio-control-rigctl").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
document.getElementById("hamlib_info_field").innerHTML = 'Set hamlib related settings.';
|
||||||
//document.getElementById("radio-control-rigctl").style.display = 'none';
|
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'none';
|
document.getElementById("radio-control-disabled").style.display = 'block';
|
||||||
|
document.getElementById("radio-control-disabled").style.visibility = 'visible';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'block';
|
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'visible';
|
|
||||||
document.getElementById("radio-control-direct").style.height = '100%';
|
|
||||||
config.radiocontrol = 'disabled'
|
config.radiocontrol = 'disabled'
|
||||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// direct
|
// radio settings event listener
|
||||||
document.getElementById("radio-control-switch1").addEventListener("click", () => {
|
document.getElementById("radio-control-switch-radio").addEventListener("click", () => {
|
||||||
//document.getElementById("radio-control-rigctl").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
|
||||||
//document.getElementById("radio-control-rigctl").style.display = 'none';
|
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'none';
|
|
||||||
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'block';
|
document.getElementById("hamlib_info_field").innerHTML = 'Select your radio by searching for the name or ID.';
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'visible';
|
|
||||||
document.getElementById("radio-control-direct").style.height = '100%';
|
document.getElementById("radio-control-disabled").style.display = 'none';
|
||||||
config.radiocontrol = 'direct';
|
document.getElementById("radio-control-disabled").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'block';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'visible';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
|
|
||||||
|
config.radiocontrol = 'rigctld';
|
||||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
|
||||||
// rigctl
|
|
||||||
document.getElementById("radio-control-switch2").addEventListener("click", () => {
|
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'none';
|
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'none';
|
|
||||||
|
|
||||||
//document.getElementById("radio-control-rigctl").style.display = 'block';
|
// radio settings 'connection' event listener
|
||||||
//document.getElementById("radio-control-rigctl").style.visibility = 'visible';
|
document.getElementById("radio-control-switch-connect").addEventListener("click", () => {
|
||||||
//document.getElementById("radio-control-rigctl").style.height = '100%';
|
|
||||||
config.radiocontrol = 'rigctl';
|
document.getElementById("hamlib_info_field").innerHTML = 'Setup the connection between rigctld and your radio';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-disabled").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-disabled").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'visible';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'block';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
|
|
||||||
|
config.radiocontrol = 'rigctld';
|
||||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
// rigctld
|
|
||||||
document.getElementById("radio-control-switch3").addEventListener("click", () => {
|
|
||||||
document.getElementById("radio-control-direct").style.visibility = 'hidden';
|
|
||||||
//document.getElementById("radio-control-rigctl").style.visibility = 'hidden';
|
|
||||||
document.getElementById("radio-control-direct").style.display = 'none';
|
|
||||||
//document.getElementById("radio-control-rigctl").style.display = 'none';
|
|
||||||
|
|
||||||
document.getElementById("radio-control-rigctld").style.display = 'block';
|
// radio settings 'ptt' event listener
|
||||||
document.getElementById("radio-control-rigctld").style.visibility = 'visible';
|
document.getElementById("radio-control-switch-ptt").addEventListener("click", () => {
|
||||||
document.getElementById("radio-control-rigctld").style.height = '100%';
|
|
||||||
|
document.getElementById("hamlib_info_field").innerHTML = 'Set your PTT related settings.';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-disabled").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-disabled").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'visible';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'block';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
|
|
||||||
|
config.radiocontrol = 'rigctld';
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// // radio settings 'network' event listener
|
||||||
|
document.getElementById("radio-control-switch-network").addEventListener("click", () => {
|
||||||
|
|
||||||
|
document.getElementById("hamlib_info_field").innerHTML = 'Set the ip and port of a rigctld session';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-disabled").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-disabled").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'block';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'visible';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
|
|
||||||
config.radiocontrol = 'rigctld';
|
config.radiocontrol = 'rigctld';
|
||||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// // radio settings 'rigctld' event listener
|
||||||
|
document.getElementById("radio-control-switch-rigctld").addEventListener("click", () => {
|
||||||
|
|
||||||
|
document.getElementById("hamlib_info_field").innerHTML = 'Define the rigctld path and port';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-disabled").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-disabled").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'visible';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'block';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'none';
|
||||||
|
|
||||||
|
config.radiocontrol = 'rigctld';
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
});
|
||||||
|
|
||||||
|
// // radio settings 'rigctld' event listener
|
||||||
|
document.getElementById("radio-control-switch-rigctld-info").addEventListener("click", () => {
|
||||||
|
|
||||||
|
document.getElementById("hamlib_info_field").innerHTML = 'Start and stop rigctld .';
|
||||||
|
|
||||||
|
|
||||||
|
document.getElementById("radio-control-disabled").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-disabled").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-radio").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-radio").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-connection").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-connection").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-ptt").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-ptt").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-network").style.display = 'none';
|
||||||
|
document.getElementById("radio-control-network").style.visibility = 'hidden';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld").style.visibility = 'hidden';
|
||||||
|
document.getElementById("radio-control-rigctld").style.display = 'none';
|
||||||
|
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.visibility = 'visible';
|
||||||
|
document.getElementById("radio-control-rigctld-info").style.display = 'block';
|
||||||
|
|
||||||
|
config.radiocontrol = 'rigctld';
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// radio settings 'enable hamlib deviceport' event listener
|
||||||
|
document.getElementById("enable_hamlib_deviceport").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_deviceport", "hamlib_deviceport")
|
||||||
|
});
|
||||||
|
|
||||||
|
// radio settings 'enable hamlib serialspeed' event listener
|
||||||
|
document.getElementById("enable_hamlib_serialspeed").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_serialspeed", "hamlib_serialspeed")
|
||||||
|
});
|
||||||
|
|
||||||
|
// radio settings 'enable hamlib data bits' event listener
|
||||||
|
document.getElementById("enable_hamlib_databits").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_databits", "hamlib_databits")
|
||||||
|
});
|
||||||
|
|
||||||
|
// radio settings 'enable hamlib stop bits' event listener
|
||||||
|
document.getElementById("enable_hamlib_stopbits").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_stopbits", "hamlib_stopbits")
|
||||||
|
});
|
||||||
|
|
||||||
|
// radio settings 'enable hamlib handshake' event listener
|
||||||
|
document.getElementById("enable_hamlib_handshake").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_handshake", "hamlib_handshake")
|
||||||
|
});
|
||||||
|
|
||||||
|
// radio settings 'enable hamlib ptt port' event listener
|
||||||
|
document.getElementById("enable_hamlib_ptt_port").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_ptt_port", "hamlib_ptt_port")
|
||||||
|
});
|
||||||
|
|
||||||
|
// radio settings 'enable hamlib ptt protocol' event listener
|
||||||
|
document.getElementById("enable_hamlib_pttprotocol").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_pttprotocol", "hamlib_pttprotocol")
|
||||||
|
});
|
||||||
|
// radio settings 'enable hamlib dcd' event listener
|
||||||
|
document.getElementById("enable_hamlib_dcd").addEventListener("change", () => {
|
||||||
|
enable_setting("enable_hamlib_dcd", "hamlib_dcd")
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
document.getElementById('hamlib_rigctld_path').addEventListener('change', () => {
|
||||||
|
var fileList = document.getElementById("dataModalFile").files;
|
||||||
|
console.log(fileList)
|
||||||
|
|
||||||
|
})
|
||||||
|
*/
|
||||||
|
|
||||||
|
document.getElementById('hamlib_rigctld_path').addEventListener('click', () => {
|
||||||
|
|
||||||
|
ipcRenderer.send('get-file-path',{
|
||||||
|
title: 'Title',
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on('return-file-paths',(event,data)=>{
|
||||||
|
rigctldPath = data.path.filePaths[0]
|
||||||
|
document.getElementById("hamlib_rigctld_path").value = rigctldPath
|
||||||
|
config.hamlib_rigctld_path = rigctldPath
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
// radio settings 'hamlib_rigctld_server_port' event listener
|
||||||
|
document.getElementById("hamlib_rigctld_server_port").addEventListener("change", () => {
|
||||||
|
|
||||||
|
|
||||||
|
config.hamlib_rigctld_server_port = document.getElementById("hamlib_rigctld_server_port").value
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
document.getElementById('hamlib_rigctld_start').addEventListener('click', () => {
|
||||||
|
var rigctldPath = document.getElementById("hamlib_rigctld_path").value;
|
||||||
|
|
||||||
|
|
||||||
|
var paramList = []
|
||||||
|
|
||||||
|
var hamlib_deviceid = document.getElementById("hamlib_deviceid").value;
|
||||||
|
paramList = paramList.concat('-m', hamlib_deviceid)
|
||||||
|
|
||||||
|
// hamlib deviceport setting
|
||||||
|
if (document.getElementById('enable_hamlib_deviceport').checked){
|
||||||
|
var hamlib_deviceport = document.getElementById("hamlib_deviceport").value;
|
||||||
|
paramList = paramList.concat('-r', hamlib_deviceport)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hamlib serialspeed setting
|
||||||
|
if (document.getElementById('enable_hamlib_serialspeed').checked){
|
||||||
|
var hamlib_serialspeed = document.getElementById("hamlib_serialspeed").value;
|
||||||
|
paramList = paramList.concat('-s', hamlib_serialspeed)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hamlib databits setting
|
||||||
|
if (document.getElementById('enable_hamlib_databits').checked){
|
||||||
|
var hamlib_databits = document.getElementById("hamlib_databits").value;
|
||||||
|
paramList = paramList.concat('--set-conf=data_bits=' + hamlib_databits)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hamlib stopbits setting
|
||||||
|
if (document.getElementById('enable_hamlib_stopbits').checked){
|
||||||
|
var hamlib_stopbits = document.getElementById("hamlib_stopbits").value;
|
||||||
|
paramList = paramList.concat('--set-conf=stop_bits=' + hamlib_stopbits)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hamlib handshake setting
|
||||||
|
if (document.getElementById('enable_hamlib_handshake').checked){
|
||||||
|
var hamlib_handshake = document.getElementById("hamlib_handshake").value;
|
||||||
|
paramList = paramList.concat('--set-conf=serial_handshake=' + hamlib_handshake)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hamlib dcd setting
|
||||||
|
if (document.getElementById('enable_hamlib_dcd').checked){
|
||||||
|
var hamlib_dcd = document.getElementById("hamlib_dcd").value;
|
||||||
|
paramList = paramList.concat('--dcd-type=' + hamlib_dcd)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hamlib ptt port
|
||||||
|
if (document.getElementById('enable_hamlib_ptt_port').checked){
|
||||||
|
var hamlib_ptt_port = document.getElementById("hamlib_ptt_port").value;
|
||||||
|
paramList = paramList.concat('-p', hamlib_ptt_port)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hamlib ptt type
|
||||||
|
if (document.getElementById('enable_hamlib_pttprotocol').checked){
|
||||||
|
var hamlib_ptt_type = document.getElementById("hamlib_pttprotocol").value;
|
||||||
|
paramList = paramList.concat('--ptt-type=', hamlib_ptt_type)
|
||||||
|
}
|
||||||
|
|
||||||
|
var hamlib_rigctld_server_port = document.getElementById("hamlib_rigctld_server_port").value;
|
||||||
|
paramList = paramList.concat('-t', hamlib_rigctld_server_port)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
document.getElementById('hamlib_rigctld_command').value = paramList
|
||||||
|
|
||||||
|
console.log(paramList)
|
||||||
|
console.log(rigctldPath)
|
||||||
|
|
||||||
|
let Data = {
|
||||||
|
path: rigctldPath,
|
||||||
|
parameters: paramList
|
||||||
|
};
|
||||||
|
ipcRenderer.send('request-start-rigctld', Data);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
document.getElementById('hamlib_rigctld_stop').addEventListener('click', () => {
|
||||||
|
ipcRenderer.send('request-stop-rigctld',{
|
||||||
|
path: '123',
|
||||||
|
parameters: '--version'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
// on click waterfall scatter toggle view
|
// on click waterfall scatter toggle view
|
||||||
// waterfall
|
// waterfall
|
||||||
|
@ -621,11 +934,13 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
|
|
||||||
var rigctld_ip = document.getElementById("hamlib_rigctld_ip").value;
|
var rigctld_ip = document.getElementById("hamlib_rigctld_ip").value;
|
||||||
var rigctld_port = document.getElementById("hamlib_rigctld_port").value;
|
var rigctld_port = document.getElementById("hamlib_rigctld_port").value;
|
||||||
|
var hamlib_rigctld_server_port = document.getElementById("hamlib_rigctld_server_port").value;
|
||||||
|
|
||||||
var deviceid = document.getElementById("hamlib_deviceid").value;
|
var deviceid = document.getElementById("hamlib_deviceid").value;
|
||||||
var deviceport = document.getElementById("hamlib_deviceport").value;
|
var deviceport = document.getElementById("hamlib_deviceport").value;
|
||||||
var serialspeed = document.getElementById("hamlib_serialspeed").value;
|
var serialspeed = document.getElementById("hamlib_serialspeed").value;
|
||||||
var pttprotocol = document.getElementById("hamlib_ptt_protocol").value;
|
var pttprotocol = document.getElementById("hamlib_pttprotocol").value;
|
||||||
|
var hamlib_dcd = document.getElementById("hamlib_dcd").value;
|
||||||
|
|
||||||
var mycall = document.getElementById("myCall").value;
|
var mycall = document.getElementById("myCall").value;
|
||||||
var ssid = document.getElementById("myCallSSID").value;
|
var ssid = document.getElementById("myCallSSID").value;
|
||||||
|
@ -636,10 +951,10 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
var rx_audio = document.getElementById("audio_input_selectbox").value;
|
var rx_audio = document.getElementById("audio_input_selectbox").value;
|
||||||
var tx_audio = document.getElementById("audio_output_selectbox").value;
|
var tx_audio = document.getElementById("audio_output_selectbox").value;
|
||||||
|
|
||||||
var pttport = document.getElementById("hamlib_ptt_port_advanced").value;
|
var pttport = document.getElementById("hamlib_ptt_port").value;
|
||||||
var data_bits = document.getElementById('hamlib_databits_advanced').value;
|
var data_bits = document.getElementById('hamlib_databits').value;
|
||||||
var stop_bits = document.getElementById('hamlib_stopbits_advanced').value;
|
var stop_bits = document.getElementById('hamlib_stopbits').value;
|
||||||
var handshake = document.getElementById('hamlib_handshake_advanced').value;
|
var handshake = document.getElementById('hamlib_handshake').value;
|
||||||
|
|
||||||
if (document.getElementById("scatterSwitch").checked == true){
|
if (document.getElementById("scatterSwitch").checked == true){
|
||||||
var enable_scatter = "True";
|
var enable_scatter = "True";
|
||||||
|
@ -693,46 +1008,36 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
if (!document.getElementById("radio-control-switch-disabled").checked) {
|
||||||
// overriding settings for rigctl / direct
|
|
||||||
if (document.getElementById("radio-control-switch2").checked){
|
|
||||||
var radiocontrol = 'rigctl';
|
|
||||||
var deviceid = document.getElementById("hamlib_deviceid_rigctl").value;
|
|
||||||
var deviceport = document.getElementById("hamlib_deviceport_rigctl").value;
|
|
||||||
var serialspeed = document.getElementById("hamlib_serialspeed_rigctl").value;
|
|
||||||
var pttprotocol = document.getElementById("hamlib_ptt_protocol_rigctl").value;
|
|
||||||
|
|
||||||
} else
|
|
||||||
*/
|
|
||||||
if (document.getElementById("radio-control-switch3").checked) {
|
|
||||||
var radiocontrol = 'rigctld';
|
var radiocontrol = 'rigctld';
|
||||||
|
|
||||||
} else if (document.getElementById("radio-control-switch1").checked) {
|
|
||||||
var radiocontrol = 'direct';
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
var radiocontrol = 'disabled';
|
var radiocontrol = 'disabled';
|
||||||
}
|
}
|
||||||
|
|
||||||
var tx_audio_level = document.getElementById("audioLevelTX").value;
|
var tx_audio_level = document.getElementById("audioLevelTX").value;
|
||||||
var rx_buffer_size = document.getElementById("rx_buffer_size").value;
|
var rx_buffer_size = document.getElementById("rx_buffer_size").value;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
config.radiocontrol = radiocontrol;
|
config.radiocontrol = radiocontrol;
|
||||||
config.mycall = callsign_ssid;
|
config.mycall = callsign_ssid;
|
||||||
config.mygrid = mygrid;
|
config.mygrid = mygrid;
|
||||||
config.deviceid = deviceid;
|
config.hamlib_deviceid = deviceid;
|
||||||
config.deviceport = deviceport;
|
config.hamlib_deviceport = deviceport;
|
||||||
config.serialspeed_direct = serialspeed;
|
config.hamlib_serialspeed = serialspeed;
|
||||||
config.pttprotocol_direct = pttprotocol;
|
config.hamlib_pttprotocol = pttprotocol;
|
||||||
config.pttport = pttport;
|
config.hamlib_pttport = pttport;
|
||||||
config.data_bits_direct = data_bits;
|
config.hamlib_data_bits = data_bits;
|
||||||
config.stop_bits_direct = stop_bits;
|
config.hamlib_stop_bits = stop_bits;
|
||||||
config.handshake_direct = handshake;
|
config.hamlib_handshake = handshake;
|
||||||
|
config.hamlib_dcd = hamlib_dcd;
|
||||||
//config.deviceid_rigctl = deviceid_rigctl;
|
//config.deviceid_rigctl = deviceid_rigctl;
|
||||||
//config.serialspeed_rigctl = serialspeed_rigctl;
|
//config.serialspeed_rigctl = serialspeed_rigctl;
|
||||||
//config.pttprotocol_rigctl = pttprotocol_rigctl;
|
//config.pttprotocol_rigctl = pttprotocol_rigctl;
|
||||||
config.rigctld_port = rigctld_port;
|
config.hamlib_rigctld_port = rigctld_port;
|
||||||
config.rigctld_ip = rigctld_ip;
|
config.hamlib_rigctld_ip = rigctld_ip;
|
||||||
|
config.hamlib_rigctld_server_port = hamlib_rigctld_server_port;
|
||||||
//config.deviceport_rigctl = deviceport_rigctl;
|
//config.deviceport_rigctl = deviceport_rigctl;
|
||||||
config.enable_scatter = enable_scatter;
|
config.enable_scatter = enable_scatter;
|
||||||
config.enable_fft = enable_fft;
|
config.enable_fft = enable_fft;
|
||||||
|
@ -819,10 +1124,10 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
document.getElementById("testHamlib").addEventListener("click", () => {
|
document.getElementById("testHamlib").addEventListener("click", () => {
|
||||||
|
|
||||||
|
|
||||||
var data_bits = document.getElementById("hamlib_databits_advanced").value;
|
var data_bits = document.getElementById("hamlib_databits").value;
|
||||||
var stop_bits = document.getElementById("hamlib_stopbits_advanced").value;
|
var stop_bits = document.getElementById("hamlib_stopbits").value;
|
||||||
var handshake = document.getElementById("hamlib_handshake_advanced").value;
|
var handshake = document.getElementById("hamlib_handshake").value;
|
||||||
var pttport = document.getElementById("hamlib_ptt_port_advanced").value;
|
var pttport = document.getElementById("hamlib_ptt_port").value;
|
||||||
|
|
||||||
var rigctld_ip = document.getElementById("hamlib_rigctld_ip").value;
|
var rigctld_ip = document.getElementById("hamlib_rigctld_ip").value;
|
||||||
var rigctld_port = document.getElementById("hamlib_rigctld_port").value;
|
var rigctld_port = document.getElementById("hamlib_rigctld_port").value;
|
||||||
|
@ -830,30 +1135,14 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
var deviceid = document.getElementById("hamlib_deviceid").value;
|
var deviceid = document.getElementById("hamlib_deviceid").value;
|
||||||
var deviceport = document.getElementById("hamlib_deviceport").value;
|
var deviceport = document.getElementById("hamlib_deviceport").value;
|
||||||
var serialspeed = document.getElementById("hamlib_serialspeed").value;
|
var serialspeed = document.getElementById("hamlib_serialspeed").value;
|
||||||
var pttprotocol = document.getElementById("hamlib_ptt_protocol").value;
|
var pttprotocol = document.getElementById("hamlib_pttprotocol").value;
|
||||||
|
|
||||||
|
if (document.getElementById("radio-control-switch-disabled").checked) {
|
||||||
/*
|
|
||||||
// overriding settings for rigctl / direct
|
|
||||||
if (document.getElementById("radio-control-switch2").checked){
|
|
||||||
var radiocontrol = 'rigctl';
|
|
||||||
var deviceid = document.getElementById("hamlib_deviceid_rigctl").value;
|
|
||||||
var deviceport = document.getElementById("hamlib_deviceport_rigctl").value;
|
|
||||||
var serialspeed = document.getElementById("hamlib_serialspeed_rigctl").value;
|
|
||||||
var pttprotocol = document.getElementById("hamlib_ptt_protocol_rigctl").value;
|
|
||||||
|
|
||||||
} else */
|
|
||||||
if (document.getElementById("radio-control-switch3").checked) {
|
|
||||||
var radiocontrol = 'rigctld';
|
|
||||||
|
|
||||||
} else if (document.getElementById("radio-control-switch1").checked) {
|
|
||||||
var radiocontrol = 'direct';
|
|
||||||
} else {
|
|
||||||
var radiocontrol = 'disabled';
|
var radiocontrol = 'disabled';
|
||||||
|
} else {
|
||||||
|
var radiocontrol = 'rigctld';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
daemon.testHamlib(radiocontrol, deviceid, deviceport, serialspeed, pttprotocol, pttport, data_bits, stop_bits, handshake, rigctld_ip, rigctld_port)
|
daemon.testHamlib(radiocontrol, deviceid, deviceport, serialspeed, pttprotocol, pttport, data_bits, stop_bits, handshake, rigctld_ip, rigctld_port)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -927,7 +1216,9 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
||||||
command: "openRFChat"
|
command: "openRFChat"
|
||||||
};
|
};
|
||||||
ipcRenderer.send('request-show-chat-window', Data);
|
ipcRenderer.send('request-show-chat-window', Data);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1420,7 +1711,7 @@ ipcRenderer.on('action-update-daemon-state', (event, arg) => {
|
||||||
option.text = arg.serial_devices[i]['port'] + ' -- ' + arg.serial_devices[i]['description'];
|
option.text = arg.serial_devices[i]['port'] + ' -- ' + arg.serial_devices[i]['description'];
|
||||||
option.value = arg.serial_devices[i]['port'];
|
option.value = arg.serial_devices[i]['port'];
|
||||||
// set device from config if available
|
// set device from config if available
|
||||||
if(config.deviceport == option.value){
|
if(config.hamlib_deviceport == option.value){
|
||||||
option.setAttribute('selected', true);
|
option.setAttribute('selected', true);
|
||||||
}
|
}
|
||||||
document.getElementById("hamlib_deviceport").add(option);
|
document.getElementById("hamlib_deviceport").add(option);
|
||||||
|
@ -1428,53 +1719,22 @@ ipcRenderer.on('action-update-daemon-state', (event, arg) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// advanced settings
|
|
||||||
if (document.getElementById("hamlib_deviceport_advanced").length != arg.serial_devices.length) {
|
|
||||||
document.getElementById("hamlib_deviceport_advanced").innerHTML = "";
|
|
||||||
for (i = 0; i < arg.serial_devices.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.text = arg.serial_devices[i]['description'];
|
|
||||||
option.value = arg.serial_devices[i]['port'];
|
|
||||||
// set device from config if available
|
|
||||||
if(config.deviceport == option.value){
|
|
||||||
option.setAttribute('selected', true);
|
|
||||||
}
|
|
||||||
document.getElementById("hamlib_deviceport_advanced").add(option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
// rigctl settings
|
|
||||||
if (document.getElementById("hamlib_deviceport_rigctl").length != arg.serial_devices.length) {
|
|
||||||
document.getElementById("hamlib_deviceport_rigctl").innerHTML = "";
|
|
||||||
for (i = 0; i < arg.serial_devices.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.text = arg.serial_devices[i]['description'];
|
|
||||||
option.value = arg.serial_devices[i]['port'];
|
|
||||||
// set device from config if available
|
|
||||||
if(config.deviceport == option.value){
|
|
||||||
option.setAttribute('selected', true);
|
|
||||||
}
|
|
||||||
document.getElementById("hamlib_deviceport_rigctl").add(option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg.tnc_running_state == "stopped") {
|
if (arg.tnc_running_state == "stopped") {
|
||||||
if (document.getElementById("hamlib_ptt_port_advanced").length != arg.serial_devices.length) {
|
if (document.getElementById("hamlib_ptt_port").length != arg.serial_devices.length) {
|
||||||
document.getElementById("hamlib_ptt_port_advanced").innerHTML = "";
|
document.getElementById("hamlib_ptt_port").innerHTML = "";
|
||||||
for (i = 0; i < arg.serial_devices.length; i++) {
|
for (i = 0; i < arg.serial_devices.length; i++) {
|
||||||
var option = document.createElement("option");
|
var option = document.createElement("option");
|
||||||
option.text = arg.serial_devices[i]['description'];
|
option.text = arg.serial_devices[i]['description'];
|
||||||
option.value = arg.serial_devices[i]['port'];
|
option.value = arg.serial_devices[i]['port'];
|
||||||
// set device from config if available
|
// set device from config if available
|
||||||
if(config.pttport == option.value){
|
if(config.hamlib_pttport == option.value){
|
||||||
option.setAttribute('selected', true);
|
option.setAttribute('selected', true);
|
||||||
}
|
}
|
||||||
document.getElementById("hamlib_ptt_port_advanced").add(option);
|
document.getElementById("hamlib_ptt_port").add(option);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1528,12 +1788,12 @@ ipcRenderer.on('action-update-daemon-connection', (event, arg) => {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcRenderer.on('action-update-tnc-connection', (event, arg) => {
|
ipcRenderer.on('action-update-tnc-connection', (arg) => {
|
||||||
|
|
||||||
if (arg.tnc_connection == "open") {
|
if (arg.tnc_connection == "open") {
|
||||||
|
/*
|
||||||
document.getElementById('hamlib_deviceid').disabled = true;
|
document.getElementById('hamlib_deviceid').disabled = true;
|
||||||
document.getElementById('hamlib_deviceport').disabled = true;
|
document.getElementById('hamlib_deviceport').disabled = true;
|
||||||
document.getElementById('advancedHamlibSettingsButton').disabled = true;
|
|
||||||
document.getElementById('testHamlib').disabled = true;
|
document.getElementById('testHamlib').disabled = true;
|
||||||
document.getElementById('hamlib_ptt_protocol').disabled = true;
|
document.getElementById('hamlib_ptt_protocol').disabled = true;
|
||||||
document.getElementById('audio_input_selectbox').disabled = true;
|
document.getElementById('audio_input_selectbox').disabled = true;
|
||||||
|
@ -1543,6 +1803,7 @@ ipcRenderer.on('action-update-tnc-connection', (event, arg) => {
|
||||||
document.getElementById('dxCall').disabled = false;
|
document.getElementById('dxCall').disabled = false;
|
||||||
document.getElementById("hamlib_serialspeed").disabled = true;
|
document.getElementById("hamlib_serialspeed").disabled = true;
|
||||||
document.getElementById("openDataModule").disabled = false;
|
document.getElementById("openDataModule").disabled = false;
|
||||||
|
*/
|
||||||
|
|
||||||
// collapse settings screen
|
// collapse settings screen
|
||||||
var collapseFirstRow = new bootstrap.Collapse(document.getElementById('collapseFirstRow'), {toggle: false})
|
var collapseFirstRow = new bootstrap.Collapse(document.getElementById('collapseFirstRow'), {toggle: false})
|
||||||
|
@ -1554,9 +1815,9 @@ ipcRenderer.on('action-update-tnc-connection', (event, arg) => {
|
||||||
var collapseFourthRow = new bootstrap.Collapse(document.getElementById('collapseFourthRow'), {toggle: false})
|
var collapseFourthRow = new bootstrap.Collapse(document.getElementById('collapseFourthRow'), {toggle: false})
|
||||||
collapseFourthRow.show();
|
collapseFourthRow.show();
|
||||||
} else {
|
} else {
|
||||||
|
/*
|
||||||
document.getElementById('hamlib_deviceid').disabled = false;
|
document.getElementById('hamlib_deviceid').disabled = false;
|
||||||
document.getElementById('hamlib_deviceport').disabled = false;
|
document.getElementById('hamlib_deviceport').disabled = false;
|
||||||
document.getElementById('advancedHamlibSettingsButton').disabled = false;
|
|
||||||
document.getElementById('testHamlib').disabled = false;
|
document.getElementById('testHamlib').disabled = false;
|
||||||
document.getElementById('hamlib_ptt_protocol').disabled = false;
|
document.getElementById('hamlib_ptt_protocol').disabled = false;
|
||||||
document.getElementById('audio_input_selectbox').disabled = false;
|
document.getElementById('audio_input_selectbox').disabled = false;
|
||||||
|
@ -1566,7 +1827,7 @@ ipcRenderer.on('action-update-tnc-connection', (event, arg) => {
|
||||||
document.getElementById('dxCall').disabled = true;
|
document.getElementById('dxCall').disabled = true;
|
||||||
document.getElementById("hamlib_serialspeed").disabled = false;
|
document.getElementById("hamlib_serialspeed").disabled = false;
|
||||||
document.getElementById("openDataModule").disabled = true;
|
document.getElementById("openDataModule").disabled = true;
|
||||||
|
*/
|
||||||
// collapse settings screen
|
// collapse settings screen
|
||||||
var collapseFirstRow = new bootstrap.Collapse(document.getElementById('collapseFirstRow'), {toggle: false})
|
var collapseFirstRow = new bootstrap.Collapse(document.getElementById('collapseFirstRow'), {toggle: false})
|
||||||
collapseFirstRow.show();
|
collapseFirstRow.show();
|
||||||
|
@ -1978,45 +2239,35 @@ ipcRenderer.on('action-show-arq-toast-session-failed', (event, data) => {
|
||||||
toast.show();
|
toast.show();
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
|
||||||
// TRANSMISSION STOPPED
|
|
||||||
if (arg.info[i] == "TRANSMISSION;STOPPED"){
|
|
||||||
var toastDATACHANNELreceivedopener = document.getElementById('toastTRANSMISSIONstopped');
|
|
||||||
var toast = bootstrap.Toast.getOrCreateInstance(toastDATACHANNELreceivedopener); // Returns a Bootstrap toast instance
|
|
||||||
toast.show();
|
|
||||||
|
// enable or disable a setting by given switch and element
|
||||||
|
function enable_setting(enable_switch, enable_object){
|
||||||
|
if(document.getElementById(enable_switch).checked){
|
||||||
|
config[enable_switch] = true
|
||||||
|
document.getElementById(enable_object).removeAttribute("disabled","disabled");
|
||||||
|
} else {
|
||||||
|
config[enable_switch] = false
|
||||||
|
document.getElementById(enable_object).setAttribute("disabled","disabled");
|
||||||
}
|
}
|
||||||
*/
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
}
|
||||||
|
|
||||||
// DATACHANNEL FAILED TOAST
|
// enable or disable a setting switch
|
||||||
//if (arg.info[i] == "DATACHANNEL;FAILED"){
|
function set_setting_switch(setting_switch, enable_object, state){
|
||||||
// var toastDATACHANNELfailed = document.getElementById('toastDATACHANNELfailed');
|
document.getElementById(setting_switch).checked = state
|
||||||
// var toast = bootstrap.Toast.getOrCreateInstance(toastDATACHANNELfailed); // Returns a Bootstrap toast instance
|
enable_setting(setting_switch, enable_object)
|
||||||
// toast.show();
|
}
|
||||||
//}
|
|
||||||
|
|
||||||
|
setInterval(checkRigctld, 500)
|
||||||
/*
|
function checkRigctld(){
|
||||||
// ARQ RECEIVING FAILED TOAST
|
ipcRenderer.send('request-check-rigctld');
|
||||||
if (arg.info[i] == "ARQ;RECEIVING;FAILED"){
|
}
|
||||||
|
ipcRenderer.on('action-check-rigctld', (event, data) => {
|
||||||
document.getElementById("transmission_progress").className = "progress-bar progress-bar-striped bg-danger";
|
console.log(data)
|
||||||
|
document.getElementById("hamlib_rigctld_status").value = data["state"];
|
||||||
var toastARQreceivingfailed = document.getElementById('toastARQreceivingfailed');
|
});
|
||||||
var toast = bootstrap.Toast.getOrCreateInstance(toastARQreceivingfailed); // Returns a Bootstrap toast instance
|
|
||||||
toast.show();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
// ARQ TRANSMITTING FAILED TOAST
|
|
||||||
if (arg.info[i] == "ARQ;TRANSMITTING;FAILED"){
|
|
||||||
|
|
||||||
document.getElementById("transmission_progress").className = "progress-bar progress-bar-striped bg-danger";
|
|
||||||
|
|
||||||
var toast = bootstrap.Toast.getOrCreateInstance(toastARQtransmittingfailed); // Returns a Bootstrap toast instance
|
|
||||||
toast.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
2469
gui/src/index.html
2469
gui/src/index.html
File diff suppressed because it is too large
Load diff
|
@ -43,6 +43,9 @@ class DATA:
|
||||||
self.data_queue_transmit = DATA_QUEUE_TRANSMIT
|
self.data_queue_transmit = DATA_QUEUE_TRANSMIT
|
||||||
self.data_queue_received = DATA_QUEUE_RECEIVED
|
self.data_queue_received = DATA_QUEUE_RECEIVED
|
||||||
|
|
||||||
|
# length of signalling frame
|
||||||
|
self.length_sig_frame = 14
|
||||||
|
|
||||||
# ------- ARQ SESSION
|
# ------- ARQ SESSION
|
||||||
self.arq_file_transfer = False
|
self.arq_file_transfer = False
|
||||||
self.IS_ARQ_SESSION_MASTER = False
|
self.IS_ARQ_SESSION_MASTER = False
|
||||||
|
@ -87,7 +90,7 @@ class DATA:
|
||||||
self.snr_list_low_bw = [0]
|
self.snr_list_low_bw = [0]
|
||||||
|
|
||||||
# List for time to wait for corresponding mode in seconds
|
# List for time to wait for corresponding mode in seconds
|
||||||
self.time_list_low_bw = [6]
|
self.time_list_low_bw = [8]
|
||||||
|
|
||||||
# List of codec2 modes to use in "high bandwidth" mode.
|
# List of codec2 modes to use in "high bandwidth" mode.
|
||||||
self.mode_list_high_bw = [
|
self.mode_list_high_bw = [
|
||||||
|
@ -98,7 +101,7 @@ class DATA:
|
||||||
self.snr_list_high_bw = [0, 5]
|
self.snr_list_high_bw = [0, 5]
|
||||||
|
|
||||||
# List for time to wait for corresponding mode in seconds
|
# List for time to wait for corresponding mode in seconds
|
||||||
self.time_list_high_bw = [6, 7]
|
self.time_list_high_bw = [8, 9]
|
||||||
|
|
||||||
# Mode list for selecting between low bandwidth ( 500Hz ) and modes with higher bandwidth
|
# Mode list for selecting between low bandwidth ( 500Hz ) and modes with higher bandwidth
|
||||||
# but ability to fall back to low bandwidth modes if needed.
|
# but ability to fall back to low bandwidth modes if needed.
|
||||||
|
@ -389,7 +392,7 @@ class DATA:
|
||||||
|
|
||||||
def send_burst_ack_frame(self, snr) -> None:
|
def send_burst_ack_frame(self, snr) -> None:
|
||||||
"""Build and send ACK frame for burst DATA frame"""
|
"""Build and send ACK frame for burst DATA frame"""
|
||||||
ack_frame = bytearray(14)
|
ack_frame = bytearray(self.length_sig_frame)
|
||||||
ack_frame[:1] = bytes([FR_TYPE.BURST_ACK.value])
|
ack_frame[:1] = bytes([FR_TYPE.BURST_ACK.value])
|
||||||
ack_frame[1:4] = static.DXCALLSIGN_CRC
|
ack_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
ack_frame[4:7] = static.MYCALLSIGN_CRC
|
ack_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -401,7 +404,7 @@ class DATA:
|
||||||
|
|
||||||
def send_data_ack_frame(self, snr) -> None:
|
def send_data_ack_frame(self, snr) -> None:
|
||||||
"""Build and send ACK frame for received DATA frame"""
|
"""Build and send ACK frame for received DATA frame"""
|
||||||
ack_frame = bytearray(14)
|
ack_frame = bytearray(self.length_sig_frame)
|
||||||
ack_frame[:1] = bytes([FR_TYPE.FR_ACK.value])
|
ack_frame[:1] = bytes([FR_TYPE.FR_ACK.value])
|
||||||
ack_frame[1:4] = static.DXCALLSIGN_CRC
|
ack_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
ack_frame[4:7] = static.MYCALLSIGN_CRC
|
ack_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -428,7 +431,7 @@ class DATA:
|
||||||
# TODO: Trim `missing_frames` bytesarray to [7:13] (6) frames, if it's larger.
|
# TODO: Trim `missing_frames` bytesarray to [7:13] (6) frames, if it's larger.
|
||||||
|
|
||||||
# then create a repeat frame
|
# then create a repeat frame
|
||||||
rpt_frame = bytearray(14)
|
rpt_frame = bytearray(self.length_sig_frame)
|
||||||
rpt_frame[:1] = bytes([FR_TYPE.FR_REPEAT.value])
|
rpt_frame[:1] = bytes([FR_TYPE.FR_REPEAT.value])
|
||||||
rpt_frame[1:4] = static.DXCALLSIGN_CRC
|
rpt_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
rpt_frame[4:7] = static.MYCALLSIGN_CRC
|
rpt_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -440,7 +443,7 @@ class DATA:
|
||||||
|
|
||||||
def send_burst_nack_frame(self, snr: float = 0) -> None:
|
def send_burst_nack_frame(self, snr: float = 0) -> None:
|
||||||
"""Build and send NACK frame for received DATA frame"""
|
"""Build and send NACK frame for received DATA frame"""
|
||||||
nack_frame = bytearray(14)
|
nack_frame = bytearray(self.length_sig_frame)
|
||||||
nack_frame[:1] = bytes([FR_TYPE.FR_NACK.value])
|
nack_frame[:1] = bytes([FR_TYPE.FR_NACK.value])
|
||||||
nack_frame[1:4] = static.DXCALLSIGN_CRC
|
nack_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
nack_frame[4:7] = static.MYCALLSIGN_CRC
|
nack_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -452,7 +455,7 @@ class DATA:
|
||||||
|
|
||||||
def send_burst_nack_frame_watchdog(self, snr: float = 0) -> None:
|
def send_burst_nack_frame_watchdog(self, snr: float = 0) -> None:
|
||||||
"""Build and send NACK frame for watchdog timeout"""
|
"""Build and send NACK frame for watchdog timeout"""
|
||||||
nack_frame = bytearray(14)
|
nack_frame = bytearray(self.length_sig_frame)
|
||||||
nack_frame[:1] = bytes([FR_TYPE.BURST_NACK.value])
|
nack_frame[:1] = bytes([FR_TYPE.BURST_NACK.value])
|
||||||
nack_frame[1:4] = static.DXCALLSIGN_CRC
|
nack_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
nack_frame[4:7] = static.MYCALLSIGN_CRC
|
nack_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -464,7 +467,7 @@ class DATA:
|
||||||
|
|
||||||
def send_disconnect_frame(self) -> None:
|
def send_disconnect_frame(self) -> None:
|
||||||
"""Build and send a disconnect frame"""
|
"""Build and send a disconnect frame"""
|
||||||
disconnection_frame = bytearray(14)
|
disconnection_frame = bytearray(self.length_sig_frame)
|
||||||
disconnection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_CLOSE.value])
|
disconnection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_CLOSE.value])
|
||||||
disconnection_frame[1:4] = static.DXCALLSIGN_CRC
|
disconnection_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
disconnection_frame[4:7] = static.MYCALLSIGN_CRC
|
disconnection_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -600,6 +603,7 @@ class DATA:
|
||||||
)
|
)
|
||||||
static.ARQ_SPEED_LEVEL = self.speed_level
|
static.ARQ_SPEED_LEVEL = self.speed_level
|
||||||
|
|
||||||
|
|
||||||
# Update modes we are listening to
|
# Update modes we are listening to
|
||||||
self.set_listening_modes(self.mode_list[self.speed_level])
|
self.set_listening_modes(self.mode_list[self.speed_level])
|
||||||
|
|
||||||
|
@ -1268,7 +1272,7 @@ class DATA:
|
||||||
self.IS_ARQ_SESSION_MASTER = True
|
self.IS_ARQ_SESSION_MASTER = True
|
||||||
static.ARQ_SESSION_STATE = "connecting"
|
static.ARQ_SESSION_STATE = "connecting"
|
||||||
|
|
||||||
connection_frame = bytearray(14)
|
connection_frame = bytearray(self.length_sig_frame)
|
||||||
connection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_OPEN.value])
|
connection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_OPEN.value])
|
||||||
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -1425,7 +1429,7 @@ class DATA:
|
||||||
# static.TNC_STATE = "BUSY"
|
# static.TNC_STATE = "BUSY"
|
||||||
# static.ARQ_SESSION_STATE = "connected"
|
# static.ARQ_SESSION_STATE = "connected"
|
||||||
|
|
||||||
connection_frame = bytearray(14)
|
connection_frame = bytearray(self.length_sig_frame)
|
||||||
connection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_HB.value])
|
connection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_HB.value])
|
||||||
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -1544,7 +1548,7 @@ class DATA:
|
||||||
frametype = bytes([FR_TYPE.ARQ_DC_OPEN_W.value])
|
frametype = bytes([FR_TYPE.ARQ_DC_OPEN_W.value])
|
||||||
self.log.debug("[TNC] Requesting high bandwidth mode")
|
self.log.debug("[TNC] Requesting high bandwidth mode")
|
||||||
|
|
||||||
connection_frame = bytearray(14)
|
connection_frame = bytearray(self.length_sig_frame)
|
||||||
connection_frame[:1] = frametype
|
connection_frame[:1] = frametype
|
||||||
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -1572,7 +1576,7 @@ class DATA:
|
||||||
|
|
||||||
self.enqueue_frame_for_tx(connection_frame)
|
self.enqueue_frame_for_tx(connection_frame)
|
||||||
|
|
||||||
timeout = time.time() + 2
|
timeout = time.time() + 4
|
||||||
while time.time() < timeout:
|
while time.time() < timeout:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
# Stop waiting if data channel is opened
|
# Stop waiting if data channel is opened
|
||||||
|
@ -1734,7 +1738,7 @@ class DATA:
|
||||||
frametype = bytes([FR_TYPE.ARQ_DC_OPEN_ACK_W.value])
|
frametype = bytes([FR_TYPE.ARQ_DC_OPEN_ACK_W.value])
|
||||||
self.log.debug("[TNC] Responding with high bandwidth mode")
|
self.log.debug("[TNC] Responding with high bandwidth mode")
|
||||||
|
|
||||||
connection_frame = bytearray(14)
|
connection_frame = bytearray(self.length_sig_frame)
|
||||||
connection_frame[:1] = frametype
|
connection_frame[:1] = frametype
|
||||||
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
connection_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
connection_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -1856,7 +1860,7 @@ class DATA:
|
||||||
+ "]"
|
+ "]"
|
||||||
)
|
)
|
||||||
|
|
||||||
ping_frame = bytearray(14)
|
ping_frame = bytearray(self.length_sig_frame)
|
||||||
ping_frame[:1] = bytes([FR_TYPE.PING.value])
|
ping_frame[:1] = bytes([FR_TYPE.PING.value])
|
||||||
ping_frame[1:4] = static.DXCALLSIGN_CRC
|
ping_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
ping_frame[4:7] = static.MYCALLSIGN_CRC
|
ping_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -1915,7 +1919,7 @@ class DATA:
|
||||||
snr=static.SNR,
|
snr=static.SNR,
|
||||||
)
|
)
|
||||||
|
|
||||||
ping_frame = bytearray(14)
|
ping_frame = bytearray(self.length_sig_frame)
|
||||||
ping_frame[:1] = bytes([FR_TYPE.PING_ACK.value])
|
ping_frame[:1] = bytes([FR_TYPE.PING_ACK.value])
|
||||||
ping_frame[1:4] = static.DXCALLSIGN_CRC
|
ping_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
ping_frame[4:7] = static.MYCALLSIGN_CRC
|
ping_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -1972,7 +1976,7 @@ class DATA:
|
||||||
Force a stop of the running transmission
|
Force a stop of the running transmission
|
||||||
"""
|
"""
|
||||||
self.log.warning("[TNC] Stopping transmission!")
|
self.log.warning("[TNC] Stopping transmission!")
|
||||||
stop_frame = bytearray(14)
|
stop_frame = bytearray(self.length_sig_frame)
|
||||||
stop_frame[:1] = bytes([FR_TYPE.ARQ_STOP.value])
|
stop_frame[:1] = bytes([FR_TYPE.ARQ_STOP.value])
|
||||||
stop_frame[1:4] = static.DXCALLSIGN_CRC
|
stop_frame[1:4] = static.DXCALLSIGN_CRC
|
||||||
stop_frame[4:7] = static.MYCALLSIGN_CRC
|
stop_frame[4:7] = static.MYCALLSIGN_CRC
|
||||||
|
@ -2037,7 +2041,7 @@ class DATA:
|
||||||
"[TNC] Sending beacon!", interval=self.beacon_interval
|
"[TNC] Sending beacon!", interval=self.beacon_interval
|
||||||
)
|
)
|
||||||
|
|
||||||
beacon_frame = bytearray(14)
|
beacon_frame = bytearray(self.length_sig_frame)
|
||||||
beacon_frame[:1] = bytes([FR_TYPE.BEACON.value])
|
beacon_frame[:1] = bytes([FR_TYPE.BEACON.value])
|
||||||
beacon_frame[1:7] = helpers.callsign_to_bytes(self.mycallsign)
|
beacon_frame[1:7] = helpers.callsign_to_bytes(self.mycallsign)
|
||||||
beacon_frame[9:13] = static.MYGRID[:4]
|
beacon_frame[9:13] = static.MYGRID[:4]
|
||||||
|
@ -2115,7 +2119,7 @@ class DATA:
|
||||||
freedata="tnc-message",
|
freedata="tnc-message",
|
||||||
cq="transmitting",
|
cq="transmitting",
|
||||||
)
|
)
|
||||||
cq_frame = bytearray(14)
|
cq_frame = bytearray(self.length_sig_frame)
|
||||||
cq_frame[:1] = bytes([FR_TYPE.CQ.value])
|
cq_frame[:1] = bytes([FR_TYPE.CQ.value])
|
||||||
cq_frame[1:7] = helpers.callsign_to_bytes(self.mycallsign)
|
cq_frame[1:7] = helpers.callsign_to_bytes(self.mycallsign)
|
||||||
cq_frame[7:11] = helpers.encode_grid(static.MYGRID.decode("UTF-8"))
|
cq_frame[7:11] = helpers.encode_grid(static.MYGRID.decode("UTF-8"))
|
||||||
|
@ -2186,7 +2190,7 @@ class DATA:
|
||||||
)
|
)
|
||||||
self.log.info("[TNC] Sending QRV!")
|
self.log.info("[TNC] Sending QRV!")
|
||||||
|
|
||||||
qrv_frame = bytearray(14)
|
qrv_frame = bytearray(self.length_sig_frame)
|
||||||
qrv_frame[:1] = bytes([FR_TYPE.QRV.value])
|
qrv_frame[:1] = bytes([FR_TYPE.QRV.value])
|
||||||
qrv_frame[1:7] = helpers.callsign_to_bytes(self.mycallsign)
|
qrv_frame[1:7] = helpers.callsign_to_bytes(self.mycallsign)
|
||||||
qrv_frame[7:11] = helpers.encode_grid(static.MYGRID.decode("UTF-8"))
|
qrv_frame[7:11] = helpers.encode_grid(static.MYGRID.decode("UTF-8"))
|
||||||
|
|
Loading…
Reference in a new issue