Изменились обстоятельства и я стал очень мало ездить на машине, и буквально по пару километров. Плюс холода. Аккумулятор совсем не рад работе на износ. Поэтому решил озаботиться контролем выключения блока ( и планшета) в зависимости от температуры, благо на плюсовых версиях блока ( и на базовых на плате плюсовой) есть датчик температуры.
Для начала для пробы решил выключать блок раньше ( пару часов буквально), если зажигание выключено и если стало холодее установленной температуы ( +5).
Пока набросал такой вот кусок кода для примера:
PHP код:
void zimnij_rejim() //функция зимнего режима для проверки температуры и дальнейших действий
{
if ((obrabotac_zimnij_rejim ==1) || (TipBlokaPitania==133) )
{
if ( NTC_real <= cold_temp) // если реальная температура холоднее установленной, сохраняем во временные переменные( для того, тобы когда потеплееет достать их)
{//холод
if (LETO_timeUntilBATOff == timeUntilBATOff)
{
timeUntilBATOff = ZIMA_timeUntilBATOff;
timeUntilALLOff = ZIMA_timeUntilALLOff;
}
}//конец холод
if ((NTC_real+2 >= cold_temp) ||( LETO_timeUntilBATOff == ZIMA_timeUntilBATOff))//потеплело ( так быстро может потеплеть при вьезде в гараж, например )
{//тепло //вернули оригинальные значения таймеров обратного отсчета
timeUntilBATOff = LETO_timeUntilBATOff;
timeUntilALLOff = LETO_timeUntilALLOff;
}//конец тепло
}
}
То есть когда стало холодно, изменяем время сна планшета с 2 суток до 1 часа.
ну и соответственно появились два новых таймера и настройки для холодного режима:
PHP код:
static byte obrabotac_zimnij_rejim = 1; //m49+ Зимний режим. BP5+. 1-включен. 0- выкл. Предназначен для более "бережного" обращения с АКБ
static float cold_temp = 7.0; //m49+ Зимний режим. Температура, ниже которой изменяется логика выключения планшета для более "бережного" обращения с АКБ
unsigned long timeUntilBATOff = 345600000; // время до выключения питания на батарею планшета после выключения зажигания., считаем ОТ момента выключения зажигания. если прошло 48 часов, как выключили ACC // пауза (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
unsigned long timeUntilALLOff = 172800000 + timeUntilBATOff; // время до полного выключение блока, после выключения зажигания (ACC)и уже после того, как выключится питание на батарею планшета ) (2суток = 172800000)) (4суток = 345600000)
const unsigned long ZIMA_timeUntilBATOff = 3600000 ; // время ЗИМОЙ до выключения питания на батарею планшета после выключения зажигания., считаем ОТ момента выключения зажигания. если прошло 48 часов, как выключили ACC // пауза (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
const unsigned long ZIMA_timeUntilALLOff = 5000 + ZIMA_timeUntilBATOff; // время до полного выключение блока, после выключения зажигания (ACC)и уже после того, как выключится питание на батарею планшета ) (2суток = 172800000)) (4суток = 345600000)
PS времени традиционно не хватает, но я уже привык
