123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658 |
- /*
- * cdc.h
- *
- * Copyright 2014 Michael Zillgith
- *
- * This file is part of libIEC61850.
- *
- * libIEC61850 is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * libIEC61850 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
- *
- * See COPYING file for the complete license text.
- */
- #ifndef CDC_H_
- #define CDC_H_
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** \addtogroup server_api_group
- * @{
- */
- /**
- * @defgroup COMMON_DATA_CLASSES Helper functions to create common data classes (CDC) using the dynamic model API
- *
- * Currently supports CDCs from IEC 61850-7-3:2010 (Edition 2)
- *
- * @{
- */
- /**
- * \brief optional parts of CDCs
- */
- #define CDC_OPTION_PICS_SUBST (1 << 0)
- #define CDC_OPTION_BLK_ENA (1 << 1)
- /** Add d (description) data attribute */
- #define CDC_OPTION_DESC (1 << 2)
- /** Add dU (unicode description) data attribute */
- #define CDC_OPTION_DESC_UNICODE (1 << 3)
- /** Add cdcNs and cdcName required when a CDC is an extension to the standard */
- #define CDC_OPTION_AC_DLNDA (1 << 4)
- /** Add dataNs (data namespace) required for extended CDCs */
- #define CDC_OPTION_AC_DLN (1 << 5)
- /** Add the unit data attribute */
- #define CDC_OPTION_UNIT (1 << 6)
- #define CDC_OPTION_FROZEN_VALUE (1 << 7)
- #define CDC_OPTION_ADDR (1 << 8)
- #define CDC_OPTION_ADDINFO (1 << 9)
- #define CDC_OPTION_INST_MAG (1 << 10)
- #define CDC_OPTION_RANGE (1 << 11)
- #define CDC_OPTION_UNIT_MULTIPLIER (1 << 12)
- #define CDC_OPTION_AC_SCAV (1 << 13)
- #define CDC_OPTION_MIN (1 << 14)
- #define CDC_OPTION_MAX (1 << 15)
- #define CDC_OPTION_AC_CLC_O (1 << 16)
- #define CDC_OPTION_RANGE_ANG (1 << 17)
- #define CDC_OPTION_PHASE_A (1 << 18)
- #define CDC_OPTION_PHASE_B (1 << 19)
- #define CDC_OPTION_PHASE_C (1 << 20)
- #define CDC_OPTION_PHASE_NEUT (1 << 21)
- #define CDC_OPTION_PHASES_ABC (CDC_OPTION_PHASE_A | CDC_OPTION_PHASE_B | CDC_OPTION_PHASE_C)
- #define CDC_OPTION_PHASES_ALL (CDC_OPTION_PHASE_A | CDC_OPTION_PHASE_B | CDC_OPTION_PHASE_C | CDC_OPTION_PHASE_NEUT)
- #define CDC_OPTION_STEP_SIZE (1 << 22)
- #define CDC_OPTION_ANGLE_REF (1 << 23)
- /** Options that are only valid for DPL CDC */
- #define CDC_OPTION_DPL_HWREV (1 << 17)
- #define CDC_OPTION_DPL_SWREV (1 << 18)
- #define CDC_OPTION_DPL_SERNUM (1 << 19)
- #define CDC_OPTION_DPL_MODEL (1 << 20)
- #define CDC_OPTION_DPL_LOCATION (1 << 21)
- /** Add mandatory data attributes for LLN0 (e.g. LBL configRef) */
- #define CDC_OPTION_AC_LN0_M (1 << 24)
- #define CDC_OPTION_AC_LN0_EX (1 << 25)
- #define CDC_OPTION_AC_DLD_M (1 << 26)
- /**
- * \brief Control model types
- */
- #define CDC_CTL_MODEL_NONE 0
- #define CDC_CTL_MODEL_DIRECT_NORMAL 1
- #define CDC_CTL_MODEL_SBO_NORMAL 2
- #define CDC_CTL_MODEL_DIRECT_ENHANCED 3
- #define CDC_CTL_MODEL_SBO_ENHANCED 4
- #define CDC_CTL_MODEL_HAS_CANCEL (1 << 4)
- #define CDC_CTL_MODEL_IS_TIME_ACTIVATED (1 << 5)
- #define CDC_CTL_OPTION_ORIGIN (1 << 6)
- #define CDC_CTL_OPTION_CTL_NUM (1 << 7)
- #define CDC_CTL_OPTION_ST_SELD (1 << 8)
- #define CDC_CTL_OPTION_OP_RCVD (1 << 9)
- #define CDC_CTL_OPTION_OP_OK (1 << 10)
- #define CDC_CTL_OPTION_T_OP_OK (1 << 11)
- #define CDC_CTL_OPTION_SBO_TIMEOUT (1 << 12)
- #define CDC_CTL_OPTION_SBO_CLASS (1 << 13)
- #define CDC_CTL_OPTION_OPER_TIMEOUT (1 << 14)
- /****************************************************
- * Constructed Attribute Classes (CAC)
- ***************************************************/
- LIB61850_API DataAttribute*
- CAC_AnalogueValue_create(const char* name, ModelNode* parent, FunctionalConstraint fc, uint8_t triggerOptions,
- bool isIntegerNotFloat);
- /**
- * \brief create a ValWithTrans constructed data attribute
- *
- * \param hasTransInd
- */
- LIB61850_API DataAttribute*
- CAC_ValWithTrans_create(const char* name, ModelNode* parent, FunctionalConstraint fc, uint8_t triggerOptions, bool hasTransientIndicator);
- /**
- * CDC_OPTION_AC_CLC_O
- */
- LIB61850_API DataAttribute*
- CAC_Vector_create(const char* name, ModelNode* parent, uint32_t options, FunctionalConstraint fc, uint8_t triggerOptions);
- LIB61850_API DataAttribute*
- CAC_Point_create(const char* name, ModelNode* parent, FunctionalConstraint fc, uint8_t triggerOptions, bool hasZVal);
- LIB61850_API DataAttribute*
- CAC_ScaledValueConfig_create(const char* name, ModelNode* parent);
- LIB61850_API DataAttribute*
- CAC_Unit_create(const char* name, ModelNode* parent, bool hasMagnitude);
- LIB61850_API DataAttribute*
- CDA_OperBoolean(ModelNode* parent, bool isTImeActivated);
- /****************************************************
- * Common Data Classes (CDC)
- ***************************************************/
- LIB61850_API DataObject*
- CDC_SPS_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- LIB61850_API DataObject*
- CDC_DPS_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- LIB61850_API DataObject*
- CDC_INS_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- LIB61850_API DataObject*
- CDC_ENS_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- LIB61850_API DataObject*
- CDC_BCR_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- LIB61850_API DataObject*
- CDC_VSS_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief create a new SEC (Security violation) CDC instance (data object)
- *
- * Allowed parent types are LogicalNode and DataObject.
- *
- * options:
- * standard (include standard optional elements like extension namespaces and descriptions (d, dU).
- *
- * CDC_OPTION_ADDR (address of the client causing the security violation)
- * CDC_OPTION_ADDINFO (additional info text)
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- */
- LIB61850_API DataObject*
- CDC_SEC_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief create a new MV (Measured value) CDC instance (data object)
- *
- * Allowed parent types are LogicalNode and DataObject.
- *
- * possible options:
- * CDC_OPTION_INST_MAG
- * CDC_OPTION_RANGE
- * CDC_OPTION_PICS_SUBST
- * standard (include standard optional elements like extension namespaces and descriptions (d, dU).
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param isIntegerNotFloat if true the AnalogueValue instance have integer instead of float
- *
- */
- LIB61850_API DataObject*
- CDC_MV_create(const char* dataObjectName, ModelNode* parent, uint32_t options, bool isIntegerNotFloat);
- /**
- * CDC_OPTION_INST_MAG
- * CDC_OPTION_RANGE
- */
- LIB61850_API DataObject*
- CDC_CMV_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief create a new SAV (Sampled analog value) CDC instance (data object)
- *
- * Allowed parent types are LogicalNode and DataObject.
- *
- * possible options:
- * CDC_OPTION_UNIT
- * CDC_OPTION_AC_SCAV
- * CDC_OPTION_MIN
- * CDC_OPTION_MAX
- * standard (include standard optional elements like extension namespaces and descriptions (d, dU).
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param isIntegerNotFloat if true the AnalogueValue instance have integer instead of float
- *
- */
- LIB61850_API DataObject*
- CDC_SAV_create(const char* dataObjectName, ModelNode* parent, uint32_t options, bool isIntegerNotFloat);
- /**
- * \brief create a new LPL (Logical node name plate) CDC instance (data object)
- *
- * Allowed parent type is LogicalNode
- *
- * possible options:
- * CDC_OPTION_AC_LN0_M (includes "configRev")
- * CDC_OPTION_AC_LN0_EX (includes "ldNs")
- * CDC_OPTION_AC_DLD_M (includes "lnNs")
- * standard options:
- * CDC_OPTION_DESC (includes "d")
- * CDC_OPTION_DESC_UNICODE (include "du")
- * CDC_OPTION_AC_DLNDA (include "cdcNs" and "cdcName")
- * CDC_OPTION_AC_DLN (includes "dataNs")
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- *
- * \return new DataObject instance
- */
- LIB61850_API DataObject*
- CDC_LPL_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief create a new DPL (Device name plate) CDC instance (data object)
- *
- * Allowed parent type is LogicalNode
- *
- * possible options:
- * CDC_OPTION_DPL_HWREV (includes "hwRev")
- * CDC_OPTION_DPL_SWREV (includes "swRev")
- * CDC_OPTION_DPL_SERNUM (includes "serNum")
- * CDC_OPTION_DPL_MODEL (includes "model")
- * CDC_OPTION_DPL_LOCATION (includes "location")
- * standard options:
- * CDC_OPTION_AC_DLNDA (include "cdcNs" and "cdcName")
- * CDC_OPTION_AC_DLN (includes "dataNs")
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- *
- * \return new DataObject instance
- */
- LIB61850_API DataObject*
- CDC_DPL_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- LIB61850_API DataObject*
- CDC_HST_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint16_t maxPts);
- /**
- * \brief Directional protection activation information (ACD)
- *
- * Allowed parent types are LogicalNode and DataObject.
- *
- * possible options:
- * CDC_OPTION_PHASE_A
- * CDC_OPTION_PHASE_B
- * CDC_OPTION_PHASE_C
- * CDC_OPTION_PHASE_NEUT
- * CDC_OPTION_PHASES_ABC
- * CDC_OPTION_PHASES_ALL
- * standard (include standard optional elements like extension namespaces and descriptions (d, dU).
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- */
- LIB61850_API DataObject*
- CDC_ACD_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief Protection activation information (ACT)
- */
- LIB61850_API DataObject*
- CDC_ACT_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief Single point setting (SPG)
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- */
- LIB61850_API DataObject*
- CDC_SPG_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief Visible string setting (VSG)
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- */
- LIB61850_API DataObject*
- CDC_VSG_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief Enumerated status setting (ENG)
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- */
- LIB61850_API DataObject*
- CDC_ENG_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief Integer status setting (ING)
- *
- * possible options:
- * CDC_OPTION_UNIT
- * CDC_OPTION_MIN
- * CDC_OPTION_MAX
- * CDC_OPTION_STEP_SIZE
- * standard (include standard optional elements like extension namespaces and descriptions (d, dU).
- *
- */
- LIB61850_API DataObject*
- CDC_ING_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief Analogue Setting (ASG)
- *
- * possible options:
- * CDC_OPTION_UNIT
- * CDC_OPTION_MIN
- * CDC_OPTION_MAX
- * CDC_OPTION_STEP_SIZE
- * standard (include standard optional elements like extension namespaces and descriptions (d, dU).
- *
- */
- LIB61850_API DataObject*
- CDC_ASG_create(const char* dataObjectName, ModelNode* parent, uint32_t options, bool isIntegerNotFloat);
- /**
- * \brief Phase to ground/neutral related measured values of a three-phase system (WYE)
- *
- * possible options:
- * CDC_OPTION_ANGLE_REF
- */
- LIB61850_API DataObject*
- CDC_WYE_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /**
- * \brief Phase to phase related measured values of a three-phase system (DEL)
- *
- * possible options:
- * CDC_OPTION_ANGLE_REF
- */
- LIB61850_API DataObject*
- CDC_DEL_create(const char* dataObjectName, ModelNode* parent, uint32_t options);
- /***************************
- * Controls
- ***************************/
- /**
- * \brief Controllable single point (SPC)
- *
- * \param controlOptions specify which control model to set as default and other control related options
- */
- LIB61850_API DataObject*
- CDC_SPC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions);
- /**
- * \brief Controllable double point (DPC)
- *
- * CDC_OPTION_IS_TIME_ACTICATED
- *
- * substitution options
- * CDC_OPTION_BLK_ENA
- * standard description and namespace options
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param defaultControlModel specify which control model to set as default.
- *
- */
- LIB61850_API DataObject*
- CDC_DPC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions);
- /**
- * \brief Controllable integer status (INC)
- *
- * CDC_OPTION_IS_TIME_ACTICATED
- *
- * CDC_OPTION_MIN
- * CDC_OPTION_MAX
- * CDC_OPTION_STEP_SIZE
- *
- * substitution options
- * CDC_OPTION_BLK_ENA
- * standard description and namespace options
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param defaultControlModel specify which control model to set as default.
- *
- */
- LIB61850_API DataObject*
- CDC_INC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions);
- /**
- * \brief Controllable enumerated status (ENC)
- *
- * CDC_OPTION_IS_TIME_ACTICATED
- *
- * substitution options
- * CDC_OPTION_BLK_ENA
- * standard description and namespace options
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param defaultControlModel specify which control model to set as default.
- *
- */
- LIB61850_API DataObject*
- CDC_ENC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions);
- /**
- * \brief Controllable enumerated status (ENC)
- *
- * CDC_OPTION_IS_TIME_ACTICATED
- *
- * substitution options
- * CDC_OPTION_BLK_ENA
- * standard description and namespace options
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param controlOptions specify which control model to set as default and other control specific options
- * \param hasTransientIndicator specifies if the step position information contains the transient indicator
- *
- */
- LIB61850_API DataObject*
- CDC_BSC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions, bool hasTransientIndicator);
- /**
- * \brief Integer controlled step position information (ISC)
- *
- * CDC_OPTION_IS_TIME_ACTICATED
- *
- * substitution options
- * CDC_OPTION_BLK_ENA
- * standard description and namespace options
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param controlOptions specify which control model to set as default and other control specific options
- * \param hasTransientIndicator specifies if the step position information contains the transient indicator
- *
- */
- LIB61850_API DataObject*
- CDC_ISC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions, bool hasTransientIndicator);
- /**
- * \brief Controllable analogue process value (APC)
- *
- * CDC_OPTION_IS_TIME_ACTICATED
- *
- * CDC_OPTION_MIN
- * CDC_OPTION_MAX
- *
- * substitution options
- * CDC_OPTION_BLK_ENA
- * standard description and namespace options
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param controlOptions specify which control model to set as default and other control specific options
- * \param isIntegerNotFloat
- */
- LIB61850_API DataObject*
- CDC_APC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions, bool isIntegerNotFloat);
- /**
- * \brief Binary controlled ananlogue process value (BAC)
- *
- * CDC_OPTION_IS_TIME_ACTICATED
- *
- * CDC_OPTION_MIN
- * CDC_OPTION_MAX
- * CDC_OPTION_STEP_SIZE
- *
- * substitution options
- * CDC_OPTION_BLK_ENA
- * standard description and namespace options
- *
- * \param dataObjectName the name of the new object
- * \param parent the parent of the new data object (either a LogicalNode or another DataObject)
- * \param options bit mask to encode required optional elements
- * \param controlOptions specify which control model to set as default and other control specific options
- * \param isIntegerNotFloat
- */
- LIB61850_API DataObject*
- CDC_BAC_create(const char* dataObjectName, ModelNode* parent, uint32_t options, uint32_t controlOptions, bool isIntegerNotFloat);
- /** Minimum measured value */
- #define CDC_OPTION_61400_MIN_MX_VAL (1 << 10)
- /** Maximum measured value */
- #define CDC_OPTION_61400_MAX_MX_VAL (1 << 11)
- /** Total average value of data */
- #define CDC_OPTION_61400_TOT_AV_VAL (1 << 12)
- /** Standard deviation of data */
- #define CDC_OPTION_61400_SDV_VAL (1 << 13)
- /** Rate of increase */
- #define CDC_OPTION_61400_INC_RATE (1 << 14)
- /** Rate of decrease */
- #define CDC_OPTION_61400_DEC_RATE (1 << 15)
- /** Setpoint or parameter access level (low/medium/high) */
- #define CDC_OPTION_61400_SP_ACS (1 << 16)
- /** Time periodical reset (hourly/daily/weekly/monthly) */
- #define CDC_OPTION_61400_CHA_PER_RS (1 << 17)
- /** Command access level */
- #define CDC_OPTION_61400_CM_ACS (1 << 18)
- /** Total time duration of a state */
- #define CDC_OPTION_61400_TM_TOT (1 << 19)
- /** Daily counting data */
- #define CDC_OPTION_61400_COUNTING_DAILY (1 << 20)
- /** Monthly counting data */
- #define CDC_OPTION_61400_COUNTING_MONTHLY (1 << 21)
- /** Yearly counting data */
- #define CDC_OPTION_61400_COUNTING_YEARLY (1 << 22)
- /** Total counting data */
- #define CDC_OPTION_61400_COUNTING_TOTAL (1 << 23)
- /** All counting data */
- #define CDC_OPTION_61400_COUNTING_ALL (CDC_OPTION_61400_COUNTING_DAILY | CDC_OPTION_61400_COUNTING_MONTHLY | CDC_OPTION_61400_COUNTING_YEARLY | CDC_OPTION_61400_COUNTING_TOTAL)
- LIB61850_API DataObject*
- CDC_SPV_create(const char* dataObjectName, ModelNode* parent,
- uint32_t options,
- uint32_t controlOptions,
- uint32_t wpOptions,
- bool hasChaManRs);
- LIB61850_API DataObject*
- CDC_STV_create(const char* dataObjectName, ModelNode* parent,
- uint32_t options,
- uint32_t controlOptions,
- uint32_t wpOptions,
- bool hasOldStatus);
- LIB61850_API DataObject*
- CDC_CMD_create(const char* dataObjectName, ModelNode* parent,
- uint32_t options,
- uint32_t controlOptions,
- uint32_t wpOptions,
- bool hasOldStatus,
- bool hasCmTm,
- bool hasCmCt);
- LIB61850_API DataObject*
- CDC_ALM_create(const char* dataObjectName, ModelNode* parent,
- uint32_t options,
- uint32_t controlOptions,
- uint32_t wpOptions,
- bool hasOldStatus);
- LIB61850_API DataObject*
- CDC_CTE_create(const char* dataObjectName, ModelNode* parent,
- uint32_t options,
- uint32_t controlOptions,
- uint32_t wpOptions,
- bool hasHisRs);
- LIB61850_API DataObject*
- CDC_TMS_create(const char* dataObjectName, ModelNode* parent,
- uint32_t options,
- uint32_t controlOptions,
- uint32_t wpOptions,
- bool hasHisRs);
- /**@}*/
- /**@}*/
- #ifdef __cplusplus
- }
- #endif
- #endif /* CDC_H_ */
|