libiec61850  1.5.3
mms_value.h
Go to the documentation of this file.
1 /*
2  * mms_value.h
3  *
4  * Copyright 2013-2018 Michael Zillgith
5  *
6  * This file is part of libIEC61850.
7  *
8  * libIEC61850 is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * libIEC61850 is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * See COPYING file for the complete license text.
22  */
23 
24 #ifndef MMS_VALUE_H_
25 #define MMS_VALUE_H_
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #include "libiec61850_common_api.h"
32 #include "mms_common.h"
33 #include "mms_types.h"
34 
46 typedef enum {
48  DATA_ACCESS_ERROR_NO_RESPONSE = -2, /* for server internal purposes only! */
64 
68 typedef struct sMmsValue MmsValue;
69 
70 /*************************************************************************************
71  * Array functions
72  *************************************************************************************/
73 
82 LIB61850_API MmsValue*
83 MmsValue_createArray(const MmsVariableSpecification* elementType, int size);
84 
92 LIB61850_API uint32_t
94 
103 LIB61850_API MmsValue*
104 MmsValue_getElement(const MmsValue* array, int index);
105 
113 LIB61850_API MmsValue*
115 
126 LIB61850_API void
127 MmsValue_setElement(MmsValue* complexValue, int index, MmsValue* elementValue);
128 
129 
130 /*************************************************************************************
131  * Basic type functions
132  *************************************************************************************/
133 
134 LIB61850_API MmsDataAccessError
136 
144 LIB61850_API int64_t
146 
154 LIB61850_API int32_t
156 
164 LIB61850_API uint32_t
166 
174 LIB61850_API double
176 
184 LIB61850_API float
186 
194 LIB61850_API uint32_t
196 
202 LIB61850_API void
203 MmsValue_setFloat(MmsValue* self, float newFloatValue);
204 
210 LIB61850_API void
211 MmsValue_setDouble(MmsValue* self, double newFloatValue);
212 
219 LIB61850_API void
220 MmsValue_setInt8(MmsValue* value, int8_t integer);
221 
228 LIB61850_API void
229 MmsValue_setInt16(MmsValue* value, int16_t integer);
230 
237 LIB61850_API void
238 MmsValue_setInt32(MmsValue* self, int32_t integer);
239 
246 LIB61850_API void
247 MmsValue_setInt64(MmsValue* value, int64_t integer);
248 
255 LIB61850_API void
256 MmsValue_setUint8(MmsValue* value, uint8_t integer);
257 
264 LIB61850_API void
265 MmsValue_setUint16(MmsValue* value, uint16_t integer);
266 
273 LIB61850_API void
274 MmsValue_setUint32(MmsValue* value, uint32_t integer);
275 
276 
283 LIB61850_API void
284 MmsValue_setBoolean(MmsValue* value, bool boolValue);
285 
292 LIB61850_API bool
294 
302 LIB61850_API const char*
304 
312 LIB61850_API int
314 
315 LIB61850_API void
316 MmsValue_setVisibleString(MmsValue* self, const char* string);
317 
318 
327 LIB61850_API void
328 MmsValue_setBitStringBit(MmsValue* self, int bitPos, bool value);
329 
338 LIB61850_API bool
339 MmsValue_getBitStringBit(const MmsValue* self, int bitPos);
340 
346 LIB61850_API void
348 
349 
355 LIB61850_API int
357 
363 LIB61850_API int
365 
371 LIB61850_API int
373 
379 LIB61850_API void
381 
390 LIB61850_API uint32_t
392 
402 LIB61850_API void
403 MmsValue_setBitStringFromInteger(MmsValue* self, uint32_t intValue);
404 
413 LIB61850_API uint32_t
415 
425 LIB61850_API void
427 
434 LIB61850_API MmsValue*
435 MmsValue_setUtcTime(MmsValue* self, uint32_t timeval);
436 
443 LIB61850_API MmsValue*
444 MmsValue_setUtcTimeMs(MmsValue* self, uint64_t timeval);
445 
454 LIB61850_API void
455 MmsValue_setUtcTimeByBuffer(MmsValue* self, const uint8_t* buffer);
456 
466 LIB61850_API uint8_t*
468 
476 LIB61850_API uint64_t
478 
487 LIB61850_API uint64_t
488 MmsValue_getUtcTimeInMsWithUs(const MmsValue* self, uint32_t* usec);
489 
503 LIB61850_API void
504 MmsValue_setUtcTimeQuality(MmsValue* self, uint8_t timeQuality);
505 
522 LIB61850_API MmsValue*
523 MmsValue_setUtcTimeMsEx(MmsValue* self, uint64_t timeval, uint8_t timeQuality);
524 
539 LIB61850_API uint8_t
541 
548 LIB61850_API void
549 MmsValue_setBinaryTime(MmsValue* self, uint64_t timestamp);
550 
558 LIB61850_API uint64_t
560 
572 LIB61850_API void
573 MmsValue_setOctetString(MmsValue* self, const uint8_t* buf, int size);
574 
587 LIB61850_API void
588 MmsValue_setOctetStringOctet(MmsValue* self, int octetPos, uint8_t value);
589 
600 LIB61850_API uint16_t
602 
613 LIB61850_API uint16_t
615 
625 LIB61850_API uint8_t*
627 
639 LIB61850_API uint8_t
641 
653 LIB61850_API bool
654 MmsValue_update(MmsValue* self, const MmsValue* source);
655 
667 LIB61850_API bool
668 MmsValue_equals(const MmsValue* self, const MmsValue* otherValue);
669 
682 LIB61850_API bool
683 MmsValue_equalTypes(const MmsValue* self, const MmsValue* otherValue);
684 
685 /*************************************************************************************
686  * Constructors and destructors
687  *************************************************************************************/
688 
689 
690 LIB61850_API MmsValue*
692 
693 LIB61850_API MmsValue*
695 
696 LIB61850_API MmsValue*
698 
699 LIB61850_API MmsValue*
700 MmsValue_newBoolean(bool boolean);
701 
709 LIB61850_API MmsValue*
711 
712 LIB61850_API MmsValue*
713 MmsValue_newOctetString(int size, int maxSize);
714 
715 LIB61850_API MmsValue*
716 MmsValue_newStructure(const MmsVariableSpecification* typeSpec);
717 
718 LIB61850_API MmsValue*
720 
721 LIB61850_API MmsValue*
722 MmsValue_newDefaultValue(const MmsVariableSpecification* typeSpec);
723 
724 LIB61850_API MmsValue*
726 
727 LIB61850_API MmsValue*
729 
730 LIB61850_API MmsValue*
732 
733 LIB61850_API MmsValue*
735 
736 LIB61850_API MmsValue*
738 
746 LIB61850_API MmsValue*
747 MmsValue_newFloat(float value);
748 
756 LIB61850_API MmsValue*
757 MmsValue_newDouble(double value);
758 
769 LIB61850_API MmsValue*
771 
782 LIB61850_API uint8_t*
783 MmsValue_cloneToBuffer(const MmsValue* self, uint8_t* destinationAddress);
784 
795 LIB61850_API int
797 
807 LIB61850_API void
809 
822 LIB61850_API void
824 
835 LIB61850_API MmsValue*
836 MmsValue_newVisibleString(const char* string);
837 
849 LIB61850_API MmsValue*
851 
863 LIB61850_API MmsValue*
865 
877 LIB61850_API MmsValue*
878 MmsValue_newBinaryTime(bool timeOfDay);
879 
888 LIB61850_API MmsValue*
889 MmsValue_newVisibleStringFromByteArray(const uint8_t* byteArray, int size);
890 
899 LIB61850_API MmsValue*
900 MmsValue_newMmsStringFromByteArray(const uint8_t* byteArray, int size);
901 
909 LIB61850_API MmsValue*
910 MmsValue_newMmsString(const char* string);
911 
917 LIB61850_API void
918 MmsValue_setMmsString(MmsValue* value, const char* string);
919 
927 LIB61850_API MmsValue*
928 MmsValue_newUtcTime(uint32_t timeval);
929 
937 LIB61850_API MmsValue*
938 MmsValue_newUtcTimeByMsTime(uint64_t timeval);
939 
940 
941 LIB61850_API void
943 
944 LIB61850_API void
946 
958 LIB61850_API int
960 
966 LIB61850_API MmsType
968 
978 LIB61850_API MmsValue*
979 MmsValue_getSubElement(MmsValue* self, MmsVariableSpecification* varSpec, char* mmsPath);
980 
988 LIB61850_API char*
990 
1003 LIB61850_API const char*
1004 MmsValue_printToBuffer(const MmsValue* self, char* buffer, int bufferSize);
1005 
1018 LIB61850_API MmsValue*
1019 MmsValue_decodeMmsData(uint8_t* buffer, int bufPos, int bufferLength, int* endBufPos);
1020 
1032 LIB61850_API int
1033 MmsValue_encodeMmsData(MmsValue* self, uint8_t* buffer, int bufPos, bool encode);
1034 
1042 LIB61850_API int
1044 
1050 LIB61850_API int
1051 MmsVariableSpecification_getMaxEncodedSize(MmsVariableSpecification* self);
1052 
1057 #ifdef __cplusplus
1058 }
1059 #endif
1060 
1061 #endif /* MMS_VALUE_H_ */
LIB61850_API int MmsVariableSpecification_getMaxEncodedSize(MmsVariableSpecification *self)
Calculate the maximum encoded size of a variable of this type.
LIB61850_API MmsValue * MmsValue_newBinaryTime(bool timeOfDay)
Create a new MmsValue instance of type MMS_BINARYTIME.
LIB61850_API void MmsValue_setBitStringFromIntegerBigEndian(MmsValue *self, uint32_t intValue)
Convert an unsigned integer to a bit string (big endian bit order)
LIB61850_API MmsValue * MmsValue_setUtcTimeMs(MmsValue *self, uint64_t timeval)
Update an MmsValue object of type MMS_UTCTIME with a millisecond time.
LIB61850_API MmsValue * MmsValue_newIntegerFromInt8(int8_t integer)
LIB61850_API float MmsValue_toFloat(const MmsValue *self)
Get the float value of a MmsValue object.
LIB61850_API uint64_t MmsValue_getBinaryTimeAsUtcMs(const MmsValue *self)
Get a millisecond time value from an MmsValue object of type MMS_BINARYTIME.
LIB61850_API void MmsValue_setInt64(MmsValue *value, int64_t integer)
Set the Int64 value of a MmsValue object.
LIB61850_API MmsValue * MmsValue_newBitString(int bitSize)
Create a new MmsValue instance of type MMS_BITSTRING.
LIB61850_API void MmsValue_setBitStringFromInteger(MmsValue *self, uint32_t intValue)
Convert an unsigned integer to a bit string.
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.
LIB61850_API int MmsValue_getBitStringByteSize(const MmsValue *self)
Get the number of bytes required by this bitString.
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.
LIB61850_API char * MmsValue_getTypeString(MmsValue *self)
return the value type as a human readable string
LIB61850_API void MmsValue_setDeletable(MmsValue *self)
LIB61850_API bool MmsValue_equalTypes(const MmsValue *self, const MmsValue *otherValue)
Check if two (complex) instances of MmsValue have the same type.
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.
LIB61850_API MmsValue * MmsValue_newMmsString(const char *string)
Create a new MmsValue instance of type MMS_STRING.
LIB61850_API bool MmsValue_update(MmsValue *self, const MmsValue *source)
Update the value of an MmsValue instance by the value of another MmsValue instance.
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.
LIB61850_API bool MmsValue_getBoolean(const MmsValue *value)
Get the bool value of a MmsValue object.
LIB61850_API int MmsValue_encodeMmsData(MmsValue *self, uint8_t *buffer, int bufPos, bool encode)
Serialize the MmsValue instance as BER encoded MMS Data element.
LIB61850_API MmsValue * MmsValue_newDataAccessError(MmsDataAccessError accessError)
LIB61850_API MmsValue * MmsValue_newBoolean(bool boolean)
LIB61850_API uint8_t MmsValue_getUtcTimeQuality(const MmsValue *self)
get the TimeQuality byte of the UtcTime
LIB61850_API MmsValue * MmsValue_newOctetString(int size, int maxSize)
LIB61850_API void MmsValue_setDeletableRecursive(MmsValue *value)
LIB61850_API MmsDataAccessError MmsValue_getDataAccessError(const MmsValue *self)
LIB61850_API void MmsValue_setVisibleString(MmsValue *self, const char *string)
LIB61850_API int MmsValue_getNumberOfSetBits(const MmsValue *self)
Count the number of set bits in a bit string.
LIB61850_API void MmsValue_setDouble(MmsValue *self, double newFloatValue)
Set the double value of a MmsValue object.
LIB61850_API MmsValue * MmsValue_newStructure(const MmsVariableSpecification *typeSpec)
LIB61850_API int MmsValue_getStringSize(MmsValue *self)
Returns the (maximum) length of the string.
LIB61850_API void MmsValue_setBoolean(MmsValue *value, bool boolValue)
Set the bool value of a MmsValue object.
LIB61850_API int32_t MmsValue_toInt32(const MmsValue *value)
Get the int32_t value of a MmsValue object.
LIB61850_API MmsValue * MmsValue_createEmptyStructure(int size)
LIB61850_API MmsValue * MmsValue_newVisibleString(const char *string)
Create a new MmsValue instance of type MMS_VISIBLE_STRING.
LIB61850_API MmsValue * MmsValue_newInteger(int size)
LIB61850_API void MmsValue_setFloat(MmsValue *self, float newFloatValue)
Set the float value of a MmsValue object.
LIB61850_API uint32_t MmsValue_toUint32(const MmsValue *value)
Get the uint32_t value of a MmsValue object.
LIB61850_API MmsValue * MmsValue_newIntegerFromInt16(int16_t integer)
LIB61850_API MmsValue * MmsValue_newUnsigned(int size)
LIB61850_API bool MmsValue_equals(const MmsValue *self, const MmsValue *otherValue)
Check if two instances of MmsValue have the same value.
LIB61850_API MmsValue * MmsValue_newFloat(float value)
Create a new 32 bit wide float variable and initialize with value.
LIB61850_API MmsValue * MmsValue_newDefaultValue(const MmsVariableSpecification *typeSpec)
LIB61850_API MmsValue * MmsValue_newVisibleStringFromByteArray(const uint8_t *byteArray, int size)
Create a new MmsValue instance of type MMS_VISIBLE_STRING from the specified byte array.
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.
LIB61850_API int MmsValue_getSizeInMemory(const MmsValue *self)
Determine the required amount of bytes by a clone.
LIB61850_API MmsValue * MmsValue_clone(const MmsValue *self)
Create a (deep) copy of an MmsValue instance.
LIB61850_API void MmsValue_setInt8(MmsValue *value, int8_t integer)
Set the Int8 value of a MmsValue object.
LIB61850_API void MmsValue_setMmsString(MmsValue *value, const char *string)
Set the value of MmsValue instance of type MMS_STRING.
LIB61850_API void MmsValue_setAllBitStringBits(MmsValue *self)
LIB61850_API MmsValue * MmsValue_createArray(const MmsVariableSpecification *elementType, int size)
Create an Array and initialize elements with default values.
LIB61850_API void MmsValue_setUint32(MmsValue *value, uint32_t integer)
Set the UInt32 value of a MmsValue object.
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.
LIB61850_API void MmsValue_delete(MmsValue *self)
Delete an MmsValue instance.
LIB61850_API void MmsValue_setUtcTimeQuality(MmsValue *self, uint8_t timeQuality)
set the TimeQuality byte of the UtcTime
LIB61850_API MmsValue * MmsValue_setUtcTimeMsEx(MmsValue *self, uint64_t timeval, uint8_t timeQuality)
Update an MmsValue object of type MMS_UTCTIME with a millisecond time.
LIB61850_API const char * MmsValue_toString(MmsValue *self)
Returns the value of an MMS_VISIBLE_STRING object as C string.
LIB61850_API void MmsValue_setUint16(MmsValue *value, uint16_t integer)
Set the UInt16 value of a MmsValue object.
LIB61850_API uint16_t MmsValue_getOctetStringSize(const MmsValue *self)
Returns the size in bytes of an MmsValue object of type MMS_OCTET_STRING.
LIB61850_API MmsValue * MmsValue_newDouble(double value)
Create a new 64 bit wide float variable and initialize with value.
LIB61850_API uint16_t MmsValue_getOctetStringMaxSize(MmsValue *self)
Returns the maximum size in bytes of an MmsValue object of type MMS_OCTET_STRING.
LIB61850_API void MmsValue_setBinaryTime(MmsValue *self, uint64_t timestamp)
Update an MmsValue object of type MMS_BINARYTIME with a millisecond time.
LIB61850_API void MmsValue_setInt32(MmsValue *self, int32_t integer)
Set the Int32 value of a MmsValue object.
LIB61850_API MmsValue * MmsValue_getElement(const MmsValue *array, int index)
Get an element of an array or structure.
LIB61850_API MmsValue * MmsValue_newIntegerFromInt64(int64_t integer)
LIB61850_API int MmsValue_getBitStringSize(const MmsValue *self)
Get the size of a bit string in bits.
LIB61850_API uint32_t MmsValue_toUnixTimestamp(const MmsValue *self)
Get the unix timestamp of a MmsValue object of type MMS_UTCTIME.
struct sMmsValue MmsValue
Definition: mms_value.h:68
LIB61850_API MmsValue * MmsValue_newUtcTime(uint32_t timeval)
Create a new MmsValue instance of type MMS_UTCTIME.
LIB61850_API void MmsValue_deleteConditional(MmsValue *value)
Delete an MmsValue instance.
LIB61850_API MmsValue * MmsValue_newMmsStringWithSize(int size)
Create a new MmsValue instance of type MMS_STRING.
LIB61850_API MmsValue * MmsValue_newVisibleStringWithSize(int size)
Create a new MmsValue instance of type MMS_VISIBLE_STRING.
LIB61850_API void MmsValue_setInt16(MmsValue *value, int16_t integer)
Set the Int16 value of a MmsValue object.
LIB61850_API uint32_t MmsValue_getArraySize(const MmsValue *self)
Get the size of an array.
LIB61850_API MmsValue * MmsValue_createEmptyArray(int size)
Create an emtpy array.
LIB61850_API uint8_t * MmsValue_getUtcTimeBuffer(MmsValue *self)
return the raw buffer containing the UTC time data
LIB61850_API MmsType MmsValue_getType(const MmsValue *self)
Get the MmsType of an MmsValue instance.
LIB61850_API void MmsValue_deleteAllBitStringBits(MmsValue *self)
Delete all bits (set to zero) of an MmsType object of type MMS_BITSTRING.
LIB61850_API int MmsValue_isDeletable(MmsValue *self)
Check if the MmsValue instance has the deletable flag set.
LIB61850_API MmsValue * MmsValue_setUtcTime(MmsValue *self, uint32_t timeval)
Update an MmsValue object of UtcTime type with a timestamp in s.
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.
LIB61850_API uint32_t MmsValue_getBitStringAsInteger(const MmsValue *self)
Convert a bit string to an unsigned integer.
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.
LIB61850_API void MmsValue_setElement(MmsValue *complexValue, int index, MmsValue *elementValue)
Set an element of a complex type.
LIB61850_API MmsValue * MmsValue_newMmsStringFromByteArray(const uint8_t *byteArray, int size)
Create a new MmsValue instance of type MMS_STRING from the specified byte array.
MmsDataAccessError
Definition: mms_value.h:46
LIB61850_API double MmsValue_toDouble(const MmsValue *self)
Get the double value of a MmsValue object.
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.
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
LIB61850_API 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)
LIB61850_API int64_t MmsValue_toInt64(const MmsValue *self)
Get the int64_t value of a MmsValue object.
LIB61850_API uint32_t MmsValue_getBitStringAsIntegerBigEndian(const MmsValue *self)
Convert a bit string to an unsigned integer (big endian bit order)
LIB61850_API MmsValue * MmsValue_getSubElement(MmsValue *self, MmsVariableSpecification *varSpec, char *mmsPath)
Get a sub-element of a MMS_STRUCTURE value specified by a path name.
LIB61850_API MmsValue * MmsValue_newUtcTimeByMsTime(uint64_t timeval)
Create a new MmsValue instance of type MMS_UTCTIME.
LIB61850_API int MmsValue_getMaxEncodedSize(MmsValue *self)
Get the maximum possible BER encoded size of the MMS data element.
LIB61850_API MmsValue * MmsValue_newUnsignedFromUint32(uint32_t integer)
LIB61850_API uint64_t MmsValue_getUtcTimeInMs(const MmsValue *value)
Get a millisecond time value from an MmsValue object of MMS_UTCTIME type.
LIB61850_API void MmsValue_setUint8(MmsValue *value, uint8_t integer)
Set the UInt8 value of a MmsValue object.
LIB61850_API MmsValue * MmsValue_newIntegerFromInt32(int32_t integer)
@ DATA_ACCESS_ERROR_TYPE_INCONSISTENT
Definition: mms_value.h:57
@ DATA_ACCESS_ERROR_OBJECT_ACCESS_UNSUPPORTED
Definition: mms_value.h:59
@ DATA_ACCESS_ERROR_SUCCESS
Definition: mms_value.h:49
@ DATA_ACCESS_ERROR_HARDWARE_FAULT
Definition: mms_value.h:51
@ DATA_ACCESS_ERROR_TEMPORARILY_UNAVAILABLE
Definition: mms_value.h:52
@ DATA_ACCESS_ERROR_NO_RESPONSE
Definition: mms_value.h:48
@ DATA_ACCESS_ERROR_OBJECT_UNDEFINED
Definition: mms_value.h:54
@ DATA_ACCESS_ERROR_INVALID_ADDRESS
Definition: mms_value.h:55
@ DATA_ACCESS_ERROR_OBJECT_VALUE_INVALID
Definition: mms_value.h:61
@ DATA_ACCESS_ERROR_UNKNOWN
Definition: mms_value.h:62
@ DATA_ACCESS_ERROR_TYPE_UNSUPPORTED
Definition: mms_value.h:56
@ DATA_ACCESS_ERROR_OBJECT_ACCESS_DENIED
Definition: mms_value.h:53
@ DATA_ACCESS_ERROR_OBJECT_INVALIDATED
Definition: mms_value.h:50
@ DATA_ACCESS_ERROR_SUCCESS_NO_UPDATE
Definition: mms_value.h:47
@ DATA_ACCESS_ERROR_OBJECT_ATTRIBUTE_INCONSISTENT
Definition: mms_value.h:58
@ DATA_ACCESS_ERROR_OBJECT_NONE_EXISTENT
Definition: mms_value.h:60
MmsType
Definition: mms_common.h:106