update fw/hotspot and fw/modem to latest master; fix issue where block alignment would be lost for P25 PDUs if individual blocks failed to decode;

3.6-maint
Bryan Biedenkapp 2 years ago
parent cae622b898
commit 22803a857e

@ -1 +1 @@
Subproject commit 882244795b9bec1f2c86d596d4ab4ecd4346c8b9
Subproject commit 07ec4612fc6e7c018b77a880c59154bd88e80492

@ -1 +1 @@
Subproject commit 98d3bb1cd9bd1bdfa8d723c15f8847841739e9ca
Subproject commit 93a59264ff2e8515d11aa259577ee106287fd51d

@ -303,11 +303,27 @@ bool Data::process(uint8_t* data, uint32_t len)
}
}
else {
if (m_rfData[i].getFormat() == PDU_FMT_CONFIRMED)
if (m_rfData[i].getFormat() == PDU_FMT_CONFIRMED) {
LogWarning(LOG_RF, P25_PDU_STR ", unfixable PDU data (3/4 rate or CRC), block %u", i);
else
// to prevent data block offset errors fill the bad block with 0's
uint8_t blankBuf[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES];
::memset(blankBuf, 0x00U, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES);
::memcpy(m_pduUserData + dataOffset, blankBuf, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES);
dataOffset += P25_PDU_CONFIRMED_DATA_LENGTH_BYTES;
m_pduUserDataLength = dataOffset;
}
else {
LogWarning(LOG_RF, P25_PDU_STR ", unfixable PDU data (1/2 rate or CRC), block %u", i);
// to prevent data block offset errors fill the bad block with 0's
uint8_t blankBuf[P25_PDU_UNCONFIRMED_LENGTH_BYTES];
::memset(blankBuf, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES);
::memcpy(m_pduUserData + dataOffset, blankBuf, P25_PDU_UNCONFIRMED_LENGTH_BYTES);
dataOffset += P25_PDU_UNCONFIRMED_LENGTH_BYTES;
m_pduUserDataLength = dataOffset;
}
if (m_dumpPDUData) {
Utils::dump(1U, "Unfixable PDU Data", buffer, P25_PDU_FEC_LENGTH_BYTES);
}

Loading…
Cancel
Save

Powered by TurnKey Linux.