[Код] Примеры синтаксиса кода

Описание кода без конкретной привязки

Модераторы: immortal, newz20

PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

[Код] Примеры синтаксиса кода

Сообщение PAV » Пн июн 23, 2014 12:24 pm

Для многих объяснения в wiki понятны, мне точно нет.
Буду выкладывать здесь кусочки кода в качестве примера, чтобы любой мог посмотреть, как реально это можно использовать.

P.S. Навеяно двухчасовым тырканьем с вызовом метода по инструкции со страницы "Программирование" - callMethod("Object.Method", $params);
Для меня логично, что если нужно выполнить метод и передать параметр (1), то нужно выполнить, например
callMethod("sensorMovement.statusChanged", 1);
Ан нет, не все так легко. Оказалось надо так - callMethod("sensorMovement.statusChanged", array("value"=>0));
НУ ГДЕ ЭТО НАПИСАНО ???!!!!

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

$this->setProperty('alive',1); // присвоить свойству alive этого же объекта значение 1
$this->setProperty('value',$params['value']); // присвоить свойству value  этого же объекта переданное вместе с вызовом значение (см пример callmethod)
setGlobal('moscow.temp', 15); // присвоение значения глобального свойства (с указанием конкретного объекта, свойства и значения)
$this->setProperty("updated",time()); // присвоить свойству updated значение текущего времени в формате nix 
$this->setProperty("updatedTime",date("d/m/y H:i")); // присвоить свойству updatedTime значение текущего времени в формате d/m/y H:m

$value=$this->getProperty("value"); //получить значение value этого же объекта
$ot=$this->object_title; //получить имя объекта
$temp=getGlobal(moscow.temp); // получение значения глобального свойства (с указанием конкретного объекта и свойства)

callMethod('Arduino.statusChanged',array("value"=>0)); // вызвать метод и отправить ему значение 0

say("всем привет", 2); Сказать Всем привет с уровнем важности 2 (может проговариваться либо просто появиться в истории сообщений)

getRandomLine('privet'); // получение случайной строки из текстового файла. privet - это имя файла  ./texts/privet.txt  в короткой форме без пути и расширения !!!Файл только в кодировке UTF8  (say(getRandomLine('privet'));)

if (ping(gg('Arduino.IP'))) {} else {} // PING адреса, заданного в свойстве IP объекта Arduino и выполнение кода в зависимости от результата.



За это сообщение автора PAV поблагодарили (всего 13):
Andy111 (Пн ноя 20, 2017 2:01 am) • antpino (Пн дек 04, 2017 1:22 pm) • odinvolk (Пн мар 26, 2018 5:55 pm) • ipc2002 (Вт мар 27, 2018 8:28 pm) • GIV_59 (Ср мар 28, 2018 4:31 am) • TrDA (Пн апр 09, 2018 12:51 pm) • Logrus (Пт апр 13, 2018 11:48 am) • chimik (Сб апр 14, 2018 10:20 pm) • Mavric (Сб апр 21, 2018 4:34 pm) • edrdk (Пн апр 23, 2018 7:33 am) и ещё 3
Рейтинг: 15.12%
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Примеры синтаксиса кода

Сообщение LutsenkoDenis » Пн июн 23, 2014 2:33 pm

НУ ГДЕ ЭТО НАПИСАНО ???!!!!
Ну, если этого нет в документации (В данном случае wiki), то я считаю, что это должно быть указано в вызываемой функции/методе. Например вот так:

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

/**
    * Get current weather data by City name
    * @param string $vCountry  Countrty Code
    * @param string $vCity City Name
    * @param string $vUnits Unit
    * @return array or null
    */
   protected static function GetJsonWeatherDataByCityName($vCountry, $vCity, $vUnits)
   {
      ...
   } 
Соответственно в любой нормальной IDE, при вызове метода GetJsonWeatherDataByCityName, будут подсвечиваться типы параметров на входе и тип возвращаемого результата. А также описание самого метода.
Думаю это решило бы часть возникающих вопросов.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Примеры синтаксиса кода

Сообщение ErmolenkoM » Чт июн 26, 2014 2:19 pm

PAV писал(а): Навеяно двухчасовым тырканьем с вызовом метода по инструкции со страницы "Программирование" - callMethod("Object.Method", $params);
Для меня логично, что если нужно выполнить метод и передать параметр (1), то нужно выполнить, например
callMethod("sensorMovement.statusChanged", 1);
Ан нет, не все так легко. Оказалось надо так - callMethod("sensorMovement.statusChanged", array("value"=>0));
НУ ГДЕ ЭТО НАПИСАНО ???!!!!
Здесь: http://smartliving.ru/Main/ProgrammingFunctions

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

$command="Сколько время";
callMethod("ThisComputer.commandReceived",array("command"=>$command));
Но я согласен - пособие по языку надо делать на примерах. Вот только мое мнение - надо больше примеров в ВиКи пихать, а не на форум - теряются ветки, а ВиКи - вечна.
За это сообщение автора ErmolenkoM поблагодарили (всего 3):
Ged (Пн окт 24, 2016 11:05 am) • chimik (Сб апр 14, 2018 10:21 pm) • Mavric (Сб апр 21, 2018 4:35 pm)
Рейтинг: 3.49%
aka msh555
Cubian на Cubietruck, Connect
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

Re: Примеры синтаксиса кода

