diff --git a/.github/workflows/build_server.yml b/.github/workflows/build_server.yml index 596129b6..9b122edd 100644 --- a/.github/workflows/build_server.yml +++ b/.github/workflows/build_server.yml @@ -48,7 +48,6 @@ jobs: brew install portaudio python -m pip install --upgrade pip pip3 install pyaudio - export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/3.11/lib/:$PYTHONPATH - name: Install Python dependencies run: | diff --git a/gui/package.json b/gui/package.json index 8cf5638d..1ac0e655 100644 --- a/gui/package.json +++ b/gui/package.json @@ -2,7 +2,7 @@ "name": "FreeDATA", "description": "FreeDATA Client application for connecting to FreeDATA server", "private": true, - "version": "0.14.5-alpha", + "version": "0.15.2-alpha", "main": "dist-electron/main/index.js", "scripts": { "start": "vite", diff --git a/gui/src/assets/waterfall/spectrum.js b/gui/src/assets/waterfall/spectrum.js index fb93bd61..11aadd24 100644 --- a/gui/src/assets/waterfall/spectrum.js +++ b/gui/src/assets/waterfall/spectrum.js @@ -105,6 +105,8 @@ Spectrum.prototype.drawSpectrum = function () { var linePositionHigh = 178.4; //150 + bandwidth/20 var linePositionLow2 = 65; //150 - bandwith/20 var linePositionHigh2 = 235; //150 + bandwith/20 + var linePositionLow3 = 28.1; //150 - bandwith/20 + var linePositionHigh3 = 271.9; //150 + bandwith/20 this.ctx_wf.beginPath(); this.ctx_wf.moveTo(linePositionLow, 0); this.ctx_wf.lineTo(linePositionLow, height); @@ -114,6 +116,10 @@ Spectrum.prototype.drawSpectrum = function () { this.ctx_wf.lineTo(linePositionLow2, height); this.ctx_wf.moveTo(linePositionHigh2, 0); this.ctx_wf.lineTo(linePositionHigh2, height); + this.ctx_wf.moveTo(linePositionLow3, 0); + this.ctx_wf.lineTo(linePositionLow3, height); + this.ctx_wf.moveTo(linePositionHigh3, 0); + this.ctx_wf.lineTo(linePositionHigh3, height); this.ctx_wf.lineWidth = 1; this.ctx_wf.strokeStyle = "#C3C3C3"; this.ctx_wf.stroke(); @@ -454,7 +460,7 @@ export function Spectrum(id, options) { this.centerHz = options && options.centerHz ? options.centerHz : 1500; this.spanHz = options && options.spanHz ? options.spanHz : 0; this.wf_size = options && options.wf_size ? options.wf_size : 0; - this.wf_rows = options && options.wf_rows ? options.wf_rows : 1024; + this.wf_rows = options && options.wf_rows ? options.wf_rows : 512; this.spectrumPercent = options && options.spectrumPercent ? options.spectrumPercent : 0; this.spectrumPercentStep = diff --git a/gui/src/components/dynamic_components.vue b/gui/src/components/dynamic_components.vue index 6229187f..e55a4a5c 100644 --- a/gui/src/components/dynamic_components.vue +++ b/gui/src/components/dynamic_components.vue @@ -32,8 +32,7 @@ import grid_freq from "./grid/grid_frequency.vue"; import grid_beacon from "./grid/grid_beacon.vue"; import grid_mycall_small from "./grid/grid_mycall small.vue"; import grid_scatter from "./grid/grid_scatter.vue"; -import { stateDispatcher } from "../js/eventHandler"; -import { Scatter } from "vue-chartjs"; +import grid_stats_chart from "./grid/grid_stats_chart.vue"; let count = ref(0); let grid = null; // DO NOT use ref(null) as proxies GS will break all logic when comparing structures... see https://github.com/gridstack/gridstack.js/issues/2115 @@ -63,7 +62,8 @@ class gridWidget { this.id = id; } } -//Array of grid widgets, do not change array order as it'll affect saved configs +//Array of grid widgets +//Order can be changed so sorted correctly, but do not change ID as it'll affect saved configs const gridWidgets = [ new gridWidget( grid_activities, @@ -247,8 +247,16 @@ new gridWidget( "Stats", 19, ), - - //New new widget ID should be 20 + new gridWidget( + grid_stats_chart, + { x: 0, y: 114, w: 6, h: 30 }, + "Speed/SNR graph", + false, + true, + "Stats", + 20, + ), + //Next new widget ID should be 21 ]; diff --git a/gui/src/components/grid/grid_active_broadcasts_vert.vue b/gui/src/components/grid/grid_active_broadcasts_vert.vue index f1290fdc..e04333c8 100644 --- a/gui/src/components/grid/grid_active_broadcasts_vert.vue +++ b/gui/src/components/grid/grid_active_broadcasts_vert.vue @@ -15,11 +15,22 @@ function transmitPing() { function startStopBeacon() { if (state.beacon_state === true) { - setModemBeacon(false); + setModemBeacon(false, state.away_from_key); } else { - setModemBeacon(true); + setModemBeacon(true, state.away_from_key); } } + +function setAwayFromKey(){ + if (state.away_from_key === true) { + setModemBeacon(state.beacon_state, false); + } else { + setModemBeacon(state.beacon_state, true); + } + +} + + var dxcallPing = ref(""); window.addEventListener( "stationSelected", @@ -39,7 +50,7 @@ window.addEventListener(
-
+
- Ping + PING Station
-
-
- - -
-
@@ -99,6 +95,41 @@ window.addEventListener(
+ +
+
+
+ + +
+
+ +
+
+ + +
+
+
+
diff --git a/gui/src/components/grid/grid_active_heard_stations.vue b/gui/src/components/grid/grid_active_heard_stations.vue index a1262e0f..0c16721c 100644 --- a/gui/src/components/grid/grid_active_heard_stations.vue +++ b/gui/src/components/grid/grid_active_heard_stations.vue @@ -34,9 +34,10 @@ function getMaidenheadDistance(dxGrid) { // } } -function pushToPing(origin) -{ - window.dispatchEvent(new CustomEvent("stationSelected", {bubbles:true, detail: origin })); +function pushToPing(origin) { + window.dispatchEvent( + new CustomEvent("stationSelected", { bubbles: true, detail: origin }), + ); }