#ifndef AD0X0_i2c1_H
#define AD0X0_i2c1_H

#include "main.h"
#include "ad0x0_i2c.h"
#include "cmsis_os.h"
#include "queue.h"
#include "task.h"

void    ad0x0_i2c1_push(ADQ_t _ctype,uint8_t _cbyte);
uint8_t ad0x0_i2c1_is_queue_ready(void);
//uint8_t    ad0x0_i2c_isovrflow(void);
void 		ad0x0_i2c1_irq(void);
void 		ad0x0_i2c1_irq_err(void);
void 		ad0x0_i2c1_init(I2C_HandleTypeDef *_phi2c);
void 		ad0x0_i2c1_deinit(void);
uint8_t    ad0x0_i2c1_get_ext_async2(uint8_t *_p_out_handle,void **_p_out_i2c_ext_t);
void    ad0x0_i2c1_push_ext_setfunc(uint8_t _sf_id,void (*_p_cb_func)(uint8_t _sf_id,ad0x0_i2c_desc_s *pdi2c,void *p_i2c_ext_t));
uint8_t    ad0x0_i2c1_get_ext_setbuf(uint8_t *_tx_pbuf,uint8_t *_rx_pbuf, uint8_t _count);
void    ad0x0_i2c1_push_rx_pbuf_stop_ext(uint8_t *_tx_pbuf,uint8_t *_rx_pbuf, uint8_t _count);
void		ad0x0_i2c1_MasterRxCpltCallback(void);
void		ad0x0_i2c1_MasterTxCpltCallback(void);
void		ad0x0_i2c1_ErrorCallback(void);
void		ad0x0_i2c1_AbortCpltCallback(void);
void		ad0x0_i2c1_set_restart_func(void (*_pfunc_on_error)(void), void (*_pfunc_on_i2c_restart)(void));
void		ad0x0_i2c1_restart(void);
void    ad0x0_i2c1_process(uint8_t _from_isr);
void    ad0x0_i2c1_next(uint8_t _from_isr);
void 		ad0x0_i2c1_xqRecieveHandler(void);
//xQueueHandle	get_xqueue_i2c1(void);
void 		ErrProc(void);

#endif 
