- IEC 61850 server: reporting - don't delete pending events when buffered report is enabled and dataset didn't change

v1.2
Michael Zillgith 7 years ago
parent 285237b358
commit cef1360e05

@ -646,23 +646,28 @@ updateReportDataset(MmsMapping* mapping, ReportControl* rc, MmsValue* newDatSet,
#endif /* (MMS_DYNAMIC_DATA_SETS == 1) */
deleteDataSetValuesShadowBuffer(rc);
if ((dataSet == NULL) || (dataSetChanged == true)) {
rc->dataSet = dataSet;
/* delete pending event and create buffer for new data set */
deleteDataSetValuesShadowBuffer(rc);
rc->dataSet = dataSet;
createDataSetValuesShadowBuffer(rc);
createDataSetValuesShadowBuffer(rc);
if (rc->inclusionField != NULL)
MmsValue_delete(rc->inclusionField);
if (rc->inclusionField != NULL)
MmsValue_delete(rc->inclusionField);
rc->inclusionField = MmsValue_newBitString(dataSet->elementCount);
rc->inclusionField = MmsValue_newBitString(dataSet->elementCount);
rc->triggered = false;
rc->triggered = false;
if (rc->inclusionFlags != NULL)
GLOBAL_FREEMEM(rc->inclusionFlags);
if (rc->inclusionFlags != NULL)
GLOBAL_FREEMEM(rc->inclusionFlags);
rc->inclusionFlags = (uint8_t*) GLOBAL_CALLOC(dataSet->elementCount, sizeof(uint8_t));
rc->inclusionFlags = (uint8_t*) GLOBAL_CALLOC(dataSet->elementCount, sizeof(uint8_t));
}
success = true;

Loading…
Cancel
Save