Страница 16 из 18

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

Добавлено: 14 фев 2023, 23:44
anton2
ecoins писал(а): 14 фев 2023, 05:50 блоки FLProg в режиме setup() не принимают входных данных
я так понял что вопрос был именно в этом и вам ответили что это так но с определенными условиями.
вы в ответ не согласились и оскорбились на это уточнение7

к тому же айдар подтвердил проблему

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

Добавлено: 16 фев 2023, 07:42
aidar_i
Почистил от сообщений вне темы.

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

Добавлено: 16 фев 2023, 10:06
Dryundel
aidar_i писал(а): 16 фев 2023, 07:42 Почистил от сообщений вне темы.
Отлично. Спасибо.
Немного поправил.
Сейчас продолжим.
Я отвечу на все "каверзные" вопросы и реплики по поводу вставки параметра со входа и станет понятна вся обсурдность данной ситуации.

Отправлено спустя 1 час 8 минут 50 секунд:
Начнем
anton2 писал(а): 14 фев 2023, 23:44
ecoins писал(а): 14 фев 2023, 05:50 блоки FLProg в режиме setup() не принимают входных данных
я так понял что вопрос был именно в этом и вам ответили что это так но с определенными условиями.
вы в ответ не согласились и оскорбились на это уточнение7

к тому же айдар подтвердил проблему
.
Во первых, Айдар ничего такого не подтверждал. Он писал совсем про другое. Читайте внимательно.

Теперь по существу.
Да, вопрос был именно в этом. И утверждение это, как Вы можете заметить является категоричным относительно секции Setup. Никаких оговорок про общий код не было.
Однако и про общий код мы рассмотрим вопрос чуть дальше.
artemka19 писал(а): 14 фев 2023, 21:02 вопрос то какой был: можно ли вход в секции setup?
ответ: 50х50.
Эта реплика из удаленного сообщения. (Удалено оно по другой причине. Далее следуют оскорбления. Поэтому восстанавливать не буду)
Так вот утверждение "ответ: 50х50." Не имеет вообще смысла, потому что...
Автор программы изначально сделал запрет на использование тега входа в разделе "Общий код".
Давайте разберемся почему.
Предположим такое разрешение есть. Мы вставляем вход и этот вход появляется во всех экземплярах блока в проекте. Но значение то подаваемое на этот вход должно быть общим для всех экземпляров, потому как находится в общем коде.
Абсурд в том, что у общего значения, в этом случае появляется несколько реплик, ведь у каждого экземпляра будет свой "общий вход".

Небольшое отступление в связи с этой репликой. (она тоже из удаленного поста, но в нем много лишнего не по теме)
anton2 писал(а): 15 фев 2023, 00:12 а если нету нескольких экземпляров?
А если нету нескольких экземпляров, то и общий код не нужен. Общий, он на то и общий, что должен распространяться на все экземпляры.

Остался не закрытым вопрос, как же сделать общие настройки со входа блока.
А очень просто. Надо создать в пакете блоков "Блок настроек" и установить чекбокс "использовать один раз".
И уже в этом блоке в коде экземпляра вставлять общие настройки. А для применения этих настроек в рабочих блоках, можно например использовать тег "Идентификатор мультиблока" <MB.UUID>, если это требуется.

Вы можете сказать, что в этом случае надо будет обязательно вытаскивать "Блок настроек" раньше рабочих блоков. Иначе последовательность кода будет нарушена. Но и это не так.
В секции Setup есть разделы "Начало секции" и "Конец секции". И если правильно воспользоваться ими, то "Блок настроек" может находиться в любом месте проекта и на последовательность кода относительно рабочих блоков это не повлияет.

Надеюсь все вышесказанное достаточно внятно.

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

Добавлено: 16 фев 2023, 10:58
artemka19
[ref=#ff8000]Dryundel[/ref],
берем много (100-200-300-400) элементов для веб интерфейса к примеру.

нам нужно везде одинаковый цвет выставить.

на всех 100-200-300-400.

Вот тут бы как раз и пригодился вход в сетапе.

Отправлено спустя 1 минуту 52 секунды:
сейчас это приходится ручками для каждого из 100-200-300-400 элементов делать)))

ты скажешь - используй общий параметр!

