diff --git a/src/common/Thread.h b/src/common/Thread.h
index af5f77de..37ca6c8e 100644
--- a/src/common/Thread.h
+++ b/src/common/Thread.h
@@ -71,7 +71,7 @@ private:
public:
/// Flag indicating if the thread was started.
- __READONLY_PROPERTY_PLAIN(bool, started, started);
+ __PROTECTED_READONLY_PROPERTY_PLAIN(bool, started, started);
};
#endif // __THREAD_H__
diff --git a/src/common/network/UDPSocket.cpp b/src/common/network/UDPSocket.cpp
index f3704f8c..343f6499 100644
--- a/src/common/network/UDPSocket.cpp
+++ b/src/common/network/UDPSocket.cpp
@@ -459,14 +459,14 @@ bool UDPSocket::match(const sockaddr_storage& addr1, const sockaddr_storage& add
if (type == IMT_ADDRESS_AND_PORT) {
switch (addr1.ss_family) {
case AF_INET:
- struct sockaddr_in* in_1, * in_2;
- in_1 = (struct sockaddr_in*) & addr1;
- in_2 = (struct sockaddr_in*) & addr2;
+ struct sockaddr_in* in_1, *in_2;
+ in_1 = (struct sockaddr_in*)& addr1;
+ in_2 = (struct sockaddr_in*)& addr2;
return (in_1->sin_addr.s_addr == in_2->sin_addr.s_addr) && (in_1->sin_port == in_2->sin_port);
case AF_INET6:
struct sockaddr_in6* in6_1, *in6_2;
- in6_1 = (struct sockaddr_in6*) & addr1;
- in6_2 = (struct sockaddr_in6*) & addr2;
+ in6_1 = (struct sockaddr_in6*)& addr1;
+ in6_2 = (struct sockaddr_in6*)& addr2;
return IN6_ARE_ADDR_EQUAL(&in6_1->sin6_addr, &in6_2->sin6_addr) && (in6_1->sin6_port == in6_2->sin6_port);
default:
return false;
@@ -475,14 +475,14 @@ bool UDPSocket::match(const sockaddr_storage& addr1, const sockaddr_storage& add
else if (type == IMT_ADDRESS_ONLY) {
switch (addr1.ss_family) {
case AF_INET:
- struct sockaddr_in* in_1, * in_2;
- in_1 = (struct sockaddr_in*) & addr1;
- in_2 = (struct sockaddr_in*) & addr2;
+ struct sockaddr_in* in_1, *in_2;
+ in_1 = (struct sockaddr_in*)& addr1;
+ in_2 = (struct sockaddr_in*)& addr2;
return in_1->sin_addr.s_addr == in_2->sin_addr.s_addr;
case AF_INET6:
- struct sockaddr_in6* in6_1, * in6_2;
- in6_1 = (struct sockaddr_in6*) & addr1;
- in6_2 = (struct sockaddr_in6*) & addr2;
+ struct sockaddr_in6* in6_1, *in6_2;
+ in6_1 = (struct sockaddr_in6*)& addr1;
+ in6_2 = (struct sockaddr_in6*)& addr2;
return IN6_ARE_ADDR_EQUAL(&in6_1->sin6_addr, &in6_2->sin6_addr);
default:
return false;
@@ -507,7 +507,7 @@ std::string UDPSocket::address(const sockaddr_storage& addr)
case AF_INET:
{
struct sockaddr_in* in;
- in = (struct sockaddr_in*) & addr;
+ in = (struct sockaddr_in*)& addr;
inet_ntop(AF_INET, &(in->sin_addr), str, INET_ADDRSTRLEN);
address = std::string(str);
}
@@ -515,7 +515,7 @@ std::string UDPSocket::address(const sockaddr_storage& addr)
case AF_INET6:
{
struct sockaddr_in6* in6;
- in6 = (struct sockaddr_in6*) & addr;
+ in6 = (struct sockaddr_in6*)& addr;
inet_ntop(AF_INET6, &(in6->sin6_addr), str, INET_ADDRSTRLEN);
address = std::string(str);
}
@@ -540,14 +540,14 @@ uint16_t UDPSocket::port(const sockaddr_storage& addr)
case AF_INET:
{
struct sockaddr_in* in;
- in = (struct sockaddr_in*) & addr;
+ in = (struct sockaddr_in*)& addr;
port = ntohs(in->sin_port);
}
break;
case AF_INET6:
{
struct sockaddr_in6* in6;
- in6 = (struct sockaddr_in6*) & addr;
+ in6 = (struct sockaddr_in6*)& addr;
port = ntohs(in6->sin6_port);
}
break;
@@ -565,7 +565,7 @@ uint16_t UDPSocket::port(const sockaddr_storage& addr)
///
bool UDPSocket::isNone(const sockaddr_storage& addr)
{
- struct sockaddr_in* in = (struct sockaddr_in*) & addr;
+ struct sockaddr_in* in = (struct sockaddr_in*)& addr;
return ((addr.ss_family == AF_INET) && (in->sin_addr.s_addr == htonl(INADDR_NONE)));
}
diff --git a/src/common/p25/data/DataHeader.cpp b/src/common/p25/data/DataHeader.cpp
index cd30f00b..41ca2322 100644
--- a/src/common/p25/data/DataHeader.cpp
+++ b/src/common/p25/data/DataHeader.cpp
@@ -86,13 +86,20 @@ DataHeader::~DataHeader()
/// Decodes P25 PDU data header.
///
///
+///
/// True, if PDU data header was decoded, otherwise false.
-bool DataHeader::decode(const uint8_t* data)
+bool DataHeader::decode(const uint8_t* data, bool noTrellis)
{
assert(data != nullptr);
// decode 1/2 rate Trellis & check CRC-CCITT 16
- bool valid = m_trellis.decode12(data, m_data);
+ bool valid = true;
+ if (noTrellis) {
+ ::memcpy(m_data, data, P25_PDU_HEADER_LENGTH_BYTES);
+ }
+ else {
+ valid = m_trellis.decode12(data, m_data);
+ }
if (valid)
valid = edac::CRC::checkCCITT162(m_data, P25_PDU_HEADER_LENGTH_BYTES);
if (!valid) {
@@ -171,7 +178,7 @@ bool DataHeader::decode(const uint8_t* data)
/// Encodes P25 PDU data header.
///
///
-void DataHeader::encode(uint8_t* data)
+void DataHeader::encode(uint8_t* data, bool noTrellis)
{
assert(data != nullptr);
@@ -243,8 +250,10 @@ void DataHeader::encode(uint8_t* data)
Utils::dump(1U, "P25, DataHeader::encode(), PDU Header Data", header, P25_PDU_HEADER_LENGTH_BYTES);
#endif
- // encode 1/2 rate Trellis
- m_trellis.encode12(header, data);
+ if (!noTrellis) {
+ // encode 1/2 rate Trellis
+ m_trellis.encode12(header, data);
+ }
}
///
diff --git a/src/common/p25/data/DataHeader.h b/src/common/p25/data/DataHeader.h
index a6cd61a2..09ffc577 100644
--- a/src/common/p25/data/DataHeader.h
+++ b/src/common/p25/data/DataHeader.h
@@ -48,9 +48,9 @@ namespace p25
~DataHeader();
/// Decodes P25 PDU data header.
- bool decode(const uint8_t* data);
+ bool decode(const uint8_t* data, bool noTrellis = false);
/// Encodes P25 PDU data header.
- void encode(uint8_t* data);
+ void encode(uint8_t* data, bool noTrellis = false);
/// Helper to reset data values to defaults.
void reset();
diff --git a/src/common/p25/dfsi/DFSIDefines.h b/src/common/p25/dfsi/DFSIDefines.h
index 81bbc1fa..ac922246 100644
--- a/src/common/p25/dfsi/DFSIDefines.h
+++ b/src/common/p25/dfsi/DFSIDefines.h
@@ -7,7 +7,7 @@
*
*/
/*
-* Copyright (C) 2022 by Bryan Biedenkapp N2PLL
+* Copyright (C) 2022-2024 by Bryan Biedenkapp N2PLL
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -44,6 +44,26 @@ namespace p25
// Constants
// ---------------------------------------------------------------------------
+ const uint8_t P25_DFSI_STATUS_NO_ERROR = 0x00; //
+ const uint8_t P25_DFSI_STATUS_ERASE = 0x02; //
+
+ const uint8_t P25_DFSI_RT_ENABLED = 0x02; //
+ const uint8_t P25_DFSI_RT_DISABLED = 0x04; //
+
+ const uint8_t P25_DFSI_START_FLAG = 0x0C; //
+ const uint8_t P25_DFSI_STOP_FLAG = 0x25; //
+
+ const uint8_t P25_DFSI_TYPE_DATA_PAYLOAD = 0x06; //
+ const uint8_t P25_DFSI_TYPE_VOICE = 0x0B; //
+
+ const uint8_t P25_DFSI_DEF_ICW_SOURCE = 0x00; // Infrastructure Source - Default Source
+ const uint8_t P25_DFSI_DEF_SOURCE = 0x00; //
+
+ const uint8_t P25_DFSI_MOT_START_STOP = 0x00; // Motorola Start/Stop Frame
+
+ const uint32_t P25_DFSI_VHDR_RAW_LEN = 36U;
+ const uint32_t P25_DFSI_VHDR_LEN = 27U;
+
const uint32_t P25_DFSI_LDU1_VOICE1_FRAME_LENGTH_BYTES = 22U;
const uint32_t P25_DFSI_LDU1_VOICE2_FRAME_LENGTH_BYTES = 14U;
const uint32_t P25_DFSI_LDU1_VOICE3_FRAME_LENGTH_BYTES = 17U;
@@ -65,6 +85,9 @@ namespace p25
const uint32_t P25_DFSI_LDU2_VOICE18_FRAME_LENGTH_BYTES = 16U;
// Frame Type(s)
+ const uint8_t P25_DFSI_MOT_VHDR_1 = 0x60; // Motorola Voice Header 1
+ const uint8_t P25_DFSI_MOT_VHDR_2 = 0x61; // Motorola Voice Header 2
+
const uint8_t P25_DFSI_LDU1_VOICE1 = 0x62U; // IMBE LDU1 - Voice 1
const uint8_t P25_DFSI_LDU1_VOICE2 = 0x63U; // IMBE LDU1 - Voice 2
const uint8_t P25_DFSI_LDU1_VOICE3 = 0x64U; // IMBE LDU1 - Voice 3 + Link Control
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_ACK_RSP.cpp b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_ACK_RSP.cpp
index 9f9e6130..8c8e7a4d 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_ACK_RSP.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_ACK_RSP.cpp
@@ -55,7 +55,7 @@ MBT_IOSP_ACK_RSP::MBT_IOSP_ACK_RSP() : AMBT()
/// True, if TSBK was decoded, otherwise false.
bool MBT_IOSP_ACK_RSP::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -83,7 +83,7 @@ bool MBT_IOSP_ACK_RSP::decodeMBT(const data::DataHeader& dataHeader, const data:
///
void MBT_IOSP_ACK_RSP::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_CALL_ALRT.cpp b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_CALL_ALRT.cpp
index e8fa47f7..32eb2b86 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_CALL_ALRT.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_CALL_ALRT.cpp
@@ -55,7 +55,7 @@ MBT_IOSP_CALL_ALRT::MBT_IOSP_CALL_ALRT() : AMBT()
/// True, if TSBK was decoded, otherwise false.
bool MBT_IOSP_CALL_ALRT::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -81,7 +81,7 @@ bool MBT_IOSP_CALL_ALRT::decodeMBT(const data::DataHeader& dataHeader, const dat
///
void MBT_IOSP_CALL_ALRT::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_EXT_FNCT.cpp b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_EXT_FNCT.cpp
index e01c0046..4f0b9d63 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_EXT_FNCT.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_EXT_FNCT.cpp
@@ -56,7 +56,7 @@ MBT_IOSP_EXT_FNCT::MBT_IOSP_EXT_FNCT() : AMBT(),
/// True, if TSBK was decoded, otherwise false.
bool MBT_IOSP_EXT_FNCT::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -83,7 +83,7 @@ bool MBT_IOSP_EXT_FNCT::decodeMBT(const data::DataHeader& dataHeader, const data
///
void MBT_IOSP_EXT_FNCT::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_GRP_AFF.cpp b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_GRP_AFF.cpp
index f6f7ade6..1bcaff14 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_GRP_AFF.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_GRP_AFF.cpp
@@ -55,7 +55,7 @@ MBT_IOSP_GRP_AFF::MBT_IOSP_GRP_AFF() : AMBT()
/// True, if TSBK was decoded, otherwise false.
bool MBT_IOSP_GRP_AFF::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -81,7 +81,7 @@ bool MBT_IOSP_GRP_AFF::decodeMBT(const data::DataHeader& dataHeader, const data:
///
void MBT_IOSP_GRP_AFF::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_MSG_UPDT.cpp b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_MSG_UPDT.cpp
index efe45f03..9670f50a 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_MSG_UPDT.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_MSG_UPDT.cpp
@@ -56,7 +56,7 @@ MBT_IOSP_MSG_UPDT::MBT_IOSP_MSG_UPDT() : AMBT(),
/// True, if TSBK was decoded, otherwise false.
bool MBT_IOSP_MSG_UPDT::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -83,7 +83,7 @@ bool MBT_IOSP_MSG_UPDT::decodeMBT(const data::DataHeader& dataHeader, const data
///
void MBT_IOSP_MSG_UPDT::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_STS_UPDT.cpp b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_STS_UPDT.cpp
index 7d9a0739..92dcfbe2 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_IOSP_STS_UPDT.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_IOSP_STS_UPDT.cpp
@@ -56,7 +56,7 @@ MBT_IOSP_STS_UPDT::MBT_IOSP_STS_UPDT() : AMBT(),
/// True, if TSBK was decoded, otherwise false.
bool MBT_IOSP_STS_UPDT::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -83,7 +83,7 @@ bool MBT_IOSP_STS_UPDT::decodeMBT(const data::DataHeader& dataHeader, const data
///
void MBT_IOSP_STS_UPDT::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_RESP_M.cpp b/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_RESP_M.cpp
index 1b97864b..ee6d9224 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_RESP_M.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_RESP_M.cpp
@@ -57,14 +57,14 @@ MBT_ISP_AUTH_RESP_M::MBT_ISP_AUTH_RESP_M() : AMBT()
///
MBT_ISP_AUTH_RESP_M::~MBT_ISP_AUTH_RESP_M()
{
- if (m_authRes != NULL) {
+ if (m_authRes != nullptr) {
delete[] m_authRes;
- m_authRes = NULL;
+ m_authRes = nullptr;
}
- if (m_authRC != NULL) {
+ if (m_authRC != nullptr) {
delete[] m_authRC;
- m_authRC = NULL;
+ m_authRC = nullptr;
}
}
@@ -76,7 +76,7 @@ MBT_ISP_AUTH_RESP_M::~MBT_ISP_AUTH_RESP_M()
/// True, if TSBK was decoded, otherwise false.
bool MBT_ISP_AUTH_RESP_M::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -120,7 +120,7 @@ bool MBT_ISP_AUTH_RESP_M::decodeMBT(const data::DataHeader& dataHeader, const da
///
void MBT_ISP_AUTH_RESP_M::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
@@ -141,7 +141,7 @@ std::string MBT_ISP_AUTH_RESP_M::toString(bool isp)
///
void MBT_ISP_AUTH_RESP_M::getAuthRes(uint8_t* res) const
{
- assert(res != NULL);
+ assert(res != nullptr);
::memcpy(res, m_authRes, P25_AUTH_RES_LENGTH_BYTES);
}
@@ -150,7 +150,7 @@ void MBT_ISP_AUTH_RESP_M::getAuthRes(uint8_t* res) const
///
void MBT_ISP_AUTH_RESP_M::setAuthRC(const uint8_t* rc)
{
- assert(rc != NULL);
+ assert(rc != nullptr);
::memcpy(m_authRC, rc, P25_AUTH_RAND_CHLNG_LENGTH_BYTES);
}
@@ -159,7 +159,7 @@ void MBT_ISP_AUTH_RESP_M::setAuthRC(const uint8_t* rc)
///
void MBT_ISP_AUTH_RESP_M::getAuthRC(uint8_t* rc) const
{
- assert(rc != NULL);
+ assert(rc != nullptr);
::memcpy(rc, m_authRC, P25_AUTH_RAND_CHLNG_LENGTH_BYTES);
}
@@ -178,14 +178,14 @@ void MBT_ISP_AUTH_RESP_M::copy(const MBT_ISP_AUTH_RESP_M& data)
m_authStandalone = data.m_authStandalone;
- if (m_authRes != NULL) {
+ if (m_authRes != nullptr) {
delete[] m_authRes;
}
m_authRes = new uint8_t[P25_AUTH_RES_LENGTH_BYTES];
::memcpy(m_authRes, data.m_authRes, P25_AUTH_RES_LENGTH_BYTES);
- if (m_authRC != NULL) {
+ if (m_authRC != nullptr) {
delete[] m_authRC;
}
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_SU_DMD.cpp b/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_SU_DMD.cpp
index 39cc77b7..49878b15 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_SU_DMD.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_ISP_AUTH_SU_DMD.cpp
@@ -55,7 +55,7 @@ MBT_ISP_AUTH_SU_DMD::MBT_ISP_AUTH_SU_DMD() : AMBT()
/// True, if TSBK was decoded, otherwise false.
bool MBT_ISP_AUTH_SU_DMD::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -80,7 +80,7 @@ bool MBT_ISP_AUTH_SU_DMD::decodeMBT(const data::DataHeader& dataHeader, const da
///
void MBT_ISP_AUTH_SU_DMD::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_ISP_CAN_SRV_REQ.cpp b/src/common/p25/lc/tsbk/mbt/MBT_ISP_CAN_SRV_REQ.cpp
index 08c7a293..d3b0c183 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_ISP_CAN_SRV_REQ.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_ISP_CAN_SRV_REQ.cpp
@@ -55,7 +55,7 @@ MBT_ISP_CAN_SRV_REQ::MBT_ISP_CAN_SRV_REQ() : AMBT()
/// True, if TSBK was decoded, otherwise false.
bool MBT_ISP_CAN_SRV_REQ::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
uint8_t pduUserData[P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow()];
::memset(pduUserData, 0x00U, P25_PDU_UNCONFIRMED_LENGTH_BYTES * dataHeader.getBlocksToFollow());
@@ -85,7 +85,7 @@ bool MBT_ISP_CAN_SRV_REQ::decodeMBT(const data::DataHeader& dataHeader, const da
///
void MBT_ISP_CAN_SRV_REQ::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
/* stub */
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_OSP_ADJ_STS_BCAST.cpp b/src/common/p25/lc/tsbk/mbt/MBT_OSP_ADJ_STS_BCAST.cpp
index 829ca48c..1c575f9f 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_OSP_ADJ_STS_BCAST.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_OSP_ADJ_STS_BCAST.cpp
@@ -61,7 +61,7 @@ MBT_OSP_ADJ_STS_BCAST::MBT_OSP_ADJ_STS_BCAST() : AMBT(),
/// True, if TSBK was decoded, otherwise false.
bool MBT_OSP_ADJ_STS_BCAST::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
/* stub */
@@ -75,7 +75,7 @@ bool MBT_OSP_ADJ_STS_BCAST::decodeMBT(const data::DataHeader& dataHeader, const
///
void MBT_OSP_ADJ_STS_BCAST::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
if ((m_adjRfssId != 0U) && (m_adjSiteId != 0U) && (m_adjChannelNo != 0U)) {
if (m_adjSysId == 0U) {
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_OSP_AUTH_DMD.cpp b/src/common/p25/lc/tsbk/mbt/MBT_OSP_AUTH_DMD.cpp
index 9286c2b2..9e6bbeec 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_OSP_AUTH_DMD.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_OSP_AUTH_DMD.cpp
@@ -57,14 +57,14 @@ MBT_OSP_AUTH_DMD::MBT_OSP_AUTH_DMD() : AMBT()
///
MBT_OSP_AUTH_DMD::~MBT_OSP_AUTH_DMD()
{
- if (m_authRS != NULL) {
+ if (m_authRS != nullptr) {
delete[] m_authRS;
- m_authRS = NULL;
+ m_authRS = nullptr;
}
- if (m_authRC != NULL) {
+ if (m_authRC != nullptr) {
delete[] m_authRC;
- m_authRC = NULL;
+ m_authRC = nullptr;
}
}
@@ -76,7 +76,7 @@ MBT_OSP_AUTH_DMD::~MBT_OSP_AUTH_DMD()
/// True, if TSBK was decoded, otherwise false.
bool MBT_OSP_AUTH_DMD::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
/* stub */
@@ -90,7 +90,7 @@ bool MBT_OSP_AUTH_DMD::decodeMBT(const data::DataHeader& dataHeader, const data:
///
void MBT_OSP_AUTH_DMD::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
dataHeader.setBlocksToFollow(2U);
@@ -138,7 +138,7 @@ std::string MBT_OSP_AUTH_DMD::toString(bool isp)
///
void MBT_OSP_AUTH_DMD::setAuthRS(const uint8_t* rs)
{
- assert(rs != NULL);
+ assert(rs != nullptr);
::memcpy(m_authRS, rs, P25_AUTH_RAND_SEED_LENGTH_BYTES);
}
@@ -147,7 +147,7 @@ void MBT_OSP_AUTH_DMD::setAuthRS(const uint8_t* rs)
///
void MBT_OSP_AUTH_DMD::getAuthRS(uint8_t* rs) const
{
- assert(rs != NULL);
+ assert(rs != nullptr);
::memcpy(rs, m_authRS, P25_AUTH_RAND_SEED_LENGTH_BYTES);
}
@@ -156,7 +156,7 @@ void MBT_OSP_AUTH_DMD::getAuthRS(uint8_t* rs) const
///
void MBT_OSP_AUTH_DMD::setAuthRC(const uint8_t* rc)
{
- assert(rc != NULL);
+ assert(rc != nullptr);
::memcpy(m_authRC, rc, P25_AUTH_RAND_CHLNG_LENGTH_BYTES);
}
@@ -165,7 +165,7 @@ void MBT_OSP_AUTH_DMD::setAuthRC(const uint8_t* rc)
///
void MBT_OSP_AUTH_DMD::getAuthRC(uint8_t* rc) const
{
- assert(rc != NULL);
+ assert(rc != nullptr);
::memcpy(rc, m_authRC, P25_AUTH_RAND_CHLNG_LENGTH_BYTES);
}
@@ -182,14 +182,14 @@ void MBT_OSP_AUTH_DMD::copy(const MBT_OSP_AUTH_DMD& data)
{
TSBK::copy(data);
- if (m_authRS != NULL) {
+ if (m_authRS != nullptr) {
delete[] m_authRS;
}
m_authRS = new uint8_t[P25_AUTH_RAND_SEED_LENGTH_BYTES];
::memcpy(m_authRS, data.m_authRS, P25_AUTH_RAND_SEED_LENGTH_BYTES);
- if (m_authRC != NULL) {
+ if (m_authRC != nullptr) {
delete[] m_authRC;
}
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_OSP_NET_STS_BCAST.cpp b/src/common/p25/lc/tsbk/mbt/MBT_OSP_NET_STS_BCAST.cpp
index ccf80322..1dd994f2 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_OSP_NET_STS_BCAST.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_OSP_NET_STS_BCAST.cpp
@@ -55,7 +55,7 @@ MBT_OSP_NET_STS_BCAST::MBT_OSP_NET_STS_BCAST() : AMBT()
/// True, if TSBK was decoded, otherwise false.
bool MBT_OSP_NET_STS_BCAST::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
/* stub */
@@ -69,7 +69,7 @@ bool MBT_OSP_NET_STS_BCAST::decodeMBT(const data::DataHeader& dataHeader, const
///
void MBT_OSP_NET_STS_BCAST::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
// pack LRA and system ID into LLID
uint32_t llId = m_siteData.lra(); // Location Registration Area
diff --git a/src/common/p25/lc/tsbk/mbt/MBT_OSP_RFSS_STS_BCAST.cpp b/src/common/p25/lc/tsbk/mbt/MBT_OSP_RFSS_STS_BCAST.cpp
index 47b47a4f..f83f9f04 100644
--- a/src/common/p25/lc/tsbk/mbt/MBT_OSP_RFSS_STS_BCAST.cpp
+++ b/src/common/p25/lc/tsbk/mbt/MBT_OSP_RFSS_STS_BCAST.cpp
@@ -55,7 +55,7 @@ MBT_OSP_RFSS_STS_BCAST::MBT_OSP_RFSS_STS_BCAST() : AMBT()
/// True, if TSBK was decoded, otherwise false.
bool MBT_OSP_RFSS_STS_BCAST::decodeMBT(const data::DataHeader& dataHeader, const data::DataBlock* blocks)
{
- assert(blocks != NULL);
+ assert(blocks != nullptr);
/* stub */
@@ -69,7 +69,7 @@ bool MBT_OSP_RFSS_STS_BCAST::decodeMBT(const data::DataHeader& dataHeader, const
///
void MBT_OSP_RFSS_STS_BCAST::encodeMBT(data::DataHeader& dataHeader, uint8_t* pduUserData)
{
- assert(pduUserData != NULL);
+ assert(pduUserData != nullptr);
// pack LRA and system ID into LLID
uint32_t llId = m_siteData.lra(); // Location Registration Area
diff --git a/src/fne/network/FNENetwork.cpp b/src/fne/network/FNENetwork.cpp
index fff1e22a..c18f7549 100644
--- a/src/fne/network/FNENetwork.cpp
+++ b/src/fne/network/FNENetwork.cpp
@@ -65,7 +65,6 @@ using namespace network::fne;
/// Flag indicating whether a parrot TG will generate a grant demand.
/// Flag indicating that the system activity logs will be sent to the network.
/// Flag indicating that the system diagnostic logs will be sent to the network.
-/// Flag indicating if traffic should be repeated from this master.
///
///
FNENetwork::FNENetwork(HostFNE* host, const std::string& address, uint16_t port, uint32_t peerId, const std::string& password,
diff --git a/src/fne/network/FNENetwork.h b/src/fne/network/FNENetwork.h
index 25dae3b2..1ab900d9 100644
--- a/src/fne/network/FNENetwork.h
+++ b/src/fne/network/FNENetwork.h
@@ -68,6 +68,7 @@ namespace network
m_connected(false),
m_connectionState(NET_STAT_INVALID),
m_pingsReceived(0U),
+ m_lastPing(0U),
m_config(),
m_pktLastSeq(0U),
m_pktNextSeq(1U)
@@ -89,6 +90,7 @@ namespace network
m_connected(false),
m_connectionState(NET_STAT_INVALID),
m_pingsReceived(0U),
+ m_lastPing(0U),
m_config(),
m_pktLastSeq(0U),
m_pktNextSeq(1U)
diff --git a/src/host/network/Network.cpp b/src/host/network/Network.cpp
index cd8a23b5..b212c9dc 100644
--- a/src/host/network/Network.cpp
+++ b/src/host/network/Network.cpp
@@ -53,7 +53,7 @@ using namespace network;
///
/// Network Hostname/IP address to connect to.
/// Network port number.
-///
+///
/// Unique ID on the network.
/// Network authentication password.
/// Flag indicating full-duplex operation.
@@ -597,15 +597,6 @@ bool Network::open()
return true;
}
-///
-/// Sets flag enabling network communication.
-///
-///
-void Network::enable(bool enabled)
-{
- m_enabled = enabled;
-}
-
///
/// Closes connection to the network.
///
@@ -629,6 +620,15 @@ void Network::close()
m_status = NET_STAT_WAITING_CONNECT;
}
+///
+/// Sets flag enabling network communication.
+///
+///
+void Network::enable(bool enabled)
+{
+ m_enabled = enabled;
+}
+
// ---------------------------------------------------------------------------
// Protected Class Members
// ---------------------------------------------------------------------------