|
|
|
|
@ -55,7 +55,8 @@ using namespace modem;
|
|
|
|
|
|
|
|
|
|
#define DMR_CAL_STR "[Tx] DMR 1200 Hz Tone Mode (2.75Khz Deviation)"
|
|
|
|
|
#define P25_CAL_STR "[Tx] P25 1200 Hz Tone Mode (2.83Khz Deviation)"
|
|
|
|
|
#define LF_CAL_STR "[Tx] DMR Low Frequency Mode (80 Hz square wave)"
|
|
|
|
|
#define DMR_LF_CAL_STR "[Tx] DMR Low Frequency Mode (80 Hz square wave)"
|
|
|
|
|
#define P25_LF_CAL_STR "[Tx] P25 Low Frequency Mode (80 Hz square wave)"
|
|
|
|
|
#define DMR_CAL_1K_STR "[Tx] DMR BS 1031 Hz Test Pattern (TS2 CC1 ID1 TG9)"
|
|
|
|
|
#define DMR_DMO_CAL_1K_STR "[Tx] DMR MS 1031 Hz Test Pattern (TS2 CC1 ID1 TG9)"
|
|
|
|
|
#define P25_CAL_1K_STR "[Tx] P25 1011 Hz Test Pattern (NAC293 ID1 TG1)"
|
|
|
|
|
@ -65,15 +66,6 @@ using namespace modem;
|
|
|
|
|
#define P25_FEC_1K_STR "[Rx] P25 1011 Hz Test Pattern (NAC293 ID1 TG1)"
|
|
|
|
|
#define RSSI_CAL_STR "RSSI Calibration Mode"
|
|
|
|
|
|
|
|
|
|
#define DMR_SYM_LA_TST_STR "[Tx] DMR Symbol Test (Level A [+3])"
|
|
|
|
|
#define P25_SYM_LA_TST_STR "[Tx] P25 Symbol Test (Level A [+3])"
|
|
|
|
|
#define DMR_SYM_LB_TST_STR "[Tx] DMR Symbol Test (Level B [+1])"
|
|
|
|
|
#define P25_SYM_LB_TST_STR "[Tx] P25 Symbol Test (Level B [+1])"
|
|
|
|
|
#define DMR_SYM_LC_TST_STR "[Tx] DMR Symbol Test (Level C [-1])"
|
|
|
|
|
#define P25_SYM_LC_TST_STR "[Tx] P25 Symbol Test (Level C [-1])"
|
|
|
|
|
#define DMR_SYM_LD_TST_STR "[Tx] DMR Symbol Test (Level D [-3])"
|
|
|
|
|
#define P25_SYM_LD_TST_STR "[Tx] P25 Symbol Test (Level D [-3])"
|
|
|
|
|
|
|
|
|
|
// Voice LC MS Header, CC: 1, srcID: 1, dstID: TG9
|
|
|
|
|
const uint8_t VH_DMO1K[] = {
|
|
|
|
|
0x00U, 0x20U, 0x08U, 0x08U, 0x02U, 0x38U, 0x15U, 0x00U, 0x2CU, 0xA0U, 0x14U,
|
|
|
|
|
@ -407,100 +399,25 @@ int HostCal::run()
|
|
|
|
|
setP25SymLevel1Adj(1);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case '1':
|
|
|
|
|
{
|
|
|
|
|
m_duplex = true;
|
|
|
|
|
m_dmrEnabled = false;
|
|
|
|
|
m_dmrRx1K = false;
|
|
|
|
|
m_p25Enabled = false;
|
|
|
|
|
m_p25Rx1K = false;
|
|
|
|
|
|
|
|
|
|
if (m_mode == STATE_DMR_CAL) {
|
|
|
|
|
m_modeStr = DMR_SYM_LA_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_DMR_LEVELA);
|
|
|
|
|
}
|
|
|
|
|
else if (m_mode == STATE_P25_CAL) {
|
|
|
|
|
m_modeStr = P25_SYM_LA_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_P25_LEVELA);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '2':
|
|
|
|
|
{
|
|
|
|
|
m_duplex = true;
|
|
|
|
|
m_dmrEnabled = false;
|
|
|
|
|
m_dmrRx1K = false;
|
|
|
|
|
m_p25Enabled = false;
|
|
|
|
|
m_p25Rx1K = false;
|
|
|
|
|
|
|
|
|
|
if (m_mode == STATE_DMR_CAL) {
|
|
|
|
|
m_modeStr = DMR_SYM_LB_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_DMR_LEVELB);
|
|
|
|
|
}
|
|
|
|
|
else if (m_mode == STATE_P25_CAL) {
|
|
|
|
|
m_modeStr = P25_SYM_LB_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_P25_LEVELB);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '3':
|
|
|
|
|
{
|
|
|
|
|
m_duplex = true;
|
|
|
|
|
m_dmrEnabled = false;
|
|
|
|
|
m_dmrRx1K = false;
|
|
|
|
|
m_p25Enabled = false;
|
|
|
|
|
m_p25Rx1K = false;
|
|
|
|
|
|
|
|
|
|
if (m_mode == STATE_DMR_CAL) {
|
|
|
|
|
m_modeStr = DMR_SYM_LC_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_DMR_LEVELC);
|
|
|
|
|
}
|
|
|
|
|
else if (m_mode == STATE_P25_CAL) {
|
|
|
|
|
m_modeStr = P25_SYM_LC_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_P25_LEVELC);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '4':
|
|
|
|
|
/** Mode Commands */
|
|
|
|
|
case 'Z':
|
|
|
|
|
{
|
|
|
|
|
m_mode = STATE_DMR_CAL;
|
|
|
|
|
m_modeStr = DMR_CAL_STR;
|
|
|
|
|
m_duplex = true;
|
|
|
|
|
m_dmrEnabled = false;
|
|
|
|
|
m_dmrRx1K = false;
|
|
|
|
|
m_p25Enabled = false;
|
|
|
|
|
m_p25Rx1K = false;
|
|
|
|
|
|
|
|
|
|
if (m_mode == STATE_DMR_CAL) {
|
|
|
|
|
m_modeStr = DMR_SYM_LD_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_DMR_LEVELD);
|
|
|
|
|
}
|
|
|
|
|
else if (m_mode == STATE_P25_CAL) {
|
|
|
|
|
m_modeStr = P25_SYM_LD_TST_STR;
|
|
|
|
|
|
|
|
|
|
LogMessage(LOG_CAL, " - %s", m_modeStr.c_str());
|
|
|
|
|
writeConfig(STATE_P25_LEVELD);
|
|
|
|
|
}
|
|
|
|
|
writeConfig();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
/** Mode Commands */
|
|
|
|
|
case 'Z':
|
|
|
|
|
case 'z':
|
|
|
|
|
{
|
|
|
|
|
m_mode = STATE_DMR_CAL;
|
|
|
|
|
m_modeStr = DMR_CAL_STR;
|
|
|
|
|
m_mode = STATE_P25_CAL;
|
|
|
|
|
m_modeStr = P25_CAL_STR;
|
|
|
|
|
m_duplex = true;
|
|
|
|
|
m_dmrEnabled = false;
|
|
|
|
|
m_dmrRx1K = false;
|
|
|
|
|
@ -511,10 +428,10 @@ int HostCal::run()
|
|
|
|
|
writeConfig();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'z':
|
|
|
|
|
case 'L':
|
|
|
|
|
{
|
|
|
|
|
m_mode = STATE_P25_CAL;
|
|
|
|
|
m_modeStr = P25_CAL_STR;
|
|
|
|
|
m_mode = STATE_DMR_LF_CAL;
|
|
|
|
|
m_modeStr = DMR_LF_CAL_STR;
|
|
|
|
|
m_duplex = true;
|
|
|
|
|
m_dmrEnabled = false;
|
|
|
|
|
m_dmrRx1K = false;
|
|
|
|
|
@ -527,8 +444,8 @@ int HostCal::run()
|
|
|
|
|
break;
|
|
|
|
|
case 'l':
|
|
|
|
|
{
|
|
|
|
|
m_mode = STATE_LF_CAL;
|
|
|
|
|
m_modeStr = LF_CAL_STR;
|
|
|
|
|
m_mode = STATE_P25_LF_CAL;
|
|
|
|
|
m_modeStr = P25_LF_CAL_STR;
|
|
|
|
|
m_duplex = true;
|
|
|
|
|
m_dmrEnabled = false;
|
|
|
|
|
m_dmrRx1K = false;
|
|
|
|
|
@ -865,7 +782,8 @@ void HostCal::displayHelp()
|
|
|
|
|
LogMessage(LOG_CAL, "Mode Commands:");
|
|
|
|
|
LogMessage(LOG_CAL, " Z %s", DMR_CAL_STR);
|
|
|
|
|
LogMessage(LOG_CAL, " z %s", P25_CAL_STR);
|
|
|
|
|
LogMessage(LOG_CAL, " l %s", LF_CAL_STR);
|
|
|
|
|
LogMessage(LOG_CAL, " L %s", DMR_LF_CAL_STR);
|
|
|
|
|
LogMessage(LOG_CAL, " l %s", P25_LF_CAL_STR);
|
|
|
|
|
LogMessage(LOG_CAL, " M %s", DMR_CAL_1K_STR);
|
|
|
|
|
LogMessage(LOG_CAL, " m %s", DMR_DMO_CAL_1K_STR);
|
|
|
|
|
LogMessage(LOG_CAL, " P %s", P25_CAL_1K_STR);
|
|
|
|
|
@ -879,10 +797,6 @@ void HostCal::displayHelp()
|
|
|
|
|
LogMessage(LOG_CAL, " _/+ Increase/Decrease DMR +/- 1 Symbol Level");
|
|
|
|
|
LogMessage(LOG_CAL, " [/] Increase/Decrease P25 +/- 3 Symbol Level");
|
|
|
|
|
LogMessage(LOG_CAL, " {/} Increase/Decrease P25 +/- 1 Symbol Level");
|
|
|
|
|
LogMessage(LOG_CAL, " 1 Transmit DMR/P25 +3 Symbols Only");
|
|
|
|
|
LogMessage(LOG_CAL, " 2 Transmit DMR/P25 +1 Symbols Only");
|
|
|
|
|
LogMessage(LOG_CAL, " 3 Transmit DMR/P25 -1 Symbols Only");
|
|
|
|
|
LogMessage(LOG_CAL, " 4 Transmit DMR/P25 +1 Symbols Only");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|