Но в этом случае мы теряем динамичность смены цвета.

*я про пользовательский веб интерфейс jeeui
(не про штатный!!!)

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

Добавлено: 16 фев 2023, 11:04
Dryundel
artemka19 писал(а): 16 фев 2023, 10:58 ты скажешь - используй общий параметр!

Но в этом случае мы теряем динамичность смены цвета.
Нет. Я скажу используй "Блок настроек". (читай выше).

Однако ваш пример не имеет ничего общего с секцией Setup. Динамика возможна только в Loop.
Если я правильно понял вашу идею.
Но и там применение "Блока настроек" может оказаться полезной для решения такой задачи.

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

Добавлено: 16 фев 2023, 13:52
rw6cm
Что то я потерялся в исходном вопросе..))
Понял что [ref]JonyBest[/ref], хочет чисто для удобства, вывести параметр из настроек блока на его вход?
И это должно быть в setup?
Здесь есть нюансы.
1.Если это будут входы то обязательно кто то захочет привязать к нему выход, и завалит вопросами почему не работает )))
2.Чтобы передать стринг в констчар нужна дополнительная переменная, так как входы в блоках не имеют собственной переменной.
Стоит ли оно того???
Но здесь я понял идет идет битва за сам принцип "можно ли?"
Предложу свой вариант:
Константы входов через setup.flp
для [ref]artemka19[/ref]:
Создаем из настроек блока общую переменную, привязываем к ней вход и данные со входа можно сделать общими для всех блоков.

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

Добавлено: 16 фев 2023, 14:05
Dryundel
rw6cm писал(а): 16 фев 2023, 13:52 2.Чтобы передать стринг в констчар нужна дополнительная переменная, так как входы в блоках не имеют собственной переменной.
Стоит ли оно того???
Ну вот есть у человека такая потребность. :) Почему бы и нет.
Однако никаким способом это пока не получилось в данном случае. Ну не хочет функция принимать ссылку типа cons char* и все тут. В простых тестах все работает, а здесь нет. Могу выложить что уже пробовали. Подключишься?

Отправлено спустя 4 минуты 41 секунду:
rw6cm писал(а): 16 фев 2023, 13:52 Но здесь я понял идет идет битва за сам принцип "можно ли?"
Нет уже никакой битвы. Все порешалось.
Да и вопроса такого изначально не стояло. [ref]JonyBest[/ref], все вставил без вопросов. Проблема в том, что вход выдает код (String("Вход")), а библиотека требует просто "Вход".

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

Добавлено: 16 фев 2023, 14:07
rw6cm
Dryundel писал(а): 16 фев 2023, 14:01 Подключишься?
пусть попробует вариант выше. в нем нет функций, на выходе const char.

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

Добавлено: 16 фев 2023, 14:25
Dryundel
rw6cm писал(а): 16 фев 2023, 13:52 Предложу свой вариант:
Константы входов через setup.flp
rw6cm писал(а): 16 фев 2023, 14:07 пусть попробует вариант выше. в нем нет функций, на выходе const char.
Ну попробовать то конечно можно и нужно, на всякий случай. :)
Но подобное уже пробовали.
И да - Serial.print() прекрасно принимает ссылку const char*
А вот функция из библиотеки, которая в проекте, отказывается это делать. Хочет чисто "Privet"
Я уже в виде массива пытался ей строку подсунуть. Нефига не хочет. :no:

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

Добавлено: 16 фев 2023, 14:31
artemka19
[ref=#ff8000]Dryundel[/ref],
проект есть?

Отправлено спустя 5 минут 20 секунд:
Dryundel писал(а): 16 фев 2023, 14:07 Могу выложить что уже пробовали
желательно

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

Добавлено: 16 фев 2023, 14:32
Dryundel
artemka19 писал(а): 16 фев 2023, 14:25 [ref=#ff8000]Dryundel[/ref],
проект есть?
Проект чего? Автора вопроса проект?
Здесь он. viewtopic.php?t=6485&start=320#p121196

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

Добавлено: 16 фев 2023, 14:36
artemka19
JonyBest писал(а): 26 янв 2023, 21:53 Доброго времени! Подскажите как использовать вход String в редакторе, чтобы в setup в коде получилось ("Вход"), а не (String("Вход")).
Беда в том, что нужно значение типа constchar. А str.c_str() работает только в Loop
тут нет проекта)

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

Добавлено: 16 фев 2023, 15:49
Dryundel
artemka19 писал(а): 16 фев 2023, 14:36 тут нет проекта)
Не тот пост смотришь. Ищи esp32_test34.rar

