Adding Color Code and Data Type setting to IDLE data

This commit is contained in:
Andy CA6JAU 2017-04-05 08:33:34 -03:00
parent 522825568b
commit beb2e8f68f
3 changed files with 13 additions and 1 deletions

View File

@ -94,7 +94,7 @@ void CDMRDMOTX::process()
for (unsigned int i = 0U; i < DMR_FRAME_LENGTH_BYTES; i++) { for (unsigned int i = 0U; i < DMR_FRAME_LENGTH_BYTES; i++) {
m_poBuffer[i + 3U] = m_fifo.get(); m_poBuffer[i + 3U] = m_fifo.get();
m_poBuffer[i + 39U] = IDLE_DATA[i]; m_poBuffer[i + 39U] = m_idle[i];
} }
m_poLen = 72U; m_poLen = 72U;
@ -210,3 +210,11 @@ void CDMRDMOTX::createCACH(uint8_t* buffer, uint8_t slotIndex)
m_cachPtr += 3U; m_cachPtr += 3U;
} }
void CDMRDMOTX::setColorCode(uint8_t colorCode)
{
::memcpy(m_idle, IDLE_DATA, DMR_FRAME_LENGTH_BYTES);
CDMRSlotType slotType;
slotType.encode(colorCode, DT_IDLE, m_idle);
}

View File

@ -36,6 +36,8 @@ public:
void setTXDelay(uint8_t delay); void setTXDelay(uint8_t delay);
uint8_t getSpace() const; uint8_t getSpace() const;
void setColorCode(uint8_t colorCode);
private: private:
@ -47,6 +49,7 @@ private:
uint16_t m_poPtr; uint16_t m_poPtr;
uint32_t m_txDelay; uint32_t m_txDelay;
uint8_t m_cachPtr; uint8_t m_cachPtr;
uint8_t m_idle[DMR_FRAME_LENGTH_BYTES];
void createCACH(uint8_t* buffer, uint8_t slotIndex); void createCACH(uint8_t* buffer, uint8_t slotIndex);
void writeByte(uint8_t c); void writeByte(uint8_t c);

View File

@ -271,6 +271,7 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
dmrDMOTX.setTXDelay(txDelay); dmrDMOTX.setTXDelay(txDelay);
dmrTX.setColorCode(colorCode); dmrTX.setColorCode(colorCode);
dmrDMOTX.setColorCode(colorCode);
dmrRX.setColorCode(colorCode); dmrRX.setColorCode(colorCode);
dmrRX.setDelay(dmrDelay); dmrRX.setDelay(dmrDelay);
dmrDMORX.setColorCode(colorCode); dmrDMORX.setColorCode(colorCode);