first attempt with moving data to GUI - callsign broken yet

This commit is contained in:
DJ2LS 2023-05-14 22:47:17 +02:00
parent 050bea6ac3
commit 285ad3684d
3 changed files with 49 additions and 16 deletions

View file

@ -727,8 +727,27 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
console.log(item.status);
let obj = new Object();
//handle broadcast
if (item.fec == "broadcast") {
obj.timestamp = Math.floor(Date.now() / 1000);
obj.dxcallsign = item.dxcallsign;
obj.dxgrid = 'null';
obj.uuid = uuidv4().toString();
obj.command = "msg";
obj.checksum = "null";
obj.msg = "null";
obj.status = "received";
obj.snr = item.snr;
obj.type = "broadcast";
obj.filename = "null";
obj.filetype = "null";
obj.file = "null";
console.log(obj)
add_obj_to_database(obj);
update_chat_obj_by_uuid(obj.uuid);
//handle ping
if (item.ping == "received") {
} else if (item.ping == "received") {
obj.timestamp = parseInt(item.timestamp);
obj.dxcallsign = item.dxcallsign;
obj.dxgrid = item.dxgrid;

View file

@ -242,6 +242,22 @@ client.on("data", function (socketdata) {
data: [data],
});
break;
case "broadcast":
// RX'd FEC BROADCAST
var encoded_data = FD.atob_FD(data["data"]);
var splitted_data = encoded_data.split(split_char);
var messageArray = [];
if (splitted_data[0] == "m") {
messageArray.push(data);
console.log(data);
}
let Messages = {
data: messageArray,
};
ipcRenderer.send("request-new-msg-received", Messages);
break;
}
switch (data["cq"]) {

View file

@ -101,7 +101,7 @@ class DATA:
self.rx_n_frames_per_burst = 0
self.max_n_frames_per_burst = 1
self.fec_wakeup_received = False
self.fec_wakeup_callsign = bytes()
# Flag to indicate if we received a low bandwidth mode channel opener
self.received_LOW_BANDWIDTH_MODE = False
@ -2978,7 +2978,7 @@ class DATA:
def received_fec_wakeup(self, data_in: bytes):
dxcallsign = helpers.bytes_to_callsign(bytes(data_in[1:7]))
self.fec_wakeup_callsign = helpers.bytes_to_callsign(bytes(data_in[1:7]))
mode = int.from_bytes(bytes(data_in[7:8]), "big")
bursts = int.from_bytes(bytes(data_in[8:9]), "big")
@ -2989,40 +2989,38 @@ class DATA:
fec="wakeup",
mode=mode,
bursts=bursts,
dxcallsign=str(dxcallsign, "UTF-8")
dxcallsign=str(self.fec_wakeup_callsign, "UTF-8")
)
timeout = time.time() + (self.longest_duration * bursts)
timeout = time.time() + (self.longest_duration * bursts) + 2
self.log.info(
"[TNC] FRAME WAKEUP RCVD ["
+ str(dxcallsign, "UTF-8")
+ str(self.fec_wakeup_callsign, "UTF-8")
+ "] ", mode=mode, bursts=bursts, timeout=timeout,
)
while time.time() < timeout:
threading.Event().wait(0.01)
# TODO: We need a dynamic way of modifying this
modem.RECEIVE_DATAC4 = False
self.log.info(
"[TNC] closing broadcast slot ["
+ str(dxcallsign, "UTF-8")
+ str(self.fec_wakeup_callsign, "UTF-8")
+ "] ", mode=mode, bursts=bursts,
)
# TODO: We need a dynamic way of modifying this
modem.RECEIVE_DATAC4 = False
self.fec_wakeup_callsign = bytes()
def received_fec(self, data_in: bytes):
self.send_data_to_socket_queue(
freedata="tnc-message",
fec="broadcast",
data=str(data_in, "UTF-8")
dxcallsign=str(self.fec_wakeup_callsign, "UTF-8"),
data=base64.b64encode(data_in[1:]).decode("UTF-8")
)
self.log.info(
"[TNC] FEC DATA RCVD ["
+ str(data_in, "UTF-8")
+ "] ",
)
self.log.info("[TNC] FEC DATA RCVD")
def received_is_writing(self, data_in: bytes) -> None:
@ -3528,7 +3526,7 @@ class DATA:
self.enqueue_frame_for_tx(
frame_to_tx=[fec_wakeup_frame], c2_mode=codec2.FREEDV_MODE["sig1"].value
)
time.sleep(1)
fec_frame = bytearray(payload_per_frame)
fec_frame[:1] = bytes([FR_TYPE.FEC.value])
fec_frame[1:payload_per_frame] = bytes(payload[:fec_payload_length])