lib60870-C  2.3.2
C source code library for the IEC 60870-5-101/104 protocols
Data Structures | Macros | Typedefs | Enumerations | Functions
Common API functions

Data Structures

struct  sStatusAndStatusChangeDetection
 
struct  Lib60870VersionInfo
 lib60870 version information More...
 
struct  sCS101_AppLayerParameters
 
struct  sCS101_StaticASDU
 
struct  sCP16Time2a
 
struct  sCP24Time2a
 
struct  sCP32Time2a
 4 byte binary time More...
 
struct  sCP56Time2a
 
struct  sBinaryCounterReading
 
struct  sCS104_APCIParameters
 

Macros

#define IEC60870_QUALITY_GOOD   0
 
#define IEC60870_QUALITY_OVERFLOW   0x01 /* QualityDescriptor */
 
#define IEC60870_QUALITY_RESERVED   0x04 /* QualityDescriptorP */
 
#define IEC60870_QUALITY_ELAPSED_TIME_INVALID   0x08 /* QualityDescriptorP */
 
#define IEC60870_QUALITY_BLOCKED   0x10 /* QualityDescriptor, QualityDescriptorP */
 
#define IEC60870_QUALITY_SUBSTITUTED   0x20 /* QualityDescriptor, QualityDescriptorP */
 
#define IEC60870_QUALITY_NON_TOPICAL   0x40 /* QualityDescriptor, QualityDescriptorP */
 
#define IEC60870_QUALITY_INVALID   0x80 /* QualityDescriptor, QualityDescriptorP */
 
#define IEC60870_START_EVENT_NONE   0
 
#define IEC60870_START_EVENT_GS   0x01 /* General start of operation */
 
#define IEC60870_START_EVENT_SL1   0x02 /* Start of operation phase L1 */
 
#define IEC60870_START_EVENT_SL2   0x04 /* Start of operation phase L2 */
 
#define IEC60870_START_EVENT_SL3   0x08 /* Start of operation phase L3 */
 
#define IEC60870_START_EVENT_SIE   0x10 /* Start of operation IE (earth current) */
 
#define IEC60870_START_EVENT_SRD   0x20 /* Start of operation in reverse direction */
 
#define IEC60870_START_EVENT_RES1   0x40 /* Reserved bit */
 
#define IEC60870_START_EVENT_RES2   0x80 /* Reserved bit */
 
#define IEC60870_OUTPUT_CI_GC   0x01 /* General command to output circuit */
 
#define IEC60870_OUTPUT_CI_CL1   0x02 /* Command to output circuit phase L1 */
 
#define IEC60870_OUTPUT_CI_CL2   0x04 /* Command to output circuit phase L2 */
 
#define IEC60870_OUTPUT_CI_CL3   0x08 /* Command to output circuit phase L3 */
 
#define IEC60870_QPM_NOT_USED   0
 
#define IEC60870_QPM_THRESHOLD_VALUE   1
 
#define IEC60870_QPM_SMOOTHING_FACTOR   2
 
#define IEC60870_QPM_LOW_LIMIT_FOR_TRANSMISSION   3
 
#define IEC60870_QPM_HIGH_LIMIT_FOR_TRANSMISSION   4
 
#define IEC60870_COI_LOCAL_SWITCH_ON   0
 
#define IEC60870_COI_LOCAL_MANUAL_RESET   1
 
#define IEC60870_COI_REMOTE_RESET   2
 
#define IEC60870_QOC_NO_ADDITIONAL_DEFINITION   0
 
#define IEC60870_QOC_SHORT_PULSE_DURATION   1
 
#define IEC60870_QOC_LONG_PULSE_DURATION   2
 
#define IEC60870_QOC_PERSISTANT_OUTPUT   3
 
#define IEC60870_SCQ_DEFAULT   0
 
#define IEC60870_SCQ_SELECT_FILE   1
 
#define IEC60870_SCQ_REQUEST_FILE   2
 
#define IEC60870_SCQ_DEACTIVATE_FILE   3
 
#define IEC60870_SCQ_DELETE_FILE   4
 
#define IEC60870_SCQ_SELECT_SECTION   5
 
#define IEC60870_SCQ_REQUEST_SECTION   6
 
#define IEC60870_SCQ_DEACTIVATE_SECTION   7
 
#define IEC60870_QOI_STATION   20
 
#define IEC60870_QOI_GROUP_1   21
 
#define IEC60870_QOI_GROUP_2   22
 
#define IEC60870_QOI_GROUP_3   23
 
#define IEC60870_QOI_GROUP_4   24
 
#define IEC60870_QOI_GROUP_5   25
 
#define IEC60870_QOI_GROUP_6   26
 
#define IEC60870_QOI_GROUP_7   27
 
#define IEC60870_QOI_GROUP_8   28
 
#define IEC60870_QOI_GROUP_9   29
 
#define IEC60870_QOI_GROUP_10   30
 
#define IEC60870_QOI_GROUP_11   31
 
#define IEC60870_QOI_GROUP_12   32
 
#define IEC60870_QOI_GROUP_13   33
 
#define IEC60870_QOI_GROUP_14   34
 
#define IEC60870_QOI_GROUP_15   35
 
#define IEC60870_QOI_GROUP_16   36
 
#define IEC60870_QCC_RQT_GROUP_1   1
 
#define IEC60870_QCC_RQT_GROUP_2   2
 
#define IEC60870_QCC_RQT_GROUP_3   3
 
#define IEC60870_QCC_RQT_GROUP_4   4
 
#define IEC60870_QCC_RQT_GENERAL   5
 
#define IEC60870_QCC_FRZ_READ   0x00
 
#define IEC60870_QCC_FRZ_FREEZE_WITHOUT_RESET   0x40
 
#define IEC60870_QCC_FRZ_FREEZE_WITH_RESET   0x80
 
#define IEC60870_QCC_FRZ_COUNTER_RESET   0xc0
 
#define IEC60870_QRP_NOT_USED   0
 
#define IEC60870_QRP_GENERAL_RESET   1
 
#define IEC60870_QRP_RESET_PENDING_INFO_WITH_TIME_TAG   2
 
#define IEC60870_QPA_NOT_USED   0
 
#define IEC60870_QPA_DE_ACT_PREV_LOADED_PARAMETER   1
 
#define IEC60870_QPA_DE_ACT_OBJECT_PARAMETER   2
 
#define IEC60870_QPA_DE_ACT_OBJECT_TRANSMISSION   4
 
#define IEC_60870_5_104_DEFAULT_PORT   2404
 
#define IEC_60870_5_104_DEFAULT_TLS_PORT   19998
 
#define LIB60870_VERSION_MAJOR   2
 
#define LIB60870_VERSION_MINOR   3
 
#define LIB60870_VERSION_PATCH   1
 

Typedefs

typedef uint8_t QualityDescriptor
 
typedef uint8_t QualityDescriptorP
 QDP - Quality descriptor for events of protection equipment according to IEC 60870-5-101:2003 7.2.6.4.
 
typedef uint8_t StartEvent
 SPE - Start events of protection equipment according to IEC 60870-5-101:2003 7.2.6.11.
 
typedef uint8_t OutputCircuitInfo
 Output circuit information (OCI) of protection equipment according to IEC 60870-5-101:2003 7.2.6.12.
 
typedef uint8_t QualifierOfParameterMV
 Qualifier of parameter of measured values (QPM) according to IEC 60870-5-101:2003 7.2.6.24. More...
 
typedef uint8_t CauseOfInitialization
 Cause of Initialization (COI) according to IEC 60870-5-101:2003 7.2.6.21.
 
typedef uint8_t QualifierOfCommand
 Qualifier Of Command (QOC) according to IEC 60870-5-101:2003 7.2.6.26.
 
typedef uint8_t SelectAndCallQualifier
 Select And Call Qualifier (SCQ) according to IEC 60870-5-101:2003 7.2.6.30.
 
typedef uint8_t QualifierOfInterrogation
 Qualifier of interrogation (QUI) according to IEC 60870-5-101:2003 7.2.6.22.
 
typedef uint8_t QualifierOfCIC
 QCC (Qualifier of counter interrogation command) according to IEC 60870-5-101:2003 7.2.6.23. More...
 
typedef uint8_t QualifierOfRPC
 QRP (Qualifier of reset process command) according to IEC 60870-5-101:2003 7.2.6.27.
 
typedef uint8_t QualifierOfParameterActivation
 Qualifier of parameter activation (QPA) according to IEC 60870-5-101:2003 7.2.6.25.
 
typedef uint8_t SetpointCommandQualifier
 
typedef uint8_t tSingleEvent
 
typedef tSingleEvent * SingleEvent
 
typedef struct sStatusAndStatusChangeDetection tStatusAndStatusChangeDetection
 
typedef tStatusAndStatusChangeDetectionStatusAndStatusChangeDetection
 
typedef struct sSinglePointInformation * SinglePointInformation
 
typedef struct sSinglePointWithCP24Time2a * SinglePointWithCP24Time2a
 
typedef struct sSinglePointWithCP56Time2a * SinglePointWithCP56Time2a
 
typedef struct sDoublePointInformation * DoublePointInformation
 
typedef struct sDoublePointWithCP24Time2a * DoublePointWithCP24Time2a
 
typedef struct sDoublePointWithCP56Time2a * DoublePointWithCP56Time2a
 
typedef struct sStepPositionInformation * StepPositionInformation
 
typedef struct sStepPositionWithCP24Time2a * StepPositionWithCP24Time2a
 
typedef struct sStepPositionWithCP56Time2a * StepPositionWithCP56Time2a
 
typedef struct sBitString32 * BitString32
 
typedef struct sBitstring32WithCP24Time2a * Bitstring32WithCP24Time2a
 
typedef struct sBitstring32WithCP56Time2a * Bitstring32WithCP56Time2a
 
typedef struct sMeasuredValueNormalizedWithoutQuality * MeasuredValueNormalizedWithoutQuality
 
typedef struct sMeasuredValueNormalized * MeasuredValueNormalized
 
typedef struct sMeasuredValueNormalizedWithCP24Time2a * MeasuredValueNormalizedWithCP24Time2a
 
typedef struct sMeasuredValueNormalizedWithCP56Time2a * MeasuredValueNormalizedWithCP56Time2a
 
typedef struct sMeasuredValueScaled * MeasuredValueScaled
 
typedef struct sMeasuredValueScaledWithCP24Time2a * MeasuredValueScaledWithCP24Time2a
 
typedef struct sMeasuredValueScaledWithCP56Time2a * MeasuredValueScaledWithCP56Time2a
 
typedef struct sMeasuredValueShort * MeasuredValueShort
 
typedef struct sMeasuredValueShortWithCP24Time2a * MeasuredValueShortWithCP24Time2a
 
typedef struct sMeasuredValueShortWithCP56Time2a * MeasuredValueShortWithCP56Time2a
 
typedef struct sIntegratedTotals * IntegratedTotals
 
typedef struct sIntegratedTotalsWithCP24Time2a * IntegratedTotalsWithCP24Time2a
 
typedef struct sIntegratedTotalsWithCP56Time2a * IntegratedTotalsWithCP56Time2a
 
typedef struct sEventOfProtectionEquipment * EventOfProtectionEquipment
 
typedef struct sPackedStartEventsOfProtectionEquipment * PackedStartEventsOfProtectionEquipment
 
typedef struct sPackedOutputCircuitInfo * PackedOutputCircuitInfo
 
typedef struct sPackedSinglePointWithSCD * PackedSinglePointWithSCD
 
typedef struct sSingleCommand * SingleCommand
 
typedef struct sSingleCommandWithCP56Time2a * SingleCommandWithCP56Time2a
 
typedef struct sDoubleCommand * DoubleCommand
 
typedef struct sStepCommand * StepCommand
 
typedef struct sSetpointCommandNormalized * SetpointCommandNormalized
 
typedef struct sSetpointCommandScaled * SetpointCommandScaled
 
typedef struct sSetpointCommandShort * SetpointCommandShort
 
typedef struct sBitstring32Command * Bitstring32Command
 
typedef struct sInterrogationCommand * InterrogationCommand
 
typedef struct sReadCommand * ReadCommand
 
typedef struct sClockSynchronizationCommand * ClockSynchronizationCommand
 
