diff --git a/examples/cpp/snap7.h b/examples/cpp/snap7.h index 23cf5fd..30f4783 100644 --- a/examples/cpp/snap7.h +++ b/examples/cpp/snap7.h @@ -596,7 +596,7 @@ const longword evcDirectory = 0x01000000; const longword evcSecurity = 0x02000000; const longword evcControl = 0x04000000; const longword evcGroupProgrammer = 0x08000000; -const longword evcCyclicData = 0x10000000; +const longword evcGroupCyclicData = 0x10000000; const longword evcReserved_20000000 = 0x20000000; // actually unused const longword evcReserved_40000000 = 0x40000000; // actually unused const longword evcReserved_80000000 = 0x80000000; // actually unused @@ -620,6 +620,7 @@ const word evsGPBlink = 0x0002; const word evsGPRequestDiag = 0x0003; const word evsGPReadDiag = 0x0004; const word evsGPRemoveDiag = 0x0005; +const word evsGCRequestData = 0x0001; // Event Params : functions group const word grProgrammer = 0x0041; const word grCyclicData = 0x0042; diff --git a/src/core/s7_server.cpp b/src/core/s7_server.cpp index 53c36bf..2cfe663 100644 --- a/src/core/s7_server.cpp +++ b/src/core/s7_server.cpp @@ -1672,7 +1672,7 @@ bool TS7Worker::PerformGroupCyclicData() // Check request and send appropriate answer if (RequestParams->SubFun == SFun_Profinet) { - + evs = evsGCRequestData; AnswerData->ReturnCode = ReturnCode_Success; // Set transport size of Data to OCTET: AnswerData->TransportSize = TS_ResOctet; @@ -1693,8 +1693,7 @@ bool TS7Worker::PerformGroupCyclicData() 0xb6, 0x00, 0x00, 0x00, 0x00 }; // Fill Answer with Response Data - int i; - for (i = 0; i < sizeof(ResponseData); i++) { + for (size_t i = 0; i < sizeof(ResponseData); i++) { AnswerData->Data[i] = ResponseData[i]; } @@ -1716,7 +1715,7 @@ bool TS7Worker::PerformGroupCyclicData() } // TODO sent correct events - DoEvent(evcCyclicData,evrNotImplemented,grCyclicData,0,0,0); + DoEvent(evcGroupCyclicData,evrNoError,0,0,0,0); return true; } //============================================================================== diff --git a/src/core/s7_text.cpp b/src/core/s7_text.cpp index 0064c13..3f8927e 100644 --- a/src/core/s7_text.cpp +++ b/src/core/s7_text.cpp @@ -523,6 +523,15 @@ static BaseString GroupProgrammerText(TSrvEvent &Event) }; } //--------------------------------------------------------------------------- +static BaseString GroupCyclicDataText(TSrvEvent &Event) +{ + switch (Event.EvtParam1) + { + case evsGCRequestData : return "Group Cyclic Data: Request Cyclic Data"; + default : return "Group Cyclic Data: Unknown Subfunction"; + }; +} +//--------------------------------------------------------------------------- BaseString EvtSrvText(TSrvEvent &Event) { BaseString S; @@ -543,6 +552,7 @@ BaseString EvtSrvText(TSrvEvent &Event) case evcDirectory : S=BlockInfoText(Event);break; case evcSecurity : S=SecurityText(Event);break; case evcGroupProgrammer: S=GroupProgrammerText(Event);break; + case evcGroupCyclicData: S=GroupCyclicDataText(Event);break; default: S="Unknown event ("+IntToString(Event.EvtCode)+")";break; } return SenderText(Event)+S; diff --git a/src/core/s7_types.h b/src/core/s7_types.h index 11f4830..69a875c 100644 --- a/src/core/s7_types.h +++ b/src/core/s7_types.h @@ -106,7 +106,7 @@ const longword evcDirectory = 0x01000000; const longword evcSecurity = 0x02000000; const longword evcControl = 0x04000000; const longword evcGroupProgrammer = 0x08000000; -const longword evcCyclicData = 0x10000000; +const longword evcGroupCyclicData = 0x10000000; const longword evcReserved_20000000 = 0x20000000; const longword evcReserved_40000000 = 0x40000000; const longword evcReserved_80000000 = 0x80000000; @@ -127,6 +127,7 @@ const word evsGPBlink = 0x0002; const word evsGPRequestDiag = 0x0003; const word evsGPReadDiag = 0x0004; const word evsGPRemoveDiag = 0x0005; +const word evsGCRequestData = 0x0001; // Event Result const word evrNoError = 0; const word evrFragmentRejected = 0x0001;