#include "flprogUtilites.h"
#include <OneWire.h>
#include "U8glib.h"
#include <TimeLib.h>
#include <EEPROM.h>
struct UB_64812877
{
String ubo_43452855 = "";
String _swi1 = "";
String _swi2 = "";
String _swi4 = "";
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
}
;
UB_64812877 UB_64812877_Instance2;
int UB_64812877_ubi_86273617 = 0;
int UB_64812877_ubi_178716155 = 0;
bool UB_64812877_ubi_226328769 = 0;
OneWire _ow5(5);
OneWire _ow6(6);
byte _FLPArray231550189[9];
byte _FLPArray248195439[9];
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);
// I2C / TWI
bool en;
bool en_text_139238762_2;
byte color_t_139238762_2;
byte x_139238762_2;
byte y_139238762_2;
String text_139238762_2;
bool en_text_139238762_5;
byte color_t_139238762_5;
byte x_139238762_5;
byte y_139238762_5;
String text_139238762_5;
bool en_text_139238762_3;
byte color_t_139238762_3;
byte x_139238762_3;
byte y_139238762_3;
String text_139238762_3;
bool en_47162885_1;
int in_47162885_1;
byte K_47162885_1;
int out_47162885_1;
long Dacc_47162885_1;
bool en_text_139238762_7;
byte color_t_139238762_7;
byte x_139238762_7;
byte y_139238762_7;
String text_139238762_7;
bool en_text_139238762_4;
byte color_t_139238762_4;
byte x_139238762_4;
byte y_139238762_4;
String text_139238762_4;
bool en_text_139238762_1;
byte color_t_139238762_1;
byte x_139238762_1;
byte y_139238762_1;
String text_139238762_1;
bool en_text_187662981_1;
byte color_t_187662981_1;
byte x_187662981_1;
byte y_187662981_1;
String text_187662981_1;
const int _menuParametrsArray[] PROGMEM = {1, 4, 1, 0, 0, 0, 2, 1, 1, 4, 1, 0, 2, 4, 2, 0, 0, 0, 3, 1, 1, 4, 2, 0, 3, 4, 6, 0, 0, 0, 7, 0, 1, 4, 6, 0, 4, 4, 5, 0, 0, 0, 6, 0, 1, 4, 5, 0, 5, 4, 4, 0, 0, 0, 5, 0, 1, 4, 4, 0, 6, 4, 3, 0, 0, 0, 4, 1, 1, 4, 3, 0};
int _menuValueArray_int[6];
const int _menuConstantValuesArray_int[] PROGMEM = {1, 24, 560, 30, 99, 12, 31};
const char _flprogMenuNameString1[] PROGMEM = "Chas";
const char _flprogMenuNameString2[] PROGMEM = "Min";
const char _flprogMenuNameString3[] PROGMEM = "Timer";
const char _flprogMenuNameString4[] PROGMEM = "God";
const char _flprogMenuNameString5[] PROGMEM = "Mo";
const char _flprogMenuNameString6[] PROGMEM = "Den";
const char* const _flprogMenuStringsArray[] PROGMEM = { _flprogMenuNameString1, _flprogMenuNameString2, _flprogMenuNameString3, _flprogMenuNameString4, _flprogMenuNameString5, _flprogMenuNameString6};
struct _menuItemStricture
{
int startInArrayIndex;
}
;
struct _menuMainStricture
{
int startIndex;
int stopIndex;
bool isSwitchMenuAroundRing;
_menuItemStricture currentItem;
}
;
_menuItemStricture _MenuItems[6];
_menuMainStricture _MainMenus[1];
String _gtv1;
String _gtv2;
bool _gtv5;
bool _gtv6;
bool _gtv7;
bool _gtv8;
float _gtv9;
float _gtv10;
int _gtv13;
bool _trgrt4 = 0;
bool _trgrt4I = 0;
bool _gen2I = 0;
bool _gen2O = 0;
unsigned long _gen2P = 0UL;
bool _trgrt7 = 0;
bool _trgrt7I = 0;
bool _RTCST_Ost1 = 0;
String _MenuBlock_37703468_MNO;
String _MenuBlock_37703468_VNO;
bool _MenuBlock_37703468_OEIS = 0;
bool _MenuBlock_37703468_OMUIS = 0;
bool _MenuBlock_37703468_OMDIS = 0;
bool _MenuBlock_37703468_OVUIS = 0;
bool _MenuBlock_37703468_OVDIS = 0;
unsigned long _MenuBlock_37703468_VUDST = 0UL;
unsigned long _MenuBlock_37703468_VUDSPT = 0UL;
int _MenuBlock_37703468_VUDSM = 0;
int _MenuBlock_37703468_VUDPT = 0;
bool _sowb3_needScan = 0;
bool _sowb3_ost = 0;
bool _sowb3_Out_1 = 0;
bool _trgrt5 = 0;
bool _trgrt5I = 0;
bool _trgrt9 = 0;
bool _trgrt9I = 0;
bool _tim3I = 0;
bool _tim3O = 0;
unsigned long _tim3P = 0UL;
bool _count2I = 0;
int _count2_Value = 0;
bool _count2MinLO = 0;
bool _trgrt1 = 0;
bool _trgrt1I = 0;
unsigned long _d18x2x1Tti = 0UL;
float _d18x2x1O = 0.00;
unsigned long _d18x2x2Tti = 0UL;
float _d18x2x2O = 0.00;
bool _sowb1_needScan = 0;
bool _sowb1_ost = 0;
bool _sowb1_Out_1 = 0;
bool _tim2I = 0;
bool _tim2O = 0;
unsigned long _tim2P = 0UL;
bool _trgrt3 = 0;
bool _trgrt3I = 0;
bool _trgt1 = 0;
bool _trgt1I = 0;
bool _trgrt8 = 0;
bool _trgrt8I = 0;
bool _bounseInputD2S = 0;
bool _bounseInputD2O = 0;
unsigned long _bounseInputD2P = 0UL;
bool _bounseInputD3S = 0;
bool _bounseInputD3O = 0;
unsigned long _bounseInputD3P = 0UL;
bool _bounseInputD4S = 0;
bool _bounseInputD4O = 0;
unsigned long _bounseInputD4P = 0UL;
bool _gen4I = 0;
bool _gen4O = 0;
unsigned long _gen4P = 0UL;
bool _tempVariable_bool;
int _tempVariable_int;
float _tempVariable_float;
void setup()
{
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(7, OUTPUT);
digitalWrite(7, 0);
if(((readByteFromEEPROM(0, 0, 0x0))) != 28)
{
(updateByteToEEPROM(0, 0, 0x0, (28)));
(updateIntegerToEEPROM(5, 0, 0x0, (5)));
}
_bounseInputD3O = digitalRead(3);
_bounseInputD4O = digitalRead(4);
_bounseInputD2O = digitalRead(2);
_MenuItems[0].startInArrayIndex = 0;
_MenuItems[1].startInArrayIndex = 12;
_MenuItems[2].startInArrayIndex = 24;
_MenuItems[3].startInArrayIndex = 36;
_MenuItems[4].startInArrayIndex = 48;
_MenuItems[5].startInArrayIndex = 60;
_MainMenus[0].startIndex = 1;
_MainMenus[0].isSwitchMenuAroundRing = 1;
_MainMenus[0].stopIndex = 6;
_MainMenus[0].currentItem = _MenuItems[0];
_menuValueArray_int[0] = (readIntegerFromEEPROM(1, 0, 0x0));
_menuValueArray_int[1] = (readIntegerFromEEPROM(3, 0, 0x0));
_menuValueArray_int[2] = (readIntegerFromEEPROM(5, 0, 0x0));
}
void loop()
{
bool _bounceInputTmpD3 = (digitalRead (3));
if (_bounseInputD3S)
{
if (millis() >= (_bounseInputD3P + 40))
{
_bounseInputD3O= _bounceInputTmpD3;
_bounseInputD3S=0;
}
}
else
{
if (_bounceInputTmpD3 != _bounseInputD3O)
{
_bounseInputD3S=1;
_bounseInputD3P = millis();
}
}
bool _bounceInputTmpD2 = (digitalRead (2));
if (_bounseInputD2S)
{
if (millis() >= (_bounseInputD2P + 40))
{
_bounseInputD2O= _bounceInputTmpD2;
_bounseInputD2S=0;
}
}
else
{
if (_bounceInputTmpD2 != _bounseInputD2O)
{
_bounseInputD2S=1;
_bounseInputD2P = millis();
}
}
bool _bounceInputTmpD4 = (digitalRead (4));
if (_bounseInputD4S)
{
if (millis() >= (_bounseInputD4P + 40))
{
_bounseInputD4O= _bounceInputTmpD4;
_bounseInputD4S=0;
}
}
else
{
if (_bounceInputTmpD4 != _bounseInputD4O)
{
_bounseInputD4S=1;
_bounseInputD4P = millis();
}
}
//Плата:1
//Наименование:Часы,Led
if (_gtv5)
{
if (!(_RTCST_Ost1))
{
setTime((_menuValueArray_int[0]), (_menuValueArray_int[1]), (second()), (day()), (month()), (month()));
_RTCST_Ost1 = 1;
}
}
else
{
_RTCST_Ost1 = 0;
}
_gtv2 = (String((second()), DEC));
UB_64812877_ubi_86273617 = (hour());
UB_64812877_ubi_178716155 = (minute());
UB_64812877_ubi_226328769 = !(0);
_func_UB_64812877(&UB_64812877_Instance2, UB_64812877_ubi_86273617, UB_64812877_ubi_178716155, UB_64812877_ubi_226328769);
_gtv1 = UB_64812877_Instance2.ubo_43452855;
//Плата:2
//Наименование:Oled
en = !(0);
if (en)
{
u8g.firstPage();
do
{
if (!(0))
{
if (_trgrt9I)
{
_trgrt9 = 0;
}
else
{
_trgrt9 = 1;
_trgrt9I = 1;
}
}
else
{
_trgrt9 = 0;
_trgrt9I = 0;
}
;
if(_sowb3_needScan)
{
if(_oneWireSeach (_FLPArray231550189, _ow5))
{
_sowb3_Out_1=1;
}
_ow5.reset_search();
_sowb3_needScan=0;
}
if(_trgrt9)
{
if(! _sowb3_ost)
{
_sowb3_ost=1;
_sowb3_needScan=1;
_sowb3_Out_1=0;
}
}
else
{
_sowb3_ost=0;
}
if(_sowb1_needScan)
{
if(_oneWireSeach (_FLPArray248195439, _ow6))
{
_sowb1_Out_1=1;
}
_ow6.reset_search();
_sowb1_needScan=0;
}
if(_trgrt9)
{
if(! _sowb1_ost)
{
_sowb1_ost=1;
_sowb1_needScan=1;
_sowb1_Out_1=0;
}
}
else
{
_sowb1_ost=0;
}
if(flprog::isTimer(_d18x2x1Tti, 1000))
{
_d18x2x1Tti = millis();
_tempVariable_float = _readDS18_ow5(_FLPArray231550189, _FLPArray231550189[8]);
if (_tempVariable_float < 500)
{
_d18x2x1O = _tempVariable_float;
}
}
_gtv9 = (_d18x2x1O);
if((((map((_gtv13), (0), (1023), (0), (2000))))/(100.00)) <= (12))
{
_tim3O = 1;
_tim3I = 1;
}
else
{
if(_tim3I)
{
_tim3I = 0;
_tim3P = millis();
}
else
{
if (_tim3O)
{
if (flprog::isTimer(_tim3P, 1000)) _tim3O = 0;
}
}
}
digitalWrite(7, !(_tim3O));
en_text_139238762_7 = !(_gtv5);
color_t_139238762_7 = 1;
x_139238762_7 = 0;
y_139238762_7 = 57;
text_139238762_7 = ((String("Батарея ")) + ((_floatToStringWitRaz(((map((_gtv13), (0), (1023), (0), (2000))))/(100.00),1))) + (String("v")));
if (en_text_139238762_7)
{
char textStr[100];
text_139238762_7.toCharArray(textStr, text_139238762_7.length()+1);
u8g.setColorIndex(color_t_139238762_7);
u8g.setFont(u8g_font_8x13Brus);
u8g.drawStr(x_139238762_7, y_139238762_7, textStr);
}
en_text_139238762_5 = !(_gtv5);
color_t_139238762_5 = 1;
x_139238762_5 = 0;
y_139238762_5 = 46;
text_139238762_5 = ((String("Тем.Улица ")) + ((_floatToStringWitRaz(_gtv10,1))) + (String("C")));
if (en_text_139238762_5)
{
char textStr[100];
text_139238762_5.toCharArray(textStr, text_139238762_5.length()+1);
u8g.setColorIndex(color_t_139238762_5);
u8g.setFont(u8g_font_8x13Brus);
u8g.drawStr(x_139238762_5, y_139238762_5, textStr);
}
en_text_139238762_2 = !(_gtv5);
color_t_139238762_2 = 1;
x_139238762_2 = 0;
y_139238762_2 = 35;
text_139238762_2 = ((String("Тем.Салон ")) + ((_floatToStringWitRaz(_gtv9,1))) + (String("C")));
if (en_text_139238762_2)
{
char textStr[100];
text_139238762_2.toCharArray(textStr, text_139238762_2.length()+1);
u8g.setColorIndex(color_t_139238762_2);
u8g.setFont(u8g_font_8x13Brus);
u8g.drawStr(x_139238762_2, y_139238762_2, textStr);
}
en_text_139238762_3 = !(_gtv5);
color_t_139238762_3 = 1;
x_139238762_3 = 18;
y_139238762_3 = 20;
text_139238762_3 = ((_gtv1) + (String(":")) + (_gtv2));
if (en_text_139238762_3)
{
char textStr[100];
text_139238762_3.toCharArray(textStr, text_139238762_3.length()+1);
u8g.setColorIndex(color_t_139238762_3);
u8g.setFont(u8g_font_10x20rus);
u8g.drawStr(x_139238762_3, y_139238762_3, textStr);
}
if(flprog::isTimer(_d18x2x2Tti, 1000))
{
_d18x2x2Tti = millis();
_tempVariable_float = _readDS18_ow6(_FLPArray248195439, _FLPArray248195439[8]);
if (_tempVariable_float < 500)
{
_d18x2x2O = _tempVariable_float;
}
}
_gtv10 = (_d18x2x2O);
en_47162885_1 = !(0);
in_47162885_1 = (analogRead (1));
K_47162885_1 = 100;
// Filtr_RC_int
if (en_47162885_1)
{
if (K_47162885_1==0)
{
K_47162885_1=1;
}
Dacc_47162885_1 = Dacc_47162885_1 + in_47162885_1;
Dacc_47162885_1 = Dacc_47162885_1 - out_47162885_1;
out_47162885_1 = Dacc_47162885_1 / K_47162885_1;
}
if (!(0))
{
if (! _gen4I)
{
_gen4I = 1;
_gen4O = 1;
_gen4P = millis();
}
}
else
{
_gen4I = 0 ;
_gen4O= 0;
}
if (_gen4I)
{
if (flprog::isTimer (_gen4P , 500))
{
_gen4P = millis();
_gen4O = ! _gen4O;
}
}
if (_gen4O)
{
if (_trgrt5I)
{
_trgrt5 = 0;
}
else
{
_trgrt5 = 1;
_trgrt5I = 1;
}
}
else
{
_trgrt5 = 0;
_trgrt5I = 0;
}
;
if (_trgrt5)
{
_gtv13 = out_47162885_1;
}
//Плата:3
//Наименование:Кнопки, Меню
_gtv6 = !(_bounseInputD2O);
_gtv7 = !(_bounseInputD3O);
_gtv8 = !(_bounseInputD4O);
if (_gtv6)
{
if (_tim2I)
{
if (flprog::isTimer(_tim2P, 3000))
{
_tim2O = 1;
}
}
else
{
_tim2I =1;
_tim2P = millis();
}
}
else
{
_tim2O = 0;
_tim2I = 0;
}
if (_gtv5)
{
if (! _gen2I)
{
_gen2I = 1;
_gen2O = 1;
_gen2P = millis();
}
}
else
{
_gen2I = 0 ;
_gen2O= 0;
}
if (_gen2I)
{
if (flprog::isTimer (_gen2P , 500))
{
_gen2P = millis();
_gen2O = ! _gen2O;
}
}
if (_gtv5)
{
if (_trgrt1I)
{
_trgrt1 = 0;
}
else
{
_trgrt1 = 1;
_trgrt1I = 1;
}
}
else
{
_trgrt1 = 0;
_trgrt1I = 0;
}
;
if (_gtv6)
{
if (_trgrt4I)
{
_trgrt4 = 0;
}
else
{
_trgrt4 = 1;
_trgrt4I = 1;
}
}
else
{
_trgrt4 = 0;
_trgrt4I = 0;
}
;
if (_gtv7)
{
if (_trgrt8I)
{
_trgrt8 = 0;
}
else
{
_trgrt8 = 1;
_trgrt8I = 1;
}
}
else
{
_trgrt8 = 0;
_trgrt8I = 0;
}
;
if (_gtv8)
{
if (_trgrt7I)
{
_trgrt7 = 0;
}
else
{
_trgrt7 = 1;
_trgrt7I = 1;
}
}
else
{
_trgrt7 = 0;
_trgrt7I = 0;
}
;
if (((_trgrt1) || (_trgrt4) || (_trgrt8) || (_trgrt7)))
{
_count2_Value = 20;
}
else
{
if (_gen2O)
{
if (! _count2I)
{
_count2I = 1;
if(_count2_Value > 0)
{
_count2_Value = _count2_Value - 1;
}
}
}
else
{
_count2I = 0;
}
}
_count2MinLO = _count2_Value <= 0;
if (((_gtv5) && (_count2MinLO)))
{
if (_trgrt3I)
{
_trgrt3 = 0;
}
else
{
_trgrt3 = 1;
_trgrt3I = 1;
}
}
else
{
_trgrt3 = 0;
_trgrt3I = 0;
}
;
bool _tmp1 = ((_tim2O) || (_trgrt3));
if (_tmp1)
{
if (! _trgt1I) _trgt1 = ! _trgt1;
}
_trgt1I = _tmp1;
_gtv5 = _trgt1;
en_text_139238762_4 = ((_trgt1) && ((_count2_Value) <= (5)));
color_t_139238762_4 = 1;
x_139238762_4 = 0;
y_139238762_4 = 54;
text_139238762_4 = ((String("до выхода: ")) + ((String(_count2_Value, DEC))) + (String(", сек")));
if (en_text_139238762_4)
{
char textStr[100];
text_139238762_4.toCharArray(textStr, text_139238762_4.length()+1);
u8g.setColorIndex(color_t_139238762_4);
u8g.setFont(u8g_font_8x13Brus);
u8g.drawStr(x_139238762_4, y_139238762_4, textStr);
}
//Плата:4
//Наименование:Меню
if (_gtv5)
{
_tempVariable_bool = 1;
if (! _MenuBlock_37703468_OEIS)
{
_MenuBlock_37703468_OEIS = 1;
}
_tempVariable_int = pgm_read_byte(&_menuParametrsArray[((_MainMenus[0].currentItem).startInArrayIndex)+10]);
_MenuBlock_37703468_MNO = _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[_tempVariable_int - 1])));
_MenuBlock_37703468_VNO = _menuOutputValueString (0);
}
else
{
_tempVariable_bool = 0;
if (_MenuBlock_37703468_OEIS)
{
_MenuBlock_37703468_OEIS = 0;
_menuUpdateToEEpromItems();
}
_MenuBlock_37703468_MNO = "";
_MenuBlock_37703468_VNO = "";
}
if(_gtv6)
{
if (! _MenuBlock_37703468_OMUIS)
{
_MenuBlock_37703468_OMUIS = 1;
if(_tempVariable_bool)
{
_menuUpEvents(0);
_menuUpdateToEEpromItems();
}
}
}
else
{
_MenuBlock_37703468_OMUIS = 0;
}
if(0)
{
if (! _MenuBlock_37703468_OMDIS)
{
_MenuBlock_37703468_OMDIS = 1;
if(_tempVariable_bool)
{
_menuDownEvents(0);
_menuUpdateToEEpromItems();
}
}
}
else
{
_MenuBlock_37703468_OMDIS = 0;
}
if(_gtv7)
{
if (! _MenuBlock_37703468_OVUIS)
{
_MenuBlock_37703468_OVUIS = 1;
if(_tempVariable_bool)
{
_valueUpEvents(0);
_MenuBlock_37703468_VUDST = millis();
}
}
if (_tempVariable_bool)
{
if (_MenuBlock_37703468_VUDSM == 0)
{
if (flprog::isTimer(_MenuBlock_37703468_VUDST , 2000))
{
_MenuBlock_37703468_VUDSM = 1;
_MenuBlock_37703468_VUDSPT = millis();
_MenuBlock_37703468_VUDPT = 500;
}
}
else
{
if (_MenuBlock_37703468_VUDSM == 1)
{
if (flprog::isTimer(_MenuBlock_37703468_VUDST , 4000))
{
_MenuBlock_37703468_VUDSM = 2;
_MenuBlock_37703468_VUDPT = 250;
}
}
if (flprog::isTimer(_MenuBlock_37703468_VUDSPT , _MenuBlock_37703468_VUDPT))
{
_valueUpEvents(0);
_MenuBlock_37703468_VUDSPT = millis();
}
}
}
}
else
{
_MenuBlock_37703468_OVUIS = 0;
if(! (_gtv8))
{
_MenuBlock_37703468_VUDSM = 0;
}
}
if(_gtv8)
{
if (! _MenuBlock_37703468_OVDIS)
{
_MenuBlock_37703468_OVDIS = 1;
if(_tempVariable_bool)
{
_valueDownEvents(0);
_MenuBlock_37703468_VUDST = millis();
}
}
if (_tempVariable_bool)
{
if (_MenuBlock_37703468_VUDSM == 0)
{
if (flprog::isTimer(_MenuBlock_37703468_VUDST , 2000))
{
_MenuBlock_37703468_VUDSM = 1;
_MenuBlock_37703468_VUDSPT = millis();
_MenuBlock_37703468_VUDPT = 500;
}
}
else
{
if (_MenuBlock_37703468_VUDSM == 1)
{
if (flprog::isTimer(_MenuBlock_37703468_VUDST , 4000))
{
_MenuBlock_37703468_VUDSM = 2;
_MenuBlock_37703468_VUDPT = 250;
}
}
if (flprog::isTimer(_MenuBlock_37703468_VUDSPT , _MenuBlock_37703468_VUDPT))
{
_valueDownEvents(0);
_MenuBlock_37703468_VUDSPT = millis();
}
}
}
}
else
{
_MenuBlock_37703468_OVDIS = 0;
if(! (_gtv7))
{
_MenuBlock_37703468_VUDSM = 0;
}
}
en_text_187662981_1 = _gtv5;
color_t_187662981_1 = 1;
x_187662981_1 = 65;
y_187662981_1 = 20;
text_187662981_1 = _MenuBlock_37703468_VNO;
if (en_text_187662981_1)
{
char textStr[100];
text_187662981_1.toCharArray(textStr, text_187662981_1.length()+1);
u8g.setColorIndex(color_t_187662981_1);
u8g.setFont(u8g_font_10x20rus);
u8g.drawStr(x_187662981_1, y_187662981_1, textStr);
}
en_text_139238762_1 = _gtv5;
color_t_139238762_1 = 1;
x_139238762_1 = 0;
y_139238762_1 = 20;
text_139238762_1 = _MenuBlock_37703468_MNO;
if (en_text_139238762_1)
{
char textStr[100];
text_139238762_1.toCharArray(textStr, text_139238762_1.length()+1);
u8g.setColorIndex(color_t_139238762_1);
u8g.setFont(u8g_font_10x20rus);
u8g.drawStr(x_139238762_1, y_139238762_1, textStr);
}
}
while(u8g.nextPage());
}
}
String _floatToStringWitRaz(float value, int raz)
{
return String(value,raz);
}
String _readStringFromProgmem (char *string)
{
String result = String("");
while (pgm_read_byte(string)!='\0')
{
result=result+ char(pgm_read_byte(string));
string++;
}
return result;
}
void _menuUpEvents (int menuIndex)
{
int tempIndex = pgm_read_byte(&_menuParametrsArray[((_MainMenus[menuIndex]).currentItem).startInArrayIndex]);
int parIndex = pgm_read_byte(&_menuParametrsArray[ (((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+5]);
int parentStartIndex;
int parentStopIndex;
if (parIndex == 0)
{
parentStartIndex = (_MainMenus[menuIndex]).startIndex;
parentStopIndex =(_MainMenus[menuIndex]).stopIndex;
}
else
{
parentStartIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex - 1]).startInArrayIndex)+3]);
parentStopIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex-1]).startInArrayIndex)+4]);
}
if (tempIndex == parentStartIndex)
{
if((_MainMenus[menuIndex]).isSwitchMenuAroundRing)
{
(_MainMenus[menuIndex]).currentItem = _MenuItems[parentStopIndex -1];
return;
}
else
{
return;
}
}
(_MainMenus[menuIndex]).currentItem = _MenuItems[tempIndex - 2];
return;
}
void _menuDownEvents (int menuIndex)
{
int tempIndex = pgm_read_byte(&_menuParametrsArray[((_MainMenus[menuIndex]).currentItem).startInArrayIndex]);
int parIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+5]);
int parentStartIndex;
int parentStopIndex;
if (parIndex == 0)
{
parentStartIndex = (_MainMenus[menuIndex]).startIndex;
parentStopIndex =(_MainMenus[menuIndex]).stopIndex;
}
else
{
parentStartIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex-1]).startInArrayIndex)+3]);
parentStopIndex = pgm_read_byte(&_menuParametrsArray[((_MenuItems[parIndex-1]).startInArrayIndex)+4]);
}
if (tempIndex == parentStopIndex)
{
if((_MainMenus[menuIndex]).isSwitchMenuAroundRing)
{
(_MainMenus[menuIndex]).currentItem = _MenuItems[parentStartIndex -1];
return;
}
else
{
return;
}
}
(_MainMenus[menuIndex]).currentItem = _MenuItems[tempIndex];
return;
}
void _valueUpEvents (int menuIndex)
{
int valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
int itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
int indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]);
int indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]);
if (itemType == 4)
{
if (! indexMax == 0)
{
if (! (int(pgm_read_word(&_menuConstantValuesArray_int[indexMax -1])) > int(_menuValueArray_int[valIndex -1])))
{
return;
}
}
_menuValueArray_int[valIndex -1] = _menuValueArray_int[valIndex -1] + (pgm_read_word(&_menuConstantValuesArray_int[indexStep -1]));
}
}
void _valueDownEvents (int menuIndex)
{
int valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
int itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
int indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]);
int indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]);
if (itemType == 4)
{
if (! indexMin == 0)
{
if (! ((int(pgm_read_word(&_menuConstantValuesArray_int[indexMin - 1]))) < int(_menuValueArray_int[valIndex - 1])))
{
return;
}
}
_menuValueArray_int[valIndex - 1] = _menuValueArray_int[valIndex - 1] - (pgm_read_word(&_menuConstantValuesArray_int[indexStep - 1]));
}
}
String _menuOutputValueString (int menuIndex)
{
int itemType = pgm_read_byte(&_menuParametrsArray[ (((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
int valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
int indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]);
int indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]);
if(valIndex == 0)
{
return "";
}
int convFormat = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+9]);
if(itemType == 4)
{
return _convertNamber(itemType, convFormat, valIndex, indexMax, indexMin);
}
return "";
}
void _menuUpdateToEEpromItems()
{
(updateIntegerToEEPROM(1, 0, 0x0, ((_menuValueArray_int[0]))));
(updateIntegerToEEPROM(3, 0, 0x0, ((_menuValueArray_int[1]))));
(updateIntegerToEEPROM(5, 0, 0x0, ((_menuValueArray_int[2]))));
}
String _convertNamber(int itemType, int convFormat, int valIndex, int indexMax, int indexMin)
{
if (itemType== 4)
{
if (convFormat == 4)
{
return String((_menuValueArray_int[valIndex - 1 ]),DEC);
}
if (convFormat == 5)
{
return String((_menuValueArray_int[valIndex - 1]),HEX);
}
if (convFormat == 6)
{
return String((_menuValueArray_int[valIndex -1]),BIN);
}
}
return "";
}
float _convertDS18x2xData(byte type_s, byte data[12])
{
int16_t raw = (data[1] << 8) | data[0];
if (type_s)
{
raw = raw << 3;
if (data[7] == 0x10)
{
raw = (raw & 0xFFF0) + 12 - data[6];
}
}
else
{
byte cfg = (data[4] & 0x60);
if (cfg == 0x00)raw = raw & ~7;
else if(cfg == 0x20)raw = raw & ~3;
else if(cfg == 0x40) raw = raw & ~1;
}
return (float)raw / 16.0;
}
float _readDS18_ow5(byte addr[8], byte type_s)
{
byte data[12];
byte i;
_ow5.reset();
_ow5.select(addr);
_ow5.write(0xBE);
for (i = 0; i < 9; i++)
{
data[i] = _ow5.read();
}
_ow5.reset();
_ow5.select(addr);
_ow5.write(0x44);
if (_ow5.crc8(data, 8) != data[8])
{
return 501;
}
return _convertDS18x2xData(type_s, data);
}
float _readDS18_ow6(byte addr[8], byte type_s)
{
byte data[12];
byte i;
_ow6.reset();
_ow6.select(addr);
_ow6.write(0xBE);
for (i = 0; i < 9; i++)
{
data[i] = _ow6.read();
}
_ow6.reset();
_ow6.select(addr);
_ow6.write(0x44);
if (_ow6.crc8(data, 8) != data[8])
{
return 501;
}
return _convertDS18x2xData(type_s, data);
}
bool _oneWireSeach (byte array[], OneWire ow)
{
byte temp[8];
byte i;
if (!ow.search(temp))
{
return false;
}
if (OneWire::crc8(temp, 7) != temp[7])
{
return false;
}
switch (temp[0])
{
case 0x10:
array[8] = 1;
break;
case 0x28:
array[8] = 0;
break;
case 0x22:
array[8] = 0;
break;
default:
return false;
}
for (i = 0; i < 8; i++)
{
array[i] = temp[i];
}
return true;
}
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);
}
int readIntegerFromEEPROM(int addres, byte bitAddres, byte chipAddres)
{
byte hight = readByteFromEEPROM(addres, bitAddres, chipAddres);
byte low = readByteFromEEPROM((addres+1), bitAddres, chipAddres);
return word(hight, low);
}
void updateIntegerToEEPROM(int addres, byte bitAddres, byte chipAddres, int value)
{
updateByteToEEPROM(addres, bitAddres, chipAddres, highByte(value));
updateByteToEEPROM((addres+1), bitAddres, chipAddres, lowByte(value));
}
void _func_UB_64812877(struct UB_64812877 *_ubInstans, int ubi_86273617, int ubi_178716155, bool ubi_226328769)
{
String ubo_43452855 = _ubInstans->ubo_43452855;
String _swi1 = _ubInstans->_swi1;
String _swi2 = _ubInstans->_swi2;
String _swi4 = _ubInstans->_swi4;
bool _gen1I = _ubInstans->_gen1I;
bool _gen1O = _ubInstans->_gen1O;
unsigned long _gen1P = _ubInstans->_gen1P;
if((ubi_86273617) >= (10))
{
_swi1=(String(ubi_86273617));
}
else
{
_swi1=((String("0")) + ((String(ubi_86273617))));
}
if (ubi_226328769)
{
if (! _gen1I)
{
_gen1I = 1;
_gen1O = 1;
_gen1P = millis();
}
}
else
{
_gen1I = 0 ;
_gen1O= 0;
}
if (_gen1I)
{
if (flprog::isTimer (_gen1P , 500))
{
_gen1P = millis();
_gen1O = ! _gen1O;
}
}
if(_gen1O)
{
_swi4=String(":");
}
else
{
_swi4=String(" ");
}
if((ubi_178716155) >= (10))
{
_swi2=(String(ubi_178716155));
}
else
{
_swi2=((String("0")) + ((String(ubi_178716155))));
}
ubo_43452855 = ((_swi1) + (_swi4) + (_swi2));
_ubInstans->ubo_43452855 = ubo_43452855;
_ubInstans->_swi1 = _swi1;
_ubInstans->_swi2 = _swi2;
_ubInstans->_swi4 = _swi4;
_ubInstans->_gen1I = _gen1I;
_ubInstans->_gen1O = _gen1O;
_ubInstans->_gen1P = _gen1P;
}
Loading
ds18b20
ds18b20
Loading
ds18b20
ds18b20