Где брать примеры кода для работы со стандартными элементами интерфейса.

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
Аватара пользователя
Kostosso
Сообщения: 29
Зарегистрирован: Чт фев 08, 2018 4:32 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение Kostosso » Пн мар 25, 2019 11:08 pm

Здравствуйте,
Не являюсь программистом, увы. :( Однако могу делать что-то несложное имея перед глазами пример(ы)
Скажите, пожалуйста, где можно найти пример работы с элементом меню "Регулятор". (ссылка https://mjdm.ru/Main/ScValveControl - увы не информативна).
Хочу реализовать с помощью Регулятора (слайдера) передачу команд на димер света. Есть димер ANAM и BrodlinkRM с записанными в него кодами пульта от димера. Команд на изменения яркости всего 2 - больше/меньше. Хочу двигая слайдер посылать команды либо на увеличение яркости, либо на уменьшение.
с кнопок делаю легко :
sg('RelayLight_D2_6.maxWork',1);
sg('RelayLight_D2_6.maxWork',0);
(пока не очень разобрался со свойствами димера и просто привязал данное свойство к команде broadlinka на передачу IR команды увеличения яркости). Всё работает. Яркость увеличивается.
но как считать значение элемента Регулятор - не понимаю.
Помогите плиз, наведите на место где можно смотреть примеры работы с элементами интерфейса. А то совсем грустно, понимание задачи вроде есть, желание есть, а реализация - ... стоит из за отсутствия примеров и опыта (соответственно).

Заранее благодарен.

PS
набрёл на JQueryMobile. но ясности не добавило. Я вообще в правильном направлении копаю?
Celeron J1800 8gb, Ubuntu Server, ESP8266 на WiFi-IoT, Broadlink RMPro_SC1_SP3S_MP1
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение xor » Пн мар 25, 2019 11:40 pm

Kostosso писал(а):
Пн мар 25, 2019 11:08 pm
Здравствуйте,
Не являюсь программистом, увы. :( Однако могу делать что-то несложное имея перед глазами пример(ы)
Скажите, пожалуйста, где можно найти пример работы с элементом меню "Регулятор". (ссылка https://mjdm.ru/Main/ScValveControl - увы не информативна).
Хочу реализовать с помощью Регулятора (слайдера) передачу команд на димер света. Есть димер ANAM и BrodlinkRM с записанными в него кодами пульта от димера. Команд на изменения яркости всего 2 - больше/меньше. Хочу двигая слайдер посылать команды либо на увеличение яркости, либо на уменьшение.
с кнопок делаю легко :
sg('RelayLight_D2_6.maxWork',1);
sg('RelayLight_D2_6.maxWork',0);
(пока не очень разобрался со свойствами димера и просто привязал данное свойство к команде broadlinka на передачу IR команды увеличения яркости). Всё работает. Яркость увеличивается.
но как считать значение элемента Регулятор - не понимаю.
Помогите плиз, наведите на место где можно смотреть примеры работы с элементами интерфейса. А то совсем грустно, понимание задачи вроде есть, желание есть, а реализация - ... стоит из за отсутствия примеров и опыта (соответственно).

Заранее благодарен.

PS
набрёл на JQueryMobile. но ясности не добавило. Я вообще в правильном направлении копаю?
слайдер передает абсолютное значение регулировки, а у вас же команды относительного приращения регулировки. это значит, что вам придется при использовании слайдера преобразовывать абсолютное значение в кучу команд прироста/уменьшения, еще и отслеживать в какой-нибудь переменной текущее значение яркости. Оно вам надо?

ps/раньше в меню сервис были примеры использования стандартных элементов
pps/https://kb.mjdm.ru/commands_help/ см. Ввод данных (управление)
Аватара пользователя
Kostosso
Сообщения: 29
Зарегистрирован: Чт фев 08, 2018 4:32 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение Kostosso » Пн мар 25, 2019 11:56 pm

xor писал(а):
Пн мар 25, 2019 11:40 pm
Kostosso писал(а):
Пн мар 25, 2019 11:08 pm
Здравствуйте,
Не являюсь программистом, увы. :( Однако могу делать что-то несложное имея перед глазами пример(ы)
Скажите, пожалуйста, где можно найти пример работы с элементом меню "Регулятор". (ссылка https://mjdm.ru/Main/ScValveControl - увы не информативна).
Хочу реализовать с помощью Регулятора (слайдера) передачу команд на димер света. Есть димер ANAM и BrodlinkRM с записанными в него кодами пульта от димера. Команд на изменения яркости всего 2 - больше/меньше. Хочу двигая слайдер посылать команды либо на увеличение яркости, либо на уменьшение.
с кнопок делаю легко :
sg('RelayLight_D2_6.maxWork',1);
sg('RelayLight_D2_6.maxWork',0);
(пока не очень разобрался со свойствами димера и просто привязал данное свойство к команде broadlinka на передачу IR команды увеличения яркости). Всё работает. Яркость увеличивается.
но как считать значение элемента Регулятор - не понимаю.
Помогите плиз, наведите на место где можно смотреть примеры работы с элементами интерфейса. А то совсем грустно, понимание задачи вроде есть, желание есть, а реализация - ... стоит из за отсутствия примеров и опыта (соответственно).

Заранее благодарен.

PS
набрёл на JQueryMobile. но ясности не добавило. Я вообще в правильном направлении копаю?
слайдер передает абсолютное значение регулировки, а у вас же команды относительного приращения регулировки. это значит, что вам придется при использовании слайдера преобразовывать абсолютное значение в кучу команд прироста/уменьшения, еще и отслеживать в какой-нибудь переменной текущее значение яркости. Оно вам надо?
На мой взгляд временная переменная и пара строк с циклом по отправке однотипных команд небольшая плата за удобство регулировать яркость ползуночком ;)
Я не понимаю, каков правильный синтаксис "текущего значения слайдера".
Вероятно, что по многим элементам интерфейса мне еще предстоит столкнуться с аналогичным непониманием :?
Поэтому я и испытываю жгучее желание найти "Базу типовых примеров"... ну или как там её..

Я просматривал connect.smartliving.ru. У многих Уважаемых Товарищей есть подобные элементы. Но я увы так и не понял, как я могу ими воспользоваться. Как мне взглянуть непосредственно на код. Если есть какая нибудь инструкция, наведите пожалуйста.
Celeron J1800 8gb, Ubuntu Server, ESP8266 на WiFi-IoT, Broadlink RMPro_SC1_SP3S_MP1
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение xor » Вт мар 26, 2019 12:05 am

посмотрите pps у меня, я позже дописал
вот мой слайдер управления громкостью, привязано свойство чтение только, при изменении вызывается метод, который и меняет это свойство
СпойлерПоказать
2019-03-25_23-50-34.png
2019-03-25_23-50-34.png (18.36 КБ) 3626 просмотров
Аватара пользователя
Kostosso
Сообщения: 29
Зарегистрирован: Чт фев 08, 2018 4:32 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение Kostosso » Вт мар 26, 2019 12:16 am

xor писал(а):
Вт мар 26, 2019 12:05 am
посмотрите pps у меня, я позже дописал
вот мой слайдер управления громкостью, привязано свойство чтение только, при изменении вызывается метод, который и меняет это свойство
СпойлерПоказать
2019-03-25_23-50-34.png
Спасибо, я на эту страничку (из вашего PPS) тоже набрёл. Но ответа там увы нет. (вообще, по результатам моих поисков, нет места с примерами. Упоминания о том, что такие места раньше были остались, а ссылки все в пустоту)
У вас ситуация несколько другая. У вас напрямую привязка свойства объекта. Я же хочу получать "чистое значение" слайдера и обрабатывать его кодом PHP для отправки команд.
Хотя, я попробую сейчас привязаться к свойству и уже в методе, читая свойство, рассылать команды. Наверно так изначально и надо было делать.
Celeron J1800 8gb, Ubuntu Server, ESP8266 на WiFi-IoT, Broadlink RMPro_SC1_SP3S_MP1
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение skysilver » Вт мар 26, 2019 12:20 am

А что мешает привязать свойство объекта и тут же его читать через гетГлобал в поле Код?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение skysilver » Вт мар 26, 2019 12:23 am

Если принципиально не хочется свойство, то текущее значение можно получать через параметр
$params['VALUE']
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Kostosso
Сообщения: 29
Зарегистрирован: Чт фев 08, 2018 4:32 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение Kostosso » Вт мар 26, 2019 12:28 am

xor писал(а):
Вт мар 26, 2019 12:05 am
посмотрите pps у меня, я позже дописал
вот мой слайдер управления громкостью, привязано свойство чтение только, при изменении вызывается метод, который и меняет это свойство
СпойлерПоказать
2019-03-25_23-50-34.png
Тема закрыта. Спасибо за правильную наводку. Разобрался.
Я не там пытался написать код. Надо было менять свойство и вызывать метод. И уже в методе вести обработку.

Орешек знаний твёрд...
Celeron J1800 8gb, Ubuntu Server, ESP8266 на WiFi-IoT, Broadlink RMPro_SC1_SP3S_MP1
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Где брать примеры кода для работы со стандартными элементами интерфейса.

Сообщение xor » Вт мар 26, 2019 12:33 am

Kostosso писал(а):
Вт мар 26, 2019 12:16 am
...

Спасибо, я на эту страничку (из вашего PPS) тоже набрёл. Но ответа там увы нет. (вообще, по результатам моих поисков, нет места с примерами. Упоминания о том, что такие места раньше были остались, а ссылки все в пустоту)
У вас ситуация несколько другая. У вас напрямую привязка свойства объекта. Я же хочу получать "чистое значение" слайдера и обрабатывать его кодом PHP для отправки команд.
Хотя, я попробую сейчас привязаться к свойству и уже в методе, читая свойство, рассылать команды. Наверно так изначально и надо было делать.
вот код моего метода с использованием "чистого" значения слайдера, про что skysilver писал
может, поможет

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

$vol =(int) $params['VALUE'];
$this->setProperty('volumeLevel',$vol);
$volume = round(65535*$vol/100);
safe_exec('..\\apps\\nircmd\\nircmdc setsysvolume '.$volume);
//$ot = $this->object_title;
setTimeOut( 'tc_volumeLevel', "say('Установлена громкость ' . $vol . ' '.morph($vol, 'процент', 'процента', 'процентов'));", 2); //выводим сообщение в чат через таймер (если регулировали с кнопки, чтоб не спамило)
Ответить