LibDriver AGS10
Loading...
Searching...
No Matches
driver_ags10.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_AGS10_H
38#define DRIVER_AGS10_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
62typedef struct ags10_handle_s
63{
64 uint8_t (*iic_init)(void);
65 uint8_t (*iic_deinit)(void);
66 uint8_t (*iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
67 uint8_t (*iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
68 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
69 void (*delay_ms)(uint32_t ms);
70 void (*debug_print)(const char *const fmt, ...);
71 uint8_t inited;
72 uint8_t iic_addr;
74
90
94
101
108#define DRIVER_AGS10_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
109
116#define DRIVER_AGS10_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
117
124#define DRIVER_AGS10_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
125
132#define DRIVER_AGS10_LINK_IIC_READ_CMD(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
133
140#define DRIVER_AGS10_LINK_IIC_WRITE_CMD(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
141
148#define DRIVER_AGS10_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
149
156#define DRIVER_AGS10_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
157
164#define DRIVER_AGS10_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
165
169
176
185uint8_t ags10_info(ags10_info_t *info);
186
197uint8_t ags10_init(ags10_handle_t *handle);
198
209uint8_t ags10_deinit(ags10_handle_t *handle);
210
225uint8_t ags10_read_tvoc(ags10_handle_t *handle, uint32_t *raw, uint32_t *ppb);
226
238uint8_t ags10_zero_point_calibration(ags10_handle_t *handle, uint16_t raw);
239
251
263
277uint8_t ags10_get_resistance(ags10_handle_t *handle, uint32_t *raw, double *ohm);
278
291uint8_t ags10_get_version(ags10_handle_t *handle, uint8_t *version);
292
304uint8_t ags10_modify_slave_address(ags10_handle_t *handle, uint8_t addr_7bit);
305
316uint8_t ags10_set_slave_address(ags10_handle_t *handle, uint8_t addr);
317
328uint8_t ags10_get_slave_address(ags10_handle_t *handle, uint8_t *addr);
329
333
340
354uint8_t ags10_set_reg(ags10_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
355
369uint8_t ags10_get_reg(ags10_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
370
374
378
379#ifdef __cplusplus
380}
381#endif
382
383#endif
uint8_t ags10_deinit(ags10_handle_t *handle)
close the chip
uint8_t ags10_info(ags10_info_t *info)
get chip's information
uint8_t ags10_current_resistance_zero_point_calibration(ags10_handle_t *handle)
zero point calibration using current resistance
uint8_t ags10_zero_point_calibration(ags10_handle_t *handle, uint16_t raw)
zero point calibration
struct ags10_info_s ags10_info_t
ags10 information structure definition
uint8_t ags10_get_resistance(ags10_handle_t *handle, uint32_t *raw, double *ohm)
get resistance
uint8_t ags10_get_slave_address(ags10_handle_t *handle, uint8_t *addr)
get slave address
uint8_t ags10_read_tvoc(ags10_handle_t *handle, uint32_t *raw, uint32_t *ppb)
read tvoc
uint8_t ags10_modify_slave_address(ags10_handle_t *handle, uint8_t addr_7bit)
modify slave address
uint8_t ags10_get_version(ags10_handle_t *handle, uint8_t *version)
get version
uint8_t ags10_reset_zero_point_calibration(ags10_handle_t *handle)
reset zero point calibration
struct ags10_handle_s ags10_handle_t
ags10 handle structure definition
uint8_t ags10_set_slave_address(ags10_handle_t *handle, uint8_t addr)
set slave address
uint8_t ags10_init(ags10_handle_t *handle)
initialize the chip
uint8_t ags10_set_reg(ags10_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
uint8_t ags10_get_reg(ags10_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
ags10 handle structure definition
void(* delay_ms)(uint32_t ms)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
uint8_t(* iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
ags10 information structure definition
float temperature_max
float supply_voltage_max_v
uint32_t driver_version
float temperature_min
float max_current_ma
char manufacturer_name[32]
float supply_voltage_min_v
char interface[8]
char chip_name[32]