libiec61850  1.6.0
Typedefs | Enumerations | Functions
mms_value.h File Reference
#include "libiec61850_common_api.h"
#include "mms_common.h"
#include "mms_types.h"

Go to the source code of this file.

Typedefs

typedef struct sMmsValue MmsValue
 

Enumerations

enum  MmsDataAccessError {
  DATA_ACCESS_ERROR_SUCCESS_NO_UPDATE = -3 , DATA_ACCESS_ERROR_NO_RESPONSE = -2 , DATA_ACCESS_ERROR_SUCCESS = -1 , DATA_ACCESS_ERROR_OBJECT_INVALIDATED = 0 ,
  DATA_ACCESS_ERROR_HARDWARE_FAULT = 1 , DATA_ACCESS_ERROR_TEMPORARILY_UNAVAILABLE = 2 , DATA_ACCESS_ERROR_OBJECT_ACCESS_DENIED = 3 , DATA_ACCESS_ERROR_OBJECT_UNDEFINED = 4 ,
  DATA_ACCESS_ERROR_INVALID_ADDRESS = 5 , DATA_ACCESS_ERROR_TYPE_UNSUPPORTED = 6 , DATA_ACCESS_ERROR_TYPE_INCONSISTENT = 7 , DATA_ACCESS_ERROR_OBJECT_ATTRIBUTE_INCONSISTENT = 8 ,
  DATA_ACCESS_ERROR_OBJECT_ACCESS_UNSUPPORTED = 9 , DATA_ACCESS_ERROR_OBJECT_NONE_EXISTENT = 10 , DATA_ACCESS_ERROR_OBJECT_VALUE_INVALID = 11 , DATA_ACCESS_ERROR_UNKNOWN = 12
}
 

Functions

LIB61850_API MmsValueMmsValue_createArray (const MmsVariableSpecification *elementType, int size)
 Create an Array and initialize elements with default values. More...
 
LIB61850_API uint32_t MmsValue_getArraySize (const MmsValue *self)
 Get the size of an array. More...
 
LIB61850_API MmsValueMmsValue_getElement (const MmsValue *array, int index)
 Get an element of an array or structure. More...
 
LIB61850_API MmsValueMmsValue_createEmptyArray (int size)
 Create an emtpy array. More...
 
LIB61850_API void MmsValue_setElement (MmsValue *complexValue, int index, MmsValue *elementValue)
 Set an element of a complex type. More...
 
LIB61850_API MmsDataAccessError MmsValue_getDataAccessError (const MmsValue *self)
 
LIB61850_API int64_t MmsValue_toInt64 (const MmsValue *self)
 Get the int64_t value of a MmsValue object. More...
 
LIB61850_API int32_t MmsValue_toInt32 (const MmsValue *value)
 Get the int32_t value of a MmsValue object. More...
 
LIB61850_API uint32_t MmsValue_toUint32 (const MmsValue *value)
 Get the uint32_t value of a MmsValue object. More...
 
LIB61850_API double MmsValue_toDouble (const MmsValue *self)
 Get the double value of a MmsValue object. More...
 
LIB61850_API float MmsValue_toFloat (const MmsValue *self)
 Get the float value of a MmsValue object. More...
 
LIB61850_API uint32_t MmsValue_toUnixTimestamp (const MmsValue *self)
 Get the unix timestamp of a MmsValue object of type MMS_UTCTIME. More...
 
LIB61850_API void MmsValue_setFloat (MmsValue *self, float newFloatValue)
 Set the float value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setDouble (MmsValue *self, double newFloatValue)
 Set the double value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setInt8 (MmsValue *value, int8_t integer)
 Set the Int8 value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setInt16 (MmsValue *value, int16_t integer)
 Set the Int16 value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setInt32 (MmsValue *self, int32_t integer)
 Set the Int32 value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setInt64 (MmsValue *value, int64_t integer)
 Set the Int64 value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setUint8 (MmsValue *value, uint8_t integer)
 Set the UInt8 value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setUint16 (MmsValue *value, uint16_t integer)
 Set the UInt16 value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setUint32 (MmsValue *value, uint32_t integer)
 Set the UInt32 value of a MmsValue object. More...
 
