Merge remote-tracking branch 'origin/ls-gui-single-pager' into ls-gui-single-pager

This commit is contained in:
DJ2LS 2023-08-27 15:52:28 +02:00
commit e3ab15fe50
3 changed files with 50 additions and 38 deletions

View file

@ -831,6 +831,10 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
add_obj_to_database(obj);
update_chat_obj_by_uuid(obj.uuid);
// check for messages which failed and try to transmit them
if (config.enable_auto_retry.toUpperCase() == "TRUE") {
checkForWaitingMessages(obj.dxcallsign);
}
// handle ping-ack
} else if (item.ping == "acknowledge") {
@ -869,7 +873,10 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
obj.new = 0;
add_obj_to_database(obj);
update_chat_obj_by_uuid(obj.uuid);
// check for messages which failed and try to transmit them
if (config.enable_auto_retry.toUpperCase() == "TRUE") {
checkForWaitingMessages(obj.dxcallsign);
}
// handle ARQ transmission
} else if (item.arq == "transmission" && item.status == "received") {
//var encoded_data = atob(item.data);
@ -1068,7 +1075,11 @@ update_chat = function (obj) {
}
// check if wrong status message
if (obj.status == "transmit" && obj.type == "transmit" && obj.percent < 100) {
if (
obj.status == "transmitting" &&
obj.type == "transmit" &&
obj.percent < 100
) {
var TimeDifference = new Date().getTime() / 1000 - obj.timestamp;
if (TimeDifference > 21600) {
//Six hours
@ -1291,6 +1302,17 @@ update_chat = function (obj) {
//get user information
getSetUserInformation(selected_callsign);
getSetUserSharedFolder(selected_callsign);
if (selected_callsign.startsWith("BC-")) {
document
.getElementById("chatModuleMessage")
.setAttribute("maxlength", 16);
//console.log("Setting max message size to 16")
} else {
document
.getElementById("chatModuleMessage")
.setAttribute("maxlength", 524288);
//console.log("Setting max message size to big#")
}
});
// if callsign entry already exists - update
@ -1319,10 +1341,6 @@ update_chat = function (obj) {
if (!document.getElementById("msg-" + obj._id)) {
if (obj.type == "ping") {
// check for messages which failed and try to transmit them
if (config.enable_auto_retry.toUpperCase() == "TRUE") {
checkForWaitingMessages(obj.dxcallsign);
}
//if (obj.new == 1)
//{
// showOsPopUp("Ping from " + obj.dxcallsign,"You've been ping'd!");
@ -1341,10 +1359,6 @@ update_chat = function (obj) {
`;
}
if (obj.type == "beacon") {
// check for messages which failed and try to transmit them
if (config.enable_auto_retry.toUpperCase() == "TRUE") {
checkForWaitingMessages(obj.dxcallsign);
}
var new_message = `
<div class="p-0 rounded m-auto mt-1 w-50 bg-info bg-gradient" id="msg-${obj._id}">
<p class="text-small text-white text-break" style="font-size: 0.7rem;"><i class="m-3 bi bi-broadcast"></i>snr: ${obj.snr} - ${timestamp} </p>
@ -2500,14 +2514,8 @@ function getSetUserInformation(selected_callsign) {
if (selected_callsign.startsWith("BC-")) {
var userIcon = defaultGroupIcon;
document
.getElementById("chatModuleMessage")
.setAttribute("maxlength", 16);
} else {
var userIcon = defaultUserIcon;
document
.getElementById("chatModuleMessage")
.setAttribute("maxlength", 524288);
}
document.getElementById("user-image-" + selected_callsign).src =
@ -2569,15 +2577,9 @@ function getSetUserInformation(selected_callsign) {
console.log(err);
if (selected_callsign.startsWith("BC-")) {
document
.getElementById("chatModuleMessage")
.setAttribute("maxlength", 16);
var userIcon = defaultGroupIcon;
} else {
var userIcon = defaultUserIcon;
document
.getElementById("chatModuleMessage")
.setAttribute("maxlength", 524288);
}
// Callsign list elements
@ -2810,7 +2812,6 @@ function changeGuiDesign(design) {
}
function checkForWaitingMessages(dxcall) {
console.log(dxcall);
db.find({
selector: {
dxcallsign: dxcall,
@ -2820,6 +2821,9 @@ function checkForWaitingMessages(dxcall) {
},
})
.then(function (result) {
console.log(
"Found " + result.docs.length + " messages waiting for " + dxcall,
);
// handle result
if (result.docs.length > 0) {
// only want to process the first available item object, then return
@ -2854,7 +2858,7 @@ function checkForWaitingMessages(dxcall) {
}
return;
} else {
console.log("nope");
//console.log("nope");
}
})
.catch(function (err) {

View file

@ -875,7 +875,10 @@ class RF:
# we need to disable this if in testmode as its causing problems with FIFO it seems
if not TESTMODE:
ModemParam.is_codec2_traffic = True
if not ModemParam.channel_busy:
self.log.debug("[MDM] Setting channel_busy since codec2 data detected")
ModemParam.channel_busy=True
ModemParam.channel_busy_delay+=10
self.log.debug(
"[MDM] [demod_audio] modem state", mode=mode_name, rx_status=rx_status,
sync_flag=codec2.api.rx_sync_flags_to_text[rx_status]
@ -1261,7 +1264,7 @@ class RF:
whether the channel is "busy."
"""
# Initialize channel_busy_delay counter
channel_busy_delay = 0
#channel_busy_delay = 0
# Initialize dbfs counter
rms_counter = 0
@ -1343,6 +1346,9 @@ class RF:
slot3 = [120, 176]
slot4 = [176, 231]
slot5 = [231, len(dfftlist)]
# Set to true if we should increment delay count; else false to decrement
addDelay=False
for range in [slot1, slot2, slot3, slot4, slot5]:
range_start = range[0]
@ -1354,22 +1360,23 @@ class RF:
# If we have a signal, increment our channel_busy delay counter
# so we have a smoother state toggle
if np.sum(slotdfft[slotdfft > avg + 15]) >= 200 and not TNC.transmitting:
ModemParam.channel_busy = True
addDelay=True
ModemParam.channel_busy_slot[slot] = True
# Limit delay counter to a maximum of 200. The higher this value,
# the longer we will wait until releasing state
channel_busy_delay = min(channel_busy_delay + 10, 200)
else:
# Decrement channel busy counter if no signal has been detected.
channel_busy_delay = max(channel_busy_delay - 1, 0)
# When our channel busy counter reaches 0, toggle state to False
if channel_busy_delay == 0:
ModemParam.channel_busy = False
ModemParam.channel_busy_slot[slot] = False
ModemParam.channel_busy_slot[slot] = False
# increment slot
slot += 1
if (addDelay):
# Limit delay counter to a maximum of 200. The higher this value,
# the longer we will wait until releasing state
ModemParam.channel_busy = True
ModemParam.channel_busy_delay = min(ModemParam.channel_busy_delay + 10, 200)
else:
# Decrement channel busy counter if no signal has been detected.
ModemParam.channel_busy_delay = max(ModemParam.channel_busy_delay - 1, 0)
# When our channel busy counter reaches 0, toggle state to False
if ModemParam.channel_busy_delay == 0:
ModemParam.channel_busy = False
AudioParam.fft = dfftlist[:315] # 315 --> bandwidth 3200
except Exception as err:
self.log.error(f"[MDM] calculate_fft: Exception: {err}")

View file

@ -106,6 +106,7 @@ class ModemParam:
tx_delay: int = 0 # delay in ms before sending modulation for triggering VOX for example or slow PTT radios
enable_scatter: bool = False
scatter = []
channel_busy_delay = 0
@dataclass
class Station: