37#ifndef DRIVER_PMS3003_H
38#define DRIVER_PMS3003_H
145#define DRIVER_PMS3003_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
153#define DRIVER_PMS3003_LINK_UART_INIT(HANDLE, FUC) (HANDLE)->uart_init = FUC
161#define DRIVER_PMS3003_LINK_UART_DEINIT(HANDLE, FUC) (HANDLE)->uart_deinit = FUC
169#define DRIVER_PMS3003_LINK_UART_READ(HANDLE, FUC) (HANDLE)->uart_read = FUC
177#define DRIVER_PMS3003_LINK_UART_WRITE(HANDLE, FUC) (HANDLE)->uart_write = FUC
185#define DRIVER_PMS3003_LINK_UART_FLUSH(HANDLE, FUC) (HANDLE)->uart_flush = FUC
193#define DRIVER_PMS3003_LINK_RESET_GPIO_INIT(HANDLE, FUC) (HANDLE)->reset_gpio_init = FUC
201#define DRIVER_PMS3003_LINK_RESET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->reset_gpio_deinit = FUC
209#define DRIVER_PMS3003_LINK_RESET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->reset_gpio_write = FUC
217#define DRIVER_PMS3003_LINK_SET_GPIO_INIT(HANDLE, FUC) (HANDLE)->set_gpio_init = FUC
225#define DRIVER_PMS3003_LINK_SET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->set_gpio_deinit = FUC
233#define DRIVER_PMS3003_LINK_SET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->set_gpio_write = FUC
241#define DRIVER_PMS3003_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
249#define DRIVER_PMS3003_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
pms3003_mode_t
pms3003 mode enumeration definition
struct pms3003_data_s pms3003_data_t
pms3003 data structure definition
uint8_t pms3003_set_hard_mode(pms3003_handle_t *handle, pms3003_hard_mode_t mode)
set hard mode
uint8_t pms3003_set_mode(pms3003_handle_t *handle, pms3003_mode_t mode)
set mode
uint8_t pms3003_read(pms3003_handle_t *handle, pms3003_data_t *data)
read the data
uint8_t pms3003_wake_up(pms3003_handle_t *handle)
wake up
uint8_t pms3003_init(pms3003_handle_t *handle)
initialize the chip
pms3003_hard_mode_t
pms3003 hard mode enumeration definition
uint8_t pms3003_deinit(pms3003_handle_t *handle)
close the chip
uint8_t pms3003_reset(pms3003_handle_t *handle)
reset
struct pms3003_info_s pms3003_info_t
pms3003 information structure definition
uint8_t pms3003_sleep(pms3003_handle_t *handle)
sleep
struct pms3003_handle_s pms3003_handle_t
pms3003 handle structure definition
uint8_t pms3003_info(pms3003_info_t *info)
get chip's information
@ PMS3003_HARD_MODE_NORMAL
@ PMS3003_HARD_MODE_SLEEP
uint8_t pms3003_get_buffer(pms3003_handle_t *handle, uint8_t *buf, uint16_t len)
get buffer
uint8_t pms3003_set_buffer(pms3003_handle_t *handle, uint8_t *buf, uint16_t len)
set buffer
pms3003 data structure definition
uint16_t pm2p5_standard_ug_m3
uint16_t pm10_atmospheric_ug_m3
uint16_t pm1p0_standard_ug_m3
uint16_t pm1p0_atmospheric_ug_m3
uint16_t pm2p5_atmospheric_ug_m3
uint16_t pm10_standard_ug_m3
pms3003 handle structure definition
uint8_t(* uart_flush)(void)
uint8_t(* uart_write)(uint8_t *buf, uint16_t len)
void(* delay_ms)(uint32_t ms)
uint8_t(* uart_deinit)(void)
uint8_t(* set_gpio_init)(void)
uint8_t(* set_gpio_deinit)(void)
uint8_t(* reset_gpio_deinit)(void)
uint8_t(* set_gpio_write)(uint8_t level)
void(* debug_print)(const char *const fmt,...)
uint16_t(* uart_read)(uint8_t *buf, uint16_t len)
uint8_t(* reset_gpio_init)(void)
uint8_t(* uart_init)(void)
uint8_t(* reset_gpio_write)(uint8_t level)
pms3003 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v