Don't alter CSD2 for gateway data.

This commit is contained in:
Jonathan Naylor
2016-06-09 20:25:02 +01:00
parent 89fa0a0c8d
commit 3ad6da4d56
3 changed files with 15 additions and 15 deletions

View File

@@ -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:

View File

@@ -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;

View File

@@ -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);