LIB61850_API void MmsValue_setBoolean (MmsValue *value, bool boolValue)
 Set the bool value of a MmsValue object. More...
 
LIB61850_API bool MmsValue_getBoolean (const MmsValue *value)
 Get the bool value of a MmsValue object. More...
 
LIB61850_API const char * MmsValue_toString (MmsValue *self)
 Returns the value of an MMS_VISIBLE_STRING object as C string. More...
 
LIB61850_API int MmsValue_getStringSize (MmsValue *self)
 Returns the (maximum) length of the string. More...
 
LIB61850_API void MmsValue_setVisibleString (MmsValue *self, const char *string)
 
LIB61850_API void MmsValue_setBitStringBit (MmsValue *self, int bitPos, bool value)
 Set a single bit (set to one) of an MmsType object of type MMS_BITSTRING. More...
 
LIB61850_API bool MmsValue_getBitStringBit (const MmsValue *self, int bitPos)
 Get the value of a single bit (set to one) of an MmsType object of type MMS_BITSTRING. More...
 
LIB61850_API void MmsValue_deleteAllBitStringBits (MmsValue *self)
 Delete all bits (set to zero) of an MmsType object of type MMS_BITSTRING. More...
 
LIB61850_API int MmsValue_getBitStringSize (const MmsValue *self)
 Get the size of a bit string in bits. More...
 
LIB61850_API int MmsValue_getBitStringByteSize (const MmsValue *self)
 Get the number of bytes required by this bitString. More...
 
LIB61850_API int MmsValue_getNumberOfSetBits (const MmsValue *self)
 Count the number of set bits in a bit string. More...
 
LIB61850_API void MmsValue_setAllBitStringBits (MmsValue *self)
 
LIB61850_API uint32_t MmsValue_getBitStringAsInteger (const MmsValue *self)
 Convert a bit string to an unsigned integer. More...
 
LIB61850_API void MmsValue_setBitStringFromInteger (MmsValue *self, uint32_t intValue)
 Convert an unsigned integer to a bit string. More...
 
LIB61850_API uint32_t MmsValue_getBitStringAsIntegerBigEndian (const MmsValue *self)
 Convert a bit string to an unsigned integer (big endian bit order) More...
 
LIB61850_API void MmsValue_setBitStringFromIntegerBigEndian (MmsValue *self, uint32_t intValue)
 Convert an unsigned integer to a bit string (big endian bit order) More...
 
LIB61850_API MmsValueMmsValue_setUtcTime (MmsValue *self, uint32_t timeval)
 Update an MmsValue object of UtcTime type with a timestamp in s. More...
 
LIB61850_API MmsValueMmsValue_setUtcTimeMs (MmsValue *self, uint64_t timeval)
 Update an MmsValue object of type MMS_UTCTIME with a millisecond time. More...
 
LIB61850_API void MmsValue_setUtcTimeByBuffer (MmsValue *self, const uint8_t *buffer)
 Update an MmsValue object of type MMS_UTCTIME with a buffer containing a BER encoded UTCTime. More...
 
LIB61850_API uint8_t * MmsValue_getUtcTimeBuffer (MmsValue *self)
 return the raw buffer containing the UTC time data More...
 
LIB61850_API uint64_t MmsValue_getUtcTimeInMs (const MmsValue *value)
 Get a millisecond time value from an MmsValue object of MMS_UTCTIME type. More...
 
LIB61850_API uint64_t MmsValue_getUtcTimeInMsWithUs (const MmsValue *self, uint32_t *usec)
 Get a millisecond time value and optional us part from an MmsValue object of MMS_UTCTIME type. More...
 
LIB61850_API void MmsValue_setUtcTimeQuality (MmsValue *self, uint8_t timeQuality)
 set the TimeQuality byte of the UtcTime More...
 
LIB61850_API MmsValueMmsValue_setUtcTimeMsEx (MmsValue *self, uint64_t timeval, uint8_t timeQuality)
 Update an MmsValue object of type MMS_UTCTIME with a millisecond time. More...
 
LIB61850_API uint8_t MmsValue_getUtcTimeQuality (const MmsValue *self)
 get the TimeQuality byte of the UtcTime More...
 
