Updated ecma version to 2021

Safety commit
merge-requests/237/merge
Tag 2023-01-22 15:55:51 -08:00
rodzic a36f22bd92
commit 470c76f610
11 zmienionych plików z 363 dodań i 128 usunięć

Wyświetl plik

@ -13,7 +13,7 @@ module.exports = {
SharedArrayBuffer: "readonly" SharedArrayBuffer: "readonly"
}, },
parserOptions: { parserOptions: {
ecmaVersion: 2018 ecmaVersion: 2021
}, },
rules: { rules: {
/* See https://eslint.org/docs/rules/ */ /* See https://eslint.org/docs/rules/ */

Wyświetl plik

@ -42,6 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<script src="./lib/screens.js" type="text/javascript"></script> <script src="./lib/screens.js" type="text/javascript"></script>
<script src="./lib/alerts.js" type="text/javascript"></script> <script src="./lib/alerts.js" type="text/javascript"></script>
<script src="./lib/third-party.js" type="text/javascript"></script> <script src="./lib/third-party.js" type="text/javascript"></script>
<script src="./lib/grid-math.js" type="text/javascript"></script>
<script src="./lib/adif.js" type="text/javascript"></script> <script src="./lib/adif.js" type="text/javascript"></script>
<script src="./lib/ol.js" type="text/javascript"></script> <script src="./lib/ol.js" type="text/javascript"></script>
<script src="./lib/arc.js" type="text/javascript"></script> <script src="./lib/arc.js" type="text/javascript"></script>
@ -304,7 +305,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</div> </div>
</div> </div>
<div id="pskReporterBandActivityDiv" class="roundBorder" style=" <div id="bandActivityDiv" class="roundBorder" style="
position: relative; position: relative;
background-color: #000; background-color: #000;
border: 1px solid purple; border: 1px solid purple;
@ -312,7 +313,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
height: 49px; height: 49px;
margin-bottom: 1px; margin-bottom: 1px;
padding: 0px; padding: 0px;
" title="PSK-Reporter Band Activity" oncontextmenu="toggleBaWindow(event)"> " title="Band Activity" oncontextmenu="toggleBaWindow(event)">
<div data-i18n="sidebarNoDataYet" id="graphDiv" style="bottom: 0; position: absolute; width: 100%; padding: 0px; margin-bottom: 2px"> <div data-i18n="sidebarNoDataYet" id="graphDiv" style="bottom: 0; position: absolute; width: 100%; padding: 0px; margin-bottom: 2px">
...no data yet... ...no data yet...
</div> </div>
@ -2885,7 +2886,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</tr> </tr>
</table> </table>
</div> </div>
<div class="mapItem" id="GTspotDiv"> <div class="mapItem">
<table align="center"> <table align="center">
<tr> <tr>
<td data-i18n="settings.OAMS.spotting.enable.label" <td data-i18n="settings.OAMS.spotting.enable.label"
@ -2900,6 +2901,35 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</table> </table>
</div> </div>
<br /> <br />
<div class="mapItem">
<table align="center">
<tr>
<td data-i18n="settings.OAMS.BandActivity.enable.label"
title="Receive Band Activity Reports through the OAMS network">Band Activity</td>
</tr>
<tr>
<td>
<input title="Enable / Disable Band Activity" type="checkbox" id="oamsBandActivity"
onclick="setOamsBandActivity(this);" />
</td>
</tr>
</table>
<div class="mapItem" id="bandActivityNeighborDiv">
<table align="center">
<tr>
<td data-i18n="settings.OAMS.BandActivity.neighbor.enable.label"
title="Include your 8 neighboring grids in report">Neighboring Grids</td>
</tr>
<tr>
<td>
<input title="Enable / Disable Neighbor Grids" type="checkbox" id="oamsBandActivityNeighbors"
onclick="setOamsBandActivityNeighbors(this);" />
</td>
</tr>
</table>
</div>
</div>
<br />
<div id="msgSettingsDiv" class="mapItem" style="padding: 5px"> <div id="msgSettingsDiv" class="mapItem" style="padding: 5px">
<div class="mapItem"> <div class="mapItem">
<table align="center"> <table align="center">

Wyświetl plik

@ -40,6 +40,7 @@
<body <body
id="mainBody" id="mainBody"
onload="window.opener.g_baWindowInitialized = true"
style=" style="
-webkit-app-region: drag; -webkit-app-region: drag;
margin: 0px; margin: 0px;
@ -57,7 +58,7 @@
" "
> >
<div <div
id="pskReporterBandActivityDiv" id="bandActivityDiv"
style=" style="
position: relative; position: relative;
background-color: #000; background-color: #000;
@ -67,7 +68,7 @@
margin-bottom: 1px; margin-bottom: 1px;
padding: 0px; padding: 0px;
" "
title="PSK-Reporter Band Activity" title="Band Activity"
> >
<div data-i18n="bandactivity.noData" id="graphDiv" style="bottom: 0; position: absolute; width: 100%; padding: 0px; margin-bottom: 2px"> <div data-i18n="bandactivity.noData" id="graphDiv" style="bottom: 0; position: absolute; width: 100%; padding: 0px; margin-bottom: 2px">
<br />...no data yet...<br /> <br />...no data yet...<br />

Wyświetl plik

@ -426,6 +426,10 @@
"settings.OAMS.message.enable.hover": "啟用消息傳遞", "settings.OAMS.message.enable.hover": "啟用消息傳遞",
"settings.OAMS.spotting.enable.label": "啟用定位", "settings.OAMS.spotting.enable.label": "啟用定位",
"settings.OAMS.spotting.enable.hover": "通過OAMS網絡發送和接收現場報告", "settings.OAMS.spotting.enable.hover": "通過OAMS網絡發送和接收現場報告",
"settings.OAMS.BandActivity.enable.label": "Band Activity",
"settings.OAMS.BandActivity.enable.hover": "Receive Band Activity Reports through the OAMS network",
"settings.OAMS.BandActivity.neighbor.enable.label": "Neighboring Grids",
"settings.OAMS.BandActivity.neighbor.enable.hover": "Include your 8 neighboring grids in report",
"settings.OAMS.message.newAlert.label": "新消息警報", "settings.OAMS.message.newAlert.label": "新消息警報",
"settings.OAMS.message.newAlert.hover": "收到新消息時發出警報。", "settings.OAMS.message.newAlert.hover": "收到新消息時發出警報。",
"settings.OAMS.message.newAlert.none": "None", "settings.OAMS.message.newAlert.none": "None",

Wyświetl plik

@ -425,6 +425,10 @@
"settings.OAMS.message.enable.hover": "启用消息传递", "settings.OAMS.message.enable.hover": "启用消息传递",
"settings.OAMS.spotting.enable.label": "启用定位", "settings.OAMS.spotting.enable.label": "启用定位",
"settings.OAMS.spotting.enable.hover": "通过OAMS网络发送和接收现场报告", "settings.OAMS.spotting.enable.hover": "通过OAMS网络发送和接收现场报告",
"settings.OAMS.BandActivity.enable.label": "Band Activity",
"settings.OAMS.BandActivity.enable.hover": "Receive Band Activity Reports through the OAMS network",
"settings.OAMS.BandActivity.neighbor.enable.label": "Neighboring Grids",
"settings.OAMS.BandActivity.neighbor.enable.hover": "Include your 8 neighboring grids in report",
"settings.OAMS.message.newAlert.label": "新消息警报", "settings.OAMS.message.newAlert.label": "新消息警报",
"settings.OAMS.message.newAlert.hover": "收到新消息时发出警报。", "settings.OAMS.message.newAlert.hover": "收到新消息时发出警报。",
"settings.OAMS.message.newAlert.none": "None", "settings.OAMS.message.newAlert.none": "None",

Wyświetl plik

@ -43,7 +43,7 @@
"info.DXDistance.hover": "Distance", "info.DXDistance.hover": "Distance",
"info.DXAzimuth.hover": "Heading", "info.DXAzimuth.hover": "Heading",
"operatingMode.hover": "Click to ignore incoming messages", "operatingMode.hover": "Click to ignore incoming messages",
"bandActivity.hover": "PSK-Reporter band Activity", "bandActivity.hover": "Band Activity",
"quickStats.hover": "Quick Stats", "quickStats.hover": "Quick Stats",
"quickStats.CallRX.hover": "Callsigns Heard", "quickStats.CallRX.hover": "Callsigns Heard",
"quickStats.CallRX.label": "Rx Calls", "quickStats.CallRX.label": "Rx Calls",
@ -420,10 +420,14 @@
"settings.alerts.CustomAlerts.new.repeat.once": "Only Once", "settings.alerts.CustomAlerts.new.repeat.once": "Only Once",
"settings.alerts.CustomAlerts.new.repeat.never": "Never Repeat", "settings.alerts.CustomAlerts.new.repeat.never": "Never Repeat",
"settings.alerts.CustomAlerts.new.addButton": "ADD", "settings.alerts.CustomAlerts.new.addButton": "ADD",
"settings.OAMS.message.enable.label": "Messaging Enable", "settings.OAMS.message.enable.label": "Messaging",
"settings.OAMS.message.enable.hover": "Messaging Enable", "settings.OAMS.message.enable.hover": "Messaging",
"settings.OAMS.spotting.enable.label": "Spotting Enable", "settings.OAMS.spotting.enable.label": "Spotting",
"settings.OAMS.spotting.enable.hover": "Send and Receivev Spot Reports through the OAMS network", "settings.OAMS.spotting.enable.hover": "Send and Receivev Spot Reports through the OAMS network",
"settings.OAMS.BandActivity.enable.label": "Band Activity",
"settings.OAMS.BandActivity.enable.hover": "Receive Band Activity Reports through the OAMS network",
"settings.OAMS.BandActivity.neighbor.enable.label": "Neighboring Grids",
"settings.OAMS.BandActivity.neighbor.enable.hover": "Include your 8 neighboring grids in report",
"settings.OAMS.message.newAlert.label": "New Message Alert", "settings.OAMS.message.newAlert.label": "New Message Alert",
"settings.OAMS.message.newAlert.hover": "Alert when new messages received.", "settings.OAMS.message.newAlert.hover": "Alert when new messages received.",
"settings.OAMS.message.newAlert.none": "None", "settings.OAMS.message.newAlert.none": "None",

Wyświetl plik

@ -74,6 +74,8 @@ var def_appSettings = {
myRawCall: "NOCALL", myRawCall: "NOCALL",
myRawFreq: "", myRawFreq: "",
myRawGrid: "", myRawGrid: "",
oamsBandActivity: true,
oamsBandActivityNeighbors: false,
pathWidthWeight: 1.0, pathWidthWeight: 1.0,
potaEnabled: 1, potaEnabled: 1,
potaShowMenu: true, potaShowMenu: true,

Wyświetl plik

@ -0,0 +1,88 @@
// Copyright © 2023 N7YHF
// Permission granted to GridTracker.org for use.
function fieldNumberToLetter(number)
{
return String.fromCharCode(number + 65);
}
// Input already uppercased
function squareToNeighbors(square)
{
const neighborMatrix = [
[-1, +1], // NW
[0, +1], // N
[+1, +1], // NE
[-1, 0], // W
[0, 0], // Self
[+1, 0], // E
[-1, -1], // SW
[0, -1], // S
[+1, -1] // SE
];
// RL90
// ^^---- RL is the "field"
// ^^---- 90 is the "square"
const fieldX = square.charCodeAt(0) - 65;
const fieldY = square.charCodeAt(1) - 65;
const squareX = square.charCodeAt(2) - 48;
const squareY = square.charCodeAt(3) - 48;
const neighbors = [];
for (const [dx, dy] of neighborMatrix)
{
let neighborFieldX = fieldX;
let neighborFieldY = fieldY;
let neighborSquareX = squareX + dx;
let neighborSquareY = squareY + dy;
if (neighborSquareX < 0)
{
neighborSquareX += 10;
neighborFieldX -= 1;
}
else if (neighborSquareX > 9)
{
neighborSquareX -= 10;
neighborFieldX += 1;
}
if (neighborSquareY < 0)
{
neighborSquareY += 10;
neighborFieldY -= 1;
}
else if (neighborSquareY > 9)
{
neighborSquareY -= 10;
neighborFieldY += 1;
}
if (neighborFieldX < 0)
{
neighborFieldX += 18;
}
else if (neighborFieldX > 17)
{
neighborFieldX -= 18;
}
if (neighborFieldY < 0 || neighborFieldY > 17)
{
continue;
}
const neighbor = `${fieldNumberToLetter(neighborFieldX)}${fieldNumberToLetter(neighborFieldY)}${neighborSquareX}${neighborSquareY}`;
neighbors.push(neighbor);
}
return neighbors;
}

Wyświetl plik

@ -65,7 +65,7 @@ var g_statsWindowHandle = null;
var g_lookupWindowHandle = null; var g_lookupWindowHandle = null;
var g_lookupWindowInitialized = false; var g_lookupWindowInitialized = false;
var g_baWindowHandle = null; var g_baWindowHandle = null;
var g_baWindowInitialized = false;
var g_appSettings = {}; var g_appSettings = {};
var g_mapSettings = {}; var g_mapSettings = {};
var g_legendColors = {}; var g_legendColors = {};
@ -173,6 +173,8 @@ function loadAllSettings()
loadAllSettings(); loadAllSettings();
const k_frequencyBucket = 10000;
var myDEcall = g_appSettings.myDEcall; var myDEcall = g_appSettings.myDEcall;
var myDEGrid = g_appSettings.myDEGrid; var myDEGrid = g_appSettings.myDEGrid;
var myDXGrid = ""; var myDXGrid = "";
@ -862,7 +864,7 @@ function toggleOffline()
document.getElementById(where).style.display = "none"; document.getElementById(where).style.display = "none";
} }
} }
pskReporterBandActivityDiv.style.display = "block"; bandActivityDiv.style.display = "block";
} }
else else
{ {
@ -875,7 +877,7 @@ function toggleOffline()
buttonLOTWCheckBoxDiv.style.display = "none"; buttonLOTWCheckBoxDiv.style.display = "none";
buttonClubCheckBoxDiv.style.display = "none"; buttonClubCheckBoxDiv.style.display = "none";
gtFlagButton.style.display = "none"; gtFlagButton.style.display = "none";
pskReporterBandActivityDiv.style.display = "none"; bandActivityDiv.style.display = "none";
gtShareButton.style.display = "none"; gtShareButton.style.display = "none";
msgButton.style.display = "none"; msgButton.style.display = "none";
donateButton.style.display = "none"; donateButton.style.display = "none";
@ -2473,7 +2475,7 @@ function insertMessageInRoster(newMessage, msgDEcallsign, msgDXcallsign, callObj
g_callRoster[hash].DXcall = msgDXcallsign; g_callRoster[hash].DXcall = msgDXcallsign;
g_callRoster[hash].DEcall = msgDEcallsign; g_callRoster[hash].DEcall = msgDEcallsign;
g_rosterUpdateTimer = nodeTimers.setTimeout(delayedRosterUpdate, 100); g_rosterUpdateTimer = nodeTimers.setTimeout(delayedRosterUpdate, 150);
} }
function delayedRosterUpdate() function delayedRosterUpdate()
@ -6236,6 +6238,8 @@ function handleWsjtxStatus(newMessage)
addLastTraffic(msg); addLastTraffic(msg);
ackAlerts(); ackAlerts();
updateChatWindow(); updateChatWindow();
oamsBandActivityCheck();
g_gtLiveStatusUpdate = true;
} }
myRawFreq = newMessage.Frequency; myRawFreq = newMessage.Frequency;
@ -6345,11 +6349,6 @@ function handleWsjtxStatus(newMessage)
updateCountStats(); updateCountStats();
if (g_appSettings.gtShareEnable == "true")
{
g_gtLiveStatusUpdate = true;
}
if (bandChange || modeChange) reloadInfo(bandChange || modeChange); if (bandChange || modeChange) reloadInfo(bandChange || modeChange);
var worker = ""; var worker = "";
@ -6497,6 +6496,15 @@ function handleWsjtxStatus(newMessage)
} }
} }
function reportDecodes()
{
if (Object.keys(g_decodeCollector).length > 0)
{
gtChatSendDecodes(g_decodeCollector);
g_decodeCollector = {};
}
}
var g_lastMapView = null; var g_lastMapView = null;
function drawTraffic() function drawTraffic()
@ -6559,6 +6567,7 @@ function fitViewBetweenPoints(points, maxZoom = 20)
var g_spotCollector = {}; var g_spotCollector = {};
var g_spotDetailsCollector = {}; var g_spotDetailsCollector = {};
var g_decodeCollector = {};
function handleWsjtxDecode(newMessage) function handleWsjtxDecode(newMessage)
{ {
@ -6902,16 +6911,23 @@ function handleWsjtxDecode(newMessage)
lastMessageWasInfo = true; lastMessageWasInfo = true;
} }
if (g_appSettings.gtSpotEnable === true && callsign.DEcall in g_gtCallsigns) if (g_appSettings.gtSpotEnable == true && newMessage.OF > 0)
{ {
for (const cid in g_gtCallsigns[callsign.DEcall]) let freq = callsign.delta + newMessage.OF;
if (callsign.DEcall in g_gtCallsigns)
{ {
if (cid in g_gtFlagPins && g_gtFlagPins[cid].o == 1) for (const cid in g_gtCallsigns[callsign.DEcall])
{ {
g_spotCollector[cid] = callsign.RSTsent; if (cid in g_gtFlagPins && g_gtFlagPins[cid].o == 1)
g_spotDetailsCollector[cid] = [callsign.delta + newMessage.OF, callsign.mode]; {
g_spotCollector[cid] = callsign.RSTsent;
g_spotDetailsCollector[cid] = [freq, callsign.mode];
}
} }
} }
freq = freq - (freq % k_frequencyBucket);
g_decodeCollector[freq] ??= 0;
g_decodeCollector[freq]++;
} }
} }
@ -10435,6 +10451,9 @@ function setGtShareButtons()
} }
else else
{ {
g_oamsBandActivityData = null;
renderBandActivity();
msgButton.style.display = "none"; msgButton.style.display = "none";
gtFlagButton.style.display = "none"; gtFlagButton.style.display = "none";
g_layerVectors.gtflags.setVisible(false); g_layerVectors.gtflags.setVisible(false);
@ -10517,9 +10536,38 @@ function setGTspotEnable(checkbox)
{ {
g_appSettings.gtSpotEnable = checkbox.checked; g_appSettings.gtSpotEnable = checkbox.checked;
if (g_appSettings.gtSpotEnable == false)
{
g_spotCollector = {};
g_spotDetailsCollector = {};
g_decodeCollector = {};
}
g_gtLiveStatusUpdate = true; g_gtLiveStatusUpdate = true;
} }
function setOamsBandActivity(checkbox)
{
g_appSettings.oamsBandActivity = checkbox.checked;
if (g_appSettings.oamsBandActivity == false)
{
bandActivityNeighborDiv.style.display = "none";
g_oamsBandActivityData = null;
}
else
{
bandActivityNeighborDiv.style.display = "";
oamsBandActivityCheck();
}
renderBandActivity();
}
function setOamsBandActivityNeighbors(checkbox)
{
g_appSettings.oamsBandActivityNeighbors = checkbox.checked;
oamsBandActivityCheck();
}
function setMsgEnable(checkbox) function setMsgEnable(checkbox)
{ {
g_appSettings.gtMsgEnable = checkbox.checked; g_appSettings.gtMsgEnable = checkbox.checked;
@ -10579,58 +10627,54 @@ function downloadAcknowledgements()
} }
} }
var g_non_us_bands = [
"630m",
"160m",
"80m",
"60m",
"40m",
"30m",
"20m",
"17m",
"15m",
"12m",
"10m",
"6m",
"4m",
"2m"
];
var g_us_bands = [
"630m",
"160m",
"80m",
"60m",
"40m",
"30m",
"20m",
"17m",
"15m",
"12m",
"10m",
"6m",
"2m"
];
function renderBandActivity() function renderBandActivity()
{ {
var buffer = ""; var buffer = "";
if (typeof g_bandActivity.lines[myMode] != "undefined") if (typeof g_bandActivity.lines[myMode] != "undefined" || g_oamsBandActivityData != null)
{ {
var lines = g_bandActivity.lines[myMode]; var lines = (myMode in g_bandActivity.lines) ? g_bandActivity.lines[myMode] : [];
var bands = (g_myDXCC in g_callsignDatabaseUSplus) ? g_us_bands : g_non_us_bands;
var bands = [
"630m",
"160m",
"80m",
"60m",
"40m",
"30m",
"20m",
"17m",
"15m",
"12m",
"10m",
"6m",
"4m",
"2m"
];
if (g_myDXCC in g_callsignDatabaseUSplus)
{
bands = [
"630m",
"160m",
"80m",
"60m",
"40m",
"30m",
"20m",
"17m",
"15m",
"12m",
"10m",
"6m",
"2m"
];
}
var bandData = {}; var bandData = {};
var maxValue = 0; var maxValue = 0;
for (var i = 0; i < bands.length; i++) for (var i = 0; i < bands.length; i++)
{ {
bandData[bands[i]] = {}; bandData[bands[i]] = { pskScore: 0, pskSpots: 0, pskTx: 0, pskRx: 0, oamsRxSpots: 0, oamsTxSpots: 0, oamsTx: 0, oamsRx: 0, oamsDecodes: 0, oamsScore: 0 };
bandData[bands[i]].score = 0;
bandData[bands[i]].spots = 0;
bandData[bands[i]].tx = 0;
bandData[bands[i]].rx = 0;
} }
for (var x = 0; x < lines.length; x++) for (var x = 0; x < lines.length; x++)
{ {
var firstChar = lines[x].charCodeAt(0); var firstChar = lines[x].charCodeAt(0);
@ -10644,53 +10688,74 @@ function renderBandActivity()
{ {
var place = bandData[band]; var place = bandData[band];
place.score += Number(values[1]); place.pskScore += Number(values[1]);
place.spots += Number(values[2]); place.pskSpots += Number(values[2]);
place.tx += Number(values[3]); place.pskTx += Number(values[3]);
place.rx += Number(values[4]); place.pskRx += Number(values[4]);
if (maxValue < place.score) maxValue = place.score; if (maxValue < place.pskScore) maxValue = place.pskScore;
if (maxValue < place.spots) maxValue = place.spots; if (maxValue < place.pskSpots) maxValue = place.pskSpots;
} }
} }
} }
var scaleFactor = 1.0; if (g_appSettings.gtShareEnable == true && g_appSettings.oamsBandActivity == true && g_oamsBandActivityData)
{
for (const grid in g_oamsBandActivityData)
{
for (const band in g_oamsBandActivityData[grid])
{
if (band in bandData)
{
var place = bandData[band];
place.oamsDecodes += g_oamsBandActivityData[grid][band].d;
place.oamsRxSpots += g_oamsBandActivityData[grid][band].rS;
place.oamsTxSpots += g_oamsBandActivityData[grid][band].tS;
place.oamsTx += g_oamsBandActivityData[grid][band].t;
place.oamsRx += g_oamsBandActivityData[grid][band].r
if (place.oamsRx > 0)
{
place.oamsScore = parseInt((place.oamsDecodes > place.oamsRxSpots) ? ((place.oamsDecodes - place.oamsRxSpots) / place.oamsRx) + (place.oamsTxSpots * place.oamsTx) : (place.oamsRxSpots / place.oamsRx) + (place.oamsTxSpots * place.oamsTx));
}
else
{
place.oamsScore = parseInt(place.oamsTxSpots * place.oamsTx);
}
if (maxValue < place.oamsScore) maxValue = place.oamsScore;
}
}
}
}
let scaleFactor = 1.0;
if (maxValue > 26) if (maxValue > 26)
{ {
scaleFactor = 26 / maxValue; scaleFactor = 26 / maxValue;
} }
for (var band in bandData) for (const band in bandData)
{ {
var blockMyBand = ""; let blockMyBand = (band == myBand) ? " class='myBand' " : "";
if (band == myBand) blockMyBand = " class='myBand' "; let title;
let blueBarValue;
var title = if (g_appSettings.gtShareEnable == true && g_appSettings.oamsBandActivity == true)
"Score: " + {
bandData[band].score + title = "OAMS\n";
" Spots: " + title += "\tScore: " + bandData[band].oamsScore + "\n\tDecodes: " + bandData[band].oamsDecodes + "\n\tTX-Spots: " + bandData[band].oamsTxSpots + "\n\tRX-Spots: " + bandData[band].oamsRxSpots + "\n\tTx: " + bandData[band].oamsTx + "\tRx: " + bandData[band].oamsRx;
bandData[band].spots + title += "\nPSK-Reporter\n";
"\nTx: " + title += "\tScore: " + bandData[band].pskScore + "\n\tSpots: " + bandData[band].pskSpots + "\n\tTx: " + bandData[band].pskTx + "\tRx: " + bandData[band].pskRx;
bandData[band].tx + blueBarValue = (bandData[band].oamsScore * scaleFactor + 1);
"\tRx: " + }
bandData[band].rx; else
buffer += {
"<div title='" + title = "Score: " + bandData[band].pskScore + "\nSpots: " + bandData[band].pskSpots + "\nTx: " + bandData[band].pskTx + "\tRx: " + bandData[band].pskRx;
title + blueBarValue = (bandData[band].pskSpots * scaleFactor + 1);
"' style='display:inline-block;margin:1px;' class='aBand'>"; }
buffer +=
"<div style='height: " + buffer += "<div title='" + title + "' style='display:inline-block;margin:1px;' class='aBand'>";
(bandData[band].score * scaleFactor + 1) + buffer += "<div style='height: " + (bandData[band].pskScore * scaleFactor + 1) + "px;' class='barTx'></div>"; buffer += "<div style='height: " + blueBarValue + "px;' class='barRx'></div>";
"px;' class='barTx'></div>"; buffer += "<div style='font-size:10px' " + blockMyBand + ">" + parseInt(band) + "</div>";
buffer +=
"<div style='height: " +
(bandData[band].spots * scaleFactor + 1) +
"px;' class='barRx'></div>";
buffer +=
"<div style='font-size:10px' " +
blockMyBand +
">" +
parseInt(band) +
"</div>";
buffer += "</div>"; buffer += "</div>";
} }
} }
@ -10699,7 +10764,7 @@ function renderBandActivity()
buffer = "..no data yet.."; buffer = "..no data yet..";
} }
graphDiv.innerHTML = buffer; graphDiv.innerHTML = buffer;
if (g_baWindowHandle) if (g_baWindowInitialized == true)
{ {
g_baWindowHandle.window.graphDiv.innerHTML = buffer; g_baWindowHandle.window.graphDiv.innerHTML = buffer;
} }
@ -10733,11 +10798,7 @@ function pskGetBandActivity()
g_bandActivity.lastUpdate[myMode] = 0; g_bandActivity.lastUpdate[myMode] = 0;
} }
if ( if (myMode.length > 0 && myDEGrid.length > 0 && g_timeNow > g_bandActivity.lastUpdate[myMode])
myMode.length > 0 &&
myDEGrid.length > 0 &&
g_timeNow > g_bandActivity.lastUpdate[myMode]
)
{ {
getBuffer( getBuffer(
"https://pskreporter.info/cgi-bin/psk-freq.pl?mode=" + "https://pskreporter.info/cgi-bin/psk-freq.pl?mode=" +
@ -12827,6 +12888,10 @@ function loadMsgSettings()
msgEnable.checked = g_appSettings.gtMsgEnable; msgEnable.checked = g_appSettings.gtMsgEnable;
GTspotEnable.checked = g_appSettings.gtSpotEnable; GTspotEnable.checked = g_appSettings.gtSpotEnable;
oamsBandActivity.checked = g_appSettings.oamsBandActivity;
oamsBandActivityNeighbors.checked = g_appSettings.oamsBandActivityNeighbors;
setOamsBandActivity(oamsBandActivity);
setSpotImage(); setSpotImage();
for (var key in g_msgSettings) for (var key in g_msgSettings)
@ -13032,7 +13097,7 @@ function startupButtonsAndInputs()
gtShareButton.style.display = "none"; gtShareButton.style.display = "none";
msgButton.style.display = "none"; msgButton.style.display = "none";
donateButton.style.display = "none"; donateButton.style.display = "none";
pskReporterBandActivityDiv.style.display = "none"; bandActivityDiv.style.display = "none";
buttonSpotsBoxDiv.style.display = "none"; buttonSpotsBoxDiv.style.display = "none";
potaButton.style.display = "none"; potaButton.style.display = "none";
} }
@ -13052,6 +13117,8 @@ function startupEventsAndTimers()
// Clock timer update every second // Clock timer update every second
nodeTimers.setInterval(displayTime, 1000); nodeTimers.setInterval(displayTime, 1000);
nodeTimers.setInterval(reportDecodes, 60000);
nodeTimers.setInterval(oamsBandActivityCheck, 300000);
} }
var g_finishedLoading = false; var g_finishedLoading = false;
@ -13610,6 +13677,7 @@ function updateWsjtxListener(port)
newMessage.OG = g_instances[instanceId].status.DEgrid; newMessage.OG = g_instances[instanceId].status.DEgrid;
newMessage.OM = g_instances[instanceId].status.MO; newMessage.OM = g_instances[instanceId].status.MO;
newMessage.OB = g_instances[instanceId].status.Band; newMessage.OB = g_instances[instanceId].status.Band;
newMessage.SP = g_instances[instanceId].status.SopMode;
} }
if (newMessage.type == 3) if (newMessage.type == 3)
{ {

Wyświetl plik

@ -9,7 +9,8 @@ var g_chatRecvFunctions = {
info: gtChatUpdateCall, info: gtChatUpdateCall,
drop: gtChatRemoveCall, drop: gtChatRemoveCall,
mesg: gtChatMessage, mesg: gtChatMessage,
o: gtSpotMessage o: gtSpotMessage,
ba: bandActivityReply
}; };
var ChatState = Object(); var ChatState = Object();
@ -48,6 +49,7 @@ var g_gtNeedUsersList = true;
var g_gtUuidValid = false; var g_gtUuidValid = false;
var g_gtLiveStatusUpdate = false; var g_gtLiveStatusUpdate = false;
var g_oamsBandActivityData = null;
var myChatId = 0; var myChatId = 0;
@ -213,7 +215,7 @@ function gtStatusCheck()
function sendGtJson(json, isUUIDrequest = false) function sendGtJson(json, isUUIDrequest = false)
{ {
if (g_gtChatSocket != null) if (g_appSettings.gtShareEnable == true && g_gtChatSocket != null)
{ {
if (g_gtChatSocket.readyState === WebSocket.OPEN && (isUUIDrequest || g_gtUuidValid)) if (g_gtChatSocket.readyState === WebSocket.OPEN && (isUUIDrequest || g_gtUuidValid))
{ {
@ -227,8 +229,6 @@ function sendGtJson(json, isUUIDrequest = false)
} }
} }
} }
// if we don't have a socketHandle, don't go changing the state willy nilly!
// else g_gtState = ChatState.closed;
} }
var g_lastGtStatus = ""; var g_lastGtStatus = "";
@ -258,13 +258,53 @@ function gtChatSendStatus()
function gtChatSendSpots(spotsObject, detailsObject) function gtChatSendSpots(spotsObject, detailsObject)
{ {
var msg = Object(); let msg = Object();
msg.type = "o"; msg.type = "o";
msg.uuid = g_appSettings.chatUUID; msg.uuid = g_appSettings.chatUUID;
msg.o = spotsObject; msg.o = spotsObject;
msg.d = detailsObject; msg.d = detailsObject;
msg = JSON.stringify(msg);
sendGtJson(msg); sendGtJson(JSON.stringify(msg));
}
function gtChatSendDecodes(instancesObject)
{
let msg = Object();
msg.type = "d";
msg.uuid = g_appSettings.chatUUID;
msg.i = instancesObject;
sendGtJson(JSON.stringify(msg));
}
function oamsBandActivityCheck()
{
if (g_appSettings.oamsBandActivity == true && myDEGrid.length >= 4)
{
let grid = myDEGrid.substring(0, 4).toUpperCase();
if (g_appSettings.oamsBandActivityNeighbors == true)
{
gtChatSendBandActivityRequest(squareToNeighbors(grid));
}
else
{
gtChatSendBandActivityRequest([grid]);
}
}
}
function gtChatSendBandActivityRequest(gridArray)
{
msg = Object();
msg.type = "ba";
msg.uuid = g_appSettings.chatUUID;
msg.ga = gridArray;
sendGtJson(JSON.stringify(msg));
}
function bandActivityReply(jsmesg)
{
g_oamsBandActivityData = jsmesg.r;
renderBandActivity();
} }
function gtChatRemoveCall(jsmesg) function gtChatRemoveCall(jsmesg)
@ -369,7 +409,7 @@ function gtChatUpdateCall(jsmesg)
if (!(g_gtFlagPins[cid].call in g_gtCallsigns)) if (!(g_gtFlagPins[cid].call in g_gtCallsigns))
{ {
// Can happen when a user changes callsign // Can happen when a user changes callsign
g_gtCallsigns[g_gtFlagPins[cid].call] = Object(); g_gtCallsigns[g_gtFlagPins[cid].call] = {};
} }
g_gtCallsigns[g_gtFlagPins[cid].call][cid] = true; g_gtCallsigns[g_gtFlagPins[cid].call][cid] = true;
@ -500,6 +540,8 @@ function gtChatNewList(jsmesg)
} }
updateChatWindow(); updateChatWindow();
oamsBandActivityCheck();
} }
function appendToHistory(cid, jsmesg) function appendToHistory(cid, jsmesg)

Wyświetl plik

@ -420,15 +420,7 @@ function fillObjectFromTemplate(template, input)
function uniqueArrayFromArray(input) function uniqueArrayFromArray(input)
{ {
var unique = []; return [...new Set(input)];
input.forEach((c) =>
{
if (!unique.includes(c))
{
unique.push(c);
}
});
return unique;
} }
function processPotaSpots(buffer) function processPotaSpots(buffer)