diff --git a/DGIdGateway/DGIdGateway.cpp b/DGIdGateway/DGIdGateway.cpp index 0a6019a..88be328 100644 --- a/DGIdGateway/DGIdGateway.cpp +++ b/DGIdGateway/DGIdGateway.cpp @@ -370,8 +370,13 @@ int CDGIdGateway::run() if (currentDGId != 0U && dgIdNetwork[currentDGId] != NULL) { // Only allow the wanted modes through - if ((dgIdNetwork[currentDGId]->m_modes & dt) != 0U) - dgIdNetwork[currentDGId]->write(currentDGId, buffer); + if ((dgIdNetwork[currentDGId]->m_modes & dt) != 0U) { + // Set the DG-ID to zero for compatibility + fich.setDGId(0U); + fich.encode(buffer + 35U); + + dgIdNetwork[currentDGId]->write(currentDGId, dt, buffer); + } inactivityTimer.setTimeout(dgIdNetwork[currentDGId]->m_rfHangTime); inactivityTimer.start(); @@ -396,7 +401,7 @@ int CDGIdGateway::run() fich.setDGId(i); fich.encode(buffer + 35U); - rptNetwork.write(0U, buffer); + rptNetwork.write(0U, 0U, buffer); inactivityTimer.setTimeout(dgIdNetwork[i]->m_netHangTime); inactivityTimer.start(); diff --git a/DGIdGateway/DGIdNetwork.h b/DGIdGateway/DGIdNetwork.h index f553d31..04bd821 100644 --- a/DGIdGateway/DGIdNetwork.h +++ b/DGIdGateway/DGIdNetwork.h @@ -28,7 +28,7 @@ public: virtual void link() = 0; - virtual void write(unsigned int dgId, const unsigned char* data) = 0; + virtual void write(unsigned int dgId, unsigned char dt, const unsigned char* data) = 0; virtual unsigned int read(unsigned int dgid, unsigned char* data) = 0; diff --git a/DGIdGateway/FCSNetwork.cpp b/DGIdGateway/FCSNetwork.cpp index d48aa54..60e48e9 100644 --- a/DGIdGateway/FCSNetwork.cpp +++ b/DGIdGateway/FCSNetwork.cpp @@ -81,7 +81,7 @@ bool CFCSNetwork::open() return m_socket.open(); } -void CFCSNetwork::write(unsigned int dgid, const unsigned char* data) +void CFCSNetwork::write(unsigned int dgid, unsigned char dt, const unsigned char* data) { assert(data != NULL); diff --git a/DGIdGateway/FCSNetwork.h b/DGIdGateway/FCSNetwork.h index 9cb61d1..1929ef2 100644 --- a/DGIdGateway/FCSNetwork.h +++ b/DGIdGateway/FCSNetwork.h @@ -44,7 +44,7 @@ public: virtual void link(); - virtual void write(unsigned int dgId, const unsigned char* data); + virtual void write(unsigned int dgId, unsigned char dt, const unsigned char* data); virtual unsigned int read(unsigned int dgId, unsigned char* data); diff --git a/DGIdGateway/IMRSNetwork.cpp b/DGIdGateway/IMRSNetwork.cpp index bba03f3..77567fa 100644 --- a/DGIdGateway/IMRSNetwork.cpp +++ b/DGIdGateway/IMRSNetwork.cpp @@ -55,7 +55,7 @@ bool CIMRSNetwork::open() return m_socket.open(); } -void CIMRSNetwork::write(unsigned int dgId, const unsigned char* data) +void CIMRSNetwork::write(unsigned int dgId, unsigned char dt, const unsigned char* data) { assert(data != NULL); diff --git a/DGIdGateway/IMRSNetwork.h b/DGIdGateway/IMRSNetwork.h index f03b7ee..93bf165 100644 --- a/DGIdGateway/IMRSNetwork.h +++ b/DGIdGateway/IMRSNetwork.h @@ -58,7 +58,7 @@ public: virtual void link(); - virtual void write(unsigned int dgId, const unsigned char* data); + virtual void write(unsigned int dgId, unsigned char dt, const unsigned char* data); virtual unsigned int read(unsigned int dgId, unsigned char* data); diff --git a/DGIdGateway/Version.h b/DGIdGateway/Version.h index 997a270..255970f 100644 --- a/DGIdGateway/Version.h +++ b/DGIdGateway/Version.h @@ -19,6 +19,6 @@ #if !defined(VERSION_H) #define VERSION_H -const char* VERSION = "20200819"; +const char* VERSION = "20200820"; #endif diff --git a/DGIdGateway/YSFNetwork.cpp b/DGIdGateway/YSFNetwork.cpp index 23384fc..296ecff 100644 --- a/DGIdGateway/YSFNetwork.cpp +++ b/DGIdGateway/YSFNetwork.cpp @@ -93,7 +93,7 @@ bool CYSFNetwork::open() return m_socket.open(); } -void CYSFNetwork::write(unsigned int dgid, const unsigned char* data) +void CYSFNetwork::write(unsigned int dgid, unsigned char dt, const unsigned char* data) { assert(data != NULL); diff --git a/DGIdGateway/YSFNetwork.h b/DGIdGateway/YSFNetwork.h index 6b774fb..5507d09 100644 --- a/DGIdGateway/YSFNetwork.h +++ b/DGIdGateway/YSFNetwork.h @@ -38,7 +38,7 @@ public: virtual void link(); - virtual void write(unsigned int dgId, const unsigned char* data); + virtual void write(unsigned int dgId, unsigned char dt, const unsigned char* data); virtual unsigned int read(unsigned int dgId, unsigned char* data);