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
|
// Colors
|
||||||
this.colorindex = 0;
|
this.colorindex = 0;
|
||||||
this.colormap = colormaps[2];
|
this.colormap = colormaps[1];
|
||||||
|
|
||||||
// Create main canvas and adjust dimensions to match actual
|
// Create main canvas and adjust dimensions to match actual
|
||||||
this.canvas = document.getElementById(id);
|
this.canvas = document.getElementById(id);
|
||||||
|
|
|
@ -16,6 +16,10 @@ const state = useStateStore(pinia);
|
||||||
import { useChatStore } from "../store/chatStore.js";
|
import { useChatStore } from "../store/chatStore.js";
|
||||||
const chat = useChatStore(pinia);
|
const chat = useChatStore(pinia);
|
||||||
|
|
||||||
|
import {getRxBuffer} from '../js/sock.js'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Chart as ChartJS,
|
Chart as ChartJS,
|
||||||
CategoryScale,
|
CategoryScale,
|
||||||
|
@ -133,6 +137,15 @@ function newChat(obj) {
|
||||||
callsign = callsign.toUpperCase();
|
callsign = callsign.toUpperCase();
|
||||||
chat.callsign_list.add(callsign);
|
chat.callsign_list.add(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function syncWithTNC(){
|
||||||
|
|
||||||
|
getRxBuffer()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -160,7 +173,7 @@ function newChat(obj) {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-7 ms-2 p-0">
|
<div class="col-5 ms-2 p-0">
|
||||||
<!-- right side of chat nav bar-->
|
<!-- right side of chat nav bar-->
|
||||||
|
|
||||||
|
|
||||||
|
@ -181,18 +194,22 @@ function newChat(obj) {
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -140,6 +140,11 @@ export function newBroadcast(broadcastChannel, chatmessage) {
|
||||||
newChatObj.status = "transmitting";
|
newChatObj.status = "transmitting";
|
||||||
newChatObj.attempt = 1;
|
newChatObj.attempt = 1;
|
||||||
newChatObj.uuid = uuid;
|
newChatObj.uuid = uuid;
|
||||||
|
newChatObj.duration = 0;
|
||||||
|
newChatObj.nacks = 0;
|
||||||
|
newChatObj.speed_list = "null";
|
||||||
|
|
||||||
|
|
||||||
newChatObj._attachments = {
|
newChatObj._attachments = {
|
||||||
[filename]: {
|
[filename]: {
|
||||||
content_type: filetype,
|
content_type: filetype,
|
||||||
|
@ -219,6 +224,9 @@ export function newMessage(
|
||||||
newChatObj.status = "transmitting";
|
newChatObj.status = "transmitting";
|
||||||
newChatObj.attempt = 1;
|
newChatObj.attempt = 1;
|
||||||
newChatObj.uuid = uuid;
|
newChatObj.uuid = uuid;
|
||||||
|
newChatObj.duration = 0;
|
||||||
|
newChatObj.nacks = 0;
|
||||||
|
newChatObj.speed_list = "null";
|
||||||
newChatObj._attachments = {
|
newChatObj._attachments = {
|
||||||
[filename]: {
|
[filename]: {
|
||||||
content_type: filetype,
|
content_type: filetype,
|
||||||
|
@ -563,23 +571,62 @@ export function newMessageReceived(message, protocol) {
|
||||||
/*
|
/*
|
||||||
|
|
||||||
PROTOCOL
|
PROTOCOL
|
||||||
{
|
{
|
||||||
"freedata": "tnc-message",
|
"freedata": "tnc-message",
|
||||||
"arq": "transmission",
|
"arq": "transmission",
|
||||||
"status": "received",
|
"status": "received",
|
||||||
"uuid": "58d64f7d-be8c-4578-879b-3b6cb3b60ddf",
|
"uuid": "5a3caa57-7feb-4436-853d-e341b085350f",
|
||||||
"percent": 100,
|
"percent": 100,
|
||||||
"bytesperminute": 536,
|
"bytesperminute": 206,
|
||||||
"compression": 0.5714285714285714,
|
"compression": 0.5833333333333334,
|
||||||
"timestamp": 1695203863,
|
"timestamp": 1697048385,
|
||||||
"finished": 0,
|
"finished": 0,
|
||||||
"mycallsign": "DJ2LS-0",
|
"mycallsign": "DJ2LS-0",
|
||||||
"dxcallsign": "DJ2LS-0",
|
"dxcallsign": "DJ2LS-0",
|
||||||
"dxgrid": "------",
|
"dxgrid": "------",
|
||||||
"data": "bTA7MTttc2cwOzE7MDsxOzA3ZTIwOzE7MTY5NTIwMzgzMzA7MTt0ZXN0MDsxOzA7MTtwbGFpbi90ZXh0MDsxOw==",
|
"data": "bTA7MTttc2cwOzE7MDsxOzBlNGE3YjQ2MDsxOzE2OTcwNDgzMTkwOzE7dGVzdDMwOzE7MDsxO3RleHQwOzE7",
|
||||||
"irs": "True",
|
"irs": "False",
|
||||||
"hmac_signed": "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"
|
MESSAGE; decoded from "data"
|
||||||
[
|
[
|
||||||
|
@ -616,6 +663,11 @@ export function newMessageReceived(message, protocol) {
|
||||||
newChatObj.status = protocol["status"];
|
newChatObj.status = protocol["status"];
|
||||||
newChatObj.attempt = 1;
|
newChatObj.attempt = 1;
|
||||||
newChatObj.uuid = message[3];
|
newChatObj.uuid = message[3];
|
||||||
|
newChatObj.duration = protocol["duration"];
|
||||||
|
newChatObj.nacks = protocol["nacks"];
|
||||||
|
newChatObj.speed_list = protocol["speed_list"];
|
||||||
|
|
||||||
|
|
||||||
newChatObj._attachments = {
|
newChatObj._attachments = {
|
||||||
[message[6]]: {
|
[message[6]]: {
|
||||||
content_type: message[7],
|
content_type: message[7],
|
||||||
|
|
|
@ -167,7 +167,7 @@ client.on("data", function (socketdata) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(data)
|
||||||
if (data["command"] == "tnc_state") {
|
if (data["command"] == "tnc_state") {
|
||||||
//console.log(data)
|
//console.log(data)
|
||||||
// set length of RX Buffer to global variable
|
// set length of RX Buffer to global variable
|
||||||
|
@ -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
|
//finally delete message buffer
|
||||||
|
@ -766,10 +736,8 @@ export function stopTransmission() {
|
||||||
export function getRxBuffer() {
|
export function getRxBuffer() {
|
||||||
var command = '{"type" : "get", "command" : "rx_buffer"}';
|
var command = '{"type" : "get", "command" : "rx_buffer"}';
|
||||||
|
|
||||||
// call command only if new data arrived
|
|
||||||
if (rxBufferLengthGui != rxBufferLengthTnc) {
|
|
||||||
writeTncCommand(command);
|
writeTncCommand(command);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// START BEACON
|
// START BEACON
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
import {Spectrum} from "../assets/waterfall/spectrum.js"
|
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
|
var spectrum = new Object
|
||||||
|
|
||||||
export function initWaterfall(){
|
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
|
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(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
snr,
|
snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -1090,6 +1090,19 @@ class DATA:
|
||||||
maxsize=RX_BUFFER.maxsize
|
maxsize=RX_BUFFER.maxsize
|
||||||
)
|
)
|
||||||
try:
|
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(
|
RX_BUFFER.put(
|
||||||
[
|
[
|
||||||
self.transmission_uuid,
|
self.transmission_uuid,
|
||||||
|
@ -1097,6 +1110,12 @@ class DATA:
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
base64_data,
|
base64_data,
|
||||||
|
signed,
|
||||||
|
ARQ.arq_compression_factor,
|
||||||
|
ARQ.bytes_per_minute,
|
||||||
|
duration,
|
||||||
|
self.frame_nack_counter,
|
||||||
|
ARQ.speed_list
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -1151,7 +1170,10 @@ class DATA:
|
||||||
dxgrid=str(Station.dxgrid, "UTF-8"),
|
dxgrid=str(Station.dxgrid, "UTF-8"),
|
||||||
data=base64_data,
|
data=base64_data,
|
||||||
irs=helpers.bool_to_string(self.is_IRS),
|
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:
|
if TNC.enable_stats:
|
||||||
|
@ -1476,7 +1498,9 @@ class DATA:
|
||||||
finished=ARQ.arq_seconds_until_finish,
|
finished=ARQ.arq_seconds_until_finish,
|
||||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||||
dxcallsign=str(self.dxcallsign, '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(
|
self.log.info(
|
||||||
|
@ -1505,7 +1529,9 @@ class DATA:
|
||||||
compression=ARQ.arq_compression_factor,
|
compression=ARQ.arq_compression_factor,
|
||||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||||
dxcallsign=str(self.dxcallsign, '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(
|
self.log.info(
|
||||||
|
@ -1532,7 +1558,7 @@ class DATA:
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
self.dxcallsign,
|
self.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -1587,7 +1613,7 @@ class DATA:
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -1616,14 +1642,16 @@ class DATA:
|
||||||
bytesperminute=ARQ.bytes_per_minute,
|
bytesperminute=ARQ.bytes_per_minute,
|
||||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||||
dxcallsign=str(self.dxcallsign, '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'------'
|
Station.dxgrid = b'------'
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -1638,7 +1666,9 @@ class DATA:
|
||||||
compression=ARQ.arq_compression_factor,
|
compression=ARQ.arq_compression_factor,
|
||||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||||
dxcallsign=str(self.dxcallsign, '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
|
# Update data_channel timestamp
|
||||||
self.arq_session_last_received = int(time.time())
|
self.arq_session_last_received = int(time.time())
|
||||||
|
@ -1660,7 +1690,7 @@ class DATA:
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -1913,7 +1943,7 @@ class DATA:
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -1987,7 +2017,7 @@ class DATA:
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -2255,7 +2285,9 @@ class DATA:
|
||||||
compression=ARQ.arq_compression_factor,
|
compression=ARQ.arq_compression_factor,
|
||||||
mycallsign=str(self.mycallsign, 'UTF-8'),
|
mycallsign=str(self.mycallsign, 'UTF-8'),
|
||||||
dxcallsign=str(self.dxcallsign, '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(
|
self.log.warning(
|
||||||
|
@ -2404,7 +2436,7 @@ class DATA:
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
@ -2515,7 +2547,7 @@ class DATA:
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
Station.dxcallsign,
|
Station.dxcallsign,
|
||||||
Station.dxgrid,
|
Station.dxgrid,
|
||||||
"DATA-CHANNEL",
|
"DATA",
|
||||||
ModemParam.snr,
|
ModemParam.snr,
|
||||||
ModemParam.frequency_offset,
|
ModemParam.frequency_offset,
|
||||||
HamlibParam.hamlib_frequency,
|
HamlibParam.hamlib_frequency,
|
||||||
|
|
75
tnc/sock.py
75
tnc/sock.py
|
@ -816,7 +816,6 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
||||||
|
|
||||||
def tnc_get_mesh_routing_table(self, received_json):
|
def tnc_get_mesh_routing_table(self, received_json):
|
||||||
try:
|
try:
|
||||||
if not RX_BUFFER.empty():
|
|
||||||
output = {
|
output = {
|
||||||
"command": "routing_table",
|
"command": "routing_table",
|
||||||
"routes": [],
|
"routes": [],
|
||||||
|
@ -855,27 +854,73 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
||||||
def tnc_get_rx_buffer(self, received_json):
|
def tnc_get_rx_buffer(self, received_json):
|
||||||
try:
|
try:
|
||||||
if not RX_BUFFER.empty():
|
if not RX_BUFFER.empty():
|
||||||
|
# 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()):
|
||||||
output = {
|
output = {
|
||||||
"command": "rx_buffer",
|
"freedata" : "tnc-message",
|
||||||
"data-array": [],
|
"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]
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
jsondata = json.dumps(output)
|
||||||
# self.request.sendall(bytes(jsondata, encoding))
|
|
||||||
SOCKET_QUEUE.put(jsondata)
|
SOCKET_QUEUE.put(jsondata)
|
||||||
|
print(jsondata)
|
||||||
|
|
||||||
command_response("rx_buffer", True)
|
command_response("rx_buffer", True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
command_response("rx_buffer", False)
|
command_response("rx_buffer", False)
|
||||||
log.warning(
|
log.warning(
|
||||||
|
|
Loading…
Reference in a new issue