upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
hka5.h
Go to the documentation of this file.
1 /*
2  * Author: Jon Trulson <jtrulson@ics.com>
3  * Copyright (c) 2016 Intel Corporation.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining
6  * a copy of this software and associated documentation files (the
7  * "Software"), to deal in the Software without restriction, including
8  * without limitation the rights to use, copy, modify, merge, publish,
9  * distribute, sublicense, and/or sell copies of the Software, and to
10  * permit persons to whom the Software is furnished to do so, subject to
11  * the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be
14  * included in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  */
24 
25 #pragma once
26 
27 #include <stdint.h>
28 #include "upm.h"
29 #include "mraa/uart.h"
30 #include "mraa/gpio.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
47  typedef struct _hka5_context {
48  mraa_uart_context uart;
49 
50  // these two are optional
51  mraa_gpio_context gpio_set;
52  mraa_gpio_context gpio_reset;
53 
54  // PM 1.0
55  uint16_t pm1;
56  // PM 2.5
57  uint16_t pm2_5;
58  // PM 10.0
59  uint16_t pm10;
60  } *hka5_context;
61 
72  hka5_context hka5_init(unsigned int uart, int set_pin, int reset_pin);
73 
77  void hka5_close(hka5_context dev);
78 
88  upm_result_t hka5_enable(const hka5_context dev, bool enable);
89 
97  upm_result_t hka5_reset(const hka5_context dev);
98 
106  upm_result_t hka5_update(const hka5_context dev);
107 
116  unsigned int hka5_get_pm1(const hka5_context dev);
117 
126  unsigned int hka5_get_pm2_5(const hka5_context dev);
127 
136  unsigned int hka5_get_pm10(const hka5_context dev);
137 
138 #ifdef __cplusplus
139 }
140 #endif
unsigned int hka5_get_pm1(const hka5_context dev)
Definition: hka5.c:246
upm_result_t hka5_reset(const hka5_context dev)
Definition: hka5.c:160
upm_result_t hka5_update(const hka5_context dev)
Definition: hka5.c:175
unsigned int hka5_get_pm2_5(const hka5_context dev)
Definition: hka5.c:253
Definition: hka5.h:47
upm_result_t hka5_enable(const hka5_context dev, bool enable)
Definition: hka5.c:145
struct _hka5_context * hka5_context
unsigned int hka5_get_pm10(const hka5_context dev)
Definition: hka5.c:260
void hka5_close(hka5_context dev)
Definition: hka5.c:128
hka5_context hka5_init(unsigned int uart, int set_pin, int reset_pin)
Definition: hka5.c:51