LDT0-028: Add string based constructor for Piezo Vibration Sensor

Signed-off-by: Adelin Dobre <adelin.dobre1994@gmail.com>
This commit is contained in:
Adelin Dobre 2018-07-03 17:45:42 +03:00 committed by Stefan Andritoiu
parent 1f3520b770
commit f34360c8ec
2 changed files with 31 additions and 1 deletions

View File

@ -40,6 +40,26 @@ LDT0028::LDT0028(unsigned int pin) {
m_name = "ldt0-028";
}
LDT0028::LDT0028(std::string initStr) : mraaIo(initStr) {
mraa_io_descriptor* descs = mraaIo.getMraaDescriptors();
if(!descs->aios)
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_aio_init() failed, invalid pin?");
}
else
{
if( !(m_pin = descs->aios[0]) )
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_aio_init() failed, invalid pin?");
}
}
m_name = "ldt0-028";
}
LDT0028::~LDT0028() {
// close analog input
mraa_aio_close(m_pin);

View File

@ -25,6 +25,8 @@
#include <string>
#include <mraa/aio.h>
#include <mraa/initio.hpp>
#include <mraa/initio.h>
namespace upm {
@ -61,6 +63,13 @@ class LDT0028 {
*/
LDT0028(unsigned int pin);
/**
* Instantiates LDT0-028 Sensor object based on a given string.
*
* @param initStr string containing specific information for LDT0-028 Sensor initialization.
*/
LDT0028(std::string initStr);
/**
* LDT0028 destructor
*/
@ -82,6 +91,7 @@ class LDT0028 {
protected:
std::string m_name; //!< name of this sensor
mraa::MraaIo mraaIo;
mraa_aio_context m_pin; //!< AIO pin
};