diff --git a/dmr/Control.cpp b/dmr/Control.cpp
index 29020809..6c26ac4b 100644
--- a/dmr/Control.cpp
+++ b/dmr/Control.cpp
@@ -244,10 +244,10 @@ void Control::writeRF_Ext_Func(uint32_t slotNo, uint32_t func, uint32_t arg, uin
{
switch (slotNo) {
case 1U:
- m_slot1->writeRF_Ext_Func(func, arg, dstId);
+ m_slot1->control()->writeRF_Ext_Func(func, arg, dstId);
break;
case 2U:
- m_slot2->writeRF_Ext_Func(func, arg, dstId);
+ m_slot2->control()->writeRF_Ext_Func(func, arg, dstId);
break;
default:
LogError(LOG_NET, "DMR, invalid slot, slotNo = %u", slotNo);
@@ -265,10 +265,10 @@ void Control::writeRF_Call_Alrt(uint32_t slotNo, uint32_t srcId, uint32_t dstId)
{
switch (slotNo) {
case 1U:
- m_slot1->writeRF_Call_Alrt(srcId, dstId);
+ m_slot1->control()->writeRF_Call_Alrt(srcId, dstId);
break;
case 2U:
- m_slot2->writeRF_Call_Alrt(srcId, dstId);
+ m_slot2->control()->writeRF_Call_Alrt(srcId, dstId);
break;
default:
LogError(LOG_NET, "DMR, invalid slot, slotNo = %u", slotNo);
diff --git a/dmr/ControlPacket.cpp b/dmr/ControlPacket.cpp
index c91cc879..60b4914c 100644
--- a/dmr/ControlPacket.cpp
+++ b/dmr/ControlPacket.cpp
@@ -49,6 +49,7 @@ using namespace dmr;
// ---------------------------------------------------------------------------
// Macros
// ---------------------------------------------------------------------------
+
// Don't process RF frames if the network isn't in a idle state.
#define CHECK_TRAFFIC_COLLISION(_DST_ID) \
if (m_slot->m_netState != RS_NET_IDLE && _DST_ID == m_slot->m_netLastDstId) { \
@@ -56,13 +57,6 @@ using namespace dmr;
return false; \
}
-#define CHECK_TRAFFIC_COLLISION_DELLC(_DST_ID) \
- if (m_slot->m_netState != RS_NET_IDLE && _DST_ID == m_slot->m_netLastDstId) { \
- LogWarning(LOG_RF, "DMR Slot %u, Traffic collision detect, preempting new RF traffic to existing network traffic!", m_slot->m_slotNo); \
- delete lc; \
- return false; \
- }
-
#define CHECK_TG_HANG(_DST_ID) \
if (m_slot->m_rfLastDstId != 0U) { \
if (m_slot->m_rfLastDstId != _DST_ID && (m_slot->m_rfTGHang.isRunning() && !m_slot->m_rfTGHang.hasExpired())) { \
@@ -70,14 +64,6 @@ using namespace dmr;
} \
}
-#define CHECK_TG_HANG_DELLC(_DST_ID) \
- if (m_slot->m_rfLastDstId != 0U) { \
- if (m_slot->m_rfLastDstId != _DST_ID && (m_slot->m_rfTGHang.isRunning() && !m_slot->m_rfTGHang.hasExpired())) { \
- delete lc; \
- return; \
- } \
- }
-
// ---------------------------------------------------------------------------
// Public Class Members
// ---------------------------------------------------------------------------
@@ -386,6 +372,113 @@ void ControlPacket::processNetwork(const data::Data & dmrData)
}
}
+///
+/// Helper to write a extended function packet on the RF interface.
+///
+/// Extended function opcode.
+/// Extended function argument.
+/// Destination radio ID.
+void ControlPacket::writeRF_Ext_Func(uint32_t func, uint32_t arg, uint32_t dstId)
+{
+ if (m_verbose) {
+ LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_EXT_FNCT (Extended Function), op = $%02X, arg = %u, tgt = %u",
+ m_slot->m_slotNo, func, arg, dstId);
+ }
+
+ // generate activity log entry
+ if (func == DMR_EXT_FNCT_CHECK) {
+ ::ActivityLog("DMR", true, "Slot %u radio check request from %u to %u", m_slot->m_slotNo, arg, dstId);
+ }
+ else if (func == DMR_EXT_FNCT_INHIBIT) {
+ ::ActivityLog("DMR", true, "Slot %u radio inhibit request from %u to %u", m_slot->m_slotNo, arg, dstId);
+ }
+ else if (func == DMR_EXT_FNCT_UNINHIBIT) {
+ ::ActivityLog("DMR", true, "Slot %u radio uninhibit request from %u to %u", m_slot->m_slotNo, arg, dstId);
+ }
+
+ uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
+ ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
+
+ SlotType slotType;
+ slotType.setColorCode(m_slot->m_colorCode);
+ slotType.setDataType(DT_CSBK);
+
+ lc::CSBK csbk = lc::CSBK();
+ csbk.setVerbose(m_dumpCSBKData);
+ csbk.setCSBKO(CSBKO_EXT_FNCT);
+ csbk.setFID(FID_DMRA);
+
+ csbk.setGI(false);
+ csbk.setCBF(func);
+ csbk.setSrcId(arg);
+ csbk.setDstId(dstId);
+
+ // Regenerate the CSBK data
+ csbk.encode(data + 2U);
+
+ // Regenerate the Slot Type
+ slotType.encode(data + 2U);
+
+ // Convert the Data Sync to be from the BS or MS as needed
+ Sync::addDMRDataSync(data + 2U, m_slot->m_duplex);
+
+ m_slot->m_rfSeqNo = 0U;
+
+ data[0U] = TAG_DATA;
+ data[1U] = 0x00U;
+
+ if (m_slot->m_duplex)
+ m_slot->writeQueueRF(data);
+}
+
+///
+/// Helper to write a call alert packet on the RF interface.
+///
+/// Source radio ID.
+/// Destination radio ID.
+void ControlPacket::writeRF_Call_Alrt(uint32_t srcId, uint32_t dstId)
+{
+ if (m_verbose) {
+ LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_CALL_ALRT (Call Alert), src = %u, dst = %u",
+ m_slot->m_slotNo, srcId, dstId);
+ }
+
+ ::ActivityLog("DMR", true, "Slot %u call alert request from %u to %u", m_slot->m_slotNo, srcId, dstId);
+
+ uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
+ ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
+
+ SlotType slotType;
+ slotType.setColorCode(m_slot->m_colorCode);
+ slotType.setDataType(DT_CSBK);
+
+ lc::CSBK csbk = lc::CSBK();
+ csbk.setVerbose(m_dumpCSBKData);
+ csbk.setCSBKO(CSBKO_CALL_ALRT);
+ csbk.setFID(FID_DMRA);
+
+ csbk.setGI(false);
+ csbk.setSrcId(srcId);
+ csbk.setDstId(dstId);
+
+ // Regenerate the CSBK data
+ csbk.encode(data + 2U);
+
+ // Regenerate the Slot Type
+ slotType.encode(data + 2U);
+
+ // Convert the Data Sync to be from the BS or MS as needed
+ Sync::addDMRDataSync(data + 2U, m_slot->m_duplex);
+
+ m_slot->m_rfSeqNo = 0U;
+
+ data[0U] = TAG_DATA;
+ data[1U] = 0x00U;
+
+ if (m_slot->m_duplex)
+ m_slot->writeQueueRF(data);
+}
+
// ---------------------------------------------------------------------------
// Private Class Members
// ---------------------------------------------------------------------------
@@ -413,3 +506,117 @@ ControlPacket::~ControlPacket()
{
/* stub */
}
+
+///
+/// Helper to write a TSCC Ann-Wd broadcast packet on the RF interface.
+///
+///
+///
+void ControlPacket::writeRF_TSCC_Bcast_Ann_Wd(uint32_t channelNo, bool annWd)
+{
+ if (m_verbose) {
+ LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_BROADCAST (Broadcast), BCAST_ANNC_ANN_WD_TSCC (Announce-WD TSCC Channel), channelNo = %u, annWd = %u",
+ m_slot->m_slotNo, channelNo, annWd);
+ }
+
+ m_slot->m_rfSeqNo = 0U;
+
+ SlotType slotType;
+ slotType.setColorCode(m_slot->m_colorCode);
+ slotType.setDataType(DT_CSBK);
+
+ lc::CSBK csbk = lc::CSBK();
+ csbk.setVerbose(m_dumpCSBKData);
+ csbk.setCSBKO(CSBKO_BROADCAST);
+ csbk.setFID(FID_ETSI);
+
+ csbk.setAnncType(BCAST_ANNC_ANN_WD_TSCC);
+ csbk.setSiteData(m_slot->m_siteData);
+ csbk.setLogicalCh1(channelNo);
+ csbk.setAnnWdCh1(annWd);
+
+ uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
+ ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
+
+ // MBC frame 1
+ csbk.setLastBlock(false);
+
+ // Regenerate the CSBK data
+ csbk.encode(data + 2U);
+
+ // Regenerate the Slot Type
+ slotType.encode(data + 2U);
+
+ // Convert the Data Sync to be from the BS or MS as needed
+ Sync::addDMRDataSync(data + 2U, m_slot->m_duplex);
+
+ data[0U] = TAG_DATA;
+ data[1U] = 0x00U;
+
+ if (m_slot->m_duplex)
+ m_slot->writeQueueRF(data);
+
+ ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
+
+ // MBC frame 2
+ csbk.setLastBlock(false);
+ csbk.setCdef(true);
+ csbk.setIdenTable(m_slot->m_idenEntry);
+
+ // Regenerate the CSBK data
+ csbk.encode(data + 2U);
+
+ // Regenerate the Slot Type
+ slotType.encode(data + 2U);
+
+ // Convert the Data Sync to be from the BS or MS as needed
+ Sync::addDMRDataSync(data + 2U, m_slot->m_duplex);
+
+ data[0U] = TAG_DATA;
+ data[1U] = 0x00U;
+
+ if (m_slot->m_duplex)
+ m_slot->writeQueueRF(data);
+}
+
+///
+/// Helper to write a TSCC Sys_Parm broadcast packet on the RF interface.
+///
+void ControlPacket::writeRF_TSCC_Bcast_Sys_Parm()
+{
+ if (m_verbose) {
+ LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_BROADCAST (Broadcast), BCAST_ANNC_SITE_PARMS (Announce Site Parms)", m_slot->m_slotNo);
+ }
+
+ uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
+ ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
+
+ SlotType slotType;
+ slotType.setColorCode(m_slot->m_colorCode);
+ slotType.setDataType(DT_CSBK);
+
+ lc::CSBK csbk = lc::CSBK();
+ csbk.setVerbose(m_dumpCSBKData);
+ csbk.setCSBKO(CSBKO_BROADCAST);
+ csbk.setFID(FID_ETSI);
+
+ csbk.setAnncType(BCAST_ANNC_SITE_PARMS);
+ csbk.setSiteData(m_slot->m_siteData);
+
+ // Regenerate the CSBK data
+ csbk.encode(data + 2U);
+
+ // Regenerate the Slot Type
+ slotType.encode(data + 2U);
+
+ // Convert the Data Sync to be from the BS or MS as needed
+ Sync::addDMRDataSync(data + 2U, m_slot->m_duplex);
+
+ m_slot->m_rfSeqNo = 0U;
+
+ data[0U] = TAG_DATA;
+ data[1U] = 0x00U;
+
+ if (m_slot->m_duplex)
+ m_slot->writeQueueRF(data);
+}
diff --git a/dmr/ControlPacket.h b/dmr/ControlPacket.h
index 1ce59e20..742b5889 100644
--- a/dmr/ControlPacket.h
+++ b/dmr/ControlPacket.h
@@ -51,7 +51,6 @@ namespace dmr
// ---------------------------------------------------------------------------
// Class Prototypes
// ---------------------------------------------------------------------------
- class HOST_SW_API DataPacket;
class HOST_SW_API Slot;
// ---------------------------------------------------------------------------
@@ -66,8 +65,12 @@ namespace dmr
/// Process a data frame from the network.
void processNetwork(const data::Data& dmrData);
+ /// Helper to write a extended function packet on the RF interface.
+ void writeRF_Ext_Func(uint32_t func, uint32_t arg, uint32_t dstId);
+ /// Helper to write a call alert packet on the RF interface.
+ void writeRF_Call_Alrt(uint32_t srcId, uint32_t dstId);
+
private:
- friend class DataPacket;
friend class Slot;
Slot* m_slot;
@@ -79,6 +82,11 @@ namespace dmr
ControlPacket(Slot* slot, network::BaseNetwork* network, bool dumpCSBKData, bool debug, bool verbose);
/// Finalizes a instance of the DataPacket class.
~ControlPacket();
+
+ /// Helper to write a TSCC Ann-Wd broadcast packet on the RF interface.
+ void writeRF_TSCC_Bcast_Ann_Wd(uint32_t channelNo, bool annWd);
+ /// Helper to write a TSCC Sys_Parm broadcast packet on the RF interface.
+ void writeRF_TSCC_Bcast_Sys_Parm();
};
} // namespace dmr
diff --git a/dmr/Slot.cpp b/dmr/Slot.cpp
index 8320c5e9..7dfe6c06 100644
--- a/dmr/Slot.cpp
+++ b/dmr/Slot.cpp
@@ -428,6 +428,17 @@ void Slot::clock()
}
}
+///
+/// Helper to change the debug and verbose state.
+///
+/// Flag indicating whether DMR debug is enabled.
+/// Flag indicating whether DMR verbose logging is enabled.
+void Slot::setDebugVerbose(bool debug, bool verbose)
+{
+ m_debug = m_voice->m_debug = m_data->m_debug = debug = m_control->m_debug;
+ m_verbose = m_voice->m_verbose = m_data->m_verbose = verbose = m_control->m_verbose;
+}
+
///
/// Helper to initialize the DMR slot processor.
///
@@ -513,17 +524,6 @@ void Slot::setSiteData(uint32_t netId, uint8_t siteId, uint8_t channelId, uint32
// ---------------------------------------------------------------------------
// Private Class Members
// ---------------------------------------------------------------------------
-///
-/// Helper to change the debug and verbose state.
-///
-/// Flag indicating whether DMR debug is enabled.
-/// Flag indicating whether DMR verbose logging is enabled.
-void Slot::setDebugVerbose(bool debug, bool verbose)
-{
- m_debug = m_voice->m_debug = m_data->m_debug = debug;
- m_verbose = m_voice->m_verbose = m_data->m_verbose = verbose;
-}
-
///
/// Write data processed from RF to the data ring buffer.
///
@@ -622,227 +622,6 @@ void Slot::writeNetworkRF(const uint8_t* data, uint8_t dataType, uint8_t flco, u
m_network->writeDMR(dmrData);
}
-///
-/// Helper to write a extended function packet on the RF interface.
-///
-/// Extended function opcode.
-/// Extended function argument.
-/// Destination radio ID.
-void Slot::writeRF_Ext_Func(uint32_t func, uint32_t arg, uint32_t dstId)
-{
- if (m_verbose) {
- LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_EXT_FNCT (Extended Function), op = $%02X, arg = %u, tgt = %u",
- m_slotNo, func, arg, dstId);
- }
-
- // generate activity log entry
- if (func == DMR_EXT_FNCT_CHECK) {
- ::ActivityLog("DMR", true, "Slot %u radio check request from %u to %u", m_slotNo, arg, dstId);
- }
- else if (func == DMR_EXT_FNCT_INHIBIT) {
- ::ActivityLog("DMR", true, "Slot %u radio inhibit request from %u to %u", m_slotNo, arg, dstId);
- }
- else if (func == DMR_EXT_FNCT_UNINHIBIT) {
- ::ActivityLog("DMR", true, "Slot %u radio uninhibit request from %u to %u", m_slotNo, arg, dstId);
- }
-
- uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
- ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
-
- SlotType slotType;
- slotType.setColorCode(m_colorCode);
- slotType.setDataType(DT_CSBK);
-
- lc::CSBK csbk = lc::CSBK();
- csbk.setVerbose(m_dumpCSBKData);
- csbk.setCSBKO(CSBKO_EXT_FNCT);
- csbk.setFID(FID_DMRA);
-
- csbk.setGI(false);
- csbk.setCBF(func);
- csbk.setSrcId(arg);
- csbk.setDstId(dstId);
-
- // Regenerate the CSBK data
- csbk.encode(data + 2U);
-
- // Regenerate the Slot Type
- slotType.encode(data + 2U);
-
- // Convert the Data Sync to be from the BS or MS as needed
- Sync::addDMRDataSync(data + 2U, m_duplex);
-
- m_rfSeqNo = 0U;
-
- data[0U] = TAG_DATA;
- data[1U] = 0x00U;
-
- if (m_duplex)
- writeQueueRF(data);
-}
-
-///
-/// Helper to write a call alert packet on the RF interface.
-///
-/// Source radio ID.
-/// Destination radio ID.
-void Slot::writeRF_Call_Alrt(uint32_t srcId, uint32_t dstId)
-{
- if (m_verbose) {
- LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_CALL_ALRT (Call Alert), src = %u, dst = %u",
- m_slotNo, srcId, dstId);
- }
-
- ::ActivityLog("DMR", true, "Slot %u call alert request from %u to %u", m_slotNo, srcId, dstId);
-
- uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
- ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
-
- SlotType slotType;
- slotType.setColorCode(m_colorCode);
- slotType.setDataType(DT_CSBK);
-
- lc::CSBK csbk = lc::CSBK();
- csbk.setVerbose(m_dumpCSBKData);
- csbk.setCSBKO(CSBKO_CALL_ALRT);
- csbk.setFID(FID_DMRA);
-
- csbk.setGI(false);
- csbk.setSrcId(srcId);
- csbk.setDstId(dstId);
-
- // Regenerate the CSBK data
- csbk.encode(data + 2U);
-
- // Regenerate the Slot Type
- slotType.encode(data + 2U);
-
- // Convert the Data Sync to be from the BS or MS as needed
- Sync::addDMRDataSync(data + 2U, m_duplex);
-
- m_rfSeqNo = 0U;
-
- data[0U] = TAG_DATA;
- data[1U] = 0x00U;
-
- if (m_duplex)
- writeQueueRF(data);
-}
-
-///
-/// Helper to write a TSCC Ann-Wd broadcast packet on the RF interface.
-///
-///
-///
-void Slot::writeRF_TSCC_Bcast_Ann_Wd(uint32_t channelNo, bool annWd)
-{
- if (m_verbose) {
- LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_BROADCAST (Broadcast), BCAST_ANNC_ANN_WD_TSCC (Announce-WD TSCC Channel), channelNo = %u, annWd = %u",
- m_slotNo, channelNo, annWd);
- }
-
- m_rfSeqNo = 0U;
-
- SlotType slotType;
- slotType.setColorCode(m_colorCode);
- slotType.setDataType(DT_CSBK);
-
- lc::CSBK csbk = lc::CSBK();
- csbk.setVerbose(m_dumpCSBKData);
- csbk.setCSBKO(CSBKO_BROADCAST);
- csbk.setFID(FID_ETSI);
-
- csbk.setAnncType(BCAST_ANNC_ANN_WD_TSCC);
- csbk.setSiteData(m_siteData);
- csbk.setLogicalCh1(channelNo);
- csbk.setAnnWdCh1(annWd);
-
- uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
- ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
-
- // MBC frame 1
- csbk.setLastBlock(false);
-
- // Regenerate the CSBK data
- csbk.encode(data + 2U);
-
- // Regenerate the Slot Type
- slotType.encode(data + 2U);
-
- // Convert the Data Sync to be from the BS or MS as needed
- Sync::addDMRDataSync(data + 2U, m_duplex);
-
- data[0U] = TAG_DATA;
- data[1U] = 0x00U;
-
- if (m_duplex)
- writeQueueRF(data);
-
- ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
-
- // MBC frame 2
- csbk.setLastBlock(false);
- csbk.setCdef(true);
- csbk.setIdenTable(m_idenEntry);
-
- // Regenerate the CSBK data
- csbk.encode(data + 2U);
-
- // Regenerate the Slot Type
- slotType.encode(data + 2U);
-
- // Convert the Data Sync to be from the BS or MS as needed
- Sync::addDMRDataSync(data + 2U, m_duplex);
-
- data[0U] = TAG_DATA;
- data[1U] = 0x00U;
-
- if (m_duplex)
- writeQueueRF(data);
-}
-
-///
-/// Helper to write a TSCC Sys_Parm broadcast packet on the RF interface.
-///
-void Slot::writeRF_TSCC_Bcast_Sys_Parm()
-{
- if (m_verbose) {
- LogMessage(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_BROADCAST (Broadcast), BCAST_ANNC_SITE_PARMS (Announce Site Parms)", m_slotNo);
- }
-
- uint8_t data[DMR_FRAME_LENGTH_BYTES + 2U];
- ::memset(data + 2U, 0x00U, DMR_FRAME_LENGTH_BYTES);
-
- SlotType slotType;
- slotType.setColorCode(m_colorCode);
- slotType.setDataType(DT_CSBK);
-
- lc::CSBK csbk = lc::CSBK();
- csbk.setVerbose(m_dumpCSBKData);
- csbk.setCSBKO(CSBKO_BROADCAST);
- csbk.setFID(FID_ETSI);
-
- csbk.setAnncType(BCAST_ANNC_SITE_PARMS);
- csbk.setSiteData(m_siteData);
-
- // Regenerate the CSBK data
- csbk.encode(data + 2U);
-
- // Regenerate the Slot Type
- slotType.encode(data + 2U);
-
- // Convert the Data Sync to be from the BS or MS as needed
- Sync::addDMRDataSync(data + 2U, m_duplex);
-
- m_rfSeqNo = 0U;
-
- data[0U] = TAG_DATA;
- data[1U] = 0x00U;
-
- if (m_duplex)
- writeQueueRF(data);
-}
-
///
/// Helper to write RF end of frame data.
///
diff --git a/dmr/Slot.h b/dmr/Slot.h
index f1237079..d0650a82 100644
--- a/dmr/Slot.h
+++ b/dmr/Slot.h
@@ -54,7 +54,6 @@ namespace dmr
// ---------------------------------------------------------------------------
// Class Prototypes
// ---------------------------------------------------------------------------
- class HOST_SW_API Control;
class HOST_SW_API VoicePacket;
class HOST_SW_API DataPacket;
class HOST_SW_API ControlPacket;
@@ -83,6 +82,12 @@ namespace dmr
/// Updates the slot processor.
void clock();
+ ///
+ ControlPacket* control() { return m_control; }
+
+ /// Helper to change the debug and verbose state.
+ void setDebugVerbose(bool debug, bool verbose);
+
/// Helper to initialize the slot processor.
static void init(uint32_t colorCode, SiteData siteData, bool embeddedLCOnly, bool dumpTAData, uint32_t callHang, modem::Modem* modem,
network::BaseNetwork* network, bool duplex, lookups::RadioIdLookup* ridLookup, lookups::TalkgroupIdLookup* tidLookup,
@@ -91,7 +96,6 @@ namespace dmr
static void setSiteData(uint32_t netId, uint8_t siteId, uint8_t channelId, uint32_t channelNo);
private:
- friend class Control;
friend class VoicePacket;
VoicePacket* m_voice;
friend class DataPacket;
@@ -183,9 +187,6 @@ namespace dmr
static uint16_t m_tsccCnt;
- /// Helper to change the debug and verbose state.
- void setDebugVerbose(bool debug, bool verbose);
-
/// Write data processed from RF to the data ring buffer.
void writeQueueRF(const uint8_t* data);
/// Write data processed from the network to the data ring buffer.
@@ -196,15 +197,6 @@ namespace dmr
void writeNetworkRF(const uint8_t* data, uint8_t dataType, uint8_t flco, uint32_t srcId,
uint32_t dstId, uint8_t errors = 0U);
- /// Helper to write a extended function packet on the RF interface.
- void writeRF_Ext_Func(uint32_t func, uint32_t arg, uint32_t dstId);
- /// Helper to write a call alert packet on the RF interface.
- void writeRF_Call_Alrt(uint32_t srcId, uint32_t dstId);
- /// Helper to write a TSCC Ann-Wd broadcast packet on the RF interface.
- void writeRF_TSCC_Bcast_Ann_Wd(uint32_t channelNo, bool annWd);
- /// Helper to write a TSCC Sys_Parm broadcast packet on the RF interface.
- void writeRF_TSCC_Bcast_Sys_Parm();
-
/// Helper to write RF end of frame data.
void writeEndRF(bool writeEnd = false);
/// Helper to write network end of frame data.