Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

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

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

Создаем свой блок. Вопросы, помощь знатоков.
Ardudue
Сержант
Сообщения: 110
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 1
Имя: Антон

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

#81

Сообщение Ardudue » 31.07.2020{, 14:17}

rw6cm писал(а):
31.07.2020{, 08:23}
не пойму тогда Вашу иронию.
Не пристегивайте к блоку библиотеки, и пользуйтесь этой опцией.
никакой иронии, тогда была версия 700 , а вчера версия уже 703, дал инфу автору о прблеме.
Пристегивать библиотеки к ПБ это правильно, иначе где их потом искать. А с конфликтующими библами разобраться это не проблема.

Аватара пользователя
Sancho
Полковник
Сообщения: 3461
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 448
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#82

Сообщение Sancho » 31.07.2020{, 15:01}

Ardudue писал(а):
31.07.2020{, 14:17}
Пристегивать библиотеки к ПБ это правильно, иначе где их потом искать.
Очень спорное утверждение, согласен с rw6cm о весе ПБ и скорости открытия.
При каждой компиляции прога пытается запихнуть их в нужное место. Зачем?
Бибки сразу класть в папку libraries, у меня C:\Users\Omelchuk\Documents\Arduino\libraries
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

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

#83

Сообщение Dryundel » 31.07.2020{, 15:24}

support, вопрос на засыпку. :smile37:
Реально ли, в новом редакторе, реализовать генерацию входов/выходов (группы входов/выходов) по шаблону. Ну типа как в штатном блоке микросхемы расширения 74HC595 ?
74HC595Показать
2020-07-31_151028.jpg

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

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

#84

Сообщение aidar_i » 31.07.2020{, 18:18}

Dryundel писал(а):
31.07.2020{, 15:24}
Реально ли, в новом редакторе, реализовать генерацию входов/выходов (группы входов/выходов) по шаблону.
Если вот так?
74CH595.flp
(106.73 КБ) 14 скачиваний

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

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

#85

Сообщение Dryundel » 31.07.2020{, 18:36}

aidar_i писал(а):
31.07.2020{, 18:18}
Если вот так?
Если вот так, то оно конечно понятно.
А если к примеру требуется штук 50 однотипных входов, с которых ну к примеру данные пишутся в массив, где тоже все по шаблону можно реализовать. В этом случае очень уж долго прописывать все варианты. И обязательно потребуется массив на 51 значение. :yes:
Как то ведь это в блоке 74HC595 реализовано.

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

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

#86

Сообщение aidar_i » 31.07.2020{, 18:48}

Надо один раз сделать на 100 и всю жизнь использоваться!:)

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

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

#87

Сообщение Dryundel » 31.07.2020{, 18:57}

aidar_i писал(а):
31.07.2020{, 18:48}
Надо один раз сделать на 100 и всю жизнь использоваться!:)
:smile171:
Точно! Один такой блок сделаешь и больше не захочешь. И все равно, обязательно кому то потребуется на 101. :smile171:

Отправлено спустя 9 минут 5 секунд:
И еще. Давнишний вопрос. Почему бы в FLProg не добавить такой тип данных как массив?
Понимаю конечно, что вопрос офтоп, в связи с таким прорывом как новый редактор пользовательских блоков, этот вопрос стал еще более актуален.
Работа штатных блоков по работе с массивами очень сильно ограничена.

support, Сергей. Ответь пожалуйста, возможно ли такое?

Переменная типа Array. И не в блоке его создавать а во вкладке переменные. Это же здорово! :yes:

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

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

#88

Сообщение support » 01.08.2020{, 04:50}

Dryundel писал(а):
31.07.2020{, 19:06}
aidar_i писал(а):
31.07.2020{, 18:48}
Надо один раз сделать на 100 и всю жизнь использоваться!:)
:smile171:
Точно! Один такой блок сделаешь и больше не захочешь. И все равно, обязательно кому то потребуется на 101. :smile171:

Отправлено спустя 9 минут 5 секунд:
И еще. Давнишний вопрос. Почему бы в FLProg не добавить такой тип данных как массив?
Понимаю конечно, что вопрос офтоп, в связи с таким прорывом как новый редактор пользовательских блоков, этот вопрос стал еще более актуален.
Работа штатных блоков по работе с массивами очень сильно ограничена.

support, Сергей. Ответь пожалуйста, возможно ли такое?

Переменная типа Array. И не в блоке его создавать а во вкладке переменные. Это же здорово! :yes:
Ну хорошо, сделал я такой тип данных (в принципе несложно показывать в дереве проекта все используемые в проекте массивы), создали Вы там новый массив, то же несложно, а дальше? Перетаскиваем его на рабочее поле, что тут делать? Надо выбрать какой блок ставить, записи или чтения? Ну ладно, сперосили пользователя, он выбрал, поставили блок. И зачем эти сложности? Может действительно проще как сейчас, вытащил из библиотеки сразу нужный блок, и в его настройках уже выбрал, или создал массив.
Dryundel писал(а):
31.07.2020{, 19:06}
Работа штатных блоков по работе с массивами очень сильно ограничена.
А какие ещё есть базовые функции по работе с массивами, предлагайте.
Ну и в конце концов специфические функции обработки массива легко можно реализовать в новом редакторе.
Автор программы FLProg.

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

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

#89

Сообщение Dryundel » 01.08.2020{, 07:52}

support писал(а):
01.08.2020{, 04:50}
И зачем эти сложности? Может действительно проще как сейчас, вытащил из библиотеки сразу нужный блок, и в его настройках уже выбрал, или создал массив.
Да все бы ничего. Можно было бы и пользоваться имеющимися блоками. Только массив создается без внятного имени и использовать его в проекте можно только с помощью штатных блоков. А сделать что то отличное невозможно. Этот массив уже не пропишешь. Только если из скетча вытащить и ручками что то в скетче прописать. Вот в чем беда.

Отправлено спустя 8 минут 20 секунд:
support писал(а):
01.08.2020{, 04:50}
А какие ещё есть базовые функции по работе с массивами, предлагайте.
Ну и в конце концов специфические функции обработки массива легко можно реализовать в новом редакторе.
Да мало ли что можно сделать. Буфер FIFO к примеру. viewtopic.php?f=77&t=5829
Цифровые фильтры всевозможные. Т тд.
Можно с новым можно со старым редактором делать. Но вот один и тот же массив использовать в разных ПБ не получается без внятного имени массива.

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

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

#90

Сообщение support » 01.08.2020{, 18:13}

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

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

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

#91

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

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

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

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

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

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

#92

Сообщение 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
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#93

Сообщение 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
Лейтенант
Сообщения: 641
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 201
Откуда: Ярославль
Имя: Андрей

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

#94

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

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

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

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

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

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

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

#95

Сообщение 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
Лейтенант
Сообщения: 641
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 201
Откуда: Ярославль
Имя: Андрей

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

#96

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

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

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

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

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

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

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

#97

Сообщение 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
Лейтенант
Сообщения: 641
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 201
Откуда: Ярославль
Имя: Андрей

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

#98

Сообщение 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 КБ) 4 скачивания
.
И еще, маленький трабл. После редактирования блока. Появляется артефакт.
15.jpg
15.jpg (6.99 КБ) 353 просмотра
.
Win10 x 64

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

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

#99

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

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

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

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

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

#100

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

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

Ответить

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