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

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

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

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

#81

Сообщение Dryundel » 04.08.2020{, 08:19}

support, а возможно ли сделать так, что бы строчки проверки условий можно было добавлять. Это бы избавило от создания условий созданных из комбинаций условий.
.
2020-08-04_080619.jpg
.
Отправлено спустя 7 часов 44 минуты 32 секунды:
support, есть еще предложение.
Не плохо было бы иметь в арсенале "Условный параметр"
Суть в том, что возникает потребность вводить значение параметра, в зависимости от комплекса условий.

Пример:
Ввод адреса I2C устройства в зависимости от подтяжки адресных пинов.
.
2020-08-04_152318.jpg
.
Поместить "Условный параметр" думаю можно в выпадающий список "Вид параметра".
В случае его выбора, исключить этот параметр из настроек пользователя. (Параметр нужен, а настраивать его не требуется.)
А на месте поля текст, в этом случае, организовать "Условие". Текст ведь уже будет не нужен.

Сейчас для осуществления данного примера надо создать кучу условий, а потом кучу вариантов кода по этим условиям.
Получается довольно громоздко.

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

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

#82

Сообщение Dryundel » 04.08.2020{, 16:17}

support писал(а):
01.08.2020{, 18:13}
Dryundel писал(а):
01.08.2020{, 08:01}
Но вот один и тот же массив использовать в разных ПБ не получается без внятного имени массива.
Ну почему же? Создаёте параметр "Массив", и делай с ним что хочеш.
Почитайте здесь
https://flprog.ru/bez-rubriki/helppage/ ... ayParametr.
Там ещё и пины контроллера можно использовать, и уарты, и переменные без использования входа напрямую
Если все так, как описано, то здорово и вопрос снимается. :)
Будем тестить.

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

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

#83

Сообщение support » 04.08.2020{, 17:08}

Dryundel писал(а):
04.08.2020{, 16:03}
Не плохо было бы иметь в арсенале "Условный параметр"
Суть в том, что возникает потребность вводить значение параметра от от комплекса условий.
Пример:
Ввод адреса I2C устройства в зависимости от подтяжки адресных пинов.
.

.
Поместить "Условный параметр" думаю можно в выпадающий список "Вид параметра".
В случае его выбора, исключить этот параметр из настроек пользователя. (Параметр нужен, а настраивать его не требуется.)
А на месте поля текст, в этом случае, организовать "Условие". Текст ведь уже будет не нужен.

Сейчас для осуществления данного примера надо создать кучу условий, а потом кучу вариантов кода по этим условиям.
Получается довольно громоздко.
Я так понял Вы хотите что бы пользователь указал в каком положении находятся перемычки адреса, и автоматически указался адрес в скетче. Предлагаю такое решение. Создаёте три параметра такого вида
PCF1.PNG
А в конце секции декларе пишете такой код
PCF2.PNG
В результате при компиляции получится вот это

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

