gui related renaning TNC -> Modem

This commit is contained in:
DJ2LS 2023-10-20 13:47:42 +02:00
parent 0cb16805bd
commit b11e820ebc
19 changed files with 123 additions and 116 deletions

View file

@ -142,7 +142,7 @@ function newChat(obj) {
}
function syncWithTNC(){
function syncWithModem(){
getRxBuffer()
}
@ -207,8 +207,8 @@ getRxBuffer()
<div class="input-group mb-0 p-0 ">
<button type="button" class="btn btn-outline-secondary" @click="syncWithTNC()">
TNC Sync
<button type="button" class="btn btn-outline-secondary" @click="syncWithModem()">
Modem Sync
</button>
</div>
</div>

View file

@ -289,7 +289,7 @@ const speedChartData = computed(() => ({
<!-- Emoji Picker Modal -->
<div class="modal fade" id="emojiPickerModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-sm">
<div class="modal-dialog modal-dialog-centered modal-sm">
<div class="modal-content">
<div class="modal-body p-0">
<VuemojiPicker @emojiClick="handleEmojiClick" />

View file

@ -70,11 +70,11 @@ function openWebExternal(url) {
>
<a
class="list-group-item list-group-item-action active"
id="list-tnc-list"
id="list-modem-list"
data-bs-toggle="list"
href="#list-tnc"
href="#list-modem"
role="tab"
aria-controls="list-tnc"
aria-controls="list-modem"
title="Home"
><i class="bi bi-house-door-fill h3"></i
></a>
@ -150,9 +150,9 @@ function openWebExternal(url) {
<div class="tab-content" id="nav-tabContent-settings">
<div
class="tab-pane fade show active"
id="list-tnc"
id="list-modem"
role="tabpanel"
aria-labelledby="list-tnc-list"
aria-labelledby="list-modem-list"
>
<!-- TOP NAVBAR -->
<main_top_navbar />
@ -368,7 +368,7 @@ function openWebExternal(url) {
</h1>
<h4 class="fs-5">
tnc version - {{ state.tnc_version }}
modem version - {{ state.modem_version }}
</h4>

View file

@ -44,7 +44,7 @@ const state = useStateStore(pinia);
'bg-danger': state.busy_state === 'BUSY',
'bg-secondary': state.busy_state === 'IDLE',
}"
title="TNC state"
title="Modem state"
disabled
style="pointer-events: auto;"
>
@ -248,3 +248,4 @@ const state = useStateStore(pinia);
</div>
</nav>
</template>
ww

View file

@ -460,7 +460,7 @@ ChartJS.register(
for="local-remote-switch1"
>
<i class="bi bi-pc-display-horizontal"></i>
<span class="ms-2 me-2">Local tnc</span>
<span class="ms-2 me-2">Local modem</span>
</label>
<input
type="radio"
@ -474,7 +474,7 @@ ChartJS.register(
for="local-remote-switch2"
>
<i class="bi bi-ethernet"></i>
<span class="ms-2 me-2">Remote tnc</span>
<span class="ms-2 me-2">Remote modem</span>
</label>
</div>
</h5>
@ -489,7 +489,7 @@ ChartJS.register(
<div class="card-body">
<h5 class="card-title">
<div class="input-group input-group-sm me-2">
<span class="input-group-text">tnc ip</span>
<span class="input-group-text">modem ip</span>
<input
type="text"
class="form-control"
@ -521,7 +521,7 @@ ChartJS.register(
</div>
</h5>
<p class="card-text">
Remote IP of TNC. Port is port of daemon. The tnc port will
Remote IP of TNC. Port is port of daemon. The modem port will
automatically adjusted. ( daemon port - 1 )
</p>
</div>
@ -564,7 +564,7 @@ ChartJS.register(
disabled
>
<i class="bi bi-play-fill"></i>
<span class="ms-2">Start tnc</span>
<span class="ms-2">Start modem</span>
</button>
<button
type="button"
@ -576,7 +576,7 @@ ChartJS.register(
disabled
>
<i class="bi bi-stop-fill"></i>
<span class="ms-2">Stop tnc</span>
<span class="ms-2">Stop modem</span>
</button>
</div>
</h5>

View file

@ -138,7 +138,7 @@ alert("not yet implemented")
aria-labelledby="list-rig-control-none-list"
>
<p class="small">
TNC will not utilize rig control and features will be limited. While
Modem will not utilize rig control and features will be limited. While
functional; it is recommended to configure hamlib.
</p>
</div>
@ -271,7 +271,7 @@ alert("not yet implemented")
</div>
</div>
<!--<div class="card-footer text-muted small" id="hamlib_info_field">
Define TNC rig control mode (none/hamlib)
Define Modem rig control mode (none/hamlib)
</div>
-->
</div>

View file

@ -10,21 +10,21 @@ const state = useStateStore(pinia);
import { useSettingsStore } from "../store/settingsStore.js";
const settings = useSettingsStore(pinia);
import { startTNC, stopTNC } from "../js/daemon.js";
import { startModem, stopModem } from "../js/daemon.js";
function startStopTNC() {
switch (state.tnc_running_state) {
function startStopModem() {
switch (state.modem_running_state) {
case "stopped":
settings.rx_audio = (<HTMLInputElement>document.getElementById("audio_input_selectbox")).value;
settings.tx_audio = (<HTMLInputElement>document.getElementById("audio_output_selectbox")).value;
startTNC();
startModem();
break;
case "running":
stopTNC();
stopModem();
break;
default:
@ -36,50 +36,50 @@ function startStopTNC() {
<nav class="navbar bg-body-tertiary border-bottom">
<div class="mx-auto">
<span class="badge bg-secondary me-4"
>TNC location | {{ settings.tnc_host }}</span
>Modem location | {{ settings.modem_host }}</span
>
<span class="badge bg-secondary me-4"
>Service | {{ state.tnc_running_state }}</span
>Service | {{ state.modem_running_state }}</span
>
<div class="btn-group" role="group"></div>
<div class="btn-group me-4" role="group">
<button
type="button"
id="startTNC"
id="startModem"
class="btn btn-sm btn-outline-success"
data-bs-toggle="tooltip"
data-bs-trigger="hover"
data-bs-html="false"
title="Start the TNC. Please set your audio and radio settings first!"
@click="startStopTNC()"
v-bind:class="{ disabled: state.tnc_running_state === 'running' }"
title="Start the Modem. Please set your audio and radio settings first!"
@click="startStopModem()"
v-bind:class="{ disabled: state.modem_running_state === 'running' }"
>
<i class="bi bi-play-fill"></i>
<span class="ms-2">start tnc</span>
<span class="ms-2">start modem</span>
</button>
<button
type="button"
id="stopTNC"
id="stopModem"
class="btn btn-sm btn-outline-danger"
data-bs-toggle="tooltip"
data-bs-trigger="hover"
data-bs-html="false"
title="Stop the TNC."
@click="startStopTNC()"
v-bind:class="{ disabled: state.tnc_running_state === 'stopped' }"
title="Stop the Modem."
@click="startStopModem()"
v-bind:class="{ disabled: state.modem_running_state === 'stopped' }"
>
<i class="bi bi-stop-fill"></i>
<span class="ms-2">stop tnc</span>
<span class="ms-2">stop modem</span>
</button>
</div>
<button
type="button"
id="openHelpModalStartStopTNC"
id="openHelpModalStartStopModem"
data-bs-toggle="modal"
data-bs-target="#startStopTNCHelpModal"
data-bs-target="#startStopModemHelpModal"
class="btn me-4 p-0 border-0"
>
<i class="bi bi-question-circle" style="font-size: 1rem"></i>

View file

@ -2,7 +2,7 @@
import settings_gui from "./settings_gui.vue";
import settings_chat from "./settings_chat.vue";
import settings_hamlib from "./settings_hamlib.vue";
import settings_tnc from "./settings_tnc.vue";
import settings_modem from "./settings_modem.vue";
import settings_web from "./settings_web.vue";
import settings_exp from "./settings_exp.vue";
</script>
@ -15,7 +15,7 @@ import settings_exp from "./settings_exp.vue";
>
<div class="container">
<div class="badge text-bg-warning ms-3">
<i class="bi bi-exclamation-triangle"></i> Please restart the TNC after
<i class="bi bi-exclamation-triangle"></i> Please restart the modem after
changing settings!
</div>
<!-- SETTINGS Nav tabs -->
@ -65,15 +65,15 @@ import settings_exp from "./settings_exp.vue";
<li class="nav-item" role="presentation">
<button
class="nav-link"
id="tnc-tab"
id="modem-tab"
data-bs-toggle="tab"
data-bs-target="#tnc"
data-bs-target="#modem"
type="button"
role="tab"
aria-controls="profile"
aria-selected="false"
>
TNC
Modem
</button>
</li>
<li class="nav-item" role="presentation">
@ -140,12 +140,12 @@ import settings_exp from "./settings_exp.vue";
</div>
<div
class="tab-pane"
id="tnc"
id="modem"
role="tabpanel"
aria-labelledby="tnc-tab"
aria-labelledby="modem-tab"
tabindex="0"
>
<settings_tnc />
<settings_modem />
</div>
<div
class="tab-pane"

View file

@ -131,7 +131,7 @@ function saveSettings() {
</label>
</div>
<div class="input-group input-group-sm mb-1">
<label class="input-group-text w-50">Auto-start TNC/rigctld</label>
<label class="input-group-text w-50">Auto-start Modem/rigctld</label>
<label class="input-group-text w-50">
<div class="form-check form-switch form-check-inline">
<input

View file

@ -15,7 +15,7 @@ function saveSettings() {
<template>
<div class="input-group input-group-sm mb-1">
<span class="input-group-text" style="width: 180px">TNC port</span>
<span class="input-group-text" style="width: 180px">modem port</span>
<input
type="text"
class="form-control"
@ -30,7 +30,7 @@ function saveSettings() {
</div>
<div class="input-group input-group-sm mb-1">
<span class="input-group-text" style="width: 180px">TNC host</span>
<span class="input-group-text" style="width: 180px">modem host</span>
<input
type="text"
class="form-control"

View file

@ -686,7 +686,7 @@ function deleteFromDatabaseByCallsign(callsign) {
export function newBeaconReceived(obj) {
/*
{
"freedata": "tnc-message",
"freedata": "modem-message",
"beacon": "received",
"uuid": "12741312-3dbb-4a53-b0cc-100f6c930ab8",
"timestamp": 1696076869,
@ -740,7 +740,7 @@ export function newMessageReceived(message, protocol) {
PROTOCOL
{
"freedata": "tnc-message",
"freedata": "modem-message",
"arq": "transmission",
"status": "received",
"uuid": "5a3caa57-7feb-4436-853d-e341b085350f",

View file

@ -51,7 +51,7 @@ 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 tnc directory.');
console.log('Run "python daemon.py" in the modem directory.');
daemonShowConnectStateError = 0;
}
@ -65,8 +65,8 @@ daemon.on("error", function (err) {
/*
client.on('close', function(data) {
console.log(' TNC connection closed');
setTimeout(connectTNC, 2000)
console.log(' Modem connection closed');
setTimeout(connectModem, 2000)
let Data = {
daemon_connection: daemon.readyState,
};
@ -156,8 +156,8 @@ daemon.on("data", function (socketdata) {
audioStore.outputDevices = data["output_devices"];
settings.serial_devices = data["serial_devices"];
state.python_version = data["python_version"]
state.tnc_version = data["version"]
state.tnc_running_state = data["daemon_state"][0]["status"];
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"];
@ -193,12 +193,12 @@ function getDaemonState() {
writeDaemonCommand(command);
}
// START TNC
// START Modem
// ` `== multi line string
export function startTNC() {
export function startModem() {
var json_command = JSON.stringify({
type: "set",
command: "start_tnc",
command: "start_modem",
parameter: [
{
mycall: settings.mycall,
@ -240,10 +240,10 @@ export function startTNC() {
writeDaemonCommand(json_command);
}
// STOP TNC
//exports.stopTNC = function () {
export function stopTNC() {
var command = '{"type" : "set", "command": "stop_tnc" , "parameter": "---" }';
// STOP Modem
//exports.stopModem = function () {
export function stopModem() {
var command = '{"type" : "set", "command": "stop_modem" , "parameter": "---" }';
writeDaemonCommand(command);
}

View file

@ -61,8 +61,8 @@ if (!fs.existsSync(configFolder)) {
// create config file if not exists with defaults
const configDefaultSettings =
'{\
"tnc_host": "127.0.0.1",\
"tnc_port": 3000,\
"modem_host": "127.0.0.1",\
"modem_port": 3000,\
"daemon_host": "127.0.0.1",\
"daemon_port": 3001,\
"mycall": "AA0AA",\

View file

@ -39,24 +39,24 @@ var rxBufferLengthGui = 0;
//var rxMsgBufferLengthTnc = 0;
//var rxMsgBufferLengthGui = 0;
// global to keep track of TNC connection error emissions
var tncShowConnectStateError = 1;
// global to keep track of Modem connection error emissions
var modemShowConnectStateError = 1;
// network connection Timeout
setTimeout(connectTNC, 2000);
setTimeout(connectModem, 2000);
function connectTNC() {
//exports.connectTNC = function(){
//console.log('connecting to TNC...')
function connectModem() {
//exports.connectModem = function(){
//console.log('connecting to Modem...')
//clear message buffer after reconnecting or initial connection
socketchunk = "";
client.connect(settings.tnc_port, settings.tnc_host);
client.connect(settings.modem_port, settings.modem_host);
}
client.on("connect", function (data) {
console.log("TNC connection established");
console.log("Modem connection established");
stateStore.busy_state = "-";
stateStore.arq_state = "-";
@ -66,15 +66,15 @@ client.on("connect", function (data) {
stateStore.dbfs_level = 0;
stateStore.updateTncState(client.readyState);
tncShowConnectStateError = 1;
modemShowConnectStateError = 1;
});
client.on("error", function (data) {
if (tncShowConnectStateError == 1) {
console.log("TNC connection error");
tncShowConnectStateError = 0;
if (modemShowConnectStateError == 1) {
console.log("Modem connection error");
modemShowConnectStateError = 0;
}
setTimeout(connectTNC, 500);
setTimeout(connectModem, 500);
client.destroy();
stateStore.busy_state = "-";
stateStore.arq_state = "-";
@ -87,13 +87,13 @@ client.on("error", function (data) {
/*
client.on('close', function(data) {
console.log(' TNC connection closed');
setTimeout(connectTNC, 2000)
console.log(' Modem connection closed');
setTimeout(connectModem, 2000)
});
*/
client.on("end", function (data) {
console.log("TNC connection ended");
console.log("Modem connection ended");
stateStore.busy_state = "-";
stateStore.arq_state = "-";
stateStore.frequency = "-";
@ -103,7 +103,7 @@ client.on("end", function (data) {
stateStore.updateTncState(client.readyState);
client.destroy();
setTimeout(connectTNC, 500);
setTimeout(connectModem, 500);
});
function writeTncCommand(command) {
@ -116,11 +116,11 @@ function writeTncCommand(command) {
}
if (client.readyState == "closed") {
console.log("TNC SOCKET CONNECTION CLOSED!");
console.log("Modem SOCKET CONNECTION CLOSED!");
}
if (client.readyState == "opening") {
console.log("connecting to TNC...");
console.log("connecting to Modem...");
}
}
@ -168,14 +168,14 @@ client.on("data", function (socketdata) {
}
}
//console.log(data)
if (data["command"] == "tnc_state") {
if (data["command"] == "modem_state") {
//console.log(data)
// set length of RX Buffer to global variable
rxBufferLengthTnc = data["rx_buffer_length"];
//rxMsgBufferLengthTnc = data["rx_msg_buffer_length"];
stateStore.frequency = data["frequency"];
stateStore.busy_state = data["tnc_state"];
stateStore.busy_state = data["modem_state"];
stateStore.arq_state = data["arq_state"];
stateStore.mode = data["mode"];
stateStore.bandwidth = data["bandwidth"];
@ -266,12 +266,12 @@ client.on("data", function (socketdata) {
continue;
}
// ----------- catch tnc messages START -----------
// ----------- catch modem messages START -----------
//init message variable
var message = "";
if (data["freedata"] == "tnc-message") {
if (data["freedata"] == "modem-message") {
// break early if we received a dummy callsign
// thats a kind of hotfix, as long as the tnc isnt handling this better
// thats a kind of hotfix, as long as the modem isnt handling this better
if (data["dxcallsign"] == "AA0AA-0" || data["dxcallsign"] == "ZZ9YY-0") {
break;
}
@ -369,7 +369,7 @@ client.on("data", function (socketdata) {
break;
}
// ARQ SESSION && freedata == tnc-message
// ARQ SESSION && freedata == modem-message
if (data["arq"] == "session") {
switch (data["status"]) {
case "connecting":
@ -393,7 +393,7 @@ client.on("data", function (socketdata) {
break;
}
}
// ARQ TRANSMISSION && freedata == tnc-message
// ARQ TRANSMISSION && freedata == modem-message
if (data["arq"] == "transmission") {
switch (data["status"]) {
case "opened":
@ -499,10 +499,10 @@ function hexToBytes(hex) {
return bytes;
}
//Get TNC State
//Get Modem State
//exports.getTncState = function () {
function getTncState() {
var command = '{"type" : "get", "command" : "tnc_state"}';
var command = '{"type" : "get", "command" : "modem_state"}';
writeTncCommand(command);
}
@ -636,7 +636,7 @@ let data_with_attachment =
data_with_attachment,
);
// TODO: REMOVE mode and frames from TNC!
// TODO: REMOVE mode and frames from Modem!
var mode = 255;
var frames = 5;

View file

@ -16,6 +16,8 @@ import 'bootstrap-icons/font/bootstrap-icons.css'
// Import our custom CSS
//import './scss/styles.scss'
import App from './App.vue'
const app = createApp(App)
//.mount('#app').$nextTick(() => postMessage({ payload: 'removeLoading' }, '*'))

View file

@ -1,3 +1,2 @@
// Import all of Bootstrap's CSS
@import "bootstrap/scss/bootstrap";
@import "bootstrap/scss/bootstrap";

View file

@ -7,10 +7,10 @@ export const useSettingsStore = defineStore("settingsStore", () => {
var rx_audio = ref()
// network
var tnc_host = ref("127.0.0.1");
var tnc_port = ref(3000);
var daemon_host = ref(tnc_host.value);
var daemon_port = ref(tnc_port.value + 1);
var modem_host = ref("127.0.0.1");
var modem_port = ref(3000);
var daemon_host = ref(modem_host.value);
var daemon_port = ref(modem_port.value + 1);
// app
var screen_height = ref(430);
@ -56,7 +56,7 @@ export const useSettingsStore = defineStore("settingsStore", () => {
var tci_ip = ref("127.0.0.1");
var tci_port = ref(50001);
//tnc
//modem
var spectrum = ref("waterfall");
var enable_scatter = ref("False");
var enable_fft = ref("False");
@ -88,10 +88,10 @@ export const useSettingsStore = defineStore("settingsStore", () => {
function getJSON() {
var config_export = {
tnc_host: tnc_host.value,
tnc_port: tnc_port.value,
daemon_host: tnc_host.value,
daemon_port: (parseInt(tnc_port.value) + 1).toString(),
modem_host: modem_host.value,
modem_port: modem_port.value,
daemon_host: modem_host.value,
daemon_port: (parseInt(modem_port.value) + 1).toString(),
mycall: mycall.value,
myssid: myssid.value,
mygrid: mygrid.value,
@ -152,8 +152,8 @@ export const useSettingsStore = defineStore("settingsStore", () => {
}
return {
tnc_host,
tnc_port,
modem_host,
modem_port,
daemon_host,
daemon_port,
screen_height,

View file

@ -23,9 +23,9 @@ export const useStateStore = defineStore("stateStore", () => {
var s_meter_strength_percent = ref(0);
var s_meter_strength_raw = ref(0);
var tnc_connection = ref("disconnected");
var tncStartCount = ref(0);
var tnc_running_state = ref("--------");
var modem_connection = ref("disconnected");
var modemStartCount = ref(0);
var modem_running_state = ref("--------");
var arq_total_bytes = ref(0);
var arq_transmission_percent = ref(0);
@ -57,7 +57,7 @@ export const useStateStore = defineStore("stateStore", () => {
var rigctld_process = ref();
var python_version = ref();
var tnc_version = ref();
var modem_version = ref();
function getChannelBusySlotState(slot){
@ -79,9 +79,9 @@ function getChannelBusySlotState(slot){
function updateTncState(state) {
tnc_connection.value = state;
modem_connection.value = state;
if (tnc_connection.value == "open") {
if (modem_connection.value == "open") {
// collapse settings screen
var collapseFirstRow = new bootstrap.Collapse(
document.getElementById("collapseFirstRow"),
@ -108,7 +108,7 @@ function getChannelBusySlotState(slot){
//set_CPU_mode();
//GUI will auto connect to TNC if already running, if that is the case increment start count if 0
if (tncStartCount.value == 0) tncStartCount.value++;
if (modemStartCount.value == 0) modemStartCount.value++;
} else {
// collapse settings screen
var collapseFirstRow = new bootstrap.Collapse(
@ -166,7 +166,7 @@ function getChannelBusySlotState(slot){
arq_seconds_until_finish,
arq_seconds_until_timeout,
arq_seconds_until_timeout_percent,
tnc_running_state,
modem_running_state,
arq_session_state,
is_codec2_traffic,
rf_level,
@ -175,6 +175,6 @@ function getChannelBusySlotState(slot){
rigctld_started,
rigctld_process,
python_version,
tnc_version
modem_version
};
});

View file

@ -110,3 +110,8 @@ https://stackoverflow.com/a/9622873
.modal-backdrop {
background-color: transparent;
}
.modal-backdrop.in {
filter: alpha(opacity=10);
opacity: .1
}