Страница 313 из 328
Re: Arduino Mega Server
Добавлено: Ср фев 13, 2019 7:57 pm
ser009
code]pos1 = request.indexOf("r1mode=") + 7;
pos2 = request.indexOf("&", pos1);
commandStr = request.substring(pos1, pos2);
rele1mode = commandStr.toFloat();}[/code]
В данной функции полученный ответ раскладывается на 2 части:
Имя и значение
Число 7 ( в примере ) означает число символов в имени переменной. Знак "=" тоже учитывается
Второе pos2 значение.
Re: Arduino Mega Server
Добавлено: Ср фев 13, 2019 10:51 pm
Ja_rus
ser009 писал(а): ↑Ср фев 13, 2019 7:57 pm
В данной функции полученный ответ раскладывается на 2 части:
Имя и значение
Число 7 ( в примере ) означает число символов в имени переменной. Знак "=" тоже учитывается
Второе pos2 значение.
Все понял, благодарю.
Re: Arduino Mega Server
Добавлено: Вс мар 03, 2019 6:44 pm
schel4ok
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
В сервере ажакс
Код: Выделить всё
#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
В Dash.js
Код: Выделить всё
// 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) { }
}
Только работает в инверсном режиме - при D31 на +5 вольт и D27 на корпус оба контакта красных. При D31 на корпус и D27 на +5 вольт - оба зеленых.
что-то я не могу ни в одном файле найти откуда берутся разные цвета для подсветки состояния контактных датчиков
document.getElementById(contId
).style.background = contactBackground(dcont);
document.getElementById(contId).style.color = contactColor(dcont);
Re: Arduino Mega Server
Добавлено: Вс мар 03, 2019 6:59 pm
serghei
Цвета задаются в главном скрипте. У 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;}}
Re: Arduino Mega Server
Добавлено: Вс мар 03, 2019 7:24 pm
schel4ok
спасибо нашел.
тоже script.js
Re: Arduino Mega Server
Добавлено: Вс мар 17, 2019 11:08 pm
schel4ok
появилась какая-то новая ошибка в заводском коде, который я не трогал и не даёт компилировать
- arduino.JPG (192.8 КБ) 3583 просмотра
Re: Arduino Mega Server
Добавлено: Пн мар 18, 2019 6:40 am
nick7zmail
schel4ok писал(а): ↑Вс мар 17, 2019 11:08 pm
появилась какая-то новая ошибка в заводском коде, который я не трогал и не даёт компилировать
arduino.JPG
Попробуйте #ifdef и #endif уберите. По моему на него ругается.
Re: Arduino Mega Server
Добавлено: Пн мар 18, 2019 4:00 pm
serghei
Зачем играть в Русскую Рулетку ? Написано ведь " для IDE 1.8.5 " . Если и скомпилировалось , это не значит что будет устойчиво работать.
Для Меги может надо версию платы опустить. И библиотеку этернета оставить одну.
Re: Arduino Mega Server
Добавлено: Пн мар 18, 2019 4:45 pm
nick7zmail
serghei писал(а): ↑Пн мар 18, 2019 4:00 pm
Зачем играть в Русскую Рулетку ? Написано ведь " для IDE 1.8.5 " . Если и скомпилировалось , это не значит что будет устойчиво работать.
Для Меги может надо версию платы опустить. И библиотеку этернета оставить одну.
На версию эзернета на самом деле пофигу. Ну ругается он что 2 библиотеки нашел - юзает то 1 нужную. Когда было написано для 1.6.4 (или какая там была до 1.8.5) - я в 1.8 с парой исправлений компилил, и всё ок было. И в 98% случаев если скомпилилось - значит будет работать. Компилятор объявленные директивы понимает однозначно. А то что он не понимает - на это он ругается. А так да, действительно...не мучайтесь, скачайте портативную 1.8.5 - всё должно скомпилится без ошибок.
Re: Arduino Mega Server
Добавлено: Пн мар 18, 2019 5:22 pm
schel4ok
установил 1.8.5
не портативную, а обычную
но ошибка таже самая
- arduino.JPG (309.93 КБ) 3542 просмотра