whoops actually fix the PDU confirmed last block problem;

pull/35/head
Bryan Biedenkapp 3 years ago
parent 798ca22315
commit 20882d5100

@ -91,10 +91,9 @@ bool DataBlock::decode(const uint8_t* data, const DataHeader header)
return false;
}
// determine the number of user data bytes
// determine if this is the last data block
uint32_t count = P25_PDU_CONFIRMED_DATA_LENGTH_BYTES;
if ((m_serialNo == (header.getBlocksToFollow() - 1) && header.getBlocksToFollow() > 1) ||
(m_headerSap == PDU_SAP_EXT_ADDR && m_serialNo == 0U)) {
if (m_serialNo == (header.getBlocksToFollow() - 1) && header.getBlocksToFollow() > 1) {
m_lastBlock = true;
} else {
if (header.getBlocksToFollow() <= 1) {

@ -226,11 +226,6 @@ bool Data::process(uint8_t* data, uint32_t len)
if (ret) {
if (m_rfDataHeader.getSAP() == PDU_SAP_EXT_ADDR && m_rfDataHeader.getFormat() == PDU_FMT_CONFIRMED &&
m_rfData[i].getSerialNo() == 0U) {
// bryanb: HACK - workaround for some vendors setting lastBlock to true when it shouldn't be
if (blocksToFollow > 1 && m_rfData[i].getLastBlock()) {
m_rfData[i].setLastBlock(false);
}
LogMessage(LOG_RF, P25_PDU_STR ", block %u, fmt = $%02X, lastBlock = %u, sap = $%02X, llId = %u",
m_rfData[i].getSerialNo(), m_rfData[i].getFormat(), m_rfData[i].getLastBlock(), m_rfData[i].getSAP(), m_rfData[i].getLLId());
m_rfSecondHeader.reset();

Loading…
Cancel
Save

Powered by TurnKey Linux.