mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
first attempt requesting buffer data from tnc
This commit is contained in:
parent
4761140ba9
commit
7a381bf46d
|
@ -469,7 +469,7 @@ export function Spectrum(id, options) {
|
|||
|
||||
// Colors
|
||||
this.colorindex = 0;
|
||||
this.colormap = colormaps[2];
|
||||
this.colormap = colormaps[1];
|
||||
|
||||
// Create main canvas and adjust dimensions to match actual
|
||||
this.canvas = document.getElementById(id);
|
||||
|
|
|
@ -16,6 +16,10 @@ const state = useStateStore(pinia);
|
|||
import { useChatStore } from "../store/chatStore.js";
|
||||
const chat = useChatStore(pinia);
|
||||
|
||||
import {getRxBuffer} from '../js/sock.js'
|
||||
|
||||
|
||||
|
||||
import {
|
||||
Chart as ChartJS,
|
||||
CategoryScale,
|
||||
|
@ -133,6 +137,15 @@ function newChat(obj) {
|
|||
callsign = callsign.toUpperCase();
|
||||
chat.callsign_list.add(callsign);
|
||||
}
|
||||
|
||||
|
||||
function syncWithTNC(){
|
||||
|
||||
getRxBuffer()
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -160,7 +173,7 @@ function newChat(obj) {
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-7 ms-2 p-0">
|
||||
<div class="col-5 ms-2 p-0">
|
||||
<!-- right side of chat nav bar-->
|
||||
|
||||
|
||||
|
@ -181,18 +194,22 @@ function newChat(obj) {
|
|||
|
||||
/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-2 ms-2 p-0">
|
||||
|
||||
<div class="input-group mb-0 p-0 ">
|
||||
|
||||
<button type="button" class="btn btn-secondary" @click="syncWithTNC()">
|
||||
Sync with TNC
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
|
@ -140,6 +140,11 @@ export function newBroadcast(broadcastChannel, chatmessage) {
|
|||
newChatObj.status = "transmitting";
|
||||
newChatObj.attempt = 1;
|
||||
newChatObj.uuid = uuid;
|
||||
newChatObj.duration = 0;
|
||||
newChatObj.nacks = 0;
|
||||
newChatObj.speed_list = "null";
|
||||
|
||||
|
||||
newChatObj._attachments = {
|
||||
[filename]: {
|
||||
content_type: filetype,
|
||||
|
@ -219,6 +224,9 @@ export function newMessage(
|
|||
newChatObj.status = "transmitting";
|
||||
newChatObj.attempt = 1;
|
||||
newChatObj.uuid = uuid;
|
||||
newChatObj.duration = 0;
|
||||
newChatObj.nacks = 0;
|
||||
newChatObj.speed_list = "null";
|
||||
newChatObj._attachments = {
|
||||
[filename]: {
|
||||
content_type: filetype,
|
||||
|
@ -563,23 +571,62 @@ export function newMessageReceived(message, protocol) {
|
|||
/*
|
||||
|
||||
PROTOCOL
|
||||
{
|
||||
"freedata": "tnc-message",
|
||||
"arq": "transmission",
|
||||
"status": "received",
|
||||
"uuid": "58d64f7d-be8c-4578-879b-3b6cb3b60ddf",
|
||||
"percent": 100,
|
||||
"bytesperminute": 536,
|
||||
"compression": 0.5714285714285714,
|
||||
"timestamp": 1695203863,
|
||||
"finished": 0,
|
||||
"mycallsign": "DJ2LS-0",
|
||||
"dxcallsign": "DJ2LS-0",
|
||||
"dxgrid": "------",
|
||||
"data": "bTA7MTttc2cwOzE7MDsxOzA3ZTIwOzE7MTY5NTIwMzgzMzA7MTt0ZXN0MDsxOzA7MTtwbGFpbi90ZXh0MDsxOw==",
|
||||
"irs": "True",
|
||||
"hmac_signed": "False"
|
||||
}
|
||||
{
|
||||
"freedata": "tnc-message",
|
||||
"arq": "transmission",
|
||||
"status": "received",
|
||||
"uuid": "5a3caa57-7feb-4436-853d-e341b085350f",
|
||||
"percent": 100,
|
||||
"bytesperminute": 206,
|
||||
"compression": 0.5833333333333334,
|
||||
"timestamp": 1697048385,
|
||||
"finished": 0,
|
||||
"mycallsign": "DJ2LS-0",
|
||||
"dxcallsign": "DJ2LS-0",
|
||||
"dxgrid": "------",
|
||||
"data": "bTA7MTttc2cwOzE7MDsxOzBlNGE3YjQ2MDsxOzE2OTcwNDgzMTkwOzE7dGVzdDMwOzE7MDsxO3RleHQwOzE7",
|
||||
"irs": "False",
|
||||
"hmac_signed": "False",
|
||||
"duration": 44.385897636413574,
|
||||
"nacks": 1,
|
||||
"speed_list": [
|
||||
{
|
||||
"snr": 0,
|
||||
"bpm": 106,
|
||||
"timestamp": 1697048362
|
||||
},
|
||||
{
|
||||
"snr": -6,
|
||||
"bpm": 104,
|
||||
"timestamp": 1697048370
|
||||
},
|
||||
{
|
||||
"snr": -6,
|
||||
"bpm": 81,
|
||||
"timestamp": 1697048370
|
||||
},
|
||||
{
|
||||
"snr": -5.7,
|
||||
"bpm": 161,
|
||||
"timestamp": 1697048378
|
||||
},
|
||||
{
|
||||
"snr": -5.7,
|
||||
"bpm": 133,
|
||||
"timestamp": 1697048379
|
||||
},
|
||||
{
|
||||
"snr": -5.4,
|
||||
"bpm": 206,
|
||||
"timestamp": 1697048385
|
||||
},
|
||||
{
|
||||
"snr": -5.8,
|
||||
"bpm": 179,
|
||||
"timestamp": 1697048391
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
MESSAGE; decoded from "data"
|
||||
[
|
||||
|
@ -616,6 +663,11 @@ export function newMessageReceived(message, protocol) {
|
|||
newChatObj.status = protocol["status"];
|
||||
newChatObj.attempt = 1;
|
||||
newChatObj.uuid = message[3];
|
||||
newChatObj.duration = protocol["duration"];
|
||||
newChatObj.nacks = protocol["nacks"];
|
||||
newChatObj.speed_list = protocol["speed_list"];
|
||||
|
||||
|
||||
newChatObj._attachments = {
|
||||
[message[6]]: {
|
||||
content_type: message[7],
|
||||
|
|
|
@ -167,7 +167,7 @@ client.on("data", function (socketdata) {
|
|||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(data)
|
||||
if (data["command"] == "tnc_state") {
|
||||
//console.log(data)
|
||||
// set length of RX Buffer to global variable
|
||||
|
@ -253,7 +253,7 @@ client.on("data", function (socketdata) {
|
|||
arq_rx_frame_n_bursts: data["arq_rx_frame_n_bursts"],
|
||||
arq_rx_n_current_arq_frame: data["arq_rx_n_current_arq_frame"],
|
||||
arq_n_arq_frames_per_data_frame:
|
||||
data["arq_n_arq_frames_per_data_frame"],
|
||||
data["arq_n_arq_frames_per_data_frame"],
|
||||
arq_bytes_per_minute: data["arq_bytes_per_minute"],
|
||||
arq_compression_factor: data["arq_compression_factor"],
|
||||
routing_table: data["routing_table"],
|
||||
|
@ -486,36 +486,6 @@ client.on("data", function (socketdata) {
|
|||
}
|
||||
}
|
||||
|
||||
// ----------- catch tnc info messages END -----------
|
||||
|
||||
// if we manually checking for the rx buffer we are getting an array of multiple data
|
||||
if (data["command"] == "rx_buffer") {
|
||||
console.log(data);
|
||||
// iterate through buffer list and sort it to file or message array
|
||||
dataArray = [];
|
||||
messageArray = [];
|
||||
|
||||
for (var i = 0; i < data["data-array"].length; i++) {
|
||||
try {
|
||||
// we need to encode here to do a deep check for checking if file or message
|
||||
//var encoded_data = atob(data['data-array'][i]['data'])
|
||||
var encoded_data = atob_FD(data["data-array"][i]["data"]);
|
||||
var splitted_data = encoded_data.split(split_char);
|
||||
|
||||
if (splitted_data[0] == "m") {
|
||||
messageArray.push(data["data-array"][i]);
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
let Messages = {
|
||||
data: messageArray,
|
||||
};
|
||||
////ipcRenderer.send('request-update-rx-msg-buffer', Messages);
|
||||
//ipcRenderer.send("request-new-msg-received", Messages);
|
||||
}
|
||||
}
|
||||
|
||||
//finally delete message buffer
|
||||
|
@ -766,10 +736,8 @@ export function stopTransmission() {
|
|||
export function getRxBuffer() {
|
||||
var command = '{"type" : "get", "command" : "rx_buffer"}';
|
||||
|
||||
// call command only if new data arrived
|
||||
if (rxBufferLengthGui != rxBufferLengthTnc) {
|
||||
writeTncCommand(command);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// START BEACON
|
||||
|
|
|
@ -1,6 +1,15 @@
|
|||
import {Spectrum} from "../assets/waterfall/spectrum.js"
|
||||
|
||||
|
||||
import { setActivePinia } from "pinia";
|
||||
import pinia from "../store/index";
|
||||
setActivePinia(pinia);
|
||||
|
||||
import { useSettingsStore } from "../store/settingsStore.js";
|
||||
const settings = useSettingsStore(pinia);
|
||||
|
||||
|
||||
|
||||
var spectrum = new Object
|
||||
|
||||
export function initWaterfall(){
|
||||
|
@ -9,7 +18,8 @@ export function initWaterfall(){
|
|||
wf_rows: 192, //Assuming 1 row = 1 pixe1, 192 is the height of the spectrum container
|
||||
});
|
||||
|
||||
//spectrum.setColorMap(config.wftheme);
|
||||
console.log(settings.wftheme)
|
||||
spectrum.setColorMap(settings.wftheme);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -717,7 +717,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -1090,6 +1090,19 @@ class DATA:
|
|||
maxsize=RX_BUFFER.maxsize
|
||||
)
|
||||
try:
|
||||
# RX_BUFFER[0] = transmission uuid
|
||||
# RX_BUFFER[1] = timestamp
|
||||
# RX_BUFFER[2] = dxcallsign
|
||||
# RX_BUFFER[3] = dxgrid
|
||||
# RX_BUFFER[4] = data
|
||||
# RX_BUFFER[5] = hmac signed
|
||||
# RX_BUFFER[6] = compression factor
|
||||
# RX_BUFFER[7] = bytes per minute
|
||||
# RX_BUFFER[8] = duration
|
||||
# RX_BUFFER[9] = self.frame_nack_counter
|
||||
# RX_BUFFER[10] = speed list stats
|
||||
|
||||
|
||||
RX_BUFFER.put(
|
||||
[
|
||||
self.transmission_uuid,
|
||||
|
@ -1097,6 +1110,12 @@ class DATA:
|
|||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
base64_data,
|
||||
signed,
|
||||
ARQ.arq_compression_factor,
|
||||
ARQ.bytes_per_minute,
|
||||
duration,
|
||||
self.frame_nack_counter,
|
||||
ARQ.speed_list
|
||||
]
|
||||
)
|
||||
except Exception as e:
|
||||
|
@ -1151,7 +1170,10 @@ class DATA:
|
|||
dxgrid=str(Station.dxgrid, "UTF-8"),
|
||||
data=base64_data,
|
||||
irs=helpers.bool_to_string(self.is_IRS),
|
||||
hmac_signed=signed
|
||||
hmac_signed=signed,
|
||||
duration=duration,
|
||||
nacks=self.frame_nack_counter,
|
||||
speed_list=ARQ.speed_list
|
||||
)
|
||||
|
||||
if TNC.enable_stats:
|
||||
|
@ -1476,7 +1498,9 @@ class DATA:
|
|||
finished=ARQ.arq_seconds_until_finish,
|
||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||
dxcallsign=str(self.dxcallsign, 'UTF-8'),
|
||||
irs=helpers.bool_to_string(self.is_IRS)
|
||||
irs=helpers.bool_to_string(self.is_IRS),
|
||||
nacks=self.frame_nack_counter,
|
||||
speed_list=ARQ.speed_list
|
||||
)
|
||||
|
||||
self.log.info(
|
||||
|
@ -1505,7 +1529,9 @@ class DATA:
|
|||
compression=ARQ.arq_compression_factor,
|
||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||
dxcallsign=str(self.dxcallsign, 'UTF-8'),
|
||||
irs=helpers.bool_to_string(self.is_IRS)
|
||||
irs=helpers.bool_to_string(self.is_IRS),
|
||||
nacks=self.frame_nack_counter,
|
||||
speed_list=ARQ.speed_list
|
||||
)
|
||||
|
||||
self.log.info(
|
||||
|
@ -1532,7 +1558,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
self.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -1587,7 +1613,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -1616,14 +1642,16 @@ class DATA:
|
|||
bytesperminute=ARQ.bytes_per_minute,
|
||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||
dxcallsign=str(self.dxcallsign, 'UTF-8'),
|
||||
irs=helpers.bool_to_string(self.is_IRS)
|
||||
irs=helpers.bool_to_string(self.is_IRS),
|
||||
nacks=self.frame_nack_counter,
|
||||
speed_list=ARQ.speed_list
|
||||
)
|
||||
|
||||
Station.dxgrid = b'------'
|
||||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -1638,7 +1666,9 @@ class DATA:
|
|||
compression=ARQ.arq_compression_factor,
|
||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||
dxcallsign=str(self.dxcallsign, 'UTF-8'),
|
||||
irs=helpers.bool_to_string(self.is_IRS)
|
||||
irs=helpers.bool_to_string(self.is_IRS),
|
||||
nacks=self.frame_nack_counter,
|
||||
speed_list=ARQ.speed_list
|
||||
)
|
||||
# Update data_channel timestamp
|
||||
self.arq_session_last_received = int(time.time())
|
||||
|
@ -1660,7 +1690,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -1913,7 +1943,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -1987,7 +2017,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -2255,7 +2285,9 @@ class DATA:
|
|||
compression=ARQ.arq_compression_factor,
|
||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||
dxcallsign=str(self.dxcallsign, 'UTF-8'),
|
||||
irs=helpers.bool_to_string(self.is_IRS)
|
||||
irs=helpers.bool_to_string(self.is_IRS),
|
||||
nacks=self.frame_nack_counter,
|
||||
speed_list=ARQ.speed_list
|
||||
)
|
||||
|
||||
self.log.warning(
|
||||
|
@ -2404,7 +2436,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
@ -2515,7 +2547,7 @@ class DATA:
|
|||
helpers.add_to_heard_stations(
|
||||
Station.dxcallsign,
|
||||
Station.dxgrid,
|
||||
"DATA-CHANNEL",
|
||||
"DATA",
|
||||
ModemParam.snr,
|
||||
ModemParam.frequency_offset,
|
||||
HamlibParam.hamlib_frequency,
|
||||
|
|
129
tnc/sock.py
129
tnc/sock.py
|
@ -816,33 +816,32 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
|||
|
||||
def tnc_get_mesh_routing_table(self, received_json):
|
||||
try:
|
||||
if not RX_BUFFER.empty():
|
||||
output = {
|
||||
"command": "routing_table",
|
||||
"routes": [],
|
||||
}
|
||||
output = {
|
||||
"command": "routing_table",
|
||||
"routes": [],
|
||||
}
|
||||
|
||||
for _, route in enumerate(MeshParam.routing_table):
|
||||
if MeshParam.routing_table[_][0].hex() == helpers.get_crc_24(b"direct").hex():
|
||||
router = "direct"
|
||||
else:
|
||||
router = MeshParam.routing_table[_][0].hex()
|
||||
output["routes"].append(
|
||||
{
|
||||
"dxcall": MeshParam.routing_table[_][0].hex(),
|
||||
"router": router,
|
||||
"hops": MeshParam.routing_table[_][2],
|
||||
"snr": MeshParam.routing_table[_][3],
|
||||
"score": MeshParam.routing_table[_][4],
|
||||
"timestamp": MeshParam.routing_table[_][5],
|
||||
}
|
||||
)
|
||||
for _, route in enumerate(MeshParam.routing_table):
|
||||
if MeshParam.routing_table[_][0].hex() == helpers.get_crc_24(b"direct").hex():
|
||||
router = "direct"
|
||||
else:
|
||||
router = MeshParam.routing_table[_][0].hex()
|
||||
output["routes"].append(
|
||||
{
|
||||
"dxcall": MeshParam.routing_table[_][0].hex(),
|
||||
"router": router,
|
||||
"hops": MeshParam.routing_table[_][2],
|
||||
"snr": MeshParam.routing_table[_][3],
|
||||
"score": MeshParam.routing_table[_][4],
|
||||
"timestamp": MeshParam.routing_table[_][5],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
jsondata = json.dumps(output)
|
||||
# self.request.sendall(bytes(jsondata, encoding))
|
||||
SOCKET_QUEUE.put(jsondata)
|
||||
command_response("routing_table", True)
|
||||
jsondata = json.dumps(output)
|
||||
# self.request.sendall(bytes(jsondata, encoding))
|
||||
SOCKET_QUEUE.put(jsondata)
|
||||
command_response("routing_table", True)
|
||||
|
||||
except Exception as err:
|
||||
command_response("routing_table", False)
|
||||
|
@ -855,26 +854,72 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
|||
def tnc_get_rx_buffer(self, received_json):
|
||||
try:
|
||||
if not RX_BUFFER.empty():
|
||||
output = {
|
||||
"command": "rx_buffer",
|
||||
"data-array": [],
|
||||
}
|
||||
# TODO: REMOVE DEPRECATED MESSAGES
|
||||
#output = {
|
||||
# "command": "rx_buffer",
|
||||
# "data-array": [],
|
||||
#}#
|
||||
|
||||
#for _buffer_length in range(RX_BUFFER.qsize()):
|
||||
# base64_data = RX_BUFFER.queue[_buffer_length][4]
|
||||
# output["data-array"].append(
|
||||
# {
|
||||
# "uuid": RX_BUFFER.queue[_buffer_length][0],
|
||||
# "timestamp": RX_BUFFER.queue[_buffer_length][1],
|
||||
# "dxcallsign": str(RX_BUFFER.queue[_buffer_length][2], "utf-8"),
|
||||
# "dxgrid": str(RX_BUFFER.queue[_buffer_length][3], "utf-8"),
|
||||
# "data": base64_data,
|
||||
# }
|
||||
# )
|
||||
#jsondata = json.dumps(output)
|
||||
## self.request.sendall(bytes(jsondata, encoding))
|
||||
#SOCKET_QUEUE.put(jsondata)
|
||||
#command_response("rx_buffer", True)
|
||||
|
||||
|
||||
# REQUEST REQUEST RX BUFFER AGAIN
|
||||
# NEW BEHAVIOUR IS, PUSHING DATA TO NETWORK LIKE WE RECEIVED IT
|
||||
# RX_BUFFER[0] = transmission uuid
|
||||
# RX_BUFFER[1] = timestamp
|
||||
# RX_BUFFER[2] = dxcallsign
|
||||
# RX_BUFFER[3] = dxgrid
|
||||
# RX_BUFFER[4] = data
|
||||
# RX_BUFFER[5] = hmac signed
|
||||
# RX_BUFFER[6] = compression factor
|
||||
# RX_BUFFER[7] = bytes per minute
|
||||
# RX_BUFFER[8] = duration
|
||||
# RX_BUFFER[9] = self.frame_nack_counter
|
||||
# RX_BUFFER[10] = speed list stats
|
||||
for _buffer_length in range(RX_BUFFER.qsize()):
|
||||
base64_data = RX_BUFFER.queue[_buffer_length][4]
|
||||
output["data-array"].append(
|
||||
{
|
||||
"uuid": RX_BUFFER.queue[_buffer_length][0],
|
||||
"timestamp": RX_BUFFER.queue[_buffer_length][1],
|
||||
"dxcallsign": str(RX_BUFFER.queue[_buffer_length][2], "utf-8"),
|
||||
"dxgrid": str(RX_BUFFER.queue[_buffer_length][3], "utf-8"),
|
||||
"data": base64_data,
|
||||
}
|
||||
)
|
||||
jsondata = json.dumps(output)
|
||||
# self.request.sendall(bytes(jsondata, encoding))
|
||||
SOCKET_QUEUE.put(jsondata)
|
||||
command_response("rx_buffer", True)
|
||||
output = {
|
||||
"freedata" : "tnc-message",
|
||||
"arq" : "transmission",
|
||||
"status" : "received",
|
||||
"uuid" : RX_BUFFER.queue[_buffer_length][0],
|
||||
"percent" : 100,
|
||||
"bytesperminute" : RX_BUFFER.queue[_buffer_length][7],
|
||||
"compression" : RX_BUFFER.queue[_buffer_length][6],
|
||||
"timestamp" : RX_BUFFER.queue[_buffer_length][1],
|
||||
"finished" : 0,
|
||||
"mycallsign" : str(Station.mycallsign, "UTF-8"),
|
||||
"dxcallsign" : str(RX_BUFFER.queue[_buffer_length][2], "utf-8"),
|
||||
"dxgrid" : str(RX_BUFFER.queue[_buffer_length][3], "utf-8"),
|
||||
"data" : RX_BUFFER.queue[_buffer_length][4],
|
||||
"irs" : RX_BUFFER.queue[_buffer_length][5],
|
||||
"hmac_signed" : "False",
|
||||
"duration" : RX_BUFFER.queue[_buffer_length][8],
|
||||
"nacks" : RX_BUFFER.queue[_buffer_length][9],
|
||||
"speed_list" : RX_BUFFER.queue[_buffer_length][10]
|
||||
}
|
||||
|
||||
jsondata = json.dumps(output)
|
||||
SOCKET_QUEUE.put(jsondata)
|
||||
print(jsondata)
|
||||
|
||||
command_response("rx_buffer", True)
|
||||
|
||||
|
||||
|
||||
|
||||
except Exception as err:
|
||||
command_response("rx_buffer", False)
|
||||
|
|
Loading…
Reference in a new issue