PS
Блин я вижу форум немного по другому. И ссылки на конкретные посты другие получаются.
Не задумывался над этим. Какой то баг форума.

Отправлено спустя 1 час 6 минут 1 секунду:
artemka19 писал(а): 16 фев 2023, 14:31 [ref=#ff8000]Dryundel[/ref],
проект есть?

Отправлено спустя 5 минут 20 секунд:
Dryundel писал(а): 16 фев 2023, 14:07 Могу выложить что уже пробовали
желательно
.
Итак, задача в следующем:
Вход блока создает в скетче следующий код String("Privet")
Однако функция используемой библиотеки принимает только формат const char в виде "Privet"

Требуется из входного String("Privet") сделать "Privet"

Предпринималось следующее:

1.

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

void setup() {
    String tempString = <Вход>;   //В скетче будет    String tempString = (String("Privet"));
    const char *charString = tempString.c_str();
    device.setName(charString);
   } 
.
2.

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

void setup()
{
    String str = <Вход>; //В скетче будет    String str = (String("Privet"));
    char buf[20];
    str.toCharArray(buf , str.length()+1);
    device.setName(buf);
}
В обоих вариантах, если отослать такую переменную в Serial, то все работает
Типа так

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

setName(const char* name)
{
    Serial.println(name);
}
.
В библиотеке функция выглядит так и принимать все кроме "Privet" отказывается.

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

void HADevice::setName(const char* name)
{
    _serializer->set(AHATOFSTR(HANameProperty), name);
}
.
Библиотека здесь https://github.com/dawidchyrzynski/ardu ... -assistant
Проект автора вопроса [ref]JonyBest[/ref], двумя страницами ранее. Скачать проект esp32_test34.rar

Отправлено спустя 2 минуты 41 секунду:
Корифеи С++, подключайтесь ! :smile236:

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

Добавлено: 16 фев 2023, 16:09
artemka19

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

Добавлено: 16 фев 2023, 19:26
JonyBest
rw6cm писал(а): 16 фев 2023, 13:52 Предложу свой вариант:
Константы входов через setup.flp
Извините, только добрался до компьютера.
Этот вариант рабочий. Всё отрабатывает как надо.
Единственный минус этого варианта, как мне кажется, теряется смысл входа. Проще тогда сразу работать с переменной...

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

Добавлено: 16 фев 2023, 20:03
Dryundel
JonyBest писал(а): 16 фев 2023, 19:26 Этот вариант рабочий. Всё отрабатывает как надо.
[ref=#ff8000]rw6cm[/ref], снимаю шляпу! Изображение

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

Добавлено: 19 май 2023, 17:52
aidar_i
В новом редакторе в списке параметров есть Массив, который дает возможность легко работать с массивом, создаваемым штатными блоками из редактора ПБ. Но нет Структуры, что облегчило бы работу штатных структур с ПБ. Столкнулся при создании ПБ ESP_NOW. При наличии его, можно было бы легко создавать входы и выходы для ПБ из штатного блока в нужном количестве. Штатный блок сам дает имя структуре и переменным , а не те которые вы указываете.

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

Добавлено: 19 май 2023, 18:22
Phazz
Согласен, структуры иногда бы очень пригодились.

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

Добавлено: 28 июл 2023, 12:54
vlad1451
Начал изучать новый редактор, столкнулся с проблемой. Создаю мультиблок из нескольких блоков. Несколько блоков имеют одинаковые по названиям параметры. Чтобы не плодить названия типа цвет_1, цвет_2, цвет_3 и т.д, можно как то параметры привязать к конкретным блокам? Или всё же придётся делать разные названия?

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

Добавлено: 28 июл 2023, 14:09
AlexCrane
[ref]vlad1451[/ref], Добавь к переменной UIID (идентификатор экземпляра). Есть кнопка такая в редакторе