LibDriver PMSX003
Loading...
Searching...
No Matches
driver_pmsx003.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_PMSX003_H
38#define DRIVER_PMSX003_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
67
76
97
101typedef struct pmsx003_handle_s
102{
103 uint8_t (*reset_gpio_init)(void);
104 uint8_t (*reset_gpio_deinit)(void);
105 uint8_t (*reset_gpio_write)(uint8_t level);
106 uint8_t (*set_gpio_init)(void);
107 uint8_t (*set_gpio_deinit)(void);
108 uint8_t (*set_gpio_write)(uint8_t level);
109 uint8_t (*uart_init)(void);
110 uint8_t (*uart_deinit)(void);
111 uint16_t (*uart_read)(uint8_t *buf, uint16_t len);
112 uint8_t (*uart_flush)(void);
113 uint8_t (*uart_write)(uint8_t *buf, uint16_t len);
114 void (*delay_ms)(uint32_t ms);
115 void (*debug_print)(const char *const fmt, ...);
116 uint8_t inited;
117 uint8_t mode;
119
135
139
146
153#define DRIVER_PMSX003_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
154
161#define DRIVER_PMSX003_LINK_UART_INIT(HANDLE, FUC) (HANDLE)->uart_init = FUC
162
169#define DRIVER_PMSX003_LINK_UART_DEINIT(HANDLE, FUC) (HANDLE)->uart_deinit = FUC
170
177#define DRIVER_PMSX003_LINK_UART_READ(HANDLE, FUC) (HANDLE)->uart_read = FUC
178
185#define DRIVER_PMSX003_LINK_UART_WRITE(HANDLE, FUC) (HANDLE)->uart_write = FUC
186
193#define DRIVER_PMSX003_LINK_UART_FLUSH(HANDLE, FUC) (HANDLE)->uart_flush = FUC
194
201#define DRIVER_PMSX003_LINK_RESET_GPIO_INIT(HANDLE, FUC) (HANDLE)->reset_gpio_init = FUC
202
209#define DRIVER_PMSX003_LINK_RESET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->reset_gpio_deinit = FUC
210
217#define DRIVER_PMSX003_LINK_RESET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->reset_gpio_write = FUC
218
225#define DRIVER_PMSX003_LINK_SET_GPIO_INIT(HANDLE, FUC) (HANDLE)->set_gpio_init = FUC
226
233#define DRIVER_PMSX003_LINK_SET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->set_gpio_deinit = FUC
234
241#define DRIVER_PMSX003_LINK_SET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->set_gpio_write = FUC
242
249#define DRIVER_PMSX003_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
250
257#define DRIVER_PMSX003_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
258
262
269
278uint8_t pmsx003_info(pmsx003_info_t *info);
279
290uint8_t pmsx003_init(pmsx003_handle_t *handle);
291
302uint8_t pmsx003_deinit(pmsx003_handle_t *handle);
303
317uint8_t pmsx003_read(pmsx003_handle_t *handle, pmsx003_data_t *data);
318
329uint8_t pmsx003_reset(pmsx003_handle_t *handle);
330
343
357
369uint8_t pmsx003_sleep(pmsx003_handle_t *handle);
370
382uint8_t pmsx003_wake_up(pmsx003_handle_t *handle);
383
387
394
407uint8_t pmsx003_set_buffer(pmsx003_handle_t *handle, uint8_t *buf, uint16_t len);
408
421uint8_t pmsx003_get_buffer(pmsx003_handle_t *handle, uint8_t *buf, uint16_t len);
422
426
430
431#ifdef __cplusplus
432}
433#endif
434
435#endif
pmsx003_mode_t
pmsx003 mode enumeration definition
uint8_t pmsx003_set_hard_mode(pmsx003_handle_t *handle, pmsx003_hard_mode_t mode)
set hard mode
uint8_t pmsx003_sleep(pmsx003_handle_t *handle)
sleep
uint8_t pmsx003_read(pmsx003_handle_t *handle, pmsx003_data_t *data)
read the data
struct pmsx003_info_s pmsx003_info_t
pmsx003 information structure definition
uint8_t pmsx003_reset(pmsx003_handle_t *handle)
reset
uint8_t pmsx003_info(pmsx003_info_t *info)
get chip's information
pmsx003_hard_mode_t
pmsx003 hard mode enumeration definition
struct pmsx003_handle_s pmsx003_handle_t
pmsx003 handle structure definition
uint8_t pmsx003_deinit(pmsx003_handle_t *handle)
close the chip
uint8_t pmsx003_init(pmsx003_handle_t *handle)
initialize the chip
struct pmsx003_data_s pmsx003_data_t
pmsx003 data structure definition
uint8_t pmsx003_wake_up(pmsx003_handle_t *handle)
wake up
uint8_t pmsx003_set_mode(pmsx003_handle_t *handle, pmsx003_mode_t mode)
set mode
@ PMSX003_MODE_PASSIVE
@ PMSX003_MODE_ACTIVE
@ PMSX003_HARD_MODE_SLEEP
@ PMSX003_HARD_MODE_NORMAL
uint8_t pmsx003_get_buffer(pmsx003_handle_t *handle, uint8_t *buf, uint16_t len)
get buffer
uint8_t pmsx003_set_buffer(pmsx003_handle_t *handle, uint8_t *buf, uint16_t len)
set buffer
pmsx003 data structure definition
uint16_t beyond_0p5um
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 beyond_10um
uint16_t beyond_0p3um
uint16_t pm2p5_atmospheric_ug_m3
uint16_t beyond_2p5um
uint16_t pm10_standard_ug_m3
uint16_t beyond_1p0um
uint16_t beyond_5p0um
pmsx003 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)
pmsx003 information structure definition
uint32_t driver_version
char manufacturer_name[32]