mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00
grove: throw exception(s) on fatal errors
Signed-off-by: Jon Trulson <jtrulson@ics.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
parent
d4d29307a2
commit
38351cbe6e
@ -25,6 +25,8 @@
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <stdexcept>
|
||||
|
||||
#include "grove.h"
|
||||
#include "math.h"
|
||||
@ -35,8 +37,12 @@ using namespace upm;
|
||||
|
||||
GroveLed::GroveLed(int pin)
|
||||
{
|
||||
mraa_init();
|
||||
m_gpio = mraa_gpio_init(pin);
|
||||
if ( !(m_gpio = mraa_gpio_init(pin)) ) {
|
||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||
": mraa_gpio_init() failed, invalid pin?");
|
||||
return;
|
||||
}
|
||||
|
||||
mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
|
||||
m_name = "LED Socket";
|
||||
}
|
||||
@ -68,8 +74,11 @@ mraa_result_t GroveLed::off()
|
||||
|
||||
GroveRelay::GroveRelay(unsigned int pin)
|
||||
{
|
||||
mraa_init();
|
||||
m_gpio = mraa_gpio_init(pin);
|
||||
if ( !(m_gpio = mraa_gpio_init(pin)) ) {
|
||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||
": mraa_gpio_init() failed, invalid pin?");
|
||||
return;
|
||||
}
|
||||
mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
|
||||
m_name = "Relay Switch";
|
||||
}
|
||||
@ -103,8 +112,11 @@ bool GroveRelay::isOff()
|
||||
|
||||
GroveTemp::GroveTemp(unsigned int pin)
|
||||
{
|
||||
mraa_init();
|
||||
m_aio = mraa_aio_init(pin);
|
||||
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||
": mraa_aio_init() failed, invalid pin?");
|
||||
return;
|
||||
}
|
||||
m_name = "Temperature Sensor";
|
||||
}
|
||||
|
||||
@ -130,8 +142,11 @@ float GroveTemp::raw_value()
|
||||
|
||||
GroveLight::GroveLight(unsigned int pin)
|
||||
{
|
||||
mraa_init();
|
||||
m_aio = mraa_aio_init(pin);
|
||||
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||
": mraa_aio_init() failed, invalid pin?");
|
||||
return;
|
||||
}
|
||||
m_name = "Light Sensor";
|
||||
}
|
||||
|
||||
@ -157,8 +172,11 @@ float GroveLight::raw_value()
|
||||
|
||||
GroveRotary::GroveRotary(unsigned int pin)
|
||||
{
|
||||
mraa_init();
|
||||
m_aio = mraa_aio_init(pin);
|
||||
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||
": mraa_aio_init() failed, invalid pin?");
|
||||
return;
|
||||
}
|
||||
m_name = "Rotary Angle Sensor";
|
||||
}
|
||||
|
||||
@ -201,8 +219,11 @@ float GroveRotary::rel_rad()
|
||||
|
||||
GroveSlide::GroveSlide(unsigned int pin, float ref_voltage)
|
||||
{
|
||||
mraa_init();
|
||||
m_aio = mraa_aio_init(pin);
|
||||
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||
": mraa_aio_init() failed, invalid pin?");
|
||||
return;
|
||||
}
|
||||
m_ref_voltage = ref_voltage;
|
||||
m_name = "Slide Potentiometer";
|
||||
}
|
||||
@ -234,8 +255,11 @@ float GroveSlide::ref_voltage()
|
||||
|
||||
GroveButton::GroveButton(unsigned int pin)
|
||||
{
|
||||
mraa_init();
|
||||
m_gpio = mraa_gpio_init(pin);
|
||||
if ( !(m_gpio = mraa_gpio_init(pin)) ) {
|
||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||
": mraa_gpio_init() failed, invalid pin?");
|
||||
return;
|
||||
}
|
||||
mraa_gpio_dir(m_gpio, MRAA_GPIO_IN);
|
||||
m_name = "Button Sensor";
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user