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

Создаем свой блок. Вопросы, помощь знатоков.
Gordon0007
Сержант
Сообщения: 138
Зарегистрирован: 19 апр 2018, 13:37
Имя: Павел

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

Сообщение Gordon0007 »

Так же есть предложение добавить информацию номера версии блока, допустим есть проект в нем уже вставил ПБ и как бы пользовался этим блоком и нашел ошибку когда начал другой проект. Вернулся к старому проекту, а программа предлагает обновить ПБ так как есть более свежая версия ПБ.
Gordon0007
Сержант
Сообщения: 138
Зарегистрирован: 19 апр 2018, 13:37
Имя: Павел

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

Сообщение Gordon0007 »

Проблема обычно в том, что название блока не меняется и забывается, что эта версия блока уже устарела и не актуально. :smile390:
Сам сталкивался с такой проблемой.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Коды в ПБ выстраиваются в цепочку, если в секции имеются несколько элементов кода
[spoiler]
Безымянный.png
[/spoiler]
Если первую строку элемента кода сделать пустым, то выстраиваются друг под другом, как надо.
[spoiler]
Безымянный3.png
[/spoiler]

Фото с ПБ шаблона.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 19 авг 2020, 23:45, всего редактировалось 1 раз.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Очень нужна опция перенос элементов кода в другую секцию. Создашь их и обнаруживаешь - не там, и нужно их удалять и снова создавать в другом месте. Когда их много, руки опускаются.
[spoiler]
Безымянный1.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

aidar_i писал(а): 19 авг 2020, 23:31 Коды в ПБ выстраиваются в цепочку, если в секции имеются несколько элементов кода
[spoiler]Безымянный.png[/spoiler]
Если первую строку элемента кода сделать пустым, то выстраиваются друг под другом, как надо.
[spoiler]Безымянный3.png[/spoiler]
Ну во первых для иполнения кода это не критично)))).
Во вторых это не бага, это фитча)))))
Вот смотрите, как например вывести такую конструццию.

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

int val = a+b+c;
где вместо a,b,c подстваляются какие то значения в зависимости от условий. причем в зависимости от условий в каждое место могут подставляться несколько значений.
поэтому в первом коде пишем

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

int val =


мотом идут несколько условных элементов кода для a затем элемент кода
затем условные элементы для b
затем элемент кода
затем условные элементы для c
и в конце элемент Для этого я перенос строк после элемента кода и не делал.

Отправлено спустя 2 минуты 48 секунд:
Gordon0007 писал(а): 13 авг 2020, 09:35 Так же есть предложение добавить информацию номера версии блока, допустим есть проект в нем уже вставил ПБ и как бы пользовался этим блоком и нашел ошибку когда начал другой проект. Вернулся к старому проекту, а программа предлагает обновить ПБ так как есть более свежая версия ПБ.
Это есть в планах, но пока не реализовано. В будущем будет. Честно говоря просто реализовать это достаточно сложно.
Автор программы FLProg.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

