Вот ещё, о чём я не подумал, устанавливаю яркость светодиода 100 и второго 150.
Обновляю страничку и пумс, яркость по 0.
Или захожу с телефона на этот же адрес...и началось моргание...
Как мне сохранить установленную яркость?
Вы её устанавливаете на клиенте? Если да, то передайте на сервер и там в какой-нибудь епром запишите или ещё как сохраните, а потом при выдаче страницы, выдавайте изначально то самое схохранённое значение.
Сергей, давайте Вы наконец научитесь отделять мух от котлет. Есть сервер и есть клиент. Если сервер передаёт то, что Вам нужно, то клиент это примет. Вам надо вяснить, где Ваша проблема - на сервере или на клиенте.
Для этого Вам надо посмотреть что конкретно возвращает сервер клиенту.
Вы можете загрузить страницу в клиент и посмотреть исходный HTML страницы?
ПОтом загрузить "с другого устройства" и там тоже посмотреть исходный HTML страницы?
Если сервер передал правильно, надо разбираться почему клиент правильно не передал.
Если же сервер передал неправильно, надо смотреть почему.
Ну, не ведите себя как ребёнок, добавьте в скетч вывод этой строки в сериал. Посмотрите на строку. Она должны выглядеть точно так как Вы хотите, чтобы она уходила с сервера. Если она выгладит как-то не так, правьте. Просто посмотрите на неё в сериале.
Очень интересная тема для новичков. Евгений, очередное БОЛЬШОЕ СПАСИБО Вам за трату времени и износ клавиатуры. Жаль, конечно, что в первом посте Вы не смогли выложить непосредственно сам скетч для дуинки, что было бы очень полезно для "чайников", но в целом все великолепно и понятно.
Я не вижу в приведённом коде запрсов, который Вы делаете, чтобы передать что-то серверу, а также запросов для обновления данных (они у Вас спрятаны в подключаемом скрипте).
В любом случае, убедитесь, что м любом запросе есть случайный параметр (помните, как я вставлял ненужный параметр в запрос файла данных - случайное число). Такой же левый параметр обязан быть в любом запросе (на kaka.htm там и вообще в люьом). Иначе велика вероятность, что клиент просто не пошлёт запрос серверу, а выдаст Вам то, что он там накешировал.
Вы нигде не на самом деле запоминаете свои on/off.
Всякий раз, когда коиент Вам их передал, Вы их читаете из запроса клиента и устанваливаете диоды.
Просто ведите пальце по этим строкам - пришёл запрос от клиента ... и что? Читаем из запроса.
Поэтому в форме одного клиента Вы поменялм и всё поменялось.
Затем идет запрос от дркгого клиента (у когторо в форме старые значения) и он затирает.
Сервер мроже в сериал что-то напечатать? Попечатайте запросы - разберётесь.
Проблема в том, что Ваш запрос kaka.htm - два в одном. И установить, и узнать. Разделите запросы - установить отдельно, а узнать отдельно и всё устанканится.
в момент захода на сайт у тебя должно проверятся состояние диодов в данный момент, и выводится на сайт аяксом, а с таким кодом там ошибок куча, подума только что это делает ? ))
в момент захода на сайт у тебя должно проверятся состояние диодов в данный момент, и выводится на сайт аяксом, а с таким кодом там ошибок куча, подума только что это делает ? ))
if($diod1=='false'|| $diod1=='true')
Если Диод1 равен false или Диод1 равен true
то запишем его значение в temp.txt, точнее заменим строку в уже созданном файле
принцип такой, данные по состоянию диодов храятся в файле или БД, поэтому хоть со ста устройств зайди будет одно и тоже, у тебя значит при заходе меняется состояние, вот ищи ошибку.
кнопки где, как кнопки организованны, php где ? а лучше выложи все архивом, все полностью, что бы не искать все части и не искать что где и подпиши где за что отвечает
---
кнопки уже есть, лучше архивом выложи и подпиши все, потом гляну
Вроде, как бы разобрался, неверно сохранял значения в вайл.
function onoff(vb,st) {
var x = new XMLHttpRequest();
document.getElementById(vb).innerHTML=st;
if (vb=='diod1'){
x.open("GET", "text.php?di1="+st+"&di2=&r="+Math.random(), true);
x.send(null);
}else{
x.open("GET", "text.php?di1=&di2="+st+"&r="+Math.random(), true);
x.send(null);
}
}
Sergeyevd
http://www.w3schools.com/jsref/dom_obj_range.asp
Merci beaucoup!
а то я так начал делать, непонравилось мне...
onclick='fun(0)'
Яснее выражайтесь. Почему один? Кто мешает поставить разные ID кнопкам?
Тогда и
var yarkost = document.getElementById(
"qp"
).value; будет не одно
std мне всё верно подсказала(л)
Добавил отображение текущего времени, но оно притормаживает.
Вот ещё, о чём я не подумал, устанавливаю яркость светодиода 100 и второго 150.
Обновляю страничку и пумс, яркость по 0.
Или захожу с телефона на этот же адрес...и началось моргание...
Как мне сохранить установленную яркость?
Как с одного устройства сохранить состояние разобрался, добавил две переменных
Вот ещё, о чём я не подумал, устанавливаю яркость светодиода 100 и второго 150.
Обновляю страничку и пумс, яркость по 0.
Или захожу с телефона на этот же адрес...и началось моргание...
Как мне сохранить установленную яркость?
Вы её устанавливаете на клиенте? Если да, то передайте на сервер и там в какой-нибудь епром запишите или ещё как сохраните, а потом при выдаче страницы, выдавайте изначально то самое схохранённое значение.
Я так и сделал, 42 и 46 строчки подгружается ранее установленное значение, и можно перезагружать страничку, всё останется таким же.
42
"<input type=\"range\" min=\"0\" max=\"255\" step=\"5\" id=\"diod1\" value=\"$D\">"
46
"<input type=\"range\" min=\"0\" max=\"255\" step=\"5\" id=\"diod2\" value=\"$D\">"
56
if
(strstr(data,
"GET /kaka.htm"
) ) {
57
int
yarkost = atoi(strstr(data,
"q="
) + 2);
58
int
yarkost1 = atoi(strstr(data,
"w="
) + 2);
59
e=yarkost;
60
r=yarkost1;
Но зайдя с другого устройства...
И что "зайдя с другого устройства".
Сергей, давайте Вы наконец научитесь отделять мух от котлет. Есть сервер и есть клиент. Если сервер передаёт то, что Вам нужно, то клиент это примет. Вам надо вяснить, где Ваша проблема - на сервере или на клиенте.
Для этого Вам надо посмотреть что конкретно возвращает сервер клиенту.
Вы можете загрузить страницу в клиент и посмотреть исходный HTML страницы?
ПОтом загрузить "с другого устройства" и там тоже посмотреть исходный HTML страницы?
Если сервер передал правильно, надо разбираться почему клиент правильно не передал.
Если же сервер передал неправильно, надо смотреть почему.
Проделайте это.
На какие симолы ругается?
"var a=this.responseText.replace(/\s*[\r\n=]+\s*/g, \"=\").replace(/^\s+/,\"\").replace(/\s+$/,\"\").match( /([^=]+)/g);"
А ругань-то где?
Если скрипт в ардуино, то не могу зайти на сервер, не удаётся получить доступ к сайту
И при этом компилируется?
Ну, не ведите себя как ребёнок, добавьте в скетч вывод этой строки в сериал. Посмотрите на строку. Она должны выглядеть точно так как Вы хотите, чтобы она уходила с сервера. Если она выгладит как-то не так, правьте. Просто посмотрите на неё в сериале.
Компилируется.
А вот сериал принт уже ругается
Если переде кажды " ставлю \ результат тот же.
Что еще нужно закомментировать?
А зачем Вы её так ставите? Что Вам это даст? Ставьте целиком как есть. Точно скопируйте из Вашей 29 строки. Типа там PSTR(.... и всю целиком.
Подскажите как организовать кросс-доменный запрос
Как я понял сервер должен ответить
Нашёл
Access-Control-Allow-Origin: *
Но всё же, как добавить в запрос Origin:http://192.168.1.36/ ?
192.168.1.* довольно сильно намекает мне на NAT. А раз так, почему не написать просто "Access-Control-Allow-Origin: null"?
UPD.
Написано же всё:
http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp
UPD2. Бл█ть, как же меня улыбает этот редактор в форме ответа. Пора вырабатывать привычку жать "Источник" и писать пост прямо в HTML.
Разобрался, o.setRequestHeader("", "");
std, Спасибо.
Очень интересная тема для новичков. Евгений, очередное БОЛЬШОЕ СПАСИБО Вам за трату времени и износ клавиатуры. Жаль, конечно, что в первом посте Вы не смогли выложить непосредственно сам скетч для дуинки, что было бы очень полезно для "чайников", но в целом все великолепно и понятно.
Евгений, я всё о том же, о нескольких одновременно подключенных устройствах.
Захожу с компьютера по адресу 192.168.1.100
Нажимаю первую On Клиент" пишет On сервер пишет On, диод включился, аналогично со вторым.
Перезагружаю стртаничку, статус диода не меняется, если горит то On иначе Off. Всё правильно.
Включаю два диода с компьютера.
а на компьютере без изменений
Т.е. он при перезагрузке на компьютере нормально обновляется, но пере обновляется сам. Я правильно понял?
Я не вижу в приведённом коде запрсов, который Вы делаете, чтобы передать что-то серверу, а также запросов для обновления данных (они у Вас спрятаны в подключаемом скрипте).
В любом случае, убедитесь, что м любом запросе есть случайный параметр (помните, как я вставлял ненужный параметр в запрос файла данных - случайное число). Такой же левый параметр обязан быть в любом запросе (на kaka.htm там и вообще в люьом). Иначе велика вероятность, что клиент просто не пошлёт запрос серверу, а выдаст Вам то, что он там накешировал.
https://www.youtube.com/watch?v=XE4qLNvwlOA
Прошу прощени за качество, но суть будет понятна.
НА видео есть такие строки, забыл их убрать, не обращаем внимания.
----
Сервер
Сервер
Сотмрим на строки 54 - 57.
Вы нигде не на самом деле запоминаете свои on/off.
Всякий раз, когда коиент Вам их передал, Вы их читаете из запроса клиента и устанваливаете диоды.
Просто ведите пальце по этим строкам - пришёл запрос от клиента ... и что? Читаем из запроса.
Поэтому в форме одного клиента Вы поменялм и всё поменялось.
Затем идет запрос от дркгого клиента (у когторо в форме старые значения) и он затирает.
Сервер мроже в сериал что-то напечатать? Попечатайте запросы - разберётесь.
Проблема в том, что Ваш запрос kaka.htm - два в одном. И установить, и узнать. Разделите запросы - установить отдельно, а узнать отдельно и всё устанканится.
Ага, разобрался, спасибо.
Возникла проблема.
https://youtu.be/5lCvmcY0TV8 (иногда включаются/выключаются оба диода, если с двух и более устрйоств заходить )
text.php
Или вот аткой вариант, тоже самое:
index.html
text.php
if
(
$diod1
==
'false'
||
$diod1
==
'true'
)
ну это вообще крутая строчка, странно, что там все чет не работает...
а это
$file
[1-1] шедевр..
интересная тема. подпишусь почитаю. руки дойдут тоже хочется попробывать с веб. Евгению Спасибо.
if
(
$diod1
==
'false'
||
$diod1
==
'true'
)
ну это вообще крутая строчка, странно, что там все чет не работает...
а это
$file
[1-1] шедевр..
в момент захода на сайт у тебя должно проверятся состояние диодов в данный момент, и выводится на сайт аяксом, а с таким кодом там ошибок куча, подума только что это делает ? ))
if
(
$diod1
==
'false'
||
$diod1
==
'true'
)
в момент захода на сайт у тебя должно проверятся состояние диодов в данный момент, и выводится на сайт аяксом, а с таким кодом там ошибок куча, подума только что это делает ? ))
if
(
$diod1
==
'false'
||
$diod1
==
'true'
)
Если Диод1 равен false или Диод1 равен true
то запишем его значение в temp.txt, точнее заменим строку в уже созданном файле
иначе не запишем
Это на случай если запрос будет пустым.
С первым вариантом аналогичная проблема
если диод не true, то он false тут что не понятно , если не false, то true !!!
принцип такой, данные по состоянию диодов храятся в файле или БД, поэтому хоть со ста устройств зайди будет одно и тоже, у тебя значит при заходе меняется состояние, вот ищи ошибку.
так пробуй
Благодарю, работает скрипт.
Но где же ошибка, почему включаются/выключаются оба диода.
Счас так же ВКЛ и выкл при заходе ?
https://youtu.be/X9-IZk1q2GE
Не при заходе, при заходе всё было хорошо.
При нажатии.
Возможно когда заходишь с другого устройства, то в адресе хоста передаешь ещё и переменные тип адрес?di1=1&di2=1
Нет.
Оба адреса
http://192.168.1.36/php/
http://192.168.1.36/php/
значит так, показывай куски когда как передаешь данные в файл и как читаешь состояния
Передача
Приём
кнопки где, как кнопки организованны, php где ? а лучше выложи все архивом, все полностью, что бы не искать все части и не искать что где и подпиши где за что отвечает
---
кнопки уже есть, лучше архивом выложи и подпиши все, потом гляну
http://dropmefiles.com/ba5F7
Вроде, как бы разобрался, неверно сохранял значения в вайл.
Грубо говоря вот так надо.
ну если работает, то я не буду смотреть ?
Работает