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

Модераторы: Bagir, Ivan, Vit, immortal, PAV, newz20

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

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

Сообщение 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 поблагодарили (всего 12):
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) и ещё 2
Рейтинг: 16.44%
LutsenkoDenis
Сообщения: 527
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 57 раз
Контактная информация:

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 раз
Поблагодарили: 133 раза
Контактная информация:

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)
Рейтинг: 4.11%
aka msh555
Cubian на Cubietruck, Connect
PAV
Сообщения: 861
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 52 раза
Поблагодарили: 75 раз

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

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

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

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

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

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

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

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

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

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

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

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

По простому

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

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

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 pi2
Аватара пользователя
Vovix
Сообщения: 1113
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 462 раза
Контактная информация:

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

Сообщение Vovix » Пн июн 26, 2017 9:27 am

ну превращается это все у вас в пособие по PHP!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Denis_k
Сообщения: 436
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 210 раз
Поблагодарили: 19 раз

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

Сообщение Denis_k » Пн июн 26, 2017 4:03 pm

Vovix писал(а):ну превращается это все у вас в пособие по PHP!
это плохо? или противоречит названию темы?
MD на raspberry pi2
Аватара пользователя
lanket
Сообщения: 1110
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 242 раза
Поблагодарили: 151 раз
Контактная информация:

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

Сообщение lanket » Ср июн 28, 2017 9:31 am

Denis_k писал(а):
Vovix писал(а):ну превращается это все у вас в пособие по PHP!
это плохо? или противоречит названию темы?
Просто не форум немного не об этом.

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.


Важно
Ответить