#ifndef LOGICKISTE_PORTCONTROL_H
#define LOGICKISTE_PORTCONTROL_H

#include <Arduino.h>
#include <Wire.h>

// ==========================================
// KLASSE: VIRTUELLE ARDUINO PORTS
// ==========================================
class LogicKiste_VirtualPort {
  private:
    int _pins[8]; // Speichert bis zu 8 Arduino Pins
    uint8_t _pinCount;

  public:
    // Nimmt bis zu 8 Pins entgegen. -1 bedeutet "nicht belegt".
    LogicKiste_VirtualPort(int p0, int p1=-1, int p2=-1, int p3=-1, int p4=-1, int p5=-1, int p6=-1, int p7=-1);
    
    // Setzt alle definierten Pins auf OUTPUT (oder INPUT)
    void begin(uint8_t mode);
    
    // Sendet ein Muster, z.B. "10_1"
    void writePattern(const char* pattern);
    
    // Prüft ein Muster, z.B. "11XX"
    bool checkPattern(const char* pattern);
};

#endif