More progress..

This commit is contained in:
Pedro 2023-11-18 12:57:36 +01:00
parent 312df72f8b
commit c6871dbf52
6 changed files with 123 additions and 90 deletions

View file

@ -8,7 +8,8 @@ import { setActivePinia } from "pinia";
import pinia from "../store/index"; import pinia from "../store/index";
setActivePinia(pinia); setActivePinia(pinia);
import { settingsStore as settings} from "../store/settingsStore.js"; import { settingsStore as settings } from "../store/settingsStore.js";
import { handleFieldValueChange } from "../js/settingsHandler";
import { useAudioStore } from "../store/audioStore.js"; import { useAudioStore } from "../store/audioStore.js";
const audio = useAudioStore(pinia); const audio = useAudioStore(pinia);
@ -124,8 +125,7 @@ function testHamlib() {
maxlength="5" maxlength="5"
max="65534" max="65534"
min="1025" min="1025"
@change="saveSettingsToFile()" v-model="settings.local.port"
v-model="settings.modem_port"
/> />
</div> </div>
@ -136,8 +136,7 @@ function testHamlib() {
class="form-control" class="form-control"
placeholder="modem host (default 127.0.0.1)" placeholder="modem host (default 127.0.0.1)"
id="modem_port" id="modem_port"
@change="saveSettingsToFile()" v-model="settings.local.host"
v-model="settings.modem_host"
/> />
</div> </div>
</div> </div>
@ -209,8 +208,10 @@ function testHamlib() {
class="form-select form-select-sm" class="form-select form-select-sm"
id="rx_audio" id="rx_audio"
aria-label=".form-select-sm" aria-label=".form-select-sm"
@change="setConfig" data-section="AUDIO"
v-model="settings.input_device" data-setting="input_device"
@change="handleFieldValueChange"
v-model="settings.remote.AUDIO.input_device"
v-html="audio.getInputDevices()" v-html="audio.getInputDevices()"
></select> ></select>
</div> </div>
@ -265,8 +266,10 @@ function testHamlib() {
class="form-select form-select-sm" class="form-select form-select-sm"
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="rigcontrol_radiocontrol" id="rigcontrol_radiocontrol"
@change="setConfig" data-section="RADIO"
v-model="settings.radiocontrol" data-setting="control"
@change="handleFieldValueChange"
v-model="settings.remote.RADIO.control"
> >
<option selected value="disabled"> <option selected value="disabled">
Disabled (no rig control; use with VOX) Disabled (no rig control; use with VOX)
@ -276,7 +279,7 @@ function testHamlib() {
</select> </select>
</div> </div>
<div <div
:class="settings.radiocontrol == 'rigctld' ? '' : 'd-none'" :class="settings.remote.RADIO.control == 'rigctld' ? '' : 'd-none'"
> >
<!-- Shown when rigctld is selected--> <!-- Shown when rigctld is selected-->
@ -348,7 +351,7 @@ function testHamlib() {
></select> ></select>
</div> </div>
</div> </div>
<div :class="settings.radiocontrol == 'tci' ? '' : 'd-none'"> <div :class="settings.remote.RADIO.control == 'tci' ? '' : 'd-none'">
<!-- Shown when tci is selected--> <!-- Shown when tci is selected-->
<div class="input-group input-group-sm mb-1"> <div class="input-group input-group-sm mb-1">
@ -359,8 +362,10 @@ function testHamlib() {
placeholder="TCI IP" placeholder="TCI IP"
id="rigcontrol_tci_ip" id="rigcontrol_tci_ip"
aria-label="Device IP" aria-label="Device IP"
v-model="settings.tci_ip" data-section="TCI"
@change="setConfig" data-setting="ip"
v-model="settings.remote.TCI.ip"
@change="handleFieldValueChange"
/> />
</div> </div>
@ -372,8 +377,10 @@ function testHamlib() {
placeholder="TCI port" placeholder="TCI port"
id="rigcontrol_tci_port" id="rigcontrol_tci_port"
aria-label="Device Port" aria-label="Device Port"
v-model="settings.tci_port" data-section="TCI"
@change="setConfig" data-setting="port"
v-model="settings.remote.TCI.port"
@change="handleFieldValueChange"
/> />
</div> </div>
</div> </div>

View file

@ -1,79 +1,51 @@
<script setup lang="ts"> <script setup lang="ts">
import { setConfig } from "../js/api"; import { settingsStore as settings } from "../store/settingsStore.js";
import { handleFieldValueChange } from "../js/settingsHandler";
import { setActivePinia } from "pinia";
import pinia from "../store/index";
setActivePinia(pinia);
import { settingsStore as settings} from "../store/settingsStore.js";
</script> </script>
<template> <template>
<hr class="m-2" /> <hr class="m-2" />
<div class="input-group input-group-sm mb-1"> <div class="input-group input-group-sm mb-1">
<span class="input-group-text" style="width: 180px">Rigctld path</span> <span class="input-group-text" style="width: 180px">Rigctld IP</span>
<input
type="text"
class="form-control"
placeholder="rigctld Path"
id="hamlib_rigctld_path"
aria-label="Device IP"
aria-describedby="basic-addon1"
@change="setConfig"
v-model="settings.hamlib_rigctld_path"
/>
</div>
<div class="input-group input-group-sm mb-1">
<span class="input-group-text" style="width: 180px"
>Rigctld server port</span
>
<input
type="text"
class="form-control"
placeholder="rigctld port"
id="hamlib_rigctld_server_port"
aria-label="Device Port"
aria-describedby="basic-addon1"
@change="setConfig"
v-model="settings.hamlib_rigctld_server_port"
/>
</div>
<div class="input-group input-group-sm mb-1">
<span class="input-group-text" style="width: 180px">Rigctld remote ip</span>
<input <input
type="text" type="text"
class="form-control" class="form-control"
placeholder="rigctld IP" placeholder="rigctld IP"
id="hamlib_rigctld_ip" id="hamlib_rigctld_ip"
aria-label="Device IP" aria-label="Device IP"
v-model="settings.hamlib_rigctld_ip" @change="handleFieldValueChange"
data-section="RIGCTLD"
data-setting="rip"
v-model="settings.remote.RIGCTLD.ip"
/> />
</div> </div>
<div class="input-group input-group-sm mb-1"> <div class="input-group input-group-sm mb-1">
<span class="input-group-text" style="width: 180px" <span class="input-group-text" style="width: 180px">Rigctld port</span>
>Rigctld remote port</span
>
<input <input
type="text" type="text"
class="form-control" class="form-control"
placeholder="rigctld port" placeholder="rigctld port"
id="hamlib_rigctld_port" id="hamlib_rigctld_port"
aria-label="Device Port" aria-label="Device Port"
v-model="settings.hamlib_rigctld_port" @change="handleFieldValueChange"
data-section="RIGCTLD"
data-setting="port"
v-model="settings.remote.RIGCTLD.port"
/> />
</div> </div>
<hr class="m-2" /> <hr class="m-2" />
<div class="input-group input-group-sm mb-1"> <div class="input-group input-group-sm mb-1">
<span class="input-group-text" style="width: 180px"> Radio model </span> <span class="input-group-text" style="width: 180px">Radio model</span>
<select <select
class="form-select form-select-sm" class="form-select form-select-sm"
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_deviceid" id="hamlib_deviceid"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_deviceid" data-section="RADIO"
data-setting="model_id"
v-model="settings.remote.RADIO.model_id"
> >
<option selected value="-- ignore --">-- ignore --</option> <option selected value="-- ignore --">-- ignore --</option>
<option value="2028">Kenwood TS480</option> <option value="2028">Kenwood TS480</option>
@ -349,7 +321,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_deviceport" id="hamlib_deviceport"
style="width: 7rem" style="width: 7rem"
@change="setConfig" @change="handleFieldValueChange"
data-section="RIGCTLD"
data-setting="port"
v-model="settings.remote.RIGCTLD.port"
></select> ></select>
</div> </div>
@ -360,8 +335,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
class="form-select form-select-sm" class="form-select form-select-sm"
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_serialspeed" id="hamlib_serialspeed"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_serialspeed" data-section="RADIO"
data-setting="serial_speed"
v-model="settings.remote.RADIO.serial_speed"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
<option value="1200">1200</option> <option value="1200">1200</option>
@ -383,8 +360,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
class="form-select form-select-sm" class="form-select form-select-sm"
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_data_bits" id="hamlib_data_bits"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_data_bits" data-section="RADIO"
data-setting="data_bits"
v-model="settings.remote.RADIO.data_bits"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
<option value="7">7</option> <option value="7">7</option>
@ -398,8 +377,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
class="form-select form-select-sm" class="form-select form-select-sm"
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_stop_bits" id="hamlib_stop_bits"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_stop_bits" data-section="RADIO"
data-setting="stop_bits"
v-model="settings.remote.RADIO.stop_bits"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
<option value="1">1</option> <option value="1">1</option>
@ -413,8 +394,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
class="form-select form-select-sm" class="form-select form-select-sm"
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_handshake" id="hamlib_handshake"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_handshake" data-section="RADIO"
data-setting="serial_handshake"
v-model="settings.remote.RADIO.serial_handshake"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
<option value="None">None (Default)</option> <option value="None">None (Default)</option>
@ -427,8 +410,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
class="form-select form-select-sm" class="form-select form-select-sm"
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_ptt_port" id="hamlib_ptt_port"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_ptt_port" data-section="RADIO"
data-setting="ptt_port"
v-model="settings.remote.RADIO.ptt_port"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
</select> </select>
@ -441,8 +426,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_pttprotocol" id="hamlib_pttprotocol"
style="width: 0.5rem" style="width: 0.5rem"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_pttprotocol" data-section="RADIO"
data-setting="ptt_type"
v-model="settings.remote.RADIO.ptt_type"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
<option value="NONE">NONE</option> <option value="NONE">NONE</option>
@ -462,8 +449,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_dcd" id="hamlib_dcd"
style="width: 0.5rem" style="width: 0.5rem"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_dcd" data-section="RADIO"
data-setting="serial_dcd"
v-model="settings.remote.RADIO.serial_dcd"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
<option value="NONE">NONE</option> <option value="NONE">NONE</option>
@ -482,8 +471,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
aria-label=".form-select-sm" aria-label=".form-select-sm"
id="hamlib_dtrstate" id="hamlib_dtrstate"
style="width: 0.5rem" style="width: 0.5rem"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_dtrstate" data-section="RADIO"
data-setting="serial_dtr"
v-model="settings.remote.RADIO.serial_dtr"
> >
<option selected value="ignore">-- ignore --</option> <option selected value="ignore">-- ignore --</option>
<option value="OFF">OFF</option> <option value="OFF">OFF</option>
@ -520,8 +511,10 @@ import { settingsStore as settings} from "../store/settingsStore.js";
id="hamlib_rigctld_custom_args" id="hamlib_rigctld_custom_args"
aria-label="Custom arguments" aria-label="Custom arguments"
aria-describedby="basic-addon1" aria-describedby="basic-addon1"
@change="setConfig" @change="handleFieldValueChange"
v-model="settings.hamlib_rigctld_custom_args" data-section="RIGCTLD"
data-setting="arguments"
v-model="settings.remote.RIGCTLD.arguments"
/> />
</div> </div>
</template> </template>

View file

@ -13,8 +13,8 @@ import { handleFieldValueChange } from "../js/settingsHandler";
id="rigcontrol_radiocontrol" id="rigcontrol_radiocontrol"
@change="handleFieldValueChange" @change="handleFieldValueChange"
data-section="RADIO" data-section="RADIO"
data-setting="radiocontrol" data-setting="control"
v-model="settings.remote.RADIO.radiocontrol" v-model="settings.remote.RADIO.control"
> >
<option selected value="disabled"> <option selected value="disabled">
Disabled / VOX (no rig control - use with VOX) Disabled / VOX (no rig control - use with VOX)

View file

@ -5,7 +5,7 @@ import { setActivePinia } from "pinia";
import pinia from "../store/index"; import pinia from "../store/index";
setActivePinia(pinia); setActivePinia(pinia);
import { settingsStore as settings} from "../store/settingsStore.js"; import { settingsStore as settings } from "../store/settingsStore.js";
export const useAudioStore = defineStore("audioStore", () => { export const useAudioStore = defineStore("audioStore", () => {
var inputDevices = ref([{ id: 0, name: "no input devices" }]); var inputDevices = ref([{ id: 0, name: "no input devices" }]);

View file

@ -33,15 +33,30 @@ export const settingsStore = reactive({
modemport: 0, modemport: 0,
}, },
RADIO: { RADIO: {
radiocontrol: "disabled", control: "disabled",
radioport: "None", model_id: 0,
rigctld_ip: "127.0.0.1", serial_port: "",
rigctld_port: 0, serial_speed: "",
data_bits: 0,
stop_bits: 0,
serial_handshake: "",
ptt_port: "",
ptt_type: "",
serial_dcd: "",
serial_dtr: "",
},
RIGCTLD: {
ip: "127.0.0.1",
port: 0,
path: "",
command: "",
arguments: "",
}, },
STATION: { STATION: {
enable_explorer: false, enable_explorer: false,
enable_stats: false, enable_stats: false,
mycall: "", mycall: "",
myssid: 0,
mygrid: "", mygrid: "",
ssid_list: [], ssid_list: [],
}, },
@ -67,3 +82,5 @@ export function getRemote() {
if (settingsStore.remote.STATION.mycall === "") { if (settingsStore.remote.STATION.mycall === "") {
getRemote(); getRemote();
} }
// TODO add watcher for local config changes

View file

@ -15,6 +15,7 @@ class CONFIG:
'STATION': { 'STATION': {
'mycall': str, 'mycall': str,
'mygrid': str, 'mygrid': str,
'myssid': int,
'ssid_list': list, 'ssid_list': list,
'enable_explorer': bool, 'enable_explorer': bool,
'enable_stats': bool, 'enable_stats': bool,
@ -27,10 +28,25 @@ class CONFIG:
'enable_auto_tune': bool, 'enable_auto_tune': bool,
}, },
'RADIO': { 'RADIO': {
'radiocontrol': str, 'control': str,
'rigctld_ip': str, 'serial_port': str,
'rigctld_port': int, 'model_id': int,
'radioport': str, 'serial_port': str,
'serial_speed': int,
'data_bits': int,
'stop_bits': int,
'serial_handshake': str,
'ptt_port': str,
'ptt_type': str,
'serial_dcd': str,
'serial_dtr': str,
},
'RIGCTLD': {
'ip': str,
'port': int,
'path': str,
'command': str,
'arguments': str,
}, },
'TCI': { 'TCI': {
'tci_ip': str, 'tci_ip': str,