From c5262bb1650cdb5afbe92f89c73d150a8ba14f46 Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Wed, 6 Sep 2023 12:23:20 +0200 Subject: [PATCH] adjusted settings --- gui_vue/package.json | 3 +- gui_vue/src/components/main.vue | 1232 +------------------- gui_vue/src/components/settings.vue | 171 +++ gui_vue/src/components/settings_chat.vue | 100 ++ gui_vue/src/components/settings_exp.vue | 76 ++ gui_vue/src/components/settings_gui.vue | 125 ++ gui_vue/src/components/settings_hamlib.vue | 487 ++++++++ gui_vue/src/components/settings_tnc.vue | 235 ++++ gui_vue/src/components/settings_web.vue | 40 + gui_vue/src/js/settingsHandler.js | 118 ++ gui_vue/src/main.ts | 2 + gui_vue/src/store/settingsStore.js | 203 ++-- 12 files changed, 1481 insertions(+), 1311 deletions(-) create mode 100644 gui_vue/src/components/settings.vue create mode 100644 gui_vue/src/components/settings_chat.vue create mode 100644 gui_vue/src/components/settings_exp.vue create mode 100644 gui_vue/src/components/settings_gui.vue create mode 100644 gui_vue/src/components/settings_hamlib.vue create mode 100644 gui_vue/src/components/settings_tnc.vue create mode 100644 gui_vue/src/components/settings_web.vue create mode 100644 gui_vue/src/js/settingsHandler.js diff --git a/gui_vue/package.json b/gui_vue/package.json index d4851e28..95919de9 100644 --- a/gui_vue/package.json +++ b/gui_vue/package.json @@ -31,7 +31,8 @@ "sass": "^1.66.1", "socket.io": "^4.7.2", "uuid": "^9.0.0", - "vue": "^3.2.47" + "vue": "^3.2.47", + "winston": "^3.10.0" }, "devDependencies": { "@vitejs/plugin-vue": "^4.1.0", diff --git a/gui_vue/src/components/main.vue b/gui_vue/src/components/main.vue index 22d1e57c..d92b0848 100644 --- a/gui_vue/src/components/main.vue +++ b/gui_vue/src/components/main.vue @@ -5,6 +5,10 @@ import main_audio from './main_audio.vue' import main_rig_control from './main_rig_control.vue' import main_my_station from './main_my_station.vue' import main_updater from './main_updater.vue' +import settings from './settings.vue' + + + function testfunction(){ @@ -1870,1241 +1874,15 @@ function changeGuiDesign(design) { -
- -
- -
- Please restart the TNC - after changing settings! -
- - - - - -
- -
-
- GUI theme - -
-
- Waterfall theme - -
-
- - -
-
- - -
-
- Update channel - -
-
- - -
-
- - -
-
- -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
- message retry attempts - -
-
- - -
-
-
- Rigctld path - -
-
- Rigctld server port - -
-
-
- - Radio model - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - Device port - - - -
-
- Serial speed - - -
-
- Data bits - - -
-
- Stop bits - - -
-
- Serial handshake - - -
- -
- PTT device port - -
-
- PTT type - - -
-
- DCD - - -
-
- DTR - - -
-
- Rigctld command - - -
-
- Rigctld custom arguments - -
-
- - -
- -
- - -
- - - - -
- -
- - tnc ip - - : - - - -
- - - -
- -
- - -
- -
- - - - - -
-
- Beacon interval - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
- - -
-
- - -
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
- These options may - not work and are for experienced users only! -
-
-
-
-
- -
+ diff --git a/gui_vue/src/components/settings.vue b/gui_vue/src/components/settings.vue new file mode 100644 index 00000000..ccc2dc25 --- /dev/null +++ b/gui_vue/src/components/settings.vue @@ -0,0 +1,171 @@ + + diff --git a/gui_vue/src/components/settings_chat.vue b/gui_vue/src/components/settings_chat.vue new file mode 100644 index 00000000..38727091 --- /dev/null +++ b/gui_vue/src/components/settings_chat.vue @@ -0,0 +1,100 @@ + + + diff --git a/gui_vue/src/components/settings_exp.vue b/gui_vue/src/components/settings_exp.vue new file mode 100644 index 00000000..d8145c1a --- /dev/null +++ b/gui_vue/src/components/settings_exp.vue @@ -0,0 +1,76 @@ + + + diff --git a/gui_vue/src/components/settings_gui.vue b/gui_vue/src/components/settings_gui.vue new file mode 100644 index 00000000..e18ad0b7 --- /dev/null +++ b/gui_vue/src/components/settings_gui.vue @@ -0,0 +1,125 @@ + + diff --git a/gui_vue/src/components/settings_hamlib.vue b/gui_vue/src/components/settings_hamlib.vue new file mode 100644 index 00000000..c12f6e91 --- /dev/null +++ b/gui_vue/src/components/settings_hamlib.vue @@ -0,0 +1,487 @@ + + + + diff --git a/gui_vue/src/components/settings_tnc.vue b/gui_vue/src/components/settings_tnc.vue new file mode 100644 index 00000000..b11af458 --- /dev/null +++ b/gui_vue/src/components/settings_tnc.vue @@ -0,0 +1,235 @@ + + + diff --git a/gui_vue/src/components/settings_web.vue b/gui_vue/src/components/settings_web.vue new file mode 100644 index 00000000..439dae77 --- /dev/null +++ b/gui_vue/src/components/settings_web.vue @@ -0,0 +1,40 @@ + + + diff --git a/gui_vue/src/js/settingsHandler.js b/gui_vue/src/js/settingsHandler.js new file mode 100644 index 00000000..b77f3f2f --- /dev/null +++ b/gui_vue/src/js/settingsHandler.js @@ -0,0 +1,118 @@ +const path = require("path"); +const fs = require("fs"); +const os = require("os"); +const logger = require("winston") + +// pinia store setup +import { setActivePinia } from 'pinia'; +import pinia from '../store/index'; +setActivePinia(pinia); + +import { useSettingsStore } from '../store/settingsStore.js'; +const settings = useSettingsStore(pinia); +// --------------------------------- + +var appDataFolder = + process.env.APPDATA || + (process.platform == "darwin" + ? process.env.HOME + "/Library/Application Support" + : process.env.HOME + "/.config"); +var configFolder = path.join(appDataFolder, "FreeDATA"); +var configPath = path.join(configFolder, "config.json"); + +// create config folder if not exists +if (!fs.existsSync(configFolder)) { + fs.mkdirSync(configFolder); +} + +// create config file if not exists with defaults +const configDefaultSettings = + '{\ + "tnc_host": "127.0.0.1",\ + "tnc_port": "3000",\ + "daemon_host": "127.0.0.1",\ + "daemon_port": "3001",\ + "mycall": "AA0AA-0",\ + "mygrid": "JN40aa",\ + "radiocontrol" : "disabled",\ + "hamlib_deviceid": "RIG_MODEL_DUMMY_NOVFO",\ + "hamlib_deviceport": "ignore",\ + "hamlib_stop_bits": "ignore",\ + "hamlib_data_bits": "ignore",\ + "hamlib_handshake": "ignore",\ + "hamlib_serialspeed": "ignore",\ + "hamlib_dtrstate": "ignore",\ + "hamlib_pttprotocol": "ignore",\ + "hamlib_ptt_port": "ignore",\ + "hamlib_dcd": "ignore",\ + "hamlbib_serialspeed_ptt": "9600",\ + "hamlib_rigctld_port" : "4532",\ + "hamlib_rigctld_ip" : "127.0.0.1",\ + "hamlib_rigctld_path" : "",\ + "hamlib_rigctld_server_port" : "4532",\ + "hamlib_rigctld_custom_args": "",\ + "tci_port" : "50001",\ + "tci_ip" : "127.0.0.1",\ + "spectrum": "waterfall",\ + "tnclocation": "localhost",\ + "enable_scatter" : "False",\ + "enable_fft" : "False",\ + "enable_fsk" : "False",\ + "low_bandwidth_mode" : "False",\ + "theme" : "default",\ + "screen_height" : 430,\ + "screen_width" : 1050,\ + "update_channel" : "latest",\ + "beacon_interval" : 300,\ + "received_files_folder" : "None",\ + "tuning_range_fmin" : "-50.0",\ + "tuning_range_fmax" : "50.0",\ + "respond_to_cq" : "True",\ + "rx_buffer_size" : "16", \ + "enable_explorer" : "False", \ + "wftheme": 2, \ + "high_graphics" : "True",\ + "explorer_stats" : "False", \ + "auto_tune" : "False", \ + "enable_is_writing" : "True", \ + "shared_folder_path" : ".", \ + "enable_request_profile" : "True", \ + "enable_request_shared_folder" : "False", \ + "max_retry_attempts" : 5, \ + "enable_auto_retry" : "False", \ + "tx_delay" : 0, \ + "auto_start": 0, \ + "enable_sys_notification": 1, \ + "enable_mesh_features": "False" \ + }'; + +if (!fs.existsSync(configPath)) { + fs.writeFileSync(configPath, configDefaultSettings); +} + +// load settings +var config = require(configPath); + +//config validation +// check running config against default config. +// if parameter not exists, add it to running config to prevent errors +console.log("CONFIG VALIDATION ----------------------------- "); + +var parsedConfig = JSON.parse(configDefaultSettings); +for (var key in parsedConfig) { + if (config.hasOwnProperty(key)) { + console.log("FOUND SETTTING [" + key + "]: " + config[key]); + } else { + console.log("MISSING SETTTING [" + key + "] : " + parsedConfig[key]); + config[key] = parsedConfig[key]; + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); + } + try{ + settings[key] = parsedConfig[key]; + } catch(e){ + console.log(e) + } + + +} + diff --git a/gui_vue/src/main.ts b/gui_vue/src/main.ts index 4199af03..82876107 100644 --- a/gui_vue/src/main.ts +++ b/gui_vue/src/main.ts @@ -29,5 +29,7 @@ console.log("init...") app.use(pinia) + +import './js/settingsHandler.js' import './js/daemon.js' import './js/sock.js' diff --git a/gui_vue/src/store/settingsStore.js b/gui_vue/src/store/settingsStore.js index 215ab562..97854a6a 100644 --- a/gui_vue/src/store/settingsStore.js +++ b/gui_vue/src/store/settingsStore.js @@ -3,101 +3,138 @@ import { ref, computed } from 'vue'; export const useSettingsStore = defineStore('settingsStore', () => { + // network + var tnc_host = ref("127.0.0.1"); + var tnc_port = ref(3000); + var daemon_host = ref("127.0.0.1"); + var daemon_port = ref(3001); + var tnclocation = ref("localhost"); + + // app + var screen_height = ref(430); + var screen_width = ref(1050); + var theme = ref("default"); + var wftheme = ref(2); + var high_graphics = ref("False"); + var auto_start = ref(0); + var enable_sys_notification = ref(1); + + // chat + var shared_folder_path = ref("."); + var enable_request_profile = ref("True"); + var enable_request_shared_folder = ref("False"); + var max_retry_attempts = ref(5); + var enable_auto_retry = ref("False"); + // station - var mycall = ref("AA0AA-0") - var mygrid = ref("JN40aa") + var mycall = ref("AA0AA-0"); + var mygrid = ref("JN20aa"); // rigctld - var hamlib_rigctld_port = ref(4532) - var hamlib_rigctld_ip = ref("127.0.0.1") - /* - "radiocontrol" : "disabled",\ - "hamlib_deviceid": "RIG_MODEL_DUMMY_NOVFO",\ - "hamlib_deviceport": "ignore",\ - "hamlib_stop_bits": "ignore",\ - "hamlib_data_bits": "ignore",\ - "hamlib_handshake": "ignore",\ - "hamlib_serialspeed": "ignore",\ - "hamlib_dtrstate": "ignore",\ - "hamlib_pttprotocol": "ignore",\ - "hamlib_ptt_port": "ignore",\ - "hamlib_dcd": "ignore",\ - "hamlbib_serialspeed_ptt": "9600",\ - "hamlib_rigctld_port" : "4532",\ - "hamlib_rigctld_ip" : "127.0.0.1",\ - "hamlib_rigctld_path" : "",\ - "hamlib_rigctld_server_port" : "4532",\ - "hamlib_rigctld_custom_args": "",\ - */ + var hamlib_rigctld_port = ref(4532); + var hamlib_rigctld_ip = ref("127.0.0.1"); + var radiocontrol = ref("disabled"); + var hamlib_deviceid = ref("RIG_MODEL_DUMMY_NOVFO"); + var hamlib_deviceport = ref("ignore"); + var hamlib_stop_bits = ref("ignore"); + var hamlib_data_bits = ref("ignore"); + var hamlib_handshake = ref("ignore"); + var hamlib_serialspeed = ref("ignore"); + var hamlib_dtrstate = ref("ignore"); + var hamlib_pttprotocol = ref("ignore"); + var hamlib_ptt_port = ref("ignore"); + var hamlib_dcd = ref("ignore"); + var hamlbib_serialspeed_ptt = ref(9600); + var hamlib_rigctld_port = ref(4532); + var hamlib_rigctld_ip = ref("127.0.0.1"); + var hamlib_rigctld_path = ref(""); + var hamlib_rigctld_server_port = ref(4532); + var hamlib_rigctld_custom_args = ref(""); // tci - var tci_ip = ref('127.0.0.1') - var tci_port = ref(50001) + var tci_ip = ref('127.0.0.1'); + var tci_port = ref(50001); + + //tnc + var spectrum = ref("waterfall"); + var enable_scatter = ref("False"); + var enable_fft = ref("False"); + var enable_fsk = ref("False"); + var low_bandwidth_mode = ref("False"); + var update_channel = ref("latest"); + var beacon_interval = ref(300); + var received_files_folder = ref("None"); + var tuning_range_fmin = ref(-50.0); + var tuning_range_fmax = ref(50.0); + var respond_to_cq = ref("True"); + var rx_buffer_size = ref(16); + var enable_explorer = ref("False"); + var explorer_stats = ref("False"); + var auto_tune = ref("False"); + var enable_is_writing = ref("True"); + var tx_delay = ref(0); + var enable_mesh_features = ref("False"); -/* - "tnc_host": "127.0.0.1",\ - "tnc_port": "3000",\ - "daemon_host": "127.0.0.1",\ - "daemon_port": "3001",\ - - "radiocontrol" : "disabled",\ - "hamlib_deviceid": "RIG_MODEL_DUMMY_NOVFO",\ - "hamlib_deviceport": "ignore",\ - "hamlib_stop_bits": "ignore",\ - "hamlib_data_bits": "ignore",\ - "hamlib_handshake": "ignore",\ - "hamlib_serialspeed": "ignore",\ - "hamlib_dtrstate": "ignore",\ - "hamlib_pttprotocol": "ignore",\ - "hamlib_ptt_port": "ignore",\ - "hamlib_dcd": "ignore",\ - "hamlbib_serialspeed_ptt": "9600",\ - "hamlib_rigctld_port" : "4532",\ - "hamlib_rigctld_ip" : "127.0.0.1",\ - "hamlib_rigctld_path" : "",\ - "hamlib_rigctld_server_port" : "4532",\ - "hamlib_rigctld_custom_args": "",\ - - "spectrum": "waterfall",\ - "tnclocation": "localhost",\ - "enable_scatter" : "False",\ - "enable_fft" : "False",\ - "enable_fsk" : "False",\ - "low_bandwidth_mode" : "False",\ - "theme" : "default",\ - "screen_height" : 430,\ - "screen_width" : 1050,\ - "update_channel" : "latest",\ - "beacon_interval" : 300,\ - "received_files_folder" : "None",\ - "tuning_range_fmin" : "-50.0",\ - "tuning_range_fmax" : "50.0",\ - "respond_to_cq" : "True",\ - "rx_buffer_size" : "16", \ - "enable_explorer" : "False", \ - "wftheme": 2, \ - "high_graphics" : "True",\ - "explorer_stats" : "False", \ - "auto_tune" : "False", \ - "enable_is_writing" : "True", \ - "shared_folder_path" : ".", \ - "enable_request_profile" : "True", \ - "enable_request_shared_folder" : "False", \ - "max_retry_attempts" : 5, \ - "enable_auto_retry" : "False", \ - "tx_delay" : 0, \ - "auto_start": 0, \ - "enable_sys_notification": 1, \ - "enable_mesh_features": "False" \ -*/ return { + tnc_host, + tnc_port, + daemon_host, + daemon_port, + tnclocation, + screen_height, + screen_width, + theme, + wftheme, + high_graphics, + auto_start, + enable_sys_notification, + shared_folder_path, + enable_request_profile, + enable_request_shared_folder, + max_retry_attempts, + enable_auto_retry, mycall, mygrid, + hamlib_rigctld_port, + hamlib_rigctld_ip, + radiocontrol, + hamlib_deviceid, + hamlib_deviceport, + hamlib_stop_bits, + hamlib_data_bits, + hamlib_handshake, + hamlib_serialspeed, + hamlib_dtrstate, + hamlib_pttprotocol, + hamlib_ptt_port, + hamlib_dcd, + hamlbib_serialspeed_ptt, + hamlib_rigctld_port, + hamlib_rigctld_ip, + hamlib_rigctld_path, + hamlib_rigctld_server_port, + hamlib_rigctld_custom_args, tci_ip, tci_port, - hamlib_rigctld_ip, - hamlib_rigctld_port + spectrum, + enable_scatter, + enable_fft, + enable_fsk, + low_bandwidth_mode, + update_channel, + beacon_interval, + received_files_folder, + tuning_range_fmin, + tuning_range_fmax, + respond_to_cq, + rx_buffer_size, + enable_explorer, + explorer_stats, + auto_tune, + enable_is_writing, + tx_delay, + enable_mesh_features }; });