Пожалуйста немного больше о таймерах.
Добавлено: Чт сен 04, 2014 11:10 pm
В разделе Встроенные функции есть указания как создать теймер, как его удалить, и как проверить есть ли такой сейчас. timeOutExists возвращает идентификатор таймера, а если его нет, вернет 0. Отлично подходит в конструкции if.
Можно легко сделать вариант отодвигания таймера. Допустим у нас есть условие, что свет должен гореть 5 минут после обнаружения движения. Сделать это просто. При срабатывании датчика мы удаляем и вновь создаем новый таймер с периодом 5 минут.
А теперь вопрос знатокам: Как быть, если таких условий несколько, и период у них разный. Допустим, по событию дотчика движения, свет должен гореть 5 минут. По событию геркона на двери - 10 минут. А по значку в сценах - 15 минут. В чем прикол? а втом, что если мы запустили таймр на 15 минут, то по событию датчика движения таймер перезапустится всего она 5. Следовательно, при перезапуске таймера нам надо знать, сколько времени он будет еще работать, и сравнить это время со временем нового таймера. И возможно, что время нового таймера будет меньше, чем остаточное время у текущего таймера.
Ну вот собственно и вопрос: Как узнать, сколько еще время будет работать таймер. Это полюбому уже где то и не раз обсуждалось. Ну вот не находится у меня многое поиском.
В будущем наверное еще буду приставать с подобным вопросом, но уже про события. Штука тоже крайне интересная, но чтобы ей пользоваться, надо уметь получать данные из всех ее полей.
Можно легко сделать вариант отодвигания таймера. Допустим у нас есть условие, что свет должен гореть 5 минут после обнаружения движения. Сделать это просто. При срабатывании датчика мы удаляем и вновь создаем новый таймер с периодом 5 минут.
А теперь вопрос знатокам: Как быть, если таких условий несколько, и период у них разный. Допустим, по событию дотчика движения, свет должен гореть 5 минут. По событию геркона на двери - 10 минут. А по значку в сценах - 15 минут. В чем прикол? а втом, что если мы запустили таймр на 15 минут, то по событию датчика движения таймер перезапустится всего она 5. Следовательно, при перезапуске таймера нам надо знать, сколько времени он будет еще работать, и сравнить это время со временем нового таймера. И возможно, что время нового таймера будет меньше, чем остаточное время у текущего таймера.
Ну вот собственно и вопрос: Как узнать, сколько еще время будет работать таймер. Это полюбому уже где то и не раз обсуждалось. Ну вот не находится у меня многое поиском.
В будущем наверное еще буду приставать с подобным вопросом, но уже про события. Штука тоже крайне интересная, но чтобы ей пользоваться, надо уметь получать данные из всех ее полей.