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

Eclipse plug-in для Sming

sharky

New member
Всем привет!
-----------------------------------------------------------
ВАЖНО: Перед установкой свежей версии из ecle.ploys.org нужно снести старую вручную!

Отрефакторил структуру, настроил деплои, плагин теперь лежит по адресу:
В эклипсе Help -> Install new software...
Указать http://ecle.ploys.org/ в качестве сайта в графе "Work with"

Домен только прописал, может занять некоторое время на апдейт днсов
-----------------------------------------------------------

Я тут начал колбасить плагин для эклипса, чтоб облегчить сборку и запуск пока сминговых, в дальнейшем может и остальных эмбед-проектов.

Так-как раньше плагины под эклипс не писал, то начать решил с простого: скана ком-портов, выбора на какой заливать, и выбора скорости порта для прошивки. Но хотелось бы заранее получить фидбэк в виде списка хотелок к функциональности этого плагина, чтоб заранее знать какие темы копать.

Возможно структура проекта немного поменяется, чтоб стандартизовать как-то сборку и пути к библиотекам и прочему окружению, возможно для либ добавятся xml-дескрипторы с описаниями.

Прототип возможно будет уже сегодня-завтра, выкину на гитхаб.

Итак краткий список текущих идей:
1. Управление ком портом для прошивки
2. Настройка местоположения СДК
3. Автоскан библиотек, аля как в ардуино ИДЕ

Милости прошу дополнять хотелками.

WORKLOG:

05.05
Вернулся из отпуска, спасибо за фидбэк.

Поднял вчера нексус, постараюсь сегодня закончить с деплой-циклом плагина, чтоб релизить его одной кнопкой без танцев с бубном, после посмотрю баги по терминалу и наконец-то займусь эмбед редактором/билдером.

29.04
Проба пера с деплоем и апдейтсайтом плагина:

В эклипсе Help -> Install new software...
Указать http://eclipse.ploys.org/ в качестве сайта в графе "Work with"

---
Базовый терминальчик завершен. Можно пробовать.
Порты автоматом сканит при тыке на комбо выбора порта.
Получает/отправляет, лампочками мигает, параметры порта можно менять на лету, свитчи пинов RTS/DTR работают.

Гитхабовый тайтл маленько причесал, тудушки накидал и скриншотик.
Перехожу к настройкам билда/флэша проектов, начну со сминговых.

Хотя, пожалуй, для начала разберусь как плагины дистрибьютить, чтоб можно было просто устанавливать и пользоваться без лишних эклипсовых приблуд аля PDE.
 
Последнее редактирование:

JustACat

Moderator
Команда форума
Ммм:
1) создание проекта по примеру (копирование с внесением изменений во все нужные файлы). То есть, есть у нас пример Basic_Serial - жмем на нем некую кнопку, указываем новое имя проекта, и у нас новый проект с этим именем, но по содержанию как Basic_Serial
2) создание чистого пустого проекта. (тоже что и 1, в принципе, но за основу нужно взять какой-то совсем пустой пример)
3) по работе ком-порта хотелось бы полной автоматики на 3 варианта:
а) при запуске прошивки, у нас оно прошивается автоматом и все
б) при запуске прошивки прошивается, и затем сразу открывается окно встроенного терминала (на нужной скорости конечно), чтобы не пропустить ничего, что ESP выплюнет в лог
в) при запуске прошивки прошивается, и затем сразу открывается окно некоего внешнего терминала (своей какой-то программы), в идеале чтобы оно закрывалось (убивалось) при новом запуске прошивки

Ну и при работе с makefile и библиотеками там надо разбираться, как я понял, там в makefile прописываются все пути к библиотекам, если новую докинул библиотеку, то надо к ней путь прописывать. Было бы неплохо как-то подстановку путей ко всем библиотекам в некоей папке делать автоматом при компиляции (чтобы оно подставлялось в команду makefile).

