botsense  3.2.0
RoadNarrows Client-Server Proxied Services Framework
bsI2CMsgs.h
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // File: bsI2CMsgs.h
4 //
5 /*!
6  * \file
7  *
8  * \brief BotSense bsProxy server - client raw I2C NetMsgs XML Definition
9  *
10  * \warning This file was auto-generated on 2018.08.10 13:54:23 from the NetMsgs
11  * XML specification bsI2CMsgs.xml.
12  *
13  * \par Copyright:
14  * (C) 2018. RoadNarrows LLC
15  * (http://www.roadnarrows.com)
16  * All Rights Reserved
17  */
18 ///////////////////////////////////////////////////////////////////////////////
19 
20 
21 #ifndef _BSI2CMSGS_H
22 #define _BSI2CMSGS_H
23 
24 #include "rnr/rnrconfig.h"
25 #include "rnr/netmsgs.h"
26 
27 #include "rnr/i2c-dev.h"
28 
29 #include "botsense/BotSense.h"
30 
31 
32 C_DECLS_BEGIN
33 
34 /*!
35  * BsI2C Message Id Enumeration
36  */
37 typedef enum
38 {
39  BsI2CMsgIdNone = 0, ///< no message
40  BsI2CMsgIdReqRead = 1, ///< ReqRead
41  BsI2CMsgIdReqTrans = 2, ///< ReqTrans
42  BsI2CMsgIdRspRead = 3, ///< RspRead
43  BsI2CMsgIdReqWrite = 4, ///< ReqWrite
44  BsI2CMsgIdRspWrite = 5, ///< RspWrite
45  BsI2CMsgIdReqScan = 6, ///< ReqScan
46  BsI2CMsgIdRspScan = 7, ///< RspScan
47  BsI2CMsgIdNumOf = 8 ///< number of message ids
48 } BsI2CMsgId_T;
49 
50 
51 //-----------------------------------------------------------------------------
52 // Message Types
53 //-----------------------------------------------------------------------------
54 
55 
56 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57 // Message BsI2CReqRead Declarations
58 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59 
60 /*!
61  * Message ReqRead Structure
62  */
63 typedef struct
64 {
65  ushort_t m_addr; ///< addr
66  byte_t m_readlen; ///< readlen
67 } BsI2CReqRead_T; ///< ReqRead structure
68 
69 
70 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71 // Message BsI2CReqTrans Declarations
72 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73 
74 /*! ReqTrans writebuf maximum vector length */
75 #define BSI2C_REQTRANS_WRITEBUF_LEN (NMFVAL_LEN_MAX_VECTOR)
76 
77 /*!
78  * Message ReqTrans Structure
79  */
80 typedef struct
81 {
82  ushort_t m_addr; ///< addr
83  struct
84  {
85  size_t m_count; ///< vector item count
86  union
87  {
88  void *m_pAlign; ///< force alignment
90  ///< the item vector
91  } u; ///< aligned vector items
92  } m_writebuf; ///< vector
93  byte_t m_readlen; ///< readlen
94 } BsI2CReqTrans_T; ///< ReqTrans structure
95 
96 
97 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98 // Message BsI2CRspRead Declarations
99 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100 
101 /*! RspRead readbuf maximum vector length */
102 #define BSI2C_RSPREAD_READBUF_LEN (NMFVAL_LEN_MAX_VECTOR)
103 
104 /*!
105  * Message RspRead Structure
106  */
107 typedef struct
108 {
109  struct
110  {
111  size_t m_count; ///< vector item count
112  union
113  {
114  void *m_pAlign; ///< force alignment
116  ///< the item vector
117  } u; ///< aligned vector items
118  } m_readbuf; ///< vector
119 } BsI2CRspRead_T; ///< RspRead structure
120 
121 
122 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123 // Message BsI2CReqWrite Declarations
124 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125 
126 /*! ReqWrite writebuf maximum vector length */
127 #define BSI2C_REQWRITE_WRITEBUF_LEN (NMFVAL_LEN_MAX_VECTOR)
128 
129 /*!
130  * Message ReqWrite Structure
131  */
132 typedef struct
133 {
134  ushort_t m_addr; ///< addr
135  struct
136  {
137  size_t m_count; ///< vector item count
138  union
139  {
140  void *m_pAlign; ///< force alignment
142  ///< the item vector
143  } u; ///< aligned vector items
144  } m_writebuf; ///< vector
145 } BsI2CReqWrite_T; ///< ReqWrite structure
146 
147 
148 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
149 // Message BsI2CRspWrite Declarations
150 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
151 
152 /*!
153  * Message RspWrite Structure
154  */
155 typedef struct
156 {
157  byte_t m_byteswritten; ///< byteswritten
158 } BsI2CRspWrite_T; ///< RspWrite structure
159 
160 
161 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
162 // Message BsI2CRspScan Declarations
163 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
164 
165 /*! RspScan scan maximum vector length */
166 #define BSI2C_RSPSCAN_SCAN_LEN (NMFVAL_LEN_MAX_VECTOR)
167 
168 /*!
169  * Message RspScan Structure
170  */
171 typedef struct
172 {
173  struct
174  {
175  size_t m_count; ///< vector item count
176  union
177  {
178  void *m_pAlign; ///< force alignment
179  ushort_t m_buf[BSI2C_RSPSCAN_SCAN_LEN];
180  ///< the item vector
181  } u; ///< aligned vector items
182  } m_scan; ///< vector
183 } BsI2CRspScan_T; ///< RspScan structure
184 
185 
186 //-----------------------------------------------------------------------------
187 // External Data
188 //-----------------------------------------------------------------------------
189 
190 //
191 // BsI2C Message Definition Look-Up Table.
192 // (indexed by BsI2CMsgId_T enum)
193 //
194 extern const NMMsgDef_T *BsI2CMsgDefLookupTbl[];
195 
196 //
197 // BsI2C Maximum Message Body Length (bytes) Look-Up Table.
198 // (indexed by BsI2CMsgId_T enum)
199 //
200 extern size_t BsI2CMsgMaxLenLookupTbl[];
201 
202 
203 //-----------------------------------------------------------------------------
204 // Function Prototypes
205 //-----------------------------------------------------------------------------
206 
207 extern const NMMsgDef_T * BsI2CLookupMsgDef( BsI2CMsgId_T eMsgId );
208 
209 extern size_t BsI2CLookupMsgMaxLen( BsI2CMsgId_T eMsgId );
210 
211 extern int BsI2CPackMsg( BsI2CMsgId_T eMsgId,
212  void * pStruct,
213  byte_t buf[],
214  size_t bufSize,
215  bool_t bTrace );
216 
217 extern int BsI2CUnpackMsg( BsI2CMsgId_T eMsgId,
218  byte_t buf[],
219  size_t uMsgLen,
220  void * pStruct,
221  bool_t bTrace );
222 
223 /*!
224  * \brief Pack a BsI2CReqRead ITV message in big-endian byte order
225  * into the output buffer.
226  *
227  * \param [in] pStruct Pointer to the associated, populated message
228  * structure.
229  * \param [out] buf Output message buffer.
230  * \param bufSize Size of output buffer.
231  * \param bTrace Do [not] trace packing.
232  *
233  * \return
234  * On success, returns the number of bytes packed.
235  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
236  */
237 INLINE_IN_H int BsI2CPackReqRead( BsI2CReqRead_T * pStruct,
238  byte_t buf[],
239  size_t bufSize,
240  bool_t bTrace )
241 {
242  return BsI2CPackMsg(BsI2CMsgIdReqRead, pStruct, buf, bufSize, bTrace);
243 }
244 
245 /*!
246  * \brief Unpack a BsI2CReqRead ITV message in big-endian byte order
247  * from the input buffer.
248  *
249  * \param [in] buf Output message buffer.
250  * \param uMsgLen Length of message (bytes) in input buffer.
251  * \param [out] pStruct Pointer to the associated message structure.
252  * \param bTrace Do [not] trace packing.
253  *
254  * \return
255  * On success, returns the number of bytes unpacked.
256  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
257  */
258 INLINE_IN_H int BsI2CUnpackReqRead( byte_t buf[],
259  size_t uMsgLen,
260  BsI2CReqRead_T * pStruct,
261  bool_t bTrace )
262 {
263  return BsI2CUnpackMsg(BsI2CMsgIdReqRead, buf, uMsgLen, pStruct, bTrace);
264 }
265 
266 /*!
267  * \brief Pack a BsI2CReqTrans ITV message in big-endian byte order
268  * into the output buffer.
269  *
270  * \param [in] pStruct Pointer to the associated, populated message
271  * structure.
272  * \param [out] buf Output message buffer.
273  * \param bufSize Size of output buffer.
274  * \param bTrace Do [not] trace packing.
275  *
276  * \return
277  * On success, returns the number of bytes packed.
278  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
279  */
280 INLINE_IN_H int BsI2CPackReqTrans( BsI2CReqTrans_T * pStruct,
281  byte_t buf[],
282  size_t bufSize,
283  bool_t bTrace )
284 {
285  return BsI2CPackMsg(BsI2CMsgIdReqTrans, pStruct, buf, bufSize, bTrace);
286 }
287 
288 /*!
289  * \brief Unpack a BsI2CReqTrans ITV message in big-endian byte order
290  * from the input buffer.
291  *
292  * \param [in] buf Output message buffer.
293  * \param uMsgLen Length of message (bytes) in input buffer.
294  * \param [out] pStruct Pointer to the associated message structure.
295  * \param bTrace Do [not] trace packing.
296  *
297  * \return
298  * On success, returns the number of bytes unpacked.
299  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
300  */
301 INLINE_IN_H int BsI2CUnpackReqTrans( byte_t buf[],
302  size_t uMsgLen,
303  BsI2CReqTrans_T * pStruct,
304  bool_t bTrace )
305 {
306  return BsI2CUnpackMsg(BsI2CMsgIdReqTrans, buf, uMsgLen, pStruct, bTrace);
307 }
308 
309 /*!
310  * \brief Pack a BsI2CRspRead ITV message in big-endian byte order
311  * into the output buffer.
312  *
313  * \param [in] pStruct Pointer to the associated, populated message
314  * structure.
315  * \param [out] buf Output message buffer.
316  * \param bufSize Size of output buffer.
317  * \param bTrace Do [not] trace packing.
318  *
319  * \return
320  * On success, returns the number of bytes packed.
321  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
322  */
323 INLINE_IN_H int BsI2CPackRspRead( BsI2CRspRead_T * pStruct,
324  byte_t buf[],
325  size_t bufSize,
326  bool_t bTrace )
327 {
328  return BsI2CPackMsg(BsI2CMsgIdRspRead, pStruct, buf, bufSize, bTrace);
329 }
330 
331 /*!
332  * \brief Unpack a BsI2CRspRead ITV message in big-endian byte order
333  * from the input buffer.
334  *
335  * \param [in] buf Output message buffer.
336  * \param uMsgLen Length of message (bytes) in input buffer.
337  * \param [out] pStruct Pointer to the associated message structure.
338  * \param bTrace Do [not] trace packing.
339  *
340  * \return
341  * On success, returns the number of bytes unpacked.
342  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
343  */
344 INLINE_IN_H int BsI2CUnpackRspRead( byte_t buf[],
345  size_t uMsgLen,
346  BsI2CRspRead_T * pStruct,
347  bool_t bTrace )
348 {
349  return BsI2CUnpackMsg(BsI2CMsgIdRspRead, buf, uMsgLen, pStruct, bTrace);
350 }
351 
352 /*!
353  * \brief Pack a BsI2CReqWrite ITV message in big-endian byte order
354  * into the output buffer.
355  *
356  * \param [in] pStruct Pointer to the associated, populated message
357  * structure.
358  * \param [out] buf Output message buffer.
359  * \param bufSize Size of output buffer.
360  * \param bTrace Do [not] trace packing.
361  *
362  * \return
363  * On success, returns the number of bytes packed.
364  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
365  */
366 INLINE_IN_H int BsI2CPackReqWrite( BsI2CReqWrite_T * pStruct,
367  byte_t buf[],
368  size_t bufSize,
369  bool_t bTrace )
370 {
371  return BsI2CPackMsg(BsI2CMsgIdReqWrite, pStruct, buf, bufSize, bTrace);
372 }
373 
374 /*!
375  * \brief Unpack a BsI2CReqWrite ITV message in big-endian byte order
376  * from the input buffer.
377  *
378  * \param [in] buf Output message buffer.
379  * \param uMsgLen Length of message (bytes) in input buffer.
380  * \param [out] pStruct Pointer to the associated message structure.
381  * \param bTrace Do [not] trace packing.
382  *
383  * \return
384  * On success, returns the number of bytes unpacked.
385  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
386  */
387 INLINE_IN_H int BsI2CUnpackReqWrite( byte_t buf[],
388  size_t uMsgLen,
389  BsI2CReqWrite_T * pStruct,
390  bool_t bTrace )
391 {
392  return BsI2CUnpackMsg(BsI2CMsgIdReqWrite, buf, uMsgLen, pStruct, bTrace);
393 }
394 
395 /*!
396  * \brief Pack a BsI2CRspWrite ITV message in big-endian byte order
397  * into the output buffer.
398  *
399  * \param [in] pStruct Pointer to the associated, populated message
400  * structure.
401  * \param [out] buf Output message buffer.
402  * \param bufSize Size of output buffer.
403  * \param bTrace Do [not] trace packing.
404  *
405  * \return
406  * On success, returns the number of bytes packed.
407  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
408  */
409 INLINE_IN_H int BsI2CPackRspWrite( BsI2CRspWrite_T * pStruct,
410  byte_t buf[],
411  size_t bufSize,
412  bool_t bTrace )
413 {
414  return BsI2CPackMsg(BsI2CMsgIdRspWrite, pStruct, buf, bufSize, bTrace);
415 }
416 
417 /*!
418  * \brief Unpack a BsI2CRspWrite ITV message in big-endian byte order
419  * from the input buffer.
420  *
421  * \param [in] buf Output message buffer.
422  * \param uMsgLen Length of message (bytes) in input buffer.
423  * \param [out] pStruct Pointer to the associated message structure.
424  * \param bTrace Do [not] trace packing.
425  *
426  * \return
427  * On success, returns the number of bytes unpacked.
428  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
429  */
430 INLINE_IN_H int BsI2CUnpackRspWrite( byte_t buf[],
431  size_t uMsgLen,
432  BsI2CRspWrite_T * pStruct,
433  bool_t bTrace )
434 {
435  return BsI2CUnpackMsg(BsI2CMsgIdRspWrite, buf, uMsgLen, pStruct, bTrace);
436 }
437 
438 /*!
439  * \brief Pack a BsI2CRspScan ITV message in big-endian byte order
440  * into the output buffer.
441  *
442  * \param [in] pStruct Pointer to the associated, populated message
443  * structure.
444  * \param [out] buf Output message buffer.
445  * \param bufSize Size of output buffer.
446  * \param bTrace Do [not] trace packing.
447  *
448  * \return
449  * On success, returns the number of bytes packed.
450  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
451  */
452 INLINE_IN_H int BsI2CPackRspScan( BsI2CRspScan_T * pStruct,
453  byte_t buf[],
454  size_t bufSize,
455  bool_t bTrace )
456 {
457  return BsI2CPackMsg(BsI2CMsgIdRspScan, pStruct, buf, bufSize, bTrace);
458 }
459 
460 /*!
461  * \brief Unpack a BsI2CRspScan ITV message in big-endian byte order
462  * from the input buffer.
463  *
464  * \param [in] buf Output message buffer.
465  * \param uMsgLen Length of message (bytes) in input buffer.
466  * \param [out] pStruct Pointer to the associated message structure.
467  * \param bTrace Do [not] trace packing.
468  *
469  * \return
470  * On success, returns the number of bytes unpacked.
471  * On error, returns the appropriate \h_lt 0 negated NM_ECODE.
472  */
473 INLINE_IN_H int BsI2CUnpackRspScan( byte_t buf[],
474  size_t uMsgLen,
475  BsI2CRspScan_T * pStruct,
476  bool_t bTrace )
477 {
478  return BsI2CUnpackMsg(BsI2CMsgIdRspScan, buf, uMsgLen, pStruct, bTrace);
479 }
480 
481 
482 C_DECLS_END
483 
484 
485 #endif // _BSI2CMSGS_H
RspRead.
Definition: bsI2CMsgs.h:42
ushort_t m_addr
addr
Definition: bsI2CMsgs.h:134
#define BSI2C_RSPSCAN_SCAN_LEN
Definition: bsI2CMsgs.h:166
size_t BsI2CLookupMsgMaxLen(BsI2CMsgId_T eMsgId)
Look up the message maximum length associated with the message id.
Definition: bsI2CMsgs.c:533
size_t m_count
vector item count
Definition: bsI2CMsgs.h:175
const NMMsgDef_T * BsI2CMsgDefLookupTbl[]
Definition: bsI2CMsgs.c:466
INLINE_IN_H int BsI2CPackReqTrans(BsI2CReqTrans_T *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a BsI2CReqTrans ITV message in big-endian byte order into the output buffer. ...
Definition: bsI2CMsgs.h:280
INLINE_IN_H int BsI2CPackRspRead(BsI2CRspRead_T *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a BsI2CRspRead ITV message in big-endian byte order into the output buffer.
Definition: bsI2CMsgs.h:323
byte_t m_readlen
readlen
Definition: bsI2CMsgs.h:93
RspScan.
Definition: bsI2CMsgs.h:46
INLINE_IN_H int BsI2CPackReqWrite(BsI2CReqWrite_T *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a BsI2CReqWrite ITV message in big-endian byte order into the output buffer. ...
Definition: bsI2CMsgs.h:366
ushort_t m_addr
addr
Definition: bsI2CMsgs.h:65
ReqRead.
Definition: bsI2CMsgs.h:40
size_t m_count
vector item count
Definition: bsI2CMsgs.h:85
void * m_pAlign
force alignment
Definition: bsI2CMsgs.h:178
number of message ids
Definition: bsI2CMsgs.h:47
void * m_pAlign
force alignment
Definition: bsI2CMsgs.h:140
BsI2CMsgId_T
Definition: bsI2CMsgs.h:37
INLINE_IN_H int BsI2CUnpackRspRead(byte_t buf[], size_t uMsgLen, BsI2CRspRead_T *pStruct, bool_t bTrace)
Unpack a BsI2CRspRead ITV message in big-endian byte order from the input buffer. ...
Definition: bsI2CMsgs.h:344
ReqTrans.
Definition: bsI2CMsgs.h:41
ushort_t m_addr
addr
Definition: bsI2CMsgs.h:82
RspWrite.
Definition: bsI2CMsgs.h:44
INLINE_IN_H int BsI2CPackReqRead(BsI2CReqRead_T *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a BsI2CReqRead ITV message in big-endian byte order into the output buffer.
Definition: bsI2CMsgs.h:237
int BsI2CUnpackMsg(BsI2CMsgId_T eMsgId, byte_t buf[], size_t uMsgLen, void *pStruct, bool_t bTrace)
Unpack a ITV message in big-endian byte order.
Definition: bsI2CMsgs.c:597
INLINE_IN_H int BsI2CUnpackRspWrite(byte_t buf[], size_t uMsgLen, BsI2CRspWrite_T *pStruct, bool_t bTrace)
Unpack a BsI2CRspWrite ITV message in big-endian byte order from the input buffer.
Definition: bsI2CMsgs.h:430
INLINE_IN_H int BsI2CPackRspWrite(BsI2CRspWrite_T *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a BsI2CRspWrite ITV message in big-endian byte order into the output buffer. ...
Definition: bsI2CMsgs.h:409
ReqScan.
Definition: bsI2CMsgs.h:45
INLINE_IN_H int BsI2CUnpackReqWrite(byte_t buf[], size_t uMsgLen, BsI2CReqWrite_T *pStruct, bool_t bTrace)
Unpack a BsI2CReqWrite ITV message in big-endian byte order from the input buffer.
Definition: bsI2CMsgs.h:387
size_t BsI2CMsgMaxLenLookupTbl[]
Definition: bsI2CMsgs.c:482
size_t m_count
vector item count
Definition: bsI2CMsgs.h:111
int BsI2CPackMsg(BsI2CMsgId_T eMsgId, void *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a ITV message in big-endian byte order.
Definition: bsI2CMsgs.c:559
byte_t m_byteswritten
byteswritten
Definition: bsI2CMsgs.h:157
ReqWrite.
Definition: bsI2CMsgs.h:43
size_t m_count
vector item count
Definition: bsI2CMsgs.h:137
byte_t m_readlen
readlen
Definition: bsI2CMsgs.h:66
#define BSI2C_REQTRANS_WRITEBUF_LEN
Definition: bsI2CMsgs.h:75
INLINE_IN_H int BsI2CUnpackReqTrans(byte_t buf[], size_t uMsgLen, BsI2CReqTrans_T *pStruct, bool_t bTrace)
Unpack a BsI2CReqTrans ITV message in big-endian byte order from the input buffer.
Definition: bsI2CMsgs.h:301
#define BSI2C_RSPREAD_READBUF_LEN
Definition: bsI2CMsgs.h:102
#define BSI2C_REQWRITE_WRITEBUF_LEN
Definition: bsI2CMsgs.h:127
const NMMsgDef_T * BsI2CLookupMsgDef(BsI2CMsgId_T eMsgId)
Look up the message definition associated with the message id.
Definition: bsI2CMsgs.c:509
INLINE_IN_H int BsI2CUnpackReqRead(byte_t buf[], size_t uMsgLen, BsI2CReqRead_T *pStruct, bool_t bTrace)
Unpack a BsI2CReqRead ITV message in big-endian byte order from the input buffer. ...
Definition: bsI2CMsgs.h:258
INLINE_IN_H int BsI2CUnpackRspScan(byte_t buf[], size_t uMsgLen, BsI2CRspScan_T *pStruct, bool_t bTrace)
Unpack a BsI2CRspScan ITV message in big-endian byte order from the input buffer. ...
Definition: bsI2CMsgs.h:473
<b><i>BotSense</i></b> package top-level, unifying header declarations.
no message
Definition: bsI2CMsgs.h:39
void * m_pAlign
force alignment
Definition: bsI2CMsgs.h:114
void * m_pAlign
force alignment
Definition: bsI2CMsgs.h:88
INLINE_IN_H int BsI2CPackRspScan(BsI2CRspScan_T *pStruct, byte_t buf[], size_t bufSize, bool_t bTrace)
Pack a BsI2CRspScan ITV message in big-endian byte order into the output buffer.
Definition: bsI2CMsgs.h:452