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) {
|
if (type == TAG_LOST) {
|
||||||
m_rfState = RS_RF_LISTENING;
|
m_rfState = RS_RF_LISTENING;
|
||||||
m_rfMask = 0x00U;
|
m_rfMask = 0x00U;
|
||||||
|
m_rfLayer3.reset();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,12 +132,8 @@ bool CNXDNControl::writeModem(unsigned char *data, unsigned int len)
|
||||||
m_rssiCount++;
|
m_rssiCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// CUtils::dump(2U, "NXDN, raw data", data + 2U, NXDN_FRAME_LENGTH_BYTES);
|
|
||||||
|
|
||||||
scrambler(data + 2U);
|
scrambler(data + 2U);
|
||||||
|
|
||||||
// CUtils::dump(2U, "NXDN, after descrambling", data + 2U, NXDN_FRAME_LENGTH_BYTES);
|
|
||||||
|
|
||||||
CNXDNLICH lich;
|
CNXDNLICH lich;
|
||||||
bool valid = lich.decode(data + 2U);
|
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) {
|
if (m_rfState != RS_RF_AUDIO) {
|
||||||
m_rfState = RS_RF_LISTENING;
|
m_rfState = RS_RF_LISTENING;
|
||||||
m_rfMask = 0x00U;
|
m_rfMask = 0x00U;
|
||||||
|
m_rfLayer3.reset();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -748,6 +746,7 @@ void CNXDNControl::writeEndRF()
|
||||||
m_rfState = RS_RF_LISTENING;
|
m_rfState = RS_RF_LISTENING;
|
||||||
|
|
||||||
m_rfMask = 0x00U;
|
m_rfMask = 0x00U;
|
||||||
|
m_rfLayer3.reset();
|
||||||
|
|
||||||
m_rfTimeoutTimer.stop();
|
m_rfTimeoutTimer.stop();
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,11 @@ void CNXDNLayer3::getData(unsigned char* data) const
|
||||||
::memcpy(data, m_data, 22U);
|
::memcpy(data, m_data, 22U);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CNXDNLayer3::reset()
|
||||||
|
{
|
||||||
|
::memset(m_data, 0x00U, 22U);
|
||||||
|
}
|
||||||
|
|
||||||
CNXDNLayer3& CNXDNLayer3::operator=(const CNXDNLayer3& layer3)
|
CNXDNLayer3& CNXDNLayer3::operator=(const CNXDNLayer3& layer3)
|
||||||
{
|
{
|
||||||
if (&layer3 != this)
|
if (&layer3 != this)
|
||||||
|
|
|
@ -38,6 +38,8 @@ public:
|
||||||
|
|
||||||
void getData(unsigned char* data) const;
|
void getData(unsigned char* data) const;
|
||||||
|
|
||||||
|
void reset();
|
||||||
|
|
||||||
CNXDNLayer3& operator=(const CNXDNLayer3& layer3);
|
CNXDNLayer3& operator=(const CNXDNLayer3& layer3);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in a new issue