upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
Data Structures | Functions | Typedefs
mb704x.h File Reference
Include dependency graph for mb704x.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 <upm_utilities.h>
#include <mb704x.h>
bool shouldRun = true;
void sig_handler(int signo)
{
if (signo == SIGINT)
shouldRun = false;
}
int main()
{
signal(SIGINT, sig_handler);
// Instantiate a MB704X sensor on i2c bus 0, address 112.
mb704x_context sensor = mb704x_init(0, 112);
if (!sensor)
{
printf("mb704x_init() failed.\n");
return 1;
}
while (shouldRun)
{
// this will take about 1 second to complete
int range = mb704x_get_range(sensor);
if (range < 0)
{
printf("Error getting range.\n");
}
else
{
printf("Range: %d cm\n", range);
}
upm_delay_ms(500);
}
printf("Exiting\n");
mb704x_close(sensor);
return 0;
}

Go to the source code of this file.

Data Structures

struct  _mb704x_context
 

Functions

mb704x_context mb704x_init (unsigned int bus, int addr)
 
void mb704x_close (mb704x_context dev)
 
int mb704x_get_range (const mb704x_context dev)
 

Typedefs

typedef struct _mb704x_contextmb704x_context
 

Function Documentation

mb704x_context mb704x_init ( unsigned int  bus,
int  addr 
)

MB704X Initializer

Parameters
busSpecify which the I2C bus to use.
addrSpecify the I2C address to use. The default is 112.
Returns
an initialized device context on success, NULL on error.

Here is the call graph for this function:

void mb704x_close ( mb704x_context  dev)

MB704X sensor close function

Here is the caller graph for this function:

int mb704x_get_range ( const mb704x_context  dev)

Query the device for a range reading. The range will be reported in centimeters (cm).

Parameters
devDevice context
Returns
Measured range, -1 on error. The range is reported in centimeters (cm).

Here is the caller graph for this function:

Typedef Documentation

typedef struct _mb704x_context * mb704x_context

Device context