typedef struct sMeasuredValueNormalized * ParameterNormalizedValue
 
typedef struct sMeasuredValueScaled * ParameterScaledValue
 
typedef struct sMeasuredValueShort * ParameterFloatValue
 
typedef struct sParameterActivation * ParameterActivation
 
typedef struct sEventOfProtectionEquipmentWithCP56Time2a * EventOfProtectionEquipmentWithCP56Time2a
 
typedef struct sPackedStartEventsOfProtectionEquipmentWithCP56Time2a * PackedStartEventsOfProtectionEquipmentWithCP56Time2a
 
typedef struct sPackedOutputCircuitInfoWithCP56Time2a * PackedOutputCircuitInfoWithCP56Time2a
 
typedef struct sDoubleCommandWithCP56Time2a * DoubleCommandWithCP56Time2a
 
typedef struct sStepCommandWithCP56Time2a * StepCommandWithCP56Time2a
 
typedef struct sSetpointCommandNormalizedWithCP56Time2a * SetpointCommandNormalizedWithCP56Time2a
 
typedef struct sSetpointCommandScaledWithCP56Time2a * SetpointCommandScaledWithCP56Time2a
 
typedef struct sSetpointCommandShortWithCP56Time2a * SetpointCommandShortWithCP56Time2a
 
typedef struct sBitstring32CommandWithCP56Time2a * Bitstring32CommandWithCP56Time2a
 
typedef struct sCounterInterrogationCommand * CounterInterrogationCommand
 
typedef struct sTestCommand * TestCommand
 
typedef struct sTestCommandWithCP56Time2a * TestCommandWithCP56Time2a
 
typedef struct sResetProcessCommand * ResetProcessCommand
 
typedef struct sDelayAcquisitionCommand * DelayAcquisitionCommand
 
typedef struct sEndOfInitialization * EndOfInitialization
 
typedef struct sFileReady * FileReady
 
typedef struct sSectionReady * SectionReady
 
typedef struct sFileCallOrSelect * FileCallOrSelect
 
typedef struct sFileLastSegmentOrSection * FileLastSegmentOrSection
 
typedef struct sFileACK * FileACK
 
typedef struct sFileSegment * FileSegment
 
typedef struct sFileDirectory * FileDirectory
 
typedef struct sQueryLog * QueryLog
 
typedef void(* IEC60870_LinkLayerStateChangedHandler) (void *parameter, int address, LinkLayerState newState)
 Callback handler for link layer state changes. More...
 
typedef void(* IEC60870_RawMessageHandler) (void *parameter, uint8_t *msg, int msgSize, bool sent)
 Callback handler for sent and received messages. More...
 
typedef struct sCS101_AppLayerParametersCS101_AppLayerParameters
 Parameters for the CS101/CS104 application layer.
 
typedef IEC60870_5_TypeID TypeID
 
typedef struct sInformationObject * InformationObject
 
typedef struct sCS101_ASDU * CS101_ASDU
 Application Service Data Unit (ASDU) for the CS101/CS104 application layer.
 
typedef sCS101_StaticASDUCS101_StaticASDU
 
typedef struct sCP16Time2aCP16Time2a
 
typedef struct sCP24Time2aCP24Time2a
 
typedef struct sCP32Time2aCP32Time2a
 
typedef struct sCP56Time2aCP56Time2a
 7 byte binary time
 
typedef struct sBinaryCounterReadingBinaryCounterReading
 Base type for counter readings.
 
typedef struct sCS104_APCIParametersCS104_APCIParameters
 Parameters for CS104 connections - APCI (application protocol control information)
 

Enumerations

enum  DoublePointValue { IEC60870_DOUBLE_POINT_INTERMEDIATE = 0 , IEC60870_DOUBLE_POINT_OFF = 1 , IEC60870_DOUBLE_POINT_ON = 2 , IEC60870_DOUBLE_POINT_INDETERMINATE = 3 }
 
enum  EventState { IEC60870_EVENTSTATE_INDETERMINATE_0 = 0 , IEC60870_EVENTSTATE_OFF = 1 , IEC60870_EVENTSTATE_ON = 2 , IEC60870_EVENTSTATE_INDETERMINATE_3 = 3 }
 
enum  StepCommandValue { IEC60870_STEP_INVALID_0 = 0 , IEC60870_STEP_LOWER = 1 , IEC60870_STEP_HIGHER = 2 , IEC60870_STEP_INVALID_3 = 3 }
 Regulating step command state (RCS) according to IEC 60870-5-101:2003 7.2.6.17.
 
enum  IEC60870_LinkLayerMode { IEC60870_LINK_LAYER_BALANCED = 0 , IEC60870_LINK_LAYER_UNBALANCED = 1 }
 link layer mode for serial link layers
 
enum  LinkLayerState { LL_STATE_IDLE , LL_STATE_ERROR , LL_STATE_BUSY , LL_STATE_AVAILABLE }
 State of the link layer. More...
 
enum  IEC60870_5_TypeID {
  M_SP_NA_1 = 1 , M_SP_TA_1 = 2 , M_DP_NA_1 = 3 , M_DP_TA_1 = 4 ,
  M_ST_NA_1 = 5 , M_ST_TA_1 = 6 , M_BO_NA_1 = 7 , M_BO_TA_1 = 8 ,
  M_ME_NA_1 = 9 , M_ME_TA_1 = 10 , M_ME_NB_1 = 11 , M_ME_TB_1 = 12 ,
  M_ME_NC_1 = 13 , M_ME_TC_1 = 14 , M_IT_NA_1 = 15 , M_IT_TA_1 = 16 ,
  M_EP_TA_1 = 17 , M_EP_TB_1 = 18 , M_EP_TC_1 = 19 , M_PS_NA_1 = 20 ,
  M_ME_ND_1 = 21 , M_SP_TB_1 = 30 , M_DP_TB_1 = 31 , M_ST_TB_1 = 32 ,
  M_BO_TB_1 = 33 , M_ME_TD_1 = 34 , M_ME_TE_1 = 35 , M_ME_TF_1 = 36 ,
  M_IT_TB_1 = 37 , M_EP_TD_1 = 38 , M_EP_TE_1 = 39 , M_EP_TF_1 = 40 ,
  S_IT_TC_1 = 41 , C_SC_NA_1 = 45 , C_DC_NA_1 = 46 , C_RC_NA_1 = 47 ,
  C_SE_NA_1 = 48 , C_SE_NB_1 = 49 , C_SE_NC_1 = 50 , C_BO_NA_1 = 51 ,
  C_SC_TA_1 = 58 , C_DC_TA_1 = 59 , C_RC_TA_1 = 60 , C_SE_TA_1 = 61 ,
  C_SE_TB_1 = 62 , C_SE_TC_1 = 63 , C_BO_TA_1 = 64 , M_EI_NA_1 = 70 ,
  S_CH_NA_1 = 81 , S_RP_NA_1 = 82 , S_AR_NA_1 = 83 , S_KR_NA_1 = 84 ,
  S_KS_NA_1 = 85 , S_KC_NA_1 = 86 , S_ER_NA_1 = 87 , S_US_NA_1 = 90 ,
  S_UQ_NA_1 = 91 , S_UR_NA_1 = 92 , S_UK_NA_1 = 93 , S_UA_NA_1 = 94 ,
  S_UC_NA_1 = 95 , C_IC_NA_1 = 100 , C_CI_NA_1 = 101 , C_RD_NA_1 = 102 ,
  C_CS_NA_1 = 103 , C_TS_NA_1 = 104 , C_RP_NA_1 = 105 , C_CD_NA_1 = 106 ,
  C_TS_TA_1 = 107 , P_ME_NA_1 = 110 , P_ME_NB_1 = 111 , P_ME_NC_1 = 112 ,
  P_AC_NA_1 = 113 , F_FR_NA_1 = 120 , F_SR_NA_1 = 121 , F_SC_NA_1 = 122 ,
  F_LS_NA_1 = 123 , F_AF_NA_1 = 124 , F_SG_NA_1 = 125 , F_DR_TA_1 = 126 ,
  F_SC_NB_1 = 127
}
 Message type IDs.
 
enum  CS101_CauseOfTransmission {
  CS101_COT_PERIODIC = 1 , CS101_COT_BACKGROUND_SCAN = 2 , CS101_COT_SPONTANEOUS = 3 , CS101_COT_INITIALIZED = 4 ,
  CS101_COT_REQUEST = 5 , CS101_COT_ACTIVATION = 6 , CS101_COT_ACTIVATION_CON = 7 , CS101_COT_DEACTIVATION = 8 ,
  CS101_COT_DEACTIVATION_CON = 9 , CS101_COT_ACTIVATION_TERMINATION = 10 , CS101_COT_RETURN_INFO_REMOTE = 11 , CS101_COT_RETURN_INFO_LOCAL = 12 ,
  CS101_COT_FILE_TRANSFER = 13 , CS101_COT_AUTHENTICATION = 14 , CS101_COT_MAINTENANCE_OF_AUTH_SESSION_KEY = 15 , CS101_COT_MAINTENANCE_OF_USER_ROLE_AND_UPDATE_KEY = 16 ,
  CS101_COT_INTERROGATED_BY_STATION = 20 , CS101_COT_INTERROGATED_BY_GROUP_1 = 21 , CS101_COT_INTERROGATED_BY_GROUP_2 = 22 , CS101_COT_INTERROGATED_BY_GROUP_3 = 23 ,
  CS101_COT_INTERROGATED_BY_GROUP_4 = 24 , CS101_COT_INTERROGATED_BY_GROUP_5 = 25 , CS101_COT_INTERROGATED_BY_GROUP_6 = 26 , CS101_COT_INTERROGATED_BY_GROUP_7 = 27 ,
  CS101_COT_INTERROGATED_BY_GROUP_8 = 28 , CS101_COT_INTERROGATED_BY_GROUP_9 = 29 , CS101_COT_INTERROGATED_BY_GROUP_10 = 30 , CS101_COT_INTERROGATED_BY_GROUP_11 = 31 ,
  CS101_COT_INTERROGATED_BY_GROUP_12 = 32 , CS101_COT_INTERROGATED_BY_GROUP_13 = 33 , CS101_COT_INTERROGATED_BY_GROUP_14 = 34 , CS101_COT_INTERROGATED_BY_GROUP_15 = 35 ,
  CS101_COT_INTERROGATED_BY_GROUP_16 = 36 , CS101_COT_REQUESTED_BY_GENERAL_COUNTER = 37 , CS101_COT_REQUESTED_BY_GROUP_1_COUNTER = 38 , CS101_COT_REQUESTED_BY_GROUP_2_COUNTER = 39 ,
  CS101_COT_REQUESTED_BY_GROUP_3_COUNTER = 40 , CS101_COT_REQUESTED_BY_GROUP_4_COUNTER = 41 , CS101_COT_UNKNOWN_TYPE_ID = 44 , CS101_COT_UNKNOWN_COT = 45 ,
  CS101_COT_UNKNOWN_CA = 46 , CS101_COT_UNKNOWN_IOA = 47
}
 

Functions

const char * TypeID_toString (TypeID self)
 
void SingleEvent_setEventState (SingleEvent self, EventState eventState)
 
EventState SingleEvent_getEventState (const SingleEvent self)
 
void SingleEvent_setQDP (SingleEvent self, QualityDescriptorP qdp)
 
QualityDescriptorP SingleEvent_getQDP (const SingleEvent self)
 
uint16_t StatusAndStatusChangeDetection_getSTn (const StatusAndStatusChangeDetection self)
 
uint16_t StatusAndStatusChangeDetection_getCDn (const StatusAndStatusChangeDetection self)
 
void StatusAndStatusChangeDetection_setSTn (StatusAndStatusChangeDetection self, uint16_t value)
 
bool StatusAndStatusChangeDetection_getST (const StatusAndStatusChangeDetection self, int index)
 
bool StatusAndStatusChangeDetection_getCD (const StatusAndStatusChangeDetection self, int index)
 
int InformationObject_getMaxSizeInMemory (void)
 return the size in memory of a generic InformationObject instance More...
 
int InformationObject_getObjectAddress (InformationObject self)
 
TypeID InformationObject_getType (InformationObject self)
 
void InformationObject_destroy (InformationObject self)
 Destroy object - free all related resources. More...
 
