mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
first attempt with moving data to GUI - callsign broken yet
This commit is contained in:
parent
050bea6ac3
commit
285ad3684d
3 changed files with 49 additions and 16 deletions
|
@ -727,8 +727,27 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
|
||||||
console.log(item.status);
|
console.log(item.status);
|
||||||
let obj = new Object();
|
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
|
//handle ping
|
||||||
if (item.ping == "received") {
|
} else if (item.ping == "received") {
|
||||||
obj.timestamp = parseInt(item.timestamp);
|
obj.timestamp = parseInt(item.timestamp);
|
||||||
obj.dxcallsign = item.dxcallsign;
|
obj.dxcallsign = item.dxcallsign;
|
||||||
obj.dxgrid = item.dxgrid;
|
obj.dxgrid = item.dxgrid;
|
||||||
|
|
16
gui/sock.js
16
gui/sock.js
|
@ -242,6 +242,22 @@ client.on("data", function (socketdata) {
|
||||||
data: [data],
|
data: [data],
|
||||||
});
|
});
|
||||||
break;
|
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"]) {
|
switch (data["cq"]) {
|
||||||
|
|
|
@ -101,7 +101,7 @@ class DATA:
|
||||||
self.rx_n_frames_per_burst = 0
|
self.rx_n_frames_per_burst = 0
|
||||||
self.max_n_frames_per_burst = 1
|
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
|
# Flag to indicate if we received a low bandwidth mode channel opener
|
||||||
self.received_LOW_BANDWIDTH_MODE = False
|
self.received_LOW_BANDWIDTH_MODE = False
|
||||||
|
@ -2978,7 +2978,7 @@ class DATA:
|
||||||
|
|
||||||
|
|
||||||
def received_fec_wakeup(self, data_in: bytes):
|
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")
|
mode = int.from_bytes(bytes(data_in[7:8]), "big")
|
||||||
bursts = int.from_bytes(bytes(data_in[8:9]), "big")
|
bursts = int.from_bytes(bytes(data_in[8:9]), "big")
|
||||||
|
|
||||||
|
@ -2989,40 +2989,38 @@ class DATA:
|
||||||
fec="wakeup",
|
fec="wakeup",
|
||||||
mode=mode,
|
mode=mode,
|
||||||
bursts=bursts,
|
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(
|
self.log.info(
|
||||||
"[TNC] FRAME WAKEUP RCVD ["
|
"[TNC] FRAME WAKEUP RCVD ["
|
||||||
+ str(dxcallsign, "UTF-8")
|
+ str(self.fec_wakeup_callsign, "UTF-8")
|
||||||
+ "] ", mode=mode, bursts=bursts, timeout=timeout,
|
+ "] ", mode=mode, bursts=bursts, timeout=timeout,
|
||||||
)
|
)
|
||||||
|
|
||||||
while time.time() < timeout:
|
while time.time() < timeout:
|
||||||
threading.Event().wait(0.01)
|
threading.Event().wait(0.01)
|
||||||
# TODO: We need a dynamic way of modifying this
|
|
||||||
modem.RECEIVE_DATAC4 = False
|
|
||||||
|
|
||||||
self.log.info(
|
self.log.info(
|
||||||
"[TNC] closing broadcast slot ["
|
"[TNC] closing broadcast slot ["
|
||||||
+ str(dxcallsign, "UTF-8")
|
+ str(self.fec_wakeup_callsign, "UTF-8")
|
||||||
+ "] ", mode=mode, bursts=bursts,
|
+ "] ", 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):
|
def received_fec(self, data_in: bytes):
|
||||||
self.send_data_to_socket_queue(
|
self.send_data_to_socket_queue(
|
||||||
freedata="tnc-message",
|
freedata="tnc-message",
|
||||||
fec="broadcast",
|
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(
|
self.log.info("[TNC] FEC DATA RCVD")
|
||||||
"[TNC] FEC DATA RCVD ["
|
|
||||||
+ str(data_in, "UTF-8")
|
|
||||||
+ "] ",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def received_is_writing(self, data_in: bytes) -> None:
|
def received_is_writing(self, data_in: bytes) -> None:
|
||||||
|
@ -3528,7 +3526,7 @@ class DATA:
|
||||||
self.enqueue_frame_for_tx(
|
self.enqueue_frame_for_tx(
|
||||||
frame_to_tx=[fec_wakeup_frame], c2_mode=codec2.FREEDV_MODE["sig1"].value
|
frame_to_tx=[fec_wakeup_frame], c2_mode=codec2.FREEDV_MODE["sig1"].value
|
||||||
)
|
)
|
||||||
|
time.sleep(1)
|
||||||
fec_frame = bytearray(payload_per_frame)
|
fec_frame = bytearray(payload_per_frame)
|
||||||
fec_frame[:1] = bytes([FR_TYPE.FEC.value])
|
fec_frame[:1] = bytes([FR_TYPE.FEC.value])
|
||||||
fec_frame[1:payload_per_frame] = bytes(payload[:fec_payload_length])
|
fec_frame[1:payload_per_frame] = bytes(payload[:fec_payload_length])
|
||||||
|
|
Loading…
Reference in a new issue