Arduino Mega Server

Модератор: Alex

Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server

Сообщение ser009 » Ср фев 13, 2019 7:57 pm

СпойлерПоказать
code]pos1 = request.indexOf("r1mode=") + 7;
pos2 = request.indexOf("&", pos1);
commandStr = request.substring(pos1, pos2);
rele1mode = commandStr.toFloat();}[/code]
В данной функции полученный ответ раскладывается на 2 части:
Имя и значение
Число 7 ( в примере ) означает число символов в имени переменной. Знак "=" тоже учитывается
Второе pos2 значение.
Последний раз редактировалось ser009 Чт фев 14, 2019 5:55 am, всего редактировалось 1 раз.
За это сообщение автора ser009 поблагодарил:
Ja_rus (Ср фев 13, 2019 10:51 pm)
Рейтинг: 1.16%
Ja_rus
Сообщения: 17
Зарегистрирован: Ср янв 16, 2019 9:12 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение Ja_rus » Ср фев 13, 2019 10:51 pm

ser009 писал(а):
Ср фев 13, 2019 7:57 pm
В данной функции полученный ответ раскладывается на 2 части:
Имя и значение
Число 7 ( в примере ) означает число символов в имени переменной. Знак "=" тоже учитывается
Второе pos2 значение.
Все понял, благодарю.
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение schel4ok » Вс мар 03, 2019 6:44 pm

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);
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вс мар 03, 2019 6:59 pm

Цвета задаются в главном скрипте. У 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
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение schel4ok » Вс мар 03, 2019 7:24 pm

спасибо нашел.
тоже script.js
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение schel4ok » Вс мар 17, 2019 11:08 pm

появилась какая-то новая ошибка в заводском коде, который я не трогал и не даёт компилировать

arduino.JPG
arduino.JPG (192.8 КБ) 3533 просмотра
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Пн мар 18, 2019 6:40 am

schel4ok писал(а):
Вс мар 17, 2019 11:08 pm
появилась какая-то новая ошибка в заводском коде, который я не трогал и не даёт компилировать


arduino.JPG
Попробуйте #ifdef и #endif уберите. По моему на него ругается.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн мар 18, 2019 4:00 pm

Зачем играть в Русскую Рулетку ? Написано ведь " для IDE 1.8.5 " . Если и скомпилировалось , это не значит что будет устойчиво работать.

Для Меги может надо версию платы опустить. И библиотеку этернета оставить одну.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Пн мар 18, 2019 4:45 pm

serghei писал(а):
Пн мар 18, 2019 4:00 pm
Зачем играть в Русскую Рулетку ? Написано ведь " для IDE 1.8.5 " . Если и скомпилировалось , это не значит что будет устойчиво работать.
Для Меги может надо версию платы опустить. И библиотеку этернета оставить одну.
На версию эзернета на самом деле пофигу. Ну ругается он что 2 библиотеки нашел - юзает то 1 нужную. Когда было написано для 1.6.4 (или какая там была до 1.8.5) - я в 1.8 с парой исправлений компилил, и всё ок было. И в 98% случаев если скомпилилось - значит будет работать. Компилятор объявленные директивы понимает однозначно. А то что он не понимает - на это он ругается. А так да, действительно...не мучайтесь, скачайте портативную 1.8.5 - всё должно скомпилится без ошибок.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение schel4ok » Пн мар 18, 2019 5:22 pm

установил 1.8.5
не портативную, а обычную

но ошибка таже самая
arduino.JPG
arduino.JPG (309.93 КБ) 3492 просмотра
Ответить