From c0111bf4d3dd91f54d27346970e4c6e0a1ce357e Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Wed, 17 May 2023 04:06:18 +0300 Subject: pio: products refactoring --- platformio/common/libs/led/homekit/led.cpp | 20 ++++++++++++++++++++ platformio/common/libs/led/homekit/led.h | 28 ++++++++++++++++++++++++++++ platformio/common/libs/led/library.json | 8 ++++++++ 3 files changed, 56 insertions(+) create mode 100644 platformio/common/libs/led/homekit/led.cpp create mode 100644 platformio/common/libs/led/homekit/led.h create mode 100644 platformio/common/libs/led/library.json (limited to 'platformio/common/libs/led') diff --git a/platformio/common/libs/led/homekit/led.cpp b/platformio/common/libs/led/homekit/led.cpp new file mode 100644 index 0000000..acc2140 --- /dev/null +++ b/platformio/common/libs/led/homekit/led.cpp @@ -0,0 +1,20 @@ +#include "led.h" + +namespace homekit { + +void Led::on_off(uint16_t delay_ms, bool last_delay) const { + on(); + delay(delay_ms); + + off(); + if (last_delay) + delay(delay_ms); +} + +void Led::blink(uint8_t count, uint16_t delay_ms) const { + for (uint8_t i = 0; i < count; i++) { + on_off(delay_ms, i < count-1); + } +} + +} diff --git a/platformio/common/libs/led/homekit/led.h b/platformio/common/libs/led/homekit/led.h new file mode 100644 index 0000000..513bfea --- /dev/null +++ b/platformio/common/libs/led/homekit/led.h @@ -0,0 +1,28 @@ +#ifndef COMMON_HOMEKIT_LED_H +#define COMMON_HOMEKIT_LED_H + +#include +#include + +namespace homekit { + +class Led { +private: + uint8_t _pin; + +public: + explicit Led(uint8_t pin) : _pin(pin) { + pinMode(_pin, OUTPUT); + off(); + } + + inline void off() const { digitalWrite(_pin, HIGH); } + inline void on() const { digitalWrite(_pin, LOW); } + + void on_off(uint16_t delay_ms, bool last_delay = false) const; + void blink(uint8_t count, uint16_t delay_ms) const; +}; + +} + +#endif //COMMON_HOMEKIT_LED_H diff --git a/platformio/common/libs/led/library.json b/platformio/common/libs/led/library.json new file mode 100644 index 0000000..69a3ac3 --- /dev/null +++ b/platformio/common/libs/led/library.json @@ -0,0 +1,8 @@ +{ + "name": "homekit_led", + "version": "1.0.6", + "build": { + "flags": "-I../../include" + } +} + -- cgit v1.2.3