byte PCF8575_Addres=0x20+B000;
void setup()
{
Ну а потом эту переменную (PCF8575_Addres) можете использовать где надо.

Ну а вообще идея с предварительными расчетами в компиляторе - интересная, но не сейчас. В будущем, возможно, когда хорошенько её обдумаю.
Автор программы FLProg.

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

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

#84

Сообщение Dryundel » 04.08.2020{, 18:08}

support писал(а):
04.08.2020{, 17:08}
В результате при компиляции получится вот это

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

byte PCF8575_Addres=0x20+B000;
void setup()
{

Ну а потом эту переменную (PCF8575_Addres) можете использовать где надо.
Костыль конечно, но спасибо за подсказку. :)
К синтаксису нового редактора ПБ надо еще привыкнуть.

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

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

#85

Сообщение Dryundel » 04.08.2020{, 18:59}

support писал(а):
04.08.2020{, 17:08}
В результате при компиляции получится вот это

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

byte PCF8575_Addres=0x20+B000;
void setup()
{

Ну а потом эту переменную (PCF8575_Addres) можете использовать где надо.
support, не прокатил костыль. :smile37:
Идентификатор то не приклеивается.
А если две такие микросхемы в проекте?
.
2020-08-04_185307.jpg

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

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

#86

Сообщение Dryundel » 04.08.2020{, 19:04}

Пока писал, понял как костыль к костылю приделать. :smile171:

Вот так прокатило.

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

byte PCF8575_Addres_<A2><A1><A0> = 0x20+B<A2><A1><A0>;

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

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

#87

Сообщение support » 04.08.2020{, 19:43}

Dryundel писал(а):
04.08.2020{, 18:59}
Идентификатор то не приклеивается.
А если две такие микросхемы в проекте?
Ну я объяснял общий принцип. Что бы для каждого блока создавался свой адрес, эти параметры надо перенести в параметры каждого экземпляра, а код конец в секции декларе каждого экземпляра и немного его модернизировать.
pcf.PNG
Ну а потом использовать переменную адреса в таком же виде (естевственно в коде каждого экземпляра) - <INS.UUID>Address
Где то так например
pcf1.PNG
Что получаем при двух блоках с разными адресами

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

byte 136263445Address=0x20+B100;
byte 197270287Address=0x20+B010;
void setup()
{
      expander .begin(136263445Address);
    expander .begin(197270287Address);
}
void loop()
{
    //Плата:1
    //Плата:2
}

Dryundel писал(а):
04.08.2020{, 19:04}
Пока писал, понял как костыль к костылю приделать. :smile171:

Вот так прокатило.

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

byte PCF8575_Addres_<A2><A1><A0> = 0x20+B<A2><A1><A0>;
не прокатило((( при изменении в одном блоке адреса изменятся и в дагом и адрес задасться оди раз

почитайте здесь

https://flprog.ru/bez-rubriki/helppage/ ... MainWindow
Автор программы FLProg.

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

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

#88

Сообщение Dryundel » 05.08.2020{, 00:55}

support писал(а):
04.08.2020{, 19:43}
почитайте здесь

https://flprog.ru/bez-rubriki/helppage/ ... MainWindow
Жуть! :smile37:
Общий принцип понятен, с нюансами разберемся.
.
Есть проблема поважней.
Не вставляются в код значения входов и выходов. (может и здесь я чего не понял)
.
12.jpg
13.jpg
14.jpg
.
Вот проект:
PCF8575.flp
(582 КБ) 41 скачивание
.
И еще, маленький трабл. После редактирования блока. Появляется артефакт.
15.jpg
15.jpg (6.99 КБ) 1278 просмотров
.
Win10 x 64

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

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

#89

Сообщение support » 05.08.2020{, 06:07}

Dryundel писал(а):
05.08.2020{, 00:55}
Не вставляются в код значения входов и выходов. (может и здесь я чего не понял)
Вот смотрите, Вы используете общий код блока. Он вставляется в скетч ОДИН раз вне зависимости от количества таких блоков используемых в проекте. Соответственно, если в схеме стоят ДВА одинаковых блока, значения входа какого из блоков использовать?
Поэтому тэги входов и выходов в общем коде не доступны. Общее правило использования тэгов, если они не становяться жирными, значит они не доступны в этом месте.
Входы и выходы доступны только в коде каждого экземпляра (там и кнопочки специальные есть), который вставляется в скетчь для КАЖДОГО блока используемого в проекте

Отправлено спустя 30 секунд:
Dryundel писал(а):
05.08.2020{, 00:55}
И еще, маленький трабл. После редактирования блока. Появляется артефакт.
Есть такое, поправлю, сейчас-если чуть пошевелить блок, все нормализуется.
Автор программы FLProg.

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

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

#90

Сообщение aidar_i » 05.08.2020{, 07:25}

Dryundel писал(а):
05.08.2020{, 00:55}
Есть такое, поправлю, сейчас-если чуть пошевелить блок, все нормализуется.
Да, такое есть тоже у меня, приходится ПБ шевелить, чтобы нормализовался.

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

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

#91

Сообщение Dryundel » 05.08.2020{, 12:09}

support писал(а):
05.08.2020{, 06:07}
Входы и выходы доступны только в коде каждого экземпляра (там и кнопочки специальные есть), который вставляется в скетчь для КАЖДОГО блока используемого в проекте
Ок. С этим понятно.

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

А как же сделать так, что бы в каждом отдельном экземпляре блока присутствовал свой набор входов и выходов?

Ну так же как в штатном блоке MCP23017
2020-08-05_120401.jpg
2020-08-05_120401.jpg (9.49 КБ) 1955 просмотров
.
И еще хотелось бы, что бы лейбл блока тоже мог видоизменяться по условию. Аналогично тому же штатному MCP23017.

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

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

#92

Сообщение support » 05.08.2020{, 18:02}

Dryundel писал(а):
05.08.2020{, 12:10}
А как же сделать так, что бы в каждом отдельном экземпляре блока присутствовал свой набор входов и выходов?
Создавать условия в "Условиях каждого экземпляра блока", в этом случае для каждого экземпляра будут расчитыватся результаты учловия и соответственно показываться или нет входа и выхода
Автор программы FLProg.

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

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

#93

Сообщение Dryundel » 05.08.2020{, 21:08}

support писал(а):
05.08.2020{, 18:02}
Dryundel писал(а):
05.08.2020{, 12:10}
А как же сделать так, что бы в каждом отдельном экземпляре блока присутствовал свой набор входов и выходов?
Создавать условия в "Условиях каждого экземпляра блока", в этом случае для каждого экземпляра будут расчитыватся результаты учловия и соответственно показываться или нет входа и выхода
Все! С этим разобрался. Все дело в строгой иерархии условий и параметров.

А вот этот вопрос пока актуален:
Dryundel писал(а):
05.08.2020{, 12:10}
И еще хотелось бы, что бы лейбл блока тоже мог видоизменяться по условию. Ну так же как в штатном блоке MCP23017.

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

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

#94

Сообщение Dryundel » 09.08.2020{, 14:46}

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

2. Может быть реально сделать возможность создания группы параметров? Хотя бы для типа boolean с видом "флажок". Так что бы в пользовательских настройках мог отображаться не один чек бокс, а несколько. И несколько однотипных параметров можно было бы настроить из одной вкладки. Это к стати, было бы весьма актуально при настройке адреса девайса подтяжкой адресных пинов.
Ну и для вида переключатель такое очень бы пригодилось.
А в дереве проекта мультиблока в параметры добавить "Группа параметров", параметры из которой и объединялись бы на одной вкладке настроеек.
.
Ну как то так :)Показать
2020-08-09_142715.jpg
2020-08-09_142519.jpg
Отправлено спустя 8 минут 27 секунд:
3. support, добавьте пожалуйста количество строк для вида переключатель. Ну хотя бы 8 шт.
Не просто так прошу. Обосновано битностью. Выбор бита весьма актуальная штука.

Отправлено спустя 12 минут 11 секунд:
4. Возвращаюсь к вопросу возможности добавлять в лейбол тег, дабы на плате можно было видеть - номер девайса, адрес девайса, буквенное отличие девайса и т.п.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

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

#95

Сообщение Ingwar » 09.08.2020{, 16:49}

Оффтоп:

Проект не для программистов, а кол-во и размер "хотелок" прямо пропорционален скилу программирования :smile171: И каждый "затачивает" инструмент под себя.
Не нужно писать, что так будет удобнее/функциональней/и т.д., это понятно.
Для хотелок есть отдельный раздел
Отвлекаете Автора от выпуска стабильной версии... Имейте совесть короче.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

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

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

#96

Сообщение aidar_i » 09.08.2020{, 19:49}

Убрать бы со старого редактора лишние ограничения, проверки в декларе секции, цены бы не было.

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

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

#97

Сообщение Dryundel » 09.08.2020{, 20:07}

Ingwar писал(а):
09.08.2020{, 16:49}
Оффтоп:

Проект не для программистов, а кол-во и размер "хотелок" прямо пропорционален скилу программирования :smile171: И каждый "затачивает" инструмент под себя.
Не нужно писать, что так будет удобнее/функциональней/и т.д., это понятно.
Для хотелок есть отдельный раздел
Отвлекаете Автора от выпуска стабильной версии... Имейте совесть короче.
Уважаемый Ingwar, как Вы считаете, пользователи которые не сильны в программировании, или не желающие им заморачиваться, имеют хотелки по появлению на форуме новых, функциональных и удобных блоков?
На рынке куча девайсов, отличающихся например низкой ценой или интересным функционалом, которые несправедливо и не обосновано забыты.
По Вашему мнению новые хорошие блоки не нужны? Или может надеетесь что Автор все это для Вас сможет успеть сделать?
Люди которые хоть немного понимают в программировании сотворили и выложили на форум кучу полезных блоков.
Так почему бы им не предоставить такой же хороший, удобный и функциональный инструмент?

Или я один та считаю? :smile37:

Отправлено спустя 2 минуты 53 секунды:
А если эта тема Вам не интересна, чужда, или просто слишком сложна. Так проходите мимо. Или читайте про себя (не в слух :) ).

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

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

#98

Сообщение Ingwar » 09.08.2020{, 20:33}

Dryundel писал(а):
09.08.2020{, 20:10}
Или читайте про себя (не в слух ).
Похоже Вы читаете между строк или между слов, если не поняли посыла. А судя по реакции, по жизни очень болезненно воспринимаете замечания/критику/ и т.д. в свой адрес :smile469: ...
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

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

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

#99

Сообщение aidar_i » 10.08.2020{, 09:23}

Пример создания входов с выбором типа переменной.
Жаль лейбл не меняется по условию , у всех блоков одинаковое название
Создание входов.flp
(273.34 КБ) 117 скачиваний

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

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

#100

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

Есть предложение по редактору.
Предлагаю ввести добавить вкладку в редакторе, где можно будет вводить текст с глобальной информацией которая можно было бы посмотреть в "обзор схемы" или еще где.
Информация такого рода как
- Блок "###" ограничил использование ШИМ на пинах 0, 1 и 12
- Скоросной счетчик не работает на пине 3 всвязи с использованием библиотеки "###"
- Блок "###" содержит delay(10000), что задержит старт основного кода при перезагрузке.
- Отключите внутренний ЕЕПРОМ, Блок "###" имеет другую библиотеку и но конфликтует со встроенной библиотекой ЕЕПРОМ
- UART не работает на пинах 0,1 и 6,7
- Данный блок "###" не работает на ЕСП32
- и многое другое

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

Ответить

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