[ref=#00aa00]support[/ref], сделал ПБ для расширения частоты PWM по этому примеру:
[spoiler]

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


#include <GyverPWM.h>

void setup() {
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  
  // Данные функции убирают один ШИМ выход у 8-ми битных таймеров, оставляя нам ШИМ пины D3, D5, D9 и D10 на ATmega328

  // запустить ШИМ на D3 с частотой 66.666 Гц, режим FAST_PWM
  PWM_frequency(3, 66666, FAST_PWM);

  // запустить ШИМ на D5 с частотой 25'000 Гц, режим CORRECT_PWM. Сломает millis()!
  PWM_frequency(5, 25000, CORRECT_PWM);

  // запустить ШИМ на D9 с частотой 150'000 Гц, режим FAST_PWM
  PWM_frequency(9, 150000, FAST_PWM);

  // запустить ШИМ на D10 с частотой 150'000 Гц, режим FAST_PWM
  PWM_frequency(10, 150000, FAST_PWM);
  // пины 9 и 10 работают на одной частоте, запустить на разных не получится!
}

void loop() {
  PWM_set(3, analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)
  PWM_set(5, analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)

  PWM_set(9, analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)
  PWM_set(10, 255 - analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)
}
[/spoiler]
Но когда ставлю два ПБ, то pin на всех ПБ автоматом ставится одинаковый , при чем тот который самый последний установил.
Gyver PWM V2 FLP704.flp
Надо так
БП ШИМ.PNG
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

Ardudue писал(а): 20 авг 2020, 13:43 [ref=#00aa00]support[/ref], сделал ПБ для расширения частоты PWM по этому примеру:
[spoiler]

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


#include <GyverPWM.h>

void setup() {
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  
  // Данные функции убирают один ШИМ выход у 8-ми битных таймеров, оставляя нам ШИМ пины D3, D5, D9 и D10 на ATmega328

  // запустить ШИМ на D3 с частотой 66.666 Гц, режим FAST_PWM
  PWM_frequency(3, 66666, FAST_PWM);

  // запустить ШИМ на D5 с частотой 25'000 Гц, режим CORRECT_PWM. Сломает millis()!
  PWM_frequency(5, 25000, CORRECT_PWM);

  // запустить ШИМ на D9 с частотой 150'000 Гц, режим FAST_PWM
  PWM_frequency(9, 150000, FAST_PWM);

  // запустить ШИМ на D10 с частотой 150'000 Гц, режим FAST_PWM
  PWM_frequency(10, 150000, FAST_PWM);
  // пины 9 и 10 работают на одной частоте, запустить на разных не получится!
}

void loop() {
  PWM_set(3, analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)
  PWM_set(5, analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)

  PWM_set(9, analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)
  PWM_set(10, 255 - analogRead(0) / 4);  // заполнение регулируем потенциометром на А0 (8 бит)
}
[/spoiler]
Но когда ставлю два ПБ, то pin на всех ПБ автоматом ставится одинаковый , при чем тот который самый последний установил. Gyver PWM V2 FLP704.flp
Надо так
БП ШИМ.PNG
Если хотите что бы значения параметра было независимым для каждого экземпляра блока то эти параметры необходимо создавать в параметрах каждого экземпляра.
Почитайте тут https://flprog.ru/bez-rubriki/helppage/ ... MainWindow.
И второе. Я к сожалению в хелпе это не осветил (исправлюсь))) ), если в коде используете однострочный комментарий типа вот такого

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

// заполнение регулируем потенциометром на А0 (8 бит)
то после такого комметнария ОБЯЗАТЕЛЬНО должна быть новая строка. Даже если это последняя строка в элементе кода. Иначе первая строка из следующего эдемента кода станет то же комментарием.
Приложил исправленный работающий ваш проект с исправленным блоком.
Gyver PWM V2 FLP704.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Автор программы FLProg.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

support писал(а): 21 авг 2020, 02:54 Если хотите что бы значения параметра было независимым для каждого экземпляра блока то эти параметры необходимо создавать в параметрах каждого экземпляра.
спасибо, теперь все как у Гайвера выдает код :smile9: . Тестим дальше :smile38:
golloper
Сержант
Сообщения: 140
Зарегистрирован: 28 сен 2018, 17:16
Имя: Дмитрий
Благодарил (а): 5 раз
Поблагодарили: 28 раз

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

Сообщение golloper »

Такой вопрос. Как поменять очерёдность отображения параметра в блоке? В редакторе есть возможность передвигать меняя очерёдность а в конечном блоке они остаются в очерёдности их создания.
[spoiler]Такая очерёдность в редакторе
редактор.png
а так в блоке
настройки.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

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

Сообщение Naladchik »

golloper писал(а): 16 окт 2020, 09:32 Как поменять очерёдность отображения параметра в блоке?
1-я страница этой же темы сообщение №15, уже было.
viewtopic.php?f=112&t=6485#p91211
Win10-64. FLProg Portable.
Изображение
golloper
Сержант
Сообщения: 140
Зарегистрирован: 28 сен 2018, 17:16
Имя: Дмитрий
Благодарил (а): 5 раз
Поблагодарили: 28 раз

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

