diff --git a/CMakeLists.txt b/CMakeLists.txt index 5986f3e0..185ca2d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,7 @@ add_test(NAME highsnr_stdio_P_P_single PATH=$PATH:${CODEC2_BUILD_DIR}/src; cd ${CMAKE_CURRENT_SOURCE_DIR}/test; python3 test_tx.py --mode datac0 --delay 500 --framesperburst ${FRAMESPERBURST} --bursts ${BURSTS} | - python3 test_rx.py --mode datac0 --framesperburst ${FRAMESPERBURST} --bursts ${BURSTS}") + python3 test_rx.py --debug --mode datac0 --framesperburst ${FRAMESPERBURST} --bursts ${BURSTS}") set_tests_properties(highsnr_stdio_P_P_single PROPERTIES PASS_REGULAR_EXPRESSION "RECEIVED BURSTS: ${BURSTS} RECEIVED FRAMES: ${FRAMESPERBURST}") add_test(NAME highsnr_stdio_P_P_multi diff --git a/gui/daemon.js b/gui/daemon.js index d3219732..dee8e5e2 100644 --- a/gui/daemon.js +++ b/gui/daemon.js @@ -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, enable_fsk, tx_audio_level) { +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, tx_audio_level, respond_to_cq) { var json_command = JSON.stringify({ type: 'set', command: 'start_tnc', @@ -235,7 +235,8 @@ exports.startTNC = function(mycall, mygrid, rx_audio, tx_audio, radiocontrol, de low_bandwith_mode : low_bandwith_mode, tuning_range_fmin : tuning_range_fmin, tuning_range_fmax : tuning_range_fmax, - tx_audio_level : tx_audio_level + tx_audio_level : tx_audio_level, + respond_to_cq : respond_to_cq }] }) diff --git a/gui/main.js b/gui/main.js index b64b6978..e669aa64 100644 --- a/gui/main.js +++ b/gui/main.js @@ -76,7 +76,8 @@ const configDefaultSettings = '{\ "beacon_interval" : 5,\ "received_files_folder" : "None",\ "tuning_range_fmin" : "-50.0",\ - "tuning_range_fmax" : "50.0"\ + "tuning_range_fmax" : "50.0",\ + "respond_to_cq" : "True" \ }'; if (!fs.existsSync(configPath)) { diff --git a/gui/preload-main.js b/gui/preload-main.js index 6bfb2620..bde9863d 100644 --- a/gui/preload-main.js +++ b/gui/preload-main.js @@ -110,8 +110,9 @@ 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("500HzModeSwitch").value = config.low_bandwith_mode; + //document.getElementById("fskModeSwitch").value = config.enable_fsk; + //document.getElementById("respondCQSwitch").value = config.respond_to_cq; document.getElementById("received_files_folder").value = config.received_files_folder; @@ -140,6 +141,12 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', () } else { document.getElementById("fskModeSwitch").checked = false; } + + if(config.respond_to_cq == 'True'){ + document.getElementById("respondCQSwitch").checked = true; + } else { + document.getElementById("respondCQSwitch").checked = false; + } // theme selector if(config.theme != 'default'){ @@ -509,6 +516,17 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', () } fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); }); + + // enable response to cq clicked + document.getElementById("respondCQSwitch").addEventListener("click", () => { + if(document.getElementById("respondCQSwitch").checked == true){ + config.respond_to_cq = "True"; + } else { + config.respond_to_cq = "False"; + } + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); + }); + // enable fsk Switch clicked document.getElementById("fskModeSwitch").addEventListener("click", () => { @@ -630,6 +648,13 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', () } else { var enable_fsk = "False"; } + + if (document.getElementById("respondCQSwitch").checked == true){ + var respond_to_cq = "True"; + } else { + var respond_to_cq = "False"; + } + // loop through audio device list and select for(i = 0; i < document.getElementById("audio_input_selectbox").length; i++) { @@ -697,9 +722,8 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', () config.enable_fsk = enable_fsk; config.low_bandwith_mode = low_bandwith_mode; config.tx_audio_level = tx_audio_level; - - - + config.respond_to_cq = respond_to_cq; + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); @@ -717,7 +741,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, enable_fsk, tx_audio_level); + 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, tx_audio_level, respond_to_cq); }) diff --git a/gui/sock.js b/gui/sock.js index fc442ed6..7c2061a3 100644 --- a/gui/sock.js +++ b/gui/sock.js @@ -80,7 +80,7 @@ client.on('error', function(data) { ipcRenderer.send('request-update-tnc-state', Data); ipcRenderer.send('request-update-tnc-connection', {tnc_connection : client.readyState}); client.destroy(); - setTimeout(connectTNC, 500) + setTimeout(connectTNC, 1500) // setTimeout( function() { exports.connectTNC(tnc_host, tnc_port); }, 2000 ); }); diff --git a/gui/src/index.html b/gui/src/index.html index 77f5463c..b57d995a 100644 --- a/gui/src/index.html +++ b/gui/src/index.html @@ -86,8 +86,8 @@ - - + Settings + @@ -322,7 +322,7 @@ --> - rigctld + @@ -690,7 +690,7 @@ --> - IP + Rigctld IP : @@ -757,7 +757,8 @@ - Auto-Updater + + Auto-Updater ... @@ -1230,12 +1231,12 @@ - App settings + Settings - Theme - + Theme + Default Cerulean Cosmo @@ -1265,8 +1266,8 @@ - Update channel - + Update channel + stable beta alpha @@ -1274,13 +1275,13 @@ - Received files folder - + Received files folder + - Tuning range + Tuning range fmin -50.0 @@ -1303,8 +1304,8 @@ - Enable FSK mode - + Enable FSK mode + not available, yet @@ -1313,33 +1314,41 @@ - Enable Waterfall data - + Enable Waterfall data + Waterfall - - Enable Scatter diagram data - + + Enable Scatter diagram data + Scatter - - Enable 500Hz mode - + + Enable 500Hz mode + 500Hz - + + Respond to CQ + + + + QRV + + + diff --git a/gui/src/index.html~ b/gui/src/index.html~ new file mode 100644 index 00000000..5b689349 --- /dev/null +++ b/gui/src/index.html~ @@ -0,0 +1,1439 @@ + + + + + + + + + + + + + + + + + + FreeDATA by DJ2LS + + + + + + + + + + + + + + + + + + + + TNC IP + : + + + + + + + + + + + + + + + + + + + + + + + + + + STOP + + + + + + RF Chat + + . + + + + Received Files + + + + + + Transmit File + + + + + + + + + + + + + + + + + + + + + + + Checking for update + + + + + + + Downloading... + + + + + + + + + + + + Update ready... + + App is going to restart automatically... + + + + + + Preparing for download... + + + + + + + + + Up to date! + + + + + + + Update not available - Please try again later! + + + + + + + + + + + + Sending CQ CQ CQ + + + + + + + + Receiving CQ CQ CQ + + + + + + + Receiving a beacon signal! + + + + + + + Sending Ping + + + + + + + RECEIVED PING REQUEST + + + + + + + RECEIVED PING ACKNOWLEDGE + + + + + + + OPENING DATACHANNEL + + + + + + + DATACHANNEL OPENED! + + + + + + + Transmission stopped! + + + + + + + INCOMING FILE TRANSMISSION + + + + + + + OPENING DATACHANNEL FAILED + + + + + + + Receiving file... + + + + + + + FILE SUCCESSFULLY RECEIVED! + + + + + + + FILE NOT SUCCESSFULLY RECEIVED! + + + + + + + TRANSMITTING FILE... + + + + + + + TRANSMITTING FILE FAILED! + + + + + + + FILE SUCCESSFULLY TRANSMITTED! + + + + + + + + + + + + AUDIO + + + + + + + + + + + + + + + + + + + + + + RADIO + + + + + + + direct + + + + + rigctld + + + + + + + + + PTT Test + + + + + + + + + + + ADAT www.adat.ch ADT-200A + Alinco DX-77 + Alinco DX-SR8 + AmQRPDDS-60 + AMSAT-UK FUNcube Dongle + AE9RBSi570 Peaberry V1 + AE9RBSi570 Peaberry V2 + AMSAT-UK FUNcube Dongle Pro+ + AOR AR8200 + AOR AR8000 + AOR AR7030 + AOR AR5000 + AOR AR3030 + AOR AR3000A + AOR AR2700 + AOR AR8600 + AOR AR5000A + AOR AR7030 Plus + AOR SR2200 + Barrett2050 + Barrett950 + Coding TechnologiesDigital World Travelle + DorjiDRA818V + DorjiDRA818U + DrakeR-8A + DrakeR-8B + DTTS Microwave Society DttSP IPC + DTTS Microwave Society DttSP UDP + ELAD FDM-DUO + Elecraft K2 + Elecraft K3 + Elecraft K4 + Elecraft XG3 + Elecraft K3S + Elecraft KX2 + Elecraft KX3 + ElektorElektor 3/04 + ElektorElektor SDR-USB + FiFi FiFi-SDR + FlexRadio/ANAN PowerSDR/Thetis + FlexRadio6xxx + Flex-radio SDR-1000 + FLRigFLRig + FunkamateurFA-SDR + Hamlib Dummy + Hamlib Dummy No VFO + Hamlib NET rigctl + HobbyPCB RS-HFIQ + Hilberling PT-8000A + Icom IC-1275 + Icom IC-271 + Icom IC-275 + Icom IC-471 + Icom IC-475 + Icom IC-575 + Icom IC-706 + Icom IC-706MkII + Icom IC-706MkIIG + Icom IC-707 + Icom IC-718 + Icom IC-725 + Icom IC-726 + Icom IC-728 + Icom IC-729 + Icom IC-735 + Icom IC-736 + Icom IC-737 + Icom IC-738 + Icom IC-746 + Icom IC-751 + Icom IC-756 + Icom IC-756PRO + Icom IC-761 + Icom IC-765 + Icom IC-775 + Icom IC-781 + Icom IC-820H + Icom IC-821H + Icom IC-970 + Icom IC-R10 + Icom IC-R71 + Icom IC-R72 + Icom IC-R75 + Icom IC-R7000 + Icom IC-R7100 + Icom ICR-8500 + Icom IC-R9000 + Icom IC-910 + Icom IC-78 + Icom IC-746PRO + Icom IC-756PROII + Icom IC ID-1 + Icom IC-703 + Icom IC-7800 + Icom IC-756PROIII + Icom IC-R20 + Icom IC-7000 + Icom IC-7200 + Icom IC-7700 + Icom IC-7600 + Ten-TecDelta II + Icom IC-92D + Icom IC-R9500 + Icom IC-7410 + Icom IC-9100 + Icom IC-RX7 + Icom IC-7100 + Icom ID-5100 + Icom IC-2730 + Icom IC-7300 + Icom IC-M700PRO + Icom IC-M802 + Icom IC-M710 + Icom IC-M803 + Microtelecom Perseus + Icom IC-785x + XeiguX108G + Icom IC-R6 + Icom IC-7610 + Icom IC-R8600 + Icom IC-R30 + Icom IC-9700 + Icom ID-4100 + Icom ID-31 + Icom ID-51 + Icom IC-705 + Icom IC-PCR1000 + Icom IC-PCR100 + Icom IC-PCR1500 + Icom IC-PCR2500 + JRCNRD-525 + JRCNRD-535D + JRCNRD-545 DSP + Kachina505DSP + KTH-SDR kitSi570 PIC-USB + KenwoodTS-50S + KenwoodTS-440S + KenwoodTS-450S + KenwoodTS-570D + KenwoodTS-690S + KenwoodTS-711 + KenwoodTS-790 + KenwoodTS-811 + KenwoodTS-850 + KenwoodTS-870S + KenwoodTS-940S + KenwoodTS-950S + KenwoodTS-950SDX + KenwoodTS-2000 + KenwoodR-5000 + KenwoodTS-570S + KenwoodTH-D7A + KenwoodTH-F6A + KenwoodTH-F7E + KenwoodTS-930 + KenwoodTH-G71 + KenwoodTS-680S + KenwoodTS-140S + KenwoodTM-D700 + KenwoodTM-V7 + KenwoodTS-480 + KenwoodTRC-80 + KenwoodTS-590S + SigFox Transfox + KenwoodTH-D72A + KenwoodTM-D710(G) + KenwoodTS-590SG + KenwoodTS-990s + KenwoodTS-890S + KenwoodTH-D74 + Lowe HF-235 + MalachiteDSP + mRSminiVNA + N2ADRHiQSDR + OptoelectronicsOptoScan535 + OptoelectronicsOptoScan456 + OpenHPSDRPiHPSDR + Philips/Simoco PRM8060 + RacalRA6790/GM + RacalRA3702 + RFTEKD-500 + Rohde&SchwarzESMC + Rohde&SchwarzEB200 + Rohde&SchwarzXK2100 + Skanti TRP8000 + Skanti TRP 8255 S R + SAT-SchneiderDRT1 + SoftRock Si570 AVR-USB + Ten-TecOmni VI Plus + Ten-TecTT-550 + Ten-TecTT-538 Jupiter + Ten-TecRX-320 + Ten-TecRX-340 + Ten-TecRX-350 + Ten-TecTT-516 Argonaut V + Ten-TecTT-565 Orion + Ten-TecTT-585 Paragon + Ten-TecTT-588 Omni VII + Ten-TecRX-331 + Ten-TecTT-599 Eagle + TAPR DSP-10 + TRXManager 5.7.630+ + Uniden BC780xlt + Uniden BC245xlt + Uniden BC895xlt + Radio ShackPRO-2052 + Uniden BC250D + Uniden BCD-396T + Uniden BCD-996T + Uniden BC898T + Vertex StandardVX-1700 + Video4LinuxSW/FM radio + Video4Linux2 SW/FM radio + Watkins-JohnsonWJ-8888 + Winradio WR-1000 + Winradio WR-1500 + Winradio WR-1550 + Winradio WR-3100 + Winradio WR-3150 + Winradio WR-3500 + Winradio WR-3700 + Winradio WR-G313 + Yaesu FT-847 + Yaesu FT-1000D + YaesuMARK-V FT-1000MP + Yaesu FT-747GX + Yaesu FT-757GX + Yaesu FT-757GXII + Yaesu FT-767GX + Yaesu FT-736R + Yaesu FT-840 + Yaesu FT-900 + Yaesu FT-920 + Yaesu FT-890 + Yaesu FT-990 + Yaesu FRG-100 + Yaesu FRG-9600 + Yaesu FRG-8800 + Yaesu FT-817 + Yaesu FT-100 + Yaesu FT-857 + Yaesu FT-897 + Yaesu FT-1000MP + Yaesu MARK-V Field FT-1000MP + Yaesu VR-5000 + Yaesu FT-450 + Yaesu FT-950 + Yaesu FT-2000 + Yaesu FTDX-9000 + Yaesu FT-980 + Yaesu FTDX-5000 + Yaesu FTDX-1200 + Yaesu FT-991 + Yaesu FT-891 + Yaesu FTDX-3000 + Yaesu FT-847UNI + Yaesu FT-600 + Yaesu FTDX-101D + Yaesu FT-818 + Yaesu FTDX-10 + Yaesu FT-897D + Yaesu FTDX-101MP + + + + + + + NONE + RIG + USB + Serial RTS + Serial DTR-High + Serial DTR-Low + Rig PARALLEL + Rig MICDATA + Rig CM108 + + + + + + + + + + + Speed + + 1200 + 2400 + 4800 + 9600 + 14400 + 19200 + 28800 + 38400 + 57600 + 115200 + + + + + + + IP + : + + + + + + + + + + + + MY STATION + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Auto-Updater + + + ... + Changelog + Install & Restart + + + + + + + + + + + + + + + + AUDIO LEVEL + Tune + + + + + + + RX AUDIO LEVEL - not implemented yet + + + + + + + + + + + + + + PING, CQ & BEACON + + + + + + + + Ping + + + + + + + + + + + + + + + + + CQ CQ + + + + + + + + Beacon + + 5s + 10s + 15s + 30s + 45s + 60s + 90s + 2min + 5min + 10min + 15min + 30min + 60min + + + + + + + + + + + + + + + + + + + + WATERFALL + + + SCATTER + + + busy + + + + + + + + + + + + + + + + + + + + + + + + + + + + HEARD STATIONS + + + + + + + Time + Frequency + DXCall + DXGrid + Distance + Type + SNR + Off + + + + + + + + + + + + + + + + + + + + + Received Files + + + + + + + + + Time + DXCall + + Filename + + + + + + + + + + + + + + Transmit Files + + + + + + + + + + DX Station + + + + + + + + + + + Ping ACK + 0000 km + 0 dB + + + + + + + + + + + + + Data + + + + + kB + + + + + + + + + + + Mode + + + + + Mode + + AUTO + + + + + + + + Frames + + 1 + + + + + + + + + + + + + START TRANSMISSION + + + STOP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- + --- + --- + + + + + + + + + --- + + --- + + + + Bytes + --- + + + + + + + + + + + + + + + + + + + + + + + + + + + + Audio tuning + + + + + Test-Frame + Transmit + + + + + TX Level + --- + + + + + + + + + + + + + + + + + + App settings + + + + Theme + + Default + Cerulean + Cosmo + Cyborg + Darkly + Flatly + Journal + Litera + Lumen + Lux + Materia + Minty + Morhp + Pulse + Quartz + Sandstone + Simplex + Sketchy + Slate + Solar + Spacelab + Superhero + United + Vapor + Yeti + Zephyr + + + + Update channel + + stable + beta + alpha + + + + + Received files folder + + + + + + Tuning range + fmin + + -50.0 + -100.0 + -150.0 + -200.0 + -250.0 + + + fmax + + 50.0 + 100.0 + 150.0 + 200.0 + 250.0 + + + + + + + Enable FSK mode + + + + not available, yet + + + + + + Enable Waterfall data + + + + Waterfall + + + + + Enable Scatter diagram data + + + + Scatter + + + + + Enable 500Hz mode + + + + 500Hz + + + + + + + + + + + + + + + + + + Hamlib advanced settings + + + + Port + + + /dev/ttyUSB1--> + Speed + + 1200 + 2400 + 4800 + 9600 + 14400 + 19200 + 28800 + 38400 + 57600 + 115200 + + + PTT + + NONE + RIG + USB + Serial RTS + Serial DTR-High + Serial DTR-Low + Rig PARALLEL + Rig MICDATA + Rig CM108 + + + Data bits + + 7 + 8 (Default) + + + Stop bits + + 1 (Default) + 2 + + + Handshake + + None (Default) + + + PTT Port + + + + + + + + + + + + + + diff --git a/test/rx48.raw b/test/rx48.raw deleted file mode 100644 index 95796a59..00000000 Binary files a/test/rx48.raw and /dev/null differ diff --git a/tnc/daemon.py b/tnc/daemon.py index f51a22d3..155e5740 100755 --- a/tnc/daemon.py +++ b/tnc/daemon.py @@ -138,6 +138,9 @@ class DAEMON(): # data[18] low_bandwith_mode # data[19] tuning_range_fmin # data[20] tuning_range_fmax + # data[21] enable FSK + # data[22] tx-audio-level + # data[23] respond_to_cq if data[0] == 'STARTTNC': structlog.get_logger("structlog").warning("[DMN] Starting TNC", rig=data[5], port=data[6]) @@ -222,7 +225,10 @@ class DAEMON(): options.append('--tx-audio-level') options.append(data[22]) - + + if data[23] == 'True': + options.append('--qrv') + # try running tnc from binary, else run from source diff --git a/tnc/data_handler.py b/tnc/data_handler.py index 1622b544..a38dc0eb 100644 --- a/tnc/data_handler.py +++ b/tnc/data_handler.py @@ -1670,8 +1670,8 @@ class DATA(): structlog.get_logger("structlog").info("[TNC] CQ RCVD [" + str(dxcallsign, 'utf-8') + "]["+ str(dxgrid, 'utf-8') +"] ", snr=static.SNR) helpers.add_to_heard_stations(dxcallsign, dxgrid, 'CQ CQ CQ', static.SNR, static.FREQ_OFFSET, static.HAMLIB_FREQUENCY) - # TODO: Add configuration option to enable responding to CQ. - self.transmit_qrv() + if static.RESPOND_TO_CQ: + self.transmit_qrv() def transmit_qrv(self): diff --git a/tnc/main.py b/tnc/main.py index 7a3dc619..95bf947a 100755 --- a/tnc/main.py +++ b/tnc/main.py @@ -70,6 +70,7 @@ if __name__ == '__main__': 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('--qrv', dest="enable_respond_to_cq", action="store_true", help="Enable sending a QRV frame if CQ received") 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) PARSER.add_argument('--tx-audio-level', dest="tx_audio_level", default=50, help="Set the tx audio level at an early stage", type=int) @@ -109,7 +110,7 @@ if __name__ == '__main__': static.TUNING_RANGE_FMIN = ARGS.tuning_range_fmin static.TUNING_RANGE_FMAX = ARGS.tuning_range_fmax static.TX_AUDIO_LEVEL = ARGS.tx_audio_level - + static.RESPOND_TO_CQ = ARGS.enable_respond_to_cq # we need to wait until we got all parameters from argparse first before we can load the other modules import sock diff --git a/tnc/sock.py b/tnc/sock.py index bcaa323f..9573a0c4 100644 --- a/tnc/sock.py +++ b/tnc/sock.py @@ -537,7 +537,8 @@ def process_daemon_commands(data): tuning_range_fmin, \ tuning_range_fmax, \ enable_fsk, \ - tx_audio_level \ + tx_audio_level, \ + respond_to_cq \ ]) command_response("start_tnc", True) diff --git a/tnc/static.py b/tnc/static.py index 05ca3f61..ae206f2d 100644 --- a/tnc/static.py +++ b/tnc/static.py @@ -67,6 +67,7 @@ FREQ_OFFSET = 0 SCATTER = [] ENABLE_SCATTER = False ENABLE_FSK = False +RESPOND_TO_CQ = False # --------------------------------- # Audio Defaults
RX AUDIO LEVEL - not implemented yet