#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);
}