diff --git a/gui/src/components/settings_station.vue b/gui/src/components/settings_station.vue
index a0f852ec..b12baae2 100644
--- a/gui/src/components/settings_station.vue
+++ b/gui/src/components/settings_station.vue
@@ -1,12 +1,6 @@
@@ -21,8 +15,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
id="myCall"
aria-label="Station Callsign"
aria-describedby="basic-addon1"
- @change="setConfig"
- v-model="settings.mycall"
+ @change="handleFieldValueChange"
+ data-section="STATION"
+ data-setting="mycall"
+ v-model="settings.remote.STATION.mycall"
/>
@@ -32,8 +28,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
diff --git a/gui/src/js/settingsHandler.ts b/gui/src/js/settingsHandler.ts
index 4337d7fd..4dd1de5f 100644
--- a/gui/src/js/settingsHandler.ts
+++ b/gui/src/js/settingsHandler.ts
@@ -6,7 +6,7 @@ import { setActivePinia } from "pinia";
import pinia from "../store/index";
setActivePinia(pinia);
-import { settingsStore as settings } from "../store/settingsStore.js";
+import { settingsStore as settings, onChange } from "../store/settingsStore.js";
import { useAudioStore } from "../store/audioStore.js";
const audioStore = useAudioStore(pinia);
@@ -14,8 +14,6 @@ const audioStore = useAudioStore(pinia);
import { useStateStore } from "../store/stateStore";
const stateStore = useStateStore(pinia);
-import { postToServer, getFromServer } from "./rest.js";
-
// ---------------------------------
console.log(process.env);
@@ -145,54 +143,9 @@ export function processModemConfig(data) {
}
}
-export function getModemConfigAsJSON() {
- // create json output from settings
- // TODO Can we make this more dynamic? Maybe using a settings object?
- // For now its a hardcoded structure until we found a better way
-
- const configData = {
- AUDIO: {
- enable_auto_tune: settings.auto_tune,
- input_device: settings.input_device,
- rx_audio_level: settings.rx_audio_level,
- output_device: settings.output_device,
- tx_audio_level: settings.tx_audio_level,
- //enable_auto_tune: settings.tx_audio_level,
- },
- MESH: {
- enable_protocol: settings.enable_mesh_features,
- },
- MODEM: {
- enable_fft: settings.enable_fft,
- tuning_range_fmax: settings.tuning_range_fmax,
- tuning_range_fmin: settings.tuning_range_fmin,
- enable_fsk: settings.enable_fsk,
- enable_low_bandwidth_mode: settings.enable_low_bandwidth_mode,
- respond_to_cq: settings.respond_to_cq,
- rx_buffer_size: settings.rx_buffer_size,
- enable_scatter: settings.enable_scatter,
- tx_delay: settings.tx_delay,
- },
- NETWORK: {
- modemport: settings.modem_port,
- },
- RADIO: {
- radiocontrol: settings.radiocontrol,
- rigctld_ip: settings.hamlib_rigctld_ip,
- rigctld_port: settings.hamlib_rigctld_port,
- },
- STATION: {
- mycall: settings.mycall + "-" + settings.myssid,
- mygrid: settings.mygrid,
- ssid_list: [],
- enable_explorer: settings.enable_explorer,
- enable_stats: settings.explorer_stats,
- },
- TCI: {
- tci_ip: settings.tci_ip,
- tci_port: settings.tci_port,
- },
- };
-
- return configData;
+export function handleFieldValueChange(event) {
+ const element = event.target;
+ const newValue = element.value;
+ settings.remote[element.dataset.section][element.dataset.setting] = newValue;
+ onChange();
}
diff --git a/gui/src/store/settingsStore.js b/gui/src/store/settingsStore.js
index 609fe2e9..e77f53b4 100644
--- a/gui/src/store/settingsStore.js
+++ b/gui/src/store/settingsStore.js
@@ -1,21 +1,69 @@
import { reactive } from "vue";
-import { getConfig } from "../js/api";
+import { getConfig, setConfig } from "../js/api";
export const settingsStore = reactive({
local: {
host: "127.0.0.1",
port: "5000",
},
- remote: {},
+ remote: {
+ AUDIO: {
+ enable_auto_tune: false,
+ input_device: "",
+ output_device: "",
+ rx_audio_level: 0,
+ tx_audio_level: 0,
+ },
+ MESH: {
+ enable_protocol: false,
+ },
+ MODEM: {
+ enable_fft: false,
+ enable_fsk: false,
+ enable_low_bandwidth_mode: false,
+ enable_scatter: false,
+ respond_to_cq: false,
+ rx_buffer_size: 0,
+ tuning_range_fmax: 0,
+ tuning_range_fmin: 0,
+ tx_delay: 0,
+ },
+ NETWORK: {
+ modemport: 0,
+ },
+ RADIO: {
+ radiocontrol: "disabled",
+ radioport: "None",
+ rigctld_ip: "127.0.0.1",
+ rigctld_port: 0,
+ },
+ STATION: {
+ enable_explorer: false,
+ enable_stats: false,
+ mycall: "",
+ mygrid: "",
+ ssid_list: [],
+ },
+ TCI: {
+ tci_ip: "127.0.0.1",
+ tci_port: 0,
+ },
+ },
});
+export function onChange() {
+ setConfig(settingsStore.remote).then((conf) => {
+ settingsStore.remote = conf;
+ });
+}
+
export function getRemote() {
getConfig().then((conf) => {
settingsStore.remote = conf;
});
}
-if (settingsStore.remote["STATION"] === undefined) {
+if (settingsStore.remote.STATION.mycall === "") {
getRemote();
}