Newer
Older
smart-home-server / devices / button / button_esp8266 / ButtonLogic.h
#include <Arduino.h>

// Массив пинов — определяем в .ino, а здесь только объявляем
extern const uint8_t BUTTON_PINS[CHANNEL_NUM];

// Состояния каналов — тоже логика реле, а не ядра
extern bool channelState[CHANNEL_NUM];

inline bool getChannelState(uint8_t ch) {
  if (ch >= CHANNEL_NUM) return false;
  return channelState[ch];
}

inline void applyChannelState(uint8_t ch, bool on) {
  // if (ch >= CHANNEL_NUM) return;

  // uint8_t pin = BUTTON_PINS[ch];

  // // Логика: on ^ invert → физический уровень
  // bool physicalOn = on ^ RELAY_INVERT[ch];    // XOR

  // digitalWrite(pin, physicalOn ? HIGH : LOW);
}