expert mode for qnconfig

pull/12/head
Tom Early 7 years ago
parent cf74e6a42b
commit e369ee824d

@ -1895,7 +1895,7 @@ void CQnetGateway::Process()
tv.tv_usec = 20000; // 20 ms tv.tv_usec = 20000; // 20 ms
(void)select(max_nfds + 1, &fdset, 0, 0, &tv); (void)select(max_nfds + 1, &fdset, 0, 0, &tv);
// process packets coming from remote G2 or g2_link // process packets coming from remote G2
if (keep_running && FD_ISSET(g2_sock, &fdset)) { if (keep_running && FD_ISSET(g2_sock, &fdset)) {
SDSVT g2buf; SDSVT g2buf;
socklen_t fromlen = sizeof(struct sockaddr_in); socklen_t fromlen = sizeof(struct sockaddr_in);
@ -1915,6 +1915,7 @@ void CQnetGateway::Process()
FD_CLR(g2_sock, &fdset); FD_CLR(g2_sock, &fdset);
} }
// process packets from qnlink
if (keep_running && FD_ISSET(Link2Gate.GetFD(), &fdset)) { if (keep_running && FD_ISSET(Link2Gate.GetFD(), &fdset)) {
SDSVT g2buf; SDSVT g2buf;
ssize_t g2buflen = Link2Gate.Read(g2buf.title, 56); ssize_t g2buflen = Link2Gate.Read(g2buf.title, 56);
@ -1922,7 +1923,7 @@ void CQnetGateway::Process()
FD_CLR(Link2Gate.GetFD(), &fdset); FD_CLR(Link2Gate.GetFD(), &fdset);
} }
// process packets coming from local repeater modules // process packets coming from local repeater module(s)
if (keep_running && FD_ISSET(Modem2Gate.GetFD(), &fdset)) { if (keep_running && FD_ISSET(Modem2Gate.GetFD(), &fdset)) {
ProcessModem(); ProcessModem();
FD_CLR(Modem2Gate.GetFD(), &fdset); FD_CLR(Modem2Gate.GetFD(), &fdset);

@ -94,7 +94,7 @@ bool ReadCfgFile()
} }
cfg.GetValue("gateway_modem2gate", estr, togateway, 1, FILENAME_MAX); cfg.GetValue("gateway_modem2gate", estr, togateway, 1, FILENAME_MAX);
cfg.GetValue("timing_play_wait", estr, PLAY_WAIT, 1,10); cfg.GetValue("timing_play_wait", estr, PLAY_WAIT, 1, 10);
cfg.GetValue("timing_play_delay", estr, PLAY_DELAY, 15, 25); cfg.GetValue("timing_play_delay", estr, PLAY_DELAY, 15, 25);
return false; return false;
} }

