upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
Data Structures | Functions | Typedefs
Include dependency graph for hka5.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 "hka5.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 HKA5 sensor on uart 0. We don't use the set or
// reset pins, so we pass -1 for them.
hka5_context sensor = hka5_init(0, -1, -1);
if (!sensor)
{
printf("hka5_init() failed.\n");
return 1;
}
// update once every 2 seconds and output data
while (shouldRun)
{
if (hka5_update(sensor) != UPM_SUCCESS)
{
printf("hka5_update() failed, exiting.\n");
shouldRun = false;
}
printf("PM 1 : %d ug/m3\n", hka5_get_pm1(sensor));
printf("PM 2.5: %d ug/m3\n", hka5_get_pm2_5(sensor));
printf("PM 10 : %d ug/m3\n", hka5_get_pm10(sensor));
printf("\n");
upm_delay(2);
}
printf("Exiting\n");
hka5_close(sensor);
return 0;
}

Go to the source code of this file.

Data Structures

struct  _hka5_context
 

Functions

hka5_context hka5_init (unsigned int uart, int set_pin, int reset_pin)
 
void hka5_close (hka5_context dev)
 
upm_result_t hka5_enable (const hka5_context dev, bool enable)
 
upm_result_t hka5_reset (const hka5_context dev)
 
upm_result_t hka5_update (const hka5_context dev)
 
unsigned int hka5_get_pm1 (const hka5_context dev)
 
unsigned int hka5_get_pm2_5 (const hka5_context dev)
 
unsigned int hka5_get_pm10 (const hka5_context dev)
 

Typedefs

typedef struct _hka5_contexthka5_context
 

Function Documentation

hka5_context hka5_init ( unsigned int  uart,
int  set_pin,
int  reset_pin 
)

HKA5 Initializer for generic UART operation

Parameters
uartSpecify which uart to use.
set_pinSpecify the GPIO pin to use for Set. -1 to not use a set pin.
reset_pinSpecify the GPIO pin to use for Reset. -1 to not use a reset pin.
Returns
an initialized device context on success, NULL on error.

Here is the call graph for this function:

void hka5_close ( hka5_context  dev)

HKA5 sensor close function

Here is the call graph for this function:

Here is the caller graph for this function:

upm_result_t hka5_enable ( const hka5_context  dev,
bool  enable 
)

Enable or disable the device. When disabled, the device enters a low power mode and does not emit data. You must have initialized and connected the Set pin for this function to work.

Parameters
devsensor context
enabletrue to enable the device, false otherwise.
Returns
UPM result

Here is the caller graph for this function:

upm_result_t hka5_reset ( const hka5_context  dev)

Reset the device. You must have initialized and connected the Reset pin for this function to work.

Parameters
devsensor context
Returns
UPM result

Here is the caller graph for this function:

upm_result_t hka5_update ( const hka5_context  dev)

Query the device and store the latest values. You must call this function before calling any of the hka5_get_*() functions.

Parameters
devsensor context
Returns
UPM result

Here is the caller graph for this function:

unsigned int hka5_get_pm1 ( const hka5_context  dev)

Return the last read PM 1.0 value. The value is in micrograms per cubic meter (ug/m3). You must have called the hka5_update() function before calling this function.

Parameters
devsensor context
Returns
The value in ug/m3

Here is the caller graph for this function:

unsigned int hka5_get_pm2_5 ( const hka5_context  dev)

Return the last read PM 2.5 value. The value is in micrograms per cubic meter (ug/m3). You must have called the hka5_update() function before calling this function.

Parameters
devsensor context
Returns
The value in ug/m3

Here is the caller graph for this function:

unsigned int hka5_get_pm10 ( const hka5_context  dev)

Return the last read PM 10.0 value. The value is in micrograms per cubic meter (ug/m3). You must have called the hka5_update() function before calling this function.

Parameters
devsensor context
Returns
The value in ug/m3

Here is the caller graph for this function:

Typedef Documentation

typedef struct _hka5_context * hka5_context

Device context