SinglePointInformation SinglePointInformation_create (SinglePointInformation self, int ioa, bool value, QualityDescriptor quality)
 
bool SinglePointInformation_getValue (SinglePointInformation self)
 
QualityDescriptor SinglePointInformation_getQuality (SinglePointInformation self)
 
void SinglePointInformation_destroy (SinglePointInformation self)
 
SinglePointWithCP24Time2a SinglePointWithCP24Time2a_create (SinglePointWithCP24Time2a self, int ioa, bool value, QualityDescriptor quality, const CP24Time2a timestamp)
 
void SinglePointWithCP24Time2a_destroy (SinglePointWithCP24Time2a self)
 
CP24Time2a SinglePointWithCP24Time2a_getTimestamp (SinglePointWithCP24Time2a self)
 
SinglePointWithCP56Time2a SinglePointWithCP56Time2a_create (SinglePointWithCP56Time2a self, int ioa, bool value, QualityDescriptor quality, const CP56Time2a timestamp)
 
void SinglePointWithCP56Time2a_destroy (SinglePointWithCP56Time2a self)
 
CP56Time2a SinglePointWithCP56Time2a_getTimestamp (SinglePointWithCP56Time2a self)
 
void DoublePointInformation_destroy (DoublePointInformation self)
 
DoublePointInformation DoublePointInformation_create (DoublePointInformation self, int ioa, DoublePointValue value, QualityDescriptor quality)
 
DoublePointValue DoublePointInformation_getValue (DoublePointInformation self)
 
QualityDescriptor DoublePointInformation_getQuality (DoublePointInformation self)
 
void DoublePointWithCP24Time2a_destroy (DoublePointWithCP24Time2a self)
 
DoublePointWithCP24Time2a DoublePointWithCP24Time2a_create (DoublePointWithCP24Time2a self, int ioa, DoublePointValue value, QualityDescriptor quality, const CP24Time2a timestamp)
 
CP24Time2a DoublePointWithCP24Time2a_getTimestamp (DoublePointWithCP24Time2a self)
 
DoublePointWithCP56Time2a DoublePointWithCP56Time2a_create (DoublePointWithCP56Time2a self, int ioa, DoublePointValue value, QualityDescriptor quality, const CP56Time2a timestamp)
 
void DoublePointWithCP56Time2a_destroy (DoublePointWithCP56Time2a self)
 
CP56Time2a DoublePointWithCP56Time2a_getTimestamp (DoublePointWithCP56Time2a self)
 
StepPositionInformation StepPositionInformation_create (StepPositionInformation self, int ioa, int value, bool isTransient, QualityDescriptor quality)
 Create a new instance of StepPositionInformation information object. More...
 
void StepPositionInformation_destroy (StepPositionInformation self)
 
int StepPositionInformation_getObjectAddress (StepPositionInformation self)
 
int StepPositionInformation_getValue (StepPositionInformation self)
 Step position (range -64 ... +63)
 
bool StepPositionInformation_isTransient (StepPositionInformation self)
 
QualityDescriptor StepPositionInformation_getQuality (StepPositionInformation self)
 
void StepPositionWithCP24Time2a_destroy (StepPositionWithCP24Time2a self)
 
StepPositionWithCP24Time2a StepPositionWithCP24Time2a_create (StepPositionWithCP24Time2a self, int ioa, int value, bool isTransient, QualityDescriptor quality, const CP24Time2a timestamp)
 
CP24Time2a StepPositionWithCP24Time2a_getTimestamp (StepPositionWithCP24Time2a self)
 
void StepPositionWithCP56Time2a_destroy (StepPositionWithCP56Time2a self)
 
StepPositionWithCP56Time2a StepPositionWithCP56Time2a_create (StepPositionWithCP56Time2a self, int ioa, int value, bool isTransient, QualityDescriptor quality, const CP56Time2a timestamp)
 
CP56Time2a StepPositionWithCP56Time2a_getTimestamp (StepPositionWithCP56Time2a self)
 
void BitString32_destroy (BitString32 self)
 
BitString32 BitString32_create (BitString32 self, int ioa, uint32_t value)
 
BitString32 BitString32_createEx (BitString32 self, int ioa, uint32_t value, QualityDescriptor quality)
 
uint32_t BitString32_getValue (BitString32 self)
 
QualityDescriptor BitString32_getQuality (BitString32 self)
 
void Bitstring32WithCP24Time2a_destroy (Bitstring32WithCP24Time2a self)
 
Bitstring32WithCP24Time2a Bitstring32WithCP24Time2a_create (Bitstring32WithCP24Time2a self, int ioa, uint32_t value, const CP24Time2a timestamp)
 
Bitstring32WithCP24Time2a Bitstring32WithCP24Time2a_createEx (Bitstring32WithCP24Time2a self, int ioa, uint32_t value, QualityDescriptor quality, const CP24Time2a timestamp)
 
CP24Time2a Bitstring32WithCP24Time2a_getTimestamp (Bitstring32WithCP24Time2a self)
 
void Bitstring32WithCP56Time2a_destroy (Bitstring32WithCP56Time2a self)
 
Bitstring32WithCP56Time2a Bitstring32WithCP56Time2a_create (Bitstring32WithCP56Time2a self, int ioa, uint32_t value, const CP56Time2a timestamp)
 
Bitstring32WithCP56Time2a Bitstring32WithCP56Time2a_createEx (Bitstring32WithCP56Time2a self, int ioa, uint32_t value, QualityDescriptor quality, const CP56Time2a timestamp)
 
CP56Time2a Bitstring32WithCP56Time2a_getTimestamp (Bitstring32WithCP56Time2a self)
 
void MeasuredValueNormalizedWithoutQuality_destroy (MeasuredValueNormalizedWithoutQuality self)
 
MeasuredValueNormalizedWithoutQuality MeasuredValueNormalizedWithoutQuality_create (MeasuredValueNormalizedWithoutQuality self, int ioa, float value)
 
float MeasuredValueNormalizedWithoutQuality_getValue (MeasuredValueNormalizedWithoutQuality self)
 
void MeasuredValueNormalizedWithoutQuality_setValue (MeasuredValueNormalizedWithoutQuality self, float value)
 
void MeasuredValueNormalized_destroy (MeasuredValueNormalized self)
 
MeasuredValueNormalized MeasuredValueNormalized_create (MeasuredValueNormalized self, int ioa, float value, QualityDescriptor quality)
 
float MeasuredValueNormalized_getValue (MeasuredValueNormalized self)
 
void MeasuredValueNormalized_setValue (MeasuredValueNormalized self, float value)
 
QualityDescriptor MeasuredValueNormalized_getQuality (MeasuredValueNormalized self)
 
void MeasuredValueNormalizedWithCP24Time2a_destroy (MeasuredValueNormalizedWithCP24Time2a self)
 
MeasuredValueNormalizedWithCP24Time2a MeasuredValueNormalizedWithCP24Time2a_create (MeasuredValueNormalizedWithCP24Time2a self, int ioa, float value, QualityDescriptor quality, const CP24Time2a timestamp)
 
CP24Time2a MeasuredValueNormalizedWithCP24Time2a_getTimestamp (MeasuredValueNormalizedWithCP24Time2a self)
 
void MeasuredValueNormalizedWithCP24Time2a_setTimestamp (MeasuredValueNormalizedWithCP24Time2a self, CP24Time2a value)
 
void MeasuredValueNormalizedWithCP56Time2a_destroy (MeasuredValueNormalizedWithCP56Time2a self)
 
MeasuredValueNormalizedWithCP56Time2a MeasuredValueNormalizedWithCP56Time2a_create (MeasuredValueNormalizedWithCP56Time2a self, int ioa, float value, QualityDescriptor quality, const CP56Time2a timestamp)
 
CP56Time2a MeasuredValueNormalizedWithCP56Time2a_getTimestamp (MeasuredValueNormalizedWithCP56Time2a self)
 
void MeasuredValueNormalizedWithCP56Time2a_setTimestamp (MeasuredValueNormalizedWithCP56Time2a self, CP56Time2a value)
 
MeasuredValueScaled MeasuredValueScaled_create (MeasuredValueScaled self, int ioa, int value, QualityDescriptor quality)
 Create a new instance of MeasuredValueScaled information object. More...
 
void MeasuredValueScaled_destroy (MeasuredValueScaled self)
 
int MeasuredValueScaled_getValue (MeasuredValueScaled self)
 
void MeasuredValueScaled_setValue (MeasuredValueScaled self, int value)
 
QualityDescriptor MeasuredValueScaled_getQuality (MeasuredValueScaled self)
 
void MeasuredValueScaled_setQuality (MeasuredValueScaled self, QualityDescriptor quality)
 
void MeasuredValueScaledWithCP24Time2a_destroy (MeasuredValueScaledWithCP24Time2a self)
 
MeasuredValueScaledWithCP24Time2a MeasuredValueScaledWithCP24Time2a_create (MeasuredValueScaledWithCP24Time2a self, int ioa, int value, QualityDescriptor quality, const CP24Time2a timestamp)
 
CP24Time2a MeasuredValueScaledWithCP24Time2a_getTimestamp (MeasuredValueScaledWithCP24Time2a self)
 
void MeasuredValueScaledWithCP24Time2a_setTimestamp (MeasuredValueScaledWithCP24Time2a self, CP24Time2a value)
 
void MeasuredValueScaledWithCP56Time2a_destroy (MeasuredValueScaledWithCP56Time2a self)
 
MeasuredValueScaledWithCP56Time2a MeasuredValueScaledWithCP56Time2a_create (MeasuredValueScaledWithCP56Time2a self, int ioa, int value, QualityDescriptor quality, const CP56Time2a timestamp)
 
CP56Time2a MeasuredValueScaledWithCP56Time2a_getTimestamp (MeasuredValueScaledWithCP56Time2a self)
 
void MeasuredValueScaledWithCP56Time2a_setTimestamp (MeasuredValueScaledWithCP56Time2a self, CP56Time2a value)
 
void MeasuredValueShort_destroy (MeasuredValueShort self)
 
MeasuredValueShort MeasuredValueShort_create (MeasuredValueShort self, int ioa, float value, QualityDescriptor quality)
 
float MeasuredValueShort_getValue (MeasuredValueShort self)
 
void MeasuredValueShort_setValue (MeasuredValueShort self, float value)
 
QualityDescriptor MeasuredValueShort_getQuality (MeasuredValueShort self)
 
void MeasuredValueShortWithCP24Time2a_destroy (MeasuredValueShortWithCP24Time2a self)
 
MeasuredValueShortWithCP24Time2a MeasuredValueShortWithCP24Time2a_create (MeasuredValueShortWithCP24Time2a self, int ioa, float value, QualityDescriptor quality, const CP24Time2a timestamp)
 
CP24Time2a MeasuredValueShortWithCP24Time2a_getTimestamp (MeasuredValueShortWithCP24Time2a self)
 
void MeasuredValueShortWithCP24Time2a_setTimestamp (MeasuredValueShortWithCP24Time2a self, CP24Time2a value)
 
void MeasuredValueShortWithCP56Time2a_destroy (MeasuredValueShortWithCP56Time2a self)
 
MeasuredValueShortWithCP56Time2a MeasuredValueShortWithCP56Time2a_create (MeasuredValueShortWithCP56Time2a self, int ioa, float value, QualityDescriptor quality, CP56Time2a timestamp)
 
CP56Time2a MeasuredValueShortWithCP56Time2a_getTimestamp (MeasuredValueShortWithCP56Time2a self)
 
void MeasuredValueShortWithCP56Time2a_setTimestamp (MeasuredValueShortWithCP56Time2a self, CP56Time2a value)
 
void IntegratedTotals_destroy (IntegratedTotals self)
 
IntegratedTotals IntegratedTotals_create (IntegratedTotals self, int ioa, const BinaryCounterReading value)
 Create a new instance of IntegratedTotals information object. More...
 
BinaryCounterReading IntegratedTotals_getBCR (IntegratedTotals self)
 
void IntegratedTotals_setBCR (IntegratedTotals self, BinaryCounterReading value)
 
IntegratedTotalsWithCP24Time2a IntegratedTotalsWithCP24Time2a_create (IntegratedTotalsWithCP24Time2a self, int ioa, const BinaryCounterReading value, const CP24Time2a timestamp)
 Create a new instance of IntegratedTotalsWithCP24Time2a information object. More...
 
