• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESPlorer

Victor

Administrator
Команда форума
Откуда сведения, что память "загружается до предела"?
Я выполнил тесты новой прошивки LUA nodeMCU (build 20150107) с контролем памяти на этапе записи файлов, из которых не видно, что память по мере записи файлов исчерпывается. Похоже, причина перезагрузок не в исчерпании памяти.
Или речь о чем-то другом?
Сорри :) Я, конечно же, не проводил тесты, связанные с размером памяти, а только проверил передачу и выполнение сниппета из ESPlorer в ESP.
Действительно похоже, что только половина памяти доступна.
Кстати, обратили внимание на время, требуемое для создания файлов: время на создание файлов увеличивается в геометрической прогрессии.
 

windalser

New member
Есть несколько предложений по улучшению ESPlorer - мелких и не только, для обсуждения.
1. Возможность послать строку или блок в интерпретатор - мощное и удобное средство, и им часто пользуешься. Небольшое неудобство - большое количество перемещений мышью, мелкие кнопки для попадания. Если по правой кнопке мыши на строке переместить Send Current Line to ESP в самый верх (вместо undo), было бы гораздо легче "попадать". Под ним - Send Selected to ESP, дальше undo и т.д.
2. По кнопке TAB происходит перемещение на 5 позиций, что довольно нестандартно. Обычно делают 4 или 2 (или должна быть возможность конфигурирования)
3. Вводить команду вручную в терминал (внизу) довольно неудобно - сначала надо удалить старую команду, набрать новый текст, и мышью нажать Send. Как минимум, было бы удобнее, чтобы команда посылалась по Enter.
4. Пожалуй, было бы удобно иметь возможность непосредственного ввода команд прямо в окне терминала.

ESPlorer - хороший инструмент,.. и хочется его сделать лучше :)
 

Victor

Administrator
Команда форума
3. Вводить команду вручную в терминал (внизу) довольно неудобно - сначала надо удалить старую команду, набрать новый текст, и мышью нажать Send. Как минимум, было бы удобнее, чтобы команда посылалась по Enter.
Проблемы с этим были, но вроде сейчас все ок в последней версии. Проверьте еще раз. Кроме того в истории команд сейчас сохраняются только уникальные команды.
По остальному - со всем согласен, кроме последнего. В начале надо было так делать, сейчас уже поздно, т.к. большинство привыкло, а дать возможность вводить команды еще в одном месте месте - на сегодня это не самая актуальная задача.
 

windalser

New member
проверил еще раз (версия 206) - по Enter команда не вводится (Windows 8.1 , java 8).
 

windalser

New member
Может, для посылки строки и блока сделать одну кнопку (и один пункт меню) вместо двух? Если блок выделен - исполнять блок, если нет выделенного блока - исполнять строку. Тогда и кнопку можно увеличить, и вообще, удобнее...
 

NeoroN

Member
Еще бы хорошо чтобы файлы мжно было открывать прямо с ESP. А не создавать предварительно на компе и копировать содержимое из вывода в редактор. Думаю это было бы очень полезная фишка. Чтобы через программу можно было увидеть список файлов: табличкой как в папках, вместо тех кнопок внизу редактора, открывать их, удалять, скачивать на комп - через меню на самом файле. Ну и открывать по двойному клику. А в панели инструментов добавить кнопку "Обновить" которая получала бы список файлов. Да и чтобы можно было просто текстовые файлы редактировать - с настройками например или хтмл странички. И чтобы программа не пыталась их выполнить dofile() ;)
 
Последнее редактирование:

Victor

Administrator
Команда форума
Сейчас планирую доделать поиск и замену, файловый менеджер уже был в планах. А вот для посылки строки и блока сделать одну кнопку не хочется - делал эти фишки по пожеланиям пользователей esp8266.com и сейчас как-то нехорошо будет их упразднить. Далее в планах не увлекаться мелкими доделками, а перейти к заливке файлов через WiFi, так что идеи в этом направлении приветствуются.
 

NeoroN

Member
Осоновная идея - это временный серевер UDP после перезапуска. UDP - для обнаружения брудкастом, групповой заливки файлов. Если достигнут таймаут 10 сек(или по сотоянию вывода GPIO16) - то запуск основной программы и очистка занятых ресурсов сервера. Если полученосообщение то - сервер остается работать, с перезапуском по таймауту 5 мин.