Вообще я не в курсе, как это все в эклипсе устроено и не знаю, можно ли, но в идеале конечно было бы здорово, чтобы настройки этих всех библиотек, скорости, номера порта, пути к буту и т.п. были не в макефайле, а в настройках среды. А то так для каждого проекта приходится ручками при необходимости все настройки в файле менять. Не то, чтобы это было плохо, но неудобно конечно.
А так, сделал какие-то общие настройки по путям к библиотекам, порту и скорости прошивки (+ скорости терминала, лучше отдельно, т.к. они могут быть разные), пути к буту для прошивки последнего, возможно какие-то еще настройки типа: "прошивать blank.bin" или "прошивать чего-то-там-defaults.bin" при каждой прошивке.
В общем, много всего придумать можно :)
 
Последнее редактирование:

sharky

New member
Вообще я не в курсе, как это все в эклипсе устроено и не знаю, можно ли, но в идеале конечно было бы здорово, чтобы настройки этих всех библиотек, скорости, номера порта, пути к буту и т.п. были не в макефайле, а в настройках среды.
Спасибо за ответ.

По сути оно так и будет в первом варианте, суть проста: в мэкфайле указываем переменные, плагин эти переменные собственно сетит.
Без плагина их сейчас можно передать из окружения ОС или дописыванием параметра в диалоге настройки билда там где билд-команда,
типа так: mingw32-make.exe -f ${ProjDirPath}/Makefile COM_PORT=COM4, пробовал - работает.

Мэйк я хочу на 2 разделить, общая часть которая не меняется нигде практически и тянется одна на все проекты для определенного типа прошивки (сминг например), и проектные мейкфайлы, почитал маленько по этой теме, они умеют инклюдиться.
 

sharky

New member
Немного разобрался, продвинулся.
На данный момент очень сырое, частично работает терминальчик, шустренько так набирает вес.

Репа с исходниками тут: https://github.com/ploys/eclipse-embed-plugin

Чтоб запустить из исходников нужно следующее:
http://gyazo.com/e2b4e070f6b85496d19684c0a94b38fc

Потом импортим проект и открываем plugin.xml, в редакторе будет кнопка запустить.
Выглядит это как-то так: http://gyazo.com/ee668398ddae3517516c68c175eb301b
 

anakod

Moderator
Команда форума
Какой функционал уже работает? Оно умеет передавать параметры в make, да? (ком порт и т.п.)
 

sharky

New member
День прошел довольно продуктивно, базу терминала почти закончил, скролится, лампочками моргает, параметры порта понимает, осталось отправку добить. После займусь билд циклом. По наитию допилю всякие плюшки к терминалу типа хекса, кодировок итп, хотелки можно сюда кидать.
На гитхабе свежак, кто хочет может потестить.

Всем хорошего настроения и стабильного питания.
 

anakod

Moderator
Команда форума
sharky, прекрасно, лично я больше всего жду билда (а для начала просто выбора параметров), т.к. мне самому этого больше всего не хватает сейчас.
 

sharky

New member
sharky, прекрасно, лично я больше всего жду билда (а для начала просто выбора параметров), т.к. мне самому этого больше всего не хватает сейчас.
Постараюсь завтра прототипчик нарисовать. Ты PDE поставил уже? Плагин из исходников запускается у тебя?
 

JustACat

Moderator
Команда форума
хотелки можно сюда кидать
Ммм, возможность дернуть DTR и RTS UART-порта вручную. Причем даже если UART отключен (тогда при дергании UART подключается, ножка дергается, UART отключается - это для RTS - для сброса ESP).
Автовключение терминала сразу после удачной (без ошибок) прошивки, если установлена соответствующая галочка где-то (ой, как не хватало всегда этого в ардуино для отладки) и автоотключение и переход на консоль сборки перед прошивкой.
 

sharky