void IntegratedTotalsWithCP24Time2a_destroy (IntegratedTotalsWithCP24Time2a self)
 
CP24Time2a IntegratedTotalsWithCP24Time2a_getTimestamp (IntegratedTotalsWithCP24Time2a self)
 
void IntegratedTotalsWithCP24Time2a_setTimestamp (IntegratedTotalsWithCP24Time2a self, CP24Time2a value)
 
IntegratedTotalsWithCP56Time2a IntegratedTotalsWithCP56Time2a_create (IntegratedTotalsWithCP56Time2a self, int ioa, const BinaryCounterReading value, const CP56Time2a timestamp)
 Create a new instance of IntegratedTotalsWithCP56Time2a information object. More...
 
void IntegratedTotalsWithCP56Time2a_destroy (IntegratedTotalsWithCP56Time2a self)
 
CP56Time2a IntegratedTotalsWithCP56Time2a_getTimestamp (IntegratedTotalsWithCP56Time2a self)
 
void IntegratedTotalsWithCP56Time2a_setTimestamp (IntegratedTotalsWithCP56Time2a self, CP56Time2a value)
 
void EventOfProtectionEquipment_destroy (EventOfProtectionEquipment self)
 
EventOfProtectionEquipment EventOfProtectionEquipment_create (EventOfProtectionEquipment self, int ioa, const SingleEvent event, const CP16Time2a elapsedTime, const CP24Time2a timestamp)
 
SingleEvent EventOfProtectionEquipment_getEvent (EventOfProtectionEquipment self)
 
CP16Time2a EventOfProtectionEquipment_getElapsedTime (EventOfProtectionEquipment self)
 
CP24Time2a EventOfProtectionEquipment_getTimestamp (EventOfProtectionEquipment self)
 
PackedStartEventsOfProtectionEquipment PackedStartEventsOfProtectionEquipment_create (PackedStartEventsOfProtectionEquipment self, int ioa, StartEvent event, QualityDescriptorP qdp, const CP16Time2a elapsedTime, const CP24Time2a timestamp)
 
void PackedStartEventsOfProtectionEquipment_destroy (PackedStartEventsOfProtectionEquipment self)
 
StartEvent PackedStartEventsOfProtectionEquipment_getEvent (PackedStartEventsOfProtectionEquipment self)
 
QualityDescriptorP PackedStartEventsOfProtectionEquipment_getQuality (PackedStartEventsOfProtectionEquipment self)
 
CP16Time2a PackedStartEventsOfProtectionEquipment_getElapsedTime (PackedStartEventsOfProtectionEquipment self)
 
CP24Time2a PackedStartEventsOfProtectionEquipment_getTimestamp (PackedStartEventsOfProtectionEquipment self)
 
void PackedOutputCircuitInfo_destroy (PackedOutputCircuitInfo self)
 
PackedOutputCircuitInfo PackedOutputCircuitInfo_create (PackedOutputCircuitInfo self, int ioa, OutputCircuitInfo oci, QualityDescriptorP qdp, const CP16Time2a operatingTime, const CP24Time2a timestamp)
 
OutputCircuitInfo PackedOutputCircuitInfo_getOCI (PackedOutputCircuitInfo self)
 
QualityDescriptorP PackedOutputCircuitInfo_getQuality (PackedOutputCircuitInfo self)
 
CP16Time2a PackedOutputCircuitInfo_getOperatingTime (PackedOutputCircuitInfo self)
 
CP24Time2a PackedOutputCircuitInfo_getTimestamp (PackedOutputCircuitInfo self)
 
void PackedSinglePointWithSCD_destroy (PackedSinglePointWithSCD self)
 
PackedSinglePointWithSCD PackedSinglePointWithSCD_create (PackedSinglePointWithSCD self, int ioa, const StatusAndStatusChangeDetection scd, QualityDescriptor qds)
 
QualityDescriptor PackedSinglePointWithSCD_getQuality (PackedSinglePointWithSCD self)
 
StatusAndStatusChangeDetection PackedSinglePointWithSCD_getSCD (PackedSinglePointWithSCD self)
 
SingleCommand SingleCommand_create (SingleCommand self, int ioa, bool command, bool selectCommand, int qu)
 Create a single point command information object. More...
 
void SingleCommand_destroy (SingleCommand self)
 
int SingleCommand_getQU (SingleCommand self)
 Get the qualifier of command QU value. More...
 
bool SingleCommand_getState (SingleCommand self)
 Get the state (command) value.
 
bool SingleCommand_isSelect (SingleCommand self)
 Return the value of the S/E bit of the qualifier of command. More...
 
void SingleCommandWithCP56Time2a_destroy (SingleCommandWithCP56Time2a self)
 
SingleCommandWithCP56Time2a SingleCommandWithCP56Time2a_create (SingleCommandWithCP56Time2a self, int ioa, bool command, bool selectCommand, int qu, const CP56Time2a timestamp)
 Create a single command with CP56Time2a time stamp information object. More...
 
CP56Time2a SingleCommandWithCP56Time2a_getTimestamp (SingleCommandWithCP56Time2a self)
 Get the time stamp of the command. More...
 
void DoubleCommand_destroy (DoubleCommand self)
 
DoubleCommand DoubleCommand_create (DoubleCommand self, int ioa, int command, bool selectCommand, int qu)
 Create a double command information object. More...
 
int DoubleCommand_getQU (DoubleCommand self)
 Get the qualifier of command QU value. More...
 
int DoubleCommand_getState (DoubleCommand self)
 Get the state (command) value. More...
 
bool DoubleCommand_isSelect (DoubleCommand self)
 Return the value of the S/E bit of the qualifier of command. More...
 
void StepCommand_destroy (StepCommand self)
 
StepCommand StepCommand_create (StepCommand self, int ioa, StepCommandValue command, bool selectCommand, int qu)
 
int StepCommand_getQU (StepCommand self)
 Get the qualifier of command QU value. More...
 
StepCommandValue StepCommand_getState (StepCommand self)
 
bool StepCommand_isSelect (StepCommand self)
 Return the value of the S/E bit of the qualifier of command. More...
 
void SetpointCommandNormalized_destroy (SetpointCommandNormalized self)
 
SetpointCommandNormalized SetpointCommandNormalized_create (SetpointCommandNormalized self, int ioa, float value, bool selectCommand, int ql)
 Create a normalized set point command information object. More...
 
float SetpointCommandNormalized_getValue (SetpointCommandNormalized self)
 
int SetpointCommandNormalized_getQL (SetpointCommandNormalized self)
 
bool SetpointCommandNormalized_isSelect (SetpointCommandNormalized self)
 Return the value of the S/E bit of the qualifier of command. More...
 
void SetpointCommandScaled_destroy (SetpointCommandScaled self)
 
SetpointCommandScaled SetpointCommandScaled_create (SetpointCommandScaled self, int ioa, int value, bool selectCommand, int ql)
 Create a scaled set point command information object. More...
 
int SetpointCommandScaled_getValue (SetpointCommandScaled self)
 
int SetpointCommandScaled_getQL (SetpointCommandScaled self)
 
bool SetpointCommandScaled_isSelect (SetpointCommandScaled self)
 Return the value of the S/E bit of the qualifier of command. More...
 
void SetpointCommandShort_destroy (SetpointCommandShort self)
 
SetpointCommandShort SetpointCommandShort_create (SetpointCommandShort self, int ioa, float value, bool selectCommand, int ql)
 Create a short floating point set point command information object. More...
 
float SetpointCommandShort_getValue (SetpointCommandShort self)
 
int SetpointCommandShort_getQL (SetpointCommandShort self)
 
bool SetpointCommandShort_isSelect (SetpointCommandShort self)
 Return the value of the S/E bit of the qualifier of command. More...
 
Bitstring32Command Bitstring32Command_create (Bitstring32Command self, int ioa, uint32_t value)
 
void Bitstring32Command_destroy (Bitstring32Command self)
 
uint32_t Bitstring32Command_getValue (Bitstring32Command self)
 
InterrogationCommand InterrogationCommand_create (InterrogationCommand self, int ioa, uint8_t qoi)
 
void InterrogationCommand_destroy (InterrogationCommand self)
 
uint8_t InterrogationCommand_getQOI (InterrogationCommand self)
 
ReadCommand ReadCommand_create (ReadCommand self, int ioa)
 
void ReadCommand_destroy (ReadCommand self)
 
ClockSynchronizationCommand ClockSynchronizationCommand_create (ClockSynchronizationCommand self, int ioa, const CP56Time2a timestamp)
 
void ClockSynchronizationCommand_destroy (ClockSynchronizationCommand self)
 
CP56Time2a ClockSynchronizationCommand_getTime (ClockSynchronizationCommand self)
 
void ParameterNormalizedValue_destroy (ParameterNormalizedValue self)
 
ParameterNormalizedValue ParameterNormalizedValue_create (ParameterNormalizedValue self, int ioa, float value, QualifierOfParameterMV qpm)
 Create a parameter measured values, normalized (P_ME_NA_1) information object. More...
 
float ParameterNormalizedValue_getValue (ParameterNormalizedValue self)
 
void ParameterNormalizedValue_setValue (ParameterNormalizedValue self, float value)
 
QualifierOfParameterMV ParameterNormalizedValue_getQPM (ParameterNormalizedValue self)
 Returns the qualifier of measured values (QPM) More...
 
void ParameterScaledValue_destroy (ParameterScaledValue self)
 
ParameterScaledValue ParameterScaledValue_create (ParameterScaledValue self, int ioa, int value, QualifierOfParameterMV qpm)
 Create a parameter measured values, scaled (P_ME_NB_1) information object. More...
 
int ParameterScaledValue_getValue (ParameterScaledValue self)
 
void ParameterScaledValue_setValue (ParameterScaledValue self, int value)
 
QualifierOfParameterMV ParameterScaledValue_getQPM (ParameterScaledValue self)
 Returns the qualifier of measured values (QPM) More...
 
void ParameterFloatValue_destroy (ParameterFloatValue self)
 
ParameterFloatValue ParameterFloatValue_create (ParameterFloatValue self, int ioa, float value, QualifierOfParameterMV qpm)
 Create a parameter measured values, short floating point (P_ME_NC_1) information object. More...
 
float ParameterFloatValue_getValue (ParameterFloatValue self)
 
void ParameterFloatValue_setValue (ParameterFloatValue self, float value)
 
QualifierOfParameterMV ParameterFloatValue_getQPM (ParameterFloatValue self)
 Returns the qualifier of measured values (QPM) More...
 
void ParameterActivation_destroy (ParameterActivation self)
 
ParameterActivation ParameterActivation_create (ParameterActivation self, int ioa, QualifierOfParameterActivation qpa)
 Create a parameter activation (P_AC_NA_1) information object. More...
 
QualifierOfParameterActivation ParameterActivation_getQuality (ParameterActivation self)
 Get the qualifier of parameter activation (QPA) value. More...
 
void EventOfProtectionEquipmentWithCP56Time2a_destroy (EventOfProtectionEquipmentWithCP56Time2a self)
 
EventOfProtectionEquipmentWithCP56Time2a EventOfProtectionEquipmentWithCP56Time2a_create (EventOfProtectionEquipmentWithCP56Time2a self, int ioa, const SingleEvent event, const CP16Time2a elapsedTime, const CP56Time2a timestamp)
 
SingleEvent EventOfProtectionEquipmentWithCP56Time2a_getEvent (EventOfProtectionEquipmentWithCP56Time2a self)
 
CP16Time2a EventOfProtectionEquipmentWithCP56Time2a_getElapsedTime (EventOfProtectionEquipmentWithCP56Time2a self)
 
CP56Time2a EventOfProtectionEquipmentWithCP56Time2a_getTimestamp (EventOfProtectionEquipmentWithCP56Time2a self)
 
void PackedStartEventsOfProtectionEquipmentWithCP56Time2a_destroy (PackedStartEventsOfProtectionEquipmentWithCP56Time2a self)
 
PackedStartEventsOfProtectionEquipmentWithCP56Time2a PackedStartEventsOfProtectionEquipmentWithCP56Time2a_create (PackedStartEventsOfProtectionEquipmentWithCP56Time2a self, int ioa, StartEvent event, QualityDescriptorP qdp, const CP16Time2a elapsedTime, const CP56Time2a timestamp)
 