LIB61850_API void MmsValue_setBinaryTime (MmsValue *self, uint64_t timestamp)
 Update an MmsValue object of type MMS_BINARYTIME with a millisecond time. More...
 
LIB61850_API uint64_t MmsValue_getBinaryTimeAsUtcMs (const MmsValue *self)
 Get a millisecond time value from an MmsValue object of type MMS_BINARYTIME. More...
 
LIB61850_API void MmsValue_setOctetString (MmsValue *self, const uint8_t *buf, int size)
 Set the value of an MmsValue object of type MMS_OCTET_STRING. More...
 
LIB61850_API void MmsValue_setOctetStringOctet (MmsValue *self, int octetPos, uint8_t value)
 Set a single octet of an MmsValue object of type MMS_OCTET_STRING. More...
 
LIB61850_API uint16_t MmsValue_getOctetStringSize (const MmsValue *self)
 Returns the size in bytes of an MmsValue object of type MMS_OCTET_STRING. More...
 
LIB61850_API uint16_t MmsValue_getOctetStringMaxSize (MmsValue *self)
 Returns the maximum size in bytes of an MmsValue object of type MMS_OCTET_STRING. More...
 
LIB61850_API uint8_t * MmsValue_getOctetStringBuffer (MmsValue *self)
 Returns the reference to the internally hold buffer of an MmsValue object of type MMS_OCTET_STRING. More...
 
LIB61850_API uint8_t MmsValue_getOctetStringOctet (MmsValue *self, int octetPos)
 Get the value of a single octet of an MmsType object of type MMS_OCTET_STRING. More...
 
LIB61850_API bool MmsValue_update (MmsValue *self, const MmsValue *source)
 Update the value of an MmsValue instance by the value of another MmsValue instance. More...
 
LIB61850_API bool MmsValue_equals (const MmsValue *self, const MmsValue *otherValue)
 Check if two instances of MmsValue have the same value. More...
 
LIB61850_API bool MmsValue_equalTypes (const MmsValue *self, const MmsValue *otherValue)
 Check if two (complex) instances of MmsValue have the same type. More...
 
LIB61850_API MmsValueMmsValue_newDataAccessError (MmsDataAccessError accessError)
 
LIB61850_API MmsValueMmsValue_newInteger (int size)
 
LIB61850_API MmsValueMmsValue_newUnsigned (int size)
 
LIB61850_API MmsValueMmsValue_newBoolean (bool boolean)
 
LIB61850_API MmsValueMmsValue_newBitString (int bitSize)
 Create a new MmsValue instance of type MMS_BITSTRING. More...
 
LIB61850_API MmsValueMmsValue_newOctetString (int size, int maxSize)
 
LIB61850_API MmsValueMmsValue_newStructure (const MmsVariableSpecification *typeSpec)
 
LIB61850_API MmsValueMmsValue_createEmptyStructure (int size)
 
LIB61850_API MmsValueMmsValue_newDefaultValue (const MmsVariableSpecification *typeSpec)
 
LIB61850_API MmsValueMmsValue_newIntegerFromInt8 (int8_t integer)
 
LIB61850_API MmsValueMmsValue_newIntegerFromInt16 (int16_t integer)
 
LIB61850_API MmsValueMmsValue_newIntegerFromInt32 (int32_t integer)
 
LIB61850_API MmsValueMmsValue_newIntegerFromInt64 (int64_t integer)
 
LIB61850_API MmsValueMmsValue_newUnsignedFromUint32 (uint32_t integer)
 
LIB61850_API MmsValueMmsValue_newFloat (float value)
 Create a new 32 bit wide float variable and initialize with value. More...
 
LIB61850_API MmsValueMmsValue_newDouble (double value)
 Create a new 64 bit wide float variable and initialize with value. More...
 
LIB61850_API MmsValueMmsValue_clone (const MmsValue *self)
 Create a (deep) copy of an MmsValue instance. More...
 
LIB61850_API uint8_t * MmsValue_cloneToBuffer (const MmsValue *self, uint8_t *destinationAddress)
 Create a (deep) copy of an MmsValue instance in a user provided buffer. More...
 
LIB61850_API int MmsValue_getSizeInMemory (const MmsValue *self)
 Determine the required amount of bytes by a clone. More...
 
LIB61850_API void MmsValue_delete (MmsValue *self)
 Delete an MmsValue instance. More...
 
LIB61850_API void MmsValue_deleteConditional (MmsValue *value)
 Delete an MmsValue instance. More...
 
LIB61850_API MmsValueMmsValue_newVisibleString (const char *string)
 Create a new MmsValue instance of type MMS_VISIBLE_STRING. More...
 
LIB61850_API MmsValueMmsValue_newVisibleStringWithSize (int size)
 Create a new MmsValue instance of type MMS_VISIBLE_STRING. More...
 
LIB61850_API MmsValueMmsValue_newMmsStringWithSize (int size)
 Create a new MmsValue instance of type MMS_STRING. More...
 
LIB61850_API MmsValueMmsValue_newBinaryTime (bool timeOfDay)
 Create a new MmsValue instance of type MMS_BINARYTIME. More...
 
LIB61850_API MmsValueMmsValue_newVisibleStringFromByteArray (const uint8_t *byteArray, int size)
 Create a new MmsValue instance of type MMS_VISIBLE_STRING from the specified byte array. More...
 
LIB61850_API MmsValueMmsValue_newMmsStringFromByteArray (const uint8_t *byteArray, int size)
 Create a new MmsValue instance of type MMS_STRING from the specified byte array. More...
 
LIB61850_API MmsValueMmsValue_newMmsString (const char *string)
 Create a new MmsValue instance of type MMS_STRING. More...
 
LIB61850_API void MmsValue_setMmsString (MmsValue *value, const char *string)
 Set the value of MmsValue instance of type MMS_STRING. More...
 
LIB61850_API MmsValueMmsValue_newUtcTime (uint32_t timeval)
 Create a new MmsValue instance of type MMS_UTCTIME. More...
 
LIB61850_API MmsValueMmsValue_newUtcTimeByMsTime (uint64_t timeval)
 Create a new MmsValue instance of type MMS_UTCTIME. More...
 
LIB61850_API void MmsValue_setDeletable (MmsValue *self)
 
LIB61850_API void MmsValue_setDeletableRecursive (MmsValue *value)
 
LIB61850_API int MmsValue_isDeletable (MmsValue *self)
 Check if the MmsValue instance has the deletable flag set. More...
 
LIB61850_API MmsType MmsValue_getType (const MmsValue *self)
 Get the MmsType of an MmsValue instance. More...
 
LIB61850_API MmsValueMmsValue_getSubElement (MmsValue *self, MmsVariableSpecification *varSpec, char *mmsPath)
 Get a sub-element of a MMS_STRUCTURE value specified by a path name. More...
 
LIB61850_API char * MmsValue_getTypeString (MmsValue *self)
 return the value type as a human readable string More...
 
LIB61850_API const char * MmsValue_printToBuffer (const MmsValue *self, char *buffer, int bufferSize)
 create a string representation of the MmsValue object in the provided buffer More...
 
LIB61850_API MmsValueMmsValue_decodeMmsData (uint8_t *buffer, int bufPos, int bufferLength, int *endBufPos)
 create a new MmsValue instance from a BER encoded MMS Data element (deserialize) More...
 
LIB61850_API MmsValueMmsValue_decodeMmsDataMaxRecursion (uint8_t *buffer, int bufPos, int bufferLength, int *endBufPos, int maxDepth)
 create a new MmsValue instance from a BER encoded MMS Data element (deserialize) with a defined maximum recursion depth More...
 
LIB61850_API int MmsValue_encodeMmsData (MmsValue *self, uint8_t *buffer, int bufPos, bool encode)
 Serialize the MmsValue instance as BER encoded MMS Data element. More...
 
LIB61850_API int MmsValue_getMaxEncodedSize (MmsValue *self)
 Get the maximum possible BER encoded size of the MMS data element. More...
 
LIB61850_API int MmsVariableSpecification_getMaxEncodedSize (MmsVariableSpecification *self)
 Calculate the maximum encoded size of a variable of this type. More...