libiec61850  1.6.0
Macros | Typedefs | Functions
Client side report handling services, functions, and data types

Macros

#define IEC61850_REASON_NOT_INCLUDED   0
 
#define IEC61850_REASON_DATA_CHANGE   1
 
#define IEC61850_REASON_QUALITY_CHANGE   2
 
#define IEC61850_REASON_DATA_UPDATE   4
 
#define IEC61850_REASON_INTEGRITY   8
 
#define IEC61850_REASON_GI   16
 
#define IEC61850_REASON_UNKNOWN   32
 
#define RCB_ELEMENT_RPT_ID   1
 
#define RCB_ELEMENT_RPT_ENA   2
 
#define RCB_ELEMENT_RESV   4
 
#define RCB_ELEMENT_DATSET   8
 
#define RCB_ELEMENT_CONF_REV   16
 
#define RCB_ELEMENT_OPT_FLDS   32
 
#define RCB_ELEMENT_BUF_TM   64
 
#define RCB_ELEMENT_SQ_NUM   128
 
#define RCB_ELEMENT_TRG_OPS   256
 
#define RCB_ELEMENT_INTG_PD   512
 
#define RCB_ELEMENT_GI   1024
 
#define RCB_ELEMENT_PURGE_BUF   2048
 
#define RCB_ELEMENT_ENTRY_ID   4096
 
#define RCB_ELEMENT_TIME_OF_ENTRY   8192
 
#define RCB_ELEMENT_RESV_TMS   16384
 
#define RCB_ELEMENT_OWNER   32768
 

Typedefs

typedef void(* IedConnection_GetRCBValuesHandler) (uint32_t invokeId, void *parameter, IedClientError err, ClientReportControlBlock rcb)
 
typedef int ReasonForInclusion
 
typedef void(* ReportCallbackFunction) (void *parameter, ClientReport report)
 Callback function for receiving reports. More...
 

Functions

LIB61850_API ClientReportControlBlock IedConnection_getRCBValues (IedConnection self, IedClientError *error, const char *rcbReference, ClientReportControlBlock updateRcb)
 Read access to attributes of a report control block (RCB) at the connected server. More...
 
LIB61850_API uint32_t IedConnection_getRCBValuesAsync (IedConnection self, IedClientError *error, const char *rcbReference, ClientReportControlBlock updateRcb, IedConnection_GetRCBValuesHandler handler, void *parameter)
 
LIB61850_API void IedConnection_setRCBValues (IedConnection self, IedClientError *error, ClientReportControlBlock rcb, uint32_t parametersMask, bool singleRequest)
 Write access to attributes of a report control block (RCB) at the connected server. More...
 
LIB61850_API uint32_t IedConnection_setRCBValuesAsync (IedConnection self, IedClientError *error, ClientReportControlBlock rcb, uint32_t parametersMask, bool singleRequest, IedConnection_GenericServiceHandler handler, void *parameter)
 
LIB61850_API void IedConnection_installReportHandler (IedConnection self, const char *rcbReference, const char *rptId, ReportCallbackFunction handler, void *handlerParameter)
 Install a report handler function for the specified report control block (RCB) More...
 
LIB61850_API void IedConnection_uninstallReportHandler (IedConnection self, const char *rcbReference)
 uninstall a report handler function for the specified report control block (RCB) More...
 
LIB61850_API void IedConnection_triggerGIReport (IedConnection self, IedClientError *error, const char *rcbReference)
 trigger a general interrogation (GI) report for the specified report control block (RCB) More...
 
LIB61850_API const char * ClientReport_getDataSetName (ClientReport self)
 get the name of the report data set More...
 
LIB61850_API MmsValueClientReport_getDataSetValues (ClientReport self)
 return the received data set values of the report More...
 
LIB61850_API char * ClientReport_getRcbReference (ClientReport self)
 return reference (name) of the server RCB associated with this ClientReport object More...
 
LIB61850_API char * ClientReport_getRptId (ClientReport self)
 return RptId of the server RCB associated with this ClientReport object More...
 
