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

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

Добавлено: Пн июн 23, 2014 12:24 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 и выполнение кода в зависимости от результата.




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

Добавлено: Пн июн 23, 2014 2:33 pm
LutsenkoDenis
НУ ГДЕ ЭТО НАПИСАНО ???!!!!
Ну, если этого нет в документации (В данном случае 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, будут подсвечиваться типы параметров на входе и тип возвращаемого результата. А также описание самого метода.
Думаю это решило бы часть возникающих вопросов.

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

Добавлено: Чт июн 26, 2014 2:19 pm
ErmolenkoM
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));
Но я согласен - пособие по языку надо делать на примерах. Вот только мое мнение - надо больше примеров в ВиКи пихать, а не на форум - теряются ветки, а ВиКи - вечна.

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

Добавлено: Пт июн 27, 2014 12:28 pm
PAV
Договорились кидать на форум, а в вики я ссылку даю.
http://smartliving.ru/Main/Library

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

Добавлено: Пн июн 26, 2017 12:51 am
Denis_k
Камрады, подскажите как поместить в текст значение параметра 'zaderzhka_vent1.value', т.е.

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

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

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

%zaderzhka_vent1.value% 

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

Добавлено: Пн июн 26, 2017 1:03 am
xor
По простому

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

sayReply("Включаю вытяжку на ".gg('zaderzhka_vent1.value')." секунд",2);
по хорошему, нужно склонять секунды в зависимости от zaderzhka_vent1.value

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

Добавлено: Пн июн 26, 2017 2:01 am
Denis_k
xor писал(а):По простому

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

sayReply("Включаю вытяжку на ".gg('zaderzhka_vent1.value')." секунд",2);
по хорошему, нужно склонять секунды в зависимости от zaderzhka_vent1.value
спасибо, про точки забыл когда gg пробовал ))
а вот склонять не нужно, т.к. значение zaderzhka_vent1.value устанавливается слайдером с шагом в 100 от 100 до 1000

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

Добавлено: Сб мар 24, 2018 8:52 pm
Alex77
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
теперь получить в методе переданный параметр ?

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

Добавлено: Сб мар 24, 2018 9:02 pm
Chainik
Alex77 писал(а):А как callMethod('Arduino.statusChanged',array("value"=>0)); // вызвать метод и отправить ему значение 0
теперь получить в методе переданный параметр ?
Вот так (и еще несколько постов ниже).
viewtopic.php?f=19&t=4291&start=11

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

Добавлено: Чт июн 14, 2018 6:08 am
AlexL
PAV писал(а):
Пт июн 27, 2014 12:28 pm
Договорились кидать на форум, а в вики я ссылку даю.
http://smartliving.ru/Main/Library
Перенаправление какое то включить бы. Половина ссылок на форуме не работает. :cry: