2022-02-14 18:33:52 +03:00
# pragma once
# include <Arduino.h>
class IoTGpio {
public :
2022-02-14 21:23:40 +03:00
IoTGpio ( int pins ) ;
2022-02-14 18:33:52 +03:00
~ IoTGpio ( ) ;
2023-04-30 11:57:01 +03:00
virtual void pinMode ( int pin , uint8_t mode ) ;
virtual void digitalWrite ( int pin , uint8_t val ) ;
virtual int digitalRead ( int pin ) ;
virtual int analogRead ( int pin ) ;
virtual void analogWrite ( int pin , int val ) ;
virtual void digitalInvert ( int pin ) ;
2022-02-14 18:33:52 +03:00
2022-02-21 20:00:18 +03:00
int index ;
2022-02-14 18:33:52 +03:00
void regDriver ( IoTGpio * newDriver ) ;
2023-02-17 20:28:02 +03:00
void clearDrivers ( ) ;
2022-02-14 18:33:52 +03:00
private :
2022-02-21 20:00:18 +03:00
IoTGpio * _drivers [ 5 ] = { nullptr } ; //ссылки на объекты доступа к портам более 100, 200, 300, 400. Нулевой элемент используется как маркер - и возвращается nullptr при обращении
2022-02-14 21:23:40 +03:00
2022-02-14 18:33:52 +03:00
} ;