Новый редактор для создания пользовательских блоков.

Появился в версии 7.

Создаем свой блок. Вопросы, помощь знатоков.
golloper
Рядовой
Сообщения: 28
Зарегистрирован: 28.09.2018{, 17:16}
Репутация: 5
Имя: Дмитрий

Новый редактор для создания пользовательских блоков.

#121

Сообщение golloper » 16.10.2020{, 12:49}

Naladchik писал(а):
16.10.2020{, 11:57}
golloper писал(а):
16.10.2020{, 09:32}
Как поменять очерёдность отображения параметра в блоке?
1-я страница этой же темы сообщение №15, уже было.
viewtopic.php?f=112&t=6485#p91211
Спасибо. Слона то я и не заметил.

Naladchik
Лейтенант
Сообщения: 491
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 64
Откуда: Новосибирск
Имя: Павел

Новый редактор для создания пользовательских блоков.

#122

Сообщение Naladchik » 16.10.2020{, 16:14}

Бывает.
Win7-64. FLProg Portable.
Изображение

Ardudue
Лейтенант
Сообщения: 318
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 14
Имя: Антон

Новый редактор для создания пользовательских блоков.

#123

Сообщение Ardudue » 28.10.2020{, 08:33}

support, в версии 711 раскладывает include по своему

Код: Выделить всё

#include <SPI.h>
#include <Adafruit_PCD8544.h>
#include <Adafruit_GFX.h>
по фэншую должно быть вот так

Код: Выделить всё

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
include.flp
Для скачивания вложений Вы должны быть зарегистрированы.

av
Подполковник
Сообщения: 1331
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 99
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#124

Сообщение av » 28.10.2020{, 10:03}

Ardudue писал(а):
28.10.2020{, 08:33}
в версии 711 раскладывает include по своему
Попробуйте строку #include <Adafruit_PCD8544.h> вставить в секцию "Конец секции "Declare" ".

Ardudue
Лейтенант
Сообщения: 318
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 14
Имя: Антон

Новый редактор для создания пользовательских блоков.

#125

Сообщение Ardudue » 29.10.2020{, 11:12}

av писал(а):
28.10.2020{, 10:03}
Попробуйте строку #include <Adafruit_PCD8544.h> вставить в секцию "Конец секции "Declare" ".
все перепробовал, не раскладыват как надо, только если галку поставить что бы компилятор не видел include

Аватара пользователя
RedSky
Лейтенант
Сообщения: 510
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 61
Откуда: Днепропетровск
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#126

Сообщение RedSky » 30.10.2020{, 09:54}

Ardudue писал(а):
29.10.2020{, 11:12}
только если галку поставить что бы компилятор не видел include
Так вроде так и задумано. Из справки:
СпойлерПоказать
Чек бокс «Запретить компилятору видеть #Include»(3) присутствует в тулбаре редактора элемента кода только при расположении этого элемента в секции Declare. Он предназначен для управления компилятором проекта. Если его не отметить то компилятор соберёт все строки #Include из секций Declare всех экземпляров блоков и вставит их в код скетча в том месте, которое посчитает нужным, подчиняясь своей логикой. Установка данного чек бокса сообщает компилятору, что в данном элементе кода нельзя трогать строку #Include и необходимо вставить её в скетчь в том месте, где её прописал разработчик блока. В некоторых случаях это необходимо. Например, где включение одной библиотеки должно производиться только после включения другой, от которой первая зависит. Но в этом случае возможно дублирование подключение библиотек. Это не страшно конечно, но как говорится – «не кошерно».

Ardudue
Лейтенант
Сообщения: 318
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 14
Имя: Антон

Новый редактор для создания пользовательских блоков.

#127

Сообщение Ardudue » 30.10.2020{, 14:01}

RedSky писал(а):
30.10.2020{, 09:54}
Так вроде так и задумано. Из справки:
но тогда вшитые в ПБ библиотеки не заливает в IDE

Аватара пользователя
Dryundel
Майор
Сообщения: 1133
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 354
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#128

Сообщение Dryundel » 01.11.2020{, 12:41}

Столкнулся с проблемой использования библиотек прикрепленных к пользовательским блокам.

Суть проблемы связана с версией библиотеки и состоит в следующем:
Если в IDE уже установлена более старая версия библиотеки с тем же именем, то вшитая в блок более новая библиотека не подменяет уже установленную в IDE. Соответственно при компиляции (заливке) используется именно та, старая библиотека из IDE. В связи с чем возникают ошибки.

