libIEC61850
1.0.0
Open-source IEC 61850 MMS/GOOSE/SV server and client library
|
#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 |
Functions | |
MmsValue * | MmsValue_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... | |
MmsValue * | MmsValue_getElement (const MmsValue *array, int index) |
Get an element of an array or structure. More... | |
MmsValue * | MmsValue_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... | |
MmsValue * | MmsValue_setUtcTime (MmsValue *self, uint32_t timeval) |
Update an MmsValue object of UtcTime type with a timestamp in s. More... | |
MmsValue * | MmsValue_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... | |
MmsValue * | MmsValue_newDataAccessError (MmsDataAccessError accessError) |
MmsValue * | MmsValue_newIntegerFromBerInteger (Asn1PrimitiveValue *berInteger) |
MmsValue * | MmsValue_newUnsignedFromBerInteger (Asn1PrimitiveValue *berInteger) |
MmsValue * | MmsValue_newInteger (int size) |
MmsValue * | MmsValue_newUnsigned (int size) |
MmsValue * | MmsValue_newBoolean (bool boolean) |
MmsValue * | MmsValue_newBitString (int bitSize) |
Create a new MmsValue instance of type MMS_BITSTRING. More... | |
MmsValue * | MmsValue_newOctetString (int size, int maxSize) |
MmsValue * | MmsValue_newStructure (const MmsVariableSpecification *typeSpec) |
MmsValue * | MmsValue_createEmptyStructure (int size) |
MmsValue * | MmsValue_newDefaultValue (const MmsVariableSpecification *typeSpec) |
MmsValue * | MmsValue_newIntegerFromInt8 (int8_t integer) |
MmsValue * | MmsValue_newIntegerFromInt16 (int16_t integer) |
MmsValue * | MmsValue_newIntegerFromInt32 (int32_t integer) |
MmsValue * | MmsValue_newIntegerFromInt64 (int64_t integer) |
MmsValue * | MmsValue_newUnsignedFromUint32 (uint32_t integer) |
MmsValue * | MmsValue_newFloat (float variable) |
MmsValue * | MmsValue_newDouble (double variable) |
MmsValue * | MmsValue_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... | |
MmsValue * | MmsValue_newVisibleString (const char *string) |
Create a new MmsValue instance of type MMS_VISIBLE_STRING. More... | |
MmsValue * | MmsValue_newVisibleStringWithSize (int size) |
Create a new MmsValue instance of type MMS_VISIBLE_STRING. More... | |
MmsValue * | MmsValue_newMmsStringWithSize (int size) |
Create a new MmsValue instance of type MMS_STRING. More... | |
MmsValue * | MmsValue_newBinaryTime (bool timeOfDay) |
Create a new MmsValue instance of type MMS_BINARYTIME. More... | |
MmsValue * | MmsValue_newVisibleStringFromByteArray (uint8_t *byteArray, int size) |
Create a new MmsValue instance of type MMS_VISIBLE_STRING from the specified byte array. More... | |
MmsValue * | MmsValue_newMmsStringFromByteArray (uint8_t *byteArray, int size) |
Create a new MmsValue instance of type MMS_STRING from the specified byte array. More... | |
MmsValue * | MmsValue_newMmsString (char *string) |
Create a new MmsValue instance of type MMS_STRING. More... | |
void | MmsValue_setMmsString (MmsValue *value, const char *string) |
MmsValue * | MmsValue_newUtcTime (uint32_t timeval) |
Create a new MmsValue instance of type MMS_UTCTIME. More... | |
MmsValue * | MmsValue_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... | |
MmsValue * | MmsValue_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... | |
MmsValue * | MmsValue_decodeMmsData (uint8_t *buffer, int bufPos, int bufferLength) |
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... | |