mirror of
https://github.com/eclipse/upm.git
synced 2025-03-24 01:10:22 +03:00
apds9930: enable sensor before read out sensor data
Changes in library: - enableProximity() function is to enable or disable proximity sensor - enableIlluminance() function is to enable or disable illuminance sensor - run clang-format Changes in example: - proximity and illuminance kernel IIO-based driver init state is power off, require enable before read out sensor data. Sleep time is needed after enable, the sleep time may vary on different platform. - run clang-format Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
parent
40fe6654eb
commit
e64f192fb7
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Author: Lay, Kuan Loon <kuan.loon.lay@intel.com>
|
* Author: Lay, Kuan Loon <kuan.loon.lay@intel.com>
|
||||||
* Copyright (c) 2015 Intel Corporation.
|
* Copyright (c) 2016 Intel Corporation.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files (the
|
* a copy of this software and associated documentation files (the
|
||||||
@ -46,6 +46,15 @@ main()
|
|||||||
// Instantiate a Digital Proximity and Ambient Light sensor on iio device 4
|
// Instantiate a Digital Proximity and Ambient Light sensor on iio device 4
|
||||||
upm::APDS9930* light_proximity = new upm::APDS9930(4);
|
upm::APDS9930* light_proximity = new upm::APDS9930(4);
|
||||||
|
|
||||||
|
// Kernel driver implement sleep 5000-5100us after enable illuminance sensor
|
||||||
|
light_proximity->enableIlluminance(true);
|
||||||
|
|
||||||
|
// Kernel driver implement sleep 5000-5100us after enable proximity sensor
|
||||||
|
light_proximity->enableProximity(true);
|
||||||
|
|
||||||
|
// Tested this value works. Please change it on your platform
|
||||||
|
usleep(120000);
|
||||||
|
|
||||||
while (shouldRun) {
|
while (shouldRun) {
|
||||||
float lux = light_proximity->getAmbient();
|
float lux = light_proximity->getAmbient();
|
||||||
cout << "Luminance value is " << lux << endl;
|
cout << "Luminance value is " << lux << endl;
|
||||||
@ -53,6 +62,8 @@ main()
|
|||||||
cout << "Proximity value is " << proximity << endl;
|
cout << "Proximity value is " << proximity << endl;
|
||||||
sleep(1);
|
sleep(1);
|
||||||
}
|
}
|
||||||
|
light_proximity->enableProximity(false);
|
||||||
|
light_proximity->enableIlluminance(false);
|
||||||
//! [Interesting]
|
//! [Interesting]
|
||||||
|
|
||||||
cout << "Exiting" << endl;
|
cout << "Exiting" << endl;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Author: Lay, Kuan Loon <kuan.loon.lay@intel.com>
|
* Author: Lay, Kuan Loon <kuan.loon.lay@intel.com>
|
||||||
* Copyright (c) 2015 Intel Corporation.
|
* Copyright (c) 2016 Intel Corporation.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files (the
|
* a copy of this software and associated documentation files (the
|
||||||
@ -41,7 +41,7 @@ APDS9930::APDS9930(int device)
|
|||||||
|
|
||||||
APDS9930::~APDS9930()
|
APDS9930::~APDS9930()
|
||||||
{
|
{
|
||||||
if(m_iio)
|
if (m_iio)
|
||||||
mraa_iio_close(m_iio);
|
mraa_iio_close(m_iio);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,3 +60,25 @@ APDS9930::getProximity()
|
|||||||
mraa_iio_read_int(m_iio, "in_proximity_raw", &iio_value);
|
mraa_iio_read_int(m_iio, "in_proximity_raw", &iio_value);
|
||||||
return iio_value;
|
return iio_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
APDS9930::enableProximity(bool enable)
|
||||||
|
{
|
||||||
|
if (enable)
|
||||||
|
mraa_iio_write_int(m_iio, "in_proximity_en", 1);
|
||||||
|
else
|
||||||
|
mraa_iio_write_int(m_iio, "in_proximity_en", 0);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
APDS9930::enableIlluminance(bool enable)
|
||||||
|
{
|
||||||
|
if (enable)
|
||||||
|
mraa_iio_write_int(m_iio, "in_illuminance_en", 1);
|
||||||
|
else
|
||||||
|
mraa_iio_write_int(m_iio, "in_illuminance_en", 0);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Author: Lay, Kuan Loon <kuan.loon.lay@intel.com>
|
* Author: Lay, Kuan Loon <kuan.loon.lay@intel.com>
|
||||||
* Copyright (c) 2015 Intel Corporation.
|
* Copyright (c) 2016 Intel Corporation.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files (the
|
* a copy of this software and associated documentation files (the
|
||||||
@ -75,6 +75,16 @@ class APDS9930
|
|||||||
* @return Proximity value
|
* @return Proximity value
|
||||||
*/
|
*/
|
||||||
int getProximity();
|
int getProximity();
|
||||||
|
/**
|
||||||
|
* Enable proximity
|
||||||
|
* @param enable state
|
||||||
|
*/
|
||||||
|
bool enableProximity(bool enable);
|
||||||
|
/**
|
||||||
|
* Enable illuminance
|
||||||
|
* @param enable state
|
||||||
|
*/
|
||||||
|
bool enableIlluminance(bool enable);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
mraa_iio_context m_iio;
|
mraa_iio_context m_iio;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user