diff --git a/src/cimrsprotocol.cpp b/src/cimrsprotocol.cpp index afdb41b..b6ed0c0 100644 --- a/src/cimrsprotocol.cpp +++ b/src/cimrsprotocol.cpp @@ -659,13 +659,16 @@ void CImrsProtocol::EncodePongPacket(CBuffer *Buffer) const // radioid Buffer->Append(radioid, sizeof(radioid)); // list of authorised dg-id - // enable dg-id 2 & 10 -> 10+NBmodules + // enable dg-id 2 & First DG-ID -> (NBmodules + First DG-ID) uint32 dgids32 = 0x00000004; uint32 mask32 = 0x00000400; // modules 10->31 - for ( int i = 0; i < (int)(MIN(NB_OF_MODULES,22)); i++ ) + for ( int i = 10; i < 32; i++ ) { - dgids32 |= mask32; + if (i >= FIRST_DG_ID && i < FIRST_DG_ID + NB_OF_MODULES) { + dgids32 |= mask32; + std::cout << "IMRS opening DG-ID " << i << std::endl; + } mask32 = mask32 << 1; } Buffer->Append(LOBYTE(LOWORD(dgids32))); @@ -675,9 +678,12 @@ void CImrsProtocol::EncodePongPacket(CBuffer *Buffer) const // module 32->35 uint8 dgids8 = 0x00; uint8 mask8 = 0x01; - for ( int i = 22; i < NB_OF_MODULES; i++ ) + for ( int i = 32; i < 36; i++ ) { - dgids8 |= mask8; + if (i >= FIRST_DG_ID && i < FIRST_DG_ID + NB_OF_MODULES) { + dgids8 |= mask8; + std::cout << "IMRS opening DG-ID " << i << std::endl; + } mask8 = mask8 << 1; } Buffer->Append(dgids8);