Модуль управления Laurent (Лоран)

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Модуль управления Laurent (Лоран)

Сообщение Alex » Чт июл 12, 2012 8:32 pm

Так же виснет на этапе ожидания ответа модуля.

Не знаю почему, но пока я дополнял команды байтами (для Arduino)

//byte CRbyte = 13; // HEX 0x0D
//byte LFbyte = 10; // HEX 0x0A

, как написано в документации, ничего не работало. А вот такая конструкция

lclient.println(buf);
delay(100);

(без добавления этих байтов) — заработала.

И ещё. Без добавления задержки delay(100) после посылки команды никакких ответов от модуля тоже не было. Может это как-то поможет.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль управления Laurent (Лоран)

Сообщение sergejey » Чт июл 12, 2012 10:45 pm

продолжаем наши пляски... добавил задержку.
Вложения
l_test.zip
(1.23 КБ) 285 скачиваний

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Модуль управления Laurent (Лоран)

Сообщение Alex » Пт июл 13, 2012 9:59 am

Задержка не помогла.

Информация для размышления:

1 — Модуль на любой символ или цепочку символов + ENTER отвечает #ERR, а у нас — молчёк.

2 — возможно здесь [socket_write($socket, $in, strlen($in));] на самом деле ничего не посылается или посылается «не туда»

3 — Вот эта конструкция [ $out = socket_read($socket, 2048, PHP_NORMAL_READ)) ] наглухо висит (чего-то ждёт), даже если её вытащить из цикла.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль управления Laurent (Лоран)

Сообщение sergejey » Пт июл 13, 2012 11:38 am

Давай всё-таки ты сделаешь порт-мэппинг, как я в привате написал, будет быстрее наверное.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Модуль управления Laurent (Лоран)

Сообщение Alex » Пт июл 13, 2012 10:08 pm

Welcome!
Вложения
a3.png
a3.png (29.2 КБ) 10400 просмотров
a2.png
a2.png (21.52 КБ) 10400 просмотров
a1.png
a1.png (8.87 КБ) 10400 просмотров
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль управления Laurent (Лоран)

Сообщение sergejey » Сб июл 14, 2012 10:51 pm

Alex, уже можно убирать маппинг портов.

Ушло буквально 5 минут, чтобы найти в чем дело. вот что значит иметь доступ к железу ))

Значит так, в аттаче файл laurent.class.php его надо положить в папку ./lib/ и тогда можно пользоваться в сценариях следующей командой:

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

laurent_command('<адрес устройтсва>', '<команда>', '<пароль к устройству>');
пример вызова:

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

$result=laurent_command('192.168.2.100', '$KE,INF', 'Laurent');
после этого в $result будет что-то вроде:

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

#INF,Laurent,La01,J89F-V571-XU43-L308
ну и остальные команды будут работать аналогично.

т.е. можно говорить о полноценной поддержки устройства. единственное, что меня смущает, так это то, что команды передаются и получаются результаты, но при этом постоянного соединения с устройством не поддерживается. это значит, что система не узнает мгновенно об изменении на каком-нибудь из датчиков, а только путём периодического опроса состояния. но пока остановимся хотя бы на этом :)
Вложения
laurent.zip
(536 байт) 319 скачиваний

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Модуль управления Laurent (Лоран)

Сообщение Alex » Вс июл 15, 2012 10:19 am

Да, супер. Попробовал — работает. Но как всегда не обошлось без вопросов :).

Посмотрел я код и что-то не понял

$in='$KE'."\r\n";
$in='$KE,PSW,SET,'.$password."\r\n";
$in=$command."\r\n";

Он что, при каждом вызове последовательно посылает 3 команды?

И ещё вопрос. Есть команда $KE,DAT,ON после которой модуль начинает выдавать полную статистику каждую секунду. Во-первых, как ловить эту статистику (там штук 15 различных параметров). И, во-вторых, после подачи этой команды ($KE,DAT,ON) остановить её не удаётся ни из MajorDoMo, ни даже из терминала :). Остановить удаётся только из Arduino Ethernet, типа ($KE,DAT,OFF).
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль управления Laurent (Лоран)

Сообщение sergejey » Пн июл 16, 2012 12:18 am

Alex писал(а):Да, супер. Попробовал — работает. Но как всегда не обошлось без вопросов :).

Посмотрел я код и что-то не понял

$in='$KE'."\r\n";
$in='$KE,PSW,SET,'.$password."\r\n";
$in=$command."\r\n";

Он что, при каждом вызове последовательно посылает 3 команды?
Да, для надёжности. С каждой командой открывается новое tcp-соединение и потом закрывается. Оно, возможно, и избыточно, но мне показалось, что так проще и надёжней.
Alex писал(а): И ещё вопрос. Есть команда $KE,DAT,ON после которой модуль начинает выдавать полную статистику каждую секунду. Во-первых, как ловить эту статистику (там штук 15 различных параметров). И, во-вторых, после подачи этой команды ($KE,DAT,ON) остановить её не удаётся ни из MajorDoMo, ни даже из терминала :). Остановить удаётся только из Arduino Ethernet, типа ($KE,DAT,OFF).
А нельзя эту статистику получить разово или через другие команды? Текущая реализация не предполагает реакцию, на какие-то события от устройства, т.к. устанавливается соединение только чтобы отправить команду и получить ответ.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Модуль управления Laurent (Лоран)

Сообщение Alex » Пн июл 16, 2012 10:18 am

А нельзя эту статистику получить разово или через другие команды?
На 98% можно получать через другие команды. Но бывают моменты, когда информация только выдаётся только там. Не критично, но можно поставить в список задач.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль управления Laurent (Лоран)

Сообщение sergejey » Пн июл 16, 2012 1:10 pm

Alex писал(а):
А нельзя эту статистику получить разово или через другие команды?
На 98% можно получать через другие команды. Но бывают моменты, когда информация только выдаётся только там. Не критично, но можно поставить в список задач.
Можно сделать процедуру, которая будет включать статистику, получать информацию и сразу выключать статистику. Такой вариант подойдёт?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить