mirror of
https://github.com/eclipse/upm.git
synced 2025-03-24 01:10:22 +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 <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
#include "grove.h"
|
#include "grove.h"
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
@ -35,8 +37,12 @@ using namespace upm;
|
|||||||
|
|
||||||
GroveLed::GroveLed(int pin)
|
GroveLed::GroveLed(int pin)
|
||||||
{
|
{
|
||||||
mraa_init();
|
if ( !(m_gpio = mraa_gpio_init(pin)) ) {
|
||||||
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);
|
mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
|
||||||
m_name = "LED Socket";
|
m_name = "LED Socket";
|
||||||
}
|
}
|
||||||
@ -68,8 +74,11 @@ mraa_result_t GroveLed::off()
|
|||||||
|
|
||||||
GroveRelay::GroveRelay(unsigned int pin)
|
GroveRelay::GroveRelay(unsigned int pin)
|
||||||
{
|
{
|
||||||
mraa_init();
|
if ( !(m_gpio = mraa_gpio_init(pin)) ) {
|
||||||
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);
|
mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
|
||||||
m_name = "Relay Switch";
|
m_name = "Relay Switch";
|
||||||
}
|
}
|
||||||
@ -103,8 +112,11 @@ bool GroveRelay::isOff()
|
|||||||
|
|
||||||
GroveTemp::GroveTemp(unsigned int pin)
|
GroveTemp::GroveTemp(unsigned int pin)
|
||||||
{
|
{
|
||||||
mraa_init();
|
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||||
m_aio = mraa_aio_init(pin);
|
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||||
|
": mraa_aio_init() failed, invalid pin?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_name = "Temperature Sensor";
|
m_name = "Temperature Sensor";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,8 +142,11 @@ float GroveTemp::raw_value()
|
|||||||
|
|
||||||
GroveLight::GroveLight(unsigned int pin)
|
GroveLight::GroveLight(unsigned int pin)
|
||||||
{
|
{
|
||||||
mraa_init();
|
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||||
m_aio = mraa_aio_init(pin);
|
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||||
|
": mraa_aio_init() failed, invalid pin?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_name = "Light Sensor";
|
m_name = "Light Sensor";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,8 +172,11 @@ float GroveLight::raw_value()
|
|||||||
|
|
||||||
GroveRotary::GroveRotary(unsigned int pin)
|
GroveRotary::GroveRotary(unsigned int pin)
|
||||||
{
|
{
|
||||||
mraa_init();
|
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||||
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";
|
m_name = "Rotary Angle Sensor";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,8 +219,11 @@ float GroveRotary::rel_rad()
|
|||||||
|
|
||||||
GroveSlide::GroveSlide(unsigned int pin, float ref_voltage)
|
GroveSlide::GroveSlide(unsigned int pin, float ref_voltage)
|
||||||
{
|
{
|
||||||
mraa_init();
|
if ( !(m_aio = mraa_aio_init(pin)) ) {
|
||||||
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_ref_voltage = ref_voltage;
|
||||||
m_name = "Slide Potentiometer";
|
m_name = "Slide Potentiometer";
|
||||||
}
|
}
|
||||||
@ -234,8 +255,11 @@ float GroveSlide::ref_voltage()
|
|||||||
|
|
||||||
GroveButton::GroveButton(unsigned int pin)
|
GroveButton::GroveButton(unsigned int pin)
|
||||||
{
|
{
|
||||||
mraa_init();
|
if ( !(m_gpio = mraa_gpio_init(pin)) ) {
|
||||||
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);
|
mraa_gpio_dir(m_gpio, MRAA_GPIO_IN);
|
||||||
m_name = "Button Sensor";
|
m_name = "Button Sensor";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user