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

Создаем свой блок. Вопросы, помощь знатоков.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

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

Сейчас для осуществления данного примера надо создать кучу условий, а потом кучу вариантов кода по этим условиям.
Получается довольно громоздко.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

support писал(а): 01 авг 2020, 18:13
Dryundel писал(а): 01 авг 2020, 08:01 Но вот один и тот же массив использовать в разных ПБ не получается без внятного имени массива.
Ну почему же? Создаёте параметр "Массив", и делай с ним что хочеш.
Почитайте здесь
https://flprog.ru/bez-rubriki/helppage/ ... ayParametr.
Там ещё и пины контроллера можно использовать, и уарты, и переменные без использования входа напрямую
Если все так, как описано, то здорово и вопрос снимается. :)
Будем тестить.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

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

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

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

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

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

Ну а вообще идея с предварительными расчетами в компиляторе - интересная, но не сейчас. В будущем, возможно, когда хорошенько её обдумаю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Автор программы FLProg.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

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

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

Ну а потом эту переменную (PCF8575_Addres) можете использовать где надо.
Костыль конечно, но спасибо за подсказку. :)
К синтаксису нового редактора ПБ надо еще привыкнуть.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

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

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

Ну а потом эту переменную (PCF8575_Addres) можете использовать где надо.
[ref=#00aa00]support[/ref], не прокатил костыль. :smile37:
Идентификатор то не приклеивается.
А если две такие микросхемы в проекте?
.
2020-08-04_185307.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

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

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

byte PCF8575_Addres_<A2><A1><A0> = 0x20+B<A2><A1><A0>;
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

Dryundel писал(а): 04 авг 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 авг 2020, 19:04 Пока писал, понял как костыль к костылю приделать. :smile171:

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

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

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

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

https://flprog.ru/bez-rubriki/helppage/ ... MainWindow
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Автор программы FLProg.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

support писал(а): 04 авг 2020, 19:43 почитайте здесь

https://flprog.ru/bez-rubriki/helppage/ ... MainWindow
Жуть! :smile37:
Общий принцип понятен, с нюансами разберемся.
.
Есть проблема поважней.
Не вставляются в код значения входов и выходов. (может и здесь я чего не понял)
.
12.jpg
13.jpg
14.jpg
.
Вот проект:
PCF8575.flp
.
И еще, маленький трабл. После редактирования блока. Появляется артефакт.
15.jpg
.
Win10 x 64
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

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

Отправлено спустя 30 секунд:
Dryundel писал(а): 05 авг 2020, 00:55 И еще, маленький трабл. После редактирования блока. Появляется артефакт.
Есть такое, поправлю, сейчас-если чуть пошевелить блок, все нормализуется.
Автор программы FLProg.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Dryundel писал(а): 05 авг 2020, 00:55 Есть такое, поправлю, сейчас-если чуть пошевелить блок, все нормализуется.
Да, такое есть тоже у меня, приходится ПБ шевелить, чтобы нормализовался.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

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

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

Ну так же как в штатном блоке MCP23017
2020-08-05_120401.jpg
.
И еще хотелось бы, что бы лейбл блока тоже мог видоизменяться по условию. Аналогично тому же штатному MCP23017.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

Dryundel писал(а): 05 авг 2020, 12:10 А как же сделать так, что бы в каждом отдельном экземпляре блока присутствовал свой набор входов и выходов?
Создавать условия в "Условиях каждого экземпляра блока", в этом случае для каждого экземпляра будут расчитыватся результаты учловия и соответственно показываться или нет входа и выхода
Автор программы FLProg.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

А вот этот вопрос пока актуален:
Dryundel писал(а): 05 авг 2020, 12:10 И еще хотелось бы, что бы лейбл блока тоже мог видоизменяться по условию. Ну так же как в штатном блоке MCP23017.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

2. Может быть реально сделать возможность создания группы параметров? Хотя бы для типа boolean с видом "флажок". Так что бы в пользовательских настройках мог отображаться не один чек бокс, а несколько. И несколько однотипных параметров можно было бы настроить из одной вкладки. Это к стати, было бы весьма актуально при настройке адреса девайса подтяжкой адресных пинов.
Ну и для вида переключатель такое очень бы пригодилось.
А в дереве проекта мультиблока в параметры добавить "Группа параметров", параметры из которой и объединялись бы на одной вкладке настроеек.
.
[spoiler=Ну как то так :)]
2020-08-09_142715.jpg
2020-08-09_142519.jpg
[/spoiler]

Отправлено спустя 8 минут 27 секунд:
3. [ref=#00aa00]support[/ref], добавьте пожалуйста количество строк для вида переключатель. Ну хотя бы 8 шт.
Не просто так прошу. Обосновано битностью. Выбор бита весьма актуальная штука.

Отправлено спустя 12 минут 11 секунд:
4. Возвращаюсь к вопросу возможности добавлять в лейбол тег, дабы на плате можно было видеть - номер девайса, адрес девайса, буквенное отличие девайса и т.п.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

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

Сообщение Ingwar »

Оффтоп:

Проект не для программистов, а кол-во и размер "хотелок" прямо пропорционален скилу программирования :smile171: И каждый "затачивает" инструмент под себя.
Не нужно писать, что так будет удобнее/функциональней/и т.д., это понятно.
Для хотелок есть отдельный раздел
Отвлекаете Автора от выпуска стабильной версии... Имейте совесть короче.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Убрать бы со старого редактора лишние ограничения, проверки в декларе секции, цены бы не было.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2451
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 6 раз
Поблагодарили: 31 раз

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

Сообщение Dryundel »

Ingwar писал(а): 09 авг 2020, 16:49 Оффтоп:

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

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

Отправлено спустя 2 минуты 53 секунды:
А если эта тема Вам не интересна, чужда, или просто слишком сложна. Так проходите мимо. Или читайте про себя (не в слух :) ).
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

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

Сообщение Ingwar »

Dryundel писал(а): 09 авг 2020, 20:10 Или читайте про себя (не в слух ).
Похоже Вы читаете между строк или между слов, если не поняли посыла. А судя по реакции, по жизни очень болезненно воспринимаете замечания/критику/ и т.д. в свой адрес :smile469: ...
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

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

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

Сообщение Gordon0007 »

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

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

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

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

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