Skip to content

Commit 51c742e

Browse files
committed
Remobe AMBE regeneration on data packets.
1 parent cb07423 commit 51c742e

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

DStarControl.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,9 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len)
235235

236236
return false;
237237
} else if (m_rfState == RS_RF_AUDIO) {
238-
unsigned int errors = m_fec.regenerateDStar(data + 1U);
238+
unsigned int errors = 0U;
239+
if (!m_rfHeader.isDataPacket())
240+
errors = m_fec.regenerateDStar(data + 1U);
239241

240242
m_rfErrs += errors;
241243
m_rfBits += 48U;
@@ -354,7 +356,9 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len)
354356

355357
delete header;
356358

357-
unsigned int errors = m_fec.regenerateDStar(data + 1U);
359+
unsigned int errors = 0U;
360+
if (!m_rfHeader.isDataPacket())
361+
errors = m_fec.regenerateDStar(data + 1U);
358362

359363
m_rfErrs += errors;
360364
m_rfBits += 48U;
@@ -529,7 +533,9 @@ void CDStarControl::writeNetwork()
529533

530534
unsigned char n = data[1U];
531535

532-
unsigned int errors = m_fec.regenerateDStar(data + 2U);
536+
unsigned int errors = 0U;
537+
if (!m_netHeader.isDataPacket())
538+
errors = m_fec.regenerateDStar(data + 2U);
533539

534540
blankDTMF(data + 2U);
535541

DStarHeader.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ void CDStarHeader::setRepeater(bool on)
7272
m_header[0U] &= ~DSTAR_REPEATER_MASK;
7373
}
7474

75+
bool CDStarHeader::isDataPacket() const
76+
{
77+
return (m_header[0U] & DSTAR_DATA_MASK) == DSTAR_DATA_MASK;
78+
}
79+
7580
void CDStarHeader::setUnavailable(bool on)
7681
{
7782
if (on)

DStarHeader.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ class CDStarHeader {
2828
bool isRepeater() const;
2929
void setRepeater(bool on);
3030

31+
bool isDataPacket() const;
32+
3133
void setUnavailable(bool on);
3234

3335
void getMyCall1(unsigned char* call1) const;

0 commit comments

Comments
 (0)