24 #ifndef DYNAMIC_MODEL_H_
25 #define DYNAMIC_MODEL_H_
55 LIB61850_API IedModel*
92 LIB61850_API LogicalDevice*
104 LIB61850_API LogicalNode*
118 LIB61850_API DataObject*
136 LIB61850_API DataAttribute*
138 uint8_t triggerOptions,
int arrayElements, uint32_t sAddr);
198 LIB61850_API ReportControlBlock*
200 dataSetName, uint32_t confRef, uint8_t trgOps, uint8_t options, uint32_t bufTm, uint32_t intgPd);
223 LIB61850_API
const char*
243 LIB61850_API LogicalNode*
283 LIB61850_API uint32_t
303 LIB61850_API uint32_t
316 LIB61850_API uint32_t
319 LIB61850_API uint16_t
336 LIB61850_API uint32_t
339 LIB61850_API uint32_t
351 LIB61850_API uint64_t
380 LIB61850_API LogControlBlock*
381 LogControlBlock_create(
const char* name, LogicalNode* parent,
const char* dataSetName,
const char* logRef, uint8_t trgOps,
382 uint32_t intgPd,
bool logEna,
bool reasonCode);
406 LIB61850_API SettingGroupControlBlock*
425 LIB61850_API GSEControlBlock*
427 bool fixedOffs,
int minTime,
int maxTime);
445 LIB61850_API SVControlBlock*
446 SVControlBlock_create(
const char* name, LogicalNode* parent,
const char* svID,
const char* dataSet, uint32_t confRev, uint8_t smpMod,
447 uint16_t smpRate, uint8_t optFlds,
bool isUnicast);
478 LIB61850_API DataSet*
488 LIB61850_API
const char*
DataAttributeType
Definition: iec61850_model.h:89
LIB61850_API LogicalNode * ReportControlBlock_getParent(ReportControlBlock *self)
Get the parent (LogicalNode) of the RCB instance.
LIB61850_API bool ReportControlBlock_isBuffered(ReportControlBlock *self)
Is the RCB buffered or unbuffered?
LIB61850_API LogicalNode * LogicalNode_create(const char *name, LogicalDevice *parent)
Create a new logical mode and add it to a logical device.
LIB61850_API int DataSet_getSize(DataSet *self)
returns the number of elements (entries) of the data set
LIB61850_API uint32_t ReportControlBlock_getConfRev(ReportControlBlock *self)
Get the confRev value.
LIB61850_API ReportControlBlock * ReportControlBlock_create(const char *name, LogicalNode *parent, const char *rptId, bool isBuffered, const char *dataSetName, uint32_t confRef, uint8_t trgOps, uint8_t options, uint32_t bufTm, uint32_t intgPd)
create a new report control block (RCB)
LIB61850_API DataAttributeType DataAttribute_getType(DataAttribute *self)
Get the data type of the data attribute.
LIB61850_API FunctionalConstraint DataAttribute_getFC(DataAttribute *self)
Get the functional constraint (FC) of the data attribute.
LIB61850_API uint32_t ReportControlBlock_getTrgOps(ReportControlBlock *self)
Get the currently set trigger options.
LIB61850_API LogControlBlock * LogControlBlock_create(const char *name, LogicalNode *parent, const char *dataSetName, const char *logRef, uint8_t trgOps, uint32_t intgPd, bool logEna, bool reasonCode)
create a new log control block (LCB)
LIB61850_API DataObject * DataObject_create(const char *name, ModelNode *parent, int arrayElements)
create a new data object and add it to a parent model node
LIB61850_API LogicalDevice * LogicalDevice_create(const char *name, IedModel *parent)
Create a new logical device model and add it to the IED model.
LIB61850_API void DataAttribute_setValue(DataAttribute *self, MmsValue *value)
Set the value of the data attribute (can be used to set default values before server is created)
LIB61850_API MmsValue * ReportControlBlock_getOwner(ReportControlBlock *self)
LIB61850_API uint32_t ReportControlBlock_getIntgPd(ReportControlBlock *self)
LIB61850_API char * ReportControlBlock_getDataSet(ReportControlBlock *self)
Get the name of the currenlty set data set.
LIB61850_API PhyComAddress * PhyComAddress_create(uint8_t vlanPriority, uint16_t vlanId, uint16_t appId, uint8_t dstAddress[])
create a PhyComAddress object
LIB61850_API bool ReportControlBlock_getResv(ReportControlBlock *self)
LIB61850_API void ReportControlBlock_setPreconfiguredClient(ReportControlBlock *self, uint8_t clientType, const uint8_t *clientAddress)
Set a pre-configured client for the RCB.
LIB61850_API DataSetEntry * DataSetEntry_getNext(DataSetEntry *self)
LIB61850_API char * ReportControlBlock_getRptID(ReportControlBlock *self)
Get the name of the currently set report ID.
LIB61850_API Log * Log_create(const char *name, LogicalNode *parent)
create a log (used by the IEC 61850 log service)
LIB61850_API DataSet * DataSet_create(const char *name, LogicalNode *parent)
create a new data set
LIB61850_API void SVControlBlock_addPhyComAddress(SVControlBlock *self, PhyComAddress *phyComAddress)
LIB61850_API uint16_t ReportControlBlock_getSqNum(ReportControlBlock *self)
LIB61850_API int16_t ReportControlBlock_getResvTms(ReportControlBlock *self)
LIB61850_API DataAttribute * DataAttribute_create(const char *name, ModelNode *parent, DataAttributeType type, FunctionalConstraint fc, uint8_t triggerOptions, int arrayElements, uint32_t sAddr)
create a new data attribute and add it to a parent model node
LIB61850_API bool ReportControlBlock_getGI(ReportControlBlock *self)
LIB61850_API void IedModel_setIedNameForDynamicModel(IedModel *self, const char *name)
Set the name of the IED (use only for dynamic model!)
LIB61850_API SettingGroupControlBlock * SettingGroupControlBlock_create(LogicalNode *parent, uint8_t actSG, uint8_t numOfSGs)
create a setting group control block (SGCB)
LIB61850_API GSEControlBlock * GSEControlBlock_create(const char *name, LogicalNode *parent, const char *appId, const char *dataSet, uint32_t confRev, bool fixedOffs, int minTime, int maxTime)
create a new GSE/GOOSE control block (GoCB)
LIB61850_API void IedModel_destroy(IedModel *model)
destroy a dynamically created data model
LIB61850_API bool ReportControlBlock_getRptEna(ReportControlBlock *self)
Check if RCB instance is enabled.
LIB61850_API DataSetEntry * DataSet_getFirstEntry(DataSet *self)
LIB61850_API uint32_t ReportControlBlock_getBufTm(ReportControlBlock *self)
Get the BufTm value (buffer time)
LIB61850_API DataSetEntry * DataSetEntry_create(DataSet *dataSet, const char *variable, int index, const char *component)
create a new data set entry (FCDA)
LIB61850_API MmsValue * ReportControlBlock_getEntryId(ReportControlBlock *self)
LIB61850_API const char * DataSet_getName(DataSet *self)
Get the name of the data set.
LIB61850_API uint32_t ReportControlBlock_getOptFlds(ReportControlBlock *self)
Get the currently set OptFlds value.
LIB61850_API uint64_t ReportControlBlock_getTimeofEntry(ReportControlBlock *self)
LIB61850_API IedModel * IedModel_create(const char *name)
create a new IedModel instance
LIB61850_API uint8_t DataAttribute_getTrgOps(DataAttribute *self)
Get the trigger options of the data attribute.
LIB61850_API const char * ReportControlBlock_getName(ReportControlBlock *self)
Get the name of the RCB instance.
LIB61850_API SVControlBlock * SVControlBlock_create(const char *name, LogicalNode *parent, const char *svID, const char *dataSet, uint32_t confRev, uint8_t smpMod, uint16_t smpRate, uint8_t optFlds, bool isUnicast)
create a new Multicast/Unicast Sampled Value (SV) control block (SvCB)
LIB61850_API void GSEControlBlock_addPhyComAddress(GSEControlBlock *self, PhyComAddress *phyComAddress)
LIB61850_API bool ReportControlBlock_getPurgeBuf(ReportControlBlock *self)
FunctionalConstraint
Definition: iec61850_common.h:264
struct sMmsValue MmsValue
Definition: mms_value.h:68
Definition: iec61850_model.h:237
Definition: iec61850_common.h:51