From 7c3601cb746453080b30d9656b8cb5cbf53f94ae Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Fri, 17 Sep 2021 16:48:06 +0200 Subject: [PATCH] - IED client: send RptEna as first element when RCB is to be disabled --- src/iec61850/client/client_report_control.c | 22 ++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/iec61850/client/client_report_control.c b/src/iec61850/client/client_report_control.c index 085e4a75..12006158 100644 --- a/src/iec61850/client/client_report_control.c +++ b/src/iec61850/client/client_report_control.c @@ -1094,7 +1094,17 @@ IedConnection_setRCBValues(IedConnection self, IedClientError* error, ClientRepo LinkedList itemIds = LinkedList_create(); LinkedList values = LinkedList_create(); - /* add resv/resvTms as first element and rptEna as last element */ + /* add rptEna = false as first element */ + if (ClientReportControlBlock_getRptEna(rcb) == false) { + if (parametersMask & RCB_ELEMENT_RPT_ENA) { + strcpy(itemId + itemIdLen, "$RptEna"); + + LinkedList_add(itemIds, StringUtils_copyString(itemId)); + LinkedList_add(values, rcb->rptEna); + } + } + + /* add resv/resvTms as first element and rptEna as last element when enabling a report */ if (parametersMask & RCB_ELEMENT_RESV) { if (isBuffered) goto error_invalid_parameter; @@ -1199,11 +1209,13 @@ IedConnection_setRCBValues(IedConnection self, IedClientError* error, ClientRepo LinkedList_add(values, rcb->timeOfEntry); } - if (parametersMask & RCB_ELEMENT_RPT_ENA) { - strcpy(itemId + itemIdLen, "$RptEna"); + if (ClientReportControlBlock_getRptEna(rcb) == true) { + if (parametersMask & RCB_ELEMENT_RPT_ENA) { + strcpy(itemId + itemIdLen, "$RptEna"); - LinkedList_add(itemIds, StringUtils_copyString(itemId)); - LinkedList_add(values, rcb->rptEna); + LinkedList_add(itemIds, StringUtils_copyString(itemId)); + LinkedList_add(values, rcb->rptEna); + } } if (sendGILast) {