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 ( ) ;
2022-02-21 20:00:18 +03:00
virtual void pinMode ( uint8_t pin , uint8_t mode ) ;
virtual void digitalWrite ( uint8_t pin , uint8_t val ) ;
virtual int digitalRead ( uint8_t pin ) ;
virtual int analogRead ( uint8_t pin ) ;
virtual void analogWrite ( uint8_t pin , int val ) ;
2022-03-03 23:28:27 +03:00
virtual void digitalInvert ( uint8_t 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 ) ;
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
} ;