Цикл и таймер в скрипте.
Добавлено: Пт сен 04, 2015 3:11 pm
Прошу помощи вот в каком вопросе...
Есть скрипт включения режима охраны объекта. Выполняются последовательные проверки закрытых окон/дверей, выключение освещения, ненужных потребителей и т. д... В числе прочего есть команда на закрытие рольставен. Естественно эта команда требует определенного времени для исполнения. При закрытых рольставнях срабатывают концевые герконы и я могу судить о том, что они закрылись.
Корректно ли будет использование такой конструкции:
if (gg('bath_roll3.status')<>1 or gg('bath_roll4.status')<>1) //если рольставни не закрыты
{
cm('bathRoll2_close.turnOn'); // даем команду на закрытие
$maxt=time()+90; //устанавливаем максимальное время на выполнение команды закрытия 90 секунд
while (gg('bath_roll3.status')<>1 or gg('bath_roll4.status')<>1) //запускаем цикл пока не сработают герконы
{
$curt=time();
if ($curt > $maxt) break; // прерываем цикл если время больше заданного
}
}
Есть скрипт включения режима охраны объекта. Выполняются последовательные проверки закрытых окон/дверей, выключение освещения, ненужных потребителей и т. д... В числе прочего есть команда на закрытие рольставен. Естественно эта команда требует определенного времени для исполнения. При закрытых рольставнях срабатывают концевые герконы и я могу судить о том, что они закрылись.
Корректно ли будет использование такой конструкции:
if (gg('bath_roll3.status')<>1 or gg('bath_roll4.status')<>1) //если рольставни не закрыты
{
cm('bathRoll2_close.turnOn'); // даем команду на закрытие
$maxt=time()+90; //устанавливаем максимальное время на выполнение команды закрытия 90 секунд
while (gg('bath_roll3.status')<>1 or gg('bath_roll4.status')<>1) //запускаем цикл пока не сработают герконы
{
$curt=time();
if ($curt > $maxt) break; // прерываем цикл если время больше заданного
}
}