support, Сергей, возможно ли решить данную проблему, используя к примеру файл library.properties, присутсвующий в большинстве обновляемых библиотек?
Возможно ли использовать к примеру параметр version= из данного файла для проверки и сравнения с установленной версией библиотеки?
И в случае если в ПБ вшита более новая версия, логично было бы заменять уже установленную на свежую.

Кроме этого, в проекте могут присутствовать несколько блоков, с разными версиями одной и той же библиотеки.
Было бы здорово перезаливать в IDE наиболее свежую из них.

Эта проблема относится и к базовой версии редактора ПБ.
Пользовательские блоки на сайте FLPROG - BLOCK

Аватара пользователя
rw6cm
Полковник
Сообщения: 2061
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 242
Имя: Владимир

Новый редактор для создания пользовательских блоков.

#129

Сообщение rw6cm » 01.11.2020{, 15:27}

Dryundel писал(а):
01.11.2020{, 12:41}
И в случае если в ПБ вшита более новая версия, логично было бы заменять уже установленную на свежую.
И все более старые блоки перестанут работать ))
(Пример с библиотекой json, перешла с 5 на 6 версию и сотни скетчей перестали работать)
Здесь как вариант если пристегнута библиотека к блоку, использовать именно ее, не трогая другие.
Например чтобы перед компиляцией флп создавал папку, клал в нее библиотеки с блоков и сформированный скетч, а после передавал IDE.
При этом в блоке указывать библиотеки в "", а не <>
Иначе для себя в этом ни какой пользы не увидел, (сплошная путаница, и громадный вес проектов) и давно этим не пользуюсь.
Win10-64, FLProg (portable)

Аватара пользователя
Dryundel
Майор
Сообщения: 1133
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 354
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#130

Сообщение Dryundel » 01.11.2020{, 17:12}

rw6cm писал(а):
01.11.2020{, 15:27}
И все более старые блоки перестанут работать ))
Как правило новые библиотеки поддерживают функции предыдущих версий.
Конечно же есть исключения. Но исключения лишь подтверждают правила. :)
rw6cm писал(а):
01.11.2020{, 15:27}
Например чтобы перед компиляцией флп создавал папку, клал в нее библиотеки с блоков и сформированный скетч, а после передавал IDE.
rw6cm, отличный вариант! Тем более FLProg уже создает такую временную папку. Осталось только сложить в нее все библиотеки из блоков проекта.

support, Сергей, это возможно сделать?

Отправлено спустя 8 минут 10 секунд:
rw6cm писал(а):
01.11.2020{, 15:27}
Иначе для себя в этом ни какой пользы не увидел, (сплошная путаница, и громадный вес проектов) и давно этим не пользуюсь.
Если библиотека из ПБ будет попадать во временную папку со скетчем, путаницы уже не будет.
А по поводу громадного веса, это уже на совести разработчиков блоков. Если перед тем как прикрепить библиотеку к блоку, выкинуть из нее все примеры и прочий мусор, то и вес уменьшиться.

А вот пользоваться этим или нет, дело сугубо личное. И для новичка, скачавшего блок без требующейся библиотеки, становится проблемой ошибка выданная IDE.
Пользовательские блоки на сайте FLPROG - BLOCK

Аватара пользователя
Phazz
Полковник
Сообщения: 1684
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 138
Откуда: Сургут
Имя: Анатолий

Новый редактор для создания пользовательских блоков.

#131

Сообщение Phazz » 01.11.2020{, 20:26}

Вес проекта не является существенной проблемой. Поэтому вариант с отдельной папкой вполне себе рабочий.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2061
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 242
Имя: Владимир

Новый редактор для создания пользовательских блоков.

#132

Сообщение rw6cm » 01.11.2020{, 22:15}

Phazz писал(а):
01.11.2020{, 20:26}
Вес проекта не является существенной проблемой.
Если не выкладывать на форум и не делать сложных проектов, да.
Далеко ходить не надо. Пример с соседней ветки.
Файл проекта Nakia 5110 RUS ESP8266_FLP711_V2.flp состоящий всего из одного блока весит 3,22МБ.
Убираем из блока библиотеки, и проект весит 340КБ (из которых 140кб занимает рисунок)
Не хило так в 10 раз увеличится объем файлов на форуме ))
и это учесть, что это всего один блок, и в его библиотеке нет ни чего лишнего.
Не знаю как с блоками 7ой версии будут работать сложные проекты ,( пока не делал)
но в ранних версиях с встроенными тяжелыми библиотеками, средний по сложности проект, при редактировании жутко тормозил.
Время покажет будут проблемы или нет ))
Win10-64, FLProg (portable)

Аватара пользователя
Dryundel
Майор
Сообщения: 1133
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 354
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#133

Сообщение Dryundel » 03.11.2020{, 16:36}

rw6cm писал(а):
01.11.2020{, 22:15}
Если не выкладывать на форум и не делать сложных проектов, да.
Далеко ходить не надо. Пример с соседней ветки.
Файл проекта Nakia 5110 RUS ESP8266_FLP711_V2.flp состоящий всего из одного блока весит 3,22МБ.
Ну и что страшного в 3,22МБ? Это как то сказывается на работу? - Не заметил.
А для выкладывания на форум есть такая штука как архиватор. :) Сомневаюсь что Вы про него не слышали.
Попробовал упаковать данный файл. При обычном сжатии 357кБ.
Не вижу никаких проблем.
А вот поиск именно нужной библиотеки для конкретного блока, может не слабо так усложнить жизнь.
Пользовательские блоки на сайте FLPROG - BLOCK

Аватара пользователя
rw6cm
Полковник
Сообщения: 2061
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 242
Имя: Владимир

Новый редактор для создания пользовательских блоков.

#134

Сообщение rw6cm » 03.11.2020{, 22:05}

Dryundel писал(а):
03.11.2020{, 16:36}
А для выкладывания на форум есть такая штука как архиватор. :) Сомневаюсь что Вы про него не слышали.
Приятно общаться с грамотными людьми ))
По факту пока не упрешься в лимит, до архиватора дело не доходит. Есть и те, кто не умеет им пользоваться.
Но не будем больше об этом... Нам было что сказать - нас услышали.
Win10-64, FLProg (portable)

Аватара пользователя
support
Супермодератор
Сообщения: 1748
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 596
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#135

Сообщение support » 06.11.2020{, 07:13}

rw6cm писал(а):
01.11.2020{, 15:27}
Здесь как вариант если пристегнута библиотека к блоку, использовать именно ее, не трогая другие.
Например чтобы перед компиляцией флп создавал папку, клал в нее библиотеки с блоков и сформированный скетч, а после передавал IDE.
Это было бы идеально, но насколько я знаю, ИДЕ не при поиске не смотрит на папку куда складывается скетчь, а смотрит в заранее прописанные папки. И как её заставить сначала проверить временную папку скетча, я не знаю. Хотя возможно я не прав, буду проверять.
Автор программы FLProg.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2061
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 242
Имя: Владимир

Новый редактор для создания пользовательских блоков.

#136

Сообщение rw6cm » 06.11.2020{, 08:46}

support писал(а):
06.11.2020{, 07:13}
Это было бы идеально, но насколько я знаю, ИДЕ не при поиске не смотрит на папку куда складывается скетчь, а смотрит в заранее прописанные папки. И как её заставить сначала проверить временную папку скетча, я не знаю. Хотя возможно я не прав, буду проверять.
Если в корне папки с скетчем есть файлы библиотеки, и в скетче указана эта библиотека в двойных кавычках,
то IDE берет библиотеку в первую очередь из папки. Если в папке нет библиотеки, то берет ее дальше по списку приоритетов.
Пример:
СпойлерПоказать
В примере две библиотеки с одним названием но разным содержанием.
Если в скетче библиотека указана #include <Stepper.h> , то IDE игнорирует библиотеку в папке.
2020_11_06_08_13_37_D_Desktop_1234.png
Если в скетче библиотека указана #include "Stepper.h" то IDE в первую очередь берет из папки.
2020_11_06_08_20_05_D_Desktop_1234.png
А если не находит библиотеку в папке, то берет ее дальше по списку.
2020_11_06_08_23_26_D_Desktop_1234.png
Сложности могут возникнуть если в блоке используется несколько сложных по структуре библиотек.
В которых будут одноименные файлы или папки. Так как их содержимое надо будет слить в корень папки скетча.
Здесь уже при создании блока понадобятся знания работы с библиотеками.
Для скачивания вложений Вы должны быть зарегистрированы.
Win10-64, FLProg (portable)

Аватара пользователя
Dryundel
Майор
Сообщения: 1133
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 354
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#137

