...
The stack does not know anything about the GSDML file. The stack needs first the information about supported I&M data. For that the stack sensĀ sends in startup the
PNS_IF_READ_IM_IND with the parameter PNS_IF_IM_TYPE_IM0FILTER. That means the stack wants to get from the application the information which Modul modul does support own I&M data.
The application can response with some flags to this stack request.
For Example example the stack as requests for Slot 0 and Subslot 1 (DAP):
Send BackThe application sends back the response with these flags:
ptReadImRes->tData.tData.atIM0FilterData[0].ulFlags = PNS_IF_IM0_FILTER_DATA_HAS_IM_DATA | PNS_IF_IM0_FILTER_DATA_MODULE_REF | PNS_IF_IM0_FILTER_DATA_DEVICE_REF;
...
PNS_IF_IM0_FILTER_DATA_HAS_IM_DATA means, that the Modul has own I&M Data:
(The DAP has in data)
PNS_IF_IM0_FILTER_DATA_MODULE_REF means, that the I&M data of this Modul are the reference for all Submoduls which belong to this modul:
(All other submoduls response with the I&M data from the DAP)
PNS_IF_IM0_FILTER_DATA_DEVICE_REF this is used only one time (on the DAP) and means, that all other Moduls and Submoduls without own I&M data willrefer to this modul:
(All other soduls and submoduls response with the I&M data from the DAP)
That means GSDML with
DAP: <VirtualSubmoduleItem ID="DIM 31" IM5_Supported="false" MayIssueProcessAlarm="false" SubmoduleIdentNumber="0x00003010" Writeable_IM_Records="1 2 3">
...
ptReadImRes->tData.tData.atIM0FilterData[0].ulFlags = PNS_IF_IM0_FILTER_DATA_HAS_IM_DATA | PNS_IF_IM0_FILTER_DATA_MODULE_REF;
(Slot 2 has its own I&M data and will not response the I&M data from the DAP)
(For the Modul not marked yellow only ptReadImRes->tData.tData.atIM0FilterData[0].ulFlags = PNS_IF_IM0_FILTER_DATA_HAS_IM_DATA; is necessary, because no submoduls)
...