$prevRunPassed

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

Ответить
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

$prevRunPassed

Сообщение webms » Ср апр 25, 2018 10:37 pm

а как использовать вст. функцию $prevRunPassed?
у меня задача, нужно узнать сколько времени прошло с последнего вызова
в мануале нашел $prevRunPassed
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: $prevRunPassed

Сообщение skysilver » Ср апр 25, 2018 10:43 pm

webms писал(а):
Ср апр 25, 2018 10:37 pm
в мануале нашел $prevRunPassed
В каком мануале?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: $prevRunPassed

Сообщение webms » Ср апр 25, 2018 10:43 pm

skysilver писал(а):
Ср апр 25, 2018 10:43 pm
webms писал(а):
Ср апр 25, 2018 10:37 pm
в мануале нашел $prevRunPassed
В каком мануале?
https://kb.smartliving.ru/vstroennie-v- ... o-funkcii/

вызываю в методе, по инструкции.. но работать не хочет =(
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: $prevRunPassed

Сообщение webms » Ср апр 25, 2018 10:45 pm

Код: Выделить всё

/* СТАРЫЙ КОД
if (gg('IN4.pressIN4') == '1') { //нажатие кнопки
  if (gg('P4.status') == '1' && gg('IN4.avtostart') == '1')
  {
    $interval = time() - gg('IN4.TaimerNajatie');
    if ($interval >= gg('IN4.setingTimeSTARTventilyatora') * 60)
    {
      sg('P1.status', 1);
      setTimeOut("IN4process", "sg('P1.status',0);", gg('IN4.setingTimeOUTventilyatora') * 60);
    }
  }  else  {
    $this -> setProperty('TaimerNajatie', time());
  }
}
*/
sg('P1.test', $prevRunPassed);
if (gg('IN4.pressIN4') && gg('P4.status') && gg('IN4.avtostart')) {
  if ($prevRunPassed >= gg('IN4.setingTimeSTARTventilyatora') * 60)  {
    sg('P1.status', 1);
    setTimeOut("IN4process", "sg('P1.status',0);", gg('IN4.setingTimeOUTventilyatora') * 60);
  }
}

//$prevRunPassed -- сколько секунд прошло с последнего вызова
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: $prevRunPassed

Сообщение skysilver » Ср апр 25, 2018 10:51 pm

Дичь какая-то. )) Первый раз такое вижу. В исходниках ядра только одно упоминание про prevRunPassed и то закомментированное.
За это сообщение автора skysilver поблагодарил:
webms (Ср апр 25, 2018 10:56 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: $prevRunPassed

Сообщение fandaymon » Ср апр 25, 2018 11:32 pm

В классе объектов есть такая переменная

if (defined('SETTINGS_DEBUG_HISTORY') && SETTINGS_DEBUG_HISTORY==1) {
$class_object=SQLSelectOne("SELECT NOLOG FROM classes WHERE ID='".$this->class_id."'");
if (!$class_object['NOLOG']) {

$prevLog=SQLSelectOne("SELECT ID, UNIX_TIMESTAMP(ADDED) as UNX FROM history WHERE OBJECT_ID='".$this->id."' AND METHOD_ID='".$method['ID']."' ORDER BY ID DESC LIMIT 1");
if ($prevLog['ID']) {
$prevRun=$prevLog['UNX'];
$prevRunPassed=time()-$prevLog['UNX'];
}

Я так понимаю при установленном SETTINGS_DEBUG_HISTORY и NOLOG=false для данного класса, можно в методе получить $prevRunPassed в качестве переменной

Судя по тому что у меня history пустая, видимо SETTINGS_DEBUG_HISTORY нигде не установлена. Можно попробовать добавить define в config и глянуть - изменится ли что-нибудь
Последний раз редактировалось fandaymon Ср апр 25, 2018 11:37 pm, всего редактировалось 1 раз.
За это сообщение автора fandaymon поблагодарил:
webms (Ср апр 25, 2018 11:34 pm)
Рейтинг: 1.16%
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: $prevRunPassed

Сообщение webms » Ср апр 25, 2018 11:34 pm

чего то не понял как это сделать)
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: $prevRunPassed

Сообщение fandaymon » Ср апр 25, 2018 11:55 pm

webms писал(а):
Ср апр 25, 2018 11:34 pm
чего то не понял как это сделать)
В config.php добавить строчку

Define('SETTINGS_DEBUG_HISTORY', 1);

и наверное перезапустить мажордомо. После чего дождаться отработки каких-нибудь методов и посмотреть появились ли какие-нибудь записи в таблице history.

А сработает или нет - знает только автор 8-)
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: $prevRunPassed

Сообщение Logrus » Чт апр 26, 2018 5:20 am

а последствия не хуже ли будут для объема бд, чем единичный длинный код?
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: $prevRunPassed

Сообщение webms » Чт апр 26, 2018 9:08 am

Logrus писал(а):
Чт апр 26, 2018 5:20 am
а последствия не хуже ли будут для объема бд, чем единичный длинный код?
тоже об этом подумал.
решил оставить изначальную версию

fandaymon, спасибо за ответ
Ответить