27#ifndef JUNO_I2C_IO_API_H
28#define JUNO_I2C_IO_API_H
81#define ReadMsg(iAddr, pcBuff, zBuffSize) \
84 .tRead = (JUNO_I2C_IO_MSG_R_T) \
86 .tHdr = {JUNO_I2C_IO_MSG_TYPE_R, iAddr}, \
87 .ptReadBuff = pcBuff, \
88 .zReadBuffSize = zBuffSize \
92#define WriteMsg(iAddr, pvBuff, zBuffSize) \
95 .tWrite = (JUNO_I2C_IO_MSG_W_T) \
97 .tHdr = {JUNO_I2C_IO_MSG_TYPE_W, iAddr}, \
98 .ptWriteBuff = pvBuff, \
99 .zWriteBuffSize = zBuffSize \
105#define JUNO_I2C_IO_TRANSFER(...) (JUNO_I2C_IO_MSG_T[]){__VA_ARGS__}
enum JUNO_I2C_IO_MSG_TYPE_TAG JUNO_I2C_IO_MSG_TYPE_T
JUNO_I2C_IO_MSG_TYPE_TAG
Definition i2c_io_api.h:48
@ JUNO_I2C_IO_MSG_TYPE_R
Definition i2c_io_api.h:51
@ JUNO_I2C_IO_MSG_TYPE_RESERVED
Definition i2c_io_api.h:49
@ JUNO_I2C_IO_MSG_TYPE_W
Definition i2c_io_api.h:50
#define JUNO_MODULE_BASE(name, API, members)
Definition module.h:81
#define JUNO_MODULE_EMPTY
Definition module.h:50
#define JUNO_MODULE_BASE_DECLARE(name)
Definition module.h:31
#define JUNO_MODULE_DECLARE(name)
Definition module.h:26
enum JUNO_STATUS_TAG JUNO_STATUS_T
Definition i2c_io_api.h:108
JUNO_STATUS_T(* Transfer)(JUNO_I2C_IO_T *ptI2c, const JUNO_I2C_IO_MSG_T *ptArrMsgs, size_t zMsgArrLen)
Definition i2c_io_api.h:120
Definition i2c_io_api.h:55
JUNO_I2C_IO_MSG_TYPE_T tType
Definition i2c_io_api.h:56
uint8_t iAddr
Definition i2c_io_api.h:57
Definition i2c_io_api.h:61
uint8_t * ptReadBuff
Definition i2c_io_api.h:63
size_t zReadBuffSize
Definition i2c_io_api.h:64
JUNO_I2C_IO_MSG_HDR_T tHdr
Definition i2c_io_api.h:62
Definition i2c_io_api.h:68
const void * ptWriteBuff
Definition i2c_io_api.h:70
JUNO_I2C_IO_MSG_HDR_T tHdr
Definition i2c_io_api.h:69
size_t zWriteBuffSize
Definition i2c_io_api.h:71
Definition i2c_io_api.h:75
JUNO_I2C_IO_MSG_W_T tWrite
Definition i2c_io_api.h:77
JUNO_I2C_IO_MSG_HDR_T tHdr
Definition i2c_io_api.h:76
JUNO_I2C_IO_MSG_R_T tRead
Definition i2c_io_api.h:78