@ -72,19 +72,23 @@ LinkMenu () {
echo -n "ad : CSV of calls that can execute scripts = "; EvaluateVar link_admin{,_d} echo -n "ad : CSV of calls that can execute scripts = "; EvaluateVar link_admin{,_d}
echo -n "li : CSV of calls that can link and unlink = "; EvaluateVar link_link_unlink{,_d} echo -n "li : CSV of calls that can link and unlink = "; EvaluateVar link_link_unlink{,_d}
echo -n "n : CSV of calls that cannot link&unlink = "; EvaluateVar link_no_link_unlink{,_d} echo -n "n : CSV of calls that cannot link&unlink = "; EvaluateVar link_no_link_unlink{,_d}
echo -n "i : Incoming IP address of QnetLink = "; EvaluateVar link_incoming_ip{,_d} if [ -n "$em" ]; then
echo -n "r : UDP port for REF linking = "; EvaluateVar link_ref_port{,_d} echo -n "i : Incoming IP address of QnetLink = "; EvaluateVar link_incoming_ip{,_d}
echo -n "x : UDP port for XRF linking = "; EvaluateVar link_xrf_port{,_d} echo -n "r : UDP port for REF linking = "; EvaluateVar link_ref_port{,_d}
echo -n "d : DCS port for XRF linking = "; EvaluateVar link_dcs_port{,_d} echo -n "x : UDP port for XRF linking = "; EvaluateVar link_xrf_port{,_d}
echo -n "an : Announce linking = "; EvaluateVar link_announce{,_d} echo -n "d : DCS port for XRF linking = "; EvaluateVar link_dcs_port{,_d}
echo -n "ac : Acknowledge link on each keyup = "; EvaluateVar link_acknowledge{,_d} echo -n "an : Announce linking = "; EvaluateVar link_announce{,_d}
echo -n "m : Maximum # of dongles allowed = "; EvaluateVar link_max_dongles{,_d} echo -n "ac : Acknowledge link on each keyup = "; EvaluateVar link_acknowledge{,_d}
echo -n "m : Maximum # of dongles allowed = "; EvaluateVar link_max_dongles{,_d}
fi
echo echo
echo " Legacy D-Plus Repeaters and Reflectors" echo " Legacy D-Plus Repeaters and Reflectors"
echo -n "au : Authorize Legacy D-Plus Linking = "; EvaluateVar dplus_authorize{,_d} echo -n "au : Authorize Legacy D-Plus Linking = "; EvaluateVar dplus_authorize{,_d}
echo -n "lo : Login call for authorization server = "; EvaluateVar dplus_ref_login{,_d} if [ -n "$em" ]; then
echo -n "RF : Add legacy reflectors to gateway list = "; EvaluateVar dplus_use_reflectors{,_d} echo -n "lo : Login call for authorization server = "; EvaluateVar dplus_ref_login{,_d}
echo -n "RP : add legacy repeaters to gateway list = "; EvaluateVar dplus_use_repeaters{,_d} echo -n "RF : Add legacy reflectors to gateway list = "; EvaluateVar dplus_use_reflectors{,_d}
echo -n "RP : add legacy repeaters to gateway list = "; EvaluateVar dplus_use_repeaters{,_d}
fi
EndMenu EndMenu
if [[ "$key" == ad* ]]; then link_admin="${value^^}" if [[ "$key" == ad* ]]; then link_admin="${value^^}"
@ -126,28 +130,34 @@ FileMenu () {
while [[ "$key" != q* ]]; do while [[ "$key" != q* ]]; do
clear clear
echo echo
echo " Files/Logs/Timings Menu" if [ -z "$em" ]; then
echo echo " Debugging Menu"
echo " Files and directories" else
echo -n "sf : Repeater status file :"; EvaluateVar file_status{,_d} echo " Debugging/Files/Timings Menu"
echo -n "ed : Echo/Voicemail directory :"; EvaluateVar file_echotest{,_d} fi
echo -n "dd : DTMF directory :"; EvaluateVar file_dtmf{,_d}
echo -n "vf : QnetVoice filename :"; EvaluateVar file_qnvoicefile{,_d}
echo -n "gf : Gateways filename :"; EvaluateVar file_gwys{,_d}
echo -n "ad : Announce directory :"; EvaluateVar file_announce_dir{,_d}
echo echo
echo " Logging file (in /usr/local/var)" echo " Additional entries in log files (in /usr/local/var)"
echo -n "cl : Call(QSO) logging :"; EvaluateVar log_qso{,_d} echo -n "cl : Call(QSO) logging :"; EvaluateVar log_qso{,_d}
echo -n "il : IRC logging :"; EvaluateVar log_irc{,_d} echo -n "il : IRC logging :"; EvaluateVar log_irc{,_d}
echo -n "dl : DTMF logging :"; EvaluateVar log_dtmf{,_d} echo -n "dl : DTMF logging :"; EvaluateVar log_dtmf{,_d}
echo if [ -n "$em" ]; then
echo " Timing controls" echo
echo -n "et : Echo timeout (sec) :"; EvaluateVar timing_timeout_echo{,_d} echo " Files and directories"
echo -n "vt : Voicemail timeout (sec) :"; EvaluateVar timing_timeout_voicemail{,_d} echo -n "sf : Repeater status file :"; EvaluateVar file_status{,_d}
echo -n "gt : G2 timeout (sec) :"; EvaluateVar timing_timeout_remote_g2{,_d} echo -n "ed : Echo/Voicemail directory :"; EvaluateVar file_echotest{,_d}
echo -n "rt : Repeater timeout (sec) :"; EvaluateVar timing_timeout_local_rptr{,_d} echo -n "dd : DTMF directory :"; EvaluateVar file_dtmf{,_d}
echo -n "pw : Echo play wait (sec) :"; EvaluateVar timing_play_wait{,_d} echo -n "vf : QnetVoice filename :"; EvaluateVar file_qnvoicefile{,_d}
echo -n "pd : Echo play delay (msec) :"; EvaluateVar timing_play_delay{,_d} echo -n "gf : Gateways filename :"; EvaluateVar file_gwys{,_d}
echo -n "ad : Announce directory :"; EvaluateVar file_announce_dir{,_d}
echo
echo " Timing controls"
echo -n "et : Echo timeout (sec) :"; EvaluateVar timing_timeout_echo{,_d}
echo -n "vt : Voicemail timeout (sec) :"; EvaluateVar timing_timeout_voicemail{,_d}
echo -n "gt : G2 timeout (sec) :"; EvaluateVar timing_timeout_remote_g2{,_d}
echo -n "rt : Repeater timeout (sec) :"; EvaluateVar timing_timeout_local_rptr{,_d}
echo -n "pw : Echo play wait (sec) :"; EvaluateVar timing_play_wait{,_d}
echo -n "pd : Echo play delay (msec) :"; EvaluateVar timing_play_delay{,_d}
fi
EndMenu EndMenu
if [[ "$key" == sf* ]]; then file_status="$value" if [[ "$key" == sf* ]]; then file_status="$value"
@ -195,8 +205,10 @@ IrcddbMenu () {
echo echo
echo "l : Login - must be a legal callsign = '${ircddb_login}'" echo "l : Login - must be a legal callsign = '${ircddb_login}'"
echo -n "h : Hostname for IRC Server = "; EvaluateVar ircddb_host{,_d} echo -n "h : Hostname for IRC Server = "; EvaluateVar ircddb_host{,_d}
echo -n "po : IRC TCP port = "; EvaluateVar ircddb_port{,_d} if [ -n "$em" ]; then
echo -n "pa : IRC Password = "; EvaluateVar ircddb_password{,_d} echo -n "po : IRC TCP port = "; EvaluateVar ircddb_port{,_d}
echo -n "pa : IRC Password = "; EvaluateVar ircddb_password{,_d}
fi
EndMenu EndMenu
if [[ "$key" == l* ]]; then ircddb_login="${value^^}" if [[ "$key" == l* ]]; then ircddb_login="${value^^}"
@ -219,17 +231,19 @@ GateMenu () {
echo echo
echo " Gateway/APRS Menu" echo " Gateway/APRS Menu"
echo echo
echo " Gateway Option - default values are usually best" echo " Gateway Option"
echo -n "r : Regenerate Headers = "; EvaluateVar gateway_header_regen{,_d} if [ -n "$em" ]; then
echo -n "s : Send IRC network Module Info = "; EvaluateVar gateway_send_qrgs_maps{,_d} echo -n "r : Regenerate Headers = "; EvaluateVar gateway_header_regen{,_d}
echo -n "i : IRC TCP local network address = "; EvaluateVar gateway_local_irc_ip{,_d} echo -n "s : Send IRC network Module Info = "; EvaluateVar gateway_send_qrgs_maps{,_d}
echo -n "p : IRC TCP port number = "; EvaluateVar gateway_port{,_d} echo -n "i : IRC TCP local network address = "; EvaluateVar gateway_local_irc_ip{,_d}
echo -n "tl : UNIX socket to QnetLink = "; EvaluateVar gateway_gate2link{,_d} echo -n "p : IRC TCP port number = "; EvaluateVar gateway_port{,_d}
echo -n "fl : UNIX socket from QnetLink = "; EvaluateVar gateway_link2gate{,_d} echo -n "tl : UNIX socket to QnetLink = "; EvaluateVar gateway_gate2link{,_d}
echo -n "ta : UNIX socket to Modem A = "; EvaluateVar gateway_gate2modema{,_d} echo -n "fl : UNIX socket from QnetLink = "; EvaluateVar gateway_link2gate{,_d}
echo -n "tb : UNIX socket to Modem B = "; EvaluateVar gateway_gate2modemb{,_d} echo -n "ta : UNIX socket to Modem A = "; EvaluateVar gateway_gate2modema{,_d}
echo -n "tc : UNIX socket to Modem C = "; EvaluateVar gateway_gate2modemc{,_d} echo -n "tb : UNIX socket to Modem B = "; EvaluateVar gateway_gate2modemb{,_d}
echo -n "fm : UNIX socket from Modem(s) = "; EvaluateVar gateway_modem2gate{,_d} echo -n "tc : UNIX socket to Modem C = "; EvaluateVar gateway_gate2modemc{,_d}
echo -n "fm : UNIX socket from Modem(s) = "; EvaluateVar gateway_modem2gate{,_d}
fi
echo -n "la : Latitude (-90.0 to 90.0) = "; EvaluateVar gateway_latitude{,_d} echo -n "la : Latitude (-90.0 to 90.0) = "; EvaluateVar gateway_latitude{,_d}
echo -n "lo : Longitude (-180.0 to 180.0) = "; EvaluateVar gateway_longitude{,_d} echo -n "lo : Longitude (-180.0 to 180.0) = "; EvaluateVar gateway_longitude{,_d}
echo -n "d1 : Description #1 (20 chars max) = "; EvaluateVar gateway_desc1{,_d} echo -n "d1 : Description #1 (20 chars max) = "; EvaluateVar gateway_desc1{,_d}
@ -238,10 +252,12 @@ GateMenu () {
echo echo
echo " APRS - Repeater/User position tracking" echo " APRS - Repeater/User position tracking"
echo -n "e : Enable APRS Tracking = "; EvaluateVar aprs_enable{,_d} echo -n "e : Enable APRS Tracking = "; EvaluateVar aprs_enable{,_d}
echo -n "h : APRS hostname = "; EvaluateVar aprs_host{,_d} if [ -n "$em" ]; then
echo -n "ap : APRS TCP port number = "; EvaluateVar aprs_port{,_d} echo -n "h : APRS hostname = "; EvaluateVar aprs_host{,_d}
echo -n "k : APRS Keep-alive interval (min) = "; EvaluateVar aprs_interval{,_d} echo -n "ap : APRS TCP port number = "; EvaluateVar aprs_port{,_d}
echo -n "af : APRS Filter (experimental) = "; EvaluateVar aprs_filter{,_d} echo -n "k : APRS Keep-alive interval (min) = "; EvaluateVar aprs_interval{,_d}
echo -n "af : APRS Filter (experimental) = "; EvaluateVar aprs_filter{,_d}
fi
EndMenu EndMenu
if [[ "$key" == r* ]]; then SetBooleanValue gateway_header_regen "$value" if [[ "$key" == r* ]]; then SetBooleanValue gateway_header_regen "$value"
@ -332,10 +348,12 @@ ModuleMenu () {
echo -n "of : Offset in Hz = "; EvaluateVar {${mod},module_x}_offset echo -n "of : Offset in Hz = "; EvaluateVar {${mod},module_x}_offset
echo -n "ra : Range (in meters, 1 mile=1609.344 meters) = "; EvaluateVar {${mod},module_x}_range echo -n "ra : Range (in meters, 1 mile=1609.344 meters) = "; EvaluateVar {${mod},module_x}_range
echo -n "ag : Above ground level (in meters) = "; EvaluateVar {${mod},module_x}_agl echo -n "ag : Above ground level (in meters) = "; EvaluateVar {${mod},module_x}_agl
echo -n "in : Inactivity for this many minutes unlinks = "; EvaluateVar {${mod},module_x}_inactivity if [ -n "$em" ]; then
echo -n "wa : Wait this many msec for the next packet = "; EvaluateVar {${mod},module_x}_packet_wait echo -n "in : Inactivity for this many minutes unlinks = "; EvaluateVar {${mod},module_x}_inactivity
echo -n "ac : Send acknowledgment on each transmission = "; EvaluateVar {${mod},module_x}_acknowledge echo -n "wa : Wait this many msec for the next packet = "; EvaluateVar {${mod},module_x}_packet_wait
echo -n "ad : acknowledgment delay (in msec) = "; EvaluateVar {${mod},module_x}_ack_delay echo -n "ac : Send acknowledgment on each transmission = "; EvaluateVar {${mod},module_x}_acknowledge
echo -n "ad : acknowledgment delay (in msec) = "; EvaluateVar {${mod},module_x}_ack_delay
fi
if [[ "${!mod}" == dvap ]]; then if [[ "${!mod}" == dvap ]]; then
echo -n "po : Power (in dBm from -12 to 10) = "; EvaluateVar {${mod},dvap}_power echo -n "po : Power (in dBm from -12 to 10) = "; EvaluateVar {${mod},dvap}_power
echo -n "sq : Squelch (in dBm from -128 to -45) = "; EvaluateVar {${mod},dvap}_squelch echo -n "sq : Squelch (in dBm from -128 to -45) = "; EvaluateVar {${mod},dvap}_squelch
@ -529,6 +547,7 @@ WriteCFGFile () {
[ -z "${timing_play_delay+x}" ] || echo "timing_play_delay=${timing_play_delay}" >> $outFile [ -z "${timing_play_delay+x}" ] || echo "timing_play_delay=${timing_play_delay}" >> $outFile
} }
# Execution starts here!
# source files # source files
if [ -e ./defaults ]; then if [ -e ./defaults ]; then
source ./defaults source ./defaults
@ -543,6 +562,11 @@ else
sleep 1 sleep 1
fi fi
# process arguments
if [[ "$1" == ex* ]]; then
em="expertMode"
fi
# main loop # main loop
while [[ "$ans" != q* ]] while [[ "$ans" != q* ]]
do do
@ -550,13 +574,17 @@ do
echo echo
echo " Main Menu" echo " Main Menu"
echo echo
echo -n "a : Module A - "; if [ -z $module_a ]; then echo "<EMPTY>"; else echo "${module_a^^}"; fi echo -n "a : Module A - "; if [ -z $module_a ]; then echo "<EMPTY>"; else echo "${module_a^^}"; fi
echo -n "b : Module B - "; if [ -z $module_b ]; then echo "<EMPTY>"; else echo "${module_b^^}"; fi echo -n "b : Module B - "; if [ -z $module_b ]; then echo "<EMPTY>"; else echo "${module_b^^}"; fi
echo -n "c : Module C - "; if [ -z $module_c ]; then echo "<EMPTY>"; else echo "${module_c^^}"; fi echo -n "c : Module C - "; if [ -z $module_c ]; then echo "<EMPTY>"; else echo "${module_c^^}"; fi
echo "i : IRCDDB Menu - login = '${ircddb_login}'" echo "i : IRCDDB Menu - login = '${ircddb_login}'"
echo "g : Gateway/APRS Menu - default values are usually fine" echo "g : Gateway/APRS Menu - default values are usually fine"
echo "l : Link/D-Plus Menu - linking access" echo "l : Link/D-Plus Menu - linking access"
echo "f : Files/Logs/Timings - miscellaneous parameters" if [ -n "$em" ]; then
echo "d : Debugging/Files/Timings - miscellaneous parameters"
else
echo "d : Debuging - additional log entries"
fi
echo echo
if [ -n $module_a ] || [ -n $module_b ] || [ -n $module_c ] && [ -n $ircddb_login ]; then if [ -n $module_a ] || [ -n $module_b ] || [ -n $module_c ] && [ -n $ircddb_login ]; then
echo "w : Write qn.cfg configuration file (overwrites any existing file)" echo "w : Write qn.cfg configuration file (overwrites any existing file)"
@ -570,7 +598,7 @@ do
elif [[ "$ans" == i* ]]; then IrcddbMenu elif [[ "$ans" == i* ]]; then IrcddbMenu
elif [[ "$ans" == g* ]]; then GateMenu elif [[ "$ans" == g* ]]; then GateMenu
elif [[ "$ans" == l* ]]; then LinkMenu elif [[ "$ans" == l* ]]; then LinkMenu
elif [[ "$ans" == f* ]]; then FileMenu elif [[ "$ans" == d* ]]; then FileMenu
elif [[ "$ans" == w* ]]; then WriteCFGFile elif [[ "$ans" == w* ]]; then WriteCFGFile
fi fi
done done

Loading…
Cancel
Save

Powered by TurnKey Linux.