- ensure RESERVED event before ENABLE event

pull/374/head
Michael Zillgith 4 years ago
parent 81b26f1cb6
commit e06b485258

@ -1804,6 +1804,14 @@ Reporting_RCBWriteAccessHandler(MmsMapping* self, ReportControl* rc, char* eleme
if (updateReportDataset(self, rc, NULL, connection)) { if (updateReportDataset(self, rc, NULL, connection)) {
if (rc->reserved == false) {
reserveRcb(rc, connection);
if (self->rcbEventHandler) {
self->rcbEventHandler(self->rcbEventHandlerParameter, rc->rcb, clientConnection, RCB_EVENT_RESERVED, NULL, DATA_ACCESS_ERROR_SUCCESS);
}
}
updateOwner(rc, connection); updateOwner(rc, connection);
MmsValue* rptEna = ReportControl_getRCBValue(rc, "RptEna"); MmsValue* rptEna = ReportControl_getRCBValue(rc, "RptEna");
@ -2201,6 +2209,8 @@ exit_function:
rc->reservationTimeout = Hal_getTimeInMs() + (RESV_TMS_IMPLICIT_VALUE * 1000); rc->reservationTimeout = Hal_getTimeInMs() + (RESV_TMS_IMPLICIT_VALUE * 1000);
if (rc->resvTms == 0) { if (rc->resvTms == 0) {
if (rc->reserved == false) {
rc->resvTms = RESV_TMS_IMPLICIT_VALUE; rc->resvTms = RESV_TMS_IMPLICIT_VALUE;
reserveRcb(rc, connection); reserveRcb(rc, connection);
@ -2209,7 +2219,11 @@ exit_function:
self->rcbEventHandler(self->rcbEventHandlerParameter, rc->rcb, clientConnection, RCB_EVENT_RESERVED, NULL, DATA_ACCESS_ERROR_SUCCESS); self->rcbEventHandler(self->rcbEventHandlerParameter, rc->rcb, clientConnection, RCB_EVENT_RESERVED, NULL, DATA_ACCESS_ERROR_SUCCESS);
} }
} }
}
else if (rc->resvTms == -1) { else if (rc->resvTms == -1) {
if (rc->reserved == false) {
reserveRcb(rc, connection); reserveRcb(rc, connection);
if (self->rcbEventHandler) { if (self->rcbEventHandler) {
@ -2217,7 +2231,9 @@ exit_function:
} }
} }
} }
}
else { else {
if (rc->reserved == false) {
reserveRcb(rc, connection); reserveRcb(rc, connection);
if (self->rcbEventHandler) { if (self->rcbEventHandler) {
@ -2225,6 +2241,7 @@ exit_function:
} }
} }
} }
}
#if (CONFIG_IEC61850_SERVICE_TRACKING == 1) #if (CONFIG_IEC61850_SERVICE_TRACKING == 1)

Loading…
Cancel
Save