Я так и делал до последнего. Но код для блоков это самая малая проблема и легко решаема. А вот создание блоков допустим для LVGL очень трудозатратно, один только блок стилей для темы чего стоит. В нем параметров около полусотни и время на создание этих параметров и условий к ним и элементов кода затрачивается очень много. На один блок ушло 2 дня. По этому мое желание создать генератор блоков с помощью ИИ так велико. Автоматизация мать её...Dev1 писал(а): 13 янв 2026, 18:10strela писал(а): 12 янв 2026, 21:05 Утилита не знает где будет параметр а где вход, а ИИ легко определит взглянув на библиотеку. Я это уже проверял, у ИИ хорошо развит анализ кода. Остается только согласовать что будет параметром а что входом, ну и какие выходы нужны. А вот упаковка в файл .ubi тяжеловат для ИИ особенно в чате. На локалке конечно можно обучить скормив сотни блоков для обучения.ЗАчем такие извращения, напишите ИИ что вы хотите и получите результат в коде. Заливай и пользуйся. Что то добавить, напишите и вам добавят в код что надо. Проблема то...strela писал(а): 13 янв 2026, 15:52 Очень просто, с помощью спец.промта которй я сейчас разрабатываю с помощью того же ИИ. это будет промт указывающий изучить, проанализировать библиотеку или дирректорию с ней и вычленить весь функционал. Далее по правилам редактора пользовательских блоков (которые уже созданы) ИИ сгенерирует семантическую структуру блока и преобразует в файл для локального генератора на основе срипта или утилиты.![]()
ino2ubi - утилита автоматического преобразования кода в пользовательский блок
-
strela
- Рядовой
- Сообщения: 42
- Зарегистрирован: 24 окт 2025, 21:25
- Имя: стрела
- Благодарил (а): 6 раз
- Поблагодарили: 6 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
- Phazz
- Полковник
- Сообщения: 3514
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 377 раз
- Поблагодарили: 261 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Нашел ошибку, исправлюSergeyShikal писал(а): 13 янв 2026, 18:54 Здравствуйте, изучаю по маленьку создание ПБ из кодов, при загрузке sketch_jan13a.ino через ардуино иде компилиреется, после создания ПБ через программу (выбрал парсить код и сгенерировать блок ) Custom Block111.ubi компиляция не проходит.
-
cfitymrf
- Сержант
- Сообщения: 110
- Зарегистрирован: 06 сен 2021, 07:45
- Имя: иван
- Благодарил (а): 8 раз
- Поблагодарили: 5 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
может не в тему , сейчас только сделал себе блок энкодера для F411 в ИИ гугла , он знает что такое FLProg и пишет код для секций , я даже ему скетч не давал.
- Phazz
- Полковник
- Сообщения: 3514
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 377 раз
- Поблагодарили: 261 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
покажите как это выглядитcfitymrf писал(а): 14 янв 2026, 13:25 может не в тему , сейчас только сделал себе блок энкодера для F411 в ИИ гугла , он знает что такое FLProg и пишет код для секций , я даже ему скетч не давал.
- Dev1
- Майор
- Сообщения: 1069
- Зарегистрирован: 12 июл 2016, 18:04
- Откуда: Гондурас
- Благодарил (а): 4 раза
- Поблагодарили: 21 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Не зря Анатолий скармливал ИИ блоки. Все таки чему то научилсяcfitymrf писал(а): 14 янв 2026, 13:25 может не в тему , сейчас только сделал себе блок энкодера для F411 в ИИ гугла , он знает что такое FLProg и пишет код для секций , я даже ему скетч не давал.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x 
-
cfitymrf
- Сержант
- Сообщения: 110
- Зарегистрирован: 06 сен 2021, 07:45
- Имя: иван
- Благодарил (а): 8 раз
- Поблагодарили: 5 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
покажите как это выглядит
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
vitalik9
- Рядовой
- Сообщения: 52
- Зарегистрирован: 22 авг 2021, 12:08
- Имя: Виталий
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Пробовал создать блок из скетча после создания пользовательского блока и проверке в 8,2,3 в ide куча ошибок. Ктото пробовал эту программу?
- Phazz
- Полковник
- Сообщения: 3514
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 377 раз
- Поблагодарили: 261 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Она еще в процессе доработки. А какие ошибки у вас и образец кода дайте пожалуйста.vitalik9 писал(а): 25 янв 2026, 19:43 Пробовал создать блок из скетча после создания пользовательского блока и проверке в 8,2,3 в ide куча ошибок. Ктото пробовал эту программу?
-
vitalik9
- Рядовой
- Сообщения: 52
- Зарегистрирован: 22 авг 2021, 12:08
- Имя: Виталий
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
вот ошибки в ide
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino: In function 'void setup()':
pr3:41:3: error: 'WiFi' was not declared in this scope
WiFi.mode(WIFI_STA);
^~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:41:3: note: suggested alternative: 'Wire'
WiFi.mode(WIFI_STA);
^~~~
Wire
pr3:41:13: error: 'WIFI_STA' was not declared in this scope
WiFi.mode(WIFI_STA);
^~~~~~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:41:13: note: suggested alternative: 'WIFI_IF_STA'
WiFi.mode(WIFI_STA);
^~~~~~~~
WIFI_IF_STA
pr3:42:14: error: 'WIFI_SSID' was not declared in this scope
WiFi.begin(WIFI_SSID, WIFI_PASS);
^~~~~~~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:42:14: note: suggested alternative: 'MIP_SSIP'
WiFi.begin(WIFI_SSID, WIFI_PASS);
^~~~~~~~~
MIP_SSIP
pr3:42:25: error: 'WIFI_PASS' was not declared in this scope
WiFi.begin(WIFI_SSID, WIFI_PASS);
^~~~~~~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:42:25: note: suggested alternative: 'WIFI_EVENT'
WiFi.begin(WIFI_SSID, WIFI_PASS);
^~~~~~~~~
WIFI_EVENT
pr3:46:27: error: 'WL_CONNECTED' was not declared in this scope
while (WiFi.status() != WL_CONNECTED && (millis() - t0) < 20000) {
^~~~~~~~~~~~
pr3:52:24: error: 'WL_CONNECTED' was not declared in this scope
if (WiFi.status() == WL_CONNECTED) {
^~~~~~~~~~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino: In function 'void loop()':
pr3:99:7: error: 'WiFi' was not declared in this scope
if (WiFi.status() != WL_CONNECTED) {
^~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:99:7: note: suggested alternative: 'Wire'
if (WiFi.status() != WL_CONNECTED) {
^~~~
Wire
pr3:99:24: error: 'WL_CONNECTED' was not declared in this scope
if (WiFi.status() != WL_CONNECTED) {
^~~~~~~~~~~~
pr3:115:3: error: 'HTTPClient' was not declared in this scope
HTTPClient http;
^~~~~~~~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:115:3: note: suggested alternative: 'DNSClient'
HTTPClient http;
^~~~~~~~~~
DNSClient
pr3:116:3: error: 'http' was not declared in this scope
http.setTimeout(15000);
^~~~
pr3:137:3: error: 'StaticJsonDocument' was not declared in this scope
StaticJsonDocument<2048> doc;
^~~~~~~~~~~~~~~~~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:137:3: note: suggested alternative: 'StaticQueue_t'
StaticJsonDocument<2048> doc;
^~~~~~~~~~~~~~~~~~
StaticQueue_t
pr3:137:28: error: 'doc' was not declared in this scope
StaticJsonDocument<2048> doc;
^~~
pr3:138:3: error: 'DeserializationError' was not declared in this scope
DeserializationError err = deserializeJson(doc, body);
^~~~~~~~~~~~~~~~~~~~
pr3:139:7: error: 'err' was not declared in this scope
if (err) {
^~~
C:\Users\Iulia\AppData\Local\Temp\flprog\pr3\pr3.ino:139:7: note: suggested alternative: 'erf'
if (err) {
^~~
erf
pr3:145:3: error: 'JsonObject' was not declared in this scope
JsonObject cur = doc["current"];
^~~~~~~~~~
pr3:146:7: error: 'cur' was not declared in this scope
if (cur.isNull() ||
^~~
pr3:155:14: error: 'cur' was not declared in this scope
float T = cur["temperature_2m"].as<float>();
^~~
pr3:155:39: error: expected primary-expression before 'float'
float T = cur["temperature_2m"].as<float>();
^~~~~
pr3:156:45: error: expected primary-expression before 'float'
float RH = cur["relative_humidity_2m"].as<float>();
^~~~~
pr3:157:37: error: expected primary-expression before 'float'
float DP = cur["dew_point_2m"].as<float>();
^~~~~
pr3:158:73: error: expected primary-expression before 'float'
float PR = cur.containsKey("precipitation") ? cur["precipitation"].as<float>() : 0.0f;
^~~~~
pr3:158:73: error: expected ':' before 'float'
float PR = cur.containsKey("precipitation") ? cur["precipitation"].as<float>() : 0.0f;
^~~~~
:
pr3:158:73: error: expected primary-expression before 'float'
float PR = cur.containsKey("precipitation") ? cur["precipitation"].as<float>() : 0.0f;
^~~~~
exit status 1
'WiFi' was not declared in this scope
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
Dmabst
- Сержант
- Сообщения: 198
- Зарегистрирован: 08 дек 2018, 16:49
- Имя: Дмитрий
- Благодарил (а): 6 раз
- Поблагодарили: 6 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
vitalik9, а вы "скормите" эти ошибки хотя бы DeepSeek.
- Phazz
- Полковник
- Сообщения: 3514
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 377 раз
- Поблагодарили: 261 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Скачать
V1.2
исправление ошибок
добавлена справка и автоматическое назначение роли переменной по комментариям //in - вход //out - выход //par - параметр.
Комментарий в начале скетча добавляется в описание блока.
V1.2
исправление ошибок
добавлена справка и автоматическое назначение роли переменной по комментариям //in - вход //out - выход //par - параметр.
Комментарий в начале скетча добавляется в описание блока.
-
vitalik9
- Рядовой
- Сообщения: 52
- Зарегистрирован: 22 авг 2021, 12:08
- Имя: Виталий
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
#include <math.h>
// Глобальные переменные-входы (сюда подавайте данные)
float inputTemperature = 25.5;
float inputHumidity = 60.0;
float resultDewPoint = 0.0;
/**
* Расчет точки росы по формуле Магнуса-Тетенса
* t - температура в градусах Цельсия
* rh - относительная влажность в % (0-100)
*/
double calculateDewPoint(double t, double rh) {
// Константы для диапазона температур от 0 до 50°C
const double a = 17.27;
const double b = 237.7;
// Промежуточное значение гамма
double gamma = ((a * t) / (b + t)) + log(rh / 100.0);
// Итоговая формула
double dp = (b * gamma) / (a - gamma);
return dp;
}
void setup() {
Serial.begin(115200);
Serial.println("--- Калькулятор точки росы готов ---");
}
void loop() {
// 1. СЮДА ДОБАВЬТЕ ВАШ СПОСОБ ПОЛУЧЕНИЯ ДАННЫХ (Serial, ADC, BLE и т.д.)
// Пример: inputTemperature = myCustomSource.read();
// 2. ВЫЧИСЛЕНИЕ
// Проверка на корректность влажности во избежание ошибки log(0)
if (inputHumidity > 0.1) {
resultDewPoint = calculateDewPoint(inputTemperature, inputHumidity);
} else {
resultDewPoint = -99.9; // Ошибка: слишком сухой воздух
}
// 3. ВЫХОД (мониторинг или управление пинами)
Serial.print("Вход T: "); Serial.print(inputTemperature);
Serial.print(" | Вход H: "); Serial.print(inputHumidity);
Serial.print(" | Точка росы: "); Serial.println(resultDewPoint);
// Пример выхода: зажечь светодиод, если точка росы выше 15 градусов
if (resultDewPoint > 15.0) {
// digitalWrite(2, HIGH);
}
delay(1000);
}
блок скомпилировался без ошибок
единственное на выходе появилась строка коментарий 873f6510-a96f-4157-a272-dd1b6942c2a6
удалил коментарий в редакторе flprog
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3514
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 377 раз
- Поблагодарили: 261 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Скиньте скетч. Посмотрю откуда этот комментарий прилип
- Ilich
- Рядовой
- Сообщения: 55
- Зарегистрирован: 12 авг 2024, 11:56
- Имя: Игорь
- Благодарил (а): 16 раз
- Поблагодарили: 27 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Здравствуйте, Анатолий!
Еще раз благодарю Вас за столь полезную и нужную утилиту!
Но в процессе тестирования выявились некоторые нюансы -
1. Под Вин-7 программа не запускается, постоянно требует системные библиотеки. Поставишь одну, требует следующую и т.д.
под Вин-10 запускается и работает.
2. Созданный с помощью данной утилиты блок в версии FlProg 7.3.8 обрушивает программу (в принципе понятно, несовместим).
В 9.6.4 нормально.
3. Для тестирования был выбран скетч TFT_Clock из папки примеров библиотеки TFT_eSPI. Выяснилось следующее - пробный пустой проект с этим блоком не компилируется, множественные сообщения об ошибках. Если сброшена галочка "Разрешено использовать один раз" компиляция обрывается с подобной ошибкой - include/SPI.h>_145411080_: Invalid argument
Ошибка: Тот же скетч, загруженный напрямую в IDE компилируется и исполняется нормально.
P.S. Насчет определения библиотек понял - их нельзя размещать в блоках, которые могут использоваться неоднократно.
Еще раз благодарю Вас за столь полезную и нужную утилиту!
Но в процессе тестирования выявились некоторые нюансы -
1. Под Вин-7 программа не запускается, постоянно требует системные библиотеки. Поставишь одну, требует следующую и т.д.
под Вин-10 запускается и работает.
2. Созданный с помощью данной утилиты блок в версии FlProg 7.3.8 обрушивает программу (в принципе понятно, несовместим).
В 9.6.4 нормально.
3. Для тестирования был выбран скетч TFT_Clock из папки примеров библиотеки TFT_eSPI. Выяснилось следующее - пробный пустой проект с этим блоком не компилируется, множественные сообщения об ошибках. Если сброшена галочка "Разрешено использовать один раз" компиляция обрывается с подобной ошибкой - include/SPI.h>_145411080_: Invalid argument
Ошибка: Тот же скетч, загруженный напрямую в IDE компилируется и исполняется нормально.
P.S. Насчет определения библиотек понял - их нельзя размещать в блоках, которые могут использоваться неоднократно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3514
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 377 раз
- Поблагодарили: 261 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Понял где ошибка, в следующей версии исправлюIlich писал(а): 31 янв 2026, 18:38 Тот же скетч, загруженный напрямую в IDE компилируется и исполняется нормально.
P.S. Насчет определения библиотек понял - их нельзя размещать в блоках, которые могут использоваться неоднократно.
-
AndreyR
- Рядовой
- Сообщения: 13
- Зарегистрирован: 04 фев 2022, 20:05
- Имя: Андрей
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
Встала задача сделать блок для емкостной клавы MKM V3.0 работает по I2c в отличии от псевдо TTP 229
Взял Perplexity скормил ему библиотеку и указал на FlProg все сделал за минуту при чем он сам расписал отдельно все пункты
Declare Setup Loop
Взял Perplexity скормил ему библиотеку и указал на FlProg все сделал за минуту при чем он сам расписал отдельно все пункты
Declare Setup Loop
-
vitalik9
- Рядовой
- Сообщения: 52
- Зарегистрирован: 22 авг 2021, 12:08
- Имя: Виталий
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: ino2ubi - утилита автоматического преобразования кода в пользовательский блок
скачивая архив v1.5 в архиве нет файла exe
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость