Страница 20 из 41

Re: Подключение контроллера MegaD-328

Добавлено: Сб ноя 22, 2014 12:19 am
Bagir
Да, версии с цифрой перед запятой совместимы. Мне еще новые Меги пришли, скоро будет обновление с температурой.

Re: Подключение контроллера MegaD-328

Добавлено: Вс ноя 23, 2014 9:10 am
ILGAS
Bagir, может тебе пора уже добавить MegaD в маркет дополнений.

Re: Подключение контроллера MegaD-328

Добавлено: Вт ноя 25, 2014 9:47 pm
Jager
Bagir, спасибо за вариант подключения меги. Столкнулся с проблемой, создаю выключатель в меню, прописываю в запускать объект.метод «relay.switch» все работает, порт меняет состояние. При прописывании в связанный объект.свойство «relay.status» для того что бы видеть наглядно в каком состоянии порт происходит инверсия. При первом переключении ничего не происходит а при последующих состояние порта меняется но состояние выключателя противоположно реальному. Так происходит при переключении именно через меню, при смене состояния порта любым другим способом состояние отображается верно. В чем может быть проблема?

Re: Подключение контроллера MegaD-328

Добавлено: Вт ноя 25, 2014 11:03 pm
Bagir
ILGAS
К сожалению я еще не изучал маркет. Скоро зима окончательно прогонит с улицы, и я опять займусь кодом.
Jager
Думаю что проблема как раз в использовании switch. Этот метод просто меняет состояние на противоположное. Лучше пользоваться методами turnOn и turnOff. Я попробую повторить вашу схему и посмотрю как будет работать.

Re: Подключение контроллера MegaD-328

Добавлено: Вс ноя 30, 2014 11:01 am
Jager
Bagir писал(а):Думаю что проблема как раз в использовании switch. Этот метод просто меняет состояние на противоположное. Лучше пользоваться методами turnOn и turnOff. Я попробую повторить вашу схему и посмотрю как будет работать.
Решил проблему, надо в методе Switch поменять очередность вызова и все заработало корректно, состояние выключателя отображается правильно.
Изображение

Re: Подключение контроллера MegaD-328

Добавлено: Вс ноя 30, 2014 12:02 pm
Bagir
Думаю что это не выход. Метод Switch класса Relays по задумке должен при вызове поменять значение статуса и состояние реле на противоположное. При запуске метода мы получаем текущее значение статуса реле $status=$this->getProperty("status"); Допустим 0 или 1. Затем условие. Если = 1 тогда выключить. А у вас получается, что если = 1 то включить. Вероятно вы просто где то присваивайте свойство status без обновления реле. Поэтому измененный метод Switch и срабатывает.

Re: Подключение контроллера MegaD-328

Добавлено: Вс ноя 30, 2014 12:24 pm
Jager
Bagir писал(а):Думаю что это не выход. Метод Switch класса Relays по задумке должен при вызове поменять значение статуса и состояние реле на противоположное. При запуске метода мы получаем текущее значение статуса реле $status=$this->getProperty("status"); Допустим 0 или 1. Затем условие. Если = 1 тогда выключить. А у вас получается, что если = 1 то включить. Вероятно вы просто где то присваивайте свойство status без обновления реле. Поэтому измененный метод Switch и срабатывает.
На чистой тестовой системе , импортирован только ваш класс управления мегой, т.е. влияние других настроек исключено.
В том то и дело что сейчас он правильно отрабатывает, видит 1 менят на 0 и правильно выставляет статус.
У меня еще есть проблема, с обработкой нажатий кнопочного выключателя. Одиночный клик работает без проблем, двойной тоже всегда отрабатывает но в процессе иногда сразу за ним отрабатывает одиночный самопроизвольно. Длительное нажатие не работает, но бывает что срабатывает самопроизвольно при использовании одиночного или двойного. Куда копать?

Re: Подключение контроллера MegaD-328

Добавлено: Вс ноя 30, 2014 12:27 pm
Bagir
Вечерком напишу. Как раз буду делать этот класс. Сейчас системы нет под руками.

Re: Подключение контроллера MegaD-328

Добавлено: Пн дек 01, 2014 8:07 pm
Jager
Bagir писал(а):Вечерком напишу. Как раз буду делать этот класс. Сейчас системы нет под руками.
Еще заметил, не отрабатывает вызов метода switch по ссылке
Изображение
turnOn и turnOff отрабатывают нормально

Re: Подключение контроллера MegaD-328

Добавлено: Пн дек 01, 2014 8:09 pm
Bagir
А и не будет теперь, потому что изменили очередность. в коде метода. Надо вернуть как было и искать причину. Если успею, сегодня сделаю обновление класса.