Страница 1 из 2

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

Добавлено: Пт окт 16, 2020 4:48 pm
Shmit
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?

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

Добавлено: Пт окт 16, 2020 7:47 pm
tarasfrompir
Shmit писал(а): Пт окт 16, 2020 4:48 pm Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
Банальный ответ - читай базу знаний
https://kb.mjdm.ru/

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

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

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

Добавлено: Пт окт 16, 2020 8:44 pm
tarasfrompir
в коде нужного вам метода вписать типа такого

callMethod('switch1.turnOn');

Или я не понимаю вопроса ???

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

Добавлено: Пт окт 16, 2020 9:08 pm
Nail
Shmit писал(а): Пт окт 16, 2020 4:48 pm Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
По моему это больше похоже на сценарий, в котором как чуть выше описано перечислить все реле по списку, через запятую.

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

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

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

Добавлено: Пт окт 16, 2020 10:25 pm
fandaymon
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 объекта в один объект и уже в коде метода этого группового объекта выполнять методы объектов в него входящих.

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

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

Подписка на событие это запрос, чтобы нас ставили в известность, когда событие произойдёт. И опять же - это ни событие, ни метод, ни сценарий.

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

Добавлено: Сб окт 17, 2020 12:11 am
Logrus
Shmit писал(а): Пт окт 16, 2020 4:48 pm Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
https://mjdm.ru/forum/viewtopic.php?f=4 ... %B5#p58927
и еще куча примеров на форуме, можно и в три строки, т.е. три раза выполнить вызов нужных методов без перебора их в цикле

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

Добавлено: Сб окт 17, 2020 8:30 am
tarasfrompir
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
Это почему ж нельзя в методе в любом (от метода обьекта до классового метода) написать каллМетод ()???
А если очень хочется ? Вон Логрус пример привел ... Там что нету каллМетода ????

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

Добавлено: Сб окт 17, 2020 2:24 pm
Shmit
Изначально был такой код

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

//Дверь террасы
$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 методов , может можно проще как-то сделать ?