Revert "Simplify and fix the Short LC code."
This reverts commit 251c5fb361
.
This commit is contained in:
parent
251c5fb361
commit
323e5f7680
48
DMRSlot.cpp
48
DMRSlot.cpp
|
@ -51,10 +51,10 @@ unsigned char* CDMRSlot::m_idle = NULL;
|
|||
|
||||
FLCO CDMRSlot::m_flco1;
|
||||
unsigned char CDMRSlot::m_id1 = 0U;
|
||||
unsigned char CDMRSlot::m_activity1 = ACTIVITY_NONE;
|
||||
ACTIVITY_TYPE CDMRSlot::m_activity1 = ACTIVITY_NONE;
|
||||
FLCO CDMRSlot::m_flco2;
|
||||
unsigned char CDMRSlot::m_id2 = 0U;
|
||||
unsigned char CDMRSlot::m_activity2 = ACTIVITY_NONE;
|
||||
ACTIVITY_TYPE CDMRSlot::m_activity2 = ACTIVITY_NONE;
|
||||
|
||||
const unsigned char TALKER_ID_NONE = 0x00U;
|
||||
const unsigned char TALKER_ID_HEADER = 0x01U;
|
||||
|
@ -472,7 +472,7 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
|||
|
||||
// If data preamble, signal its existence
|
||||
if (m_netState == RS_NET_IDLE && csbko == CSBKO_PRECCSBK && csbk.getDataContent()) {
|
||||
setShortLC(m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_USER_USER, ACTIVITY_DATA);
|
||||
setShortLC(m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_USER_USER, ACTIVITY_CSBK);
|
||||
m_display->writeDMR(m_slotNo, src, gi, dst, "R");
|
||||
m_display->writeDMRRSSI(m_slotNo, m_rssi);
|
||||
}
|
||||
|
@ -1533,7 +1533,7 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
|||
|
||||
// If data preamble, signal its existence
|
||||
if (csbko == CSBKO_PRECCSBK && csbk.getDataContent()) {
|
||||
setShortLC(m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_USER_USER, ACTIVITY_DATA);
|
||||
setShortLC(m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_USER_USER, ACTIVITY_CSBK);
|
||||
m_display->writeDMR(m_slotNo, src, gi, dst, "N");
|
||||
}
|
||||
} else if (dataType == DT_RATE_12_DATA || dataType == DT_RATE_34_DATA || dataType == DT_RATE_1_DATA) {
|
||||
|
@ -1750,7 +1750,7 @@ void CDMRSlot::init(unsigned int colorCode, bool embeddedLCOnly, bool dumpTAData
|
|||
}
|
||||
|
||||
|
||||
void CDMRSlot::setShortLC(unsigned int slotNo, unsigned int id, FLCO flco, unsigned char type)
|
||||
void CDMRSlot::setShortLC(unsigned int slotNo, unsigned int id, FLCO flco, ACTIVITY_TYPE type)
|
||||
{
|
||||
assert(m_modem != NULL);
|
||||
|
||||
|
@ -1795,21 +1795,35 @@ void CDMRSlot::setShortLC(unsigned int slotNo, unsigned int id, FLCO flco, unsig
|
|||
lc[3U] = 0x00U;
|
||||
|
||||
if (m_id1 != 0U) {
|
||||
unsigned char activity = m_activity1;
|
||||
if (m_flco1 == FLCO_USER_USER)
|
||||
activity |= 0x01U;
|
||||
|
||||
lc[2U] = m_id1;
|
||||
lc[1U] |= (activity << 0);
|
||||
lc[2U] = m_id1;
|
||||
if (m_activity1 == ACTIVITY_VOICE && m_flco1 == FLCO_GROUP)
|
||||
lc[1U] |= 0x80U;
|
||||
else if (m_activity1 == ACTIVITY_VOICE && m_flco1 == FLCO_USER_USER)
|
||||
lc[1U] |= 0x90U;
|
||||
else if (m_activity1 == ACTIVITY_DATA && m_flco1 == FLCO_GROUP)
|
||||
lc[1U] |= 0xB0U;
|
||||
else if (m_activity1 == ACTIVITY_DATA && m_flco1 == FLCO_USER_USER)
|
||||
lc[1U] |= 0xA0U;
|
||||
else if (m_activity1 == ACTIVITY_CSBK && m_flco1 == FLCO_GROUP)
|
||||
lc[1U] |= 0x20U;
|
||||
else if (m_activity1 == ACTIVITY_CSBK && m_flco1 == FLCO_USER_USER)
|
||||
lc[1U] |= 0x30U;
|
||||
}
|
||||
|
||||
if (m_id2 != 0U) {
|
||||
unsigned char activity = m_activity2;
|
||||
if (m_flco2 == FLCO_USER_USER)
|
||||
activity |= 0x01U;
|
||||
|
||||
lc[3U] = m_id2;
|
||||
lc[1U] |= (activity << 4);
|
||||
lc[3U] = m_id2;
|
||||
if (m_activity2 == ACTIVITY_VOICE && m_flco2 == FLCO_GROUP)
|
||||
lc[1U] |= 0x08U;
|
||||
else if (m_activity2 == ACTIVITY_VOICE && m_flco2 == FLCO_USER_USER)
|
||||
lc[1U] |= 0x09U;
|
||||
else if (m_activity2 == ACTIVITY_DATA && m_flco2 == FLCO_GROUP)
|
||||
lc[1U] |= 0x0BU;
|
||||
else if (m_activity2 == ACTIVITY_DATA && m_flco2 == FLCO_USER_USER)
|
||||
lc[1U] |= 0x0AU;
|
||||
else if (m_activity2 == ACTIVITY_CSBK && m_flco2 == FLCO_GROUP)
|
||||
lc[1U] |= 0x02U;
|
||||
else if (m_activity2 == ACTIVITY_CSBK && m_flco2 == FLCO_USER_USER)
|
||||
lc[1U] |= 0x03U;
|
||||
}
|
||||
|
||||
lc[4U] = CCRC::crc8(lc, 4U);
|
||||
|
|
17
DMRSlot.h
17
DMRSlot.h
|
@ -36,11 +36,12 @@
|
|||
|
||||
#include <vector>
|
||||
|
||||
const unsigned char ACTIVITY_NONE = 0x00U;
|
||||
const unsigned char ACTIVITY_CSBK = 0x02U;
|
||||
const unsigned char ACTIVITY_VOICE = 0x08U;
|
||||
const unsigned char ACTIVITY_DATA = 0x0AU;
|
||||
const unsigned char ACTIVITY_EMERG = 0x0CU;
|
||||
enum ACTIVITY_TYPE {
|
||||
ACTIVITY_NONE,
|
||||
ACTIVITY_VOICE,
|
||||
ACTIVITY_DATA,
|
||||
ACTIVITY_CSBK
|
||||
};
|
||||
|
||||
class CDMRSlot {
|
||||
public:
|
||||
|
@ -124,10 +125,10 @@ private:
|
|||
|
||||
static FLCO m_flco1;
|
||||
static unsigned char m_id1;
|
||||
static unsigned char m_activity1;
|
||||
static ACTIVITY_TYPE m_activity1;
|
||||
static FLCO m_flco2;
|
||||
static unsigned char m_id2;
|
||||
static unsigned char m_activity2;
|
||||
static ACTIVITY_TYPE m_activity2;
|
||||
|
||||
void writeQueueRF(const unsigned char* data);
|
||||
void writeQueueNet(const unsigned char* data);
|
||||
|
@ -144,7 +145,7 @@ private:
|
|||
bool insertSilence(const unsigned char* data, unsigned char seqNo);
|
||||
void insertSilence(unsigned int count);
|
||||
|
||||
static void setShortLC(unsigned int slotNo, unsigned int id, FLCO flco = FLCO_GROUP, unsigned char type = ACTIVITY_NONE);
|
||||
static void setShortLC(unsigned int slotNo, unsigned int id, FLCO flco = FLCO_GROUP, ACTIVITY_TYPE type = ACTIVITY_NONE);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue