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() void Modem::printDebug()
{ {
if (m_buffer[2U] == CMD_DEBUG1) { 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) { else if (m_buffer[2U] == CMD_DEBUG2) {
short val1 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U]; 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) { else if (m_buffer[2U] == CMD_DEBUG3) {
short val1 = (m_buffer[m_length - 4U] << 8) | m_buffer[m_length - 3U]; 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]; 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) { else if (m_buffer[2U] == CMD_DEBUG4) {
short val1 = (m_buffer[m_length - 6U] << 8) | m_buffer[m_length - 5U]; 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 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]; 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) { else if (m_buffer[2U] == CMD_DEBUG5) {
short val1 = (m_buffer[m_length - 8U] << 8) | m_buffer[m_length - 7U]; 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 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 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]; 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> /// <summary>
/// Helper to write a P25 TDU w/ link control channel release packet. /// Helper to write a P25 TDU w/ link control channel release packet.
/// </summary> /// </summary>

@ -202,8 +202,6 @@ namespace p25
/// <summary>Helper to write a P25 TDU w/ link control packet.</summary> /// <summary>Helper to write a P25 TDU w/ link control packet.</summary>
void writeRF_TDULC(uint8_t duid, bool noNetwork); 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> /// <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); 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_TDU(true);
} }
m_p25->writeRF_Preamble();
m_p25->m_rfTGHang.start(); m_p25->m_rfTGHang.start();
m_p25->m_rfLastDstId = m_rfLC.getDstId(); 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_TSDU_Grant(m_rfLC.getGroup(), true, false);
} }
m_p25->m_trunk->writeRF_TDULC_ChanGrant(m_rfLC.getGroup(), srcId, dstId);
// perform lost/corrupt HDU checking // perform lost/corrupt HDU checking
if (m_rfLastHDU.getAlgId() != P25_ALGO_UNENCRYPT && m_rfLastHDU.getKId() != 0) { if (m_rfLastHDU.getAlgId() != P25_ALGO_UNENCRYPT && m_rfLastHDU.getKId() != 0) {
if ((m_rfLC.getAlgId() == P25_ALGO_UNENCRYPT && m_rfLC.getAlgId() != m_rfLastHDU.getAlgId()) && 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_hadVoice = true;
m_p25->writeRF_Preamble();
m_p25->m_rfState = RS_RF_AUDIO; m_p25->m_rfState = RS_RF_AUDIO;
m_p25->m_rfTGHang.start(); 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_TSDU_Grant(m_rfLC.getGroup(), true, true);
} }
m_p25->m_trunk->writeRF_TDULC_ChanGrant(group, srcId, dstId);
if (m_verbose) { if (m_verbose) {
LogMessage(LOG_NET, P25_HDU_STR ", dstId = %u, algo = $%02X, kid = $%04X", m_netLC.getDstId(), m_netLC.getAlgId(), m_netLC.getKId()); 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.