mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 10:04:33 +02:00
enable/disable fsk mode
This commit is contained in:
parent
4da5327bb0
commit
d3ee911186
|
@ -209,7 +209,7 @@ exports.getDaemonState = function() {
|
|||
// START TNC
|
||||
// ` `== multi line string
|
||||
|
||||
exports.startTNC = function(mycall, mygrid, rx_audio, tx_audio, radiocontrol, devicename, deviceport, pttprotocol, pttport, serialspeed, data_bits, stop_bits, handshake, rigctld_ip, rigctld_port, enable_fft, enable_scatter, low_bandwith_mode, tuning_range_fmin, tuning_range_fmax) {
|
||||
exports.startTNC = function(mycall, mygrid, rx_audio, tx_audio, radiocontrol, devicename, deviceport, pttprotocol, pttport, serialspeed, data_bits, stop_bits, handshake, rigctld_ip, rigctld_port, enable_fft, enable_scatter, low_bandwith_mode, tuning_range_fmin, tuning_range_fmax, enable_fsk) {
|
||||
var json_command = JSON.stringify({
|
||||
type: 'set',
|
||||
command: 'start_tnc',
|
||||
|
@ -231,6 +231,7 @@ exports.startTNC = function(mycall, mygrid, rx_audio, tx_audio, radiocontrol, de
|
|||
rigctld_ip: rigctld_ip,
|
||||
enable_scatter: enable_scatter,
|
||||
enable_fft: enable_fft,
|
||||
enable_fsk: enable_fsk,
|
||||
low_bandwith_mode : low_bandwith_mode,
|
||||
tuning_range_fmin : tuning_range_fmin,
|
||||
tuning_range_fmax : tuning_range_fmax
|
||||
|
|
|
@ -67,6 +67,7 @@ const configDefaultSettings = '{\
|
|||
"rigctld_ip" : "127.0.0.1",\
|
||||
"enable_scatter" : "False",\
|
||||
"enable_fft" : "False",\
|
||||
"enable_fsk" : "False",\
|
||||
"low_bandwith_mode" : "False",\
|
||||
"theme" : "default",\
|
||||
"screen_height" : 430,\
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "FreeDATA",
|
||||
"version": "0.3.0-alpha.7",
|
||||
"version": "0.3.0-alpha.8",
|
||||
"description": "FreeDATA ",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
|
|
@ -111,6 +111,7 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
|||
document.getElementById("scatterSwitch").value = config.enable_scatter;
|
||||
document.getElementById("fftSwitch").value = config.enable_fft;
|
||||
document.getElementById("500HzModeSwitch").value = config.low_bandwith_mode;
|
||||
document.getElementById("fskModeSwitch").value = config.enable_fsk;
|
||||
|
||||
document.getElementById("received_files_folder").value = config.received_files_folder;
|
||||
|
||||
|
@ -132,8 +133,13 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
|||
document.getElementById("500HzModeSwitch").checked = true;
|
||||
} else {
|
||||
document.getElementById("500HzModeSwitch").checked = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(config.enable_fsk == 'True'){
|
||||
document.getElementById("fskModeSwitch").checked = true;
|
||||
} else {
|
||||
document.getElementById("fskModeSwitch").checked = false;
|
||||
}
|
||||
// theme selector
|
||||
|
||||
if(config.theme != 'default'){
|
||||
|
@ -476,6 +482,17 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
|||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||
});
|
||||
|
||||
// enable fsk Switch clicked
|
||||
document.getElementById("fskModeSwitch").addEventListener("click", () => {
|
||||
if(document.getElementById("fskModeSwitch").checked == true){
|
||||
config.enable_fsk = "True";
|
||||
} else {
|
||||
config.enable_fsk = "False";
|
||||
}
|
||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Tuning range clicked
|
||||
document.getElementById("tuning_range_fmin").addEventListener("click", () => {
|
||||
|
@ -580,7 +597,11 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
|||
var low_bandwith_mode = "False";
|
||||
}
|
||||
|
||||
|
||||
if (document.getElementById("fskModeSwitch").checked == true){
|
||||
var enable_fsk = "True";
|
||||
} else {
|
||||
var enable_fsk = "False";
|
||||
}
|
||||
|
||||
// loop through audio device list and select
|
||||
for(i = 0; i < document.getElementById("audio_input_selectbox").length; i++) {
|
||||
|
@ -645,6 +666,7 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
|||
//config.deviceport_rigctl = deviceport_rigctl;
|
||||
config.enable_scatter = enable_scatter;
|
||||
config.enable_fft = enable_fft;
|
||||
config.enable_fsk = enable_fsk;
|
||||
config.low_bandwith_mode = low_bandwith_mode;
|
||||
|
||||
|
||||
|
@ -666,7 +688,7 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', ()
|
|||
*/
|
||||
|
||||
|
||||
daemon.startTNC(callsign_ssid, mygrid, rx_audio, tx_audio, radiocontrol, deviceid, deviceport, pttprotocol, pttport, serialspeed, data_bits, stop_bits, handshake, rigctld_ip, rigctld_port, enable_fft, enable_scatter, low_bandwith_mode, tuning_range_fmin, tuning_range_fmax);
|
||||
daemon.startTNC(callsign_ssid, mygrid, rx_audio, tx_audio, radiocontrol, deviceid, deviceport, pttprotocol, pttport, serialspeed, data_bits, stop_bits, handshake, rigctld_ip, rigctld_port, enable_fft, enable_scatter, low_bandwith_mode, tuning_range_fmin, tuning_range_fmax, enable_fsk);
|
||||
|
||||
|
||||
})
|
||||
|
|
|
@ -772,6 +772,11 @@
|
|||
<input class="form-check-input" type="checkbox" id="500HzModeSwitch">
|
||||
<label class="form-check-label" for="500HzModeSwitch">500Hz</label>
|
||||
</div>
|
||||
<div class="form-check form-switch form-check-inline">
|
||||
<input class="form-check-input" type="checkbox" id="fskModeSwitch">
|
||||
<label class="form-check-label" for="fskModeSwitch">FSK</label>
|
||||
</div>
|
||||
|
||||
<!--<button class="btn btn-secondary btn-sm" id="python_version" type="button" disabled>Python</button>-->
|
||||
<!--<button class="btn btn-secondary btn-sm" id="node_version" type="button" disabled>Node</button>-->
|
||||
<!--<button class="btn btn-secondary btn-sm" id="hamlib_version" type="button" disabled>Hamlib</button>-->
|
||||
|
@ -797,11 +802,15 @@
|
|||
<div class="col-5">
|
||||
<div class="card text-dark mb-1">
|
||||
<div class="card-header p-1"><i class="bi bi-volume-up" style="font-size: 1rem; color: black;"></i> <strong>AUDIO LEVEL</strong>
|
||||
<!--<button type="button" id="audioModalButton" data-bs-toggle="modal" data-bs-target="#audioModal" class="btn btn-sm btn-secondary">Tune</button>-->
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-body p-2">
|
||||
<div class="progress mb-1" style="height: 20px;">
|
||||
<div class="progress-bar progress-bar-striped bg-primary" id="rms_level" role="progressbar" style="width: 0%" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
<p class="justify-content-center d-flex position-absolute w-100">RX AUDIO LEVEL</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1158,7 +1167,24 @@
|
|||
<script src="waterfall/spectrogram.js"></script>
|
||||
<!--<script src="waterfall/script.js"></script>-->
|
||||
|
||||
<!-- AUDIO MODAL -->
|
||||
<div class="modal fade" data-bs-backdrop="static" tabindex="-1" id="audioModal">
|
||||
<div class="modal-dialog modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Audio tuning</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- INFO MODAL -->
|
||||
<div class="modal fade" data-bs-backdrop="static" tabindex="-1" id="infoModal">
|
||||
<div class="modal-dialog modal-dialog-scrollable">
|
||||
|
|
|
@ -209,13 +209,17 @@ class DAEMON():
|
|||
if data[18] == 'True':
|
||||
options.append('--500hz')
|
||||
|
||||
|
||||
options.append('--tuning_range_fmin')
|
||||
options.append(data[19])
|
||||
|
||||
options.append('--tuning_range_fmax')
|
||||
options.append(data[20])
|
||||
|
||||
|
||||
if data[21] == 'True':
|
||||
options.append('--fsk')
|
||||
|
||||
|
||||
# try running tnc from binary, else run from source
|
||||
# this helps running the tnc in a developer environment
|
||||
try:
|
||||
|
|
|
@ -1430,7 +1430,10 @@ class DATA():
|
|||
|
||||
txbuffer = [ping_frame]
|
||||
static.TRANSMITTING = True
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',1,0,txbuffer])
|
||||
if static.ENABLE_FSK:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',1,0,txbuffer])
|
||||
else:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,1,0,txbuffer])
|
||||
# wait while transmitting
|
||||
while static.TRANSMITTING:
|
||||
time.sleep(0.01)
|
||||
|
@ -1467,7 +1470,11 @@ class DATA():
|
|||
|
||||
txbuffer = [ping_frame]
|
||||
static.TRANSMITTING = True
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',1,0,txbuffer])
|
||||
|
||||
if static.ENABLE_FSK:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',1,0,txbuffer])
|
||||
else:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,1,0,txbuffer])
|
||||
# wait while transmitting
|
||||
while static.TRANSMITTING:
|
||||
time.sleep(0.01)
|
||||
|
@ -1556,7 +1563,13 @@ class DATA():
|
|||
txbuffer = [beacon_frame]
|
||||
|
||||
static.TRANSMITTING = True
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,1,0,txbuffer])
|
||||
|
||||
if static.ENABLE_FSK:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',1,0,txbuffer])
|
||||
else:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,1,0,txbuffer])
|
||||
|
||||
|
||||
# wait while transmitting
|
||||
while static.TRANSMITTING:
|
||||
time.sleep(0.01)
|
||||
|
@ -1606,7 +1619,11 @@ class DATA():
|
|||
txbuffer = [cq_frame]
|
||||
print(txbuffer)
|
||||
static.TRANSMITTING = True
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,2,500,txbuffer])
|
||||
|
||||
if static.ENABLE_FSK:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',2,500,txbuffer])
|
||||
else:
|
||||
modem.MODEM_TRANSMIT_QUEUE.put([14,1,0,txbuffer])
|
||||
# wait while transmitting
|
||||
while static.TRANSMITTING:
|
||||
time.sleep(0.01)
|
||||
|
|
|
@ -69,6 +69,7 @@ if __name__ == '__main__':
|
|||
PARSER.add_argument('--scatter', dest="send_scatter", action="store_true", help="Send scatter information via network")
|
||||
PARSER.add_argument('--fft', dest="send_fft", action="store_true", help="Send fft information via network")
|
||||
PARSER.add_argument('--500hz', dest="low_bandwith_mode", action="store_true", help="Enable low bandwith mode ( 500 Hz only )")
|
||||
PARSER.add_argument('--fsk', dest="enable_fsk", action="store_true", help="Enable FSK mode for ping, beacon and CQ")
|
||||
PARSER.add_argument('--tuning_range_fmin', dest="tuning_range_fmin", choices=[-50.0, -100.0, -150.0, -200.0, -250.0], default=-50.0, help="Tuning range fmin", type=float)
|
||||
PARSER.add_argument('--tuning_range_fmax', dest="tuning_range_fmax", choices=[50.0, 100.0, 150.0, 200.0, 250.0], default=50.0, help="Tuning range fmax", type=float)
|
||||
|
||||
|
@ -102,7 +103,8 @@ if __name__ == '__main__':
|
|||
static.HAMLIB_RGICTLD_IP = ARGS.rigctld_ip
|
||||
static.HAMLIB_RGICTLD_PORT = str(ARGS.rigctld_port)
|
||||
static.ENABLE_SCATTER = ARGS.send_scatter
|
||||
static.ENABLE_FFT = ARGS.send_fft
|
||||
static.ENABLE_FFT = ARGS.send_fft
|
||||
static.ENABLE_FSK = ARGS.enable_fsk
|
||||
static.LOW_BANDWITH_MODE = ARGS.low_bandwith_mode
|
||||
static.TUNING_RANGE_FMIN = ARGS.tuning_range_fmin
|
||||
static.TUNING_RANGE_FMAX = ARGS.tuning_range_fmax
|
||||
|
|
|
@ -40,6 +40,7 @@ RECEIVE_DATAC1 = False
|
|||
RECEIVE_DATAC3 = False
|
||||
RECEIVE_FSK_LDPC_1 = False
|
||||
|
||||
|
||||
class RF():
|
||||
""" """
|
||||
|
||||
|
@ -274,14 +275,14 @@ class RF():
|
|||
|
||||
# avoid buffer overflow by filling only if buffer not full and selected datachannel mode
|
||||
if not self.fsk_ldpc_buffer_0.nbuffer+length_x > self.fsk_ldpc_buffer_0.size:
|
||||
#if RECEIVE_FSK_LDPC_0:
|
||||
if static.ENABLE_FSK:
|
||||
self.fsk_ldpc_buffer_0.push(x)
|
||||
else:
|
||||
static.BUFFER_OVERFLOW_COUNTER[3] += 1
|
||||
|
||||
# avoid buffer overflow by filling only if buffer not full and selected datachannel mode
|
||||
if not self.fsk_ldpc_buffer_1.nbuffer+length_x > self.fsk_ldpc_buffer_1.size:
|
||||
if RECEIVE_FSK_LDPC_1:
|
||||
if RECEIVE_FSK_LDPC_1 and static.ENABLE_FSK:
|
||||
self.fsk_ldpc_buffer_1.push(x)
|
||||
else:
|
||||
static.BUFFER_OVERFLOW_COUNTER[4] += 1
|
||||
|
@ -481,7 +482,7 @@ class RF():
|
|||
def audio_fsk_ldpc_0(self):
|
||||
""" """
|
||||
nbytes_fsk_ldpc_0 = 0
|
||||
while self.stream.active:
|
||||
while self.stream.active and static.ENABLE_FSK:
|
||||
threading.Event().wait(0.01)
|
||||
while self.fsk_ldpc_buffer_0.nbuffer >= self.fsk_ldpc_nin_0:
|
||||
# demodulate audio
|
||||
|
@ -496,7 +497,7 @@ class RF():
|
|||
def audio_fsk_ldpc_1(self):
|
||||
""" """
|
||||
nbytes_fsk_ldpc_1 = 0
|
||||
while self.stream.active:
|
||||
while self.stream.active and static.ENABLE_FSK:
|
||||
threading.Event().wait(0.01)
|
||||
while self.fsk_ldpc_buffer_1.nbuffer >= self.fsk_ldpc_nin_1:
|
||||
# demodulate audio
|
||||
|
|
|
@ -488,9 +488,11 @@ def process_daemon_commands(data):
|
|||
rigctld_port = str(received_json["parameter"][0]["rigctld_port"])
|
||||
enable_scatter = str(received_json["parameter"][0]["enable_scatter"])
|
||||
enable_fft = str(received_json["parameter"][0]["enable_fft"])
|
||||
enable_fsk = str(received_json["parameter"][0]["enable_fsk"])
|
||||
low_bandwith_mode = str(received_json["parameter"][0]["low_bandwith_mode"])
|
||||
tuning_range_fmin = str(received_json["parameter"][0]["tuning_range_fmin"])
|
||||
tuning_range_fmax = str(received_json["parameter"][0]["tuning_range_fmax"])
|
||||
|
||||
|
||||
DAEMON_QUEUE.put(['STARTTNC', \
|
||||
mycall, \
|
||||
|
@ -512,7 +514,8 @@ def process_daemon_commands(data):
|
|||
enable_fft, \
|
||||
low_bandwith_mode, \
|
||||
tuning_range_fmin, \
|
||||
tuning_range_fmax \
|
||||
tuning_range_fmax, \
|
||||
enable_fsk \
|
||||
])
|
||||
command_response("start_tnc", True)
|
||||
|
||||
|
|
|
@ -66,6 +66,7 @@ SNR = 0
|
|||
FREQ_OFFSET = 0
|
||||
SCATTER = []
|
||||
ENABLE_SCATTER = False
|
||||
ENABLE_FSK = False
|
||||
# ---------------------------------
|
||||
|
||||
# Audio Defaults
|
||||
|
|
Loading…
Reference in a new issue