redesign of message transmission, implement retransmit

This commit is contained in:
DJ2LS 2023-10-18 14:29:51 +02:00
parent 1a6c41a479
commit 34a4b30f10
3 changed files with 55 additions and 33 deletions

View file

@ -115,24 +115,10 @@ export function newBroadcast(broadcastChannel, chatmessage) {
// slice uuid for reducing overhead // slice uuid for reducing overhead
uuid = uuid.slice(-4); uuid = uuid.slice(-4);
var data_with_attachment =
timestamp +
split_char +
chatmessage +
split_char +
filename +
split_char +
filetype +
split_char +
file;
var tnc_command = "broadcast";
sendMessage(dxcallsign, data_with_attachment, checksum, uuid, tnc_command);
let newChatObj = new Object(); let newChatObj = new Object();
newChatObj.command = "msg"; newChatObj.command = "broadcast";
newChatObj.hmac_signed = false; newChatObj.hmac_signed = false;
newChatObj.percent = 0; newChatObj.percent = 0;
newChatObj.bytesperminute; newChatObj.bytesperminute;
@ -159,6 +145,8 @@ export function newBroadcast(broadcastChannel, chatmessage) {
}, },
}; };
sendMessage(newChatObj)
addObjToDatabase(newChatObj); addObjToDatabase(newChatObj);
} }
@ -199,20 +187,6 @@ export function newMessage(
// slice uuid for reducing overhead // slice uuid for reducing overhead
uuid = uuid.slice(-8); uuid = uuid.slice(-8);
var data_with_attachment =
timestamp +
split_char +
chatmessage +
split_char +
filename +
split_char +
filetype +
split_char +
file;
var tnc_command = "msg";
sendMessage(dxcallsign, data_with_attachment, checksum, uuid, tnc_command);
let newChatObj = new Object(); let newChatObj = new Object();
@ -241,6 +215,7 @@ export function newMessage(
}, },
}; };
sendMessage(newChatObj);
addObjToDatabase(newChatObj); addObjToDatabase(newChatObj);
} }
@ -265,10 +240,25 @@ function sortChatList() {
//repeat a message //repeat a message
export function repeatMessageTransmission(id) { export function repeatMessageTransmission(id) {
console.log(id);
// 1. get message object by ID // 1. get message object by ID
// 2. Upsert Attempts // 2. Upsert Attempts
// 3. send message // 3. send message
db.find({
selector: {
_id: id,
},
}).then(function (result){
console.log(result)
let obj = result.docs[0]
console.log(obj)
obj.attempt += 1
databaseUpsert(obj.uuid, "attempt", obj.attempt);
updateUnsortedChatListEntry(obj.uuid, "attempt", obj.attempt);
sendMessage(obj)
}).catch(function (err) {
console.log(err);
});
} }
// delete a message from databse and gui // delete a message from databse and gui
@ -403,6 +393,7 @@ if (typeof dxcallsign !== 'undefined'){
if(chat.sorted_chat_list[dxcallsign][key].is_new){ if(chat.sorted_chat_list[dxcallsign][key].is_new){
item_array.push(chat.sorted_chat_list[dxcallsign][key]) item_array.push(chat.sorted_chat_list[dxcallsign][key])
new_counter += 1 new_counter += 1
} }
total_counter += 1 total_counter += 1
} }
@ -612,6 +603,8 @@ export function deleteChatByCallsign(callsign) {
deleteFromDatabaseByCallsign(callsign); deleteFromDatabaseByCallsign(callsign);
} }
function deleteFromDatabaseByCallsign(callsign) { function deleteFromDatabaseByCallsign(callsign) {
db.find({ db.find({
selector: { selector: {

View file

@ -595,8 +595,36 @@ function sendFile(
} }
// Send Message // Send Message
export function sendMessage(dxcallsign, data, checksum, uuid, command) { export function sendMessage(obj) {
data = btoa_FD(
let dxcallsign = obj.dxcallsign
let checksum = obj.checksum
let uuid = obj.uuid
let command = obj.command
let filename = Object.keys(obj._attachments)[0]
//let filetype = filename.split(".")[1]
let filetype = obj._attachments[filename].content_type
let file = obj._attachments[filename].data
//console.log(obj._attachments)
//console.log(filename)
//console.log(filetype)
//console.log(file)
let data_with_attachment =
obj.timestamp +
split_char +
obj.msg +
split_char +
filename +
split_char +
filetype +
split_char +
file;
let data = btoa_FD(
"m" + "m" +
split_char + split_char +
command + command +
@ -605,7 +633,7 @@ export function sendMessage(dxcallsign, data, checksum, uuid, command) {
split_char + split_char +
uuid + uuid +
split_char + split_char +
data, data_with_attachment,
); );
// TODO: REMOVE mode and frames from TNC! // TODO: REMOVE mode and frames from TNC!

View file

@ -81,5 +81,6 @@ export const useChatStore = defineStore("chatStore", () => {
beaconLabelArray, beaconLabelArray,
unsorted_beacon_list, unsorted_beacon_list,
sorted_beacon_list, sorted_beacon_list,
}; };
}); });