diff --git a/src/RingBuffer.h b/src/RingBuffer.h index 8c2f9956..4b0f3b7f 100644 --- a/src/RingBuffer.h +++ b/src/RingBuffer.h @@ -99,7 +99,7 @@ public: /// Buffer to write data to be retrieved. /// Length of data to retrieve. /// True, if data is read from ring buffer, otherwise false. - bool getData(T* buffer, uint32_t length) + bool get(T* buffer, uint32_t length) { if (dataSize() < length) { LogError(LOG_HOST, "**** Underflow in %s ring buffer, %u < %u", m_name, dataSize(), length); diff --git a/src/dmr/Slot.cpp b/src/dmr/Slot.cpp index d72dec32..d3756c73 100644 --- a/src/dmr/Slot.cpp +++ b/src/dmr/Slot.cpp @@ -333,12 +333,12 @@ uint32_t Slot::getFrame(uint8_t* data) // tx immediate queue takes priority if (!m_txImmQueue.isEmpty()) { - m_txImmQueue.getData(&len, 1U); - m_txImmQueue.getData(data, len); + m_txImmQueue.get(&len, 1U); + m_txImmQueue.get(data, len); } else { - m_txQueue.getData(&len, 1U); - m_txQueue.getData(data, len); + m_txQueue.get(&len, 1U); + m_txQueue.get(data, len); } return len; diff --git a/src/host/setup/HostSetup.cpp b/src/host/setup/HostSetup.cpp index 26064fae..c63bd9ee 100644 --- a/src/host/setup/HostSetup.cpp +++ b/src/host/setup/HostSetup.cpp @@ -340,8 +340,8 @@ bool HostSetup::portModemHandler(Modem* modem, uint32_t ms, RESP_TYPE_DVM rspTyp uint8_t data[p25::P25_LDU_FRAME_LENGTH_BYTES + 2U]; dataLen = 0U; - m_queue.getData(&dataLen, 1U); - m_queue.getData(data, dataLen); + m_queue.get(&dataLen, 1U); + m_queue.get(data, dataLen); uint8_t buffer[250U]; diff --git a/src/modem/Modem.cpp b/src/modem/Modem.cpp index 8cd9e318..60cbb415 100644 --- a/src/modem/Modem.cpp +++ b/src/modem/Modem.cpp @@ -1010,10 +1010,15 @@ uint32_t Modem::readDMRFrame1(uint8_t* data) return 0U; uint8_t len = 0U; - m_rxDMRQueue1.getData(&len, 1U); - m_rxDMRQueue1.getData(data, len); + m_rxDMRQueue1.peek(&len, 1U); + if (m_rxDMRQueue1.dataSize() >= len) { + m_rxDMRQueue1.get(&len, 1U); // ensure we pop the length off + m_rxDMRQueue1.get(data, len); + + return len; + } - return len; + return 0U; } /// @@ -1029,10 +1034,15 @@ uint32_t Modem::readDMRFrame2(uint8_t* data) return 0U; uint8_t len = 0U; - m_rxDMRQueue2.getData(&len, 1U); - m_rxDMRQueue2.getData(data, len); + m_rxDMRQueue2.peek(&len, 1U); + if (m_rxDMRQueue2.dataSize() >= len) { + m_rxDMRQueue2.get(&len, 1U); // ensure we pop the length off + m_rxDMRQueue2.get(data, len); + + return len; + } - return len; + return 0U; } /// @@ -1048,10 +1058,15 @@ uint32_t Modem::readP25Frame(uint8_t* data) return 0U; uint8_t len = 0U; - m_rxP25Queue.getData(&len, 1U); - m_rxP25Queue.getData(data, len); + m_rxP25Queue.peek(&len, 1U); + if (m_rxP25Queue.dataSize() >= len) { + m_rxP25Queue.get(&len, 1U); // ensure we pop the length off + m_rxP25Queue.get(data, len); + + return len; + } - return len; + return 0U; } /// @@ -1067,10 +1082,15 @@ uint32_t Modem::readNXDNFrame(uint8_t* data) return 0U; uint8_t len = 0U; - m_rxNXDNQueue.getData(&len, 1U); - m_rxNXDNQueue.getData(data, len); + m_rxNXDNQueue.peek(&len, 1U); + if (m_rxNXDNQueue.dataSize() >= len) { + m_rxNXDNQueue.get(&len, 1U); // ensure we pop the length off + m_rxNXDNQueue.get(data, len); + + return len; + } - return len; + return 0U; } /// diff --git a/src/modem/port/ModemNullPort.cpp b/src/modem/port/ModemNullPort.cpp index 61180f7f..7d09ec2f 100644 --- a/src/modem/port/ModemNullPort.cpp +++ b/src/modem/port/ModemNullPort.cpp @@ -84,7 +84,7 @@ int ModemNullPort::read(uint8_t* buffer, uint32_t length) if (length > dataSize) length = dataSize; - m_buffer.getData(buffer, length); + m_buffer.get(buffer, length); return int(length); } diff --git a/src/modem/port/UDPPort.cpp b/src/modem/port/UDPPort.cpp index 7fde3e73..2425a4d2 100644 --- a/src/modem/port/UDPPort.cpp +++ b/src/modem/port/UDPPort.cpp @@ -134,7 +134,7 @@ int UDPPort::read(uint8_t* buffer, uint32_t length) length = avail; if (length > 0U) - m_buffer.getData(buffer, length); + m_buffer.get(buffer, length); return int(length); } diff --git a/src/network/BaseNetwork.cpp b/src/network/BaseNetwork.cpp index 64f5b400..a576bc6d 100644 --- a/src/network/BaseNetwork.cpp +++ b/src/network/BaseNetwork.cpp @@ -276,7 +276,7 @@ UInt8Array BaseNetwork::readDMR(bool& ret, uint32_t& frameLength) } uint8_t length = 0U; - m_rxDMRData.getData(&length, 1U); + m_rxDMRData.get(&length, 1U); if (length == 0U) { ret = false; return nullptr; @@ -286,7 +286,7 @@ UInt8Array BaseNetwork::readDMR(bool& ret, uint32_t& frameLength) frameLength = length; buffer = std::unique_ptr(new uint8_t[length]); ::memset(buffer.get(), 0x00U, length); - m_rxDMRData.getData(buffer.get(), length); + m_rxDMRData.get(buffer.get(), length); return buffer; } @@ -363,7 +363,7 @@ UInt8Array BaseNetwork::readP25(bool& ret, uint32_t& frameLength) } uint8_t length = 0U; - m_rxP25Data.getData(&length, 1U); + m_rxP25Data.get(&length, 1U); if (length == 0U) { ret = false; return nullptr; @@ -373,7 +373,7 @@ UInt8Array BaseNetwork::readP25(bool& ret, uint32_t& frameLength) frameLength = length; buffer = std::unique_ptr(new uint8_t[length]); ::memset(buffer.get(), 0x00U, length); - m_rxP25Data.getData(buffer.get(), length); + m_rxP25Data.get(buffer.get(), length); return buffer; } @@ -545,7 +545,7 @@ UInt8Array BaseNetwork::readNXDN(bool& ret, uint32_t& frameLength) } uint8_t length = 0U; - m_rxNXDNData.getData(&length, 1U); + m_rxNXDNData.get(&length, 1U); if (length == 0U) { ret = false; return nullptr; @@ -555,7 +555,7 @@ UInt8Array BaseNetwork::readNXDN(bool& ret, uint32_t& frameLength) frameLength = length; buffer = std::unique_ptr(new uint8_t[length]); ::memset(buffer.get(), 0x00U, length); - m_rxNXDNData.getData(buffer.get(), length); + m_rxNXDNData.get(buffer.get(), length); return buffer; } diff --git a/src/nxdn/Control.cpp b/src/nxdn/Control.cpp index d88c2329..e305e320 100644 --- a/src/nxdn/Control.cpp +++ b/src/nxdn/Control.cpp @@ -546,12 +546,12 @@ uint32_t Control::getFrame(uint8_t* data) // tx immediate queue takes priority if (!m_txImmQueue.isEmpty()) { - m_txImmQueue.getData(&len, 1U); - m_txImmQueue.getData(data, len); + m_txImmQueue.get(&len, 1U); + m_txImmQueue.get(data, len); } else { - m_txQueue.getData(&len, 1U); - m_txQueue.getData(data, len); + m_txQueue.get(&len, 1U); + m_txQueue.get(data, len); } return len; diff --git a/src/p25/Control.cpp b/src/p25/Control.cpp index f7484161..7496b774 100644 --- a/src/p25/Control.cpp +++ b/src/p25/Control.cpp @@ -721,12 +721,12 @@ uint32_t Control::getFrame(uint8_t* data) // tx immediate queue takes priority if (!m_txImmQueue.isEmpty()) { - m_txImmQueue.getData(&len, 1U); - m_txImmQueue.getData(data, len); + m_txImmQueue.get(&len, 1U); + m_txImmQueue.get(data, len); } else { - m_txQueue.getData(&len, 1U); - m_txQueue.getData(data, len); + m_txQueue.get(&len, 1U); + m_txQueue.get(data, len); } return len;