#include "led_driver.h" Led::Led(GpioPort port, uint32_t pin) : bus_(port), pin_(bus_, pin) { } RetCode Led::init() { RetCode ret = bus_.init(); if (ret != RET_OK) return ret; ret = pin_.init(); if (ret != RET_OK) return ret; off(); return RET_OK; } void Led::on() { pin_.set(); } void Led::off() { pin_.reset(); } void Led::toggle() { pin_.toggle(); } LedManager &LedManager::instance() { static LedManager mgr; return mgr; } LedManager::LedManager() { } RetCode LedManager::init_all() { for (auto *l : leds_) { RetCode ret = l->init(); if (ret != RET_OK) return ret; } return RET_OK; } Led &LedManager::led(uint8_t index) { return *leds_[index]; }