LIB61850_API ReasonForInclusion ClientReport_getReasonForInclusion (ClientReport self, int elementIndex)
 get the reason code (reason for inclusion) for a specific report data set element More...
 
LIB61850_API MmsValueClientReport_getEntryId (ClientReport self)
 get the entry ID of the report More...
 
LIB61850_API bool ClientReport_hasTimestamp (ClientReport self)
 determine if the last received report contains a timestamp More...
 
LIB61850_API bool ClientReport_hasSeqNum (ClientReport self)
 determine if the last received report contains a sequence number More...
 
LIB61850_API uint16_t ClientReport_getSeqNum (ClientReport self)
 get the value of the sequence number More...
 
LIB61850_API bool ClientReport_hasDataSetName (ClientReport self)
 determine if the last received report contains the data set name More...
 
LIB61850_API bool ClientReport_hasReasonForInclusion (ClientReport self)
 determine if the last received report contains reason-for-inclusion information More...
 
LIB61850_API bool ClientReport_hasConfRev (ClientReport self)
 determine if the last received report contains the configuration revision More...
 
LIB61850_API uint32_t ClientReport_getConfRev (ClientReport self)
 get the value of the configuration revision More...
 
LIB61850_API bool ClientReport_hasBufOvfl (ClientReport self)
 indicates if the report contains the bufOvfl (buffer overflow) flag More...
 
LIB61850_API bool ClientReport_getBufOvfl (ClientReport self)
 get the value of the bufOvfl flag More...
 
LIB61850_API bool ClientReport_hasDataReference (ClientReport self)
 indicates if the report contains data references for the reported data set members More...
 
LIB61850_API const char * ClientReport_getDataReference (ClientReport self, int elementIndex)
 get the data-reference of the element of the report data set More...
 
LIB61850_API uint64_t ClientReport_getTimestamp (ClientReport self)
 get the timestamp of the report More...
 
LIB61850_API bool ClientReport_hasSubSeqNum (ClientReport self)
 indicates if the report contains a sub sequence number and a more segments follow flags (for segmented reporting) More...
 
LIB61850_API uint16_t ClientReport_getSubSeqNum (ClientReport self)
 get the sub sequence number of the report (for segmented reporting) More...
 
LIB61850_API bool ClientReport_getMoreSeqmentsFollow (ClientReport self)
 get the more segments follow flag of the received report segment (for segmented reporting) More...
 
LIB61850_API char * ReasonForInclusion_getValueAsString (ReasonForInclusion reasonCode)
 get the reason for inclusion of as a human readable string More...
 
LIB61850_API ClientReportControlBlock ClientReportControlBlock_create (const char *rcbReference)
 
LIB61850_API void ClientReportControlBlock_destroy (ClientReportControlBlock self)
 
LIB61850_API char * ClientReportControlBlock_getObjectReference (ClientReportControlBlock self)
 
LIB61850_API bool ClientReportControlBlock_isBuffered (ClientReportControlBlock self)
 