New member
Ммм, возможность дернуть DTR и RTS UART-порта вручную. Причем даже если UART отключен (тогда при дергании UART подключается, ножка дергается, UART отключается - это для RTS - для сброса ESP).
Дерги пинами предусмотрены и завтра уже будут работать. Только автооткрытие порта при дерге пином не очень гуд идея. Их можно поставить в какое-то состояние, потом открыть порт, он при открытии учтет.
 

sharky

New member
Автовключение терминала
С билдом разберусь - запилю. Думаю самое сложное здесь будет узнать успешно ли все собралось :)
Хотя можно по галке постоянно терминал открывать после флэша на пепяку.
 

JustACat

Moderator
Команда форума
автооткрытие порта при дерге пином не очень гуд идея
ну может, я просто это все для сброса обычно использую. Чтобы физическую кнопку еще не городить дополнительно :) А для сброса чем меньше надо нажимать - тем лучше.
А так получается: подключил UART, RTS зажал, RTS отпустил и не забыть еще отключить обратно UART (вдруг в тестируемой схеме он используется для связи с другим МК).
Либо: зажал RTS, подключил UART, отключил UART, а RTS отпустить забыл, и думаешь потом - почему при подключенном UART ESP не стартует :-Р
Но это я так, просто высказываю возможные use-case.
Возможно, стоит в таком случае сделать прямо отдельную горячую клавишу или кнопку: Reset (с возможностью ее включать/отключать), которая как раз и будет делать такую именно последовательность: подключили UART (если не был подключен), RTS зажали, RTS отпустили, отключили UART (если не был подключен в самом начале)?
самое сложное здесь будет узнать успешно ли все собралось
А по логу из консоли не получится? Этот лог читать из плагинов нельзя?
постоянно терминал открывать после флэша
Да, как вариант, но все же при неудачной прошивке (либо сборке) открывать терминал (тем более, если при этом прячется консоль) бессмысленно.
 

sharky

New member
Ну пинодрыг там сверху и светится зеленым когда включен. Ткнул его и для ресета connect/disconnect на порт.
Позже мож макросы сделаю для всяких кастомных задач.

Ну и панельку терминала можно рядом с консолью повесить и не прятать вовсе.

Попробуй поставь плагин, потыкай.
 

JustACat

Moderator
Команда форума
sharky, с удовольствием поставлю и потыкаю, но пока времени нет. Работа. (еще и модераторством нужно немножко хоть заниматься :-Р )
 

anakod

Moderator
Команда форума
sharky, А TCP терминал в дальнейшем планируется? :) А то я обновление по воздуху реализовал, в ближайшем будущем думаю и терминальную сессию по TCP реализовать (типа Telnet). Так что было бы вероятно удобно все в одом месте иметь (есть UART работаем по нему, поднялось WiFi соединение отсоединили провод, продолжаем по воздуху).
 

sharky

New member
sharky, А TCP терминал в дальнейшем планируется? :) А то я обновление по воздуху реализовал, в ближайшем будущем думаю и терминальную сессию по TCP реализовать (типа Telnet). Так что было бы вероятно удобно все в одом месте иметь (есть UART работаем по нему, поднялось WiFi соединение отсоединили провод, продолжаем по воздуху).
Никто не мешает наворотить чего угодно. Сейчас главное сделать модульно все, чтоб потом можно было расширять. Немного разобрался в процессе деплоя плагинов завтра постараюсь выложить чтоб можно было ставить/обновлять через help-> install software без танцев с бубном.
 

anakod

Moderator
Команда форума
Прекрасная идея, я думаю это сильно упростит инсталяционный процесс.
 

sherr

New member
Попробуй бинарником поставить, я там написал как в верхнем сообщении. Отпишись получилось/нет если нет то какие ошибки выдает.
Можно, я отпишусь. Eclipse Luna, JRE 1.8.025 кажется, Debian 32byte. Поставилось без проблем, терминал пробовал пока только на приём -
работает, но изредка подтормаживает и добавляет пробелы . Хорошее начало, так держать !
 
Сверху Снизу