mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00
Collision Sensor: Add string based constructor
Signed-off-by: Adelin Dobre <adelin.dobre@rinftech.com>
This commit is contained in:
parent
854a2b6bd8
commit
dbd5fcf657
@ -26,13 +26,13 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#include "collision.hpp"
|
#include "collision.hpp"
|
||||||
|
#include "upm_string_parser.hpp"
|
||||||
|
|
||||||
using namespace upm;
|
using namespace upm;
|
||||||
|
|
||||||
Collision::Collision(int pin)
|
Collision::Collision(int pin)
|
||||||
{
|
{
|
||||||
|
if ( !(m_gpio = mraa_gpio_init(pin)) )
|
||||||
if ( !(m_gpio = mraa_gpio_init(pin)) )
|
|
||||||
{
|
{
|
||||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||||
": mraa_gpio_init() failed, invalid pin?");
|
": mraa_gpio_init() failed, invalid pin?");
|
||||||
@ -41,6 +41,20 @@ Collision::Collision(int pin)
|
|||||||
mraa_gpio_dir(m_gpio, MRAA_GPIO_IN);
|
mraa_gpio_dir(m_gpio, MRAA_GPIO_IN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Collision::Collision(std::string initStr) : mraaIo(initStr)
|
||||||
|
{
|
||||||
|
mraa_io_descriptor* descs = mraaIo.getMraaDescriptors();
|
||||||
|
if(!descs->gpios) {
|
||||||
|
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||||
|
": mraa_gpio_init() failed, invalid pin?");
|
||||||
|
} else {
|
||||||
|
if( !(m_gpio = descs->gpios[0]) ) {
|
||||||
|
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||||
|
": mraa_gpio_init() failed, invalid pin?");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Collision::~Collision()
|
Collision::~Collision()
|
||||||
{
|
{
|
||||||
mraa_gpio_close(m_gpio);
|
mraa_gpio_close(m_gpio);
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <mraa/initio.hpp>
|
||||||
#include <mraa/gpio.h>
|
#include <mraa/gpio.h>
|
||||||
|
|
||||||
namespace upm {
|
namespace upm {
|
||||||
@ -42,10 +43,10 @@ namespace upm {
|
|||||||
* @con gpio
|
* @con gpio
|
||||||
*
|
*
|
||||||
* @brief API for the Collision Sensor
|
* @brief API for the Collision Sensor
|
||||||
*
|
*
|
||||||
* The Collision Sensor can detect whether any
|
* The Collision Sensor can detect whether any
|
||||||
* collision movement or vibration happens.
|
* collision movement or vibration happens.
|
||||||
* It outputs a low pulse signal when vibration is detected.
|
* It outputs a low pulse signal when vibration is detected.
|
||||||
*
|
*
|
||||||
* @image html collision.jpg
|
* @image html collision.jpg
|
||||||
* @snippet collision.cxx Interesting
|
* @snippet collision.cxx Interesting
|
||||||
@ -58,6 +59,12 @@ namespace upm {
|
|||||||
* @param pin Digital pin to use
|
* @param pin Digital pin to use
|
||||||
*/
|
*/
|
||||||
Collision(int pin);
|
Collision(int pin);
|
||||||
|
/**
|
||||||
|
* Instantiates Collision Sensor based on a given string.
|
||||||
|
*
|
||||||
|
* @param initStr string containing specific information for Collision Sensor.
|
||||||
|
*/
|
||||||
|
Collision(std::string initStr);
|
||||||
/**
|
/**
|
||||||
* Collision destructor
|
* Collision destructor
|
||||||
*/
|
*/
|
||||||
@ -69,5 +76,6 @@ namespace upm {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
mraa_gpio_context m_gpio;
|
mraa_gpio_context m_gpio;
|
||||||
|
mraa::MraaIo mraaIo;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user