From 1dfe3e1f1be38824ecc0367314e2b3fef108b65f Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 5 May 2018 17:14:38 +0200 Subject: Add led class --- led.cpp | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 led.cpp (limited to 'led.cpp') diff --git a/led.cpp b/led.cpp new file mode 100644 index 0000000..1d10e24 --- /dev/null +++ b/led.cpp @@ -0,0 +1,80 @@ +/* + * File: led.cpp + * Author: naopross + * + * Created on May 5, 2018, 2:33 PM + */ + +#include "led.hpp" + +led::led(gpio *pin, led::color color) : _pin(pin), _color(color) +{ + _pin->set_mode(0); +} + + +led::~led() +{ + +} + +void led::pin(gpio *pin) +{ + if (pin) { + _pin = pin; + } +} + +gpio * led::pin() const +{ + return _pin; +} + +void led::get_color(led::color color) +{ + _color = color; +} + +led::color led::set_color() const +{ + return _color; +} + +void led::set(unsigned s) +{ + _pin->set(s); +} + +unsigned led::read() const +{ + return _pin->read(); +} + +void led::toggle() +{ + _pin->toggle(); +} + +std::string led::to_string() +{ + std::string str = "led ("; + + switch (_color) { + case color::RED: + str += "red"; + break; + + case color::GREEN: + str += "green"; + break; + + case color::YELLOW: + str += "yellow"; + break; + } + + str += ") is "; + str += (read()) ? "on" : "off"; + + return str; +} -- cgit v1.2.1