mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
Improve handle of settings
This commit is contained in:
parent
51360b8458
commit
381c0d7813
13 changed files with 90 additions and 380 deletions
|
@ -55,7 +55,7 @@ const state = useStateStore(pinia);
|
|||
type="button"
|
||||
disabled
|
||||
>
|
||||
Update channel | {{ settings.update_channel }}
|
||||
Update channel | settings.update_channel
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-secondary btn-sm ms-1"
|
||||
|
|
|
@ -9,31 +9,18 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
import { useStateStore } from "../store/stateStore.js";
|
||||
const state = useStateStore(pinia);
|
||||
|
||||
import { postToServer } from "../js/rest.js";
|
||||
|
||||
|
||||
function transmitCQ() {
|
||||
postToServer(settings.modem_host, settings.modem_port, "modem/cqcqcq", null);
|
||||
}
|
||||
import { sendModemCQ, sendModemPing, setModemBeacon } from "../js/api.js";
|
||||
|
||||
function transmitPing() {
|
||||
let command = {"dxcall": (<HTMLInputElement>document.getElementById("dxCall")).value}
|
||||
postToServer(settings.modem_host, settings.modem_port, "modem/ping_ping", command);
|
||||
sendModemPing((<HTMLInputElement>document.getElementById("dxCall")).value);
|
||||
}
|
||||
|
||||
function startStopBeacon() {
|
||||
switch (state.beacon_state) {
|
||||
case "False":
|
||||
postToServer(settings.modem_host, settings.modem_port,"modem/beacon", {"enabled": "True"});
|
||||
|
||||
|
||||
break;
|
||||
case "True":
|
||||
postToServer(settings.modem_host, settings.modem_port, "modem/beacon", {"enabled": "False"});
|
||||
|
||||
|
||||
break;
|
||||
default:
|
||||
if (state.beacon_state === true) {
|
||||
setModemBeacon(false);
|
||||
}
|
||||
else {
|
||||
setModemBeacon(true);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -96,7 +83,7 @@ function startStopBeacon() {
|
|||
id="sendCQ"
|
||||
type="button"
|
||||
title="Send a CQ to the world"
|
||||
@click="transmitCQ()"
|
||||
@click="sendModemCQ()"
|
||||
>
|
||||
Call CQ
|
||||
</button>
|
||||
|
@ -107,8 +94,8 @@ function startStopBeacon() {
|
|||
class="btn btn-sm ms-1"
|
||||
@click="startStopBeacon()"
|
||||
v-bind:class="{
|
||||
'btn-success': state.beacon_state === 'True',
|
||||
'btn-outline-secondary': state.beacon_state === 'False',
|
||||
'btn-success': state.beacon_state === true,
|
||||
'btn-outline-secondary': state.beacon_state === false,
|
||||
}"
|
||||
title="Toggle beacon mode. The interval can be set in settings. While sending a beacon, you can receive ping requests and open a datachannel. If a datachannel is opened, the beacon pauses."
|
||||
>
|
||||
|
|
|
@ -6,7 +6,7 @@ setActivePinia(pinia);
|
|||
import { useAudioStore } from "../store/audioStore.js";
|
||||
const audio = useAudioStore(pinia);
|
||||
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -43,7 +43,7 @@ import { saveModemConfig } from "../js/api";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
v-html="audio.getInputDevices()"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
></select>
|
||||
</div>
|
||||
<div class="input-group input-group-sm">
|
||||
|
@ -54,7 +54,7 @@ import { saveModemConfig } from "../js/api";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
v-html="audio.getOutputDevices()"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
></select>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -4,8 +4,6 @@ import { onMounted } from "vue";
|
|||
|
||||
import infoScreen_updater from "./infoScreen_updater.vue";
|
||||
|
||||
import { getModemVersion, saveModemConfig } from "../js/api";
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
setActivePinia(pinia);
|
||||
|
@ -20,8 +18,7 @@ const state = useStateStore(pinia);
|
|||
|
||||
import { startModem, stopModem } from "../js/api";
|
||||
import { getModemConfig, getModemCurrentState } from "../js/api";
|
||||
|
||||
import { startRigctld, stopRigctld } from "../js/deprecated_daemon";
|
||||
import { getVersion, getConfig, setConfig, startModem, stopModem } from "../js/api";
|
||||
|
||||
const version = import.meta.env.PACKAGE_VERSION;
|
||||
var updateAvailable = process.env.FDUpdateAvail;
|
||||
|
@ -31,6 +28,8 @@ onMounted(() => {
|
|||
getModemConfig();
|
||||
getModemCurrentState();
|
||||
getModemVersion();
|
||||
getConfig();
|
||||
getVersion();
|
||||
new Modal("#modemCheck", {}).show();
|
||||
});
|
||||
|
||||
|
@ -212,7 +211,7 @@ function testHamlib() {
|
|||
class="form-select form-select-sm"
|
||||
id="rx_audio"
|
||||
aria-label=".form-select-sm"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.input_device"
|
||||
v-html="audio.getInputDevices()"
|
||||
></select>
|
||||
|
@ -225,7 +224,7 @@ function testHamlib() {
|
|||
class="form-select form-select-sm"
|
||||
id="tx_audio"
|
||||
aria-label=".form-select-sm"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.output_device"
|
||||
v-html="audio.getOutputDevices()"
|
||||
></select>
|
||||
|
@ -268,7 +267,7 @@ function testHamlib() {
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="rigcontrol_radiocontrol"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.radiocontrol"
|
||||
>
|
||||
<option selected value="disabled">
|
||||
|
@ -347,7 +346,7 @@ function testHamlib() {
|
|||
aria-label=".form-select-sm"
|
||||
id="hamlib_deviceport"
|
||||
style="width: 7rem"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
></select>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -363,7 +362,7 @@ function testHamlib() {
|
|||
id="rigcontrol_tci_ip"
|
||||
aria-label="Device IP"
|
||||
v-model="settings.tci_ip"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
@ -376,7 +375,7 @@ function testHamlib() {
|
|||
id="rigcontrol_tci_port"
|
||||
aria-label="Device Port"
|
||||
v-model="settings.tci_port"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
|
@ -17,7 +17,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="enable_is_writing"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_is_writing"
|
||||
disabled
|
||||
/>
|
||||
|
@ -36,7 +36,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="enable_request_profile"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_request_profile"
|
||||
disabled
|
||||
/>
|
||||
|
@ -54,7 +54,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="enable_request_shared_folder"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_request_shared_folder"
|
||||
disabled
|
||||
/>
|
||||
|
@ -68,7 +68,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
type="text"
|
||||
class="form-control w-50"
|
||||
id="shared_folder_path"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.shared_folder_path"
|
||||
disabled
|
||||
/>
|
||||
|
@ -85,7 +85,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="enable_auto_retry"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_auto_retry"
|
||||
/>
|
||||
</div>
|
||||
|
@ -97,7 +97,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
<select
|
||||
class="form-select form-select-sm w-50"
|
||||
id="max_retry_attempts"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.max_retry_attempts"
|
||||
>
|
||||
<option value="1">1</option>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
|
@ -17,7 +17,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="autoTuneSwitch"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.auto_tune"
|
||||
/>
|
||||
<label class="form-check-label" for="autoTuneSwitch"
|
||||
|
@ -34,7 +34,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="fskModeSwitch"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_fsk"
|
||||
disabled
|
||||
/>
|
||||
|
@ -52,7 +52,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="enableMeshSwitch"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_mesh_features"
|
||||
/>
|
||||
<label class="form-check-label" for="enableMeshSwitch"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
|
@ -19,7 +19,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
id="hamlib_rigctld_path"
|
||||
aria-label="Device IP"
|
||||
aria-describedby="basic-addon1"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_rigctld_path"
|
||||
/>
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
id="hamlib_rigctld_server_port"
|
||||
aria-label="Device Port"
|
||||
aria-describedby="basic-addon1"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_rigctld_server_port"
|
||||
/>
|
||||
</div>
|
||||
|
@ -72,7 +72,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="hamlib_deviceid"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_deviceid"
|
||||
>
|
||||
<option selected value="-- ignore --">-- ignore --</option>
|
||||
|
@ -349,7 +349,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
aria-label=".form-select-sm"
|
||||
id="hamlib_deviceport"
|
||||
style="width: 7rem"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
></select>
|
||||
</div>
|
||||
|
||||
|
@ -360,7 +360,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="hamlib_serialspeed"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_serialspeed"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -383,7 +383,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="hamlib_data_bits"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_data_bits"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -398,7 +398,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="hamlib_stop_bits"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_stop_bits"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -413,7 +413,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="hamlib_handshake"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_handshake"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -427,7 +427,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="hamlib_ptt_port"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_ptt_port"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -441,7 +441,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
aria-label=".form-select-sm"
|
||||
id="hamlib_pttprotocol"
|
||||
style="width: 0.5rem"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_pttprotocol"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -462,7 +462,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
aria-label=".form-select-sm"
|
||||
id="hamlib_dcd"
|
||||
style="width: 0.5rem"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_dcd"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -482,7 +482,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
aria-label=".form-select-sm"
|
||||
id="hamlib_dtrstate"
|
||||
style="width: 0.5rem"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_dtrstate"
|
||||
>
|
||||
<option selected value="ignore">-- ignore --</option>
|
||||
|
@ -520,7 +520,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
id="hamlib_rigctld_custom_args"
|
||||
aria-label="Custom arguments"
|
||||
aria-describedby="basic-addon1"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.hamlib_rigctld_custom_args"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import pinia from "../store/index";
|
||||
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
|
||||
import { settingsStore as settings} from "../store/settingsStore.js";
|
||||
|
||||
|
@ -55,8 +55,8 @@ import { startModem, stopModem } from "../js/api";
|
|||
maxlength="5"
|
||||
max="65534"
|
||||
min="1025"
|
||||
@change="saveModemConfig()"
|
||||
v-model.number="settings.modem_port"
|
||||
@change="setConfig()"
|
||||
v-model.number="settings.local.port"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
@ -67,8 +67,8 @@ import { startModem, stopModem } from "../js/api";
|
|||
class="form-control"
|
||||
placeholder="modem host"
|
||||
id="modem_port"
|
||||
@change="saveModemConfig"
|
||||
v-model="settings.modem_host"
|
||||
@change="setConfig"
|
||||
v-model="settings.local.host"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
@ -79,7 +79,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
class="form-select form-select-sm"
|
||||
id="rx_audio"
|
||||
aria-label=".form-select-sm"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.input_device"
|
||||
v-html="audio.getInputDevices()"
|
||||
></select>
|
||||
|
@ -92,7 +92,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
class="form-select form-select-sm"
|
||||
id="tx_audio"
|
||||
aria-label=".form-select-sm"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.output_device"
|
||||
v-html="audio.getOutputDevices()"
|
||||
></select>
|
||||
|
@ -103,7 +103,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
<select
|
||||
class="form-select form-select-sm"
|
||||
id="tx_delay"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model.number="settings.tx_delay"
|
||||
>
|
||||
<option value="0">0</option>
|
||||
|
@ -136,7 +136,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
<select
|
||||
class="form-select form-select-sm"
|
||||
id="tuning_range_fmin"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model.number="settings.tuning_range_fmin"
|
||||
>
|
||||
<option value="-50">-50</option>
|
||||
|
@ -149,7 +149,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
<select
|
||||
class="form-select form-select-sm"
|
||||
id="tuning_range_fmax"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model.number="settings.tuning_range_fmax"
|
||||
>
|
||||
<option value="50">50</option>
|
||||
|
@ -166,7 +166,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
aria-label=".form-select-sm"
|
||||
id="beaconInterval"
|
||||
style="width: 6rem"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.beacon_interval"
|
||||
>
|
||||
<option value="60">60 secs</option>
|
||||
|
@ -187,7 +187,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="fftSwitch"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_fft"
|
||||
/>
|
||||
<label class="form-check-label" for="fftSwitch">Waterfall</label>
|
||||
|
@ -202,7 +202,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="scatterSwitch"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_scatter"
|
||||
/>
|
||||
<label class="form-check-label" for="scatterSwitch">Scatter</label>
|
||||
|
@ -218,7 +218,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
type="checkbox"
|
||||
id="250HzModeSwitch"
|
||||
v-model="settings.low_bandwidth_mode"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
/>
|
||||
<label class="form-check-label" for="250HzModeSwitch">250Hz</label>
|
||||
</div>
|
||||
|
@ -233,7 +233,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
type="checkbox"
|
||||
id="respondCQSwitch"
|
||||
v-model="settings.respond_to_cq"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
/>
|
||||
<label class="form-check-label" for="respondCQSwitch">QRV</label>
|
||||
</div>
|
||||
|
@ -245,7 +245,7 @@ import { startModem, stopModem } from "../js/api";
|
|||
<select
|
||||
class="form-select form-select-sm"
|
||||
id="rx_buffer_size"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model.number="settings.rx_buffer_size"
|
||||
>
|
||||
<option value="1">1</option>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
|
@ -16,7 +16,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-select form-select-sm"
|
||||
aria-label=".form-select-sm"
|
||||
id="rigcontrol_radiocontrol"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.radiocontrol"
|
||||
>
|
||||
<option selected value="disabled">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
|
@ -21,7 +21,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
id="myCall"
|
||||
aria-label="Station Callsign"
|
||||
aria-describedby="basic-addon1"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.mycall"
|
||||
/>
|
||||
</div>
|
||||
|
@ -32,7 +32,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
<select
|
||||
class="form-select form-select-sm w-50"
|
||||
id="myCallSSID"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model.number="settings.myssid"
|
||||
>
|
||||
<option selected value="0">0</option>
|
||||
|
@ -65,7 +65,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
maxlength="6"
|
||||
aria-label="Station Grid Locator"
|
||||
aria-describedby="basic-addon1"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.mygrid"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { saveModemConfig } from "../js/api";
|
||||
import { setConfig } from "../js/api";
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
|
@ -18,7 +18,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="ExplorerSwitch"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.enable_explorer"
|
||||
/>
|
||||
<label class="form-check-label" for="ExplorerSwitch">Publish</label>
|
||||
|
@ -33,7 +33,7 @@ import { settingsStore as settings} from "../store/settingsStore.js";
|
|||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="ExplorerStatsSwitch"
|
||||
@change="saveModemConfig"
|
||||
@change="setConfig"
|
||||
v-model="settings.explorer_stats"
|
||||
/>
|
||||
<label class="form-check-label" for="ExplorerStatsSwitch"
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import { getFromServer, postToServer } from "./rest.js";
|
||||
import { settingsStore as settings } from "../store/settingsStore.js";
|
||||
|
||||
function buildURL(endpoint) {
|
||||
|
@ -37,6 +36,10 @@ export async function apiPost(endpoint, payload = {}) {
|
|||
}
|
||||
}
|
||||
|
||||
export function getVersion() {
|
||||
return apiGet("/version");
|
||||
}
|
||||
|
||||
export function getConfig() {
|
||||
return apiGet("/config");
|
||||
}
|
||||
|
@ -53,6 +56,18 @@ export function getSerialDevices() {
|
|||
return apiGet("/devices/serial");
|
||||
}
|
||||
|
||||
export function setModemBeacon(enabled = false) {
|
||||
return apiPost("/modem/beacon", { enabled: enabled });
|
||||
}
|
||||
|
||||
export function sendModemCQ() {
|
||||
return apiPost("/modem/cqcqcq");
|
||||
}
|
||||
|
||||
export function sendModemPing(dxcall) {
|
||||
return apiPost("/modem/cqcqcq", { dxcall: dxcall });
|
||||
}
|
||||
|
||||
export function startModem() {
|
||||
return apiPost("/modem/start");
|
||||
}
|
||||
|
@ -64,6 +79,7 @@ export function stopModem() {
|
|||
export function getModemVersion() {
|
||||
getFromServer("/version");
|
||||
}
|
||||
|
||||
export function getModemCurrentState() {
|
||||
getFromServer(settings.modem_host, settings.modem_port, "modem/state", null);
|
||||
}
|
||||
|
|
|
@ -1,292 +0,0 @@
|
|||
//var net = require("net");
|
||||
var net = require("node:net");
|
||||
|
||||
// ----------------- init pinia stores -------------
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
setActivePinia(pinia);
|
||||
import { useAudioStore } from "../store/audioStore.js";
|
||||
const audioStore = useAudioStore(pinia);
|
||||
|
||||
import { settingsStore as settings} from "../store/settingsStore.js";
|
||||
|
||||
import { useStateStore } from "../store/stateStore.js";
|
||||
const state = useStateStore(pinia);
|
||||
|
||||
var daemon = new net.Socket();
|
||||
var socketchunk = []; // Current message, per connection.
|
||||
|
||||
// global to keep track of daemon connection error emissions
|
||||
var daemonShowConnectStateError = 1;
|
||||
|
||||
setTimeout(connectDAEMON, 500);
|
||||
|
||||
function connectDAEMON() {
|
||||
if (daemonShowConnectStateError == 1) {
|
||||
console.log("connecting to daemon");
|
||||
}
|
||||
|
||||
//clear message buffer after reconnecting or initial connection
|
||||
socketchunk = [];
|
||||
|
||||
daemon.connect(settings.daemon_port, settings.daemon_host);
|
||||
|
||||
//client.setTimeout(5000);
|
||||
}
|
||||
|
||||
daemon.on("connect", function () {
|
||||
console.log("daemon connection established");
|
||||
state.modem_connection = "connected";
|
||||
daemonShowConnectStateError = 1;
|
||||
});
|
||||
|
||||
daemon.on("error", function (err) {
|
||||
if (daemonShowConnectStateError == 1) {
|
||||
console.log("daemon connection error");
|
||||
console.log("Make sure the daemon is started.");
|
||||
console.log('Run "python daemon.py" in the modem directory.');
|
||||
console.log(err);
|
||||
daemonShowConnectStateError = 0;
|
||||
}
|
||||
setTimeout(connectDAEMON, 500);
|
||||
daemon.destroy();
|
||||
});
|
||||
|
||||
/*
|
||||
client.on('close', function(data) {
|
||||
console.log(' Modem connection closed');
|
||||
setTimeout(connectModem, 2000)
|
||||
let Data = {
|
||||
daemon_connection: daemon.readyState,
|
||||
};
|
||||
ipcRenderer.send('request-update-daemon-connection', Data);
|
||||
});
|
||||
*/
|
||||
|
||||
daemon.on("end", function (data) {
|
||||
console.log("daemon connection ended");
|
||||
console.log(data);
|
||||
daemon.destroy();
|
||||
setTimeout(connectDAEMON, 500);
|
||||
});
|
||||
|
||||
//exports.writeDaemonCommand = function(command){
|
||||
//writeDaemonCommand = function (command) {
|
||||
function writeDaemonCommand(command) {
|
||||
// we use the writingCommand function to update our TCPIP state because we are calling this function a lot
|
||||
// if socket opened, we are able to run commands
|
||||
if (daemon.readyState == "open") {
|
||||
//uiMain.setDAEMONconnection('open')
|
||||
daemon.write(command + "\n");
|
||||
}
|
||||
|
||||
if (daemon.readyState == "closed") {
|
||||
//uiMain.setDAEMONconnection('closed')
|
||||
}
|
||||
|
||||
if (daemon.readyState == "opening") {
|
||||
//uiMain.setDAEMONconnection('opening')
|
||||
}
|
||||
}
|
||||
|
||||
// "https://stackoverflow.com/questions/9070700/nodejs-net-createserver-large-amount-of-data-coming-in"
|
||||
|
||||
daemon.on("data", function (socketdata) {
|
||||
/*
|
||||
inspired by:
|
||||
stackoverflow.com questions 9070700 nodejs-net-createserver-large-amount-of-data-coming-in
|
||||
*/
|
||||
|
||||
socketdata = socketchunk.join("\n") + socketdata.toString("utf8"); //append incoming data to socketchunk
|
||||
//socketdata = socketdata.toString("utf8"); // convert data to string
|
||||
|
||||
//socketchunk += socketdata; // append data to buffer so we can stick long data together
|
||||
|
||||
// check if we received begin and end of json data
|
||||
if (socketdata.startsWith('{"') && socketdata.endsWith('"}\n')) {
|
||||
var data = "";
|
||||
|
||||
// split data into chunks if we received multiple commands
|
||||
socketchunk = socketdata.split("\n");
|
||||
data = JSON.parse(socketchunk[0]);
|
||||
|
||||
// search for empty entries in socketchunk and remove them
|
||||
for (var i = 0; i < socketchunk.length; i++) {
|
||||
if (socketchunk[i] === "") {
|
||||
socketchunk.splice(i, 1);
|
||||
}
|
||||
}
|
||||
|
||||
//iterate through socketchunks array to execute multiple commands in row
|
||||
for (i = 0; i < socketchunk.length; i++) {
|
||||
//check if data is not empty
|
||||
if (socketchunk[i].length > 0) {
|
||||
//try to parse JSON
|
||||
try {
|
||||
data = JSON.parse(socketchunk[i]);
|
||||
} catch (e) {
|
||||
console.log(e); // "SyntaxError
|
||||
//daemonLog.debug(socketchunk[i]);
|
||||
socketchunk = [];
|
||||
}
|
||||
}
|
||||
|
||||
console.log(data);
|
||||
if (data["command"] == "daemon_state") {
|
||||
// update audio devices by putting them to audio store
|
||||
audioStore.inputDevices = data["input_devices"];
|
||||
audioStore.outputDevices = data["output_devices"];
|
||||
settings.serial_devices = data["serial_devices"];
|
||||
state.python_version = data["python_version"];
|
||||
state.modem_version = data["version"];
|
||||
state.modem_running_state = data["daemon_state"][0]["status"];
|
||||
state.rigctld_started = data["rigctld_state"][0]["status"];
|
||||
//state.rigctld_process = data["daemon_state"][0]["rigctld_process"];
|
||||
}
|
||||
|
||||
if (data["command"] == "test_hamlib") {
|
||||
//
|
||||
}
|
||||
|
||||
if (data["command_response"] == "stop_modem") {
|
||||
switch (data["status"]) {
|
||||
case "OK":
|
||||
state.modem_running_state = "running";
|
||||
break;
|
||||
default:
|
||||
state.modem_running_state = "stopped";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//finally delete message buffer
|
||||
socketchunk = [];
|
||||
}
|
||||
});
|
||||
|
||||
// START Modem
|
||||
// ` `== multi line string
|
||||
export function startModem() {
|
||||
var json_command = JSON.stringify({
|
||||
type: "set",
|
||||
command: "start_modem",
|
||||
parameter: [
|
||||
{
|
||||
mycall: settings.mycall + "-" + settings.myssid,
|
||||
mygrid: settings.mygrid,
|
||||
rx_audio: settings.rx_audio,
|
||||
tx_audio: settings.tx_audio,
|
||||
radiocontrol: settings.radiocontrol,
|
||||
devicename: settings.hamlib_deviceid,
|
||||
deviceport: settings.hamlib_deviceport,
|
||||
pttprotocol: settings.hamlib_pttprotocol,
|
||||
pttport: settings.hamlib_ptt_port,
|
||||
serialspeed: settings.hamlib_serialspeed,
|
||||
data_bits: settings.hamlib_data_bits,
|
||||
stop_bits: settings.hamlib_stop_bits,
|
||||
handshake: settings.hamlib_handshake,
|
||||
rigctld_port: settings.hamlib_rigctld_port,
|
||||
rigctld_ip: settings.hamlib_rigctld_ip,
|
||||
enable_scatter: settings.enable_scatter,
|
||||
enable_fft: settings.enable_fft,
|
||||
enable_fsk: settings.enable_fsk,
|
||||
low_bandwidth_mode: settings.low_bandwidth_mode,
|
||||
tuning_range_fmin: settings.tuning_range_fmin,
|
||||
tuning_range_fmax: settings.tuning_range_fmax,
|
||||
tx_audio_level: settings.tx_audio_level,
|
||||
rx_audio_level: settings.rx_audio_level,
|
||||
respond_to_cq: settings.respond_to_cq,
|
||||
rx_buffer_size: settings.rx_buffer_size,
|
||||
enable_explorer: settings.enable_explorer,
|
||||
enable_stats: settings.explorer_stats,
|
||||
enable_auto_tune: settings.auto_tune,
|
||||
tx_delay: settings.tx_delay,
|
||||
tci_ip: settings.tci_ip,
|
||||
tci_port: settings.tci_port,
|
||||
enable_mesh: settings.enable_mesh_features,
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
console.log(json_command);
|
||||
writeDaemonCommand(json_command);
|
||||
}
|
||||
|
||||
// STOP Modem
|
||||
//exports.stopModem = function () {
|
||||
export function stopModem() {
|
||||
var command =
|
||||
'{"type" : "set", "command": "stop_modem" , "parameter": "---" }';
|
||||
writeDaemonCommand(command);
|
||||
}
|
||||
|
||||
// TEST HAMLIB
|
||||
function testHamlib(
|
||||
//exports.testHamlib = function (
|
||||
radiocontrol,
|
||||
devicename,
|
||||
deviceport,
|
||||
serialspeed,
|
||||
pttprotocol,
|
||||
pttport,
|
||||
data_bits,
|
||||
stop_bits,
|
||||
handshake,
|
||||
rigctld_ip,
|
||||
rigctld_port,
|
||||
) {
|
||||
var json_command = JSON.stringify({
|
||||
type: "get",
|
||||
command: "test_hamlib",
|
||||
parameter: [
|
||||
{
|
||||
radiocontrol: radiocontrol,
|
||||
devicename: devicename,
|
||||
deviceport: deviceport,
|
||||
pttprotocol: pttprotocol,
|
||||
pttport: pttport,
|
||||
serialspeed: serialspeed,
|
||||
data_bits: data_bits,
|
||||
stop_bits: stop_bits,
|
||||
handshake: handshake,
|
||||
rigctld_port: rigctld_port,
|
||||
rigctld_ip: rigctld_ip,
|
||||
},
|
||||
],
|
||||
});
|
||||
console.log(json_command);
|
||||
writeDaemonCommand(json_command);
|
||||
}
|
||||
|
||||
export function startRigctld() {
|
||||
var json_command = JSON.stringify({
|
||||
type: "set",
|
||||
command: "start_rigctld",
|
||||
parameter: [
|
||||
{
|
||||
hamlib_deviceid: settings.hamlib_deviceid,
|
||||
hamlib_deviceport: settings.hamlib_deviceport,
|
||||
hamlib_stop_bits: settings.hamlib_stop_bits,
|
||||
hamlib_data_bits: settings.hamlib_data_bits,
|
||||
hamlib_handshake: settings.hamlib_handshake,
|
||||
hamlib_serialspeed: settings.hamlib_serialspeed,
|
||||
hamlib_dtrstate: settings.hamlib_dtrstate,
|
||||
hamlib_pttprotocol: settings.hamlib_pttprotocol,
|
||||
hamlib_ptt_port: settings.hamlib_ptt_port,
|
||||
hamlib_dcd: settings.hamlib_dcd,
|
||||
hamlbib_serialspeed_ptt: settings.hamlib_serialspeed,
|
||||
hamlib_rigctld_port: settings.hamlib_rigctld_port,
|
||||
hamlib_rigctld_ip: settings.hamlib_rigctld_ip,
|
||||
hamlib_rigctld_path: settings.hamlib_rigctld_path,
|
||||
hamlib_rigctld_server_port: settings.hamlib_rigctld_server_port,
|
||||
hamlib_rigctld_custom_args: settings.hamlib_rigctld_custom_args,
|
||||
},
|
||||
],
|
||||
});
|
||||
console.log(json_command);
|
||||
writeDaemonCommand(json_command);
|
||||
}
|
||||
export function stopRigctld() {
|
||||
let command = '{"type" : "set", "command": "stop_rigctld"}';
|
||||
writeDaemonCommand(command);
|
||||
}
|
Loading…
Reference in a new issue