Перейти к публикации
iT4iT.CLUB

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 02.07.2018 во всех областях

  1. 1 балл
    Доброе время суток Хорошая задачка. Полагаю, что Вы используете последнюю версия проекта. Решить задачу можно тремя способами и они потребуют физического доступа к контроллеру. В основном файле проекта, практически в самом начале, имеется описание констант отвечающих за инициализацию Serial монитора. /* Консоль */ #define console Serial // Обязательно закомментируйте эту строку перед финальной загрузкой программы #define consoleSpeed 115200 Если Вы не воспользовались подсказкой из комментария, то пароль засветится в консоли при рестарте контроллера. Еще один вариант, это затереть конфигурационный файл, но сделать это можно только загрузив по новой файлы WEB сервера. Эта операция полностью удаляет текущее содержимое области флешь памяти, выделенную под внутривенную файловую систему и записывает её новый образ. При этом файл конфигурации в образе отсутствует и будет создан самим контроллером в ходе выполнения программы. Данные авторизации будут сброшены по умолчанию - admin\admin Еще один способ подразумевает обновление программы микроконтроллера и игнорирование части конфигурационного файла или его удаление, но тогда обновлять программу придется дважды. Второй раз чтобы откатить изменения и восстановить функционал. Для этого в файле webserver.h найдите функцию bool http::authorized() она отвечает за проверку авторизации пользователя с помощью cookies. Приведите её к следующему виду. bool http::authorized() { return true; } После загрузки программы Вы сможете зайти в панель управления обойдя форму авторизации и изменить пароль. Данный способ хорош если Вам необходимо сохранить ключи доступа к внешним серверам и т.п В Вашем случае другого способа перехватить пароль нет т.к он передается только от пользователя к микроконтроллеру и никогда в обратную сторону. Подбор пароля тоже усложнен т.к лимит попыток входа ограничен и Вы вероятно спровоцируете тревогу поднятую функцией bool http::security() её описание и подробный комментарий также можно посмотреть в файле webserver.h Это первое, что приходит в голову, но если вы найдете другой способ, то дайте знать, буду очень признателен. Теперь о графиках и выхода за приделы суточного интервала. Графики отъедают очень много памяти, да и сам проект про то как получилось у меня, а не как стоит делать, но все же. Вам предстоит внимательно поработать с несколькими файлами: Файл sensors.h в котором описана логика работы с сенсорами. В описании класса sensors имеется приватная переменная содержащая размер массива выделяемого под хранение лога для каждого сенсора в котором эти самые логи активированы. byte logSize = 144; Значение 144 выбрано исходя из интервала между точками на графике, который равен 10-и минутам. Полные сутки содержат 144 значение. Чтобы увеличить количество выделенной памяти, необходимо увеличить это значение. Увеличьте это значение до адекватного и необходимо для Вас значения, главное, чтобы оно было кратно 144. byte logSize = 432; // Вариант для трех дней byte logSize = 144 * 5; // Или иной вариант записи для 5-и дней (по мне такой вариант записи более предпочтителен) Главное не перегнуть палку, всегда следите за памятью. Файл users_auto.h или users_bme280_x2.h или Ваш файл, в котором описаны используемые сенсоры. Вот пример описывающий датчик температуры. sensors.add(T, device::out, 0x76, "out_temperature", out_init, out_temp, true); Последнее значение метода add, то которое true, указывает, что необходимо вести логи. У тех сенсоров, для которых не требуется видение логов, не указывайте это значение вообще или измените его на false. Оставьте только действительно необходимые логи. Файл index.htm содержит две функции в которых производится построение графика $(".sensor .log").click(function(){ /* ... */ }); $("#graph").click(function() { /* ... */ }); Обе эти функции содержат расчетное временное значение первой точки графика в мс. new Date().getTime() - obj.timeAdjustment - 143 * 10 * 60 * 1000; Необходимо сдвинуть его на выбранный вами интервал времени, например, три дня. new Date().getTime() - obj.timeAdjustment - (144 * 3 - 1) * 10 * 60 * 1000; Вроде бы на этом все, надеюсь не обсчитался в точках. Сохраняем и обновляем программу и файлы. Что касаемо самих файлов WEB сервера и их упаковки: Как все уже правильно заметили, файлы упакованы только для уменьшения их размера, можно использовать их без сжатия. Но при наличии у микроконтроллера сжатого файла и его не сжатой копии, приоритет будет отдан сжатому файлу и именно он будет отдан пользователю при загрузке страницы. Оригинальные файлы сжаты с помощью архиватора 7-Zip. Формат сжатия GZIP, уровень сжатия Ультра (максимально возможный). Исходный код файлов написан в кодировке UTF-8 Сугубо мое мнение: если Вы хотите внести серьезные изменения в код, то стоит воспользоваться специализированным редактором, который сможет предупредить об опечатки или нарушении синтаксиса. Рекламировать ничего не буду, в сети множество редакторов для WEB разработок с поддержкой HTML и JavaScript
  2. 1 балл
    Здравствуйте. Я использую 7-zip. Открыть с помощью 7zip/ редактировать файл (откроется в notepad++), редактирую/сохраняю/закрываю 7zip (иначе не сохранит) и заливаю в esp
×
×
  • Создать...