37#ifndef DRIVER_AMG8833_H
38#define DRIVER_AMG8833_H
141 uint8_t (*
iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
142 uint8_t (*
iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
183#define DRIVER_AMG8833_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
191#define DRIVER_AMG8833_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
199#define DRIVER_AMG8833_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
207#define DRIVER_AMG8833_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
215#define DRIVER_AMG8833_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
223#define DRIVER_AMG8833_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
231#define DRIVER_AMG8833_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
239#define DRIVER_AMG8833_LINK_RECEIVE_CALLBACK(HANDLE, FUC) (HANDLE)->receive_callback = FUC
amg8833_address_t
amg8833 address enumeration definition
uint8_t amg8833_get_frame_rate(amg8833_handle_t *handle, amg8833_frame_rate_t *rate)
get the frame rate
amg8833_frame_rate_t
amg8833 frame rate enumeration definition
uint8_t amg8833_set_interrupt(amg8833_handle_t *handle, amg8833_bool_t enable)
enable or disable the interrupt
struct amg8833_handle_s amg8833_handle_t
amg8833 handle structure definition
amg8833_bool_t
amg8833 bool enumeration definition
uint8_t amg8833_get_status(amg8833_handle_t *handle, uint8_t *status)
get the status
uint8_t amg8833_clear_status(amg8833_handle_t *handle, amg8833_status_t status)
clear the interrupt status
amg8833_average_mode_t
amg8833 average mode enumeration definition
uint8_t amg8833_set_addr_pin(amg8833_handle_t *handle, amg8833_address_t addr_pin)
set the iic address pin
amg8833_mode_t
amg8833 mode enumeration definition
uint8_t amg8833_get_mode(amg8833_handle_t *handle, amg8833_mode_t *mode)
get the mode
uint8_t amg8833_get_interrupt_table(amg8833_handle_t *handle, uint8_t table[8][1])
get the interrupt table
uint8_t amg8833_deinit(amg8833_handle_t *handle)
close the chip
struct amg8833_info_s amg8833_info_t
amg8833 information structure definition
uint8_t amg8833_get_interrupt_hysteresis_level(amg8833_handle_t *handle, int16_t *level)
get the interrupt hysteresis level
uint8_t amg8833_interrupt_level_convert_to_data(amg8833_handle_t *handle, int16_t reg, float *temp)
convert the register raw data to the interrupt level
uint8_t amg8833_get_average_mode(amg8833_handle_t *handle, amg8833_average_mode_t *mode)
get the average_mode
uint8_t amg8833_reset(amg8833_handle_t *handle, amg8833_reset_type_t type)
reset the chip
uint8_t amg8833_set_interrupt_low_level(amg8833_handle_t *handle, int16_t level)
set the interrupt low level
uint8_t amg8833_get_interrupt_high_level(amg8833_handle_t *handle, int16_t *level)
get the interrupt high level
uint8_t amg8833_info(amg8833_info_t *info)
get chip's information
uint8_t amg8833_set_interrupt_mode(amg8833_handle_t *handle, amg8833_interrupt_mode_t mode)
set the interrupt mode
uint8_t amg8833_get_interrupt_mode(amg8833_handle_t *handle, amg8833_interrupt_mode_t *mode)
get the interrupt mode
uint8_t amg8833_read_temperature_array(amg8833_handle_t *handle, int16_t raw[8][8], float temp[8][8])
read the temperature array
uint8_t amg8833_set_mode(amg8833_handle_t *handle, amg8833_mode_t mode)
set the mode
uint8_t amg8833_get_addr_pin(amg8833_handle_t *handle, amg8833_address_t *addr_pin)
get the iic address pin
amg8833_reset_type_t
amg8833 reset type enumeration definition
amg8833_interrupt_mode_t
amg8833 interrupt mode enumeration definition
uint8_t amg8833_set_average_mode(amg8833_handle_t *handle, amg8833_average_mode_t mode)
set the average_mode
uint8_t amg8833_set_interrupt_high_level(amg8833_handle_t *handle, int16_t level)
set the interrupt high level
uint8_t amg8833_read_temperature(amg8833_handle_t *handle, int16_t *raw, float *temp)
read the temperature
uint8_t amg8833_get_interrupt_low_level(amg8833_handle_t *handle, int16_t *level)
get the interrupt low level
uint8_t amg8833_irq_handler(amg8833_handle_t *handle)
irq handler
uint8_t amg8833_get_interrupt(amg8833_handle_t *handle, amg8833_bool_t *enable)
get the interrupt status
uint8_t amg8833_set_frame_rate(amg8833_handle_t *handle, amg8833_frame_rate_t rate)
set the frame rate
uint8_t amg8833_interrupt_level_convert_to_register(amg8833_handle_t *handle, float temp, int16_t *reg)
convert the interrupt level to the register raw data
amg8833_status_t
amg8833 status enumeration definition
uint8_t amg8833_set_interrupt_hysteresis_level(amg8833_handle_t *handle, int16_t level)
set the interrupt hysteresis level
uint8_t amg8833_init(amg8833_handle_t *handle)
initialize the chip
@ AMG8833_FRAME_RATE_10_FPS
@ AMG8833_FRAME_RATE_1_FPS
@ AMG8833_AVERAGE_MODE_TWICE
@ AMG8833_AVERAGE_MODE_ONCE
@ AMG8833_MODE_STAND_BY_60S
@ AMG8833_MODE_STAND_BY_10S
@ AMG8833_RESET_TYPE_INIT
@ AMG8833_RESET_TYPE_FLAG
@ AMG8833_INTERRUPT_MODE_DIFFERENCE
@ AMG8833_INTERRUPT_MODE_ABSOLUTE
uint8_t amg8833_set_reg(amg8833_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
uint8_t amg8833_get_reg(amg8833_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
amg8833 handle structure definition
void(* delay_ms)(uint32_t ms)
void(* receive_callback)(uint8_t type)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
amg8833 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v