mirror of
https://github.com/g4klx/MMDVMHost.git
synced 2026-04-04 14:07:36 +00:00
implement proper LDU2 encode/decode; implement proper HDU (Header) encode/decode
This commit is contained in:
parent
f5a70aa6ce
commit
85bc8357aa
6 changed files with 433 additions and 108 deletions
|
|
@ -208,9 +208,24 @@ bool CP25Control::writeModem(unsigned char* data, unsigned int len)
|
|||
m_rssiCount++;
|
||||
}
|
||||
|
||||
if (duid == P25_DUID_LDU1) {
|
||||
if (duid == P25_DUID_HEADER) {
|
||||
if (m_rfState == RS_RF_LISTENING) {
|
||||
m_rfData.reset();
|
||||
bool ret = m_rfData.decodeHeader(data + 2U);
|
||||
if (!ret) {
|
||||
m_lastDUID = duid;
|
||||
return false;
|
||||
}
|
||||
|
||||
LogMessage("P25, received RF header");
|
||||
|
||||
m_lastDUID = duid;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (duid == P25_DUID_LDU1) {
|
||||
if (m_rfState == RS_RF_LISTENING) {
|
||||
//m_rfData.reset();
|
||||
bool ret = m_rfData.decodeLDU1(data + 2U);
|
||||
if (!ret) {
|
||||
m_lastDUID = duid;
|
||||
|
|
@ -262,6 +277,11 @@ bool CP25Control::writeModem(unsigned char* data, unsigned int len)
|
|||
}
|
||||
|
||||
if (m_rfState == RS_RF_AUDIO) {
|
||||
bool ret = m_rfData.decodeLDU1(data + 2U);
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Regenerate Sync
|
||||
CSync::addP25Sync(data + 2U);
|
||||
|
||||
|
|
@ -306,6 +326,11 @@ bool CP25Control::writeModem(unsigned char* data, unsigned int len)
|
|||
}
|
||||
} else if (duid == P25_DUID_LDU2) {
|
||||
if (m_rfState == RS_RF_AUDIO) {
|
||||
bool ret = m_rfData.decodeLDU2(data + 2U);
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
writeNetwork(m_rfLDU, m_lastDUID, false);
|
||||
|
||||
// Regenerate Sync
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue