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

Go to the source code of this file.

Typedefs

typedef struct sMmsValue MmsValue
 

Enumerations

enum  MmsDataAccessError {
  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

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