Middle-connector
Модератор: immortal
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Middle-connector
Middle-connector это промежуточный слой между объектами М и js. Работает в обе стороны — транслирует текущие значения свойств объектов в js и изменяет значения свойств в М из js. А также вызывает скрипты М из js. Т.е полный фарш.
Позволяет работать с js объектами, processing-программами, 3D canvas и т. д. Т. е. со всем ПО, которое не имеет никакого представления об объектах в М.
Установка
--------------
Создать папку и поместить в неё файлы из архива
…/htdocs/middle
Вызов
---------
object_js = new middle_connector('object_mdm.method_mdm', 'label', 2000, 1);
, где 2000 — обновление раз в 2 секунды, 1 — кол-во знаков после запятой.
Получение значений:
---------------
object_js.value; - числовое значение
object_js.valueStr - строковое
object_js.valupdated; - время
Отправка:
--------
object_js.objectToSend = 'object_mdm'; // метод - 'update', значение - 'v'
object_js.valToSend = 200;
object_js.SendData();
или
object_js.objectToSend = 'object_mdm';
object_js.methodToSend = 'method_mdm';
object_js.valueToSend = 'value_mdm';
object_js.valToSend = 200;
object_js.MultiSendData();
запуск скрипта
object_js.scriptToSend = 'set_color_red';
object_js.SendScript();
Чтобы использовать во вкладках М
----------------------------
В файле
\htdocs\templates\application.html
дописать
<script language="javascript" type="text/javascript" src="/middle/middle_object.js"></script>
<script language="javascript" type="text/javascript" src="/middle/middle_connector.js"></script>
Позволяет работать с js объектами, processing-программами, 3D canvas и т. д. Т. е. со всем ПО, которое не имеет никакого представления об объектах в М.
Установка
--------------
Создать папку и поместить в неё файлы из архива
…/htdocs/middle
Вызов
---------
object_js = new middle_connector('object_mdm.method_mdm', 'label', 2000, 1);
, где 2000 — обновление раз в 2 секунды, 1 — кол-во знаков после запятой.
Получение значений:
---------------
object_js.value; - числовое значение
object_js.valueStr - строковое
object_js.valupdated; - время
Отправка:
--------
object_js.objectToSend = 'object_mdm'; // метод - 'update', значение - 'v'
object_js.valToSend = 200;
object_js.SendData();
или
object_js.objectToSend = 'object_mdm';
object_js.methodToSend = 'method_mdm';
object_js.valueToSend = 'value_mdm';
object_js.valToSend = 200;
object_js.MultiSendData();
запуск скрипта
object_js.scriptToSend = 'set_color_red';
object_js.SendScript();
Чтобы использовать во вкладках М
----------------------------
В файле
\htdocs\templates\application.html
дописать
<script language="javascript" type="text/javascript" src="/middle/middle_object.js"></script>
<script language="javascript" type="text/javascript" src="/middle/middle_connector.js"></script>
- Вложения
-
- middle13.zip
- (2.3 КБ) 375 скачиваний
Re: Middle-connector
Alex, никак не могу запустить код
по алерту выдает пустое значение.
Код: Выделить всё
<head>
<script language="javascript" type="text/javascript" src="/middle/middle_object.js"></script>
<script language="javascript" type="text/javascript" src="/middle/middle_connector.js"></script>
<script type="text/javascript">
temper = new middle_connector('Bedroom_li1.Status', 'bbb1', 2000, 1);
alert (temper.value);
</script>
</head>
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 32 раза
- Поблагодарили: 28 раз
Re: Middle-connector
Alex, тоже что-то не совладать с коннекторами.
Есть объект.свойство Window_South.StateText (текст - "Закрыто")
создаю в меню пункт, тип html в него вставляю код
в результате пустое окно alert.
что не так делаю? в application.html нужны строки добавил.
Есть объект.свойство Window_South.StateText (текст - "Закрыто")
создаю в меню пункт, тип html в него вставляю код
Код: Выделить всё
<head>
<script type="text/javascript">
my_var = new middle_connector('Window_South.StateText', 'bbb1', 2000, 1);
alert (my_var.valueStr);
</script>
</head>
что не так делаю? в application.html нужны строки добавил.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Middle-connector
Вот пример работающего кода, взятого прямо из системы.
Код: Выделить всё
<script language="javascript" type="text/javascript" src="/middle/middle_object.js"></script>
<script language="javascript" type="text/javascript" src="/middle/middle_connector.js"></script>
<script type="text/javascript">
cycle_test_value = new middle_connector('testOnNewMinute.value', '', 9000, 0);
function show9s() {
$("#cycle_value").html(cycle_test_value.valueStr);
}
$(document).ready(function(){
setInterval('show9s()', 9000);
});
</script>
...
<font size="2" color="lightgray" face="Arial"><span id="cycle_value"><b>OK</b></span></font>
-
- Сообщения: 968
- Зарегистрирован: Пт дек 06, 2013 11:30 am
- Откуда: Москва
- Благодарил (а): 71 раз
- Поблагодарили: 95 раз
Re: Middle-connector
А у меня что-то никак не работает.
Вот так -
Выдает значение.
А вот так нет, если создать файл test.html со следующим содержимым
Что не так может быть?
Как вообще проверить работоспособность скрипта?
Вот так -
Код: Выделить всё
http://127.0.0.1/middle/getdata.php?p=sensorTemp12.temp
А вот так нет, если создать файл test.html со следующим содержимым
Код: Выделить всё
<script language="javascript" type="text/javascript" src="/middle/middle_object.js"></script>
<script language="javascript" type="text/javascript" src="/middle/middle_connector.js"></script>
<script type="text/javascript">
my_var = new middle_connector('sensorTemp12.temp', 'bbb1', 2000, 1);
alert (my_var.valueStr);
</script>
Как вообще проверить работоспособность скрипта?
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Middle-connector
Alex, помоги понять работу middle_connector'а.Alex писал(а): object_js = new middle_connector('object_mdm.method_mdm', 'label', 2000, 1);
1) 2000-это интервал в 2 сек. Если я выставляю этот параметр, мне далее в скрипте не нужно его снова вызывать, он сам раз в 2 сек будет запрашивать значение?
2) что за параметр "label"? Зачем он? Это имя свойства к которому запрос? Или что?
3) object_mdm.method_mdm - не обязательно метод должен быть? Если я хочу запросить свойство, я могу вызвать obj_mdm.value, при этом при запуске на выполнение
Код: Выделить всё
object_js.objectToSend = 'obj_mdm';
object_js.methodToSend = 'method_mdm';
object_js.MultiSendData();
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Middle-connector
Запросы выполняются асинхронно, потому сразу после создания middle_connector значение не получишь. МеждуPAV писал(а): Что не так может быть?
Как вообще проверить работоспособность скрипта?
Код: Выделить всё
my_var = new middle_connector('sensorTemp12.temp', 'bbb1', 2000, 1);
Код: Выделить всё
alert (my_var.valueStr);
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Middle-connector
Совершенно верно1) 2000-это интервал в 2 сек. Если я выставляю этот параметр, мне далее в скрипте не нужно его снова вызывать, он сам раз в 2 сек будет запрашивать значение?
Рудимент и никак не используется, если я правильно помню2) что за параметр "label"? Зачем он? Это имя свойства к которому запрос? Или что?
Там два варианта: либо3) object_mdm.method_mdm - не обязательно метод должен быть? Если я хочу запросить свойство, я могу вызвать obj_mdm.value, при этом при запуске на выполнение
метод - 'update', значение - 'v'
либо полное описание что и куда посылается
object_js.objectToSend = 'object_mdm';
object_js.methodToSend = 'method_mdm';
object_js.valueToSend = 'value_mdm';
object_js.valToSend = 200;
object_js.MultiSendData();
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Middle-connector
Если скрипт запускается сам, и обновляет свойство сам, зачем тогда кусок кода, который перезаписывает это же свойство еще раз?Alex писал(а):Совершенно верно1) 2000-это интервал в 2 сек. Если я выставляю этот параметр, мне далее в скрипте не нужно его снова вызывать, он сам раз в 2 сек будет запрашивать значение?
Alex писал(а):Вот пример работающего кода, взятого прямо из системы.
Код: Выделить всё
... function show9s() { $("#cycle_value").html(cycle_test_value.valueStr); } $(document).ready(function(){ setInterval('show9s()', 9000); }); ...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<