upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
Data Structures | Functions | Typedefs
Include dependency graph for dfrorp.h:

API Description

/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2016 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <signal.h>
#include "dfrorp.h"
#include "upm_utilities.h"
bool shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main()
{
signal(SIGINT, sig_handler);
// Instantiate a DFRobot ORP sensor on analog pin A0 with an analog
// reference voltage of 5.0.
dfrorp_context sensor = dfrorp_init(0, 5.0);
if (!sensor)
{
printf("dfrorp_init() failed.\n");
return(1);
}
// To calibrate:
//
// Disconnect the sensor probe (but leave the sensor interface board
// connected). Then run one of the examples while holding down the
// 'calibrate' button on the device. Read the ORP value reported
// (it should be fairly small).
//
// This value is what you should supply to
// dfrorp_set_orp_cal_offset(). Then reconnect the probe to the
// interface board and you should be ready to go.
//
// DO NOT press the calibrate button on the interface board while
// the probe is attached or you can permanently damage the probe.
// Every second, update and print values
while (shouldRun)
{
dfrorp_update(sensor);
printf("ORP = %f mV\n", dfrorp_get_orp(sensor));
upm_delay(1);
}
printf("Exiting...\n");
dfrorp_close(sensor);
return 0;
}

Go to the source code of this file.

Data Structures

struct  _dfrorp_context
 

Functions

dfrorp_context dfrorp_init (unsigned int apin, float a_ref)
 
void dfrorp_close (dfrorp_context dev)
 
upm_result_t dfrorp_update (const dfrorp_context dev)
 
void dfrorp_set_offset (const dfrorp_context dev, float offset)
 
void dfrorp_set_scale (const dfrorp_context dev, float scale)
 
float dfrorp_get_orp (const dfrorp_context dev)
 
void dfrorp_set_calibration_offset (const dfrorp_context dev, float offset)
 
float dfrorp_get_volts (const dfrorp_context dev)
 
float dfrorp_get_normalized (const dfrorp_context dev)
 

Typedefs

typedef struct _dfrorp_contextdfrorp_context
 

Function Documentation

dfrorp_context dfrorp_init ( unsigned int  apin,
float  a_ref 
)

DFRORP Initializer

Parameters
apinAnalog pin to use.
a_refThe analog reference voltage in use

Here is the call graph for this function:

void dfrorp_close ( dfrorp_context  dev)

DFRORP sensor close function

Here is the caller graph for this function:

upm_result_t dfrorp_update ( const dfrorp_context  dev)

Read the sensor status and update internal state. dfrorp_update() must have been called before calling dfrorp_get_orp(), dfrorp_get_normalized(), or dfrorp_get_volts().

Parameters
devsensor context
Returns
UPM result

Here is the caller graph for this function:

void dfrorp_set_offset ( const dfrorp_context  dev,
float  offset 
)

Set sensor offset. This offset is applied to the ORP value before scaling. Default is 0.0.

Parameters
devsensor context pointer
offsetOffset to apply to the computed ORP value

Here is the caller graph for this function:

void dfrorp_set_scale ( const dfrorp_context  dev,
float  scale 
)

Set sensor scale. The ORP return value is scaled by this value before the offset is applied. Default is 1.0.

Parameters
devsensor context pointer
scaleThe scale to apply to the computed ORP value

Here is the caller graph for this function:

float dfrorp_get_orp ( const dfrorp_context  dev)

Get computed ORP (in millivolts) value from the sensor. dfrorp_update() must have been called prior to calling this function.

Parameters
devsensor context pointer
Returns
ORP value in millivolts

Here is the caller graph for this function:

void dfrorp_set_calibration_offset ( const dfrorp_context  dev,
float  offset 
)

Set the calibration offset for the device. This is determined by disconnecting the sensor probe (but leaving the sensor interface board connected). Then run one of the examples while holding down the 'calibrate' button on the device. Read the ORP value reported.

This (low) ORP value is what you should supply to this function. Then reconnect the probe to the interface board and you should be ready to go.

DO NOT press the calibrate button on the interface board while the probe is attached or you can permanently damage the probe.

Parameters
devsensor context pointer
offsetThe ORP offset obtained during calibration.

Here is the caller graph for this function:

float dfrorp_get_volts ( const dfrorp_context  dev)

Get the raw measured volts from the sensor. dfrorp_update() must have been called prior to calling this function.

Parameters
devsensor context pointer
Returns
voltage read from the sensor

Here is the caller graph for this function:

float dfrorp_get_normalized ( const dfrorp_context  dev)

Get the raw normalized ADC values from the sensor. dfrorp_update() must have been called prior to calling this function.

Parameters
devsensor context pointer
Returns
normalized ADC value read from the sensor

Here is the caller graph for this function:

Typedef Documentation

typedef struct _dfrorp_context * dfrorp_context

Device context