USB-TTL-Majodomo
Модератор: immortal
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: USB-TTL-Majodomo
Увы похоже напрямую из МД никак...
Не "дружит" система ни с fopen() ни с dio_open(). Приходится обрабатывать данные внешними скриптами по планировщику и записывать прямо в базу.
Если скрипт " обрамить такой конструкцией
include_once("./config.php");
include_once("./lib/loader.php");
$db=new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME); // connecting to database
.....
$db->Disconnect(); // closing database connection
то внутри можно использовать функции setGlobal() и getGlobal();
Например:
# Мощность по фазам активная, Вт
# =====================================================
$command = explode(',', gg('M236v1.cPv'));
$c="";
for($i=0; $i < count($command); $i++){$c .= chr($command[$i]);}
$Pv = merc_gd($c, 0.01);
//echo "Pv: $Pv[0] - $Pv[1] - $Pv[2] - $Pv[3]\r\n"."<br>";
sg('M236v1.P',round($Pv[0],1));
sg('M236v1.P1',round($Pv[1],1));
sg('M236v1.P2',round($Pv[2],1));
sg('M236v1.P3',round($Pv[3],1));

Если скрипт " обрамить такой конструкцией
include_once("./config.php");
include_once("./lib/loader.php");
$db=new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME); // connecting to database
.....
$db->Disconnect(); // closing database connection
то внутри можно использовать функции setGlobal() и getGlobal();
Например:
# Мощность по фазам активная, Вт
# =====================================================
$command = explode(',', gg('M236v1.cPv'));
$c="";
for($i=0; $i < count($command); $i++){$c .= chr($command[$i]);}
$Pv = merc_gd($c, 0.01);
//echo "Pv: $Pv[0] - $Pv[1] - $Pv[2] - $Pv[3]\r\n"."<br>";
sg('M236v1.P',round($Pv[0],1));
sg('M236v1.P1',round($Pv[1],1));
sg('M236v1.P2',round($Pv[2],1));
sg('M236v1.P3',round($Pv[3],1));
-
- Сообщения: 19
- Зарегистрирован: Вт ноя 03, 2015 10:06 pm
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: USB-TTL-Majodomo
Спасибо что ответили, объяснили непонятно но смысл уловил. Почему то считал что в Majodomo реализована функция мониторинга порта.
Лично мне это кажется логичным. тогда буду ждать Ethernet шилд и делать как все )).
PS "Сегодня продавец с Али прислал какую то фигню. Перепутал пакеты и вместо моей кучи датчиков и разнообразных шилдов, моторчиков и т.п я получил два копеечных реле
Вот кому то подарок придет..... вместо фигни, куча ништяков
"
Лично мне это кажется логичным. тогда буду ждать Ethernet шилд и делать как все )).
PS "Сегодня продавец с Али прислал какую то фигню. Перепутал пакеты и вместо моей кучи датчиков и разнообразных шилдов, моторчиков и т.п я получил два копеечных реле

Вот кому то подарок придет..... вместо фигни, куча ништяков

-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: USB-TTL-Majodomo
Все замечательно работает, по крайней мере на Линукс. Вот пример управления телевизором через COM-порт http://majordomo.smartliving.ru/forum/v ... f=8&t=2319. В основе лежит библиотека php_serial.class.php
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: USB-TTL-Majodomo
2skysilver:
Может поможете в этом вопросе: http://majordomo.smartliving.ru/forum/v ... 7&start=30
Суть в том, что добил php скрипт по взаимодействию с электросчетчиками Меркурий 326. Нормально получаю все данные, но есть 2 проблемы.
1. Скрипт нормально выполняется из командной строки или браузера и заносит все данные в базу мажордомо, но этот же скрипт отказывается запускаться из-под мажордомо. Хотел завести класс, объекты, методы прямо в МД, но, увы, приходится "через заднюю дверь"...
2. Никак не могу побороть проблему начальной инициализации порта. Т.е. чтобы мой скрипт мог подключаться к счетчикам, нужно один раз после перезагрузки компа запустить родную прогу от счетчиков и установить соединение с любым счетчиком. Затем прогу можно закрыть и запускать скрипт, все соединения -ОК.
Может поможете в этом вопросе: http://majordomo.smartliving.ru/forum/v ... 7&start=30
Суть в том, что добил php скрипт по взаимодействию с электросчетчиками Меркурий 326. Нормально получаю все данные, но есть 2 проблемы.
1. Скрипт нормально выполняется из командной строки или браузера и заносит все данные в базу мажордомо, но этот же скрипт отказывается запускаться из-под мажордомо. Хотел завести класс, объекты, методы прямо в МД, но, увы, приходится "через заднюю дверь"...
2. Никак не могу побороть проблему начальной инициализации порта. Т.е. чтобы мой скрипт мог подключаться к счетчикам, нужно один раз после перезагрузки компа запустить родную прогу от счетчиков и установить соединение с любым счетчиком. Затем прогу можно закрыть и запускать скрипт, все соединения -ОК.
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: USB-TTL-Majodomo
1. Ошибки-то есть какие-нибудь при этом? (в логах апача и мажордомо) Как вариант, заменить exec() на system() или safe_exec().Victor_S писал(а):2skysilver:
Может поможете в этом вопросе: http://majordomo.smartliving.ru/forum/v ... 7&start=30
Суть в том, что добил php скрипт по взаимодействию с электросчетчиками Меркурий 326. Нормально получаю все данные, но есть 2 проблемы.
1. Скрипт нормально выполняется из командной строки или браузера и заносит все данные в базу мажордомо, но этот же скрипт отказывается запускаться из-под мажордомо. Хотел завести класс, объекты, методы прямо в МД, но, увы, приходится "через заднюю дверь"...
2. Никак не могу побороть проблему начальной инициализации порта. Т.е. чтобы мой скрипт мог подключаться к счетчикам, нужно один раз после перезагрузки компа запустить родную прогу от счетчиков и установить соединение с любым счетчиком. Затем прогу можно закрыть и запускать скрипт, все соединения -ОК.
2. Тут надо узнавать эти самые параметры порта, которые ставит родная программа. Если они известны, то в линуксе инициализация порта делается примерно такой командой при загрузке ОС:
Код: Выделить всё
stty -F /dev/ttyUSB0 -icrnl -ixon ignbrk isig -echoctl -echoke -isig -icanon -iexten -echo -echoe -echok -opost -onlcr -hupcl

MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 136
- Зарегистрирован: Вс июл 14, 2013 2:42 pm
- Благодарил (а): 6 раз
- Поблагодарили: 27 раз
Re: USB-TTL-Majodomo
Под линуксом отлично работает. Единственно что надо сделать это настроить порт как сказано выше и есть необходимо(нужно в 90% случаев) дать права на порт юзеру под которым запускается МДМ
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: USB-TTL-Majodomo
1. Ошибки в мажордомо, приведены в топике по ссылке.
2. Параметры порта разумеется выставляю те же что и в родной проге. Что там она еще по умолчанию настраивает - ХЗ...
2. Параметры порта разумеется выставляю те же что и в родной проге. Что там она еще по умолчанию настраивает - ХЗ...