First pass handling rx'd feciswriting, clean up sock.js

This commit is contained in:
Mashintime 2023-02-12 19:13:14 -05:00
parent d2c2b71a02
commit ed31503b0b
3 changed files with 236 additions and 195 deletions

View file

@ -534,6 +534,11 @@ ipcMain.on("save-file-to-folder", (event, data) => {
//tnc messages START -------------------------------------- //tnc messages START --------------------------------------
// FEC iswriting received
ipcMain.on("request-show-fec-toast-iswriting", (event, data) => {
win.webContents.send("action-show-fec-toast-iswriting", data);
});
// CQ TRANSMITTING // CQ TRANSMITTING
ipcMain.on("request-show-cq-toast-transmitting", (event, data) => { ipcMain.on("request-show-cq-toast-transmitting", (event, data) => {
win.webContents.send("action-show-cq-toast-transmitting", data); win.webContents.send("action-show-cq-toast-transmitting", data);

View file

@ -2574,7 +2574,17 @@ ipcRenderer.on("action-show-cq-toast-transmitting", (event, data) => {
(duration = 5000) (duration = 5000)
); );
}); });
// fec iswriting received
ipcRenderer.on("action-show-fec-toast-iswriting", (event, data) => {
let dxcallsign = data["data"][0]["dxcallsign"];
let content = `${dxcallsign}</strong> is typing`;
displayToast(
(type = "success"),
(icon = "bi-pencil-fill"),
(content = content),
(duration = 5000)
);
});
// CQ RECEIVED // CQ RECEIVED
ipcRenderer.on("action-show-cq-toast-received", (event, data) => { ipcRenderer.on("action-show-cq-toast-received", (event, data) => {
let dxcallsign = data["data"][0]["dxcallsign"]; let dxcallsign = data["data"][0]["dxcallsign"];

View file

@ -4,7 +4,7 @@ const { ipcRenderer } = require("electron");
const log = require("electron-log"); const log = require("electron-log");
const socketLog = log.scope("tnc"); const socketLog = log.scope("tnc");
const utf8 = require("utf8"); //const utf8 = require("utf8");
// https://stackoverflow.com/a/26227660 // https://stackoverflow.com/a/26227660
var appDataFolder = var appDataFolder =
@ -25,8 +25,8 @@ const split_char = "\0;\1;";
// globals for getting new data only if available so we are saving bandwidth // globals for getting new data only if available so we are saving bandwidth
var rxBufferLengthTnc = 0; var rxBufferLengthTnc = 0;
var rxBufferLengthGui = 0; var rxBufferLengthGui = 0;
var rxMsgBufferLengthTnc = 0; //var rxMsgBufferLengthTnc = 0;
var rxMsgBufferLengthGui = 0; //var rxMsgBufferLengthGui = 0;
// global to keep track of TNC connection error emissions // global to keep track of TNC connection error emissions
var tncShowConnectStateError = 1; var tncShowConnectStateError = 1;
@ -168,7 +168,8 @@ client.on("data", function (socketdata) {
try { try {
data = JSON.parse(socketchunk[i]); data = JSON.parse(socketchunk[i]);
} catch (e) { } catch (e) {
socketLog.info(e); // "SyntaxError socketLog.info("Throwing away data!!!!\n" + e); // "SyntaxError
//socketLog.info(e); // "SyntaxError
socketLog.info(socketchunk[i]); socketLog.info(socketchunk[i]);
socketchunk = ""; socketchunk = "";
//If we're here, I don't think we want to process any data that may be in data variable //If we're here, I don't think we want to process any data that may be in data variable
@ -180,7 +181,7 @@ client.on("data", function (socketdata) {
//socketLog.info(data) //socketLog.info(data)
// set length of RX Buffer to global variable // set length of RX Buffer to global variable
rxBufferLengthTnc = data["rx_buffer_length"]; rxBufferLengthTnc = data["rx_buffer_length"];
rxMsgBufferLengthTnc = data["rx_msg_buffer_length"]; //rxMsgBufferLengthTnc = data["rx_msg_buffer_length"];
let Data = { let Data = {
mycallsign: data["mycallsign"], mycallsign: data["mycallsign"],
@ -232,224 +233,249 @@ client.on("data", function (socketdata) {
// ----------- catch tnc messages START ----------- // ----------- catch tnc messages START -----------
if (data["freedata"] == "tnc-message") { if (data["freedata"] == "tnc-message") {
// update transmission status
/*
if (data['arq'] == 'transmission' && data['status'] == 'transmitting'){
let state = { switch (data["fec"]) {
status: data['status'],
uuid: data['uuid'], case "is_writing":
percent: data['percent'], // CQ TRANSMITTING
bytesperminute: data['bytesperminute'], ipcRenderer.send("request-show-fec-toast-iswriting", {
};
ipcRenderer.send('request-update-transmission-status', state);
}
*/
// CQ TRANSMITTING
if (data["cq"] == "transmitting") {
ipcRenderer.send("request-show-cq-toast-transmitting", {
data: [data], data: [data],
});
break;
}
switch (data["cq"]) {
case "transmitting":
// CQ TRANSMITTING
ipcRenderer.send("request-show-cq-toast-transmitting", {
data: [data],
}); });
} break;
// CQ RECEIVED case "received":
if (data["cq"] == "received") { // CQ RECEIVED
ipcRenderer.send("request-show-cq-toast-received", { data: [data] }); ipcRenderer.send("request-show-cq-toast-received", { data: [data] });
} break;
}
// QRV TRANSMITTING
if (data["qrv"] == "transmitting") { switch (data["qrv"]) {
case "transmitting":
// QRV TRANSMITTING
ipcRenderer.send("request-show-qrv-toast-transmitting", { ipcRenderer.send("request-show-qrv-toast-transmitting", {
data: [data], data: [data],
}); });
} break;
// QRV RECEIVED case "received":
if (data["qrv"] == "received") { // QRV RECEIVED
ipcRenderer.send("request-show-qrv-toast-received", { data: [data] }); ipcRenderer.send("request-show-qrv-toast-received", { data: [data] });
} break;
}
// BEACON TRANSMITTING
if (data["beacon"] == "transmitting") { switch (data["beacon"]) {
case "transmitting":
// BEACON TRANSMITTING
ipcRenderer.send("request-show-beacon-toast-transmitting", { ipcRenderer.send("request-show-beacon-toast-transmitting", {
data: [data], data: [data],
}); });
} break;
// BEACON RECEIVED case "received":
if (data["beacon"] == "received") { // BEACON RECEIVED
ipcRenderer.send("request-show-beacon-toast-received", { ipcRenderer.send("request-show-beacon-toast-received", {
data: [data], data: [data],
}); });
ipcRenderer.send("request-new-msg-received", { data: [data] }); ipcRenderer.send("request-new-msg-received", { data: [data] });
} break;
}
// PING TRANSMITTING
if (data["ping"] == "transmitting") { switch (data["ping"]) {
case "transmitting":
// PING TRANSMITTING
ipcRenderer.send("request-show-ping-toast-transmitting", { ipcRenderer.send("request-show-ping-toast-transmitting", {
data: [data], data: [data],
}); });
} break;
// PING RECEIVED case "received":
if (data["ping"] == "received") { // PING RECEIVED
ipcRenderer.send("request-show-ping-toast-received", { ipcRenderer.send("request-show-ping-toast-received", {
data: [data], data: [data],
}); });
ipcRenderer.send("request-new-msg-received", { data: [data] }); ipcRenderer.send("request-new-msg-received", { data: [data] });
} break;
// PING ACKNOWLEDGE case "acknowledge":
if (data["ping"] == "acknowledge") { // PING ACKNOWLEDGE
ipcRenderer.send("request-show-ping-toast-received-ack", { ipcRenderer.send("request-show-ping-toast-received-ack", {
data: [data], data: [data],
}); });
ipcRenderer.send("request-new-msg-received", { data: [data] }); ipcRenderer.send("request-new-msg-received", { data: [data] });
} break;
}
// ARQ SESSION // ARQ SESSION && freedata == tnc-message
if (data["arq"] == "session") { if (data["arq"] == "session") {
// ARQ OPEN
if (data["status"] == "connecting") { switch (data["status"]){
ipcRenderer.send("request-show-arq-toast-session-connecting", {
data: [data], case "connecting":
}); // ARQ Open
ipcRenderer.send("request-show-arq-toast-session-connecting", {
// ARQ OPENING
} else if (data["status"] == "connected") {
ipcRenderer.send("request-show-arq-toast-session-connected", {
data: [data],
});
// ARQ OPENING
} else if (data["status"] == "waiting") {
ipcRenderer.send("request-show-arq-toast-session-waiting", {
data: [data],
});
// ARQ OPENING
} else if (data["status"] == "close") {
ipcRenderer.send("request-show-arq-toast-session-close", {
data: [data],
});
// ARQ OPENING
} else if (data["status"] == "failed") {
ipcRenderer.send("request-show-arq-toast-session-failed", {
data: [data],
});
}
}
// ARQ TRANSMISSION
if (data["arq"] == "transmission") {
// ARQ OPEN
if (data["status"] == "opened") {
ipcRenderer.send("request-show-arq-toast-datachannel-opened", {
data: [data],
});
// ARQ OPENING ISS
} else if (data["status"] == "opening" && data["irs"] == "False") {
ipcRenderer.send("request-show-arq-toast-datachannel-opening", {
data: [data],
});
// ARQ OPENING IRS
} else if (data["status"] == "opening" && data["irs"] == "True") {
ipcRenderer.send(
"request-show-arq-toast-datachannel-received-opener",
{ data: [data] }
);
// ARQ WAITING
} else if (data["status"] == "waiting") {
ipcRenderer.send("request-show-arq-toast-datachannel-waiting", {
data: [data],
});
// ARQ RECEIVING
} else if (data["status"] == "receiving") {
ipcRenderer.send("request-update-reception-status", {
data: [data],
});
// ARQ TRANSMISSION FAILED
} else if (data["status"] == "failed") {
if (data["reason"] == "protocol version missmatch") {
ipcRenderer.send(
"request-show-arq-toast-transmission-failed-ver",
{ data: [data] }
);
} else {
ipcRenderer.send("request-show-arq-toast-transmission-failed", {
data: [data], data: [data],
}); });
} break;
ipcRenderer.send("request-update-transmission-status", {
data: [data], case "connected":
}); // ARQ Opening
ipcRenderer.send("request-show-arq-toast-session-connected", {
// ARQ TRANSMISSION RECEIVED data: [data],
} else if (data["status"] == "received") { });
ipcRenderer.send("request-show-arq-toast-transmission-received", { break;
data: [data],
}); case "waiting":
ipcRenderer.send("request-update-transmission-status", { // ARQ Opening
data: [data], ipcRenderer.send("request-show-arq-toast-session-waiting", {
}); data: [data],
});
dataArray = []; break;
messageArray = [];
case "close":
socketLog.info(data); // ARQ Closing
// we need to encode here to do a deep check for checking if file or message ipcRenderer.send("request-show-arq-toast-session-close", {
//var encoded_data = atob(data['data']) data: [data],
var encoded_data = atob_FD(data["data"]); });
var splitted_data = encoded_data.split(split_char); break;
if (splitted_data[0] == "f") { case "failed":
dataArray.push(data); // ARQ Failed
} ipcRenderer.send("request-show-arq-toast-session-failed", {
data: [data],
if (splitted_data[0] == "m") { });
messageArray.push(data); break;
console.log(data); }
} }
// ARQ TRANSMISSION && freedata == tnc-message
rxBufferLengthGui = dataArray.length; if (data["arq"] == "transmission") {
let Files = {
data: dataArray, switch (data["status"]) {
};
ipcRenderer.send("request-update-rx-buffer", Files); case "opened":
ipcRenderer.send("request-new-msg-received", Files); // ARQ Open
ipcRenderer.send("request-show-arq-toast-datachannel-opened", {
rxMsgBufferLengthGui = messageArray.length; data: [data],
let Messages = { });
data: messageArray, break;
};
ipcRenderer.send("request-new-msg-received", Messages); case "opening":
// ARQ Opening IRS/ISS
// ARQ TRANSMISSION TRANSMITTING if (data["irs"] == "False") {
} else if (data["status"] == "transmitting") { ipcRenderer.send("request-show-arq-toast-datachannel-opening", {
ipcRenderer.send( data: [data],
"request-show-arq-toast-transmission-transmitting", })} else {
{ data: [data] } ipcRenderer.send(
); "request-show-arq-toast-datachannel-received-opener",
ipcRenderer.send("request-update-transmission-status", { { data: [data] }
data: [data], )};
}); break;
// ARQ TRANSMISSION TRANSMITTED case "waiting":
} else if (data["status"] == "transmitted") { // ARQ waiting
ipcRenderer.send( ipcRenderer.send("request-show-arq-toast-datachannel-waiting", {
"request-show-arq-toast-transmission-transmitted", data: [data],
{ data: [data] } });
); break;
ipcRenderer.send("request-update-transmission-status", {
data: [data], case "receiving":
}); // ARQ RX
ipcRenderer.send("request-update-reception-status", {
data: [data],
});
break;
case "failed":
// ARQ TX Failed
if (data["reason"] == "protocol version missmatch") {
ipcRenderer.send(
"request-show-arq-toast-transmission-failed-ver",
{ data: [data] }
);
} else {
ipcRenderer.send("request-show-arq-toast-transmission-failed", {
data: [data],
});
}
ipcRenderer.send("request-update-transmission-status", {
data: [data],
});
break;
case "received":
// ARQ Received
ipcRenderer.send("request-show-arq-toast-transmission-received", {
data: [data],
});
ipcRenderer.send("request-update-transmission-status", {
data: [data],
});
dataArray = [];
messageArray = [];
socketLog.info(data);
// we need to encode here to do a deep check for checking if file or message
//var encoded_data = atob(data['data'])
var encoded_data = atob_FD(data["data"]);
var splitted_data = encoded_data.split(split_char);
if (splitted_data[0] == "f") {
dataArray.push(data);
}
if (splitted_data[0] == "m") {
messageArray.push(data);
console.log(data);
}
rxBufferLengthGui = dataArray.length;
let Files = {
data: dataArray,
};
ipcRenderer.send("request-update-rx-buffer", Files);
ipcRenderer.send("request-new-msg-received", Files);
//rxMsgBufferLengthGui = messageArray.length;
let Messages = {
data: messageArray,
};
ipcRenderer.send("request-new-msg-received", Messages);
break;
case "transmitting":
// ARQ transmitting
ipcRenderer.send(
"request-show-arq-toast-transmission-transmitting",
{ data: [data] }
);
ipcRenderer.send("request-update-transmission-status", {
data: [data],
});
break;
case "transmitted":
// ARQ transmitted
ipcRenderer.send(
"request-show-arq-toast-transmission-transmitted",
{ data: [data] }
);
ipcRenderer.send("request-update-transmission-status", {
data: [data],
});
break;
} }
} }
} }
@ -488,7 +514,7 @@ client.on("data", function (socketdata) {
}; };
ipcRenderer.send("request-update-rx-buffer", Files); ipcRenderer.send("request-update-rx-buffer", Files);
rxMsgBufferLengthGui = messageArray.length; //rxMsgBufferLengthGui = messageArray.length;
let Messages = { let Messages = {
data: messageArray, data: messageArray,
}; };