54 #include "rnr/rnrconfig.h" 72 #define NM_ECODE_GEN 1 73 #define NM_ECODE_NOMEM 2
74 #define NM_ECODE_ARCH_NOTSUP 3
75 #define NM_ECODE_RANGE 4
76 #define NM_ECODE_FTYPE 5
77 #define NM_ECODE_EMSG 6
78 #define NM_ECODE_MSGID 7
80 #define NM_ECODE_INTERNAL 8 81 #define NM_ECODE_BADEC 9
82 #define NM_ECODE_NUMOF 10
156 #define NMFTYPE_IS_COMPOUND(ft) \ 157 (((ft)==NMFTypeString) || ((ft)==NMFTypeStruct) || ((ft)==NMFTypeVector)) 164 #define NMFTYPE_IS_SIMPLE(ft) (!NMFTYPE_IS_COMPOUND(ft)) 171 #define NMFVAL_LEN_CHAR 1 172 #define NMFVAL_LEN_U8 1
173 #define NMFVAL_LEN_S8 1
174 #define NMFVAL_LEN_BOOL 1
175 #define NMFVAL_LEN_U16 2
176 #define NMFVAL_LEN_S16 2
177 #define NMFVAL_LEN_U32 4
178 #define NMFVAL_LEN_S32 4
179 #define NMFVAL_LEN_U64 8
180 #define NMFVAL_LEN_S64 8
181 #define NMFVAL_LEN_F32 4
182 #define NMFVAL_LEN_F64 8
183 #define NMFVAL_LEN_P32 4
184 #define NMFVAL_LEN_P64 8
187 #define NMFVAL_LEN_BYTE NMFVAL_LEN_U8 188 #define NMFVAL_LEN_SCHAR NMFVAL_LEN_S8
189 #define NMFVAL_LEN_USHORT NMFVAL_LEN_U16
190 #define NMFVAL_LEN_SHORT NMFVAL_LEN_S16
191 #define NMFVAL_LEN_UINT NMFVAL_LEN_U32
192 #define NMFVAL_LEN_INT NMFVAL_LEN_U32
193 #define NMFVAL_LEN_ULONGLONG NMFVAL_LEN_U64
194 #define NMFVAL_LEN_LONGLONG NMFVAL_LEN_U64
195 #define NMFVAL_LEN_FLOAT NMFVAL_LEN_F32
196 #define NMFVAL_LEN_DOUBLE NMFVAL_LEN_F64
197 #define NMFVAL_LEN_POINTER NMFVAL_LEN_P32
198 #define NMFVAL_LEN_LONGPOINTER NMFVAL_LEN_P64
201 #define NMFVAL_LEN_STRING 0 202 #define NMFVAL_LEN_MAX_STRING 255
203 #define NMFVAL_LEN_STRUCT 0
204 #define NMFVAL_LEN_VECTOR 0
205 #define NMFVAL_LEN_MAX_VECTOR 255
208 #define NMFVAL_PAD ((byte_t)NMFTypePadTr) 210 #define NMMSG_ID_NONE 0 216 #define NMITV_MSGID_SIZE 2 217 #define NMITV_FID_SIZE 1
218 #define NMITV_FTYPE_SIZE 1
219 #define NMITV_FCOUNT_SIZE 1
222 #define NMITV_MSGHDR_SIZE (NMITV_MSGID_SIZE + NMITV_FCOUNT_SIZE) 225 #define NMITV_FHDR_SIZE_BASE (NMITV_FID_SIZE + NMITV_FTYPE_SIZE) 228 #define NMITV_FHDR_SIZE_SIMPLE NMITV_FHDR_SIZE_BASE 231 #define NMITV_FHDR_SIZE_STRING (NMITV_FHDR_SIZE_BASE + NMITV_FCOUNT_SIZE) 234 #define NMITV_FHDR_SIZE_STRUCT (NMITV_FHDR_SIZE_BASE + NMITV_FCOUNT_SIZE) 237 #define NMITV_FHDR_SIZE_VECTOR \ 238 (NMITV_FHDR_SIZE_BASE + NMITV_FCOUNT_SIZE + NMITV_FTYPE_SIZE) 256 #define NMBITS_HAS_MIN 0x01 257 #define NMBITS_HAS_MAX 0x02
258 #define NMBITS_HAS_CONST 0x04
426 const char *sPreface,
433 const char *sPreface,
448 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
451 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
454 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
457 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
460 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
463 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
466 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
469 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
472 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
474 extern int nmPackBuf(byte_t bufSrc[],
size_t uCount,
475 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian);
489 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
491 return nmPackU8((byte_t)val, buf, bufSize, eEndian);
501 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
503 return nmPackU16((ushort_t)val, buf, bufSize, eEndian);
513 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
515 return nmPackU32((uint_t)val, buf, bufSize, eEndian);
527 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
529 return nmPackU8((byte_t)val, buf, bufSize, eEndian);
541 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
543 return nmPackU8((byte_t)val, buf, bufSize, eEndian);
553 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
555 return nmPackU8((byte_t)val, buf, bufSize, eEndian);
565 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
568 return nmPackU8((byte_t)val, buf, bufSize, eEndian);
580 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
582 return nmPackU16((ushort_t)val, buf, bufSize, eEndian);
594 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
596 return nmPackU16((ushort_t)val, buf, bufSize, eEndian);
608 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
610 return nmPackU32((uint_t)val, buf, bufSize, eEndian);
622 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
624 return nmPackU32((uint_t)val, buf, bufSize, eEndian);
636 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
638 return sizeof(ulong_t) == 4?
639 nmPackU32((uint_t)val, buf, bufSize, eEndian):
640 nmPackU64((ulonglong_t)val, buf, bufSize, eEndian);
652 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
654 return sizeof(long) == 4?
655 nmPackS32((
int)val, buf, bufSize, eEndian):
656 nmPackS64((
long long)val, buf, bufSize, eEndian);
668 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
670 return nmPackU64((ulonglong_t)val, buf, bufSize, eEndian);
682 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
684 return nmPackS64((
long long)val, buf, bufSize, eEndian);
698 byte_t buf[],
size_t bufSize,
NMEndian_T eEndian)
700 return sizeof(
void*) == 4?
710 extern int nmUnpackU8(byte_t buf[],
size_t bufSize,
713 extern int nmUnpackU16(byte_t buf[],
size_t bufSize,
716 extern int nmUnpackU32(byte_t buf[],
size_t bufSize,
719 extern int nmUnpackU64(byte_t buf[],
size_t bufSize,
722 extern int nmUnpackS64(byte_t buf[],
size_t bufSize,
725 extern int nmUnpackF32(byte_t buf[],
size_t bufSize,
728 extern int nmUnpackF64(byte_t buf[],
size_t bufSize,
731 extern int nmUnpackP32(byte_t buf[],
size_t bufSize,
734 extern int nmUnpackP64(byte_t buf[],
size_t bufSize,
737 extern int nmUnpackBuf(byte_t buf[],
size_t bufSize,
738 byte_t bufDst[],
size_t uCount,
750 return nmUnpackU8(buf, bufSize, (byte_t *)pVal, eEndian);
762 return nmUnpackU16(buf, bufSize, (ushort_t *)pVal, eEndian);
774 return nmUnpackU32(buf, bufSize, (uint_t *)pVal, eEndian);
788 return nmUnpackU8(buf, bufSize, (byte_t *)pVal, eEndian);
802 return nmUnpackU8(buf, bufSize, (byte_t *)pVal, eEndian);
814 return nmUnpackU8(buf, bufSize, (byte_t *)pVal, eEndian);
827 return nmUnpackU8(buf, bufSize, (byte_t *)pVal, eEndian);
841 return nmUnpackU16(buf, bufSize, (ushort_t *)pVal, eEndian);
855 return nmUnpackU16(buf, bufSize, (ushort_t *)pVal, eEndian);
869 return nmUnpackU32(buf, bufSize, (uint_t *)pVal, eEndian);
883 return nmUnpackU32(buf, bufSize, (uint_t *)pVal, eEndian);
897 return sizeof(ulong_t) == 4?
898 nmUnpackU32(buf, bufSize, (uint_t *)pVal, eEndian):
899 nmUnpackU64(buf, bufSize, (ulonglong_t *)pVal, eEndian);
913 return sizeof(ulong_t) == 4?
915 nmUnpackS64(buf, bufSize, (
long long *)pVal, eEndian);
929 return nmUnpackU64(buf, bufSize, (ulonglong_t *)pVal, eEndian);
943 return nmUnpackS64(buf, bufSize, (
long long *)pVal, eEndian);
959 return sizeof(
void*) == 4?
1032 #endif // _NETMSGS_H int nmPackP64(void *val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a 64-bit pointer into the message buffer.
INLINE_IN_H int nmPackLong(long val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an signed long integer into the message buffer.
INLINE_IN_H int nmUnpackPointer(byte_t buf[], size_t bufSize, void *pVal, NMEndian_T eEndian)
Unpack a (overloaded)void* pointer from the message buffer.
int nmPackF32(float val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a 32-bit float into the message buffer.
int nmUnpackU16(byte_t buf[], size_t bufSize, ushort_t *pVal, NMEndian_T eEndian)
Unpack an unsigned 16-bit integer from the message buffer.
INLINE_IN_H int nmUnpackUInt(byte_t buf[], size_t bufSize, uint_t *pVal, NMEndian_T eEndian)
Unpack an unsigned int integer from the message buffer.
64-bit IEEE 754 FPN double
byte_t m_bits
field constraint valid bits
unsigned 8-bit integer unsigned char
const struct _nm_field_def_struct * NMFieldDef_P
msg def struct
int nmUnpackFlatMsgDebug(const NMMsgDef_T *pMsgDef, byte_t buf[], size_t uMsgLen, void *pStruct, NMEndian_T eEndian)
Unpack a Flat message, tracing unpacking to stderr.
uint_t nmGetITVMsgId(byte_t buf[], size_t uMsgLen, NMEndian_T eEndian)
Get ITV message id from input buffer.
32-bit IEEE 754 FPN float
unsigned 64-bit integer unsigned long long
int nmUnpackBuf(byte_t buf[], size_t bufSize, byte_t bufDst[], size_t uCount, NMEndian_T eEndian)
Unpack a byte buffer from the message buffer.
byte_t m_valMin
field minimum value constraint
NMFieldThisU8_T m_u8
[unsigned] 8-bit integer specific info
size_t m_uMaxCount
maximum number of vector elements
NMFieldThisVector_T m_vector
vector field specific info
int nmUnpackF64(byte_t buf[], size_t bufSize, double *pVal, NMEndian_T eEndian)
Unpack a 64-bit float from the message buffer.
int nmPackFlatMsgDebug(const NMMsgDef_T *pMsgDef, void *pStruct, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an Flat message, tracing message packing to stderr.
INLINE_IN_H int nmUnpackS32(byte_t buf[], size_t bufSize, int *pVal, NMEndian_T eEndian)
Unpack a signed 32-bit integer from the message buffer.
uint_t m_valMax
field maximum value constraint
NMFieldThisString_T m_string
string field specific info
const char * nmStrError(int ecode)
Get the error string describing the BotSense error code.
int nmPackU32(uint_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned 32-bit integer into the message buffer.
int nmUnpackS64(byte_t buf[], size_t bufSize, long long *pVal, NMEndian_T eEndian)
Unpack an signed 64-bit integer from the message buffer.
NMMsgDef_P NMFieldThisStruct_T
INLINE_IN_H int nmPackSChar(signed char val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a signed char integer value into the message buffer.
signed 32-bit integer int
byte_t m_bits
field constraint valid bits
Most Significant Byte first.
int nmUnpackF32(byte_t buf[], size_t bufSize, float *pVal, NMEndian_T eEndian)
Unpack a 32-bit float from the message buffer.
float m_valMin
field minimum value constraint
INLINE_IN_H int nmPackBool(bool_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a boolean value into the message buffer.
NMFType_T m_eFType
field type
ulonglong_t m_valMin
field minimum value constraint
uint_t m_eMsgId
message id (globally unique)
float m_valMax
field maximum value constraint
size_t m_uCount
number of message fields
INLINE_IN_H int nmPackByte(byte_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a one byte value into the message buffer.
flat (no field header and fixed size) encoding
byte_t m_bits
field constraint valid bits
NMFieldThisStruct_T m_struct
struct field specific info
INLINE_IN_H int nmPackUInt(uint_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned int integer into the message buffer.
INLINE_IN_H int nmPackUShort(ushort_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned short integer into the message buffer.
ushort_t m_valConst
field constant value contraint
double m_valMax
field maximum value constraint
INLINE_IN_H int nmUnpackULongLong(byte_t buf[], size_t bufSize, ulonglong_t *pVal, NMEndian_T eEndian)
Unpack an unsigned long long integer from the message buffer.
int nmPackITVMsgDebug(const NMMsgDef_T *pMsgDef, void *pStruct, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an ITV message, tracing message packing to stderr.
8-bit ASCII characters char
translated pad type for packed stream
int nmUnpackU64(byte_t buf[], size_t bufSize, ulonglong_t *pVal, NMEndian_T eEndian)
Unpack an unsigned 64-bit integer from the message buffer.
const struct _nm_msg_def_struct * NMMsgDef_P
msg def pointer
signed 64-bit integer long long
NMFieldThis_T m_this
specific field information
INLINE_IN_H int nmPackULongLong(ulonglong_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned long long integer into the message buffer.
INLINE_IN_H int nmPackChar(char val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a 8-bit ASCII character into the message buffer.
const NMFieldDef_T * nmFindFieldDef(const NMMsgDef_T *pMsgDef, byte_t byFId)
Find the field definition in the message definition, given the field id.
int nmUnpackITVMsgDebug(const NMMsgDef_T *pMsgDef, byte_t buf[], size_t uMsgLen, void *pStruct, NMEndian_T eEndian)
Unpack a ITV message, tracing unpacking to stderr.
int nmPackU8(byte_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned 8-bit byte into the message buffer.
INLINE_IN_H int nmUnpackS8(byte_t buf[], size_t bufSize, signed char *pVal, NMEndian_T eEndian)
Unpack a signed 8-bit byte from the message buffer.
INLINE_IN_H int nmUnpackSChar(byte_t buf[], size_t bufSize, signed char *pVal, NMEndian_T eEndian)
Unpack an signed short integer from the message buffer.
32-bit pointer (overloaded) void*
INLINE_IN_H int nmUnpackBool(byte_t buf[], size_t bufSize, bool_t *pVal, NMEndian_T eEndian)
Unpack a boolean value from the message buffer.
size_t m_uMaxCount
maximum number of characters sans null char
INLINE_IN_H int nmPackPointer(void *val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a (overloaded) void* pointer into the message buffer.
64-bit pointer (overloaded) void*
INLINE_IN_H int nmPackLongLong(long long val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an signed long long integer into the message buffer.
INLINE_IN_H int nmUnpackInt(byte_t buf[], size_t bufSize, int *pVal, NMEndian_T eEndian)
Unpack an signed int integer from the message buffer.
float m_valConst
field constant value contraint
command-line interface encoding (future)
NMFieldThisU32_T m_u32
[unsigned] 32-bit integer specific info
INLINE_IN_H int nmUnpackShort(byte_t buf[], size_t bufSize, short *pVal, NMEndian_T eEndian)
Unpack an signed short integer from the message buffer.
const char * m_sFName
field string name
int nmPackS64(long long val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an signed 64-bit integer into the message buffer.
INLINE_IN_H int nmUnpackLong(byte_t buf[], size_t bufSize, long *pVal, NMEndian_T eEndian)
Unpack an signed long integer from the message buffer.
INLINE_IN_H int nmPackInt(int val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an signed int integer into the message buffer.
size_t m_uCount
number of pad bytes
struct _nm_msg_def_struct NMMsgDef_T
byte_t m_bits
field constraint valid bits
struct _nm_field_def_struct NMFieldDef_T
size_t nmGetFieldValSize(NMFType_T eFType)
Get the field value byte size.
signed 8-bit integer signed char
void * m_pAlign
force alignment
const char * m_sMsgName
message/struct string name
const char * m_sConst
string constant value (NULL if no const)
int nmPackU16(ushort_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned 16-bit integer into the message buffer.
one dimensional array VType[]
INLINE_IN_H int nmPackS32(int val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a signed 32-bit integer into the message buffer.
NMFieldDef_P m_pThisElem
vector element specific info
INLINE_IN_H int nmUnpackLongLong(byte_t buf[], size_t bufSize, long long *pVal, NMEndian_T eEndian)
Unpack an signed long long integer from the message buffer.
double m_valMin
field minimum value constraint
INLINE_IN_H int nmUnpackULong(byte_t buf[], size_t bufSize, ulong_t *pVal, NMEndian_T eEndian)
Unpack an unsigned long integer from the message buffer.
const NMFieldDef_T * m_pFields
pointer to array of msg field definitions
uint_t m_valMin
field minimum value constraint
int nmPackF64(double val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a 64-bit float into the message buffer.
size_t m_uElemSize
vector element storage size
INLINE_IN_H int nmUnpackUShort(byte_t buf[], size_t bufSize, ushort_t *pVal, NMEndian_T eEndian)
Unpack an unsigned short integer from the message buffer.
size_t m_uCount
number of items in vector
int nmUnpackU32(byte_t buf[], size_t bufSize, uint_t *pVal, NMEndian_T eEndian)
Unpack an unsigned 32-bit integer from the message buffer.
NMFieldThisF32_T m_f32
32-bit fpn specific info
unsigned 32-bit integer unsigned int
Least Significant Byte first.
NMFieldThisU64_T m_u64
[unsigned] 64-bit integer specific info
INLINE_IN_H int nmPackS8(signed char val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a signed 8-bit byte into the message buffer.
int nmUnpackP64(byte_t buf[], size_t bufSize, void *pVal, NMEndian_T eEndian)
Unpack a 64-bit pointer from the message buffer.
byte_t m_bits
field constraint valid bits
void nmPrintBuf(FILE *fp, const char *sPreface, byte_t buf[], size_t uCount, size_t uNLFreq, uint_t uCol)
Pretty print buffer to opened file stream.
ushort_t m_valMin
field minimum value constraint
byte_t m_valMax
field maximum value constraint
ulonglong_t m_valMax
field maximum value constraint
byte_t m_bits
field constraint valid bits
NMFieldThisU16_T m_u16
[unsigned] 16-bit integer specific info
byte_t m_valConst
field constant value contraint
INLINE_IN_H int nmPackShort(short val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an signed short integer into the message buffer.
int nmPackFlatMsg(const NMMsgDef_T *pMsgDef, void *pStruct, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an Flat message.
ulonglong_t m_valConst
field constant value contraint
INLINE_IN_H int nmPackULong(ulong_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned long integer into the message buffer.
NMFieldThisPad_T m_pad
pad field specific info
int nmUnpackU8(byte_t buf[], size_t bufSize, byte_t *pVal, NMEndian_T eEndian)
Unpack an unsigned 8-bit byte from the message buffer.
ushort_t m_valMax
field maximum value constraint
INLINE_IN_H int nmUnpackS16(byte_t buf[], size_t bufSize, short *pVal, NMEndian_T eEndian)
Unpack a signed 16-bit integer from the message buffer.
double m_valConst
field constant value contraint
size_t m_uOffset
member offset in assoc msg structure
int nmPackBuf(byte_t bufSrc[], size_t uCount, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a byte buffer into the message buffer.
int nmUnpackFlatMsg(const NMMsgDef_T *pMsgDef, byte_t buf[], size_t uMsgLen, void *pStruct, NMEndian_T eEndian)
Unpack a Flat message.
INLINE_IN_H int nmUnpackByte(byte_t buf[], size_t bufSize, byte_t *pVal, NMEndian_T eEndian)
Unpack one byte from the message buffer.
NMFieldThisF64_T m_f64
64-bit fpn specific info
INLINE_IN_H int nmPackS16(short val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a signed 16-bit integer into the message buffer.
uint_t m_valConst
field constant value contraint
INLINE_IN_H int nmUnpackChar(byte_t buf[], size_t bufSize, char *pVal, NMEndian_T eEndian)
Unpack an 8-bit ASCII character from the message buffer.
int nmPackITVMsg(const NMMsgDef_T *pMsgDef, void *pStruct, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an ITV message.
int nmPackU64(ulonglong_t val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack an unsigned 64-bit integer into the message buffer.
void nmPrintBits(FILE *fp, const char *sPreface, ulonglong_t uVal, uint_t uMsb, uint_t uCnt)
Pretty print bits in value.
unsigned 16-bit integer unsigned short
signed 16-bit integer short
uint_t m_eFId
filed id (message/struct unique)
int nmUnpackP32(byte_t buf[], size_t bufSize, void *pVal, NMEndian_T eEndian)
Unpack a 32-bit pointer from the message buffer.
int nmUnpackITVMsg(const NMMsgDef_T *pMsgDef, byte_t buf[], size_t uMsgLen, void *pStruct, NMEndian_T eEndian)
Unpack a ITV message.
number of different encodings supported
int nmPackP32(void *val, byte_t buf[], size_t bufSize, NMEndian_T eEndian)
Pack a 32-bit pointer into the message buffer.