37#ifndef DRIVER_AS3935_H
38#define DRIVER_AS3935_H
151 uint8_t (*
iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
152 uint8_t (*
iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
155 uint8_t (*
spi_read)(uint8_t reg, uint8_t *buf, uint16_t len);
156 uint8_t (*
spi_write)(uint8_t reg, uint8_t *buf, uint16_t len);
197#define DRIVER_AS3935_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
205#define DRIVER_AS3935_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
213#define DRIVER_AS3935_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
221#define DRIVER_AS3935_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
229#define DRIVER_AS3935_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
237#define DRIVER_AS3935_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
245#define DRIVER_AS3935_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
253#define DRIVER_AS3935_LINK_SPI_READ(HANDLE, FUC) (HANDLE)->spi_read = FUC
261#define DRIVER_AS3935_LINK_SPI_WRITE(HANDLE, FUC) (HANDLE)->spi_write = FUC
269#define DRIVER_AS3935_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
277#define DRIVER_AS3935_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
285#define DRIVER_AS3935_LINK_RECEIVE_CALLBACK(HANDLE, FUC) (HANDLE)->receive_callback = FUC
uint8_t as3935_set_frequency_division_ration(as3935_handle_t *handle, as3935_frequency_division_ration_t division)
set frequency division ration
uint8_t as3935_set_interface(as3935_handle_t *handle, as3935_interface_t interface)
set the chip interface
uint8_t as3935_set_clear_statistics(as3935_handle_t *handle, as3935_bool_t enable)
enable or disable clear statistics
uint8_t as3935_set_power_down(as3935_handle_t *handle, as3935_bool_t enable)
set power down
uint8_t as3935_get_lightning_min_number(as3935_handle_t *handle, as3935_lightning_min_number_t *number)
get lightning min number
uint8_t as3935_get_watchdog_threshold(as3935_handle_t *handle, uint8_t *threshold)
get watchdog threshold
uint8_t as3935_get_spike_rejection(as3935_handle_t *handle, uint8_t *rejection)
get spike rejection
uint8_t as3935_set_watchdog_threshold(as3935_handle_t *handle, uint8_t threshold)
set watchdog threshold
uint8_t as3935_get_frequency_division_ration(as3935_handle_t *handle, as3935_frequency_division_ration_t *division)
get frequency division ration
uint8_t as3935_info(as3935_info_t *info)
get chip's information
uint8_t as3935_set_spike_rejection(as3935_handle_t *handle, uint8_t rejection)
set spike rejection
uint8_t as3935_get_noise_floor_level(as3935_handle_t *handle, as3935_noise_floor_level_t *level)
get noise floor level
uint8_t as3935_get_internal_tuning_capacitor(as3935_handle_t *handle, uint8_t *cap)
get internal tuning capacitor
uint8_t as3935_internal_tuning_capacitor_convert_to_register(as3935_handle_t *handle, float pf, uint8_t *reg)
convert the internal tuning capacitor to the register raw data
uint8_t as3935_get_clear_statistics(as3935_handle_t *handle, as3935_bool_t *enable)
get clear statistics status
uint8_t as3935_set_noise_floor_level(as3935_handle_t *handle, as3935_noise_floor_level_t level)
set noise floor level
uint8_t as3935_set_calibrate_rc_osc(as3935_handle_t *handle)
calibrate rc osc
uint8_t as3935_deinit(as3935_handle_t *handle)
close the chip
uint8_t as3935_get_power_down(as3935_handle_t *handle, as3935_bool_t *enable)
get power down
uint8_t as3935_get_interface(as3935_handle_t *handle, as3935_interface_t *interface)
get the chip interface
uint8_t as3935_set_afe_gain_boost(as3935_handle_t *handle, as3935_afe_gain_t gain)
set afe gain boost
as3935_interrupt_status_t
as3935 interrupt status enumeration definition
uint8_t as3935_read_single_lightning_energy(as3935_handle_t *handle, uint32_t *energy)
read single lightning energy
as3935_address_t
as3935 address enumeration definition
as3935_interface_t
as3935 interface enumeration definition
uint8_t as3935_set_mask_disturber(as3935_handle_t *handle, as3935_bool_t enable)
enable or disable mask disturber
uint8_t as3935_get_mask_disturber(as3935_handle_t *handle, as3935_bool_t *enable)
get mask disturber status
uint8_t as3935_set_internal_tuning_capacitor(as3935_handle_t *handle, uint8_t cap)
set internal tuning capacitor
struct as3935_info_s as3935_info_t
as3935 information structure definition
uint8_t as3935_get_addr_pin(as3935_handle_t *handle, as3935_address_t *addr_pin)
get the iic address pin
uint8_t as3935_init(as3935_handle_t *handle)
initialize the chip
struct as3935_handle_s as3935_handle_t
as3935 handle structure definition
uint8_t as3935_get_interrupt_status(as3935_handle_t *handle, as3935_interrupt_status_t *status)
get interrupt status
uint8_t as3935_get_afe_gain_boost(as3935_handle_t *handle, as3935_afe_gain_t *gain)
get afe gain boost
uint8_t as3935_get_timer_rc_osc_calibration_done(as3935_handle_t *handle, as3935_bool_t *enable)
get timer rc osc calibration done status
as3935_frequency_division_ration_t
as3935 frequency division ration enumeration definition
uint8_t as3935_set_lightning_min_number(as3935_handle_t *handle, as3935_lightning_min_number_t number)
set lightning min number
uint8_t as3935_set_addr_pin(as3935_handle_t *handle, as3935_address_t addr_pin)
set the iic address pin
uint8_t as3935_get_system_rc_osc_calibration_done(as3935_handle_t *handle, as3935_bool_t *enable)
get system rc osc calibration done status
uint8_t as3935_set_system_rc_osc_display_on_irq(as3935_handle_t *handle, as3935_bool_t enable)
enable or disable system rc osc display on irq
as3935_noise_floor_level_t
as3935 noise floor level enumeration definition
uint8_t as3935_read_distance(as3935_handle_t *handle, uint8_t *raw, int8_t *km)
read distance
uint8_t as3935_set_lc_osc_display_on_irq(as3935_handle_t *handle, as3935_bool_t enable)
enable or disable lc osc display on irq
uint8_t as3935_get_system_rc_osc_calibration_not_ok(as3935_handle_t *handle, as3935_bool_t *enable)
get system rc osc calibration not ok status
uint8_t as3935_irq_handler(as3935_handle_t *handle)
irq handler
as3935_bool_t
as3935 bool enumeration definition
uint8_t as3935_get_display_lc_osc_on_irq(as3935_handle_t *handle, as3935_bool_t *enable)
get lc osc display on irq status
uint8_t as3935_reset_default(as3935_handle_t *handle)
reset to default
as3935_lightning_min_number_t
as3935 lightning min number enumeration definition
uint8_t as3935_internal_tuning_capacitor_convert_to_data(as3935_handle_t *handle, uint8_t reg, float *pf)
convert the register raw data to the internal tuning capacitor
uint8_t as3935_set_timer_rc_osc_display_on_irq(as3935_handle_t *handle, as3935_bool_t enable)
enable or disable timer rc osc display on irq
uint8_t as3935_get_timer_rc_osc_calibration_not_ok(as3935_handle_t *handle, as3935_bool_t *enable)
get timer rc osc calibration not ok status
as3935_afe_gain_t
as3935 afe gain enumeration definition
uint8_t as3935_get_timer_rc_osc_display_on_irq(as3935_handle_t *handle, as3935_bool_t *enable)
get timer rc osc display on irq status
uint8_t as3935_get_system_rc_osc_display_on_irq(as3935_handle_t *handle, as3935_bool_t *enable)
get system rc osc display on irq status
@ AS3935_INTERRUPT_STATUS_DISTURBER_DETECTED
@ AS3935_INTERRUPT_STATUS_LIGHTNING_INTERRUPT
@ AS3935_INTERRUPT_STATUS_NOISE_LEVEL_TOO_HIGH
@ AS3935_FREQUENCY_DIVISION_RATION_32
@ AS3935_FREQUENCY_DIVISION_RATION_16
@ AS3935_FREQUENCY_DIVISION_RATION_128
@ AS3935_FREQUENCY_DIVISION_RATION_64
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_1570_INDOOR_112
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_630_INDOOR_45
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_1140_INDOOR_95
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_860_INDOOR_62
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_390_INDOOR_28
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_2000_INDOOR_146
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_1100_INDOOR_78
@ AS3935_NOISE_FLOOR_LEVEL_OUTDOOR_1800_INDOOR_130
@ AS3935_LIGHTNING_MIN_NUMBER_1
@ AS3935_LIGHTNING_MIN_NUMBER_9
@ AS3935_LIGHTNING_MIN_NUMBER_16
@ AS3935_LIGHTNING_MIN_NUMBER_5
@ AS3935_AFE_GAIN_OUTDOOR
uint8_t as3935_get_reg(as3935_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
uint8_t as3935_set_reg(as3935_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
as3935 handle structure definition
uint8_t(* spi_init)(void)
void(* delay_ms)(uint32_t ms)
uint8_t(* spi_read)(uint8_t reg, uint8_t *buf, uint16_t len)
void(* receive_callback)(uint8_t type)
uint8_t(* spi_write)(uint8_t reg, uint8_t *buf, uint16_t len)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* spi_deinit)(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)
as3935 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v