airquality4  2.0.0.0
airquality4.h
Go to the documentation of this file.
1 /*
2  * MikroSDK - MikroE Software Development Kit
3  * Copyright (c) 2019, MikroElektronika - www.mikroe.com
4  * All rights reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22  * SOFTWARE.
23  */
24 
33 // ----------------------------------------------------------------------------
34 
35 #ifndef AIRQUALITY4_H
36 #define AIRQUALITY4_H
37 
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_i2c_master.h"
41 
42 
43 // -------------------------------------------------------------- PUBLIC MACROS
53 #define AIRQUALITY4_MAP_MIKROBUS( cfg, mikrobus ) \
54  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
55  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA )
56 
62 #define AIRQUALITY4_RETVAL uint8_t
63 
64 #define AIRQUALITY4_OK 0x00
65 #define AIRQUALITY4_INIT_ERROR 0xFF
66  // End group macro
69 // --------------------------------------------------------------- PUBLIC TYPES
78 typedef struct
79 {
80 
81  // Modules
82 
83  i2c_master_t i2c;
84 
85  // ctx variable
86 
87  hal_i2c_address_t slave_address;
88 
90 
94 typedef struct
95 {
96  // Communication gpio pins
97 
98  pin_name_t scl;
99  pin_name_t sda;
100 
101  // static variable
102 
103  hal_i2c_speed_t i2c_speed;
104  hal_i2c_address_t i2c_address;
105 
107  // End types group
109 // ----------------------------------------------- PUBLIC FUNCTION DECLARATIONS
110 
116 #ifdef __cplusplus
117 extern "C"{
118 #endif
119 
129 
138 
147 
156 void air_quality4_get_id ( airquality4_t *ctx, uint8_t *data_buf);
157 
166 
176 void air_quality4_measure_quality ( airquality4_t *ctx, uint8_t *read_air );
177 
187 void air_quality4_get_co2_and_tvoc ( airquality4_t *ctx, uint16_t *value);
188 
198 void air_quality4_measure_signal ( airquality4_t *ctx, uint8_t *read_air);
199 
209 void air_quality4_get_h2_and_ethon ( airquality4_t *ctx, uint16_t *value );
210 
221 void air_quality4_get_baseline ( airquality4_t *ctx, uint16_t *read_air);
222 
231 
241 
250 void air_quality4_get_version ( airquality4_t *ctx, uint8_t *version );
251 
260 void air_quality4_get_version ( airquality4_t *ctx, uint8_t *version );
261 
262 #ifdef __cplusplus
263 }
264 #endif
265 #endif // _AIRQUALITY4_H_
266  // End public_function group
269 
270 // ------------------------------------------------------------------------- END
void air_quality4_get_id(airquality4_t *ctx, uint8_t *data_buf)
Get ID function.
void air_quality4_get_version(airquality4_t *ctx, uint8_t *version)
Get version function.
hal_i2c_speed_t i2c_speed
Definition: airquality4.h:103
Click ctx object definition.
Definition: airquality4.h:78
hal_i2c_address_t slave_address
Definition: airquality4.h:87
void airquality4_default_cfg(airquality4_t *ctx)
Click Default Configuration function.
void air_quality4_soft_reset(airquality4_t *ctx)
Software reset function.
void air_quality4_get_co2_and_tvoc(airquality4_t *ctx, uint16_t *value)
Read CO2 and TVOC function.
Click configuration structure definition.
Definition: airquality4.h:94
i2c_master_t i2c
Definition: airquality4.h:83
void air_quality4_set_baseline(airquality4_t *ctx)
Set Baseline function.
#define AIRQUALITY4_RETVAL
Definition: airquality4.h:62
void airquality4_cfg_setup(airquality4_cfg_t *cfg)
Config Object Initialization function.
void air_quality4_get_baseline(airquality4_t *ctx, uint16_t *read_air)
Get Baseline function.
void air_quality4_measure_signal(airquality4_t *ctx, uint8_t *read_air)
Signal measurment function.
hal_i2c_address_t i2c_address
Definition: airquality4.h:104
void air_quality4_get_h2_and_ethon(airquality4_t *ctx, uint16_t *value)
Read H2 and EthOH function.
AIRQUALITY4_RETVAL airquality4_init(airquality4_t *ctx, airquality4_cfg_t *cfg)
Initialization function.
pin_name_t sda
Definition: airquality4.h:99
pin_name_t scl
Definition: airquality4.h:98
void air_quality4_dev_init(airquality4_t *ctx)
Initialization function.
void air_quality4_measure_quality(airquality4_t *ctx, uint8_t *read_air)
Quality measurment function.