StartEvent PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getEvent (PackedStartEventsOfProtectionEquipmentWithCP56Time2a self)
 
QualityDescriptorP PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getQuality (PackedStartEventsOfProtectionEquipmentWithCP56Time2a self)
 
CP16Time2a PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getElapsedTime (PackedStartEventsOfProtectionEquipmentWithCP56Time2a self)
 
CP56Time2a PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getTimestamp (PackedStartEventsOfProtectionEquipmentWithCP56Time2a self)
 
void PackedOutputCircuitInfoWithCP56Time2a_destroy (PackedOutputCircuitInfoWithCP56Time2a self)
 
PackedOutputCircuitInfoWithCP56Time2a PackedOutputCircuitInfoWithCP56Time2a_create (PackedOutputCircuitInfoWithCP56Time2a self, int ioa, OutputCircuitInfo oci, QualityDescriptorP qdp, const CP16Time2a operatingTime, const CP56Time2a timestamp)
 
OutputCircuitInfo PackedOutputCircuitInfoWithCP56Time2a_getOCI (PackedOutputCircuitInfoWithCP56Time2a self)
 
QualityDescriptorP PackedOutputCircuitInfoWithCP56Time2a_getQuality (PackedOutputCircuitInfoWithCP56Time2a self)
 
CP16Time2a PackedOutputCircuitInfoWithCP56Time2a_getOperatingTime (PackedOutputCircuitInfoWithCP56Time2a self)
 
CP56Time2a PackedOutputCircuitInfoWithCP56Time2a_getTimestamp (PackedOutputCircuitInfoWithCP56Time2a self)
 
void DoubleCommandWithCP56Time2a_destroy (DoubleCommandWithCP56Time2a self)
 
DoubleCommandWithCP56Time2a DoubleCommandWithCP56Time2a_create (DoubleCommandWithCP56Time2a self, int ioa, int command, bool selectCommand, int qu, const CP56Time2a timestamp)
 
int DoubleCommandWithCP56Time2a_getQU (DoubleCommandWithCP56Time2a self)
 
int DoubleCommandWithCP56Time2a_getState (DoubleCommandWithCP56Time2a self)
 
bool DoubleCommandWithCP56Time2a_isSelect (DoubleCommandWithCP56Time2a self)
 
CP56Time2a DoubleCommandWithCP56Time2a_getTimestamp (DoubleCommandWithCP56Time2a self)
 
void StepCommandWithCP56Time2a_destroy (StepCommandWithCP56Time2a self)
 
StepCommandWithCP56Time2a StepCommandWithCP56Time2a_create (StepCommandWithCP56Time2a self, int ioa, StepCommandValue command, bool selectCommand, int qu, const CP56Time2a timestamp)
 
int StepCommandWithCP56Time2a_getQU (StepCommandWithCP56Time2a self)
 
StepCommandValue StepCommandWithCP56Time2a_getState (StepCommandWithCP56Time2a self)
 
bool StepCommandWithCP56Time2a_isSelect (StepCommandWithCP56Time2a self)
 
CP56Time2a StepCommandWithCP56Time2a_getTimestamp (StepCommandWithCP56Time2a self)
 
void SetpointCommandNormalizedWithCP56Time2a_destroy (SetpointCommandNormalizedWithCP56Time2a self)
 
SetpointCommandNormalizedWithCP56Time2a SetpointCommandNormalizedWithCP56Time2a_create (SetpointCommandNormalizedWithCP56Time2a self, int ioa, float value, bool selectCommand, int ql, const CP56Time2a timestamp)
 
float SetpointCommandNormalizedWithCP56Time2a_getValue (SetpointCommandNormalizedWithCP56Time2a self)
 
int SetpointCommandNormalizedWithCP56Time2a_getQL (SetpointCommandNormalizedWithCP56Time2a self)
 
bool SetpointCommandNormalizedWithCP56Time2a_isSelect (SetpointCommandNormalizedWithCP56Time2a self)
 
CP56Time2a SetpointCommandNormalizedWithCP56Time2a_getTimestamp (SetpointCommandNormalizedWithCP56Time2a self)
 
void SetpointCommandScaledWithCP56Time2a_destroy (SetpointCommandScaledWithCP56Time2a self)
 
SetpointCommandScaledWithCP56Time2a SetpointCommandScaledWithCP56Time2a_create (SetpointCommandScaledWithCP56Time2a self, int ioa, int value, bool selectCommand, int ql, const CP56Time2a timestamp)
 
int SetpointCommandScaledWithCP56Time2a_getValue (SetpointCommandScaledWithCP56Time2a self)
 
int SetpointCommandScaledWithCP56Time2a_getQL (SetpointCommandScaledWithCP56Time2a self)
 
bool SetpointCommandScaledWithCP56Time2a_isSelect (SetpointCommandScaledWithCP56Time2a self)
 
CP56Time2a SetpointCommandScaledWithCP56Time2a_getTimestamp (SetpointCommandScaledWithCP56Time2a self)
 
void SetpointCommandShortWithCP56Time2a_destroy (SetpointCommandShortWithCP56Time2a self)
 
SetpointCommandShortWithCP56Time2a SetpointCommandShortWithCP56Time2a_create (SetpointCommandShortWithCP56Time2a self, int ioa, float value, bool selectCommand, int ql, const CP56Time2a timestamp)
 
float SetpointCommandShortWithCP56Time2a_getValue (SetpointCommandShortWithCP56Time2a self)
 
int SetpointCommandShortWithCP56Time2a_getQL (SetpointCommandShortWithCP56Time2a self)
 
bool SetpointCommandShortWithCP56Time2a_isSelect (SetpointCommandShortWithCP56Time2a self)
 
CP56Time2a SetpointCommandShortWithCP56Time2a_getTimestamp (SetpointCommandShortWithCP56Time2a self)
 
Bitstring32CommandWithCP56Time2a Bitstring32CommandWithCP56Time2a_create (Bitstring32CommandWithCP56Time2a self, int ioa, uint32_t value, const CP56Time2a timestamp)
 
void Bitstring32CommandWithCP56Time2a_destroy (Bitstring32CommandWithCP56Time2a self)
 
uint32_t Bitstring32CommandWithCP56Time2a_getValue (Bitstring32CommandWithCP56Time2a self)
 
CP56Time2a Bitstring32CommandWithCP56Time2a_getTimestamp (Bitstring32CommandWithCP56Time2a self)
 
CounterInterrogationCommand CounterInterrogationCommand_create (CounterInterrogationCommand self, int ioa, QualifierOfCIC qcc)
 
void CounterInterrogationCommand_destroy (CounterInterrogationCommand self)
 
QualifierOfCIC CounterInterrogationCommand_getQCC (CounterInterrogationCommand self)
 
TestCommand TestCommand_create (TestCommand self)
 
void TestCommand_destroy (TestCommand self)
 
bool TestCommand_isValid (TestCommand self)
 
TestCommandWithCP56Time2a TestCommandWithCP56Time2a_create (TestCommandWithCP56Time2a self, uint16_t tsc, const CP56Time2a timestamp)
 Create a test command with CP56Time2a timestamp information object. More...
 
void TestCommandWithCP56Time2a_destroy (TestCommandWithCP56Time2a self)
 
uint16_t TestCommandWithCP56Time2a_getCounter (TestCommandWithCP56Time2a self)
 
CP56Time2a TestCommandWithCP56Time2a_getTimestamp (TestCommandWithCP56Time2a self)
 
ResetProcessCommand ResetProcessCommand_create (ResetProcessCommand self, int ioa, QualifierOfRPC qrp)
 
void ResetProcessCommand_destroy (ResetProcessCommand self)
 
QualifierOfRPC ResetProcessCommand_getQRP (ResetProcessCommand self)
 
DelayAcquisitionCommand DelayAcquisitionCommand_create (DelayAcquisitionCommand self, int ioa, const CP16Time2a delay)
 
void DelayAcquisitionCommand_destroy (DelayAcquisitionCommand self)
 
CP16Time2a DelayAcquisitionCommand_getDelay (DelayAcquisitionCommand self)
 
EndOfInitialization EndOfInitialization_create (EndOfInitialization self, uint8_t coi)
 
void EndOfInitialization_destroy (EndOfInitialization self)
 
uint8_t EndOfInitialization_getCOI (EndOfInitialization self)
 
FileReady FileReady_create (FileReady self, int ioa, uint16_t nof, uint32_t lengthOfFile, bool positive)
 Create a new instance of FileReady information object. More...
 
uint8_t FileReady_getFRQ (FileReady self)
 
void FileReady_setFRQ (FileReady self, uint8_t frq)
 
bool FileReady_isPositive (FileReady self)
 
uint16_t FileReady_getNOF (FileReady self)
 
uint32_t FileReady_getLengthOfFile (FileReady self)
 
void FileReady_destroy (FileReady self)
 
SectionReady SectionReady_create (SectionReady self, int ioa, uint16_t nof, uint8_t nos, uint32_t lengthOfSection, bool notReady)
 
bool SectionReady_isNotReady (SectionReady self)
 
uint8_t SectionReady_getSRQ (SectionReady self)
 
void SectionReady_setSRQ (SectionReady self, uint8_t srq)
 
uint16_t SectionReady_getNOF (SectionReady self)
 
uint8_t SectionReady_getNameOfSection (SectionReady self)
 
uint32_t SectionReady_getLengthOfSection (SectionReady self)
 
void SectionReady_destroy (SectionReady self)
 
FileCallOrSelect FileCallOrSelect_create (FileCallOrSelect self, int ioa, uint16_t nof, uint8_t nos, uint8_t scq)
 
uint16_t FileCallOrSelect_getNOF (FileCallOrSelect self)
 
uint8_t FileCallOrSelect_getNameOfSection (FileCallOrSelect self)
 
uint8_t FileCallOrSelect_getSCQ (FileCallOrSelect self)
 
void FileCallOrSelect_destroy (FileCallOrSelect self)
 
FileLastSegmentOrSection FileLastSegmentOrSection_create (FileLastSegmentOrSection self, int ioa, uint16_t nof, uint8_t nos, uint8_t lsq, uint8_t chs)
 
uint16_t FileLastSegmentOrSection_getNOF (FileLastSegmentOrSection self)
 
uint8_t FileLastSegmentOrSection_getNameOfSection (FileLastSegmentOrSection self)
 
uint8_t FileLastSegmentOrSection_getLSQ (FileLastSegmentOrSection self)
 
uint8_t FileLastSegmentOrSection_getCHS (FileLastSegmentOrSection self)
 
void FileLastSegmentOrSection_destroy (FileLastSegmentOrSection self)
 
FileACK FileACK_create (FileACK self, int ioa, uint16_t nof, uint8_t nos, uint8_t afq)
 
uint16_t FileACK_getNOF (FileACK self)
 
uint8_t FileACK_getNameOfSection (FileACK self)
 
uint8_t FileACK_getAFQ (FileACK self)
 
void FileACK_destroy (FileACK self)
 
FileSegment FileSegment_create (FileSegment self, int ioa, uint16_t nof, uint8_t nos, uint8_t *data, uint8_t los)
 
uint16_t FileSegment_getNOF (FileSegment self)
 
uint8_t FileSegment_getNameOfSection (FileSegment self)
 
uint8_t FileSegment_getLengthOfSegment (FileSegment self)
 
uint8_t * FileSegment_getSegmentData (FileSegment self)
 
int FileSegment_GetMaxDataSize (CS101_AppLayerParameters parameters)
 
void FileSegment_destroy (FileSegment self)
 
FileDirectory FileDirectory_create (FileDirectory self, int ioa, uint16_t nof, int lengthOfFile, uint8_t sof, const CP56Time2a creationTime)
 
uint16_t FileDirectory_getNOF (FileDirectory self)
 
uint8_t FileDirectory_getSOF (FileDirectory self)
 
int FileDirectory_getSTATUS (FileDirectory self)
 
bool FileDirectory_getLFD (FileDirectory self)
 
bool FileDirectory_getFOR (FileDirectory self)
 
bool FileDirectory_getFA (FileDirectory self)
 
