grove: added GroveRelay class for Grove Relay

Signed-off-by: Alexandru Radovici <alexandru.radovici@wyliodrin.com>
Signed-off-by: Sarah Knepper <sarah.knepper@intel.com>
This commit is contained in:
Alexandru Radovici
2015-01-08 23:38:24 +02:00
committed by Sarah Knepper
parent a1620271f2
commit eca9ed95c8
6 changed files with 241 additions and 0 deletions

View File

@ -64,6 +64,41 @@ mraa_result_t GroveLed::off()
return write(0);
}
//// GroveRelay ////
GroveRelay::GroveRelay(unsigned int pin)
{
mraa_init();
m_gpio = mraa_gpio_init(pin);
mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT);
m_name = "Relay Switch";
}
GroveRelay::~GroveRelay()
{
mraa_gpio_close(m_gpio);
}
mraa_result_t GroveRelay::on()
{
return mraa_gpio_write(m_gpio, 1);
}
mraa_result_t GroveRelay::off()
{
return mraa_gpio_write(m_gpio, 0);
}
bool GroveRelay::isOn()
{
return mraa_gpio_read(m_gpio) == 1;
}
bool GroveRelay::isOff()
{
return mraa_gpio_read(m_gpio) == 0;
}
//// GroveTemp ////
GroveTemp::GroveTemp(unsigned int pin)

View File

@ -99,6 +99,59 @@ class GroveLed: public Grove {
mraa_gpio_context m_gpio;
};
/**
* @brief C++ API for Grove Relay
*
* UPM module for Grove relay switch. The Grove relay is a
* digital normally-open switch that uses low voltage or current to
* control a higher voltage and/or higher current. When closed,
* the indicator LED will light up and current is allowed to flow.
*
* @ingroup grove gpio
* @snippet groverelay.cxx Interesting
*/
class GroveRelay: public Grove {
public:
/**
* Grove relay constructor
*
* @param gpio pin to use
*/
GroveRelay(unsigned int pin);
/**
* Grove relay destructor
*/
~GroveRelay();
/**
* Set the relay switch to on (close). This allows current
* to flow and lights up the indicator LED.
*
* @return 0 on success; non-zero otherwise
*/
mraa_result_t on();
/**
* Set the relay switch to off (open). This stops current
* from flowing and the indicator LED will not be lit.
*
* @return 0 on success; non-zero otherwise
*/
mraa_result_t off();
/**
* Returns whether or not the relay switch is closed.
*
* @return true if the switch is on (closed); false otherwise
*/
bool isOn();
/**
* Returns whether or not the relay switch is open.
*
* @return true if the switch is off (open); false otherwise
*/
bool isOff();
private:
mraa_gpio_context m_gpio;
};
/**
* @brief C++ API for Grove temperature sensor
*