2022-02-14 18:33:52 +03:00
# include "classes/IoTGpio.h"
2022-02-14 21:23:40 +03:00
IoTGpio : : IoTGpio ( int pins ) { // инициируем стартовым числом диапазона доступных пинов для создаваемого экземпляра 0 - системный, далее 100, 200, 300, 400 или иной
pinNums = pins ;
_drivers [ 0 ] = nullptr ;
2022-02-14 18:33:52 +03:00
}
IoTGpio : : ~ IoTGpio ( ) {
}
void IoTGpio : : pinMode ( uint8_t pin , uint8_t mode ) {
2022-02-14 21:23:40 +03:00
if ( _drivers [ pin / 100 ] ) _drivers [ pin / 100 ] - > pinMode ( pin , mode ) ;
else : : pinMode ( pin , mode ) ;
2022-02-14 18:33:52 +03:00
}
void IoTGpio : : digitalWrite ( uint8_t pin , uint8_t val ) {
2022-02-14 21:23:40 +03:00
if ( _drivers [ pin / 100 ] ) _drivers [ pin / 100 ] - > digitalWrite ( pin , val ) ;
else : : digitalWrite ( pin , val ) ;
2022-02-14 18:33:52 +03:00
}
int IoTGpio : : digitalRead ( uint8_t pin ) {
2022-02-14 21:23:40 +03:00
if ( _drivers [ pin / 100 ] ) return _drivers [ pin / 100 ] - > digitalRead ( pin ) ;
else return : : digitalRead ( pin ) ;
2022-02-14 18:33:52 +03:00
}
int IoTGpio : : analogRead ( uint8_t pin ) {
2022-02-14 21:23:40 +03:00
if ( _drivers [ pin / 100 ] ) return _drivers [ pin / 100 ] - > analogRead ( pin ) ;
else return : : analogRead ( pin ) ;
2022-02-14 18:33:52 +03:00
}
void IoTGpio : : analogWrite ( uint8_t pin , int val ) {
2022-02-14 21:23:40 +03:00
if ( _drivers [ pin / 100 ] ) _drivers [ pin / 100 ] - > analogWrite ( pin , val ) ;
else : : analogWrite ( pin , val ) ;
2022-02-14 18:33:52 +03:00
}
void IoTGpio : : regDriver ( IoTGpio * newDriver ) {
2022-02-14 21:23:40 +03:00
_drivers [ newDriver - > pinNums / 100 ] = newDriver ;
}