uint8_t FileDirectory_getLengthOfFile (FileDirectory self)
 
CP56Time2a FileDirectory_getCreationTime (FileDirectory self)
 
void FileDirectory_destroy (FileDirectory self)
 
QueryLog QueryLog_create (QueryLog self, int ioa, uint16_t nof, const CP56Time2a rangeStartTime, const CP56Time2a rangeStopTime)
 
uint16_t QueryLog_getNOF (QueryLog self)
 
CP56Time2a QueryLog_getRangeStartTime (QueryLog self)
 
CP56Time2a QueryLog_getRangeStopTime (QueryLog self)
 
void QueryLog_destroy (QueryLog self)
 
const char * CS101_CauseOfTransmission_toString (CS101_CauseOfTransmission self)
 
void Lib60870_enableDebugOutput (bool value)
 
Lib60870VersionInfo Lib60870_getLibraryVersionInfo (void)
 
bool CS101_ASDU_isTest (CS101_ASDU self)
 Check if the test flag of the ASDU is set.
 
void CS101_ASDU_setTest (CS101_ASDU self, bool value)
 Set the test flag of the ASDU.
 
bool CS101_ASDU_isNegative (CS101_ASDU self)
 Check if the negative flag of the ASDU is set.
 
void CS101_ASDU_setNegative (CS101_ASDU self, bool value)
 Set the negative flag of the ASDU.
 
int CS101_ASDU_getOA (CS101_ASDU self)
 get the OA (originator address) of the ASDU.
 
CS101_CauseOfTransmission CS101_ASDU_getCOT (CS101_ASDU self)
 Get the cause of transmission (COT) of the ASDU.
 
void CS101_ASDU_setCOT (CS101_ASDU self, CS101_CauseOfTransmission value)
 Set the cause of transmission (COT) of the ASDU.
 
int CS101_ASDU_getCA (CS101_ASDU self)
 Get the common address (CA) of the ASDU.
 
void CS101_ASDU_setCA (CS101_ASDU self, int ca)
 Set the common address (CA) of the ASDU. More...
 
IEC60870_5_TypeID CS101_ASDU_getTypeID (CS101_ASDU self)
 Get the type ID of the ASDU. More...
 
void CS101_ASDU_setTypeID (CS101_ASDU self, IEC60870_5_TypeID typeId)
 Set the type ID of the ASDU. More...
 
bool CS101_ASDU_isSequence (CS101_ASDU self)
 Check if the ASDU contains a sequence of consecutive information objects. More...
 
void CS101_ASDU_setSequence (CS101_ASDU self, bool isSequence)
 Set the ASDU to represent a sequence of consecutive information objects. More...
 
int CS101_ASDU_getNumberOfElements (CS101_ASDU self)
 Get the number of information objects (elements) in the ASDU. More...
 
void CS101_ASDU_setNumberOfElements (CS101_ASDU self, int numberOfElements)
 Set the number of information objects (elements) in the ASDU. More...
 
InformationObject CS101_ASDU_getElement (CS101_ASDU self, int index)
 Get the information object with the given index. More...
 
InformationObject CS101_ASDU_getElementEx (CS101_ASDU self, InformationObject io, int index)
 Get the information object with the given index and store it in the provided information object instance. More...
 
CS101_ASDU CS101_ASDU_create (CS101_AppLayerParameters parameters, bool isSequence, CS101_CauseOfTransmission cot, int oa, int ca, bool isTest, bool isNegative)
 Create a new ASDU. The type ID will be derived from the first InformationObject that will be added. More...
 
CS101_ASDU CS101_ASDU_initializeStatic (CS101_StaticASDU self, CS101_AppLayerParameters parameters, bool isSequence, CS101_CauseOfTransmission cot, int oa, int ca, bool isTest, bool isNegative)
 Create a new ASDU and store it in the provided static ASDU structure. More...
 
CS101_ASDU CS101_ASDU_clone (CS101_ASDU self, CS101_StaticASDU clone)
 Create a new ASDU that is an exact copy of the ASDU. More...
 
uint8_t * CS101_ASDU_getPayload (CS101_ASDU self)
 
bool CS101_ASDU_addPayload (CS101_ASDU self, uint8_t *buffer, int size)
 Append the provided data to the ASDU payload. More...
 
int CS101_ASDU_getPayloadSize (CS101_ASDU self)
 
void CS101_ASDU_destroy (CS101_ASDU self)
 Destroy the ASDU object (release all resources)
 
bool CS101_ASDU_addInformationObject (CS101_ASDU self, InformationObject io)
 add an information object to the ASDU More...
 
void CS101_ASDU_removeAllElements (CS101_ASDU self)
 remove all information elements from the ASDU object More...
 
int CP16Time2a_getEplapsedTimeInMs (const CP16Time2a self)
 Get the elapsed time in ms.
 
void CP16Time2a_setEplapsedTimeInMs (CP16Time2a self, int value)
 set the elapsed time in ms
 
int CP24Time2a_getMillisecond (const CP24Time2a self)
 Get the millisecond part of the time value.
 
void CP24Time2a_setMillisecond (CP24Time2a self, int value)
 Set the millisecond part of the time value.
 
int CP24Time2a_getSecond (const CP24Time2a self)
 Get the second part of the time value.
 
void CP24Time2a_setSecond (CP24Time2a self, int value)
 Set the second part of the time value.
 
int CP24Time2a_getMinute (const CP24Time2a self)
 Get the minute part of the time value.
 
void CP24Time2a_setMinute (CP24Time2a self, int value)
 Set the minute part of the time value.
 
bool CP24Time2a_isInvalid (const CP24Time2a self)
 Check if the invalid flag of the time value is set.
 
void CP24Time2a_setInvalid (CP24Time2a self, bool value)
 Set the invalid flag of the time value.
 
bool CP24Time2a_isSubstituted (const CP24Time2a self)
 Check if the substituted flag of the time value is set.
 
void CP24Time2a_setSubstituted (CP24Time2a self, bool value)
 Set the substituted flag of the time value.
 
CP56Time2a CP56Time2a_createFromMsTimestamp (CP56Time2a self, uint64_t timestamp)
 Create a 7 byte time from a UTC ms timestamp.
 
CP32Time2a CP32Time2a_create (CP32Time2a self)
 
void CP32Time2a_setFromMsTimestamp (CP32Time2a self, uint64_t timestamp)
 
int CP32Time2a_getMillisecond (const CP32Time2a self)
 
void CP32Time2a_setMillisecond (CP32Time2a self, int value)
 
int CP32Time2a_getSecond (const CP32Time2a self)
 
void CP32Time2a_setSecond (CP32Time2a self, int value)
 
int CP32Time2a_getMinute (const CP32Time2a self)
 
void CP32Time2a_setMinute (CP32Time2a self, int value)
 
bool CP32Time2a_isInvalid (const CP32Time2a self)
 
void CP32Time2a_setInvalid (CP32Time2a self, bool value)
 
bool CP32Time2a_isSubstituted (const CP32Time2a self)
 
void CP32Time2a_setSubstituted (CP32Time2a self, bool value)
 
int CP32Time2a_getHour (const CP32Time2a self)
 
void CP32Time2a_setHour (CP32Time2a self, int value)
 
bool CP32Time2a_isSummerTime (const CP32Time2a self)
 
void CP32Time2a_setSummerTime (CP32Time2a self, bool value)
 
void CP56Time2a_setFromMsTimestamp (CP56Time2a self, uint64_t timestamp)
 Set the time value of a 7 byte time from a UTC ms timestamp.
 
uint64_t CP56Time2a_toMsTimestamp (const CP56Time2a self)
 Convert a 7 byte time to a ms timestamp.
 
int CP56Time2a_getMillisecond (const CP56Time2a self)
 Get the ms part of a time value.
 
void CP56Time2a_setMillisecond (CP56Time2a self, int value)
 Set the ms part of a time value.
 
int CP56Time2a_getSecond (const CP56Time2a self)
 
void CP56Time2a_setSecond (CP56Time2a self, int value)
 
int CP56Time2a_getMinute (const CP56Time2a self)
 
void CP56Time2a_setMinute (CP56Time2a self, int value)
 
int CP56Time2a_getHour (const CP56Time2a self)
 
void CP56Time2a_setHour (CP56Time2a self, int value)
 
int CP56Time2a_getDayOfWeek (const CP56Time2a self)
 
void CP56Time2a_setDayOfWeek (CP56Time2a self, int value)
 
int CP56Time2a_getDayOfMonth (const CP56Time2a self)
 
void CP56Time2a_setDayOfMonth (CP56Time2a self, int value)
 
int CP56Time2a_getMonth (const CP56Time2a self)
 Get the month field of the time. More...
 
void CP56Time2a_setMonth (CP56Time2a self, int value)
 Set the month field of the time. More...
 
int CP56Time2a_getYear (const CP56Time2a self)
 Get the year (range 0..99) More...
 
void CP56Time2a_setYear (CP56Time2a self, int value)
 Set the year. More...
 
bool CP56Time2a_isSummerTime (const CP56Time2a self)
 
void CP56Time2a_setSummerTime (CP56Time2a self, bool value)
 
bool CP56Time2a_isInvalid (const CP56Time2a self)
 
void CP56Time2a_setInvalid (CP56Time2a self, bool value)
 
bool CP56Time2a_isSubstituted (const CP56Time2a self)
 
void CP56Time2a_setSubstituted (CP56Time2a self, bool value)
 
BinaryCounterReading BinaryCounterReading_create (BinaryCounterReading self, int32_t value, int seqNumber, bool hasCarry, bool isAdjusted, bool isInvalid)
 
void BinaryCounterReading_destroy (BinaryCounterReading self)
 
int32_t BinaryCounterReading_getValue (BinaryCounterReading self)
 
void BinaryCounterReading_setValue (BinaryCounterReading self, int32_t value)
 
int BinaryCounterReading_getSequenceNumber (BinaryCounterReading self)
 
bool BinaryCounterReading_hasCarry (BinaryCounterReading self)
 
bool BinaryCounterReading_isAdjusted (BinaryCounterReading self)
 
bool BinaryCounterReading_isInvalid (BinaryCounterReading self)
 
void BinaryCounterReading_setSequenceNumber (BinaryCounterReading self, int value)
 
void BinaryCounterReading_setCarry (BinaryCounterReading self, bool value)
 
void BinaryCounterReading_setAdjusted (BinaryCounterReading self, bool value)
 
void BinaryCounterReading_setInvalid (BinaryCounterReading self, bool value)
 

CS101_NOF

NOF (Name of file) values

#define CS101_NOF_DEFAULT   0
 
#define CS101_NOF_TRANSPARENT_FILE   1
 
#define CS101_NOF_DISTURBANCE_DATA   2
 
#define CS101_NOF_SEQUENCES_OF_EVENTS   3
 
#define CS101_NOF_SEQUENCES_OF_ANALOGUE_VALUES   4
 

CS101_SCQ

SCQ (select and call qualifier) values

#define CS101_SCQ_DEFAULT   0
 
#define CS101_SCQ_SELECT_FILE   1
 
#define CS101_SCQ_REQUEST_FILE   2
 
#define CS101_SCQ_DEACTIVATE_FILE   3
 
#define CS101_SCQ_DELETE_FILE   4
 
#define CS101_SCQ_SELECT_SECTION   5
 
#define CS101_SCQ_REQUEST_SECTION   6
 
#define CS101_SCQ_DEACTIVATE_SECTION   7
 

CS101_LSQ

LSQ (last section or segment qualifier) values

#define CS101_LSQ_NOT_USED   0,
 
#define CS101_LSQ_FILE_TRANSFER_WITHOUT_DEACT   1
 
#define CS101_LSQ_FILE_TRANSFER_WITH_DEACT   2
 
#define CS101_LSQ_SECTION_TRANSFER_WITHOUT_DEACT   3
 
#define CS101_LSQ_SECTION_TRANSFER_WITH_DEACT   4
 

CS101_AFQ

AFQ (Acknowledge file or section qualifier) values

#define CS101_AFQ_NOT_USED   0
 AFQ not used.
 
#define CS101_AFQ_POS_ACK_FILE   1
 acknowledge file positively
 
#define CS101_AFQ_NEG_ACK_FILE   2
 acknowledge file negatively
 
