10 #if !defined __UHH_MSGIFACE_H
11 #define __UHH_MSGIFACE_H
17 #include "ENUM_UhhMsg_Com.h"
20 #include "ENUM_UhhMsg_Cat.h"
21 #include "ENUM_UhhMsg_Type.h"
22 #include "ENUM_UhhMsg_Err.h"
25 #include "ENUM_UhhMsg_Req.h"
26 #include "ENUM_UhhMsg_Res.h"
30 #define UHH_MSG_GET_U8_M(_p,_o) ( (_p)[(_o)] )
32 #define UHH_MSG_GET_U16_M(_p,_o) ( (((uint16)(_p)[(_o)])<<8) + (_p)[(_o)+1])
34 #define UHH_MSG_GET_U24_M(_p,_o) ( (((uint32)(_p)[(_o)])<<16) + (((uint32)(_p)[(_o)+1])<<8) +\
37 #define UHH_MSG_GET_I32_M(_p,_o) ( (((sint32)(_p)[(_o)])<<24) + (((sint32)(_p)[(_o)+1])<<16) + \
38 (((sint32)(_p)[(_o)+2])<<8) + (_p)[(_o)+3] )
42 #define UHH_MSG_SET_U8_M(_p,_o,_u) { (_p)[(_o)] = (uint8)(_u); }
44 #define UHH_MSG_SET_U16_M(_p,_o,_u) { (_p)[(_o)] = (uint8)((_u)>> 8); \
45 (_p)[(_o)+1] = (uint8) (_u); }
47 #define UHH_MSG_SET_U24_M(_p,_o,_u) { (_p)[(_o)] = (uint8)((_u)>>16); \
48 (_p)[(_o)+1] = (uint8)((_u)>>8); \
49 (_p)[(_o)+2] = (uint8) (_u); }
51 #define UHH_MSG_SET_I32_M(_p,_o,_n) { (_p)[(_o)] = (uint8)((_n)>>24); \
52 (_p)[(_o)+1] = (uint8)((_n)>>16); \
53 (_p)[(_o)+2] = (uint8)((_n)>> 8); \
54 (_p)[(_o)+3] = (uint8) (_n); }
56 #define UHH_MSG_SET_I56_M(_p,_o,_n) { (_p)[(_o)] = (uint8)((_n)>>48); \
57 (_p)[(_o)+1] = (uint8)((_n)>>40); \
58 (_p)[(_o)+2] = (uint8)((_n)>>32); \
59 (_p)[(_o)+3] = (uint8)((_n)>>24); \
60 (_p)[(_o)+4] = (uint8)((_n)>>16); \
61 (_p)[(_o)+5] = (uint8)((_n)>> 8); \
62 (_p)[(_o)+6] = (uint8) (_n); }
65 void uhhMsg(uint8 *z_pRequest, uint8 *z_pResponse, sint32 z_nMaxRes);
68 void uhhMsgReqClear(uint8 *z_pRequest, sint32 z_nExtra);
69 void uhhMsgResClear(uint8 *z_pResponse, sint32 z_nExtra);
72 extern const uint8 uhhScaleTypeMap[][2];
75 uint8 uhhGetDefaultScaleDivs(
void );