mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-21 06:55:52 +08:00
Don't alter CSD2 for gateway data.
This commit is contained in:
@@ -428,19 +428,19 @@ void CYSFControl::writeNetwork()
|
||||
case YSF_FI_COMMUNICATIONS:
|
||||
switch (dt) {
|
||||
case YSF_DT_VD_MODE1:
|
||||
m_netPayload.processVDMode1Data(data + 35U, fn);
|
||||
m_netPayload.processVDMode1Data(data + 35U, fn, gateway);
|
||||
m_netErrs += m_netPayload.processVDMode1Audio(data + 35U);
|
||||
m_netBits += 235U;
|
||||
break;
|
||||
|
||||
case YSF_DT_VD_MODE2:
|
||||
m_netPayload.processVDMode2Data(data + 35U, fn);
|
||||
m_netPayload.processVDMode2Data(data + 35U, fn, gateway);
|
||||
m_netErrs += m_netPayload.processVDMode2Audio(data + 35U);
|
||||
m_netBits += 135U;
|
||||
break;
|
||||
|
||||
case YSF_DT_DATA_FR_MODE:
|
||||
m_netPayload.processDataFRModeData(data + 35U, fn);
|
||||
m_netPayload.processDataFRModeData(data + 35U, fn, gateway);
|
||||
break;
|
||||
|
||||
case YSF_DT_VOICE_FR_MODE:
|
||||
|
||||
@@ -268,7 +268,7 @@ unsigned int CYSFPayload::processVDMode1Audio(unsigned char* data)
|
||||
return errors;
|
||||
}
|
||||
|
||||
bool CYSFPayload::processVDMode1Data(unsigned char* data, unsigned char fn)
|
||||
bool CYSFPayload::processVDMode1Data(unsigned char* data, unsigned char fn, bool gateway)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
@@ -319,10 +319,10 @@ bool CYSFPayload::processVDMode1Data(unsigned char* data, unsigned char fn)
|
||||
break;
|
||||
|
||||
case 1U:
|
||||
if (m_downlink != NULL)
|
||||
if (m_downlink != NULL && !gateway)
|
||||
::memcpy(output + 0U, m_downlink, YSF_CALLSIGN_LENGTH);
|
||||
|
||||
if (m_uplink != NULL)
|
||||
if (m_uplink != NULL && !gateway)
|
||||
::memcpy(output + YSF_CALLSIGN_LENGTH, m_uplink, YSF_CALLSIGN_LENGTH);
|
||||
|
||||
break;
|
||||
@@ -450,7 +450,7 @@ unsigned int CYSFPayload::processVDMode2Audio(unsigned char* data)
|
||||
return errors;
|
||||
}
|
||||
|
||||
bool CYSFPayload::processVDMode2Data(unsigned char* data, unsigned char fn)
|
||||
bool CYSFPayload::processVDMode2Data(unsigned char* data, unsigned char fn, bool gateway)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
@@ -502,12 +502,12 @@ bool CYSFPayload::processVDMode2Data(unsigned char* data, unsigned char fn)
|
||||
break;
|
||||
|
||||
case 2U:
|
||||
if (m_downlink != NULL)
|
||||
if (m_downlink != NULL && !gateway)
|
||||
::memcpy(output, m_downlink, YSF_CALLSIGN_LENGTH);
|
||||
break;
|
||||
|
||||
case 3U:
|
||||
if (m_uplink != NULL)
|
||||
if (m_uplink != NULL && !gateway)
|
||||
::memcpy(output, m_uplink, YSF_CALLSIGN_LENGTH);
|
||||
break;
|
||||
|
||||
@@ -560,7 +560,7 @@ bool CYSFPayload::processVDMode2Data(unsigned char* data, unsigned char fn)
|
||||
return ret && (fn == 0U || fn == 1U);
|
||||
}
|
||||
|
||||
bool CYSFPayload::processDataFRModeData(unsigned char* data, unsigned char fn)
|
||||
bool CYSFPayload::processDataFRModeData(unsigned char* data, unsigned char fn, bool gateway)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
@@ -708,10 +708,10 @@ bool CYSFPayload::processDataFRModeData(unsigned char* data, unsigned char fn)
|
||||
case 0U:
|
||||
CUtils::dump(1U, "FR Mode Data, CSD2", output, 20U);
|
||||
|
||||
if (m_downlink != NULL)
|
||||
if (m_downlink != NULL && !gateway)
|
||||
::memcpy(output + 0U, m_downlink, YSF_CALLSIGN_LENGTH);
|
||||
|
||||
if (m_uplink != NULL)
|
||||
if (m_uplink != NULL && !gateway)
|
||||
::memcpy(output + YSF_CALLSIGN_LENGTH, m_uplink, YSF_CALLSIGN_LENGTH);
|
||||
|
||||
break;
|
||||
|
||||
@@ -30,13 +30,13 @@ public:
|
||||
|
||||
bool processHeaderData(unsigned char* bytes);
|
||||
|
||||
bool processVDMode1Data(unsigned char* bytes, unsigned char fn);
|
||||
bool processVDMode1Data(unsigned char* bytes, unsigned char fn, bool gateway = false);
|
||||
unsigned int processVDMode1Audio(unsigned char* bytes);
|
||||
|
||||
bool processVDMode2Data(unsigned char* bytes, unsigned char fn);
|
||||
bool processVDMode2Data(unsigned char* bytes, unsigned char fn, bool gateway = false);
|
||||
unsigned int processVDMode2Audio(unsigned char* bytes);
|
||||
|
||||
bool processDataFRModeData(unsigned char* bytes, unsigned char fn);
|
||||
bool processDataFRModeData(unsigned char* bytes, unsigned char fn, bool gateway = false);
|
||||
|
||||
unsigned int processVoiceFRModeAudio(unsigned char* bytes);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user