- IEC 61850 client: added function ClientReportControlBlock_hasResvTms

- IEC 61850 server: don't empty owner when client disables BRCB (RptEna = false)
pull/147/head
Michael Zillgith 7 years ago
parent 17449300e2
commit a8821fd148

@ -137,7 +137,10 @@
#cmakedefine01 CONFIG_IEC61850_REPORT_SERVICE #cmakedefine01 CONFIG_IEC61850_REPORT_SERVICE
/* support buffered report control blocks with ResvTms field */ /* support buffered report control blocks with ResvTms field */
#define CONFIG_IEC61850_BRCB_WITH_RESVTMS 0 #define CONFIG_IEC61850_BRCB_WITH_RESVTMS 1
/* allow only configured clients (when pre-configured by ClientLN) - note behavior in PIXIT Rp13 */
#define CONFIG_IEC61850_RCB_ALLOW_ONLY_PRECONFIGURED_CLIENT 0
/* The default buffer size of buffered RCBs in bytes */ /* The default buffer size of buffered RCBs in bytes */
#cmakedefine CONFIG_REPORTING_DEFAULT_REPORT_BUFFER_SIZE @CONFIG_REPORTING_DEFAULT_REPORT_BUFFER_SIZE@ #cmakedefine CONFIG_REPORTING_DEFAULT_REPORT_BUFFER_SIZE @CONFIG_REPORTING_DEFAULT_REPORT_BUFFER_SIZE@

@ -324,6 +324,12 @@ ClientReportControlBlock_setPurgeBuf(ClientReportControlBlock self, bool purgeBu
MmsValue_setBoolean(self->purgeBuf, purgeBuf); MmsValue_setBoolean(self->purgeBuf, purgeBuf);
} }
bool
ClientReportControlBlock_hasResvTms(ClientReportControlBlock self)
{
return (self->resvTms != NULL);
}
int16_t int16_t
ClientReportControlBlock_getResvTms(ClientReportControlBlock self) ClientReportControlBlock_getResvTms(ClientReportControlBlock self)
{ {

@ -1198,9 +1198,24 @@ ClientReportControlBlock_setGI(ClientReportControlBlock self, bool gi);
bool bool
ClientReportControlBlock_getPurgeBuf(ClientReportControlBlock self); ClientReportControlBlock_getPurgeBuf(ClientReportControlBlock self);
/**
* \brief Set the "PurgeBuf" attribute value (only BRCB)
*
* When set to true the report buffer will be cleared.
*
* \param purgeBuf attribute value
*/
void void
ClientReportControlBlock_setPurgeBuf(ClientReportControlBlock self, bool purgeBuf); ClientReportControlBlock_setPurgeBuf(ClientReportControlBlock self, bool purgeBuf);
/**
* \brief Check if optional attribute "ResvTms" is present in BRCB
*
* \return true when present, false otherwise
*/
bool
ClientReportControlBlock_hasResvTms(ClientReportControlBlock self);
int16_t int16_t
ClientReportControlBlock_getResvTms(ClientReportControlBlock self); ClientReportControlBlock_getResvTms(ClientReportControlBlock self);

@ -1759,9 +1759,9 @@ Reporting_RCBWriteAccessHandler(MmsMapping* self, ReportControl* rc, char* eleme
rc->triggered = false; rc->triggered = false;
rc->reserved = false; rc->reserved = false;
}
updateOwner(rc, NULL); updateOwner(rc, NULL);
}
rc->enabled = false; rc->enabled = false;
} }

Loading…
Cancel
Save