diff --git a/html/js/config.js b/html/js/config.js
index c76b2cf..42eeb3f 100644
--- a/html/js/config.js
+++ b/html/js/config.js
@@ -29,4 +29,10 @@ var showBMTGLink = 1;
// Array of callsigns that should not be linked to qrz.com
var qrz_blacklist = [
"N0CALL",
+]
+
+// Array of callsigns that should generally not be listed on the dashboard
+
+var dashboard_blacklist = [
+"MY0CALL",
]
\ No newline at end of file
diff --git a/html/js/functions.js b/html/js/functions.js
index c65a3cc..bb007ff 100644
--- a/html/js/functions.js
+++ b/html/js/functions.js
@@ -54,6 +54,16 @@ function getTimezone() {
}
}
+function inDashboardBlacklist(logline) {
+ callsign = logline.substring(logline.indexOf("from") + 5, logline.indexOf("to")).trim();
+ name = "";
+ if (callsign.indexOf("$") > 0) {
+ name = callsign.substring(callsign.indexOf("$") + 1, callsign.lastIndexOf("$"));
+ callsign = callsign.substring(0, callsign.indexOf("$"));
+ }
+ return dashboard_blacklist.includes(callsign);
+}
+
function isDMRHost(logline) {
if (logline.charAt(22) == " ")
return true;
@@ -418,190 +428,192 @@ function getLastHeard(document, event) {
var duration = 0;
lines.forEach(function(line, index, array) {
logIt("LogLine: " + line);
- /*
- if (line.indexOf("MMDVMHost") > 0 ) {
- mmdvmhost_version = line.substring(line.indexOf("MMDVMHost"));
- mmdvmhost_version = mmdvmhost_version.substring(0, mmdvmhost_version.indexOf(" "));
- document.getElementById("mmdvmhost_version").innerHTML = mmdvmhost_version;
- }
- if (line.indexOf("Built") > 0 ) {
- built = line.substring(line.indexOf("Built") + 6);
- document.getElementById("built").innerHTML = built;
- }
-
- */
- if (line.indexOf("description:") > 0 ) {
- modem = line.substring(line.indexOf("description:") + 12);
- document.getElementById("modem").innerHTML = modem;
- }
-
- if (line.indexOf("Callsign:") > 0 ) {
- callsign = line.substring(line.indexOf("Callsign:") + 10);
- document.getElementById("callsign").innerHTML = callsign;
- }
-
- if (line.indexOf("Id:") > 0 ) {
- dmrid = line.substring(line.indexOf("Id:") + 4);
- document.getElementById("dmrid").innerHTML = dmrid;
- }
-
- if (line.indexOf("RX Frequency:") > 0 ) {
- rxqrg = line.substring(line.indexOf("RX Frequency:") + 14, 54);
- document.getElementById("rxqrg").innerHTML = getMHZ(rxqrg) + " MHz";
- }
-
- if (line.indexOf("TX Frequency:") > 0 ) {
- txqrg = line.substring(line.indexOf("TX Frequency:") + 14, 54);
- document.getElementById("txqrg").innerHTML = getMHZ(txqrg) + " MHz";
- }
-
- txing = false;
- if (line.indexOf("Talker Alias") < 0 && line.indexOf("Downlink Activate") < 0 && line.indexOf("Preamble CSBK") < 0 && line.indexOf("data header") < 0 && line.indexOf("0000:") < 0 && line.length > 0 && (line.indexOf("received") > 0 || line.indexOf("network watchdog") > 0)) {
- if (line.indexOf("received network data") > 0 || line.indexOf("late entry") > 0 || line.indexOf("voice header") > 0 || line.indexOf("received RF header") > 0) {
- txing = true;
- if (getMode(line) == "DMR Slot 1" ) {
- ts1TXing = getMode(line) + ";" + line.substring(line.indexOf("from") + 5, line.indexOf("to")).trim() + ";" + getTarget(line) + ";" + getSource(line);
- ts1timestamp = getRawTimestamp(line);
- } else {
- ts2TXing = getMode(line) + ";" + line.substring(line.indexOf("from") + 5, line.indexOf("to")).trim() + ";" + getTarget(line) + ";" + getSource(line);
- ts2timestamp = getRawTimestamp(line);
- }
+ if (!inDashboardBlacklist(line)) {
+ /*
+ if (line.indexOf("MMDVMHost") > 0 ) {
+ mmdvmhost_version = line.substring(line.indexOf("MMDVMHost"));
+ mmdvmhost_version = mmdvmhost_version.substring(0, mmdvmhost_version.indexOf(" "));
+ document.getElementById("mmdvmhost_version").innerHTML = mmdvmhost_version;
}
- if (line.indexOf("network watchdog") > 0 || line.indexOf("end of voice transmission") > 0 || line.indexOf("end of transmission") > 0) {
- if (getMode(line) == "DMR Slot 1" ) {
- ts1TXing = null;
- } else {
- ts2TXing = null;
+ if (line.indexOf("Built") > 0 ) {
+ built = line.substring(line.indexOf("Built") + 6);
+ document.getElementById("built").innerHTML = built;
+ }
+
+ */
+ if (line.indexOf("description:") > 0 ) {
+ modem = line.substring(line.indexOf("description:") + 12);
+ document.getElementById("modem").innerHTML = modem;
+ }
+
+ if (line.indexOf("Callsign:") > 0 ) {
+ callsign = line.substring(line.indexOf("Callsign:") + 10);
+ document.getElementById("callsign").innerHTML = callsign;
+ }
+
+ if (line.indexOf("Id:") > 0 ) {
+ dmrid = line.substring(line.indexOf("Id:") + 4);
+ document.getElementById("dmrid").innerHTML = dmrid;
+ }
+
+ if (line.indexOf("RX Frequency:") > 0 ) {
+ rxqrg = line.substring(line.indexOf("RX Frequency:") + 14, 54);
+ document.getElementById("rxqrg").innerHTML = getMHZ(rxqrg) + " MHz";
+ }
+
+ if (line.indexOf("TX Frequency:") > 0 ) {
+ txqrg = line.substring(line.indexOf("TX Frequency:") + 14, 54);
+ document.getElementById("txqrg").innerHTML = getMHZ(txqrg) + " MHz";
+ }
+
+ txing = false;
+ if (line.indexOf("Talker Alias") < 0 && line.indexOf("Downlink Activate") < 0 && line.indexOf("Preamble CSBK") < 0 && line.indexOf("data header") < 0 && line.indexOf("0000:") < 0 && line.length > 0 && (line.indexOf("received") > 0 || line.indexOf("network watchdog") > 0)) {
+ if (line.indexOf("received network data") > 0 || line.indexOf("late entry") > 0 || line.indexOf("voice header") > 0 || line.indexOf("received RF header") > 0) {
+ txing = true;
+ if (getMode(line) == "DMR Slot 1" ) {
+ ts1TXing = getMode(line) + ";" + line.substring(line.indexOf("from") + 5, line.indexOf("to")).trim() + ";" + getTarget(line) + ";" + getSource(line);
+ ts1timestamp = getRawTimestamp(line);
+ } else {
+ ts2TXing = getMode(line) + ";" + line.substring(line.indexOf("from") + 5, line.indexOf("to")).trim() + ";" + getTarget(line) + ";" + getSource(line);
+ ts2timestamp = getRawTimestamp(line);
+ }
}
- txing = false;
-
- if (line.indexOf("network watchdog") > 0) {
- logIt("Network Watchdog!");
+ if (line.indexOf("network watchdog") > 0 || line.indexOf("end of voice transmission") > 0 || line.indexOf("end of transmission") > 0) {
+ if (getMode(line) == "DMR Slot 1" ) {
+ ts1TXing = null;
+ } else {
+ ts2TXing = null;
+ }
+ txing = false;
- var rowIndexes = [];
- t_lh.rows( function ( idx, data, node ) {
- if (getMode(line) == "DMR Slot 1" ) {
- if(data[0] == getLocaltimeFromTimestamp(ts1timestamp)){
- rowIndexes.push(idx);
+ if (line.indexOf("network watchdog") > 0) {
+ logIt("Network Watchdog!");
+
+ var rowIndexes = [];
+ t_lh.rows( function ( idx, data, node ) {
+ if (getMode(line) == "DMR Slot 1" ) {
+ if(data[0] == getLocaltimeFromTimestamp(ts1timestamp)){
+ rowIndexes.push(idx);
+ }
+ return false;
+ } else {
+ if(data[0] == getLocaltimeFromTimestamp(ts2timestamp)){
+ rowIndexes.push(idx);
+ }
}
- return false;
+ });
+ if (getMode(line) == "DMR Slot 1" ) {
+ duration = Math.round(Date.parse(getRawTimestamp(line).replace(" ","T")+".000Z")/1000 - Date.parse(ts1timestamp.replace(" ","T")+".000Z")/1000);
} else {
- if(data[0] == getLocaltimeFromTimestamp(ts2timestamp)){
- rowIndexes.push(idx);
+ duration = Math.round(Date.parse(getRawTimestamp(line).replace(" ","T")+".000Z")/1000 - Date.parse(ts2timestamp.replace(" ","T")+".000Z")/1000);
+ }
+ logIt("RowIndexes: " + rowIndexes);
+ if (rowIndexes[0]) {
+ if (rowIndexes[0] == "0") {
+ t_lh.row(rowIndexes[0]).remove().draw(false);
+ }
+ logIt("RowIndex[0]: " + rowIndexes[0]);
+ if (t_lh.row(rowIndexes[0]).data[0] != null) {
+ newData = [
+ t_lh.row(rowIndexes[0]).data[0],
+ t_lh.row(rowIndexes[0]).data[1],
+ t_lh.row(rowIndexes[0]).data[2],
+ t_lh.row(rowIndexes[0]).data[3],
+ t_lh.row(rowIndexes[0]).data[4],
+ duration,
+ "",
+ "",
+ getAddToQSO(line)
+ ]
+ logIt(t_lh.row(rowIndexes[0]).data[2])
+ $('#lastHeard').dataTable().fnUpdate(newData,rowIndexes[0],undefined,false);
+ } else {
+ logIt("Problem replacing watchdog! Indices: " + rowIndexes);
}
+ }
+ }
+ }
+ logIt("TS1: " + ts1TXing + "|" + ts1timestamp);
+ logIt("TS2: " + ts2TXing + "|" + ts2timestamp);
+ getCurrentTXing();
+
+ if (line.indexOf("network watchdog") < 0 ) {
+ var rowIndexes = [],
+ timestamp = getTimestamp(line),
+ mode = getMode(line),
+ callsign = getCallsign(line),
+ target = getTarget(line),
+ source = getSource(line),
+ duration = getDuration(line),
+ loss = getLoss(line),
+ ber = getBER(line),
+ addToQSO = getAddToQSO(line);
+ if (txing) {
+ duration = "TXing";
+ loss = "";
+ ber = "";
+ }
+ if (mode == "POCSAG") {
+ callsign = "POCSAG";
+ target = "";
+ source = "";
+ duration = "";
+ loss = "";
+ ber = "";
+ addToQSO = "";
+ }
+ t_lh.rows( function ( idx, data, node ) {
+ if(data[2] == callsign){
+ rowIndexes.push(idx);
}
+ return false;
});
- if (getMode(line) == "DMR Slot 1" ) {
- duration = Math.round(Date.parse(getRawTimestamp(line).replace(" ","T")+".000Z")/1000 - Date.parse(ts1timestamp.replace(" ","T")+".000Z")/1000);
- } else {
- duration = Math.round(Date.parse(getRawTimestamp(line).replace(" ","T")+".000Z")/1000 - Date.parse(ts2timestamp.replace(" ","T")+".000Z")/1000);
+ if (rowIndexes[0] == "0") {
+ t_lh.row(rowIndexes[0]).remove().draw(false);
}
- logIt("RowIndexes: " + rowIndexes);
if (rowIndexes[0]) {
- if (rowIndexes[0] == "0") {
- t_lh.row(rowIndexes[0]).remove().draw(false);
- }
- logIt("RowIndex[0]: " + rowIndexes[0]);
- if (t_lh.row(rowIndexes[0]).data[0] != null) {
- newData = [
- t_lh.row(rowIndexes[0]).data[0],
- t_lh.row(rowIndexes[0]).data[1],
- t_lh.row(rowIndexes[0]).data[2],
- t_lh.row(rowIndexes[0]).data[3],
- t_lh.row(rowIndexes[0]).data[4],
- duration,
- "",
- "",
- getAddToQSO(line)
- ]
- logIt(t_lh.row(rowIndexes[0]).data[2])
- $('#lastHeard').dataTable().fnUpdate(newData,rowIndexes[0],undefined,false);
- } else {
- logIt("Problem replacing watchdog! Indices: " + rowIndexes);
- }
- }
- }
- }
- logIt("TS1: " + ts1TXing + "|" + ts1timestamp);
- logIt("TS2: " + ts2TXing + "|" + ts2timestamp);
- getCurrentTXing();
-
- if (line.indexOf("network watchdog") < 0 ) {
- var rowIndexes = [],
- timestamp = getTimestamp(line),
- mode = getMode(line),
- callsign = getCallsign(line),
- target = getTarget(line),
- source = getSource(line),
- duration = getDuration(line),
- loss = getLoss(line),
- ber = getBER(line),
- addToQSO = getAddToQSO(line);
- if (txing) {
- duration = "TXing";
- loss = "";
- ber = "";
- }
- if (mode == "POCSAG") {
- callsign = "POCSAG";
- target = "";
- source = "";
- duration = "";
- loss = "";
- ber = "";
- addToQSO = "";
- }
- t_lh.rows( function ( idx, data, node ) {
- if(data[2] == callsign){
- rowIndexes.push(idx);
+
+ newData = [
+ timestamp,
+ mode,
+ callsign,
+ target,
+ source,
+ duration,
+ loss,
+ ber,
+ addToQSO
+ ]
+ t_lh.row(rowIndexes[0]).data( newData ).draw(false);
+ } else {
+ t_lh.row.add( [
+ timestamp,
+ mode,
+ callsign,
+ target,
+ source,
+ duration,
+ loss,
+ ber,
+ addToQSO
+ ] ).draw(false);
}
- return false;
- });
- if (rowIndexes[0] == "0") {
- t_lh.row(rowIndexes[0]).remove().draw(false);
}
if (rowIndexes[0]) {
-
- newData = [
- timestamp,
- mode,
- callsign,
- target,
- source,
- duration,
- loss,
- ber,
- addToQSO
- ]
- t_lh.row(rowIndexes[0]).data( newData ).draw(false);
- } else {
- t_lh.row.add( [
- timestamp,
- mode,
- callsign,
- target,
- source,
- duration,
- loss,
- ber,
- addToQSO
- ] ).draw(false);
- }
- }
- if (rowIndexes[0]) {
- var row = t_lh.row(rowIndexes[0]).node();
- /*
- if (txing) {
- $(row).addClass('red');
- } else {
- $(row).removeClass('red');
+ var row = t_lh.row(rowIndexes[0]).node();
+ /*
+ if (txing) {
+ $(row).addClass('red');
+ } else {
+ $(row).removeClass('red');
+ }
+ */
+ var temp = t_lh.row(rowIndexes[0]).data();
+ logIt("Temp: "+ temp);
+ logIt("Duration: " + duration);
+ temp[5] = duration;
+ $('#lastHeard').dataTable().fnUpdate(temp,rowIndexes[0],undefined,false);
}
- */
- var temp = t_lh.row(rowIndexes[0]).data();
- logIt("Temp: "+ temp);
- logIt("Duration: " + duration);
- temp[5] = duration;
- $('#lastHeard').dataTable().fnUpdate(temp,rowIndexes[0],undefined,false);
}
}
});
@@ -613,17 +625,19 @@ function getLocalHeard(document, event) {
$(document).ready(function() {
lines = event.data.split("\n");
lines.forEach(function(line, index, array) {
- if (getSource(line) == "RF") {
- if (getDuration(line) !== "") {
- t_localh.row.add( [
- getTimestamp(line),
- getMode(line),
- getCallsign(line),
- getTarget(line),
- getSource(line),
- getDuration(line),
- getBER(line)
- ] ).draw(false);
+ if (!inDashboardBlacklist(line)) {
+ if (getSource(line) == "RF") {
+ if (getDuration(line) !== "") {
+ t_localh.row.add( [
+ getTimestamp(line),
+ getMode(line),
+ getCallsign(line),
+ getTarget(line),
+ getSource(line),
+ getDuration(line),
+ getBER(line)
+ ] ).draw(false);
+ }
}
}
});
@@ -634,18 +648,20 @@ function getAllHeard(document, event) {
$(document).ready(function() {
lines = event.data.split("\n");
lines.forEach(function(line, index, array) {
- if (line.indexOf("network watchdog") < 0 ) {
- if (getDuration(line) !== "") {
- t_allh.row.add( [
- getTimestamp(line),
- getMode(line),
- getCallsign(line),
- getTarget(line),
- getSource(line),
- getDuration(line),
- getLoss(line),
- getBER(line)
- ] ).draw(false);
+ if (!inDashboardBlacklist(line)) {
+ if (line.indexOf("network watchdog") < 0 ) {
+ if (getDuration(line) !== "") {
+ t_allh.row.add( [
+ getTimestamp(line),
+ getMode(line),
+ getCallsign(line),
+ getTarget(line),
+ getSource(line),
+ getDuration(line),
+ getLoss(line),
+ getBER(line)
+ ] ).draw(false);
+ }
}
}
});
diff --git a/html/js/version.js b/html/js/version.js
index a1f96ba..2b1f471 100644
--- a/html/js/version.js
+++ b/html/js/version.js
@@ -1 +1 @@
-var dashboard_version = "2021-02-06 23:30:37";
+var dashboard_version = "2021-02-07 21:02:58";