Добавляем системный класс прослойку для доступа к GPIO при помощи плат расширения портов

This commit is contained in:
2022-02-14 18:33:52 +03:00
parent da845b7ecb
commit 5c8221f86f
8 changed files with 96 additions and 2 deletions

View File

@@ -49,11 +49,13 @@
#include "Utils/SerialPrint.h"
#include "Utils/StringUtils.h"
#include "PeriodicTasks.h"
#include "classes/IoTGpio.h"
/*********************************************************************************************************************
*****************************************глобальные объекты классов***************************************************
**********************************************************************************************************************/
extern TickerScheduler ts;
extern WiFiClient espClient;
extern PubSubClient mqtt;

25
include/classes/IoTGpio.h Normal file
View File

@@ -0,0 +1,25 @@
#pragma once
#include <Arduino.h>
class IoTGpio {
public:
IoTGpio();
~IoTGpio();
void pinMode(uint8_t pin, uint8_t mode);
void digitalWrite(uint8_t pin, uint8_t val);
int digitalRead(uint8_t pin);
int analogRead(uint8_t pin);
void analogReference(uint8_t mode);
void analogWrite(uint8_t pin, int val);
void analogWriteFreq(uint32_t freq);
void analogWriteRange(uint32_t range);
void regDriver(IoTGpio* newDriver);
private:
IoTGpio* _ext1; //ссылка на объект доступа к портам свыше 100
IoTGpio* _ext2; //200
IoTGpio* _ext3; //300
IoTGpio* _ext4; //400
};

View File

@@ -1,4 +1,5 @@
#pragma once
#include "classes/IoTGpio.h"
struct IoTValue {
float valD = 0;
@@ -27,6 +28,8 @@ class IoTItem {
IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval()
IoTGpio* getGpioDriver();
protected:
String _subtype;
String _id;