Вообще сервер может быть телнет, чтобы не изобретать протокол.
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Что-то Виктор не работает Ваш Esplorer с собранной мной прошивкой nodemcu (с оффициальной такая же беда), ничего не показывает, команду отправляет, а в ответ тишина.
например в терминале команда:
for n,s in pairs(file.list()) do print(n.." size: "..s) end
успешно отрабатывает, показывает список файлов и их размер
в Esplorer подключаюсь, жму кнопку File List, а в ответ тишина, что я делаю не так? (Win 7 x64, JRE 7)
P.S. Написанный на питоне luatool тоже не работает и его питоновский аналог nodemcu_file_util аналогично в ступоре :(

 
Последнее редактирование:

Victor

Administrator
Команда форума
Что-то Виктор не работает Ваш Esplorer с собранной мной прошивкой nodemcu (с оффициальной такая же беда), ничего не показывает, команду отправляет, а в ответ тишина.
По логам вроде все ок.
Попробуйте на вкладке Settings включить DumbMode (без проверки ответа)
Но такое впечатление, что проблема где-то ниже уровнем (железо/драйвера/библиотека jSSC)
Потому как ESPlorer достаточно примитивен по обмену с последовательным портом - простая отправка и получение данных, без хитростей. Если ничего не получает - значит ничего и не было.
Попробуйте перезагрузить модуль по питанию при включенном терминале - увидите или нет лог загрузки.
 

CHERTS

Moderator
Команда форума
По логам вроде все ок.
Попробуйте на вкладке Settings включить DumbMode (без проверки ответа)
Попробовал, результат такой же, не работает.

Но такое впечатление, что проблема где-то ниже уровнем (железо/драйвера/библиотека jSSC)
Потому как ESPlorer достаточно примитивен по обмену с последовательным портом - простая отправка и получение данных, без хитростей. Если ничего не получает - значит ничего и не было.
Попробуйте перезагрузить модуль по питанию при включенном терминале - увидите или нет лог загрузки.
Попробовал сделать RESET модуля при включонном ESPlorer, в логи ничего не появилось, такое ощущение, что ESPlorer не принимает ответы по com-порту :(

P.S. Я тут по быстрому собрал spiffy под винду, но что то не могу правильно посчитать адрес по которому заливать образ со скриптами, может кто сумеет его расчитать и дать нормальную формулу
 

CHERTS

Moderator
Команда форума
Проблема найдена, вобщем как и у многих программ, ESPlorer при подключении к COM порту ставит линию RTS в 0, а DTR в непонятный уровень, а учитывая что у меня в схеме линия RTS подключены на сброс ESP то поэтому и не работало. Вобщем это нужно поправить, ставить линию RTS в 0 не есть хорошо и DTR тоже лучше не трогать при открытии порта.
 

Victor

Administrator
Команда форума
Проблема найдена, вобщем как и у многих программ, ESPlorer при подключении к COM порту ставит линию RTS в 0, а DTR в непонятный уровень, а учитывая что у меня в схеме линия RTS подключены на сброс ESP то поэтому и не работало. Вобщем это нужно поправить, ставить линию RTS в 0 не есть хорошо и DTR тоже лучше не трогать при открытии порта.
не трогать не получится - библиотека это сама делает.
Но можно выставить RTS/DTR в нужное состояние. Можно и события обрабатывать по смене состояний, но это ведь ни к чему?
 

CHERTS

Moderator
Команда форума
Но можно выставить RTS/DTR в нужное состояние
По-умолчанию на них должен быть высокий уровень. А сейчас ставится низкий (True).

было бы очень классно сделать опцию "Перезагружать плату при подключении к COM-порту", то есть делать что-то типа:
setRTS(True)
sleep(0.25)
setRTS(False)
sleep(0.2)
 

NeoroN

Member
Так вот по поводу загрузки через wifi - лучше всего телнет сервер, вопрос с авторизацией висит в воздухе, вопрос с активацией сервера сразу или по состоянию вывода?
Сам сервер делаем в init.lua , при подключении к серверу устанавливается флаг, при отключении сбрасывается. таймер повторяющийся проверяет флаг - если флаг не установлен - выгружает сервер, чистит за ним, выполняет dofile("main.lua"). период таймера думаю 30 секунд. Думаю также нужен отдельный файл dofile("wifi.lua") с настройкой сети выполняемый вначале, хотя можно все и в один запихнуть.
 

Victor

Administrator
Команда форума
По-умолчанию на них должен быть высокий уровень. А сейчас ставится низкий (True).

было бы очень классно сделать опцию "Перезагружать плату при подключении к COM-порту", то есть делать что-то типа:
Код:
setRTS(True)
sleep(0.25)
setRTS(False)
sleep(0.2)
ок, это сделаю
 

lonely.myp

New member
заметил что в произвольном месте рвётся обмен с платой.
на плату загружен NodeMCU и простейший веб сервер, из примеров.
при подключении клиента к серверу, плата выдаёт в терминал данные о браузере.
и вот иногда передача данных в терминал прерывается на половине слова и плата перестаёт откликаться на команды ESPlorerа. при этом веб сервер по прежнему доступен и работает, плата не зависла.
приходится делать дисконнект от ком порта и заново коннектить.
в чём может быть дело?
 

Victor

Administrator
Команда форума
заметил что в произвольном месте рвётся обмен с платой.
на плату загружен NodeMCU и простейший веб сервер, из примеров.
при подключении клиента к серверу, плата выдаёт в терминал данные о браузере.
и вот иногда передача данных в терминал прерывается на половине слова и плата перестаёт откликаться на команды ESPlorerа. при этом веб сервер по прежнему доступен и работает, плата не зависла.
приходится делать дисконнект от ком порта и заново коннектить.
в чём может быть дело?
причина в кривом SDK - пока все прошивки, использующие Espressif SDK, в т.ч. и NodeMCU, мягко говоря не очень стабильны. Решения этой проблемы пока нет, однако надеемся на исправление ошибок.
 
Сверху Снизу