RF Level is now an expert parameter for mmdvmmodem

dev
Tom Early 5 years ago
parent cf6b7104ae
commit 3d3a6c6a86

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019,2020 by Thomas A. Early N7TAE
* Copyright (C) 2019-2021 by Thomas A. Early N7TAE
*
* CQnetModem is inspired by {Modem,MMDVMHost}.cpp in
* Jonathan Naylor's brilliant MMDVMHost that is...
@ -44,7 +44,7 @@
#include "QnetModem.h"
#include "QnetConfigure.h"
#define MODEM_VERSION "QnetModem-608"
#define MODEM_VERSION "QnetModem-708"
#define MAX_RESPONSES 30
const unsigned char FRAME_START = 0xE0U;
@ -179,7 +179,7 @@ bool CQnetModem::SetFrequency()
frame.length = 12U;
else
{
frame.frequency.level = 255U;
frame.frequency.level = (unsigned char)RF_LEVEL;
frame.frequency.ps = __builtin_bswap32(htonl(pocsagFrequency));
frame.length = 17U;
@ -892,6 +892,7 @@ bool CQnetModem::ReadConfig(const char *cfgFile)
cfg.GetValue(modem_path+"_tx_delay", type, TX_DELAY, 0, 1000);
cfg.GetValue(modem_path+"_rx_level", type, RX_LEVEL, 0, 255);
cfg.GetValue(modem_path+"_tx_level", type, TX_LEVEL, 0, 255);
cfg.GetValue(modem_path+"_rf_level", type, RF_LEVEL, 0, 255);
cfg.GetValue(modem_path+"_packet_wait", type, PACKET_WAIT, 18, 30);
packet_wait = 1.0E-3 * double(PACKET_WAIT);

@ -141,7 +141,7 @@ using SMODEM = struct mmodem_tag
unsigned char zero; // should be zero;
uint32_t rx; // receive frequency
uint32_t tx; // transmitter frequency
unsigned char level; // rf level for pocsag?
unsigned char level; // rf level
uint32_t ps; // pocsag frequency, default 433000000U
} frequency;
struct
@ -225,7 +225,7 @@ private:
char RPTR_MOD;
std::string MODEM_DEVICE, RPTR;
double TX_FREQUENCY, RX_FREQUENCY, TX_OFFSET, RX_OFFSET, packet_wait;
int TX_DELAY, RX_LEVEL, TX_LEVEL, PACKET_WAIT;
int TX_DELAY, RX_LEVEL, TX_LEVEL, RF_LEVEL, PACKET_WAIT;
bool DUPLEX, RX_INVERT, TX_INVERT, PTT_INVERT, LOG_QSO, LOG_DEBUG;
// parameters

@ -1,5 +1,5 @@
#
# Copyright (c) 2019-2020 by Thomas A. Early N7TAE
# Copyright (c) 2019-2021 by Thomas A. Early N7TAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -133,6 +133,7 @@ mmdvmmodem_ptt_invert=false # push-to-talk gate
mmdvmmodem_tx_delay=100 # delay in milliseconds
mmdvmmodem_rx_level=128 # range is 0-255
mmdvmmodem_tx_level=128 # range is 0-255
mmdvmmodem_rf_level=255 # range is 0-255
##########################################################################################################################
#

@ -474,6 +474,7 @@ ModuleMenu () {
echo -n "td : Transmit delay (in msec) for tx/rx switch = "; EvaluateVar {${mod},mmdvmmodem}_tx_delay
echo -n "tl : Transmit level (0-255) = "; EvaluateVar {${mod},mmdvmmodem}_tx_level
echo -n "rl : Receive level (0-255) = "; EvaluateVar {${mod},mmdvmmodem}_rx_level
echo -n "lv : RF level (0-255) = "; EvaluateVar {${mod},mmdvmmodem}_rf_level
fi
fi
echo "xx : Delete this module"
@ -501,6 +502,7 @@ ModuleMenu () {
elif [[ "$key" == ip* ]]; then eval ${mod}_internal_ip="$value"
elif [[ "$key" == it* ]]; then SetBooleanValue ${mod}_tx_invert "$value"
elif [[ "$key" == lp* ]]; then eval ${mod}_local_port="$value"
elif [[ "$key" == lv* ]]; then eval ${mod}_rf_level="$value"
elif [[ "$key" == of* ]]; then eval ${mod}_offset="$value"
elif [[ "$key" == pi* ]]; then SetBooleanValue ${mod}_ptt_invert="$value"
elif [[ "$key" == po* ]]; then eval ${mod}_power="$value"
@ -523,7 +525,7 @@ ModuleMenu () {
elif [[ "$key" == tx* ]]; then eval ${mod}_tx_frequency="$value"
elif [[ "$key" == xx* ]]; then
unset ${mod}_{link_at_start,callsign,{,rx_,tx_}frequency,offset,range,agl}
unset ${mod}_{inactivity,packet_wait,acknowledge,ack_delay,power,squelch,serial_number,rf_o{n,ff},{r,t}x_level}
unset ${mod}_{inactivity,packet_wait,acknowledge,ack_delay,power,squelch,serial_number,rf_o{n,ff},{rx,tx,rf}_level}
unset ${mod}_{duplex,tx_delay,rqst_count,{tx,rx,ptt}_invert,device,internal_ip,target_ip,{gateway,local}_port}
unset ${mod}_{tx_offset,rx_offset,auto_link,ap_mode}
unset ${mod}
@ -546,6 +548,7 @@ ModuleMenu () {
elif [[ "$value" == it* ]]; then unset ${mod}_tx_invert
elif [[ "$value" == lp* ]]; then unset ${mod}_local_port
elif [[ "$value" == ls* ]]; then unset ${mod}_link_at_start
elif [[ "$value" == lv* ]]; then unset ${mod}_rf_level
elif [[ "$value" == of* ]]; then unset ${mod}_offset
elif [[ "$value" == pi* ]]; then unset ${mod}_ppt_invert
elif [[ "$value" == po* ]]; then unset ${mod}_power
@ -642,6 +645,7 @@ WriteCFGFile () {
q=${p}_duplex; [ -z ${!q+x} ] || echo "${q}=${!q}" >> $outFile
q=${p}_rx_level; [ -z ${!q+x} ] || echo "${q}=${!q}" >> $outFile
q=${p}_tx_level; [ -z ${!q+x} ] || echo "${q}=${!q}" >> $outFile
q=${p}_rf_level; [ -z ${!q+x} ] || echo "${q}=${!q}" >> $outFile
q=${p}_tx_invert; [ -z ${!q+x} ] || echo "${q}=${!q}" >> $outFile
q=${p}_rx_invert; [ -z ${!q+x} ] || echo "${q}=${!q}" >> $outFile
q=${p}_ptt_invert; [ -z ${!q+x} ] || echo "${q}=${!q}" >> $outFile
@ -738,7 +742,7 @@ while [[ "$ans" != q* ]]
do
clear
echo
echo " QnConfig Main Menu V#210420"
echo " QnConfig Main Menu V#210708"
echo
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

Loading…
Cancel
Save

Powered by TurnKey Linux.