LIB61850_API const char * ClientReportControlBlock_getRptId (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setRptId (ClientReportControlBlock self, const char *rptId)
 
LIB61850_API bool ClientReportControlBlock_getRptEna (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setRptEna (ClientReportControlBlock self, bool rptEna)
 
LIB61850_API bool ClientReportControlBlock_getResv (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setResv (ClientReportControlBlock self, bool resv)
 
LIB61850_API const char * ClientReportControlBlock_getDataSetReference (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setDataSetReference (ClientReportControlBlock self, const char *dataSetReference)
 set the data set to be observed by the RCB More...
 
LIB61850_API uint32_t ClientReportControlBlock_getConfRev (ClientReportControlBlock self)
 
LIB61850_API int ClientReportControlBlock_getOptFlds (ClientReportControlBlock self)
 Gets the OptFlds parameter of the RCB (decides what information to include in a report) More...
 
LIB61850_API void ClientReportControlBlock_setOptFlds (ClientReportControlBlock self, int optFlds)
 Set the OptFlds parameter of the RCB (decides what information to include in a report) More...
 
LIB61850_API uint32_t ClientReportControlBlock_getBufTm (ClientReportControlBlock self)
 Get the BufTm (buffer time) parameter of the RCB. More...
 
LIB61850_API void ClientReportControlBlock_setBufTm (ClientReportControlBlock self, uint32_t bufTm)
 Set the BufTm (buffer time) parameter of the RCB. More...
 
LIB61850_API uint16_t ClientReportControlBlock_getSqNum (ClientReportControlBlock self)
 
LIB61850_API int ClientReportControlBlock_getTrgOps (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setTrgOps (ClientReportControlBlock self, int trgOps)
 
LIB61850_API uint32_t ClientReportControlBlock_getIntgPd (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setIntgPd (ClientReportControlBlock self, uint32_t intgPd)
 
LIB61850_API bool ClientReportControlBlock_getGI (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setGI (ClientReportControlBlock self, bool gi)
 
LIB61850_API bool ClientReportControlBlock_getPurgeBuf (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setPurgeBuf (ClientReportControlBlock self, bool purgeBuf)
 Set the "PurgeBuf" attribute value (only BRCB) More...
 
LIB61850_API bool ClientReportControlBlock_hasResvTms (ClientReportControlBlock self)
 Check if optional attribute "ResvTms" is present in BRCB. More...
 
LIB61850_API int16_t ClientReportControlBlock_getResvTms (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setResvTms (ClientReportControlBlock self, int16_t resvTms)
 
LIB61850_API MmsValueClientReportControlBlock_getEntryId (ClientReportControlBlock self)
 
LIB61850_API void ClientReportControlBlock_setEntryId (ClientReportControlBlock self, MmsValue *entryId)
 
LIB61850_API uint64_t ClientReportControlBlock_getEntryTime (ClientReportControlBlock self)
 
LIB61850_API MmsValueClientReportControlBlock_getOwner (ClientReportControlBlock self)
 

Detailed Description

Macro Definition Documentation

◆ IEC61850_REASON_DATA_CHANGE

#define IEC61850_REASON_DATA_CHANGE   1

the element is included due to a change of the data value

◆ IEC61850_REASON_DATA_UPDATE

#define IEC61850_REASON_DATA_UPDATE   4

the element is included due to an update of the data value

◆ IEC61850_REASON_GI

#define IEC61850_REASON_GI   16

the element is included due to a general interrogation by the client

◆ IEC61850_REASON_INTEGRITY

#define IEC61850_REASON_INTEGRITY   8

the element is included due to a periodic integrity report task

◆ IEC61850_REASON_NOT_INCLUDED

#define IEC61850_REASON_NOT_INCLUDED   0

the element is not included in the received report

◆ IEC61850_REASON_QUALITY_CHANGE

#define IEC61850_REASON_QUALITY_CHANGE   2

the element is included due to a change in the quality of data

◆ IEC61850_REASON_UNKNOWN

#define IEC61850_REASON_UNKNOWN   32

the reason for inclusion is unknown (e.g. report is not configured to include reason-for-inclusion)

◆ RCB_ELEMENT_BUF_TM

#define RCB_ELEMENT_BUF_TM   64

include the bufTm (event buffering time) element into the setRCB request

◆ RCB_ELEMENT_CONF_REV

#define RCB_ELEMENT_CONF_REV   16

include the configuration revision element into the setRCB request

◆ RCB_ELEMENT_DATSET

#define RCB_ELEMENT_DATSET   8

include the data set element into the setRCB request

◆ RCB_ELEMENT_ENTRY_ID

#define RCB_ELEMENT_ENTRY_ID   4096

include the entry ID element into the setRCB request (only available in buffered RCBs)

◆ RCB_ELEMENT_GI

#define RCB_ELEMENT_GI   1024

include the GI (general interrogation) element into the setRCB request

◆ RCB_ELEMENT_INTG_PD

#define RCB_ELEMENT_INTG_PD   512

include the integrity period element into the setRCB request

◆ RCB_ELEMENT_OPT_FLDS

#define RCB_ELEMENT_OPT_FLDS   32

include the option fields element into the setRCB request

◆ RCB_ELEMENT_OWNER

#define RCB_ELEMENT_OWNER   32768

include the owner element into the setRCB request

◆ RCB_ELEMENT_PURGE_BUF

#define RCB_ELEMENT_PURGE_BUF   2048

include the purge buffer element into the setRCB request (only available in buffered RCBs)

◆ RCB_ELEMENT_RESV

#define RCB_ELEMENT_RESV   4

include the reservation element into the setRCB request (only available in unbuffered RCBs!)

◆ RCB_ELEMENT_RESV_TMS

#define RCB_ELEMENT_RESV_TMS   16384

include the reservation time element into the setRCB request (only available in buffered RCBs)

◆ RCB_ELEMENT_RPT_ENA

#define RCB_ELEMENT_RPT_ENA   2

include the report enable element into the setRCB request

◆ RCB_ELEMENT_RPT_ID

#define RCB_ELEMENT_RPT_ID   1

include the report ID into the setRCB request

◆ RCB_ELEMENT_SQ_NUM

#define RCB_ELEMENT_SQ_NUM   128

include the sequence number element into the setRCB request (should be used!)

◆ RCB_ELEMENT_TIME_OF_ENTRY

#define RCB_ELEMENT_TIME_OF_ENTRY   8192

include the time of entry element into the setRCB request (only available in buffered RCBs)

◆ RCB_ELEMENT_TRG_OPS

#define RCB_ELEMENT_TRG_OPS   256

include the trigger options element into the setRCB request

Typedef Documentation

◆ IedConnection_GetRCBValuesHandler

typedef void(* IedConnection_GetRCBValuesHandler) (uint32_t invokeId, void *parameter, IedClientError err, ClientReportControlBlock rcb)

◆ ReasonForInclusion

typedef int ReasonForInclusion

Describes the reason for the inclusion of the element in the report

◆ ReportCallbackFunction

typedef void(* ReportCallbackFunction) (void *parameter, ClientReport report)

Callback function for receiving reports.

Parameters
parametera user provided parameter that is handed to the callback function
reporta ClientReport instance that holds the informations contained in the received report

Function Documentation

◆ ClientReport_getBufOvfl()

LIB61850_API bool ClientReport_getBufOvfl ( ClientReport  self)

get the value of the bufOvfl flag

Parameters
selfthe ClientReport instance
Returns
true if bufOvfl is set, false otherwise

◆ ClientReport_getConfRev()

LIB61850_API uint32_t ClientReport_getConfRev ( ClientReport  self)

get the value of the configuration revision

NOTE: The returned value is undefined if configuration revision is not present in report

Parameters
selfthe ClientReport instance
Returns
the number of the configuration revision

◆ ClientReport_getDataReference()

LIB61850_API const char* ClientReport_getDataReference ( ClientReport  self,
int  elementIndex 
)

get the data-reference of the element of the report data set

This function will only return a non-NULL value if the received report contains data-references. This can be determined by the ClientReport_hasDataReference function. NOTE: The returned string is allocated and hold by the ClientReport instance and is only valid until the ClientReport instance exists!

Parameters
selfthe ClientReport instance
elementIndexindex of the data set element (starting with 0)
thedata reference as string as provided by the report or NULL if the data reference is not available

◆ ClientReport_getDataSetName()

LIB61850_API const char* ClientReport_getDataSetName ( ClientReport  self)

get the name of the report data set

NOTE: the returned string is only valid as long as the ClientReport instance exists!

Parameters
selfthe ClientReport instance
Returns
report data set name as 0 terminated string

◆ ClientReport_getDataSetValues()

LIB61850_API MmsValue* ClientReport_getDataSetValues ( ClientReport  self)

return the received data set values of the report

NOTE: The returned MmsValue instance is handled by the library and only valid as long as the ClientReport instance exists! It should not be used outside the report callback handler to avoid concurrency issues.

Parameters
selfthe ClientReport instance
Returns
an MmsValue array instance containing the data set values

◆ ClientReport_getEntryId()

LIB61850_API MmsValue* ClientReport_getEntryId ( ClientReport  self)

get the entry ID of the report

Returns the entryId of the report if included in the report. Otherwise returns NULL.

Parameters
selfthe ClientReport instance
Returns
entryId or NULL

◆ ClientReport_getMoreSeqmentsFollow()

LIB61850_API bool ClientReport_getMoreSeqmentsFollow ( ClientReport  self)

get the more segments follow flag of the received report segment (for segmented reporting)

Will return true in case this is part of a segmented report and more report segments will follow or false, if the current report is not a segmented report or is the last segment of a segmented report.

Parameters
selfthe ClientReport instance
Returns
true when more segments of the current report will follow, false otherwise

◆ ClientReport_getRcbReference()

LIB61850_API char* ClientReport_getRcbReference ( ClientReport  self)

return reference (name) of the server RCB associated with this ClientReport object

Parameters
selfthe ClientReport instance
Returns
report control block reference as string

◆ ClientReport_getReasonForInclusion()

LIB61850_API ReasonForInclusion ClientReport_getReasonForInclusion ( ClientReport  self,
int  elementIndex 
)

get the reason code (reason for inclusion) for a specific report data set element

Parameters
selfthe ClientReport instance
elementIndexindex of the data set element (starting with 0)
Returns
reason code for the inclusion of the specified element

◆ ClientReport_getRptId()

LIB61850_API char* ClientReport_getRptId ( ClientReport  self)

return RptId of the server RCB associated with this ClientReport object

Parameters
selfthe ClientReport instance
Returns
report control block reference as string

◆ ClientReport_getSeqNum()

LIB61850_API uint16_t ClientReport_getSeqNum ( ClientReport  self)

get the value of the sequence number

NOTE: The returned value is undefined if the sequence number is not present in report

Parameters
selfthe ClientReport instance
Returns
the number of the sequence number when present

◆ ClientReport_getSubSeqNum()

LIB61850_API uint16_t ClientReport_getSubSeqNum ( ClientReport  self)

get the sub sequence number of the report (for segmented reporting)

Returns the sub sequence number of the report. This is 0 for the first report of a segmented report and will be increased by one for each report segment.

Parameters
selfthe ClientReport instance
Returns
the sub sequence number of the last received report message.

◆ ClientReport_getTimestamp()

LIB61850_API uint64_t ClientReport_getTimestamp ( ClientReport  self)

get the timestamp of the report

Returns the timestamp of the report if included in the report. Otherwise the value is undefined. Use the ClientReport_hasTimestamp function first to figure out if the timestamp is valid

Parameters
selfthe ClientReport instance
Returns
the timestamp as milliseconds since 1.1.1970 UTC

◆ ClientReport_hasBufOvfl()

LIB61850_API bool ClientReport_hasBufOvfl ( ClientReport  self)

indicates if the report contains the bufOvfl (buffer overflow) flag

Parameters
selfthe ClientReport instance
Returns
true if the report contains the bufOvfl flag, false otherwise

◆ ClientReport_hasConfRev()

LIB61850_API bool ClientReport_hasConfRev ( ClientReport  self)

determine if the last received report contains the configuration revision

Parameters
selfthe ClientReport instance
Returns
true if the report contains the configuration revision, false otherwise

◆ ClientReport_hasDataReference()

LIB61850_API bool ClientReport_hasDataReference ( ClientReport  self)

indicates if the report contains data references for the reported data set members

Parameters
selfthe ClientReport instance
Returns
true if the report contains data-references, false otherwise

◆ ClientReport_hasDataSetName()

LIB61850_API bool ClientReport_hasDataSetName ( ClientReport  self)

determine if the last received report contains the data set name

Parameters
selfthe ClientReport instance
Returns
true if the report contains the data set name, false otherwise

◆ ClientReport_hasReasonForInclusion()

LIB61850_API bool ClientReport_hasReasonForInclusion ( ClientReport  self)

determine if the last received report contains reason-for-inclusion information

Parameters
selfthe ClientReport instance
Returns
true if the report contains reason-for-inclusion information, false otherwise

◆ ClientReport_hasSeqNum()

LIB61850_API bool ClientReport_hasSeqNum ( ClientReport  self)

determine if the last received report contains a sequence number

Parameters
selfthe ClientReport instance
Returns
true if the report contains a sequence number, false otherwise

◆ ClientReport_hasSubSeqNum()

LIB61850_API bool ClientReport_hasSubSeqNum ( ClientReport  self)

indicates if the report contains a sub sequence number and a more segments follow flags (for segmented reporting)

Parameters
selfthe ClientReport instance
Returns
true if the report contains sub-sequence-number and more-follows-flag, false otherwise

◆ ClientReport_hasTimestamp()

LIB61850_API bool ClientReport_hasTimestamp ( ClientReport  self)

determine if the last received report contains a timestamp

Parameters
selfthe ClientReport instance
Returns
true if the report contains a timestamp, false otherwise

◆ ClientReportControlBlock_create()

LIB61850_API ClientReportControlBlock ClientReportControlBlock_create ( const char *  rcbReference)

◆ ClientReportControlBlock_destroy()

LIB61850_API void ClientReportControlBlock_destroy ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getBufTm()

LIB61850_API uint32_t ClientReportControlBlock_getBufTm ( ClientReportControlBlock  self)

Get the BufTm (buffer time) parameter of the RCB.

The buffer time is the time to wait after a triggering event before the report is actually sent. It is used to be able to collect events that happen in a short time period and send them in a single report.

Parameters
selfthe RCB instance

◆ ClientReportControlBlock_getConfRev()

LIB61850_API uint32_t ClientReportControlBlock_getConfRev ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getDataSetReference()

LIB61850_API const char* ClientReportControlBlock_getDataSetReference ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getEntryId()

LIB61850_API MmsValue* ClientReportControlBlock_getEntryId ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getEntryTime()

LIB61850_API uint64_t ClientReportControlBlock_getEntryTime ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getGI()

LIB61850_API bool ClientReportControlBlock_getGI ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getIntgPd()

LIB61850_API uint32_t ClientReportControlBlock_getIntgPd ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getObjectReference()

LIB61850_API char* ClientReportControlBlock_getObjectReference ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getOptFlds()

LIB61850_API int ClientReportControlBlock_getOptFlds ( ClientReportControlBlock  self)

Gets the OptFlds parameter of the RCB (decides what information to include in a report)

Parameters
selfthe RCB instance
Returns
bit field representing the optional fields of a report (uses flags from Report options (bit values combinable))

◆ ClientReportControlBlock_getOwner()

LIB61850_API MmsValue* ClientReportControlBlock_getOwner ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getPurgeBuf()

LIB61850_API bool ClientReportControlBlock_getPurgeBuf ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getResv()

LIB61850_API bool ClientReportControlBlock_getResv ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getResvTms()

LIB61850_API int16_t ClientReportControlBlock_getResvTms ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getRptEna()

LIB61850_API bool ClientReportControlBlock_getRptEna ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getRptId()

LIB61850_API const char* ClientReportControlBlock_getRptId ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getSqNum()

LIB61850_API uint16_t ClientReportControlBlock_getSqNum ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_getTrgOps()

LIB61850_API int ClientReportControlBlock_getTrgOps ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_hasResvTms()

LIB61850_API bool ClientReportControlBlock_hasResvTms ( ClientReportControlBlock  self)

Check if optional attribute "ResvTms" is present in BRCB.

Returns
true when present, false otherwise

◆ ClientReportControlBlock_isBuffered()

LIB61850_API bool ClientReportControlBlock_isBuffered ( ClientReportControlBlock  self)

◆ ClientReportControlBlock_setBufTm()

LIB61850_API void ClientReportControlBlock_setBufTm ( ClientReportControlBlock  self,
uint32_t  bufTm 
)

Set the BufTm (buffer time) parameter of the RCB.

The buffer time is the time to wait after a triggering event before the report is actually sent. It is used to be able to collect events that happen in a short time period and send them in a single report.

Parameters
selfthe RCB instance
bufTmthe buffer time in ms

◆ ClientReportControlBlock_setDataSetReference()

LIB61850_API void ClientReportControlBlock_setDataSetReference ( ClientReportControlBlock  self,
const char *  dataSetReference 
)

set the data set to be observed by the RCB

The data set reference is a mixture of MMS and IEC 61850 syntax! In general the reference has the form: LDName/LNName$DataSetName

e.g. "simpleIOGenericIO/LLN0$Events"

It is standard that data sets are defined in LN0 logical nodes. But this is not mandatory.

Note: As a result of changing the data set the server will increase the confRev attribute of the RCB.

Parameters
selfthe RCB instance
dataSetReferencethe reference of the data set

◆ ClientReportControlBlock_setEntryId()

LIB61850_API void ClientReportControlBlock_setEntryId ( ClientReportControlBlock  self,
MmsValue entryId 
)

◆ ClientReportControlBlock_setGI()

LIB61850_API void ClientReportControlBlock_setGI ( ClientReportControlBlock  self,
bool  gi 
)

◆ ClientReportControlBlock_setIntgPd()

LIB61850_API void ClientReportControlBlock_setIntgPd ( ClientReportControlBlock  self,
uint32_t  intgPd 
)

◆ ClientReportControlBlock_setOptFlds()

LIB61850_API void ClientReportControlBlock_setOptFlds ( ClientReportControlBlock  self,
int  optFlds 
)

Set the OptFlds parameter of the RCB (decides what information to include in a report)

Parameters
selfthe RCB instance
optFldsbit field representing the optional fields of a report (use flags from Report options (bit values combinable))

◆ ClientReportControlBlock_setPurgeBuf()

LIB61850_API void ClientReportControlBlock_setPurgeBuf ( ClientReportControlBlock  self,
bool  purgeBuf 
)

Set the "PurgeBuf" attribute value (only BRCB)

When set to true the report buffer will be cleared.

Parameters
purgeBufattribute value

◆ ClientReportControlBlock_setResv()

LIB61850_API void ClientReportControlBlock_setResv ( ClientReportControlBlock  self,
bool  resv 
)

◆ ClientReportControlBlock_setResvTms()

LIB61850_API void ClientReportControlBlock_setResvTms ( ClientReportControlBlock  self,
int16_t  resvTms 
)

◆ ClientReportControlBlock_setRptEna()

LIB61850_API void ClientReportControlBlock_setRptEna ( ClientReportControlBlock  self,
bool  rptEna 
)

◆ ClientReportControlBlock_setRptId()

LIB61850_API void ClientReportControlBlock_setRptId ( ClientReportControlBlock  self,
const char *  rptId 
)

◆ ClientReportControlBlock_setTrgOps()

LIB61850_API void ClientReportControlBlock_setTrgOps ( ClientReportControlBlock  self,
int  trgOps 
)

◆ IedConnection_getRCBValues()

LIB61850_API ClientReportControlBlock IedConnection_getRCBValues ( IedConnection  self,
IedClientError error,
const char *  rcbReference,
ClientReportControlBlock  updateRcb 
)

Read access to attributes of a report control block (RCB) at the connected server.

The requested RCB has to be specified by its object reference. E.g.

"simpleIOGenericIO/LLN0.RP.EventsRCB01"

or

"simpleIOGenericIO/LLN0.BR.EventsBRCB01"

Report control blocks have either "RP" or "BR" as part of their name following the logical node part. "RP" is part of the name of unbuffered RCBs whilst "BR" is part of the name of buffered RCBs.

This function is used to perform the actual read service. To access the received values the functions of ClientReportControlBlock have to be used.

If called with a NULL argument for the updateRcb parameter a new ClientReportControlBlock instance is created and populated with the values received by the server. It is up to the user to release this object by calling the ClientReportControlBlock_destroy function when the object is no longer needed. If called with a reference to an existing ClientReportControlBlock instance the values of the attributes will be updated and no new instance will be created.

Note: This function maps to a single MMS read request to retrieve the complete RCB at once.

Parameters
connectionthe connection object
errorthe error code if an error occurs
rcbReferenceobject reference of the report control block
updateRcba reference to an existing ClientReportControlBlock instance or NULL
Returns
new ClientReportControlBlock instance or the instance provided by the user with the updateRcb parameter.

◆ IedConnection_getRCBValuesAsync()

LIB61850_API uint32_t IedConnection_getRCBValuesAsync ( IedConnection  self,
IedClientError error,
const char *  rcbReference,
ClientReportControlBlock  updateRcb,
IedConnection_GetRCBValuesHandler  handler,
void *  parameter 
)

◆ IedConnection_installReportHandler()

LIB61850_API void IedConnection_installReportHandler ( IedConnection  self,
const char *  rcbReference,
const char *  rptId,
ReportCallbackFunction  handler,
void *  handlerParameter 
)

Install a report handler function for the specified report control block (RCB)

This function will replace a report handler set earlier for the specified RCB. The report handler will be called whenever a report for the specified RCB is received. Please note that this function should be called whenever the RCB data set is changed or updated. Otherwise the internal data structures storing the received data set values will not be updated correctly.

Note
Replacing a report handler you only have to call this function. There is no separate call to IedConnection_uninstallReportHandler() required.
Do not call this function inside of the ReportCallbackFunction. Doing so will cause a deadlock.
Parameters
selfthe connection object
rcbReferenceobject reference of the report control block
rptIda string that identifies the report. If the rptId is not available then the rcbReference is used to identify the report.
handleruser provided callback function to be invoked when a report is received.
handlerParameteruser provided parameter that will be passed to the callback function

◆ IedConnection_setRCBValues()

LIB61850_API void IedConnection_setRCBValues ( IedConnection  self,
IedClientError error,
ClientReportControlBlock  rcb,
uint32_t  parametersMask,
bool  singleRequest 
)

Write access to attributes of a report control block (RCB) at the connected server.

The requested RCB has to be specified by its object reference (see also IedConnection_getRCBValues). The object reference for the referenced RCB is contained in the provided ClientReportControlBlock instance.

The parametersMask parameter specifies which attributes of the remote RCB have to be set by this request. You can specify multiple attributes by ORing the defined bit values.

The singleRequest parameter specifies the mapping to the corresponding MMS write request. Standard compliant servers should accept both variants. But some server accept only one variant. Then the value of this parameter will be of relevance.

Parameters
connectionthe connection object
errorthe error code if an error occurs
rcbobject reference of the ClientReportControlBlock instance that actually holds the parameter values to be written.
parametersMaskspecifies the parameters contained in the setRCBValues request.
singleRequestspecifies if the setRCBValues services is mapped to a single MMS write request containing multiple variables or to multiple MMS write requests.

◆ IedConnection_setRCBValuesAsync()

LIB61850_API uint32_t IedConnection_setRCBValuesAsync ( IedConnection  self,
IedClientError error,
ClientReportControlBlock  rcb,
uint32_t  parametersMask,
bool  singleRequest,
IedConnection_GenericServiceHandler  handler,
void *  parameter 
)

◆ IedConnection_triggerGIReport()

LIB61850_API void IedConnection_triggerGIReport ( IedConnection  self,
IedClientError error,
const char *  rcbReference 
)

trigger a general interrogation (GI) report for the specified report control block (RCB)

The RCB must have been enabled and GI set as trigger option before this command can be performed.

Deprecated:
Use ClientReportControlBlock_setGI instead
Parameters
connectionthe connection object
errorthe error code if an error occurs
rcbReferenceobject reference of the report control block

◆ IedConnection_uninstallReportHandler()

LIB61850_API void IedConnection_uninstallReportHandler ( IedConnection  self,
const char *  rcbReference 
)

uninstall a report handler function for the specified report control block (RCB)

Note
Do not call this function inside of the ReportCallbackFunction. Doing so will cause a deadlock.
Parameters
selfthe connection object
rcbReferenceobject reference of the report control block

◆ ReasonForInclusion_getValueAsString()

LIB61850_API char* ReasonForInclusion_getValueAsString ( ReasonForInclusion  reasonCode)

get the reason for inclusion of as a human readable string

Parameters
reasonCode
Returns
the reason for inclusion as static human readable string