Сообщение PAV » Пт июн 27, 2014 12:28 pm

Договорились кидать на форум, а в вики я ссылку даю.
http://smartliving.ru/Main/Library
Denis_k
Сообщения: 587
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 299 раз
Поблагодарили: 27 раз

Re: Примеры синтаксиса кода

Сообщение Denis_k » Пн июн 26, 2017 12:51 am

Камрады, подскажите как поместить в текст значение параметра 'zaderzhka_vent1.value', т.е.

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

sayReply("Включаю вытяжку на .... секунд",2); 
где вместо "...." должно быть значение переданное слайдером (допустим 200)
так не получается

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

%zaderzhka_vent1.value% 
MD на raspberry pi3
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Примеры синтаксиса кода

Сообщение xor » Пн июн 26, 2017 1:03 am

По простому

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

sayReply("Включаю вытяжку на ".gg('zaderzhka_vent1.value')." секунд",2);
по хорошему, нужно склонять секунды в зависимости от zaderzhka_vent1.value
Denis_k
Сообщения: 587
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 299 раз
Поблагодарили: 27 раз

Re: Примеры синтаксиса кода

Сообщение Denis_k » Пн июн 26, 2017 2:01 am

xor писал(а):По простому

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

sayReply("Включаю вытяжку на ".gg('zaderzhka_vent1.value')." секунд",2);
по хорошему, нужно склонять секунды в зависимости от zaderzhka_vent1.value
спасибо, про точки забыл когда gg пробовал ))
а вот склонять не нужно, т.к. значение zaderzhka_vent1.value устанавливается слайдером с шагом в 100 от 100 до 1000
MD на raspberry pi3
Alex77
Сообщения: 215
Зарегистрирован: Вс мар 05, 2017 2:18 pm
Благодарил (а): 21 раз
Поблагодарили: 6 раз

Re: Примеры синтаксиса кода

Сообщение Alex77 » Сб мар 24, 2018 8:52 pm

PAV писал(а):Для многих объяснения в wiki понятны, мне точно нет.
Буду выкладывать здесь кусочки кода в качестве примера, чтобы любой мог посмотреть, как реально это можно использовать.

P.S. Навеяно двухчасовым тырканьем с вызовом метода по инструкции со страницы "Программирование" - callMethod("Object.Method", $params);
Для меня логично, что если нужно выполнить метод и передать параметр (1), то нужно выполнить, например
callMethod("sensorMovement.statusChanged", 1);
Ан нет, не все так легко. Оказалось надо так - callMethod("sensorMovement.statusChanged", array("value"=>0));
НУ ГДЕ ЭТО НАПИСАНО ???!!!!

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

$this->setProperty('alive',1); // присвоить свойству alive этого же объекта значение 1
$this->setProperty('value',$params['value']); // присвоить свойству value  этого же объекта переданное вместе с вызовом значение (см пример callmethod)
setGlobal('moscow.temp', 15); // присвоение значения глобального свойства (с указанием конкретного объекта, свойства и значения)
$this->setProperty("updated",time()); // присвоить свойству updated значение текущего времени в формате nix 
$this->setProperty("updatedTime",date("d/m/y H:i")); // присвоить свойству updatedTime значение текущего времени в формате d/m/y H:m

$value=$this->getProperty("value"); //получить значение value этого же объекта
$ot=$this->object_title; //получить имя объекта
$temp=getGlobal(moscow.temp); // получение значения глобального свойства (с указанием конкретного объекта и свойства)

callMethod('Arduino.statusChanged',array("value"=>0)); // вызвать метод и отправить ему значение 0

say("всем привет", 2); Сказать Всем привет с уровнем важности 2 (может проговариваться либо просто появиться в истории сообщений)

getRandomLine('privet'); // получение случайной строки из текстового файла. privet - это имя файла  ./texts/privet.txt  в короткой форме без пути и расширения !!!Файл только в кодировке UTF8  (say(getRandomLine('privet'));)

if (ping(gg('Arduino.IP'))) {} else {} // PING адреса, заданного в свойстве IP объекта Arduino и выполнение кода в зависимости от результата.



А как callMethod('Arduino.statusChanged',array("value"=>0)); // вызвать метод и отправить ему значение 0
теперь получить в методе переданный параметр ?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Примеры синтаксиса кода

Сообщение Chainik » Сб мар 24, 2018 9:02 pm

Alex77 писал(а):А как callMethod('Arduino.statusChanged',array("value"=>0)); // вызвать метод и отправить ему значение 0
теперь получить в методе переданный параметр ?
Вот так (и еще несколько постов ниже).
viewtopic.php?f=19&t=4291&start=11
AlexL
Сообщения: 40
Зарегистрирован: Ср дек 27, 2017 10:51 am
Благодарил (а): 31 раз
Поблагодарили: 6 раз

Re: Примеры синтаксиса кода

Сообщение AlexL » Чт июн 14, 2018 6:08 am

PAV писал(а):
Пт июн 27, 2014 12:28 pm
Договорились кидать на форум, а в вики я ссылку даю.
http://smartliving.ru/Main/Library
Перенаправление какое то включить бы. Половина ссылок на форуме не работает. :cry:
За это сообщение автора AlexL поблагодарил:
kbh72 (Чт июн 14, 2018 4:13 pm)
Рейтинг: 1.16%
Ответить