mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
repeat frame ack and fixed repeat transmission from gui
This commit is contained in:
parent
11de567ef5
commit
a2552be843
7 changed files with 63 additions and 34 deletions
BIN
dj2ls.png
BIN
dj2ls.png
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "FreeDATA",
|
||||
"version": "0.3.2-alpha.2",
|
||||
"version": "0.3.2-alpha.3",
|
||||
"description": "FreeDATA ",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
@ -28,6 +28,7 @@
|
|||
},
|
||||
"homepage": "https://freedata.app",
|
||||
"dependencies": {
|
||||
"blob-util": "^2.0.2",
|
||||
"bootstrap": "^5.1.3",
|
||||
"bootstrap-icons": "^1.8.1",
|
||||
"bootswatch": "^5.1.3",
|
||||
|
|
|
@ -6,6 +6,7 @@ const {
|
|||
v4: uuidv4
|
||||
} = require('uuid');
|
||||
const utf8 = require('utf8');
|
||||
const blobUtil = require('blob-util')
|
||||
// https://stackoverflow.com/a/26227660
|
||||
var appDataFolder = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Application Support' : process.env.HOME + "/.config")
|
||||
var configFolder = path.join(appDataFolder, "FreeDATA");
|
||||
|
@ -249,6 +250,13 @@ db.post({
|
|||
element.scrollTo(0, element.scrollHeight);
|
||||
// clear input
|
||||
document.getElementById('chatModuleMessage').value = ''
|
||||
|
||||
// after adding file data to our attachment varible, delete it from global
|
||||
filetype = '';
|
||||
file = '';
|
||||
filename = '';
|
||||
|
||||
|
||||
})
|
||||
// cleanup after transmission
|
||||
filetype = '';
|
||||
|
@ -476,8 +484,8 @@ update_chat = function(obj) {
|
|||
</div>
|
||||
`;
|
||||
} else {
|
||||
var filename = ''
|
||||
var fileheader = ''
|
||||
var filename = '';
|
||||
var fileheader = '';
|
||||
}
|
||||
} catch {
|
||||
console.log("error with database parsing...")
|
||||
|
@ -582,7 +590,7 @@ update_chat = function(obj) {
|
|||
|
||||
|
||||
// CHECK FOR NEW LINE AND REPLACE WITH <br>
|
||||
var message_html = obj.msg.replace('\n', "<br>");
|
||||
var message_html = obj.msg.replaceAll(/\n/g, "<br>");
|
||||
|
||||
|
||||
if (obj.type == 'received') {
|
||||
|
@ -635,6 +643,9 @@ update_chat = function(obj) {
|
|||
|
||||
} else if (document.getElementById('msg-' + obj._id)) {
|
||||
id = "msg-" + obj._id;
|
||||
console.log("element already exists......")
|
||||
|
||||
|
||||
//document.getElementById(id).className = message_class;
|
||||
}
|
||||
// CREATE SAVE TO FOLDER EVENT LISTENER
|
||||
|
@ -667,12 +678,30 @@ update_chat = function(obj) {
|
|||
}).then(function(doc) {
|
||||
// handle doc
|
||||
console.log(doc)
|
||||
|
||||
|
||||
|
||||
|
||||
var filename = Object.keys(obj._attachments)[0]
|
||||
var filetype = obj._attachments[filename]["content_type"]
|
||||
var filetype = filename.content_type
|
||||
|
||||
console.log(filename)
|
||||
console.log(filetype)
|
||||
var file = obj._attachments[filename].data
|
||||
console.log(file)
|
||||
console.log(Object.keys(obj._attachments)[0].data)
|
||||
|
||||
//var file = atob(obj._attachments[filename]["data"])
|
||||
db.getAttachment(obj._id, filename).then(function(data) {
|
||||
console.log(data)
|
||||
var file = atob(data)
|
||||
|
||||
var file = blobUtil.arrayBufferToBinaryString(data)
|
||||
|
||||
// converting back to blob for debugging
|
||||
// length must be equal of file size
|
||||
var blob = blobUtil.binaryStringToBlob(file);
|
||||
console.log(blob)
|
||||
|
||||
|
||||
var data_with_attachment = doc.msg + split_char + filename + split_char + filetype + split_char + file;
|
||||
let Data = {
|
||||
command: "send_message",
|
||||
|
@ -685,6 +714,7 @@ update_chat = function(obj) {
|
|||
};
|
||||
console.log(Data)
|
||||
ipcRenderer.send('run-tnc-command', Data);
|
||||
|
||||
});
|
||||
}).catch(function(err) {
|
||||
console.log(err);
|
||||
|
|
|
@ -23,3 +23,4 @@ body {
|
|||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
|
BIN
test/rx48.raw
Normal file
BIN
test/rx48.raw
Normal file
Binary file not shown.
|
@ -591,7 +591,7 @@ class DATA():
|
|||
structlog.get_logger("structlog").info("[TNC] ARQ | RX | SENDING DATA FRAME ACK", snr=static.SNR, crc=data_frame_crc.hex())
|
||||
txbuffer = [ack_frame]
|
||||
static.TRANSMITTING = True
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,1,0,txbuffer])
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,3,100,txbuffer])
|
||||
# wait while transmitting
|
||||
while static.TRANSMITTING:
|
||||
time.sleep(0.01)
|
||||
|
@ -1634,9 +1634,9 @@ class DATA():
|
|||
static.TRANSMITTING = True
|
||||
structlog.get_logger("structlog").info("ENABLE FSK", state=static.ENABLE_FSK)
|
||||
if static.ENABLE_FSK:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',2,500,txbuffer])
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',3,500,txbuffer])
|
||||
else:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,2,500,txbuffer])
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,3,500,txbuffer])
|
||||
# wait while transmitting
|
||||
while static.TRANSMITTING:
|
||||
time.sleep(0.01)
|
||||
|
|
|
@ -337,7 +337,6 @@ class RF():
|
|||
freedv = cast(codec2.api.freedv_open(self.MODE), c_void_p)
|
||||
|
||||
|
||||
|
||||
# get number of bytes per frame for mode
|
||||
bytes_per_frame = int(codec2.api.freedv_get_bits_per_modem_frame(freedv)/8)
|
||||
payload_bytes_per_frame = bytes_per_frame -2
|
||||
|
@ -361,8 +360,7 @@ class RF():
|
|||
|
||||
structlog.get_logger("structlog").debug("TRANSMIT", mode=self.MODE, payload=payload_bytes_per_frame)
|
||||
|
||||
for i in range(1,repeats+1):
|
||||
|
||||
for i in range(0,repeats):
|
||||
# codec2 fsk preamble may be broken - at least it sounds like that so we are disabling it for testing
|
||||
if not self.MODE == 'FSK_LDPC_0' or self.MODE == 200 or self.MODE == 'FSK_LDPC_1' or self.MODE == 201:
|
||||
# write preamble to txbuffer
|
||||
|
@ -370,7 +368,6 @@ class RF():
|
|||
txbuffer += bytes(mod_out_preamble)
|
||||
# create modulaton for n frames in list
|
||||
for n in range(0,len(frames)):
|
||||
|
||||
# create buffer for data
|
||||
buffer = bytearray(payload_bytes_per_frame) # use this if CRC16 checksum is required ( DATA1-3)
|
||||
buffer[:len(frames[n])] = frames[n] # set buffersize to length of data which will be send
|
||||
|
|
Loading…
Reference in a new issue