31 #include "libiec61850_common_api.h" 34 #include "ber_integer.h" double MmsValue_toDouble(const MmsValue *self)
Get the double value of a MmsValue object.
uint64_t MmsValue_getUtcTimeInMs(const MmsValue *value)
Get a millisecond time value from an MmsValue object of MMS_UTCTIME type.
MmsValue * MmsValue_newUnsignedFromUint32(uint32_t integer)
Definition: mms_value.h:55
MmsValue * MmsValue_newIntegerFromInt64(int64_t integer)
void MmsValue_setBitStringBit(MmsValue *self, int bitPos, bool value)
Set a single bit (set to one) of an MmsType object of type MMS_BITSTRING.
Definition: mms_value.h:56
bool MmsValue_getBoolean(const MmsValue *value)
Get the bool value of a MmsValue object.
void MmsValue_setAllBitStringBits(MmsValue *self)
int32_t MmsValue_toInt32(const MmsValue *value)
Get the int32_t value of a MmsValue object.
uint8_t * MmsValue_getUtcTimeBuffer(MmsValue *self)
return the raw buffer containing the UTC time data
int MmsValue_encodeMmsData(MmsValue *self, uint8_t *buffer, int bufPos, bool encode)
Serialize the MmsValue instance as BER encoded MMS Data element.
void MmsValue_setBinaryTime(MmsValue *self, uint64_t timestamp)
Update an MmsValue object of type MMS_BINARYTIME with a millisecond time.
int64_t MmsValue_toInt64(const MmsValue *self)
Get the int64_t value of a MmsValue object.
uint32_t MmsValue_toUint32(const MmsValue *value)
Get the uint32_t value of a MmsValue object.
void MmsValue_setDouble(MmsValue *self, double newFloatValue)
Set the double value of a MmsValue object.
MmsValue * MmsValue_newVisibleStringWithSize(int size)
Create a new MmsValue instance of type MMS_VISIBLE_STRING.
uint32_t MmsValue_getBitStringAsInteger(const MmsValue *self)
Convert a bit string to an unsigned integer.
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...
MmsValue * MmsValue_newIntegerFromInt32(int32_t integer)
Definition: mms_value.h:57
MmsValue * MmsValue_clone(const MmsValue *self)
Create a (deep) copy of an MmsValue instance.
int MmsValue_getSizeInMemory(const MmsValue *self)
Determine the required amount of bytes by a clone.
uint8_t * MmsValue_getOctetStringBuffer(MmsValue *self)
Returns the reference to the internally hold buffer of an MmsValue object of type MMS_OCTET_STRING...
bool MmsValue_update(MmsValue *self, const MmsValue *source)
Update the value of an MmsValue instance by the value of another MmsValue instance.
MmsValue * MmsValue_createArray(MmsVariableSpecification *elementType, int size)
Create an Array and initialize elements with default values.
MmsValue * MmsValue_newStructure(const MmsVariableSpecification *typeSpec)
MmsValue * MmsValue_newIntegerFromInt8(int8_t integer)
char * MmsValue_getTypeString(MmsValue *self)
return the value type as a human readable string
void MmsValue_setUint16(MmsValue *value, uint16_t integer)
Set the UInt16 value of a MmsValue object.
MmsValue * MmsValue_newFloat(float variable)
float MmsValue_toFloat(const MmsValue *self)
Get the float value of a MmsValue object.
int MmsValue_getBitStringSize(const MmsValue *self)
Get the size of a bit string in bits.
int MmsValue_getNumberOfSetBits(const MmsValue *self)
Count the number of set bits in a bit string.
bool MmsValue_equalTypes(const MmsValue *self, const MmsValue *otherValue)
Check if two (complex) instances of MmsValue have the same type.
Definition: mms_value.h:52
uint32_t MmsValue_getArraySize(const MmsValue *self)
Get the size of an array.
Definition: mms_value.h:58
void MmsValue_setUint8(MmsValue *value, uint8_t integer)
Set the UInt8 value of a MmsValue object.
Definition: mms_value.h:50
MmsValue * MmsValue_newBoolean(bool boolean)
MmsValue * MmsValue_getElement(const MmsValue *array, int index)
Get an element of an array or structure.
MmsValue * MmsValue_newVisibleString(const char *string)
Create a new MmsValue instance of type MMS_VISIBLE_STRING.
Definition: mms_value.h:62
void MmsValue_setOctetString(MmsValue *self, uint8_t *buf, int size)
Set the value of an MmsValue object of type MMS_OCTET_STRING.
Definition: mms_value.h:51
void MmsValue_delete(MmsValue *self)
Delete an MmsValue instance.
MmsValue * MmsValue_newBitString(int bitSize)
Create a new MmsValue instance of type MMS_BITSTRING.
uint32_t MmsValue_getBitStringAsIntegerBigEndian(const MmsValue *self)
Convert a bit string to an unsigned integer (big endian bit order)
MmsValue * MmsValue_getSubElement(MmsValue *self, MmsVariableSpecification *varSpec, char *mmsPath)
Get a sub-element of a MMS_STRUCTURE value specified by a path name.
void MmsValue_setElement(MmsValue *complexValue, int index, MmsValue *elementValue)
Set an element of a complex type.
uint8_t * MmsValue_cloneToBuffer(const MmsValue *self, uint8_t *destinationAddress)
Create a (deep) copy of an MmsValue instance in a user provided buffer.
MmsValue * MmsValue_setUtcTime(MmsValue *self, uint32_t timeval)
Update an MmsValue object of UtcTime type with a timestamp in s.
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.
uint16_t MmsValue_getOctetStringSize(const MmsValue *self)
Returns the size in bytes of an MmsValue object of type MMS_OCTET_STRING.
void MmsValue_setBitStringFromInteger(MmsValue *self, uint32_t intValue)
Convert an unsigned integer to a bit string.
MmsValue * MmsValue_decodeMmsData(uint8_t *buffer, int bufPos, int bufferLength, int *endBufPos)
create a new MmsValue instance from a BER encoded MMS Data element (deserialize)
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...
MmsValue * MmsValue_newMmsString(char *string)
Create a new MmsValue instance of type MMS_STRING.
MmsValue * MmsValue_newUnsigned(int size)
MmsValue * MmsValue_newIntegerFromBerInteger(Asn1PrimitiveValue *berInteger)
void MmsValue_setUtcTimeQuality(MmsValue *self, uint8_t timeQuality)
set the TimeQuality byte of the UtcTime
Definition: mms_value.h:61
MmsValue * MmsValue_newUtcTime(uint32_t timeval)
Create a new MmsValue instance of type MMS_UTCTIME.
const char * MmsValue_printToBuffer(const MmsValue *self, char *buffer, int bufferSize)
create a string representation of the MmsValue object in the provided buffer
bool MmsValue_equals(const MmsValue *self, const MmsValue *otherValue)
Check if two instances of MmsValue have the same value.
MmsValue * MmsValue_setUtcTimeMs(MmsValue *self, uint64_t timeval)
Update an MmsValue object of type MMS_UTCTIME with a millisecond time.
MmsValue * MmsValue_newUnsignedFromBerInteger(Asn1PrimitiveValue *berInteger)
void MmsValue_setInt64(MmsValue *value, int64_t integer)
Set the Int64 value of a MmsValue object.
int MmsValue_isDeletable(MmsValue *self)
Check if the MmsValue instance has the deletable flag set.
MmsValue * MmsValue_newDataAccessError(MmsDataAccessError accessError)
void MmsValue_setVisibleString(MmsValue *self, const char *string)
const char * MmsValue_toString(MmsValue *self)
Returns the value of an MMS_VISIBLE_STRING object as C string.
int MmsValue_getStringSize(MmsValue *self)
Returns the (maximum) length of the string.
MmsValue * MmsValue_newVisibleStringFromByteArray(uint8_t *byteArray, int size)
Create a new MmsValue instance of type MMS_VISIBLE_STRING from the specified byte array...
void MmsValue_setFloat(MmsValue *self, float newFloatValue)
Set the float value of a MmsValue object.
void MmsValue_setDeletable(MmsValue *self)
MmsDataAccessError
Definition: mms_value.h:47
void MmsValue_setInt32(MmsValue *self, int32_t integer)
Set the Int32 value of a MmsValue object.
MmsValue * MmsValue_newBinaryTime(bool timeOfDay)
Create a new MmsValue instance of type MMS_BINARYTIME.
MmsDataAccessError MmsValue_getDataAccessError(const MmsValue *self)
void MmsValue_deleteAllBitStringBits(MmsValue *self)
Delete all bits (set to zero) of an MmsType object of type MMS_BITSTRING.
MmsValue * MmsValue_newMmsStringWithSize(int size)
Create a new MmsValue instance of type MMS_STRING.
uint8_t MmsValue_getUtcTimeQuality(const MmsValue *self)
get the TimeQuality byte of the UtcTime
Definition: mms_value.h:59
void MmsValue_setBitStringFromIntegerBigEndian(MmsValue *self, uint32_t intValue)
Convert an unsigned integer to a bit string (big endian bit order)
void MmsValue_deleteConditional(MmsValue *value)
Delete an MmsValue instance.
MmsValue * MmsValue_newOctetString(int size, int maxSize)
uint64_t MmsValue_getBinaryTimeAsUtcMs(const MmsValue *self)
Get a millisecond time value from an MmsValue object of type MMS_BINARYTIME.
MmsValue * MmsValue_newDefaultValue(const MmsVariableSpecification *typeSpec)
void MmsValue_setDeletableRecursive(MmsValue *value)
MmsValue * MmsValue_createEmptyStructure(int size)
uint32_t MmsValue_toUnixTimestamp(const MmsValue *self)
Get the unix timestamp of a MmsValue object of type MMS_UTCTIME.
uint16_t MmsValue_getOctetStringMaxSize(MmsValue *self)
Returns the maximum size in bytes of an MmsValue object of type MMS_OCTET_STRING. ...
MmsValue * MmsValue_newMmsStringFromByteArray(uint8_t *byteArray, int size)
Create a new MmsValue instance of type MMS_STRING from the specified byte array.
void MmsValue_setInt16(MmsValue *value, int16_t integer)
Set the Int16 value of a MmsValue object.
void MmsValue_deleteIfNotNull(MmsValue *value)
Delete an MmsValue instance if the provided pointer is not NULL.
Definition: mms_value.h:60
Definition: mms_value.h:53
void MmsValue_setBoolean(MmsValue *value, bool boolValue)
Set the bool value of a MmsValue object.
MmsValue * MmsValue_newDouble(double variable)
Definition: mms_value.h:48
MmsValue * MmsValue_createEmptyArray(int size)
Create an emtpy array.
Definition: mms_value.h:49
void MmsValue_setMmsString(MmsValue *value, const char *string)
void MmsValue_setUint32(MmsValue *value, uint32_t integer)
Set the UInt32 value of a MmsValue object.
MmsValue * MmsValue_newUtcTimeByMsTime(uint64_t timeval)
Create a new MmsValue instance of type MMS_UTCTIME.
MmsType MmsValue_getType(const MmsValue *self)
Get the MmsType of an MmsValue instance.
MmsValue * MmsValue_newInteger(int size)
int MmsValue_getBitStringByteSize(const MmsValue *self)
Get the number of bytes required by this bitString.
void MmsValue_setInt8(MmsValue *value, int8_t integer)
Set the Int8 value of a MmsValue object.
Definition: mms_value.h:54
struct sMmsValue MmsValue
Definition: mms_value.h:68
MmsType
Definition: mms_common.h:105
MmsValue * MmsValue_newIntegerFromInt16(int16_t integer)