#define CS101_AFQ_POS_ACK_SECTION   3
 acknowledge section positively
 
#define CS101_AFQ_NEG_ACK_SECTION   4
 acknowledge section negatively
 

CS101_FILE_ERROR

Error code values used by FileACK

#define CS101_FILE_ERROR_DEFAULT   0
 no error
 
#define CS101_FILE_ERROR_REQ_MEMORY_NOT_AVAILABLE   1
 requested memory not available (not enough memory)
 
#define CS101_FILE_ERROR_CHECKSUM_FAILED   2
 checksum test failed
 
#define CS101_FILE_ERROR_UNEXPECTED_COMM_SERVICE   3
 unexpected communication service
 
#define CS101_FILE_ERROR_UNEXPECTED_NAME_OF_FILE   4
 unexpected name of file
 
#define CS101_FILE_ERROR_UNEXPECTED_NAME_OF_SECTION   5
 unexpected name of section
 

CS101_SOF

Status of file (SOF) definitions - IEC 60870-5-101:2003 7.2.6.38

#define CS101_SOF_STATUS   0x1f
 bit mask value for STATUS part of SOF
 
#define CS101_SOF_LFD   0x20
 bit mask value for LFD (last file of the directory) flag
 
#define CS101_SOF_FOR   0x40
 bit mask value for FOR (name defines subdirectory) flag
 
#define CS101_SOF_FA   0x80
 bit mask value for FA (file transfer of this file is active) flag
 

Detailed Description

Typedef Documentation

◆ IEC60870_LinkLayerStateChangedHandler

typedef void(* IEC60870_LinkLayerStateChangedHandler) (void *parameter, int address, LinkLayerState newState)

Callback handler for link layer state changes.

Parameters
parameteruser provided parameter that is passed to the handler
addressslave address used by the link layer state machine (only relevant for unbalanced master)
newStatethe new link layer state

◆ IEC60870_RawMessageHandler

typedef void(* IEC60870_RawMessageHandler) (void *parameter, uint8_t *msg, int msgSize, bool sent)

Callback handler for sent and received messages.

This callback handler provides access to the raw message buffer of received or sent messages. It can be used for debugging purposes. Usually it is not used nor required for applications.

Parameters
parameteruser provided parameter
msgthe message buffer
msgSizesize of the message
sentindicates if the message was sent or received

◆ QualifierOfCIC

typedef uint8_t QualifierOfCIC

QCC (Qualifier of counter interrogation command) according to IEC 60870-5-101:2003 7.2.6.23.

The QCC is composed by the RQT(request) and the FRZ(Freeze) part

QCC = RQT + FRZ

E.g.

to read the the values from counter group one use:

QCC = IEC60870_QCC_RQT_GROUP_1 + IEC60870_QCC_FRZ_READ

to reset all counters use:

QCC = IEC60870_QCC_RQT_GENERAL + IEC60870_QCC_FRZ_COUNTER_RESET

◆ QualifierOfParameterMV

typedef uint8_t QualifierOfParameterMV

Qualifier of parameter of measured values (QPM) according to IEC 60870-5-101:2003 7.2.6.24.

Possible values: 0 = not used 1 = threshold value 2 = smoothing factor (filter time constant) 3 = low limit for transmission of measured values 4 = high limit for transmission of measured values 5..31 = reserved for standard definitions of CS101 (compatible range) 32..63 = reserved for special use (private range)

Enumeration Type Documentation

◆ LinkLayerState

State of the link layer.

Enumerator
LL_STATE_IDLE 

The link layer is idle, there is no communication

LL_STATE_ERROR 

An error has occurred at the link layer, the link may not be usable

LL_STATE_BUSY 

The link layer is busy and therefore no usable

LL_STATE_AVAILABLE 

The link is available for user data transmission and reception

Function Documentation

◆ CP56Time2a_getMonth()

int CP56Time2a_getMonth ( const CP56Time2a  self)

Get the month field of the time.

Returns
value the month (1..12)

◆ CP56Time2a_getYear()

int CP56Time2a_getYear ( const CP56Time2a  self)

Get the year (range 0..99)

Parameters
valuethe year (0..99)

◆ CP56Time2a_setMonth()

void CP56Time2a_setMonth ( CP56Time2a  self,
int  value 
)

Set the month field of the time.

Parameters
valuethe month (1..12)

◆ CP56Time2a_setYear()

void CP56Time2a_setYear ( CP56Time2a  self,
int  value 
)

Set the year.

Parameters
valuethe year

◆ CS101_ASDU_addInformationObject()

bool CS101_ASDU_addInformationObject ( CS101_ASDU  self,
InformationObject  io 
)

add an information object to the ASDU

NOTE: Only information objects of the exact same type can be added to a single ASDU!

Parameters
selfASDU object instance
ioinformation object to be added
Returns
true when added, false when there not enough space left in the ASDU or IO cannot be added to the sequence because of wrong IOA, or wrong type.

◆ CS101_ASDU_addPayload()

bool CS101_ASDU_addPayload ( CS101_ASDU  self,
uint8_t *  buffer,
int  size 
)

Append the provided data to the ASDU payload.

NOTE: Usually it is not required to call this function as the payload is set when the ASDU is parsed or when a new information object is added with CS101_ASDU_addInformationObject The function is intended to be only used by library extensions of for creating private ASDU types.

Parameters
bufferpointer to the payload data to add
sizenumber of bytes to append to the payload
Returns
true when data has been added, false otherwise

◆ CS101_ASDU_clone()

CS101_ASDU CS101_ASDU_clone ( CS101_ASDU  self,
CS101_StaticASDU  clone 
)

Create a new ASDU that is an exact copy of the ASDU.

Parameters
selfASDU instance to be copied
clonestatic ASDU instance where to store the cloned ASDU or NULL. When this parameter is NULL the function will allocate the memory for the clone
Returns
the cloned ASDU instance

◆ CS101_ASDU_create()

CS101_ASDU CS101_ASDU_create ( CS101_AppLayerParameters  parameters,
bool  isSequence,
CS101_CauseOfTransmission  cot,
int  oa,
int  ca,
bool  isTest,
bool  isNegative 
)

Create a new ASDU. The type ID will be derived from the first InformationObject that will be added.

Parameters
parametersthe application layer parameters used to encode the ASDU
isSequenceif the information objects will be encoded as a compact sequence of information objects with subsequent IOA values
cotcause of transmission (COT)
oaoriginator address (OA) to be used
cathe common address (CA) of the ASDU
isTestif the test flag will be set or not
isNegativeif the negative falg will be set or not
Returns
the new CS101_ASDU instance

◆ CS101_ASDU_getElement()

InformationObject CS101_ASDU_getElement ( CS101_ASDU  self,
int  index 
)

Get the information object with the given index.

Parameters
indexthe index of the information object (starting with 0)
Returns
the information object, or NULL if there is no information object with the given index

◆ CS101_ASDU_getElementEx()

InformationObject CS101_ASDU_getElementEx ( CS101_ASDU  self,
InformationObject  io,
int  index 
)

Get the information object with the given index and store it in the provided information object instance.

Parameters
ioif not NULL use the provided information object instance to store the information, has to be of correct type.
indexthe index of the information object (starting with 0)
Returns
the information object, or NULL if there is no information object with the given index

◆ CS101_ASDU_getNumberOfElements()

int CS101_ASDU_getNumberOfElements ( CS101_ASDU  self)

Get the number of information objects (elements) in the ASDU.

Returns
the number of information objects/element (valid range 0 - 127)

◆ CS101_ASDU_getPayload()

uint8_t* CS101_ASDU_getPayload ( CS101_ASDU  self)

Get the ASDU payload

The payload is the ASDU message part after the ASDU header (type ID, VSQ, COT, CASDU)

Returns
the ASDU payload buffer

◆ CS101_ASDU_getPayloadSize()

int CS101_ASDU_getPayloadSize ( CS101_ASDU  self)

Get the ASDU payload buffer size

The payload is the ASDU message part after the ASDU header (type ID, VSQ, COT, CASDU)

Returns
the ASDU payload buffer size

◆ CS101_ASDU_getTypeID()

IEC60870_5_TypeID CS101_ASDU_getTypeID ( CS101_ASDU  self)

Get the type ID of the ASDU.

Returns
the type ID to identify the ASDU type

◆ CS101_ASDU_initializeStatic()

CS101_ASDU CS101_ASDU_initializeStatic ( CS101_StaticASDU  self,
CS101_AppLayerParameters  parameters,
bool  isSequence,
CS101_CauseOfTransmission  cot,
int  oa,
int  ca,
bool  isTest,
bool  isNegative 
)

Create a new ASDU and store it in the provided static ASDU structure.

NOTE: The type ID will be derived from the first InformationObject that will be added.

Parameters
selfpointer to the statically allocated data structure
parametersthe application layer parameters used to encode the ASDU
isSequenceif the information objects will be encoded as a compact sequence of information objects with subsequent IOA values
cotcause of transmission (COT)
oaoriginator address (OA) to be used
cathe common address (CA) of the ASDU
isTestif the test flag will be set or not
isNegativeif the negative falg will be set or not
Returns
the new CS101_ASDU instance

◆ CS101_ASDU_isSequence()

bool CS101_ASDU_isSequence ( CS101_ASDU  self)

Check if the ASDU contains a sequence of consecutive information objects.

NOTE: in a sequence of consecutive information objects only the first information object address is encoded. The following information objects ahve consecutive information object addresses.

Returns
true when the ASDU represents a sequence of consecutive information objects, false otherwise

◆ CS101_ASDU_removeAllElements()

void CS101_ASDU_removeAllElements ( CS101_ASDU  self)

remove all information elements from the ASDU object

Parameters
selfASDU object instance

◆ CS101_ASDU_setCA()

void CS101_ASDU_setCA ( CS101_ASDU  self,
int  ca 
)

Set the common address (CA) of the ASDU.

Parameters
cathe ca in unstructured form

◆ CS101_ASDU_setNumberOfElements()

void CS101_ASDU_setNumberOfElements ( CS101_ASDU  self,
int  numberOfElements 
)

Set the number of information objects (elements) in the ASDU.

NOTE: Usually it is not required to call this function as the number of elements is set when the ASDU is parsed or when a new information object is added with CS101_ASDU_addInformationObject The function is intended to be used by library extensions of for creating private ASDU types.

Parameters
numberOfElementsthe number of information objects/element (valid range 0 - 127)

◆ CS101_ASDU_setSequence()

void CS101_ASDU_setSequence ( CS101_ASDU  self,
bool  isSequence 
)

Set the ASDU to represent a sequence of consecutive information objects.

NOTE: It is not required to use this function when constructing ASDUs as this information is already provided when calling one of the constructors CS101_ASDU_create or CS101_ASDU_initializeStatic

Parameters
isSequencespecify if the ASDU represents a sequence of consecutive information objects

◆ CS101_ASDU_setTypeID()

void CS101_ASDU_setTypeID ( CS101_ASDU  self,
IEC60870_5_TypeID  typeId 
)

Set the type ID of the ASDU.

NOTE: Usually it is not required to call this function as the type is determined when the ASDU is parsed or when a new information object is added with CS101_ASDU_addInformationObject The function is intended to be used by library extensions of for creating private ASDU types.

Parameters
typeIdthe type ID to identify the ASDU type

◆ DoubleCommand_create()

DoubleCommand DoubleCommand_create ( DoubleCommand  self,
int  ioa,
int  command,
bool  selectCommand,
int  qu 
)

Create a double command information object.

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]commandthe double command state (0 = not permitted, 1 = off, 2 = on, 3 = not permitted)
[in]selectCommand(S/E bit) if true send "select", otherwise "execute"
[in]ququalifier of command QU parameter(0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output)
Returns
the initialized instance

◆ DoubleCommand_getQU()

int DoubleCommand_getQU ( DoubleCommand  self)

Get the qualifier of command QU value.

Returns
the QU value (0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output, > 3 = reserved)

◆ DoubleCommand_getState()

int DoubleCommand_getState ( DoubleCommand  self)

Get the state (command) value.

Returns
0 = not permitted, 1 = off, 2 = on, 3 = not permitted

◆ DoubleCommand_isSelect()

bool DoubleCommand_isSelect ( DoubleCommand  self)

Return the value of the S/E bit of the qualifier of command.

