24 #ifndef DYNAMIC_MODEL_H_
25 #define DYNAMIC_MODEL_H_
57 LIB61850_API IedModel*
94 LIB61850_API LogicalDevice*
106 LIB61850_API LogicalDevice*
117 LIB61850_API LogicalNode*
134 LIB61850_API DataObject*
152 LIB61850_API DataAttribute*
154 uint8_t triggerOptions,
int arrayElements, uint32_t sAddr);
214 LIB61850_API ReportControlBlock*
216 dataSetName, uint32_t confRef, uint8_t trgOps, uint8_t options, uint32_t bufTm, uint32_t intgPd);
239 LIB61850_API
const char*
259 LIB61850_API LogicalNode*
299 LIB61850_API uint32_t
319 LIB61850_API uint32_t
332 LIB61850_API uint32_t
335 LIB61850_API uint16_t
352 LIB61850_API uint32_t
355 LIB61850_API uint32_t
367 LIB61850_API uint64_t
396 LIB61850_API LogControlBlock*
397 LogControlBlock_create(
const char* name, LogicalNode* parent,
const char* dataSetName,
const char* logRef, uint8_t trgOps,
398 uint32_t intgPd,
bool logEna,
bool reasonCode);
400 LIB61850_API
const char*
403 LIB61850_API LogicalNode*
428 LIB61850_API SettingGroupControlBlock*
447 LIB61850_API GSEControlBlock*
449 bool fixedOffs,
int minTime,
int maxTime);
467 LIB61850_API SVControlBlock*
468 SVControlBlock_create(
const char* name, LogicalNode* parent,
const char* svID,
const char* dataSet, uint32_t confRev, uint8_t smpMod,
469 uint16_t smpRate, uint8_t optFlds,
bool isUnicast);
500 LIB61850_API DataSet*
510 LIB61850_API
const char*
DataAttributeType
Definition: iec61850_model.h:91
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 LogicalNode * LogControlBlock_getParent(LogControlBlock *self)
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 or array 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 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 const char * LogControlBlock_getName(LogControlBlock *self)
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 LogicalDevice * LogicalDevice_createEx(const char *inst, IedModel *parent, const char *ldName)
Create a new logical device and add it to the IED model.
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:260
struct sMmsValue MmsValue
Definition: mms_value.h:68
Definition: iec61850_model.h:204
Definition: iec61850_common.h:51