remove old TDULC Channel Grant logic (I don't even remember why this was here); move TDU preamble before voice call; correct Modem debug messages appearing as regular log messages;

pull/1/head
Bryan Biedenkapp 5 years ago
parent bdf27b517b
commit ef453a4f73

@ -1328,29 +1328,29 @@ bool Modem::writeSymbolAdjust()
void Modem::printDebug()
{
if (m_buffer[2U] == CMD_DEBUG1) {
LogMessage(LOG_MODEM, "M: %.*s", m_length - 3U, m_buffer + 3U);
LogDebug(LOG_MODEM, "M: %.*s", m_length - 3U, m_buffer + 3U);
}
else if (m_buffer[2U] == CMD_DEBUG2) {
short val1 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U];
LogMessage(LOG_MODEM, "M: %.*s %d", m_length - 5U, m_buffer + 3U, val1);
LogDebug(LOG_MODEM, "M: %.*s %d", m_length - 5U, m_buffer + 3U, val1);
}
else if (m_buffer[2U] == CMD_DEBUG3) {
short val1 = (m_buffer[m_length - 4U] << 8) | m_buffer[m_length - 3U];
short val2 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U];
LogMessage(LOG_MODEM, "M: %.*s %d %d", m_length - 7U, m_buffer + 3U, val1, val2);
LogDebug(LOG_MODEM, "M: %.*s %d %d", m_length - 7U, m_buffer + 3U, val1, val2);
}
else if (m_buffer[2U] == CMD_DEBUG4) {
short val1 = (m_buffer[m_length - 6U] << 8) | m_buffer[m_length - 5U];
short val2 = (m_buffer[m_length - 4U] << 8) | m_buffer[m_length - 3U];
short val3 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U];
LogMessage(LOG_MODEM, "M: %.*s %d %d %d", m_length - 9U, m_buffer + 3U, val1, val2, val3);
LogDebug(LOG_MODEM, "M: %.*s %d %d %d", m_length - 9U, m_buffer + 3U, val1, val2, val3);
}
else if (m_buffer[2U] == CMD_DEBUG5) {
short val1 = (m_buffer[m_length - 8U] << 8) | m_buffer[m_length - 7U];
short val2 = (m_buffer[m_length - 6U] << 8) | m_buffer[m_length - 5U];
short val3 = (m_buffer[m_length - 4U] << 8) | m_buffer[m_length - 3U];
short val4 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U];
LogMessage(LOG_MODEM, "M: %.*s %d %d %d %d", m_length - 11U, m_buffer + 3U, val1, val2, val3, val4);
LogDebug(LOG_MODEM, "M: %.*s %d %d %d %d", m_length - 11U, m_buffer + 3U, val1, val2, val3, val4);
}
}

@ -1517,35 +1517,6 @@ void TrunkPacket::writeRF_TDULC(uint8_t duid, bool noNetwork)
}
}
/// <summary>
/// Helper to write a P25 TDU w/ link control channel grant packet.
/// </summary>
/// <param name="grp"></param>
/// <param name="srcId"></param>
/// <param name="dstId"></param>
void TrunkPacket::writeRF_TDULC_ChanGrant(bool grp, uint32_t srcId, uint32_t dstId)
{
m_p25->writeRF_TDU(true);
m_p25->m_voice->m_lastDUID = P25_DUID_TDU;
if ((srcId != 0U) && (dstId != 0U)) {
for (uint32_t i = 0; i < 4; i++) {
m_rfTDULC.setSrcId(srcId);
m_rfTDULC.setDstId(dstId);
m_rfTDULC.setEmergency(false);
if (grp) {
m_rfTDULC.setLCO(LC_GROUP);
writeRF_TDULC(P25_DUID_TDULC, true);
}
else {
m_rfTDULC.setLCO(LC_PRIVATE);
writeRF_TDULC(P25_DUID_TDULC, true);
}
}
}
}
/// <summary>
/// Helper to write a P25 TDU w/ link control channel release packet.
/// </summary>

@ -202,8 +202,6 @@ namespace p25
/// <summary>Helper to write a P25 TDU w/ link control packet.</summary>
void writeRF_TDULC(uint8_t duid, bool noNetwork);
/// <summary>Helper to write a P25 TDU w/ link control channel grant packet.</summary>
void writeRF_TDULC_ChanGrant(bool grp, uint32_t srcId, uint32_t dstId);
/// <summary>Helper to write a P25 TDU w/ link control channel release packet.</summary>
void writeRF_TDULC_ChanRelease(bool grp, uint32_t srcId, uint32_t dstId);

@ -162,6 +162,8 @@ bool VoicePacket::process(uint8_t* data, uint32_t len)
m_p25->writeRF_TDU(true);
}
m_p25->writeRF_Preamble();
m_p25->m_rfTGHang.start();
m_p25->m_rfLastDstId = m_rfLC.getDstId();
@ -332,8 +334,6 @@ bool VoicePacket::process(uint8_t* data, uint32_t len)
m_p25->m_trunk->writeRF_TSDU_Grant(m_rfLC.getGroup(), true, false);
}
m_p25->m_trunk->writeRF_TDULC_ChanGrant(m_rfLC.getGroup(), srcId, dstId);
// perform lost/corrupt HDU checking
if (m_rfLastHDU.getAlgId() != P25_ALGO_UNENCRYPT && m_rfLastHDU.getKId() != 0) {
if ((m_rfLC.getAlgId() == P25_ALGO_UNENCRYPT && m_rfLC.getAlgId() != m_rfLastHDU.getAlgId()) &&
@ -354,8 +354,6 @@ bool VoicePacket::process(uint8_t* data, uint32_t len)
m_hadVoice = true;
m_p25->writeRF_Preamble();
m_p25->m_rfState = RS_RF_AUDIO;
m_p25->m_rfTGHang.start();
@ -1130,8 +1128,6 @@ void VoicePacket::writeNet_HDU(const lc::LC& control, const data::LowSpeedData&
m_p25->m_trunk->writeRF_TSDU_Grant(m_rfLC.getGroup(), true, true);
}
m_p25->m_trunk->writeRF_TDULC_ChanGrant(group, srcId, dstId);
if (m_verbose) {
LogMessage(LOG_NET, P25_HDU_STR ", dstId = %u, algo = $%02X, kid = $%04X", m_netLC.getDstId(), m_netLC.getAlgId(), m_netLC.getKId());
}

Loading…
Cancel
Save

Powered by TurnKey Linux.