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

pull/72/head
Michael Zillgith 7 years ago
parent e905bc242b
commit a830fc3cfb

@ -639,23 +639,28 @@ updateReportDataset(MmsMapping* mapping, ReportControl* rc, MmsValue* newDatSet,
#endif /* (MMS_DYNAMIC_DATA_SETS == 1) */ #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) if (rc->inclusionField != NULL)
MmsValue_delete(rc->inclusionField); 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) if (rc->inclusionFlags != NULL)
GLOBAL_FREEMEM(rc->inclusionFlags); 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; success = true;

Loading…
Cancel
Save