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

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

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

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

#101

Сообщение Gordon0007 » 13.08.2020{, 09:35}

Так же есть предложение добавить информацию номера версии блока, допустим есть проект в нем уже вставил ПБ и как бы пользовался этим блоком и нашел ошибку когда начал другой проект. Вернулся к старому проекту, а программа предлагает обновить ПБ так как есть более свежая версия ПБ.

Gordon0007
Сержант
Сообщения: 138
Зарегистрирован: 19.04.2018{, 13:37}
Репутация: 13
Имя: Павел

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

#102

Сообщение Gordon0007 » 13.08.2020{, 09:38}

Проблема обычно в том, что название блока не меняется и забывается, что эта версия блока уже устарела и не актуально. :smile390:
Сам сталкивался с такой проблемой.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#103

Сообщение aidar_i » 19.08.2020{, 23:31}

Коды в ПБ выстраиваются в цепочку, если в секции имеются несколько элементов кода
СпойлерПоказать
Безымянный.png
Безымянный.png (3.93 КБ) 1306 просмотров
Если первую строку элемента кода сделать пустым, то выстраиваются друг под другом, как надо.
СпойлерПоказать
Безымянный3.png
Безымянный3.png (2.53 КБ) 1306 просмотров
Фото с ПБ шаблона.
Последний раз редактировалось aidar_i 19.08.2020{, 23:45}, всего редактировалось 1 раз.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#104

Сообщение aidar_i » 19.08.2020{, 23:34}

Очень нужна опция перенос элементов кода в другую секцию. Создашь их и обнаруживаешь - не там, и нужно их удалять и снова создавать в другом месте. Когда их много, руки опускаются.
СпойлерПоказать
Безымянный1.png

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

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

#105

Сообщение support » 19.08.2020{, 23:54}

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

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

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

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

int val =


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

Отправлено спустя 2 минуты 48 секунд:
Gordon0007 писал(а):
13.08.2020{, 09:35}
Так же есть предложение добавить информацию номера версии блока, допустим есть проект в нем уже вставил ПБ и как бы пользовался этим блоком и нашел ошибку когда начал другой проект. Вернулся к старому проекту, а программа предлагает обновить ПБ так как есть более свежая версия ПБ.
Это есть в планах, но пока не реализовано. В будущем будет. Честно говоря просто реализовать это достаточно сложно.
Автор программы FLProg.

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

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

#106

Сообщение Ardudue » 20.08.2020{, 13:43}

support, сделал ПБ для расширения частоты PWM по этому примеру:
СпойлерПоказать

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


#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 бит)
}
Но когда ставлю два ПБ, то pin на всех ПБ автоматом ставится одинаковый , при чем тот который самый последний установил.
Gyver PWM V2 FLP704.flp
(693.31 КБ) 54 скачивания
Надо так
БП ШИМ.PNG
БП ШИМ.PNG (6.36 КБ) 1210 просмотров

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

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

#107

Сообщение support » 21.08.2020{, 02:54}

Ardudue писал(а):
20.08.2020{, 13:43}
support, сделал ПБ для расширения частоты PWM по этому примеру:
СпойлерПоказать

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


#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 бит)
}
Но когда ставлю два ПБ, то pin на всех ПБ автоматом ставится одинаковый , при чем тот который самый последний установил. Gyver PWM V2 FLP704.flp
Надо так
БП ШИМ.PNG
Если хотите что бы значения параметра было независимым для каждого экземпляра блока то эти параметры необходимо создавать в параметрах каждого экземпляра.
Почитайте тут https://flprog.ru/bez-rubriki/helppage/ ... MainWindow.
И второе. Я к сожалению в хелпе это не осветил (исправлюсь))) ), если в коде используете однострочный комментарий типа вот такого

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

// заполнение регулируем потенциометром на А0 (8 бит)
то после такого комметнария ОБЯЗАТЕЛЬНО должна быть новая строка. Даже если это последняя строка в элементе кода. Иначе первая строка из следующего эдемента кода станет то же комментарием.
Приложил исправленный работающий ваш проект с исправленным блоком.
Gyver PWM V2 FLP704.flp
(650.26 КБ) 72 скачивания
Автор программы FLProg.

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

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

#108

Сообщение Ardudue » 23.08.2020{, 16:45}

support писал(а):
21.08.2020{, 02:54}
Если хотите что бы значения параметра было независимым для каждого экземпляра блока то эти параметры необходимо создавать в параметрах каждого экземпляра.
спасибо, теперь все как у Гайвера выдает код :smile9: . Тестим дальше :smile38:

golloper
Рядовой
Сообщения: 39
Зарегистрирован: 28.09.2018{, 17:16}
Репутация: 7
Имя: Дмитрий

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

#109

Сообщение golloper » 16.10.2020{, 09:32}

Такой вопрос. Как поменять очерёдность отображения параметра в блоке? В редакторе есть возможность передвигать меняя очерёдность а в конечном блоке они остаются в очерёдности их создания.
СпойлерПоказать
Такая очерёдность в редакторе
редактор.png
а так в блоке
настройки.png
настройки.png (9.69 КБ) 843 просмотра

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

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

#110

Сообщение Naladchik » 16.10.2020{, 11:57}

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

golloper
Рядовой
Сообщения: 39
Зарегистрирован: 28.09.2018{, 17:16}
Репутация: 7
Имя: Дмитрий

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

#111

Сообщение 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
Капитан
Сообщения: 823
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

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

#112

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

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

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

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

#113

Сообщение 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
(73.72 КБ) 37 скачиваний

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

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

#114

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

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

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

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

#115

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

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

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

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

#116

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

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

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

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

#117

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

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

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

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

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

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

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

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

#118

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

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

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

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

#119

Сообщение 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.

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

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

#120

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

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

Ответить

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