Сообщение Dryundel » 06.11.2020{, 13:54}

rw6cm писал(а):
06.11.2020{, 08:46}
Если в корне папки с скетчем есть файлы библиотеки, и в скетче указана эта библиотека в двойных кавычках,
то IDE берет библиотеку в первую очередь из папки. Если в папке нет библиотеки, то берет ее дальше по списку приоритетов.
Так и есть. Все правильно.
rw6cm писал(а):
06.11.2020{, 08:46}
Сложности могут возникнуть если в блоке используется несколько сложных по структуре библиотек.
В которых будут одноименные файлы или папки. Так как их содержимое надо будет слить в корень папки скетча.
Здесь уже при создании блока понадобятся знания работы с библиотеками.
А вот здесь Вы не правы. При чем здесь сложность структур библиотек? Это не влияет. Каждая библиотека в своей папке.

Сложности могут возникнуть лишь в том случае, если используемые в скетче библиотеки, являются одноименными, но отличающимися.
К примеру, разные версии одной и той же библиотеки.
Вот тогда могут быть накладки.
Но и в этом случае есть вариант. Не могу оценивать на сколько он осуществим.
А именно:
Dryundel писал(а):
01.11.2020{, 12:41}
Сергей, возможно ли решить данную проблему, используя к примеру файл library.properties, присутсвующий в большинстве обновляемых библиотек?
Возможно ли использовать к примеру параметр version= из данного файла для проверки и сравнения с установленной версией библиотеки?
И в случае если в ПБ вшита более новая версия, логично было бы заменять уже установленную на свежую.
Вот и вопрос, возможно ли сравнивать библиотеки по параметру в файле, который находится в этой папке и выбирать наиболее свежую?
Точней, по очередности библиотеки залить в папку со скетчем.
А при заливке очередной, при совпадении имен, проверить параметр version= и в зависимости от него, либо залить с заменой, либо не заливать.
Пользовательские блоки на сайте FLPROG - BLOCK

Аватара пользователя
rw6cm
Полковник
Сообщения: 2061
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 242
Имя: Владимир

Новый редактор для создания пользовательских блоков.

#138

Сообщение rw6cm » 06.11.2020{, 16:53}

Dryundel писал(а):
06.11.2020{, 13:54}
При чем здесь сложность структур библиотек? Это не влияет. Каждая библиотека в своей папке.
Увы. Это будет работать если файлы библиотеки лежат в корне папки с скетчем. Ни каких "своих" папок IDE не пропустит.
Win10-64, FLProg (portable)

Аватара пользователя
Dryundel
Майор
Сообщения: 1133
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 354
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#139

Сообщение Dryundel » 06.11.2020{, 17:23}

rw6cm писал(а):
06.11.2020{, 16:53}
Увы. Это будет работать если файлы библиотеки лежат в корне папки с скетчем. Ни каких "своих" папок IDE не пропустит.
Блин! Точно! Тупой IDE! И я вместе с ним! :smile37:

Отправлено спустя 49 минут 29 секунд:
rw6cm писал(а):
06.11.2020{, 08:46}
Сложности могут возникнуть если в блоке используется несколько сложных по структуре библиотек.
В которых будут одноименные файлы или папки. Так как их содержимое надо будет слить в корень папки скетча.
Кароч. Я тут мозгами пораскинул, и пришел к мнению, что это фигня.
Вероятность что совпадут какие то файлы из разных библиотек ничтожно мала. Так что этот запар считаю не состоятельным.

А вот файл library.properties он везде одноименный, если вообще присутствует. Так что сравнивать его с уже залитым в папку со скетчем не имеет смысла, ибо там может быть файл от другой библиотеки.
Если только как то осуществить сравнение до заливки.

Хотя можно не только один параметр сравнить. Кроме версии там еще несколько.
Пользовательские блоки на сайте FLPROG - BLOCK

Аватара пользователя
support
Супермодератор
Сообщения: 1748
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 596
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#140

Сообщение support » 06.11.2020{, 20:39}

rw6cm писал(а):
06.11.2020{, 08:46}
Если в корне папки с скетчем есть файлы библиотеки, и в скетче указана эта библиотека в двойных кавычках,
то IDE берет библиотеку в первую очередь из папки. Если в папке нет библиотеки, то берет ее дальше по списку приоритетов.
Не знал, буду изучать вопрос.
Автор программы FLProg.

Ответить

Вернуться в «Разработка пользовательских блоков»