mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
optimized FSK mode and chat
This commit is contained in:
parent
8f3f046655
commit
b6cf6e7c17
6 changed files with 115 additions and 174 deletions
BIN
dj2ls.png
Normal file
BIN
dj2ls.png
Normal file
Binary file not shown.
|
@ -42,6 +42,7 @@ var filename = '';
|
||||||
var callsign_counter = 0;
|
var callsign_counter = 0;
|
||||||
var selected_callsign = '';
|
var selected_callsign = '';
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
|
|
||||||
var chatDB = path.join(configFolder, 'chatDB')
|
var chatDB = path.join(configFolder, 'chatDB')
|
||||||
// ---- MessageDB
|
// ---- MessageDB
|
||||||
var PouchDB = require('pouchdb');
|
var PouchDB = require('pouchdb');
|
||||||
|
@ -80,6 +81,18 @@ db.find({
|
||||||
});
|
});
|
||||||
// WINDOW LISTENER
|
// WINDOW LISTENER
|
||||||
window.addEventListener('DOMContentLoaded', () => {
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|
||||||
|
|
||||||
|
// theme selector
|
||||||
|
if(config.theme != 'default'){
|
||||||
|
var theme_path = "../node_modules/bootswatch/dist/"+ config.theme +"/bootstrap.min.css";
|
||||||
|
document.getElementById("bootstrap_theme").href = theme_path;
|
||||||
|
} else {
|
||||||
|
var theme_path = "../node_modules/bootstrap/dist/css/bootstrap.min.css";
|
||||||
|
document.getElementById("bootstrap_theme").href = theme_path;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
document.querySelector('emoji-picker').addEventListener("emoji-click", (event) => {
|
document.querySelector('emoji-picker').addEventListener("emoji-click", (event) => {
|
||||||
document.getElementById('chatModuleMessage').setRangeText(event.detail.emoji.unicode)
|
document.getElementById('chatModuleMessage').setRangeText(event.detail.emoji.unicode)
|
||||||
console.log(event.detail);
|
console.log(event.detail);
|
||||||
|
@ -130,7 +143,7 @@ window.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|
||||||
document.addEventListener("keyup", function(event) {
|
document.addEventListener("keyup", function(event) {
|
||||||
// Number 13 == Enter
|
// Number 13 == Enter
|
||||||
if (event.keyCode === 13) {
|
if (event.keyCode === 13 && !event.shiftKey) {
|
||||||
// Cancel the default action, if needed
|
// Cancel the default action, if needed
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
// Trigger the button element with a click
|
// Trigger the button element with a click
|
||||||
|
@ -185,9 +198,9 @@ db.post({
|
||||||
console.log(filename);
|
console.log(filename);
|
||||||
console.log(filetype);
|
console.log(filetype);
|
||||||
var data_with_attachment = chatmessage + split_char + filename + split_char + filetype + split_char + file;
|
var data_with_attachment = chatmessage + split_char + filename + split_char + filetype + split_char + file;
|
||||||
document.getElementById('selectFilesButton').innerHTML = `
|
|
||||||
<i class="bi bi-paperclip" style="font-size: 1.2rem; color: white;"></i>
|
|
||||||
`;
|
document.getElementById('selectFilesButton').innerHTML = ``;
|
||||||
var uuid = uuidv4();
|
var uuid = uuidv4();
|
||||||
console.log(data_with_attachment)
|
console.log(data_with_attachment)
|
||||||
let Data = {
|
let Data = {
|
||||||
|
@ -247,8 +260,7 @@ ipcRenderer.on('return-selected-files', (event, arg) => {
|
||||||
file = arg.data;
|
file = arg.data;
|
||||||
filename = arg.filename;
|
filename = arg.filename;
|
||||||
document.getElementById('selectFilesButton').innerHTML = `
|
document.getElementById('selectFilesButton').innerHTML = `
|
||||||
<i class="bi bi-paperclip" style="font-size: 1.2rem; color: white;"></i>
|
<span class="position-absolute top-0 start-85 translate-middle p-2 bg-danger border border-light rounded-circle">
|
||||||
<span class="position-absolute top-0 start-100 translate-middle p-2 bg-danger border border-light rounded-circle">
|
|
||||||
<span class="visually-hidden">New file selected</span>
|
<span class="visually-hidden">New file selected</span>
|
||||||
</span>
|
</span>
|
||||||
`;
|
`;
|
||||||
|
@ -440,7 +452,7 @@ update_chat = function(obj) {
|
||||||
var shortmsg = obj.type;
|
var shortmsg = obj.type;
|
||||||
} else {
|
} else {
|
||||||
var shortmsg = obj.msg;
|
var shortmsg = obj.msg;
|
||||||
var maxlength = 45;
|
var maxlength = 40;
|
||||||
var shortmsg = shortmsg.length > maxlength ? shortmsg.substring(0, maxlength - 3) + "..." : shortmsg;
|
var shortmsg = shortmsg.length > maxlength ? shortmsg.substring(0, maxlength - 3) + "..." : shortmsg;
|
||||||
|
|
||||||
|
|
||||||
|
@ -569,6 +581,8 @@ update_chat = function(obj) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// CHECK FOR NEW LINE AND REPLACE WITH <br>
|
||||||
|
var message_html = obj.msg.replace('\n', "<br>");
|
||||||
|
|
||||||
|
|
||||||
if (obj.type == 'received') {
|
if (obj.type == 'received') {
|
||||||
|
@ -578,7 +592,7 @@ update_chat = function(obj) {
|
||||||
<div class="card border-light bg-light" id="msg-${obj._id}">
|
<div class="card border-light bg-light" id="msg-${obj._id}">
|
||||||
${fileheader}
|
${fileheader}
|
||||||
<div class="card-body p-0">
|
<div class="card-body p-0">
|
||||||
<p class="card-text p-2 mb-0 text-break text-wrap">${obj.msg}</p>
|
<p class="card-text p-2 mb-0 text-break text-wrap">${message_html}</p>
|
||||||
<p class="text-right mb-0 p-1 text-white" style="text-align: left; font-size : 0.9rem">
|
<p class="text-right mb-0 p-1 text-white" style="text-align: left; font-size : 0.9rem">
|
||||||
<span class="badge bg-light text-muted">${timestamp}</span>
|
<span class="badge bg-light text-muted">${timestamp}</span>
|
||||||
|
|
||||||
|
@ -588,14 +602,17 @@ update_chat = function(obj) {
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (obj.type == 'transmit') {
|
if (obj.type == 'transmit') {
|
||||||
var new_message = `
|
var new_message = `
|
||||||
<div class="ml-auto rounded-3 mt-3 mb-0 w-75" style="margin-left: auto;">
|
<div class="ml-auto rounded-3 mt-3 mb-0 w-75" style="margin-left: auto;">
|
||||||
<!--<p class="font-monospace text-right mb-0 text-muted" style="text-align: right;">${timestamp}</p>-->
|
<!--<p class="font-monospace text-right mb-0 text-muted" style="text-align: right;">${timestamp}</p>-->
|
||||||
<div class="card" id="msg-${obj._id}">
|
<div class="card border-primary" id="msg-${obj._id}">
|
||||||
${fileheader}
|
${fileheader}
|
||||||
<div class="card-body p-0 text-right bg-primary">
|
<div class="card-body p-0 text-right bg-primary">
|
||||||
<p class="card-text p-2 mb-0 text-white text-break text-wrap">${obj.msg}</p>
|
<p class="card-text p-2 mb-0 text-white text-break text-wrap">${message_html}</p>
|
||||||
<p class="text-right mb-0 p-1 text-white" style="text-align: right; font-size : 0.9rem">
|
<p class="text-right mb-0 p-1 text-white" style="text-align: right; font-size : 0.9rem">
|
||||||
<span class="text-light" style="font-size: 0.7rem;">${timestamp} - </span>
|
<span class="text-light" style="font-size: 0.7rem;">${timestamp} - </span>
|
||||||
<span class=" text-white" style="font-size:0.8rem;">${status}</span>
|
<span class=" text-white" style="font-size:0.8rem;">${status}</span>
|
||||||
|
|
|
@ -1,165 +1,79 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<!-- Required meta tags -->
|
<!-- Required meta tags -->
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta http-equiv="Content-Security-Policy" content="script-src 'self';">
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self';">
|
||||||
<!-- Bootstrap CSS -->
|
<!-- Bootstrap CSS -->
|
||||||
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
|
<link rel="stylesheet" id="bootstrap_theme" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
|
||||||
<link rel="stylesheet" href="../node_modules/bootstrap-icons/font/bootstrap-icons.css">
|
<link rel="stylesheet" href="../node_modules/bootstrap-icons/font/bootstrap-icons.css">
|
||||||
<!-- Custom CSS -->
|
<!-- Custom CSS -->
|
||||||
<link rel="stylesheet" type="text/css" href="styles.css" />
|
<link rel="stylesheet" type="text/css" href="styles.css" />
|
||||||
<title>FreeDATA - CHAT</title>
|
<title>FreeDATA - CHAT</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
|
||||||
|
|
||||||
|
<body>
|
||||||
<!-- bootstrap -->
|
<!-- bootstrap -->
|
||||||
<script src="../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
<script src="../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
<!-- chart.js -->
|
<!-- chart.js -->
|
||||||
<script src="../node_modules/chart.js/dist/chart.min.js"></script>
|
<script src="../node_modules/chart.js/dist/chart.min.js"></script>
|
||||||
<script src="../node_modules/chartjs-plugin-annotation/dist/chartjs-plugin-annotation.min.js"></script>
|
<script src="../node_modules/chartjs-plugin-annotation/dist/chartjs-plugin-annotation.min.js"></script>
|
||||||
|
|
||||||
<!--<script type="module" src="../node_modules/emoji-picker-element/index.js"></script>-->
|
<!--<script type="module" src="../node_modules/emoji-picker-element/index.js"></script>-->
|
||||||
|
|
||||||
<script type="module" src="../node_modules/emoji-picker-element/picker.js"></script>
|
<script type="module" src="../node_modules/emoji-picker-element/picker.js"></script>
|
||||||
<script type="module" src="../node_modules/emoji-picker-element/database.js"></script>
|
<script type="module" src="../node_modules/emoji-picker-element/database.js"></script>
|
||||||
|
|
||||||
|
|
||||||
<div class="position-absolute container w-100 h-100 bottom-0 end-0 mb-5" style="z-index:100; display: none" id="emojipickercontainer">
|
<div class="position-absolute container w-100 h-100 bottom-0 end-0 mb-5" style="z-index:100; display: none" id="emojipickercontainer">
|
||||||
<emoji-picker locale="en" class="position-absolute bottom-0 end-0 p-1 mb-2" data-source="../node_modules/emoji-picker-element-data/en/emojibase/data.json"></emoji-picker>
|
<emoji-picker locale="en" class="position-absolute bottom-0 end-0 p-1 mb-2" data-source="../node_modules/emoji-picker-element-data/en/emojibase/data.json"></emoji-picker>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row h-100">
|
<div class="row h-100">
|
||||||
<div class="col-4 p-2 bg-light">
|
<div class="col-4 p-2 bg-light">
|
||||||
<! ------Chats area ---------------------------------------------------------------------->
|
<! ------Chats area ---------------------------------------------------------------------->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container-fluid m-0 p-0">
|
<div class="container-fluid m-0 p-0">
|
||||||
|
|
||||||
<div class="input-group bottom-0 m-0 w-100">
|
<div class="input-group bottom-0 m-0 w-100">
|
||||||
<input class="form-control w-50" maxlength="9" style="text-transform:uppercase;" id="chatModuleNewDxCall" placeholder="DX CALL"></input>
|
<input class="form-control w-50" maxlength="9" style="text-transform:uppercase;" id="chatModuleNewDxCall" placeholder="DX CALL"></input>
|
||||||
<button class="btn btn-sm btn-success w-50" id="createNewChatButton" type="button">Open a new chat</button>
|
<button class="btn btn-sm btn-success w-50" id="createNewChatButton" type="button">Open a new chat</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr class="m-2">
|
<hr class="m-2">
|
||||||
|
<div class="overflow-auto vh-100" id="callsignlist" style="height: calc(100% - 330px);">
|
||||||
<div class="list-group" id="list-tab" role="tablist">
|
<div class="list-group" id="list-tab" role="tablist"> </div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-8 border vh-100 ">
|
<div class="col-8 border vh-100 p-0">
|
||||||
|
|
||||||
<! ------ chat navbar ---------------------------------------------------------------------->
|
<! ------ chat navbar ---------------------------------------------------------------------->
|
||||||
<div class="container-fluid m-2 p-0">
|
<div class="container-fluid m-2 p-0">
|
||||||
|
|
||||||
<div class="input-group bottom-0">
|
<div class="input-group bottom-0">
|
||||||
|
|
||||||
<button class="btn btn-sm btn-secondary me-2" id="ping" type="button">Ping</button>
|
<button class="btn btn-sm btn-secondary me-2" id="ping" type="button">Ping</button>
|
||||||
|
<button id="chatSettingsDropDown" type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"> <i class="bi bi-three-dots-vertical"></i> </button>
|
||||||
|
|
||||||
<button id="chatSettingsDropDown" type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
<i class="bi bi-three-dots-vertical"></i>
|
|
||||||
</button>
|
|
||||||
<ul class="dropdown-menu" aria-labelledby="chatSettingsDropDown">
|
<ul class="dropdown-menu" aria-labelledby="chatSettingsDropDown">
|
||||||
<li><a class="dropdown-item bg-danger text-white" id="delete_selected_chat" href="#">Delete chat</a></li>
|
<li><a class="dropdown-item bg-danger text-white" id="delete_selected_chat" href="#">Delete chat</a></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr class="m-0">
|
<hr class="m-0">
|
||||||
|
|
||||||
<! ------messages area ---------------------------------------------------------------------->
|
<! ------messages area ---------------------------------------------------------------------->
|
||||||
<div class="container overflow-auto" id="message-container" style="height: calc(100% - 115px);">
|
<div class="container overflow-auto" id="message-container" style="height: calc(100% - 110px);">
|
||||||
|
<div class="tab-content" id="nav-tabContent"> </div>
|
||||||
|
<!--<div class="container position-absolute bottom-0">--></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="tab-content" id="nav-tabContent">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--<div class="container position-absolute bottom-0">-->
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<div class="container-fluid mt-2 p-0">
|
<div class="container-fluid mt-2 p-0">
|
||||||
|
|
||||||
<div class="input-group bottom-0 w-100">
|
<div class="input-group bottom-0 w-100">
|
||||||
<!--<input class="form-control" maxlength="8" style="max-width: 6rem; text-transform:uppercase; display:none" id="chatModuleDxCall" placeholder="DX CALL"></input>-->
|
<!--<input class="form-control" maxlength="8" style="max-width: 6rem; text-transform:uppercase; display:none" id="chatModuleDxCall" placeholder="DX CALL"></input>-->
|
||||||
<!--<button class="btn btn-sm btn-primary me-2" id="emojipickerbutton" type="button">-->
|
<!--<button class="btn btn-sm btn-primary me-2" id="emojipickerbutton" type="button">--><i id="emojipickerbutton" class="bi bi-emoji-smile m-1" style="font-size: 1.5rem; color: grey;"></i></button>
|
||||||
<i id="emojipickerbutton" class="bi bi-emoji-smile m-1" style="font-size: 1.5rem; color: grey;"></i></button>
|
<!--<input class="form-control rounded-pill m-1 p-1" id="chatModuleMessage" placeholder="Message - Send with [Enter]"></input>-->
|
||||||
<input class="form-control" id="chatModuleMessage" placeholder="Message"></input>
|
|
||||||
|
<textarea class="form-control rounded-pill m-1 p-1" rows="1" id="chatModuleMessage" placeholder="Message - Send with [Enter]"></textarea>
|
||||||
|
|
||||||
|
|
||||||
|
<!--<button class="btn btn-sm btn-primary me-2" style="width: 3rem" id="selectFilesButton" type="button"><i class="bi bi-paperclip" style="font-size: 1.2rem; color: white;"></i></button>--><i class="bi bi-paperclip m-1" style="font-size: 1.5rem; color: grey;" id="selectFilesButton"></i>
|
||||||
<!--<input class="form-control" type="file" id="selectFiles" style="display: none;">-->
|
<button class="btn btn-sm btn-secondary me-2" style="width: 5rem; display: none" id="sendMessage" type="button"><i class="bi bi-send" style="font-size: 1.2rem; color: white;"></i></button>
|
||||||
<button class="btn btn-sm btn-primary me-2" style="width: 3rem" id="selectFilesButton" type="button"><i class="bi bi-paperclip" style="font-size: 1.2rem; color: white;"></i></button>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button class="btn btn-sm btn-secondary me-2" style="width: 5rem" id="sendMessage" type="button"><i class="bi bi-send" style="font-size: 1.2rem; color: white;"></i></button>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<nav class="navbar fixed-bottom navbar-light bg-light">
|
|
||||||
<div class="container-fluid">
|
|
||||||
|
|
||||||
<div class="input-group bottom-0 w-100">
|
|
||||||
<input class="form-control" maxlength="8" style="max-width: 6rem; text-transform:uppercase" id="chatModuleDxCall" placeholder="DX CALL"></input>
|
|
||||||
<input class="form-control" id="chatModuleMessage" placeholder="Message"></input>
|
|
||||||
|
|
||||||
<button class="btn btn-sm btn-primary me-2" id="emojipickerbutton" type="button"><i class="bi bi-emoji-smile"></i></button>
|
|
||||||
|
|
||||||
<input class="form-control" type="file" id="selectFiles" style="display: none;">
|
|
||||||
<button class="btn btn-sm btn-primary me-2" style="width: 3rem" id="selectFilesButton" type="button"><i class="bi bi-paperclip" style="font-size: 1.2rem; color: white;"></i></button>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button class="btn btn-sm btn-secondary me-2" style="width: 5rem" id="sendMessage" type="button"><i class="bi bi-send" style="font-size: 1.2rem; color: white;"></i></button>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
body {
|
body {
|
||||||
padding-right: 0px !important;
|
padding-right: 0px !important;
|
||||||
overflow-y: hidden !important;
|
overflow-y: hidden !important;
|
||||||
|
overflow-x: hidden !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Progress bars with centered text*/
|
/*Progress bars with centered text*/
|
||||||
|
@ -15,3 +16,10 @@ body {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* hide scrollbar in callsign list */
|
||||||
|
#callsignlist::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -188,8 +188,8 @@ api.FREEDV_MODE_FSK_LDPC_0_ADV.interleave_frames = 0
|
||||||
api.FREEDV_MODE_FSK_LDPC_0_ADV.M = 4
|
api.FREEDV_MODE_FSK_LDPC_0_ADV.M = 4
|
||||||
api.FREEDV_MODE_FSK_LDPC_0_ADV.Rs = 100
|
api.FREEDV_MODE_FSK_LDPC_0_ADV.Rs = 100
|
||||||
api.FREEDV_MODE_FSK_LDPC_0_ADV.Fs = 8000
|
api.FREEDV_MODE_FSK_LDPC_0_ADV.Fs = 8000
|
||||||
api.FREEDV_MODE_FSK_LDPC_0_ADV.first_tone = 1150 # 1250 4fsk, 1500 2fsk
|
api.FREEDV_MODE_FSK_LDPC_0_ADV.first_tone = 1400 # 1150 4fsk, 1500 2fsk
|
||||||
api.FREEDV_MODE_FSK_LDPC_0_ADV.tone_spacing = 100 #200
|
api.FREEDV_MODE_FSK_LDPC_0_ADV.tone_spacing = 120 #200
|
||||||
api.FREEDV_MODE_FSK_LDPC_0_ADV.codename = 'H_128_256_5'.encode('utf-8') # code word
|
api.FREEDV_MODE_FSK_LDPC_0_ADV.codename = 'H_128_256_5'.encode('utf-8') # code word
|
||||||
|
|
||||||
# --------------- 4 H_256_512_4, 7 bytes
|
# --------------- 4 H_256_512_4, 7 bytes
|
||||||
|
|
|
@ -386,10 +386,12 @@ class RF():
|
||||||
txbuffer += bytes(mod_out)
|
txbuffer += bytes(mod_out)
|
||||||
|
|
||||||
|
|
||||||
|
# codec2 fsk preamble may be broken - at least it sounds like that so we are disabling it for testing
|
||||||
# append postamble to txbuffer
|
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
|
||||||
codec2.api.freedv_rawdatapostambletx(freedv, mod_out_postamble)
|
codec2.api.freedv_rawdatapostambletx(freedv, mod_out_postamble)
|
||||||
txbuffer += bytes(mod_out_postamble)
|
txbuffer += bytes(mod_out_postamble)
|
||||||
|
# append postamble to txbuffer
|
||||||
# add delay to end of frames
|
# add delay to end of frames
|
||||||
samples_delay = int(self.MODEM_SAMPLE_RATE*(repeat_delay/1000))
|
samples_delay = int(self.MODEM_SAMPLE_RATE*(repeat_delay/1000))
|
||||||
mod_out_silence = create_string_buffer(samples_delay*2)
|
mod_out_silence = create_string_buffer(samples_delay*2)
|
||||||
|
|
Loading…
Reference in a new issue