Сообщение golloper »

Naladchik писал(а): 16 окт 2020, 11:57
golloper писал(а): 16 окт 2020, 09:32 Как поменять очерёдность отображения параметра в блоке?
1-я страница этой же темы сообщение №15, уже было.
viewtopic.php?f=112&t=6485#p91211
Спасибо. Слона то я и не заметил.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

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

Сообщение Naladchik »

Бывает.
Win10-64. FLProg Portable.
Изображение
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

[ref=#00aa00]support[/ref], в версии 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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

av писал(а): 28 окт 2020, 10:03 Попробуйте строку #include <Adafruit_PCD8544.h> вставить в секцию "Конец секции "Declare" ".
все перепробовал, не раскладыват как надо, только если галку поставить что бы компилятор не видел include
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

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

Сообщение RedSky »

Ardudue писал(а): 29 окт 2020, 11:12 только если галку поставить что бы компилятор не видел include
Так вроде так и задумано. Из справки:
[spoiler]Чек бокс «Запретить компилятору видеть #Include»(3) присутствует в тулбаре редактора элемента кода только при расположении этого элемента в секции Declare. Он предназначен для управления компилятором проекта. Если его не отметить то компилятор соберёт все строки #Include из секций Declare всех экземпляров блоков и вставит их в код скетча в том месте, которое посчитает нужным, подчиняясь своей логикой. Установка данного чек бокса сообщает компилятору, что в данном элементе кода нельзя трогать строку #Include и необходимо вставить её в скетчь в том месте, где её прописал разработчик блока. В некоторых случаях это необходимо. Например, где включение одной библиотеки должно производиться только после включения другой, от которой первая зависит. Но в этом случае возможно дублирование подключение библиотек. Это не страшно конечно, но как говорится – «не кошерно».[/spoiler]
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

RedSky писал(а): 30 окт 2020, 09:54 Так вроде так и задумано. Из справки:
но тогда вшитые в ПБ библиотеки не заливает в IDE
Аватара пользователя
Dryundel
Полковник
Сообщения: 2431
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 30 раз

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

Сообщение Dryundel »

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

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

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

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

Эта проблема относится и к базовой версии редактора ПБ.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

Dryundel писал(а): 01 ноя 2020, 12:41 И в случае если в ПБ вшита более новая версия, логично было бы заменять уже установленную на свежую.
И все более старые блоки перестанут работать ))
(Пример с библиотекой json, перешла с 5 на 6 версию и сотни скетчей перестали работать)
Здесь как вариант если пристегнута библиотека к блоку, использовать именно ее, не трогая другие.
Например чтобы перед компиляцией флп создавал папку, клал в нее библиотеки с блоков и сформированный скетч, а после передавал IDE.
При этом в блоке указывать библиотеки в "", а не <>
Иначе для себя в этом ни какой пользы не увидел, (сплошная путаница, и громадный вес проектов) и давно этим не пользуюсь.
Win10-64, FLProg (portable)
Аватара пользователя
Dryundel
Полковник
Сообщения: 2431
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 30 раз

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

Сообщение Dryundel »

rw6cm писал(а): 01 ноя 2020, 15:27 И все более старые блоки перестанут работать ))
Как правило новые библиотеки поддерживают функции предыдущих версий.
Конечно же есть исключения. Но исключения лишь подтверждают правила. :)
rw6cm писал(а): 01 ноя 2020, 15:27 Например чтобы перед компиляцией флп создавал папку, клал в нее библиотеки с блоков и сформированный скетч, а после передавал IDE.
[ref=#ff8000]rw6cm[/ref], отличный вариант! Тем более FLProg уже создает такую временную папку. Осталось только сложить в нее все библиотеки из блоков проекта.

[ref=#00aa00]support[/ref], Сергей, это возможно сделать?

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

А вот пользоваться этим или нет, дело сугубо личное. И для новичка, скачавшего блок без требующейся библиотеки, становится проблемой ошибка выданная IDE.
Аватара пользователя
Phazz
Полковник
Сообщения: 3126
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость