#include <Adafruit_SSD1306.h>
#include <Encoder.h>
#include <EEPROM.h>
#include <Adafruit_GFX.h>
#include <SPI.h>
Adafruit_SSD1306 display(11, 13, 8, 9, 10);
bool EN_145550790_4;
String in_145550790_4;
byte size_145550790_4;
byte X_145550790_4;
byte Y_145550790_4;
bool invert_145550790_4;
bool Zero_189352049_1;
long EncData_189352049_1;
Encoder myEnc_189352049_1(4  ,    3);
long newPosition_189352049_1;
long oldPosition_189352049_1= -999;
bool EN_145550790_1;
String in_145550790_1;
byte size_145550790_1;
byte X_145550790_1;
byte Y_145550790_1;
bool invert_145550790_1;
bool EN_145550790_2;
String in_145550790_2;
byte size_145550790_2;
byte X_145550790_2;
byte Y_145550790_2;
bool invert_145550790_2;
bool in_86634752_2;
bool en_86634752_2;
bool DurLong_86634752_2;
bool One_86634752_2;
bool Doubl_86634752_2;
boolean PStart_86634752_2; // Старт нажатия кнопки
boolean PStop_86634752_2; // Стоп нажатия кнопки
boolean Press_86634752_2; // флаг нажатия кнопки
boolean Release_86634752_2; // флаг отпускания кнопки
boolean DoublP_86634752_2; // флаг отпускания после двойного нажатия
unsigned long Ptimer_86634752_2; // таймер последнего нажатия кнопки
unsigned long Dtimer_86634752_2; // таймер двойного нажатия кнопки
//Переменные таймеров задержек выходов
unsigned long next1_86634752_2;
unsigned long next2_86634752_2;
bool EN_144622535_5;
byte X_144622535_5;
byte Y_144622535_5;
byte width_144622535_5;
byte height_144622535_5;
bool EN_144622535_1;
byte X_144622535_1;
byte Y_144622535_1;
byte width_144622535_1;
byte height_144622535_1;
bool EN_144622535_2;
byte X_144622535_2;
byte Y_144622535_2;
byte width_144622535_2;
byte height_144622535_2;
bool EN_144622535_3;
byte X_144622535_3;
byte Y_144622535_3;
byte width_144622535_3;
byte height_144622535_3;
bool EN_144622535_4;
byte X_144622535_4;
byte Y_144622535_4;
byte width_144622535_4;
byte height_144622535_4;
bool EN_144622535_6;
byte X_144622535_6;
byte Y_144622535_6;
byte width_144622535_6;
byte height_144622535_6;
bool EN_144622535_7;
byte X_144622535_7;
byte Y_144622535_7;
byte width_144622535_7;
byte height_144622535_7;
bool EN_144622535_8;
byte X_144622535_8;
byte Y_144622535_8;
byte width_144622535_8;
byte height_144622535_8;
bool _gtv1;
bool _bounseInputD5S = 0;
bool _bounseInputD5O = 0;
unsigned long _bounseInputD5P = 0UL;
bool _gen2I = 0;
bool _gen2O = 0;
unsigned long _gen2P = 0UL;
bool _SEEPR3OSN = 0;
bool _tim11I = 0;
bool _tim11O = 0;
unsigned long _tim11P = 0UL;
bool _tim2I = 0;
bool _tim2O = 0;
unsigned long _tim2P = 0UL;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _pzs2OES = 0;
bool _SEEPR2OSN = 0;
bool _tim3I = 0;
bool _tim3O = 0;
unsigned long _tim3P = 0UL;
bool _tim8I = 0;
bool _tim8O = 0;
unsigned long _tim8P = 0UL;
bool _bounseInputD12S = 0;
bool _bounseInputD12O = 0;
unsigned long _bounseInputD12P = 0UL;
bool _gen4I = 0;
bool _gen4O = 0;
unsigned long _gen4P = 0UL;
String _swi2;
bool _tim5I = 0;
bool _tim5O = 0;
unsigned long _tim5P = 0UL;
String _swi4;
bool _tim10I = 0;
bool _tim10O = 0;
unsigned long _tim10P = 0UL;
String _swi1;
bool _changeString2_ChOut = 0;
String _changeString2_OLV;
bool _tim7I = 0;
bool _tim7O = 0;
unsigned long _tim7P = 0UL;
bool _trgt1 = 0;
bool _trgt1I = 0;
bool _bounseInputD15S = 0;
bool _bounseInputD15O = 0;
unsigned long _bounseInputD15P = 0UL;
bool _gen3I = 0;
bool _gen3O = 0;
unsigned long _gen3P = 0UL;
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
bool _tim4I = 0;
bool _tim4O = 0;
unsigned long _tim4P = 0UL;
bool _trgt2 = 0;
bool _trgt2I = 0;
String _Terminal_127202933;
bool _changeString1_ChOut = 0;
String _changeString1_OLV;
bool _tim9I = 0;
bool _tim9O = 0;
unsigned long _tim9P = 0UL;
unsigned long _SCT_2 = 0UL;
unsigned long _SCT_2IC = 0UL;
unsigned long _SCT_2P = 0UL;
bool _tim6I = 0;
bool _tim6O = 0;
unsigned long _tim6P = 0UL;
String _tempVariable_String;
void setup()
{
    pinMode(12, INPUT_PULLUP);
    pinMode(15, INPUT_PULLUP);
    pinMode(5, INPUT_PULLUP);
    pinMode(6, OUTPUT);
    digitalWrite(6, 0);
    pinMode(0, OUTPUT);
    digitalWrite(0, 0);
    pinMode(7, OUTPUT);
    digitalWrite(7, 0);
    _bounseInputD12O =  digitalRead(12);
    _bounseInputD15O =  digitalRead(15);
    _bounseInputD5O =  digitalRead(5);
    pinMode(2, INPUT);
    _SCT_2P=micros();
    attachInterrupt(digitalPinToInterrupt (2), _SCT_2coutFunction, FALLING);
    display.begin(SSD1306_SWITCHCAPVCC);
    display.display();
    display.clearDisplay();
}
void loop()
{
    bool  _bounceInputTmpD5 =  (digitalRead (5));
    if (_bounseInputD5S)
    {
        if (millis() >= (_bounseInputD5P + 40))
        {
            _bounseInputD5O= _bounceInputTmpD5;
            _bounseInputD5S=0;
        }
    }
    else
    {
        if (_bounceInputTmpD5 != _bounseInputD5O)
        {
            _bounseInputD5S=1;
            _bounseInputD5P = millis();
        }
    }
    bool  _bounceInputTmpD12 =  (digitalRead (12));
    if (_bounseInputD12S)
    {
        if (millis() >= (_bounseInputD12P + 40))
        {
            _bounseInputD12O= _bounceInputTmpD12;
            _bounseInputD12S=0;
        }
    }
    else
    {
        if (_bounceInputTmpD12 != _bounseInputD12O)
        {
            _bounseInputD12S=1;
            _bounseInputD12P = millis();
        }
    }
    bool  _bounceInputTmpD15 =  (digitalRead (15));
    if (_bounseInputD15S)
    {
        if (millis() >= (_bounseInputD15P + 40))
        {
            _bounseInputD15O= _bounceInputTmpD15;
            _bounseInputD15S=0;
        }
    }
    else
    {
        if (_bounceInputTmpD15 != _bounseInputD15O)
        {
            _bounseInputD15S=1;
            _bounseInputD15P = millis();
        }
    }
    //Плата:1
//Наименование:ПОИСК ПРОВОДКИ
    if(((micros()-_SCT_2P) >1000000)||((micros()-_SCT_2P) <0))
    {
        _SCT_2 = _SCT_2IC;
        _SCT_2IC=0;
        _SCT_2P = micros();
    }
    if(((DurLong_86634752_2) || ((((_SCT_2) < (65)) && ((_SCT_2) >= (40))))))
    {
        if((!_pzs2OES))
        {
             tone(1, 500);
            _pzs2OES =1;
        }
    }
     else 
    {
        if(_pzs2OES)
        {
            noTone(1);
            _pzs2OES =0;
        }
    }
    digitalWrite(0, !((((_SCT_2) < (65)) && ((_SCT_2) >= (40)))));
    if(((analogRead (7))) >= (500)) 
    {
        _tim7O = 1;
        _tim7I = 1;
    }
     else 
    {
         if(_tim7I) 
        {
            _tim7I = 0;
            _tim7P = millis();
        }
         else 
        {
             if (_tim7O) 
            {
                if (_isTimer(_tim7P, 500)) _tim7O = 0;
            }
        }
    }
    if (_tim7O) 
    {
        if (! _gen4I) 
        {
            _gen4I = 1;
            _gen4O = 1;
            _gen4P =  millis();
        }
    }
     else 
    {
        _gen4I = 0 ;
        _gen4O= 0;
    }
     if (_gen4I) 
    {
         if (_gen4O) 
        {
             if (_isTimer(_gen4P , 900)) 
            {
                 _gen4P = millis();
                _gen4O = 0;
            }
        }
         else  
        {
             if (_isTimer(_gen4P , 100)) 
            {
                  _gen4P = millis();
                _gen4O = 1;
            }
        }
    }
    if(((analogRead (7))) < (300)) 
    {
        _tim2O = 1;
        _tim2I = 1;
    }
     else 
    {
         if(_tim2I) 
        {
            _tim2I = 0;
            _tim2P = millis();
        }
         else 
        {
             if (_tim2O) 
            {
                if (_isTimer(_tim2P, 500)) _tim2O = 0;
            }
        }
    }
    if(((analogRead (7))) >= (150)) 
    {
        _tim4O = 1;
        _tim4I = 1;
    }
     else 
    {
         if(_tim4I) 
        {
            _tim4I = 0;
            _tim4P = millis();
        }
         else 
        {
             if (_tim4O) 
            {
                if (_isTimer(_tim4P, 500)) _tim4O = 0;
            }
        }
    }
    if (((_tim2O) && (_tim4O))) 
    {
        if (! _gen2I) 
        {
            _gen2I = 1;
            _gen2O = 1;
            _gen2P =  millis();
        }
    }
     else 
    {
        _gen2I = 0 ;
        _gen2O= 0;
    }
     if (_gen2I) 
    {
         if (_gen2O) 
        {
             if (_isTimer(_gen2P , 300)) 
            {
                 _gen2P = millis();
                _gen2O = 0;
            }
        }
         else  
        {
             if (_isTimer(_gen2P , 700)) 
            {
                  _gen2P = millis();
                _gen2O = 1;
            }
        }
    }
    if(((analogRead (7))) < (500)) 
    {
        _tim5O = 1;
        _tim5I = 1;
    }
     else 
    {
         if(_tim5I) 
        {
            _tim5I = 0;
            _tim5P = millis();
        }
         else 
        {
             if (_tim5O) 
            {
                if (_isTimer(_tim5P, 500)) _tim5O = 0;
            }
        }
    }
    if(((analogRead (7))) >= (300)) 
    {
        _tim6O = 1;
        _tim6I = 1;
    }
     else 
    {
         if(_tim6I) 
        {
            _tim6I = 0;
            _tim6P = millis();
        }
         else 
        {
             if (_tim6O) 
            {
                if (_isTimer(_tim6P, 500)) _tim6O = 0;
            }
        }
    }
    if (((_tim5O) && (_tim6O))) 
    {
        if (! _gen3I) 
        {
            _gen3I = 1;
            _gen3O = 1;
            _gen3P =  millis();
        }
    }
     else 
    {
        _gen3I = 0 ;
        _gen3O= 0;
    }
     if (_gen3I) 
    {
         if (_gen3O) 
        {
             if (_isTimer(_gen3P , 700)) 
            {
                 _gen3P = millis();
                _gen3O = 0;
            }
        }
         else  
        {
             if (_isTimer(_gen3P , 300)) 
            {
                  _gen3P = millis();
                _gen3O = 1;
            }
        }
    }
    digitalWrite(7, !(((_gen2O) || (_gen3O) || (_gen4O))));
    //Плата:2
    display.clearDisplay(); // Очищаем дисплей
    Zero_189352049_1 = ((!(_bounseInputD12O)) && (!(_gtv1)));
    newPosition_189352049_1 = myEnc_189352049_1.read();
    if (newPosition_189352049_1 != oldPosition_189352049_1) 
    {
        oldPosition_189352049_1 = newPosition_189352049_1;
        EncData_189352049_1 = newPosition_189352049_1 ;
    }
    if (Zero_189352049_1 == 1) 
    {
        myEnc_189352049_1.write(0);
    }
    _tempVariable_String = (_floatToStringWitRaz((((EncData_189352049_1)*(0.06))*(3.1415))/(800L),2));
    if (_changeString2_ChOut) 
    {
        _changeString2_ChOut = 0;
    }
     else 
    {
        if (!((_tempVariable_String.compareTo(_changeString2_OLV))==0)) 
        {
            _changeString2_OLV = _tempVariable_String;
            _changeString2_ChOut = 1;
        }
    }
    if(_changeString2_ChOut) 
    {
        _tim1O = 1;
        _tim1I = 1;
    }
     else 
    {
         if(_tim1I) 
        {
            _tim1I = 0;
            _tim1P = millis();
        }
         else 
        {
             if (_tim1O) 
            {
                if (_isTimer(_tim1P, 10000)) _tim1O = 0;
            }
        }
    }
    _gtv1 = _tim1O;
    _Terminal_127202933 = (_floatToStringWitRaz((((EncData_189352049_1)*(0.06))*(3.1415))/(800L),2));
    in_86634752_2 = !(_bounseInputD15O);
    en_86634752_2 = 1;
    if (en_86634752_2)
    {
        // Отработка режимов 
          // Если требуются разные задержки для выходов, заменить 50  
          // на конкретное время (в миллисекундах) 
          if (One_86634752_2 && next1_86634752_2 < millis()) 
        {
            next1_86634752_2 = millis() + 50;
        }
             // 1 нажатие 
          if (One_86634752_2 && next1_86634752_2 >= millis()) 
        {
            One_86634752_2 = 0;
        }
        if (Doubl_86634752_2 && next2_86634752_2 < millis()) 
        {
            next2_86634752_2 = millis() + 50;
        }
             // 2 нажатия 
          if (Doubl_86634752_2 && next2_86634752_2 >= millis()) 
        {
            Doubl_86634752_2 = 0;
        }
        	 //Отработка нажатий  
// Нажатие кнопки
          if (in_86634752_2) 
        {
            PStart_86634752_2 = 1;
            Press_86634752_2 = 1;
        }
        else 
        {
            PStart_86634752_2 = 0;
            PStop_86634752_2 = 1;
        }
        if (PStart_86634752_2 && PStop_86634752_2) 
        {
            Ptimer_86634752_2 = millis() + 1000;
            PStart_86634752_2 = 0;
            PStop_86634752_2 = 0;
        }
        if (Press_86634752_2)
        {
            // если отпустили до Ptimer_86634752_2, считать отпущенной и обновить Dtimer_86634752_2
              if (!in_86634752_2 && !Release_86634752_2 && millis() < Ptimer_86634752_2) 
            {
                	Release_86634752_2 = 1;
                	Dtimer_86634752_2 = millis() + 250;
            }
            // если отпущено после Dtimer_86634752_2 но до Ptimer_86634752_2, зачесть одиночное нажатие
              if (Release_86634752_2 && !DoublP_86634752_2 && millis() > Dtimer_86634752_2 && millis() < Ptimer_86634752_2) 
            {
                	One_86634752_2 = 1;
                	Release_86634752_2 = 0;
                	Press_86634752_2 = 0;
            }
            // если отпущено и нажата снова до Dtimer_86634752_2, считать нажата два раза
              if (Release_86634752_2 && in_86634752_2 && millis() < Dtimer_86634752_2) 
            {
                	DoublP_86634752_2 = 1;
            }
            // если было двойное нажатие и отпущена, зачесть двойное нажатие
              if (DoublP_86634752_2 && !in_86634752_2) 
            {
                	Doubl_86634752_2 = 1;
                	DoublP_86634752_2 = 0;
                	Release_86634752_2 = 0;
                	Press_86634752_2 = 0;
            }
            // Если удерживается более Ptimer_86634752_2, запустить "во время удержания"
              if (in_86634752_2 && !DoublP_86634752_2 && millis() > Ptimer_86634752_2) 
            {
                	DurLong_86634752_2 = 1;
            }
            // Если отпустили после удержания, остановить  "во время удержания"
              if (!in_86634752_2 && DurLong_86634752_2) 
            {
                	DurLong_86634752_2 = 0;
                	Press_86634752_2 = 0;
            }
        }
    }
    bool  _tmp1 = One_86634752_2;
    if (_tmp1)  
    {
         if (! _trgt1I) _trgt1 = ! _trgt1;
    }
    _trgt1I = _tmp1;
    if(_trgt1)
    {
        _swi2=(_floatToStringWitRaz((readFloatFromEEPROM(4, 0, 0x0)),2));
    }
    else
    {
        _swi2=(_floatToStringWitRaz(((((EncData_189352049_1)*(0.06))*(3.1415))/(800L))*(39.37),1));
    }
    bool  _tmp2 = !(_bounseInputD5O);
    if (_tmp2)  
    {
         if (! _trgt2I) _trgt2 = ! _trgt2;
    }
    _trgt2I = _tmp2;
    if(_trgt1)
    {
        _swi1=(_floatToStringWitRaz((readFloatFromEEPROM(0, 0, 0x0)),2));
    }
    else
    {
        _swi1=(_floatToStringWitRaz((((EncData_189352049_1)*(0.06))*(3.1415))/(800L),2));
    }
    EN_145550790_1 = !(_trgt2);
    in_145550790_1 = ((_swi1) + (String("m")));
    size_145550790_1 = 2;
    X_145550790_1 = 0;
    Y_145550790_1 = 20;
    invert_145550790_1 = 1;
    if (EN_145550790_1==1)
    {
        if (invert_145550790_1==1)
        	
        {
            display.setTextColor(WHITE, BLACK);
        }
        	else
        	 
        {
            display.setTextColor(BLACK, WHITE);
        }
        display.setCursor(X_145550790_1,Y_145550790_1);
        display.setTextSize(size_145550790_1);
        //display.setTextColor(WHITE);  
        display.print(utf8rus(in_145550790_1));
    }
    EN_145550790_2 = _trgt2;
    in_145550790_2 = ((_swi2) + (String("in")));
    size_145550790_2 = 2;
    X_145550790_2 = 0;
    Y_145550790_2 = 20;
    invert_145550790_2 = 1;
    if (EN_145550790_2==1)
    {
        if (invert_145550790_2==1)
        	
        {
            display.setTextColor(WHITE, BLACK);
        }
        	else
        	 
        {
            display.setTextColor(BLACK, WHITE);
        }
        display.setCursor(X_145550790_2,Y_145550790_2);
        display.setTextSize(size_145550790_2);
        //display.setTextColor(WHITE);  
        display.print(utf8rus(in_145550790_2));
    }
    if(DurLong_86634752_2)
    {
         if(!_SEEPR3OSN)
        {
            (updateFloatToEEPROM(4, 0, 0x0, (((((EncData_189352049_1)*(0.06))*(3.1415))/(800L))*(39.37))));
            _SEEPR3OSN=1;
        }
    }
    else
    {
         if(_SEEPR3OSN)
        {
            _SEEPR3OSN=0;
        }
    }
    if(DurLong_86634752_2)
    {
         if(!_SEEPR2OSN)
        {
            (updateFloatToEEPROM(0, 0, 0x0, ((((EncData_189352049_1)*(0.06))*(3.1415))/(800L))));
            _SEEPR2OSN=1;
        }
    }
    else
    {
         if(_SEEPR2OSN)
        {
            _SEEPR2OSN=0;
        }
    }
    if(_trgt1)
    {
        _swi4=String("MEMORY");
    }
    else
    {
        _swi4=String("DISTANCE");
    }
    EN_145550790_4 = !(0);
    in_145550790_4 = _swi4;
    size_145550790_4 = 2;
    X_145550790_4 = 0;
    Y_145550790_4 = 0;
    invert_145550790_4 = 1;
    if (EN_145550790_4==1)
    {
        if (invert_145550790_4==1)
        	
        {
            display.setTextColor(WHITE, BLACK);
        }
        	else
        	 
        {
            display.setTextColor(BLACK, WHITE);
        }
        display.setCursor(X_145550790_4,Y_145550790_4);
        display.setTextSize(size_145550790_4);
        //display.setTextColor(WHITE);  
        display.print(utf8rus(in_145550790_4));
    }
    //Плата:3
    if(((analogRead (7))) >= (1000)) 
    {
        _tim8O = 1;
        _tim8I = 1;
    }
     else 
    {
         if(_tim8I) 
        {
            _tim8I = 0;
            _tim8P = millis();
        }
         else 
        {
             if (_tim8O) 
            {
                if (_isTimer(_tim8P, 500)) _tim8O = 0;
            }
        }
    }
    EN_144622535_4 = _tim8O;
    X_144622535_4 = 110;
    Y_144622535_4 = 0;
    width_144622535_4 = 6;
    height_144622535_4 = 9;
    if(EN_144622535_4==1)
    {
        display.fillRect(X_144622535_4,Y_144622535_4,width_144622535_4,height_144622535_4, WHITE);
    }
    if (((analogRead (3))) >= (610)) 
    {
        if (! _gen1I)
        {
            _gen1I = 1;
            _gen1O = 1;
            _gen1P = millis();
        }
    }
     else 
    {
        _gen1I = 0 ;
        _gen1O= 0;
    }
     if (_gen1I &&  _gen1O)   _gen1O = !(_isTimer(_gen1P , 500));
    _tempVariable_String = (_floatToStringWitRaz((((EncData_189352049_1)*(0.06))*(3.1415))/(800L),2));
    if (_changeString1_ChOut) 
    {
        _changeString1_ChOut = 0;
    }
     else 
    {
        if (1) 
        {
            if (!((_tempVariable_String.compareTo(_changeString1_OLV))==0)) 
            {
                _changeString1_OLV = _tempVariable_String;
                _changeString1_ChOut = 1;
            }
        }
    }
    if(((_changeString1_ChOut) || (_gen1O))) 
    {
        _tim3O = 1;
        _tim3I = 1;
    }
     else 
    {
         if(_tim3I) 
        {
            _tim3I = 0;
            _tim3P = millis();
        }
         else 
        {
             if (_tim3O) 
            {
                if (_isTimer(_tim3P, 20000)) _tim3O = 0;
            }
        }
    }
    digitalWrite(6, _tim3O);
    EN_144622535_5 = ((analogRead (3))) >= (716);
    X_144622535_5 = 120;
    Y_144622535_5 = 0;
    width_144622535_5 = 6;
    height_144622535_5 = 9;
    if(EN_144622535_5==1)
    {
        display.fillRect(X_144622535_5,Y_144622535_5,width_144622535_5,height_144622535_5, WHITE);
    }
    EN_144622535_1 = ((analogRead (3))) >= (695);
    X_144622535_1 = 120;
    Y_144622535_1 = 10;
    width_144622535_1 = 6;
    height_144622535_1 = 9;
    if(EN_144622535_1==1)
    {
        display.fillRect(X_144622535_1,Y_144622535_1,width_144622535_1,height_144622535_1, WHITE);
    }
    EN_144622535_2 = ((analogRead (3))) >= (675);
    X_144622535_2 = 120;
    Y_144622535_2 = 20;
    width_144622535_2 = 6;
    height_144622535_2 = 9;
    if(EN_144622535_2==1)
    {
        display.fillRect(X_144622535_2,Y_144622535_2,width_144622535_2,height_144622535_2, WHITE);
    }
    EN_144622535_3 = ((analogRead (3))) >= (634);
    X_144622535_3 = 120;
    Y_144622535_3 = 30;
    width_144622535_3 = 6;
    height_144622535_3 = 9;
    if(EN_144622535_3==1)
    {
        display.fillRect(X_144622535_3,Y_144622535_3,width_144622535_3,height_144622535_3, WHITE);
    }
    if(((analogRead (7))) >= (800)) 
    {
        _tim9O = 1;
        _tim9I = 1;
    }
     else 
    {
         if(_tim9I) 
        {
            _tim9I = 0;
            _tim9P = millis();
        }
         else 
        {
             if (_tim9O) 
            {
                if (_isTimer(_tim9P, 500)) _tim9O = 0;
            }
        }
    }
    EN_144622535_6 = _tim9O;
    X_144622535_6 = 110;
    Y_144622535_6 = 10;
    width_144622535_6 = 6;
    height_144622535_6 = 9;
    if(EN_144622535_6==1)
    {
        display.fillRect(X_144622535_6,Y_144622535_6,width_144622535_6,height_144622535_6, WHITE);
    }
    if(((analogRead (7))) >= (600)) 
    {
        _tim10O = 1;
        _tim10I = 1;
    }
     else 
    {
         if(_tim10I) 
        {
            _tim10I = 0;
            _tim10P = millis();
        }
         else 
        {
             if (_tim10O) 
            {
                if (_isTimer(_tim10P, 500)) _tim10O = 0;
            }
        }
    }
    EN_144622535_7 = _tim10O;
    X_144622535_7 = 110;
    Y_144622535_7 = 20;
    width_144622535_7 = 6;
    height_144622535_7 = 9;
    if(EN_144622535_7==1)
    {
        display.fillRect(X_144622535_7,Y_144622535_7,width_144622535_7,height_144622535_7, WHITE);
    }
    if(((analogRead (7))) >= (200)) 
    {
        _tim11O = 1;
        _tim11I = 1;
    }
     else 
    {
         if(_tim11I) 
        {
            _tim11I = 0;
            _tim11P = millis();
        }
         else 
        {
             if (_tim11O) 
            {
                if (_isTimer(_tim11P, 500)) _tim11O = 0;
            }
        }
    }
    EN_144622535_8 = _tim11O;
    X_144622535_8 = 110;
    Y_144622535_8 = 30;
    width_144622535_8 = 6;
    height_144622535_8 = 9;
    if(EN_144622535_8==1)
    {
        display.fillRect(X_144622535_8,Y_144622535_8,width_144622535_8,height_144622535_8, WHITE);
    }
    display.display();
}
String  _floatToStringWitRaz(float value, int raz)
{
    return String(value,raz);
}
bool _isTimer(unsigned long startTime, unsigned long period)
{
    unsigned long currentTime;
    currentTime = millis();
    if (currentTime>= startTime) 
    {
        return (currentTime>=(startTime + period));
    }
     else 
    {
        return (currentTime >=(4294967295-startTime+period));
    }
}
void  _SCT_2coutFunction()
{
     _SCT_2IC++;
}
String utf8rus(String source)
{
    /* Recode russian fonts from UTF-8 to Windows-1251 */

    int i,k;
    String target;
    unsigned char n;
    char m[2] = { '0', '\0' };
    k = source.length();
    i = 0;
    while (i < k) 
    {
        n = source[i];
        i++;
        if (n >= 0xC0) 
        {
            switch (n) 
            {
                case 0xD0: 
                {
                    n = source[i];
                    i++;
                    if (n == 0x81) 
                    {
                        n = 0xA8;
                        break;
                    }

                    if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
                    break;
                    

                }

                case 0xD1: 
                {
                    n = source[i];
                    i++;
                    if (n == 0x91) 
                    {
                        n = 0xB8;
                        break;
                    }

                    if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
                    break;
                    

                }

                

            }

            

        }

        m[0] = n;
        target = target + String(m);
        

    }

    return target;

}

byte readByteFromEEPROM(int addres, byte bitAddres, byte chipAddres)

{
    return EEPROM.read(addres);
}

void updateByteToEEPROM(int addres, byte bitAddres, byte chipAddres, byte value)

{
    return EEPROM.update(addres, value);
}

float readFloatFromEEPROM(int addres, byte bitAddres, byte chipAddres)

{
    byte x[4];
    for(byte i = 0; i < 4; i++) 
    {
         x[i] = readByteFromEEPROM((addres+i),  bitAddres,  chipAddres);
    }

    float *y = (float *)&x;
    return y[0];

}

void updateFloatToEEPROM(int addres, byte bitAddres, byte chipAddres, float value)

{
    byte *x = (byte *)&value;
    for(byte i = 0; i < 4; i++) 
    {
        updateByteToEEPROM((addres+i),  bitAddres,  chipAddres, x[i]);
    }


}
