add support for adjusting the discriminator BW and post demod BW for hotspots;

pull/12/head
Bryan Biedenkapp 4 years ago
parent c0bac0024a
commit a441d468c6

@ -1491,6 +1491,10 @@ bool Host::createModem()
int rxTuning = modemConf["rxTuning"].as<int>(0); int rxTuning = modemConf["rxTuning"].as<int>(0);
int txTuning = modemConf["txTuning"].as<int>(0); int txTuning = modemConf["txTuning"].as<int>(0);
uint8_t rfPower = (uint8_t)modemConf["rfPower"].as<uint32_t>(100U); uint8_t rfPower = (uint8_t)modemConf["rfPower"].as<uint32_t>(100U);
int dmrDiscBWAdj = modemConf["dmrDiscBWAdj"].as<int>(0);
int p25DiscBWAdj = modemConf["p25DiscBWAdj"].as<int>(0);
int dmrPostBWAdj = modemConf["dmrPostBWAdj"].as<int>(0);
int p25PostBWAdj = modemConf["p25PostBWAdj"].as<int>(0);
int dmrSymLevel3Adj = modemConf["dmrSymLvl3Adj"].as<int>(0); int dmrSymLevel3Adj = modemConf["dmrSymLvl3Adj"].as<int>(0);
int dmrSymLevel1Adj = modemConf["dmrSymLvl1Adj"].as<int>(0); int dmrSymLevel1Adj = modemConf["dmrSymLvl1Adj"].as<int>(0);
int p25SymLevel3Adj = modemConf["p25SymLvl3Adj"].as<int>(0); int p25SymLevel3Adj = modemConf["p25SymLvl3Adj"].as<int>(0);
@ -1628,7 +1632,7 @@ bool Host::createModem()
m_modem->setLevels(rxLevel, cwIdTXLevel, dmrTXLevel, p25TXLevel); m_modem->setLevels(rxLevel, cwIdTXLevel, dmrTXLevel, p25TXLevel);
m_modem->setSymbolAdjust(dmrSymLevel3Adj, dmrSymLevel1Adj, p25SymLevel3Adj, p25SymLevel1Adj); m_modem->setSymbolAdjust(dmrSymLevel3Adj, dmrSymLevel1Adj, p25SymLevel3Adj, p25SymLevel1Adj);
m_modem->setDCOffsetParams(txDCOffset, rxDCOffset); m_modem->setDCOffsetParams(txDCOffset, rxDCOffset);
m_modem->setRFParams(rxActualFreq, txActualFreq, rfPower); m_modem->setRFParams(rxActualFreq, txActualFreq, rfPower, dmrDiscBWAdj, p25DiscBWAdj, dmrPostBWAdj, p25PostBWAdj);
m_modem->setDMRColorCode(m_dmrColorCode); m_modem->setDMRColorCode(m_dmrColorCode);
m_modem->setP25NAC(m_p25NAC); m_modem->setP25NAC(m_p25NAC);

