Страница 1 из 1
будильник. Не срабатывает проверка AlarmOn.
Добавлено: Пт янв 17, 2014 8:14 pm
LampGraph
Привет!
запилил будильник как у всех, пример взял
отсюда:
Проблема в проверке свойства
AlarmOn в обработчике метода
onNewMinute
//будильник
Код: Выделить всё
$objects=getObjectsByClass("AlarmClock");
foreach($objects as $obj) { // переберем все будильники в системе
if (getGlobal($obj['TITLE'].".AlarmOn") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
callMethod($obj['TITLE'].".AlarmRun"); // выполним метод будильника
}
}
если делаем так:
Код: Выделить всё
if (timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
будильник срабатывает. Отсюда делаю вывод что проблема в получении значения свойства
AlarmOn.
X-Ray показывает все верно:
LaGAlarm.AlarmOn 1
в чем может быть проблема?
Профиль в Connect
Re: будильник. Не срабатывает проверка AlarmOn.
Добавлено: Пт янв 17, 2014 8:46 pm
sergejey
Сходу вроде всё верно... Можно попробовать чуть ниже добавить такую проверку, чтобы в случае проблемы со срабатывание в логе сохранилось значение AlarmOn на тот момент:
if (!getGlobal($obj['TITLE'].".AlarmOn") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
say(($obj['TITLE'].".AlarmOn: ".getGlobal($obj['TITLE'].".AlarmOn")); //время пришло но будильник не сработал
}
Re: будильник. Не срабатывает проверка AlarmOn.
Добавлено: Сб янв 18, 2014 5:11 am
LampGraph
Лог:
10:06 Alice: LaGAlarm.AlarmOn:
Получается Алиса не может прочитать свойство AlarmOn и думает что оно пустое?
Щас гляну что в базе лежит.
Re: будильник. Не срабатывает проверка AlarmOn.
Добавлено: Сб янв 18, 2014 5:13 am
LampGraph
Кстати, как в базе через админку посмотреть?
Re: будильник. Не срабатывает проверка AlarmOn.
Добавлено: Сб янв 18, 2014 5:30 am
LampGraph
Проблема решена!!!
Подумал что часть кода набирал с клавы, а часть копировал с форума, возможно где-то буква "о" и "o" перепутались или другой косяк с раскладкой или кодировкой... Еще со времен первого знакомства с PHP помню такую гадость когда с виду одинаковые переменные на самом деле могут быть разными... особенно если не весь код набран собственноручно.
В общем создал новое свойство
AlarmOnOff, его имя потом скопировал в код и все заработало.
10:23 Alice: С добрым утром!
10:23 Alice: 10 часов 23 минут
теперь код выглядит так:
Код: Выделить всё
//будильник
$objects=getObjectsByClass("AlarmClock");
foreach($objects as $obj) { // переберем все будильники в системе
if (getGlobal($obj['TITLE'].".AlarmOnOff") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
callMethod($obj['TITLE'].".AlarmRun"); // выполним метод будильника
}
}
Re: будильник. Не срабатывает проверка AlarmOn.
Добавлено: Чт сен 04, 2014 5:04 am
nick7zmail
Приветствую. Столкнулся с проблемой выполнения методов. Проверка 100% проходит, а callMethod запускаться не хочет даже из скрипта вручную, другие запускаются норм, что я неправильно делаю?
Re: будильник. Не срабатывает проверка AlarmOn.
Добавлено: Чт сен 04, 2014 9:34 am
nick7zmail
nick7zmail писал(а):Приветствую. Столкнулся с проблемой выполнения методов. Проверка 100% проходит, а callMethod запускаться не хочет даже из скрипта вручную, другие запускаются норм, что я неправильно делаю?
Прошу прощения, все заработало, проблема была аналогичная. Метод набрал с клавы - все ок стало, появилась другая проблема. В обьектах теперь показывает 2 метода AlarmRun, они разные (с разным кодом) но в редактировании объекта только один. Как удалить второй?