Как в одном методе сделать несколько действий?

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

Модератор: immortal

Shmit
Сообщения: 78
Зарегистрирован: Вс дек 25, 2016 1:46 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Как в одном методе сделать несколько действий?

Сообщение Shmit » Пт окт 16, 2020 4:48 pm

Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Как в одном методе сделать несколько действий?

Сообщение tarasfrompir » Пт окт 16, 2020 7:47 pm

Shmit писал(а):
Пт окт 16, 2020 4:48 pm
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
Банальный ответ - читай базу знаний
https://kb.mjdm.ru/
Спасибо нам ПОМОЖЕТ..!
Shmit
Сообщения: 78
Зарегистрирован: Вс дек 25, 2016 1:46 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Re: Как в одном методе сделать несколько действий?

Сообщение Shmit » Пт окт 16, 2020 8:06 pm

tarasfrompir писал(а):
Пт окт 16, 2020 7:47 pm
Shmit писал(а):
Пт окт 16, 2020 4:48 pm
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
Банальный ответ - читай базу знаний
https://kb.mjdm.ru/
Ничего не нашел по моему вопросу
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Как в одном методе сделать несколько действий?

Сообщение tarasfrompir » Пт окт 16, 2020 8:44 pm

в коде нужного вам метода вписать типа такого

callMethod('switch1.turnOn');

Или я не понимаю вопроса ???
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Nail
Сообщения: 373
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара
Благодарил (а): 174 раза
Поблагодарили: 28 раз

Re: Как в одном методе сделать несколько действий?

Сообщение Nail » Пт окт 16, 2020 9:08 pm

Shmit писал(а):
Пт окт 16, 2020 4:48 pm
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
По моему это больше похоже на сценарий, в котором как чуть выше описано перечислить все реле по списку, через запятую.
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS ZigBee Gateway. Broadlink.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Как в одном методе сделать несколько действий?

Сообщение tarasfrompir » Пт окт 16, 2020 9:38 pm

Nail писал(а):
Пт окт 16, 2020 9:08 pm
Shmit писал(а):
Пт окт 16, 2020 4:48 pm
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
По моему это больше похоже на сценарий, в котором как чуть выше описано перечислить все реле по списку, через запятую.
ты будеш удивлен - но сценарий, метод, событие , процессабскриптион , райзевент, и все остальное пишется на пхп. Иестьопределенный набор фУНКЦИЙ В МДМ. Поэтому что лоб ему, что по лбу все едино
Спасибо нам ПОМОЖЕТ..!
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Как в одном методе сделать несколько действий?

Сообщение fandaymon » Пт окт 16, 2020 10:25 pm

tarasfrompir писал(а):
Пт окт 16, 2020 9:38 pm
Nail писал(а):
Пт окт 16, 2020 9:08 pm
Shmit писал(а):
Пт окт 16, 2020 4:48 pm
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
По моему это больше похоже на сценарий, в котором как чуть выше описано перечислить все реле по списку, через запятую.
ты будеш удивлен - но сценарий, метод, событие , процессабскриптион , райзевент, и все остальное пишется на пхп. Иестьопределенный набор фУНКЦИЙ В МДМ. Поэтому что лоб ему, что по лбу все едино
Смешались в кучу люди, кони... Из того, что А и Б - буквы, совершенно не следует, что они одинаковы...
Методы это действия совершаемые с объектом. Нельзя одним методом совершить действия с разными объектами. Правильных пути 2 - написать сценарий, который будет вызывать 3 метода, либо объединить 3 объекта в один объект и уже в коде метода этого группового объекта выполнять методы объектов в него входящих.

Сценарий - это набор команд, ветвлений и циклов. Да, в нём можно вызывать метод, но сам по себе это не метод и не событие

Событие это что-то случающееся при каком-то условии. Да, при совершении события можно вызвать метод или сценарий, но событие от этого не становится ни методом, ни сценарием

Подписка на событие это запрос, чтобы нас ставили в известность, когда событие произойдёт. И опять же - это ни событие, ни метод, ни сценарий.
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Как в одном методе сделать несколько действий?

Сообщение Logrus » Сб окт 17, 2020 12:11 am

Shmit писал(а):
Пт окт 16, 2020 4:48 pm
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
https://mjdm.ru/forum/viewtopic.php?f=4 ... %B5#p58927
и еще куча примеров на форуме, можно и в три строки, т.е. три раза выполнить вызов нужных методов без перебора их в цикле
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Как в одном методе сделать несколько действий?

Сообщение tarasfrompir » Сб окт 17, 2020 8:30 am

Logrus писал(а):
Сб окт 17, 2020 12:11 am
Shmit писал(а):
Пт окт 16, 2020 4:48 pm
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
https://mjdm.ru/forum/viewtopic.php?f=4 ... %B5#p58927
и еще куча примеров на форуме, можно и в три строки, т.е. три раза выполнить вызов нужных методов без перебора их в цикле
:lol: :lol: :lol: а мое предложение на 1 строку короче :twisted: :twisted: :twisted:
.И для fandaymon
Это почему ж нельзя в методе в любом (от метода обьекта до классового метода) написать каллМетод ()???
А если очень хочется ? Вон Логрус пример привел ... Там что нету каллМетода ????
Спасибо нам ПОМОЖЕТ..!
Shmit
Сообщения: 78
Зарегистрирован: Вс дек 25, 2016 1:46 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Re: Как в одном методе сделать несколько действий?

Сообщение Shmit » Сб окт 17, 2020 2:24 pm

Изначально был такой код

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

//Дверь террасы
$idd=getGlobal("ESP02.rcdata");
{
if ($idd=="10555278")
if ((getGlobal('ESP02.light')) <"2")
callMethod("switch1.turnOn");
callMethod("switch2.turnOn");
}
Получается , что 1 метод выполняется с заданными параметрами , а 2 всегда .Даже если приходит другой rc код!
Написал по-другому :

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

//Дверь террасы
$idd=getGlobal("ESP02.rcdata");
{
if ($idd=="10555278")
if ((getGlobal('ESP02.light')) <"2")
callMethod("switch1.turnOn");
if ($idd=="10555278")
if ((getGlobal('ESP02.light')) <"2")
callMethod("switch2.turnOn");
}
Все заработало как надо.
Просто интересно , если нужно выполнить 3,4-5 методов , может можно проще как-то сделать ?
Ответить