@ -142,6 +142,11 @@ HostCal::HostCal(const std::string& confFile) :
m_p25Rx1K(false), m_p25Rx1K(false),
m_txDCOffset(0), m_txDCOffset(0),
m_rxDCOffset(0), m_rxDCOffset(0),
m_isHotspot(false),
m_dmrDiscBWAdj(0),
m_p25DiscBWAdj(0),
m_dmrPostBWAdj(0),
m_p25PostBWAdj(0),
m_dmrSymLevel3Adj(0), m_dmrSymLevel3Adj(0),
m_dmrSymLevel1Adj(0), m_dmrSymLevel1Adj(0),
m_p25SymLevel3Adj(0), m_p25SymLevel3Adj(0),
@ -369,8 +374,6 @@ int HostCal::run()
return 1; return 1;
} }
displayHelp();
m_rxInvert = modemConf["rxInvert"].as<bool>(false); m_rxInvert = modemConf["rxInvert"].as<bool>(false);
m_txInvert = modemConf["txInvert"].as<bool>(false); m_txInvert = modemConf["txInvert"].as<bool>(false);
m_pttInvert = modemConf["pttInvert"].as<bool>(false); m_pttInvert = modemConf["pttInvert"].as<bool>(false);
@ -381,6 +384,11 @@ int HostCal::run()
m_rxLevel = modemConf["rxLevel"].as<float>(50.0F); m_rxLevel = modemConf["rxLevel"].as<float>(50.0F);
m_txLevel = modemConf["txLevel"].as<float>(50.0F); m_txLevel = modemConf["txLevel"].as<float>(50.0F);
m_dmrDiscBWAdj = modemConf["dmrDiscBWAdj"].as<int>(0);
m_p25DiscBWAdj = modemConf["p25DiscBWAdj"].as<int>(0);
m_dmrPostBWAdj = modemConf["dmrPostBWAdj"].as<int>(0);
m_p25PostBWAdj = modemConf["p25PostBWAdj"].as<int>(0);
m_dmrSymLevel3Adj = modemConf["dmrSymLvl3Adj"].as<int>(0); m_dmrSymLevel3Adj = modemConf["dmrSymLvl3Adj"].as<int>(0);
m_dmrSymLevel1Adj = modemConf["dmrSymLvl1Adj"].as<int>(0); m_dmrSymLevel1Adj = modemConf["dmrSymLvl1Adj"].as<int>(0);
m_p25SymLevel3Adj = modemConf["p25SymLvl3Adj"].as<int>(0); m_p25SymLevel3Adj = modemConf["p25SymLvl3Adj"].as<int>(0);
@ -392,6 +400,8 @@ int HostCal::run()
writeConfig(); writeConfig();
displayHelp();
printStatus(); printStatus();
bool end = false; bool end = false;
@ -401,30 +411,38 @@ int HostCal::run()
/** Level Adjustment Commands */ /** Level Adjustment Commands */
case 'I': case 'I':
{ {
m_txInvert = !m_txInvert; if (!m_isHotspot) {
LogMessage(LOG_CAL, " - TX Invert: %s", m_txInvert ? "On" : "Off"); m_txInvert = !m_txInvert;
writeConfig(); LogMessage(LOG_CAL, " - TX Invert: %s", m_txInvert ? "On" : "Off");
writeConfig();
}
} }
break; break;
case 'i': case 'i':
{ {
m_rxInvert = !m_rxInvert; if (!m_isHotspot) {
LogMessage(LOG_CAL, " - RX Invert: %s", m_rxInvert ? "On" : "Off"); m_rxInvert = !m_rxInvert;
writeConfig(); LogMessage(LOG_CAL, " - RX Invert: %s", m_rxInvert ? "On" : "Off");
writeConfig();
}
} }
break; break;
case 'p': case 'p':
{ {
m_pttInvert = !m_pttInvert; if (!m_isHotspot) {
LogMessage(LOG_CAL, " - PTT Invert: %s", m_pttInvert ? "On" : "Off"); m_pttInvert = !m_pttInvert;
writeConfig(); LogMessage(LOG_CAL, " - PTT Invert: %s", m_pttInvert ? "On" : "Off");
writeConfig();
}
} }
break; break;
case 'd': case 'd':
{ {
m_dcBlocker = !m_dcBlocker; if (!m_isHotspot) {
LogMessage(LOG_CAL, " - DC Blocker: %s", m_dcBlocker ? "On" : "Off"); m_dcBlocker = !m_dcBlocker;
writeConfig(); LogMessage(LOG_CAL, " - DC Blocker: %s", m_dcBlocker ? "On" : "Off");
writeConfig();
}
} }
break; break;
case 'D': case 'D':
@ -560,31 +578,127 @@ int HostCal::run()
/** Engineering Commands */ /** Engineering Commands */
case '-': case '-':
setDMRSymLevel3Adj(-1); if (!m_isHotspot)
setDMRSymLevel3Adj(-1);
break; break;
case '=': case '=':
setDMRSymLevel3Adj(1); if (!m_isHotspot)
setDMRSymLevel3Adj(1);
break; break;
case '_': case '_':
setDMRSymLevel1Adj(-1); if (!m_isHotspot)
setDMRSymLevel1Adj(-1);
break; break;
case '+': case '+':
setDMRSymLevel1Adj(1); if (!m_isHotspot)
setDMRSymLevel1Adj(1);
break; break;
case '[': case '[':
setP25SymLevel3Adj(-1); if (!m_isHotspot)
setP25SymLevel3Adj(-1);
break; break;
case ']': case ']':
setP25SymLevel3Adj(1); if (!m_isHotspot)
setP25SymLevel3Adj(1);
break; break;
case '{': case '{':
setP25SymLevel1Adj(-1); if (!m_isHotspot)
setP25SymLevel1Adj(-1);
break; break;
case '}': case '}':
setP25SymLevel1Adj(1); if (!m_isHotspot)
setP25SymLevel1Adj(1);
break; break;
case '1':
{
if (m_isHotspot) {
char value[5] = { '\0' };
::fprintf(stdout, "> DMR Discriminator BW Offset [%d] ? ", m_dmrDiscBWAdj);
::fflush(stdout);
m_console.getLine(value, 5, 0);
if (value[0] != '\0') {
int bwAdj = m_dmrDiscBWAdj;
sscanf(value, "%d", &bwAdj);
m_dmrDiscBWAdj = bwAdj;
writeRFParams();
}
printStatus();
}
}
break;
case '2':
{
if (m_isHotspot) {
char value[5] = { '\0' };
::fprintf(stdout, "> P25 Discriminator BW Offset [%d] ? ", m_p25DiscBWAdj);
::fflush(stdout);
m_console.getLine(value, 5, 0);
if (value[0] != '\0') {
int bwAdj = m_p25DiscBWAdj;
sscanf(value, "%d", &bwAdj);
m_p25DiscBWAdj = bwAdj;
writeRFParams();
}
printStatus();
}
}
break;
case '3':
{
if (m_isHotspot) {
char value[5] = { '\0' };
::fprintf(stdout, "> DMR Post Demodulation BW Offset [%d] ? ", m_dmrPostBWAdj);
::fflush(stdout);
m_console.getLine(value, 5, 0);
if (value[0] != '\0') {
int bwAdj = m_dmrPostBWAdj;
sscanf(value, "%d", &bwAdj);
m_dmrPostBWAdj = bwAdj;
writeRFParams();
}
printStatus();
}
}
break;
case '4':
{
if (m_isHotspot) {
char value[5] = { '\0' };
::fprintf(stdout, "> P25 Post Demodulation BW Offset [%d] ? ", m_p25PostBWAdj);
::fflush(stdout);
m_console.getLine(value, 5, 0);
if (value[0] != '\0') {
int bwAdj = m_p25PostBWAdj;
sscanf(value, "%d", &bwAdj);
m_p25PostBWAdj = bwAdj;
writeRFParams();
}
printStatus();
}
}
break;
/** Mode Commands */ /** Mode Commands */
case 'Z': case 'Z':
{ {
@ -912,7 +1026,10 @@ bool HostCal::portModemHandler(Modem* modem, uint32_t ms, RESP_TYPE_DVM rspType,
case CMD_GET_STATUS: case CMD_GET_STATUS:
{ {
m_isHotspot = (buffer[3U] & 0x01U) == 0x01U;
uint8_t modemState = buffer[4U]; uint8_t modemState = buffer[4U];
bool tx = (buffer[5U] & 0x01U) == 0x01U; bool tx = (buffer[5U] & 0x01U) == 0x01U;
bool adcOverflow = (buffer[5U] & 0x02U) == 0x02U; bool adcOverflow = (buffer[5U] & 0x02U) == 0x02U;
@ -920,8 +1037,8 @@ bool HostCal::portModemHandler(Modem* modem, uint32_t ms, RESP_TYPE_DVM rspType,
bool txOverflow = (buffer[5U] & 0x08U) == 0x08U; bool txOverflow = (buffer[5U] & 0x08U) == 0x08U;
bool dacOverflow = (buffer[5U] & 0x20U) == 0x20U; bool dacOverflow = (buffer[5U] & 0x20U) == 0x20U;
LogMessage(LOG_CAL, " - Diagnostic Values [Modem State: %u, Transmitting: %d, ADC Overflow: %d, Rx Overflow: %d, Tx Overflow: %d, DAC Overflow: %d]", LogMessage(LOG_CAL, " - Diagnostic Values [Modem State: %u, Transmitting: %d, ADC Overflow: %d, Rx Overflow: %d, Tx Overflow: %d, DAC Overflow: %d, HS: %u]",
modemState, tx, adcOverflow, rxOverflow, txOverflow, dacOverflow); modemState, tx, adcOverflow, rxOverflow, txOverflow, dacOverflow, m_isHotspot);
} }
break; break;
@ -967,19 +1084,25 @@ void HostCal::displayHelp()
LogMessage(LOG_CAL, " S/s Save calibration settings to configuration file"); LogMessage(LOG_CAL, " S/s Save calibration settings to configuration file");
LogMessage(LOG_CAL, " Q/q Quit"); LogMessage(LOG_CAL, " Q/q Quit");
LogMessage(LOG_CAL, "Level Adjustment Commands:"); LogMessage(LOG_CAL, "Level Adjustment Commands:");
LogMessage(LOG_CAL, " I Toggle transmit inversion"); if (!m_isHotspot) {
LogMessage(LOG_CAL, " i Toggle receive inversion"); LogMessage(LOG_CAL, " I Toggle transmit inversion");
LogMessage(LOG_CAL, " p Toggle PTT inversion"); LogMessage(LOG_CAL, " i Toggle receive inversion");
LogMessage(LOG_CAL, " d Toggle DC blocker"); LogMessage(LOG_CAL, " p Toggle PTT inversion");
LogMessage(LOG_CAL, " d Toggle DC blocker");
}
LogMessage(LOG_CAL, " R/r Increase/Decrease receive level"); LogMessage(LOG_CAL, " R/r Increase/Decrease receive level");
LogMessage(LOG_CAL, " T/t Increase/Decrease transmit level"); LogMessage(LOG_CAL, " T/t Increase/Decrease transmit level");
LogMessage(LOG_CAL, " C/c Increase/Decrease RX DC offset level"); if (!m_isHotspot) {
LogMessage(LOG_CAL, " O/o Increase/Decrease TX DC offset level"); LogMessage(LOG_CAL, " C/c Increase/Decrease RX DC offset level");
LogMessage(LOG_CAL, " O/o Increase/Decrease TX DC offset level");
}
LogMessage(LOG_CAL, " N Set FDMA Preambles"); LogMessage(LOG_CAL, " N Set FDMA Preambles");
LogMessage(LOG_CAL, " W Set DMR Rx Delay"); LogMessage(LOG_CAL, " W Set DMR Rx Delay");
LogMessage(LOG_CAL, " w Set P25 Correlation Count"); LogMessage(LOG_CAL, " w Set P25 Correlation Count");
LogMessage(LOG_CAL, " F Set Rx Frequency Adjustment (affects hotspots only!)"); if (m_isHotspot) {
LogMessage(LOG_CAL, " f Set Tx Frequency Adjustment (affects hotspots only!)"); LogMessage(LOG_CAL, " F Set Rx Frequency Adjustment (hotspot modems only!)");
LogMessage(LOG_CAL, " f Set Tx Frequency Adjustment (hotspot modems only!)");
}
LogMessage(LOG_CAL, "Mode Commands:"); LogMessage(LOG_CAL, "Mode Commands:");
LogMessage(LOG_CAL, " Z %s", DMR_CAL_STR); LogMessage(LOG_CAL, " Z %s", DMR_CAL_STR);
LogMessage(LOG_CAL, " z %s", P25_CAL_STR); LogMessage(LOG_CAL, " z %s", P25_CAL_STR);
@ -994,10 +1117,18 @@ void HostCal::displayHelp()
LogMessage(LOG_CAL, " j %s", P25_FEC_1K_STR); LogMessage(LOG_CAL, " j %s", P25_FEC_1K_STR);
LogMessage(LOG_CAL, " x %s", RSSI_CAL_STR); LogMessage(LOG_CAL, " x %s", RSSI_CAL_STR);
LogMessage(LOG_CAL, "Engineering Commands:"); LogMessage(LOG_CAL, "Engineering Commands:");
LogMessage(LOG_CAL, " -/= Increase/Decrease DMR +/- 3 Symbol Level"); if (!m_isHotspot) {
LogMessage(LOG_CAL, " _/+ Increase/Decrease DMR +/- 1 Symbol Level"); LogMessage(LOG_CAL, " -/= Inc/Dec DMR +/- 3 Symbol Level (dedicated modems only!)");
LogMessage(LOG_CAL, " [/] Increase/Decrease P25 +/- 3 Symbol Level"); LogMessage(LOG_CAL, " _/+ Inc/Dec DMR +/- 1 Symbol Level (dedicated modems only!)");
LogMessage(LOG_CAL, " {/} Increase/Decrease P25 +/- 1 Symbol Level"); LogMessage(LOG_CAL, " [/] Inc/Dec P25 +/- 3 Symbol Level (dedicated modems only!)");
LogMessage(LOG_CAL, " {/} Inc/Dec P25 +/- 1 Symbol Level (dedicated modems only!)");
}
else {
LogMessage(LOG_CAL, " 1 Set DMR Disc. Bandwidth Offset (hotspot modems only!)");
LogMessage(LOG_CAL, " 2 Set P25 Disc. Bandwidth Offset (hotspot modems only!)");
LogMessage(LOG_CAL, " 3 Set DMR Post Demod Bandwidth Offset (hotspot modems only!)");
LogMessage(LOG_CAL, " 4 Set P25 Post Demod Bandwidth Offset (hotspot modems only!)");
}
} }
/// <summary> /// <summary>
@ -1768,10 +1899,10 @@ bool HostCal::writeConfig(uint8_t modeOverride)
/// <returns></returns> /// <returns></returns>
bool HostCal::writeRFParams() bool HostCal::writeRFParams()
{ {
unsigned char buffer[13U]; unsigned char buffer[17U];
buffer[0U] = DVM_FRAME_START; buffer[0U] = DVM_FRAME_START;
buffer[1U] = 13U; buffer[1U] = 17U;
buffer[2U] = CMD_SET_RFPARAMS; buffer[2U] = CMD_SET_RFPARAMS;
buffer[3U] = 0x00U; buffer[3U] = 0x00U;
@ -1788,9 +1919,18 @@ bool HostCal::writeRFParams()
buffer[12U] = (unsigned char)(100 * 2.55F + 0.5F); // cal sets power fixed to 100 buffer[12U] = (unsigned char)(100 * 2.55F + 0.5F); // cal sets power fixed to 100
m_conf["system"]["modem"]["m_dmrDiscBWAdj"] = __INT_STR(m_dmrDiscBWAdj);
buffer[13U] = (uint8_t)(m_dmrDiscBWAdj + 128);
m_conf["system"]["modem"]["m_p25DiscBWAdj"] = __INT_STR(m_p25DiscBWAdj);
buffer[14U] = (uint8_t)(m_p25DiscBWAdj + 128);
m_conf["system"]["modem"]["m_dmrPostBWAdj"] = __INT_STR(m_dmrPostBWAdj);
buffer[15U] = (uint8_t)(m_dmrPostBWAdj + 128);
m_conf["system"]["modem"]["m_p25PostBWAdj"] = __INT_STR(m_p25PostBWAdj);
buffer[16U] = (uint8_t)(m_p25PostBWAdj + 128);
// CUtils::dump(1U, "Written", buffer, len); // CUtils::dump(1U, "Written", buffer, len);
int ret = m_modem->write(buffer, 13U); int ret = m_modem->write(buffer, 17U);
if (ret <= 0) if (ret <= 0)
return false; return false;

@ -85,6 +85,13 @@ private:
int m_txDCOffset; int m_txDCOffset;
int m_rxDCOffset; int m_rxDCOffset;
bool m_isHotspot;
int8_t m_dmrDiscBWAdj;
int8_t m_p25DiscBWAdj;
int8_t m_dmrPostBWAdj;
int8_t m_p25PostBWAdj;
int m_dmrSymLevel3Adj; int m_dmrSymLevel3Adj;
int m_dmrSymLevel1Adj; int m_dmrSymLevel1Adj;
int m_p25SymLevel3Adj; int m_p25SymLevel3Adj;

@ -95,9 +95,14 @@ Modem::Modem(port::IModemPort* port, bool duplex, bool rxInvert, bool txInvert,
m_p25Enabled(false), m_p25Enabled(false),
m_rxDCOffset(0), m_rxDCOffset(0),
m_txDCOffset(0), m_txDCOffset(0),
m_isHotspot(false),
m_rxFrequency(0U), m_rxFrequency(0U),
m_txFrequency(0U), m_txFrequency(0U),
m_rfPower(0U), m_rfPower(0U),
m_dmrDiscBWAdj(0),
m_p25DiscBWAdj(0),
m_dmrPostBWAdj(0),
m_p25PostBWAdj(0),
m_dmrSymLevel3Adj(0), m_dmrSymLevel3Adj(0),
m_dmrSymLevel1Adj(0), m_dmrSymLevel1Adj(0),
m_p25SymLevel3Adj(0), m_p25SymLevel3Adj(0),
@ -224,11 +229,20 @@ void Modem::setSymbolAdjust(int dmrSymLevel3Adj, int dmrSymLevel1Adj, int p25Sym
/// <param name="rxFreq"></param> /// <param name="rxFreq"></param>
/// <param name="txFreq"></param> /// <param name="txFreq"></param>
/// <param name="rfPower"></param> /// <param name="rfPower"></param>
void Modem::setRFParams(uint32_t rxFreq, uint32_t txFreq, uint8_t rfPower) /// <param name="dmrDiscBWAdj"></param>
/// <param name="p25DiscBWAdj"></param>
/// <param name="dmrPostBWAdj"></param>
/// <param name="p25PostBWAdj"></param>
void Modem::setRFParams(uint32_t rxFreq, uint32_t txFreq, uint8_t rfPower, int8_t dmrDiscBWAdj, int8_t p25DiscBWAdj, int8_t dmrPostBWAdj, int8_t p25PostBWAdj)
{ {
m_rfPower = rfPower; m_rfPower = rfPower;
m_rxFrequency = rxFreq; m_rxFrequency = rxFreq;
m_txFrequency = txFreq; m_txFrequency = txFreq;
m_dmrDiscBWAdj = dmrDiscBWAdj;
m_p25DiscBWAdj = p25DiscBWAdj;
m_dmrPostBWAdj = dmrPostBWAdj;
m_p25PostBWAdj = p25PostBWAdj;
} }
/// <summary> /// <summary>
@ -584,6 +598,8 @@ void Modem::clock(uint32_t ms)
//if (m_trace) //if (m_trace)
// Utils::dump(1U, "Get Status", m_buffer, m_length); // Utils::dump(1U, "Get Status", m_buffer, m_length);
m_isHotspot = (m_buffer[3U] & 0x01U) == 0x01U;
m_modemState = (DVM_STATE)m_buffer[4U]; m_modemState = (DVM_STATE)m_buffer[4U];
m_tx = (m_buffer[5U] & 0x01U) == 0x01U; m_tx = (m_buffer[5U] & 0x01U) == 0x01U;
@ -1473,10 +1489,10 @@ bool Modem::writeSymbolAdjust()
/// <returns></returns> /// <returns></returns>
bool Modem::writeRFParams() bool Modem::writeRFParams()
{ {
unsigned char buffer[13U]; unsigned char buffer[17U];
buffer[0U] = DVM_FRAME_START; buffer[0U] = DVM_FRAME_START;
buffer[1U] = 13U; buffer[1U] = 17U;
buffer[2U] = CMD_SET_RFPARAMS; buffer[2U] = CMD_SET_RFPARAMS;
buffer[3U] = 0x00U; buffer[3U] = 0x00U;
@ -1493,9 +1509,14 @@ bool Modem::writeRFParams()
buffer[12U] = (unsigned char)(m_rfPower * 2.55F + 0.5F); buffer[12U] = (unsigned char)(m_rfPower * 2.55F + 0.5F);
buffer[13U] = (uint8_t)(m_dmrDiscBWAdj + 128);
buffer[14U] = (uint8_t)(m_p25DiscBWAdj + 128);
buffer[15U] = (uint8_t)(m_dmrPostBWAdj + 128);
buffer[16U] = (uint8_t)(m_p25PostBWAdj + 128);
// CUtils::dump(1U, "Written", buffer, len); // CUtils::dump(1U, "Written", buffer, len);
int ret = m_port->write(buffer, 13U); int ret = m_port->write(buffer, 17U);
if (ret <= 0) if (ret <= 0)
return false; return false;

@ -193,7 +193,7 @@ namespace modem
/// <summary>Sets the symbol adjustment levels.</summary> /// <summary>Sets the symbol adjustment levels.</summary>
void setSymbolAdjust(int dmrSymLevel3Adj, int dmrSymLevel1Adj, int p25SymLevel3Adj, int p25SymLevel1Adj); void setSymbolAdjust(int dmrSymLevel3Adj, int dmrSymLevel1Adj, int p25SymLevel3Adj, int p25SymLevel1Adj);
/// <summary>Sets the RF parameters.</summary> /// <summary>Sets the RF parameters.</summary>
void setRFParams(uint32_t rxFreq, uint32_t txFreq, uint8_t rfPower); void setRFParams(uint32_t rxFreq, uint32_t txFreq, uint8_t rfPower, int8_t dmrDiscBWAdj, int8_t p25DiscBWAdj, int8_t dmrPostBWAdj, int8_t p25PostBWAdj);
/// <summary>Sets the DMR color code.</summary> /// <summary>Sets the DMR color code.</summary>
void setDMRColorCode(uint32_t colorCode); void setDMRColorCode(uint32_t colorCode);
/// <summary>Sets the P25 NAC.</summary> /// <summary>Sets the P25 NAC.</summary>
@ -316,10 +316,17 @@ namespace modem
int m_rxDCOffset; int m_rxDCOffset;
int m_txDCOffset; int m_txDCOffset;
bool m_isHotspot;
uint32_t m_rxFrequency; uint32_t m_rxFrequency;
uint32_t m_txFrequency; uint32_t m_txFrequency;
uint8_t m_rfPower; uint8_t m_rfPower;
int8_t m_dmrDiscBWAdj;
int8_t m_p25DiscBWAdj;
int8_t m_dmrPostBWAdj;
int8_t m_p25PostBWAdj;
int m_dmrSymLevel3Adj; int m_dmrSymLevel3Adj;
int m_dmrSymLevel1Adj; int m_dmrSymLevel1Adj;
int m_p25SymLevel3Adj; int m_p25SymLevel3Adj;

Loading…
Cancel
Save

Powered by TurnKey Linux.