37#ifndef DRIVER_EM4095_H
38#define DRIVER_EM4095_H
62#ifndef EM4095_MAX_LENGTH
63 #define EM4095_MAX_LENGTH 384
160#define DRIVER_EM4095_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
168#define DRIVER_EM4095_LINK_SHD_GPIO_INIT(HANDLE, FUC) (HANDLE)->shd_gpio_init = FUC
176#define DRIVER_EM4095_LINK_SHD_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->shd_gpio_deinit = FUC
184#define DRIVER_EM4095_LINK_SHD_GPIO_WRITE(HANDLE, FUC) (HANDLE)->shd_gpio_write = FUC
192#define DRIVER_EM4095_LINK_MOD_GPIO_INIT(HANDLE, FUC) (HANDLE)->mod_gpio_init = FUC
200#define DRIVER_EM4095_LINK_MOD_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->mod_gpio_deinit = FUC
208#define DRIVER_EM4095_LINK_MOD_GPIO_WRITE(HANDLE, FUC) (HANDLE)->mod_gpio_write = FUC
216#define DRIVER_EM4095_LINK_DEMOD_GPIO_INIT(HANDLE, FUC) (HANDLE)->demod_gpio_init = FUC
224#define DRIVER_EM4095_LINK_DEMOD_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->demod_gpio_deinit = FUC
232#define DRIVER_EM4095_LINK_DEMOD_GPIO_READ(HANDLE, FUC) (HANDLE)->demod_gpio_read = FUC
240#define DRIVER_EM4095_LINK_TIMESTAMP_READ(HANDLE, FUC) (HANDLE)->timestamp_read = FUC
248#define DRIVER_EM4095_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
256#define DRIVER_EM4095_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
264#define DRIVER_EM4095_LINK_RECEIVE_CALLBACK(HANDLE, FUC) (HANDLE)->receive_callback = FUC
uint8_t em4095_init(em4095_handle_t *handle)
initialize the chip
struct em4095_handle_s em4095_handle_t
em4095 handle structure definition
struct em4095_time_s em4095_time_t
em4095 time structure definition
uint8_t em4095_get_div(em4095_handle_t *handle, uint32_t *clock_div)
get irq div
uint8_t em4095_irq_handler(em4095_handle_t *handle)
irq handler
uint8_t em4095_copy_decode_buffer(em4095_handle_t *handle, uint8_t *buf, uint16_t *len)
copy decode buffer
struct em4095_decode_s em4095_decode_t
em4095 decode structure definition
uint8_t em4095_write(em4095_handle_t *handle, uint8_t *buf, uint16_t len)
write data
uint8_t em4095_power_down(em4095_handle_t *handle)
power down
#define EM4095_MAX_LENGTH
em4095 max length definition
uint8_t em4095_read(em4095_handle_t *handle, uint16_t len)
read data
uint8_t em4095_set_div(em4095_handle_t *handle, uint32_t clock_div)
set irq div
uint8_t em4095_power_on(em4095_handle_t *handle)
power on
em4095_mode_t
em4095 mode enumeration definition
uint8_t em4095_deinit(em4095_handle_t *handle)
close the chip
struct em4095_info_s em4095_info_t
em4095 information structure definition
uint8_t em4095_info(em4095_info_t *info)
get chip's information
em4095 decode structure definition
em4095 handle structure definition
uint8_t(* shd_gpio_init)(void)
void(* delay_ms)(uint32_t ms)
uint8_t(* demod_gpio_init)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* shd_gpio_deinit)(void)
uint8_t(* shd_gpio_write)(uint8_t data)
em4095_decode_t decode[EM4095_MAX_LENGTH]
void(* receive_callback)(em4095_mode_t mode, em4095_decode_t *buf, uint16_t len)
uint8_t(* mod_gpio_write)(uint8_t data)
uint8_t(* demod_gpio_deinit)(void)
uint8_t(* demod_gpio_read)(uint8_t *data)
uint8_t(* timestamp_read)(em4095_time_t *t)
uint8_t(* mod_gpio_deinit)(void)
uint8_t(* mod_gpio_init)(void)
em4095 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v
em4095 time structure definition