Arduino Mega Server
Модератор: Alex
Re: Arduino Mega Server
Самому интересно стало. Поэтому идем в библию и в поиске вводим " pos1 = request.indexOf("r1mon=") + 6; ". В ответе получаем такой перечень. А дальше пытаюсь читать код. Если в HTTP запросе есть "r1mon=" , pos1 = request.indexOf("r1mon=") + 6; то в ответе прибавляем 6 и commandStr = request.substring(pos1, pos2);....
Вообще конечно надо уметь разбираться в синтаксисе языка.
Вообще конечно надо уметь разбираться в синтаксисе языка.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Re: Arduino Mega Server
Что-то на такой запрос мой поиск вообще никак не риагирует, может библии у нас разные...serghei писал(а): Вт фев 12, 2019 9:08 pm Поэтому идем в библию и в поиске вводим " pos1 = request.indexOf("r1mon=") + 6; ".
Собственно indexOf и как работает эта часть pos1 = request.indexOf("r1mon=") мне понятно, меня интересует почему 6,7 там есть 8,9 почему именно эти цифры, а не 1,2,3...15, что от них зависит, на что влияют.
Получается пока я не достигну определенного уровня, вопросы задавать нельзя? Я могу написать код на Си без комментариев Вы в нем сразу все поймете? Если для Вас это просто и очевидно тогда объясните человеческим языком как это работает.
Я пытаюсь подключить 16 реле и управлять ими через веб по заданным алгоритмам и значениям, поэтому и обратился к ser009 автору кода, чтобы разобраться откуда ноги (эти цифры) растут.
Re: Arduino Mega Server
SPOILERSPOILER_SHOW
code]pos1 = request.indexOf("r1mode=") + 7;
pos2 = request.indexOf("&", pos1);
commandStr = request.substring(pos1, pos2);
rele1mode = commandStr.toFloat();}[/code]
pos2 = request.indexOf("&", pos1);
commandStr = request.substring(pos1, pos2);
rele1mode = commandStr.toFloat();}[/code]
Имя и значение
Число 7 ( в примере ) означает число символов в имени переменной. Знак "=" тоже учитывается
Второе pos2 значение.
Последний раз редактировалось ser009 Чт фев 14, 2019 5:55 am, всего редактировалось 1 раз.
Re: Arduino Mega Server
Все понял, благодарю.ser009 писал(а): Ср фев 13, 2019 7:57 pm В данной функции полученный ответ раскладывается на 2 части:
Имя и значение
Число 7 ( в примере ) означает число символов в имени переменной. Знак "=" тоже учитывается
Второе pos2 значение.
Re: Arduino Mega Server
serghei писал(а): Сб сен 22, 2018 10:06 pm Возможно я изменил вкладку " Контакт". Привожу рабочий вариант. Сама вкладкаВ сервере ажаксКод: Выделить всё
/* Module Contacts part of Arduino Mega Server project */ #ifdef CONTACTS_FEATURE #define CONT1_PIN 27 #define CONT2_PIN 31 #define OPEN 1 #define CLOSE 0 char cont1object[] = "cont1"; char cont2object[] = "cont2"; char cont1openMess[] = "Open"; char cont1closeMess[] = "Closed"; char cont2openMess[] = "Down"; char cont2closeMess[] = "Norm"; // states // 0 - open // 1 - close // 2 - not defined byte cont1state = 2; byte old_cont1state = 2; byte cont1objectState = 2; byte cont2state = 2; byte old_cont2state = 2; byte cont2objectState = 2; void contactsInit() { pinMode(CONT1_PIN, INPUT); pinMode(CONT2_PIN, INPUT); moduleContacts = MODULE_ENABLE; started("Contacts"); } void printContMess(char obj[], char mess[]) { timeStamp(); Serial.print(obj); Serial.print(F(": ")); Serial.println(mess); } void contactsWorks() { // cont1 cont1state = digitalRead(CONT1_PIN); if (cont1state != old_cont1state) { old_cont1state = cont1state; if (cont1state == 0) { cont1objectState = OPEN; printContMess(cont1object, cont1openMess); #ifdef MAJORDOMO_FEATURE sendRequestM(cont1object, OPEN); #endif } else { cont1objectState = CLOSE; printContMess(cont1object, cont1closeMess); #ifdef MAJORDOMO_FEATURE sendRequestM(cont1object, CLOSE); #endif } } // cont2 cont2state = digitalRead(CONT2_PIN); if (cont2state != old_cont2state) { old_cont2state = cont2state; if (cont2state == 1) { cont2objectState = OPEN; printContMess(cont2object, cont2openMess); } else { cont2objectState = CLOSE; printContMess(cont2object, cont2closeMess); } } } // contactsWorks() #endif // CONTACTS_FEATUREВ Dash.jsКод: Выделить всё
#ifdef CONTACTS_FEATURE String makeContacts() { String s = ""; s += makeTag(BASE_CONTACT, "1", String(cont1objectState)); s += makeTag(BASE_CONTACT, "2", String(cont2objectState)); return s; } #endif ---------------- #ifdef CONTACTS_FEATURE s += makeContacts();// В void respDash(EthernetClient cl) { #endifТолько работает в инверсном режиме - при D31 на +5 вольт и D27 на корпус оба контакта красных. При D31 на корпус и D27 на +5 вольт - оба зеленых.Код: Выделить всё
// Contacts for (var i = 0; i < contName.length; i++) { try { var dcont = this.responseXML.getElementsByTagName(contXml[i])[0].childNodes[0].nodeValue; } catch (err) { dcont = '-1'; } try { document.getElementById(contId[i]).innerHTML = contName[i]; document.getElementById(contId[i]).style.background = contactBackground(dcont); document.getElementById(contId[i]).style.color = contactColor(dcont); } catch (err) { } }
что-то я не могу ни в одном файле найти откуда берутся разные цвета для подсветки состояния контактных датчиков
document.getElementById(contId).style.background = contactBackground(dcont);
document.getElementById(contId).style.color = contactColor(dcont);
Re: Arduino Mega Server
Цвета задаются в главном скрипте. У ESP32 c SD картой это script.js У Меги кажется dash.js
Код: Выделить всё
// Data colors
var modulDisable = "#555555";
var modulPassive = "#887711";
var modulActive = "#1188dd";
function modulBackground (state) {switch (state) {case "0": return modulPassive; break; case "1": return modulActive; break; default: return modulDisable; break;}}
function modulColor (state) {switch (state) {case "0": return "#eeeeee"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function modeBackground (state) {switch (state) {case "1": return "#91A46B"; break; case "2": return "#AB5DB1"; break; default: return "#555555"; break;}}
function modeColor (state) {switch (state) {case "1": return "#ffffff"; break; case "2": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function forceBackground (state) {switch (state) {case "0": return "#6EA1D2"; break; case "1": return "#F4A509"; break; default: return "#555555"; break;}}
function forceColor (state) {switch (state) {case "0": return "#ffffff"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function ntpBackground (state) {switch (state) {case "0": return "#6EA1D2"; break; case "1": return "#F4A509"; break; default: return "#555555"; break;}}
function ntpColor (state) {switch (state) {case "0": return "#ffffff"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function authBackground (state) {switch (state) {case "0": return "#03B882"; break; case "1": return "#DA7063"; break; default: return "#555555"; break;}}
function authColor (state) {switch (state) {case "0": return "#ffffff"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function onlineBackground (state) {switch (state) {case "0": return "#555555"; break; case "1": return "#3EAF3B"; break; default: return "#555555"; break;}}
function onlineColor (state) {switch (state) {case "0": return "#aaaaaa"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function contactBackground (state) {switch (state) {case "0": return "#68974C"; break; case "1": return "#B93737"; break; default: return "#555555"; break;}}
function contactColor (state) {switch (state) {case "0": return "#eeeeee"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function pirBackground (state) {switch (state) {case "0": return "#09999E"; break; case "1": return "#eedd22"; break; default: return "#555555"; break;}}
function pirColor (state) {switch (state) {case "0": return "#ffffff"; break; case "1": return "#555555"; break; default: return "#aaaaaa"; break;}}
function stateOnOffBackground(state) {switch (state) {case "0": return "#555555"; break; case "1": return "#FAF39B"; break; default: return "#555555"; break;}}
function stateOnOffColor (state) {switch (state) {case "0": return "#ffffff"; break; case "1": return "#000000"; break; default: return "#aaaaaa"; break;}}
function stateOnOff (state) {switch (state) {case "0": return "OFF"; break; case "1": return "ON"; break; default: return "-"; break;}}
function dueBackground (state) {switch (state) {case "0": return "#DA7063"; break; case "1": return "#04A9AE"; break; default: return "#555555"; break;}}
function dueColor (state) {switch (state) {case "0": return "#ffffff"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
function radioBackground (state) {switch (state) {case "0": return "#DA7063"; break; case "1": return "#04A9AE"; break; default: return "#555555"; break;}}
function radioColor (state) {switch (state) {case "0": return "#ffffff"; break; case "1": return "#ffffff"; break; default: return "#aaaaaa"; break;}}
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Re: Arduino Mega Server
спасибо нашел.
тоже script.js
тоже script.js
Re: Arduino Mega Server
появилась какая-то новая ошибка в заводском коде, который я не трогал и не даёт компилировать
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Arduino Mega Server
Попробуйте #ifdef и #endif уберите. По моему на него ругается.schel4ok писал(а): Вс мар 17, 2019 11:08 pm появилась какая-то новая ошибка в заводском коде, который я не трогал и не даёт компилировать
arduino.JPG
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Arduino Mega Server
Зачем играть в Русскую Рулетку ? Написано ведь " для IDE 1.8.5 " . Если и скомпилировалось , это не значит что будет устойчиво работать.
Для Меги может надо версию платы опустить. И библиотеку этернета оставить одну.
Для Меги может надо версию платы опустить. И библиотеку этернета оставить одну.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS