Вопрос по методам

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Аватара пользователя
Fantom
Сообщения: 31
Зарегистрирован: Чт фев 06, 2014 9:56 pm
Благодарил (а): 9 раз
Поблагодарили: 2 раза

Вопрос по методам

Сообщение Fantom » Сб май 23, 2015 11:38 am

Не могу разобраться с методами, можете рассказать как работать с ними простыми словами, в частности не могу понять что делают эти команды $this->setProperty, $this->getProperty

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

$volume=round(65535*$params['VALUE']/100);
$this->setProperty('volumeLevel',$params['VALUE']);
safe_exec('..\\apps\\nircmd\\nircmdc setsysvolume '.$volume);
say("Изменилась громкость до ".$params['VALUE']." процентов",0);
 
не могу понять как с помощью метода менять значение (в данном случае громкость) из сценария, пробовал делать так sg("ThisComputer.volumeLevel","50") но громкость не меняется а меняется только значение в системе.
Максимум на что меня хватило написать такой метод, но я подозреваю что это не правильное применение

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

$volume=gg("ThisComputer.MPCVolume");
file_get_contents('http://localhost:13579/command.html?wm_command=-2&volume='.$volume);
 
Подозреваю что надо использовать CallMethod, но не пойму как :(
P.S не планируется ли поддержка Media Player Classic в MajorDomo?
P.P.S Извиняюсь если я спрашиваю элементарные вещи
Banana PI (Armbian 21.02.1 Buster) + Arduino + esp8266
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Вопрос по методам

Сообщение ErmolenkoM » Пн май 25, 2015 8:59 am

Fantom писал(а):Не могу разобраться с методами, можете рассказать как работать с ними простыми словами,
В системе МажорДоМо есть два вида подпрограмм. Это "Скрипты" и "Методы". И те и другие выполняют код запрограммированный на языке PHP.
Скрипты - это общие( или внешние, или независимые) команды. Методы - это процедуры принадлежащие обьектам.
В Скриптах для доступа к переменным(прочитать или записать значение) используется gg и sg (читать здесь http://smartliving.ru/Main/ProgrammingFunctions), и обязательно указывать имя обьекта.
В Методах допустимо использовать $this->setProperty, $this->getProperty с указанием только имени свойства, но только для того обьекта чей метод мы вызываем.
Например, Есть класс выключателей, есть несколько экземпляров этого класса - обьектов. Пусть при нажатии мы хотим запоминать время последнего нажатия для каждого выключателя, тогда в классе выключателей мы пишем метод с кодом $this->setProperty('Время_последнего_нажатия',_Системное_Время_); теперь привязываем этот метод к изменению состояния свойства On/Off и получим для всех выключателей будет логироваться время последнего нажатия.

Теперь про громкость. МЖД - это вебсайт. Потому громкости быть не может. Есть переменная которая отвечает за громкость, есть код который устанавливает громкость системы в соответствии со значением этой переменной. Для линуха и винды этот код различный. Судя по вопросу "поддержка Media Player Classic" у вас винда. Почему не отрабатывает

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

safe_exec('..\\apps\\nircmd\\nircmdc setsysvolume '.$volume); 
я не знаю.

По вопросу поддержки Media Player Classic наверное вопрос к Сергею http://smartliving.ru/forum/memberlist. ... rofile&u=2
За это сообщение автора ErmolenkoM поблагодарил:
Samir77 (Ср май 13, 2020 9:58 pm)
Рейтинг: 1.16%
aka msh555
Cubian на Cubietruck, Connect
Ответить