Суббота, 23.09.2017, 11:24
| RSS
Главная | Web интерфейс,JS и все что с ними связано. - Форум
Защита, контроль, управление
Форма входа
Логин:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS · Чат ]
Страница 1 из 6123456»
Модератор форума: Zoolu 
Форум » ФОРУМ » Домашняя автоматизация на Raspberry Pi » Web интерфейс,JS и все что с ними связано.
Web интерфейс,JS и все что с ними связано.
alexsis_76Дата: Среда, 14.06.2017, 06:47 | Сообщение # 1
Группа: Пользователи
Сообщений: 71
Статус: Offline
Если у вас возникли вопросы по работе веб добро пожаловать.
 
OlegMДата: Среда, 14.06.2017, 06:47 | Сообщение # 2
Группа: Пользователи
Сообщений: 37
Статус: Offline
alexsis_76, Попробую задать вопрос на этой ветке - если есть возможность помогите с аяксом, уже мозги плавятся ничего не получается. У меня RPI соединён  по UART с ардуино, дальше ардуино по RS485 общается с контроллерами (не модбас). Ардуино периодически отдаёт RPI строчку со всеми переменными типа P11001001111......
Да, ещё вопрос - принять данные получается, а передать с помощью питона не могу:
 
 # Управление каналом №1
# Включить
@webiopi.macro

def getContr1_ch1_on():
    serial = Serial("ttyAMA0", 9600)
    serial.write(":01DO1S100.00") 
# Отключить
@webiopi.macro
def getContr1_ch1_off():
    serial = Serial("ttyAMA0", 9600)
    serial.write(":01DO1S000.00") 
#=============================

В чем ошибка?
Если с HTML отправляю onClick=serial.write(":03DO2S000.00") всё получается. 

Вашу ссылку посмотрел вроде маленько помогла, но вопросы остались. Если можете ответьте.


олег
 
ZooluДата: Среда, 14.06.2017, 06:47 | Сообщение # 3
Группа: Модераторы
Сообщений: 308
Статус: Offline
OlegM, А в момент "когда не получается", что происходит в браузере? (ctrl+shift+i) А еще приложите кусок кода из файла .html для вызова этого макроса. И пожалуйста всегда прячьте код под кат и оформляйте как код!!! Спасибо.
 
OlegMДата: Среда, 14.06.2017, 06:48 | Сообщение # 4
Группа: Пользователи
Сообщений: 37
Статус: Offline
Zoolu, Спасибо, что откликнулись, сейчас RPI не под рукой, на выходных посмотрю.

олег
 


alexsis_76Дата: Среда, 14.06.2017, 06:48 | Сообщение # 5
Группа: Пользователи
Сообщений: 71
Статус: Offline
Вообщем дела обстоят так ну или примерно так.
Во главу угла в веб интерфейсе ставится webiopi.js через нее идет все взаимодействие с сервером
библиотека использует jquery.
обратите внимание на кучки разных функций в библиотеке
например

эта функция шлет данные методом POST
плюса означают контактенцию(слияние строк),все что в кавычках передается как есть,а вместо gpio вставляется значение переменной
после получения ответа будет вызвана функция обратного вызова(ваша) callback(gpio, data);с полученными данными,вы пишите ее сами и она делает все что вам нужно
теперь нужно обработать ваш запрос на стороне сервера и выдать ответ
в webiopi.py есть такое

это обработчик post запроса
который отправляет ответ скриптупримерно таким нехитрым способом происходит общение
одно обращение к WebIOPi.prototype.pulse генерирует один запрос,чтобы повторять запрос нужно вызывать WebIOPi.prototype.pulse через определенные промежутки времении
setInterval (pulse"(gpio,callback)", 5000);{
}
будет вызываться раз в 5 сенунд для выбранного gpio,и будет выполнятся ваша callback
описанное относится к оригинальным файлам webiopi,в файлах от Admina может быть по другому но смысл тот же.


Сообщение отредактировал Zoolu - Пятница, 09.06.2017, 11:28
 
OlegMДата: Среда, 14.06.2017, 06:48 | Сообщение # 6
Группа: Пользователи
Сообщений: 37
Статус: Offline
Спасибо за информацию, я предполагал, что аякс реализован уже, но тогда вопрос - почему при подключении двух, трёх клиентов к серверу происходит затык. Судя по МегаСерверу, аякс должен решать эту проблему?

олег

Сообщение отредактировал Zoolu - Вторник, 13.06.2017, 05:26
 
BarmaleyДата: Среда, 14.06.2017, 06:48 | Сообщение # 7
Группа: Участники
Сообщений: 150
Статус: Offline
Цитата OlegM ()
почему при подключении двух, трёх клиентов к серверу происходит затык

Странно, а я пробовал подключаться через WebIOPi одновременно с компа и смартфона и при этом была возможность "паралельной работы" клиентов.
Но я наоборот считаю, что это не есть хорошо. Более оптимальный вариант - работа только с одним клиентом, а если в это время пытается подключится второй, то выводить сообщение, что сессия занята.
 
alexsis_76Дата: Среда, 14.06.2017, 06:48 | Сообщение # 8
Группа: Пользователи
Сообщений: 71
Статус: Offline
Цитата
почему при подключении двух, трёх клиентов к серверу происходит затык. Судя по МегаСерверу, аякс должен решать эту проблему?

не знаю как там на мегасервере но аякс при неправильном применении как раз способен вызвать проблемы указанные выше
 
Цитата
то выводить сообщение, что сессия занята.
в этом случае помогает индентификатор сессии

посмотрел код Zoolu
насчитал 9 setInterval 
и такие строки

setInterval ("callMacro_getCelsius_0()", 10000);{
}
setInterval ("callMacro_getCelsius_1()", 10000);{
}
как я понимаю это два датчика температуры получать их можно одним запросом
и вообще посылать всего один аякс запрос,а ответ отдавать в виде json
а как производится выдача результата по запросу ,ответ берется из буфера или устройство по получении запроса обращается к датчику и потом выдается ответ?


Сообщение отредактировал alexsis_76 - Вторник, 13.06.2017, 07:22
 
OlegMДата: Среда, 14.06.2017, 06:48 | Сообщение # 9
Группа: Пользователи
Сообщений: 37
Статус: Offline
А я уже привык. Сейчас сервер на ESP, внизу постоянно планшет лежит, на втором этаже другой. Они выступают в роли дистанций, удобно светом управлять и т д. Кто в доме свободно управляют независимо друг от друга.

олег
 


BarmaleyДата: Среда, 14.06.2017, 06:49 | Сообщение # 10
Группа: Участники
Сообщений: 150
Статус: Offline
Цитата alexsis_76 ()
в этом случае помогает индентификатор сессии

А можно поподробнее?

Цитата alexsis_76 ()
,а ответ отдавать в виде json

Так вроде бы для массива данных у автора так и сделано?
А несколько setInterval нужно, если устанавливать разное время опроса у разных датчиков. Если время олинаковое, то можно и в одном запросе

Добавлено (13.06.2017, 07:43)
---------------------------------------------

Цитата OlegM ()
Кто в доме свободно управляют независимо друг от друга.

Это хорошо, когда один живешь. А так начнется - один включает, другой отключает biggrin
 
Форум » ФОРУМ » Домашняя автоматизация на Raspberry Pi » Web интерфейс,JS и все что с ними связано.
Страница 1 из 6123456»
Поиск:



T2M © 2017
Сайт управляется системой uCoz