Reset the layer3 data accumulator at end of transmissions.
This commit is contained in:
parent
6d0e95fb9b
commit
0f685095e5
3 changed files with 10 additions and 4 deletions
|
@ -106,6 +106,7 @@ bool CNXDNControl::writeModem(unsigned char *data, unsigned int len)
|
|||
if (type == TAG_LOST) {
|
||||
m_rfState = RS_RF_LISTENING;
|
||||
m_rfMask = 0x00U;
|
||||
m_rfLayer3.reset();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -131,12 +132,8 @@ bool CNXDNControl::writeModem(unsigned char *data, unsigned int len)
|
|||
m_rssiCount++;
|
||||
}
|
||||
|
||||
// CUtils::dump(2U, "NXDN, raw data", data + 2U, NXDN_FRAME_LENGTH_BYTES);
|
||||
|
||||
scrambler(data + 2U);
|
||||
|
||||
// CUtils::dump(2U, "NXDN, after descrambling", data + 2U, NXDN_FRAME_LENGTH_BYTES);
|
||||
|
||||
CNXDNLICH lich;
|
||||
bool valid = lich.decode(data + 2U);
|
||||
|
||||
|
@ -200,6 +197,7 @@ bool CNXDNControl::processVoice(unsigned char usc, unsigned char option, unsigne
|
|||
if (m_rfState != RS_RF_AUDIO) {
|
||||
m_rfState = RS_RF_LISTENING;
|
||||
m_rfMask = 0x00U;
|
||||
m_rfLayer3.reset();
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
|
@ -748,6 +746,7 @@ void CNXDNControl::writeEndRF()
|
|||
m_rfState = RS_RF_LISTENING;
|
||||
|
||||
m_rfMask = 0x00U;
|
||||
m_rfLayer3.reset();
|
||||
|
||||
m_rfTimeoutTimer.stop();
|
||||
|
||||
|
|
|
@ -106,6 +106,11 @@ void CNXDNLayer3::getData(unsigned char* data) const
|
|||
::memcpy(data, m_data, 22U);
|
||||
}
|
||||
|
||||
void CNXDNLayer3::reset()
|
||||
{
|
||||
::memset(m_data, 0x00U, 22U);
|
||||
}
|
||||
|
||||
CNXDNLayer3& CNXDNLayer3::operator=(const CNXDNLayer3& layer3)
|
||||
{
|
||||
if (&layer3 != this)
|
||||
|
|
|
@ -38,6 +38,8 @@ public:
|
|||
|
||||
void getData(unsigned char* data) const;
|
||||
|
||||
void reset();
|
||||
|
||||
CNXDNLayer3& operator=(const CNXDNLayer3& layer3);
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in a new issue