Returns
S/E bit, true = select, false = execute

◆ FileReady_create()

FileReady FileReady_create ( FileReady  self,
int  ioa,
uint16_t  nof,
uint32_t  lengthOfFile,
bool  positive 
)

Create a new instance of FileReady information object.

For message type: F_FR_NA_1 (120)

Parameters
self
ioa
nofname of file (1 for transparent file)
lengthOfFile
positivewhen true file is ready to transmit

◆ InformationObject_destroy()

void InformationObject_destroy ( InformationObject  self)

Destroy object - free all related resources.

This is a virtual function that calls the destructor from the implementation class

\self the InformationObject instance

◆ InformationObject_getMaxSizeInMemory()

int InformationObject_getMaxSizeInMemory ( void  )

return the size in memory of a generic InformationObject instance

This function can be used to determine the required memory for malloc

◆ IntegratedTotals_create()

IntegratedTotals IntegratedTotals_create ( IntegratedTotals  self,
int  ioa,
const BinaryCounterReading  value 
)

Create a new instance of IntegratedTotals information object.

For message type: M_IT_NA_1 (15)

Parameters
selfReference to an existing instance to reuse, if NULL a new instance will we dynamically allocated
ioaInformation object address
valuebinary counter reading value and state
Returns
Reference to the new instance

◆ IntegratedTotalsWithCP24Time2a_create()

IntegratedTotalsWithCP24Time2a IntegratedTotalsWithCP24Time2a_create ( IntegratedTotalsWithCP24Time2a  self,
int  ioa,
const BinaryCounterReading  value,
const CP24Time2a  timestamp 
)

Create a new instance of IntegratedTotalsWithCP24Time2a information object.

For message type: M_IT_TA_1 (16)

Parameters
selfReference to an existing instance to reuse, if NULL a new instance will we dynamically allocated
ioaInformation object address
valuebinary counter reading value and state
timestamptimestamp of the reading
Returns
Reference to the new instance

◆ IntegratedTotalsWithCP56Time2a_create()

IntegratedTotalsWithCP56Time2a IntegratedTotalsWithCP56Time2a_create ( IntegratedTotalsWithCP56Time2a  self,
int  ioa,
const BinaryCounterReading  value,
const CP56Time2a  timestamp 
)

Create a new instance of IntegratedTotalsWithCP56Time2a information object.

For message type: M_IT_TB_1 (37)

Parameters
selfReference to an existing instance to reuse, if NULL a new instance will we dynamically allocated
ioaInformation object address
valuebinary counter reading value and state
timestamptimestamp of the reading
Returns
Reference to the new instance

◆ MeasuredValueScaled_create()

MeasuredValueScaled MeasuredValueScaled_create ( MeasuredValueScaled  self,
int  ioa,
int  value,
QualityDescriptor  quality 
)

Create a new instance of MeasuredValueScaled information object.

Parameters
selfReference to an existing instance to reuse, if NULL a new instance will we dynamically allocated
ioaInformation object address
valuescaled value (range -32768 - 32767)
qualityquality descriptor (according to IEC 60870-5-101:2003 7.2.6.3)
Returns
Reference to the new instance

◆ ParameterActivation_create()

ParameterActivation ParameterActivation_create ( ParameterActivation  self,
int  ioa,
QualifierOfParameterActivation  qpa 
)

Create a parameter activation (P_AC_NA_1) information object.

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]qpaqualifier of parameter activation (3 = act/deact of persistent cyclic or periodic transmission)
Returns
the initialized instance

◆ ParameterActivation_getQuality()

QualifierOfParameterActivation ParameterActivation_getQuality ( ParameterActivation  self)

Get the qualifier of parameter activation (QPA) value.

Returns
3 = act/deact of persistent cyclic or periodic transmission

◆ ParameterFloatValue_create()

ParameterFloatValue ParameterFloatValue_create ( ParameterFloatValue  self,
int  ioa,
float  value,
QualifierOfParameterMV  qpm 
)

Create a parameter measured values, short floating point (P_ME_NC_1) information object.

NOTE: Can only be used in control direction (with COT=ACTIVATION) or in monitoring direction as a response of an interrogation request (with COT=INTERROGATED_BY...).

Possible values of qpm: 0 = not used 1 = threshold value 2 = smoothing factor (filter time constant) 3 = low limit for transmission of measured values 4 = high limit for transmission of measured values 5..31 = reserved for standard definitions of CS101 (compatible range) 32..63 = reserved for special use (private range)

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]valueshort floating point number
[in]qpmqualifier of measured values (QPM - QualifierOfParameterMV)
Returns
the initialized instance

◆ ParameterFloatValue_getQPM()

QualifierOfParameterMV ParameterFloatValue_getQPM ( ParameterFloatValue  self)

Returns the qualifier of measured values (QPM)

Returns
the QPM value (QualifierOfParameterMV)

◆ ParameterNormalizedValue_create()

ParameterNormalizedValue ParameterNormalizedValue_create ( ParameterNormalizedValue  self,
int  ioa,
float  value,
QualifierOfParameterMV  qpm 
)

Create a parameter measured values, normalized (P_ME_NA_1) information object.

NOTE: Can only be used in control direction (with COT=ACTIVATION) or in monitoring direction as a response of an interrogation request (with COT=INTERROGATED_BY...).

Possible values of qpm: 0 = not used 1 = threshold value 2 = smoothing factor (filter time constant) 3 = low limit for transmission of measured values 4 = high limit for transmission of measured values 5..31 = reserved for standard definitions of CS101 (compatible range) 32..63 = reserved for special use (private range)

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]valuethe normalized value (-1 .. 1)
[in]qpmqualifier of measured values (QualifierOfParameterMV)
Returns
the initialized instance

◆ ParameterNormalizedValue_getQPM()

QualifierOfParameterMV ParameterNormalizedValue_getQPM ( ParameterNormalizedValue  self)

Returns the qualifier of measured values (QPM)

Returns
the QPM value (QualifierOfParameterMV)

◆ ParameterScaledValue_create()

ParameterScaledValue ParameterScaledValue_create ( ParameterScaledValue  self,
int  ioa,
int  value,
QualifierOfParameterMV  qpm 
)

Create a parameter measured values, scaled (P_ME_NB_1) information object.

NOTE: Can only be used in control direction (with COT=ACTIVATION) or in monitoring direction as a response of an interrogation request (with COT=INTERROGATED_BY...).

Possible values of qpm: 0 = not used 1 = threshold value 2 = smoothing factor (filter time constant) 3 = low limit for transmission of measured values 4 = high limit for transmission of measured values 5..31 = reserved for standard definitions of CS101 (compatible range) 32..63 = reserved for special use (private range)

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]valuethe scaled value (–32.768 .. 32.767)
[in]qpmqualifier of measured values (QualifierOfParameterMV)
Returns
the initialized instance

◆ ParameterScaledValue_getQPM()

QualifierOfParameterMV ParameterScaledValue_getQPM ( ParameterScaledValue  self)

Returns the qualifier of measured values (QPM)

Returns
the QPM value (QualifierOfParameterMV)

◆ SetpointCommandNormalized_create()

SetpointCommandNormalized SetpointCommandNormalized_create ( SetpointCommandNormalized  self,
int  ioa,
float  value,
bool  selectCommand,
int  ql 
)

Create a normalized set point command information object.

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]valuenormalized value between -1 and 1
[in]selectCommand(S/E bit) if true send "select", otherwise "execute"
[in]qlqualifier of set point command (0 = standard, 1..127 = reserved)
Returns
the initialized instance

◆ SetpointCommandNormalized_isSelect()

bool SetpointCommandNormalized_isSelect ( SetpointCommandNormalized  self)

Return the value of the S/E bit of the qualifier of command.

Returns
S/E bit, true = select, false = execute

◆ SetpointCommandScaled_create()

SetpointCommandScaled SetpointCommandScaled_create ( SetpointCommandScaled  self,
int  ioa,
int  value,
bool  selectCommand,
int  ql 
)

Create a scaled set point command information object.

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]valuethe scaled value (–32.768 .. 32.767)
[in]selectCommand(S/E bit) if true send "select", otherwise "execute"
[in]qlqualifier of set point command (0 = standard, 1..127 = reserved)
Returns
the initialized instance

◆ SetpointCommandScaled_isSelect()

bool SetpointCommandScaled_isSelect ( SetpointCommandScaled  self)

Return the value of the S/E bit of the qualifier of command.

Returns
S/E bit, true = select, false = execute

◆ SetpointCommandShort_create()

SetpointCommandShort SetpointCommandShort_create ( SetpointCommandShort  self,
int  ioa,
float  value,
bool  selectCommand,
int  ql 
)

Create a short floating point set point command information object.

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]valueshort floating point number
[in]selectCommand(S/E bit) if true send "select", otherwise "execute"
[in]qlqualifier of set point command (0 = standard, 1..127 = reserved)
Returns
the initialized instance

◆ SetpointCommandShort_isSelect()

bool SetpointCommandShort_isSelect ( SetpointCommandShort  self)

Return the value of the S/E bit of the qualifier of command.

Returns
S/E bit, true = select, false = execute

◆ SingleCommand_create()

SingleCommand SingleCommand_create ( SingleCommand  self,
int  ioa,
bool  command,
bool  selectCommand,
int  qu 
)

Create a single point command information object.

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]commandthe command value
[in]selectCommand(S/E bit) if true send "select", otherwise "execute"
[in]ququalifier of command QU parameter(0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output)
Returns
the initialized instance

◆ SingleCommand_getQU()

int SingleCommand_getQU ( SingleCommand  self)

Get the qualifier of command QU value.

Returns
the QU value (0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output, > 3 = reserved)

◆ SingleCommand_isSelect()

bool SingleCommand_isSelect ( SingleCommand  self)

Return the value of the S/E bit of the qualifier of command.

Returns
S/E bit, true = select, false = execute

◆ SingleCommandWithCP56Time2a_create()

SingleCommandWithCP56Time2a SingleCommandWithCP56Time2a_create ( SingleCommandWithCP56Time2a  self,
int  ioa,
bool  command,
bool  selectCommand,
int  qu,
const CP56Time2a  timestamp 
)

Create a single command with CP56Time2a time stamp information object.

Parameters
[in]selfexisting instance to reuse or NULL to create a new instance
[in]ioainformation object address
[in]commandthe command value
[in]selectCommand(S/E bit) if true send "select", otherwise "execute"
[in]ququalifier of command QU parameter(0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output)
[in]timestampthe time stamp value
Returns
the initialized instance

◆ SingleCommandWithCP56Time2a_getTimestamp()

CP56Time2a SingleCommandWithCP56Time2a_getTimestamp ( SingleCommandWithCP56Time2a  self)

Get the time stamp of the command.

NOTE: according to the specification the command shall not be accepted when the time stamp differs too much from the time of the receiving system. In this case the command has to be discarded silently.

Returns
the time stamp of the command

◆ StepCommand_getQU()

int StepCommand_getQU ( StepCommand  self)

Get the qualifier of command QU value.

Returns
the QU value (0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output, > 3 = reserved)

◆ StepCommand_isSelect()

bool StepCommand_isSelect ( StepCommand  self)

Return the value of the S/E bit of the qualifier of command.

Returns
S/E bit, true = select, false = execute

◆ StepPositionInformation_create()

StepPositionInformation StepPositionInformation_create ( StepPositionInformation  self,
int  ioa,
int  value,
bool  isTransient,
QualityDescriptor  quality 
)

Create a new instance of StepPositionInformation information object.

Parameters
selfReference to an existing instance to reuse, if NULL a new instance will we dynamically allocated
ioaInformation object address
valueStep position (range -64 ... +63)
isTransienttrue if position is transient, false otherwise
qualityquality descriptor (according to IEC 60870-5-101:2003 7.2.6.3)
Returns
Reference to the new instance

◆ TestCommandWithCP56Time2a_create()

TestCommandWithCP56Time2a TestCommandWithCP56Time2a_create ( TestCommandWithCP56Time2a  self,
uint16_t  tsc,
const CP56Time2a  timestamp 
)

Create a test command with CP56Time2a timestamp information object.

Parameters
[in]selfexisting instance to use or NULL to create a new instance
[in]tsctest sequence counter
[in]timestamp
Returns
the new or initialized instance