upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
dfrorp.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/aio.h"
30 #include "mraa/gpio.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
47  typedef struct _dfrorp_context {
48  mraa_aio_context aio;
49 
50  // analog ADC resolution
51  float a_res;
52 
53  // analog reference voltage
54  float a_ref;
55 
56  // for external offset and scaling of the results
57  float offset;
58  float scale;
59 
60  // For sensor interface board calibration
61  float orp_cal_offset;
62 
63  // our measurements
64 
65  // ORP measurement (mV)
66  float orp;
67 
68  // volts
69  float volts;
70 
71  // normalized ADC
72  float normalized;
73  } *dfrorp_context;
74 
81  dfrorp_context dfrorp_init(unsigned int apin, float a_ref);
82 
86  void dfrorp_close(dfrorp_context dev);
87 
96  upm_result_t dfrorp_update(const dfrorp_context dev);
97 
105  void dfrorp_set_offset(const dfrorp_context dev, float offset);
106 
114  void dfrorp_set_scale(const dfrorp_context dev, float scale);
115 
124  float dfrorp_get_orp(const dfrorp_context dev);
125 
143  void dfrorp_set_calibration_offset(const dfrorp_context dev, float offset);
144 
152  float dfrorp_get_volts(const dfrorp_context dev);
153 
162  float dfrorp_get_normalized(const dfrorp_context dev);
163 
164 #ifdef __cplusplus
165 }
166 #endif
void dfrorp_set_scale(const dfrorp_context dev, float scale)
Definition: dfrorp.c:119
float dfrorp_get_orp(const dfrorp_context dev)
Definition: dfrorp.c:145
float dfrorp_get_normalized(const dfrorp_context dev)
Definition: dfrorp.c:159
float dfrorp_get_volts(const dfrorp_context dev)
Definition: dfrorp.c:152
dfrorp_context dfrorp_init(unsigned int apin, float a_ref)
Definition: dfrorp.c:61
Definition: dfrorp.h:47
upm_result_t dfrorp_update(const dfrorp_context dev)
Definition: dfrorp.c:126
void dfrorp_set_calibration_offset(const dfrorp_context dev, float offset)
Definition: dfrorp.c:166
void dfrorp_close(dfrorp_context dev)
Definition: dfrorp.c:102
void dfrorp_set_offset(const dfrorp_context dev, float offset)
Definition: dfrorp.c:112
struct _dfrorp_context * dfrorp_context