Мне приснилась FLProg 9.0.0 (Функции)

Идея создания функций в FLProg

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

Мне приснилась FLProg 9.0.0 (Функции)

#1

Сообщение Dryundel » 20.09.2021{, 11:12}

support!
Сегодня мне приснилась FLProg 9.0.0 :smile171:
.
А если серьезно, вчера, когда я уже был готов отправиться в царство Морфея, мне пришла безумная идея.
На сколько она безумна, судить Вам.
Но я полночи не мог заснуть, шурупил как все это изложить.
.
А что если добавить в программу окно(вкладку) создания функций?
Скажем она могла бы располагаться и выдвигаться снизу.
В ней создаем ПБ функции со входами (параметрами) и выходами (Return)
Используем в ней любые доступные блоки.
Далее как обычный блок, вставляем функцию в прект и ...
.
Ну на этом как бы всё. :)
Наверное проще показать.
.
Вот картинка, как я это вижуПоказать
FLProg 9 0.jpg
.
Правда есть побочное явление.
ecoins, сразу же создаст FLP-RTOS. :D
Ну возможно это тоже будет интересно.

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

Мне приснилась FLProg 9.0.0 (Функции)

#2

Сообщение aidar_i » 20.09.2021{, 12:47}

Короновирус, штамп flp у Вас.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Мне приснилась FLProg 9.0.0 (Функции)

#3

Сообщение edyapd » 20.09.2021{, 13:13}

Dryundel писал(а):
20.09.2021{, 11:12}
А что если добавить в программу окно(вкладку) создания функций?
Подобное предложение у меня уже полгода как в мозгу сидит. Единственное, наверное, что меня останавливало это ваш ответ в духе "учи С++ и создавай ПБ. И не морочь голову автору программы".

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

Мне приснилась FLProg 9.0.0 (Функции)

#4

Сообщение Dryundel » 20.09.2021{, 13:31}

edyapd писал(а):
20.09.2021{, 13:13}
Единственное, наверное, что меня останавливало это ваш ответ в духе "учи С++ и создавай ПБ. И не морочь голову автору программы".
Ээээ... Чего то Вы передергиваете. Так я сказать не мог. :)
aidar_i писал(а):
20.09.2021{, 12:47}
Короновирус, штамп flp у Вас.
Считаете что я совсем больной, на всю голову? Очень может быть. Со стороны видней. :)
.
А если серьезно, вижу в этом перспективу.
1. Возможное сокращение размера скетча за счет упаковывания повторяющихся кусков кода в функцию.
2. Становится возможным воплощения подобия RTOS
3. Не плохой пример для понимания что же такое функция и как она работает.
.
В принципе ничего особо сложного не вижу в воплощении. Это же просто еще одна программа(клон) FLProg внутри той же FLProg.

com
Капитан
Сообщения: 831
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

Мне приснилась FLProg 9.0.0 (Функции)

#5

Сообщение com » 20.09.2021{, 15:01}

Вот буквально на той неделе узнал про существование dsp аудиопроцессоров фирмы analog devise, и что для их поограммирования есть программа практически родственник flprog, называется sigma studio. Окна блоки, принцип такой же, но есть и отличия. Например, оказывается можно загружать созданную программу в озу и(или) в пзу. То я не мог понять поначалу почему прошивка слетает. Примечательно то, что загрузка в озу идет всего пару секунд. Ну очень удобно, а еще если подать аудиосигнал на процессор, можно в режиме реального времени управлять им через компьютер. Вот. Если уважаемый Drundel видит функцию в flprog 9.0.0, то интересно было бы грузить скетчи флпрог, скажем во внешнюю еепром и тут же видеть результат. Ну скажем, в версии flprog 12 :yes:

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

Мне приснилась FLProg 9.0.0 (Функции)

#6

Сообщение Dryundel » 20.09.2021{, 16:00}

com писал(а):
20.09.2021{, 15:01}
интересно было бы грузить скетчи флпрог, скажем во внешнюю еепром и тут же видеть результат. Ну скажем, в версии flprog 12
Ура! Я не один безумен! :yahoo:

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

Мне приснилась FLProg 9.0.0 (Функции)

#7

Сообщение Naladchik » 21.09.2021{, 13:01}

Dryundel писал(а):
20.09.2021{, 11:12}
А что если добавить в программу окно(вкладку) создания функций?
Если я правильно помню, то создание пользовательского блока на FBD это уже есть создание функции.
Win10-64. FLProg Portable.
Изображение

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

Мне приснилась FLProg 9.0.0 (Функции)

#8

Сообщение Dryundel » 21.09.2021{, 13:23}

Naladchik писал(а):
21.09.2021{, 13:01}
Если я правильно помню, то создание пользовательского блока на FBD это уже есть создание функции.
Сейчас нет.
Создание блока, это всего лишь упаковка куска кода в блок. Скорей это с оговорками можно сравнить с маленькой библиотекой для FLProg. Хотя это сравнение ну очень натянуто.

Отправлено спустя 13 минут 11 секунд:
То что я предлагаю (Блок функции), вот это уже создание функции средствами FLProg и больше схоже с библиотекой. Ведь функция по сути подобна библиотеке находящейся в одном файле со скетчем. Обращение к ней происходит по мере необходимости и в ней может быть упакован многократно повторяющийся в скетче код. Соответственно и общий размер кода может быть уменьшен за счет того, что данный кусок кода прописывается всего лишь один раз в функции.
Наверное сложно объяснил. Ну уж как получилось. :)

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

Мне приснилась FLProg 9.0.0 (Функции)

#9

Сообщение Naladchik » 21.09.2021{, 15:40}

Dryundel писал(а):
21.09.2021{, 13:36}
Сейчас нет.
Создание блока, это всего лишь упаковка куска кода в блок.
Ничего подобного, упаковка куска кода в блок это создание блока на С.
При создании блока на FBD создается функция, только что это проверил. На LAD скорее всего аналогично, проверять нет времени.
Win10-64. FLProg Portable.
Изображение

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

Мне приснилась FLProg 9.0.0 (Функции)

#10

Сообщение Dryundel » 21.09.2021{, 16:09}

Naladchik писал(а):
21.09.2021{, 15:40}
При создании блока на FBD создается функция
Мда. Действительно в FBD создается функция. Не знал, ибо не пользовался. :)

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

Мне приснилась FLProg 9.0.0 (Функции)

#11

Сообщение Sancho » 21.09.2021{, 16:46}

Dryundel писал(а):
21.09.2021{, 13:36}
Создание блока, это всего лишь упаковка куска кода в блок.
Создание блока без отметки "Использовать в проекте один раз" - это создание функционального блока. Может быть несколько в проекте. Каждый экземпляр содержит свой набор переменных.
Функция - блок с несохраняемыми переменными( возможны варианты). Один возвращаемый результат.
В флп возможно использование функций, опыт есть. В старом редакторе ПБ большой расход памяти на входные переменные. В новом, не пользовал, возможно намного эффективнее.
Создаёте ФБ одноразовый, в котором только описываете функцию. Создаёте многоразовый, используете раннее объявленную функцию.
Тестировалось в режиме Code, FBD не пробовал.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

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

Мне приснилась FLProg 9.0.0 (Функции)

#12

Сообщение Dryundel » 21.09.2021{, 17:13}

Naladchik писал(а):
21.09.2021{, 15:40}
При создании блока на FBD создается функция, только что это проверил.
Дык это-ж круто!
.
Теоретически:
Создаем блок на С++, пехаем его в блок FBD и получаем функцию.
Минусы в том, что:
1. В реальности ПБ в блок FBD не засунуть.
2. Создаются лишние переменные. Хотя переменные которые внутри блока FBD становятся локальными и память уже не занимают.
3. Отладить что то в коде становится весьма проблематично ибо там накладывается петрушка со структурами.
Это только то, что с первого взгляда обнаружил.
А вообще есть над чем подумать. Спасибо.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

Мне приснилась FLProg 9.0.0 (Функции)

#13

Сообщение KulibinOrsk » 21.09.2021{, 17:21}

Dryundel, Ваше предложение старо как мир - поэтому предлагать нужно СРАЗУ ВНЕДРЯТЬ ЯЗЫК С++
автор уже 3 года модернизирует...модернизирует программу и все не про-модернизирует ...
а пользователей все меньше и меньше....
писал и еще раз напишу (модер может удалить потом): нужно сделать сначала СКАДУ и довести основы.
А уж потом дерзать и углубляться!

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

Мне приснилась FLProg 9.0.0 (Функции)

#14

Сообщение Dryundel » 21.09.2021{, 17:22}

Sancho писал(а):
21.09.2021{, 16:46}
Один возвращаемый результат.
Почему один возвращаемый результат?
В блоке FBD как раз выполнен обход ограничения возврата одного результата функцией. Возвращается структура, а потом она разбирается на результирующие составляющие.
Все-таки Сергей крут! :)

Отправлено спустя 3 минуты :
KulibinOrsk писал(а):
21.09.2021{, 17:21}
Dryundel, Ваше предложение старо как мир
Не встречал на форуме. Мог и пропустить. Может ссылочку дадите где посмотреть подобное предложение?

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

Мне приснилась FLProg 9.0.0 (Функции)

#15

Сообщение Sancho » 21.09.2021{, 17:32}

Dryundel писал(а):
21.09.2021{, 17:25}
Почему один возвращаемый результат?
В блоке FBD как раз выполнен обход ограничения возврата одного результата функцией. Возвращается структура, а потом она разбирается на результирующие составляющие.
Структура - это тип данных. Результат работы функции - один возвращаемый результат, может ничего не возвращать, тип данных может быть любой.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

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

Мне приснилась FLProg 9.0.0 (Функции)

#16

Сообщение Dryundel » 21.09.2021{, 17:40}

Sancho писал(а):
21.09.2021{, 16:46}
В старом редакторе ПБ большой расход памяти на входные переменные. В новом, не пользовал, возможно намного эффективнее.
В новом входные переменные не создаются.
Зря не пользовал. Очень гибко и удобно, когда вникнешь.
Sancho писал(а):
21.09.2021{, 17:32}
Структура - это тип данных. Результат работы функции - один возвращаемый результат, может ничего не возвращать, тип данных может быть любой.
Именно! И когда возвращается структура, то в ней может быть заложена хоть сотня возвращаемых переменных, а это и есть обход догмы что функция в С++ может возвращать только один результат.

Отправлено спустя 1 минуту 53 секунды:
Т.е. структура сама по себе может создаваться(набиваться результатами) внутри функции.

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

Мне приснилась FLProg 9.0.0 (Функции)

#17

Сообщение Sancho » 21.09.2021{, 17:57}

Dryundel писал(а):
21.09.2021{, 17:42}
И когда возвращается структура, то в ней может быть заложена хоть сотня возвращаемых переменных, а это и есть обход догмы что функция в С++ может возвращать только один результат.
Ещё раз - структура это тип данных. Может быть аргументом, может быть результатом.
Функция может ничего не вернуть, а сделать много чего - если передать функции указатель на массив в качестве места входа и/или выхода данных. Но это уже не особо флп, хотя массивы flprog для работы модбаса отлично подходят, проверенно лично.

Отправлено спустя 1 минуту 25 секунд:
Уходим от сути вопроса.

Отправлено спустя 36 секунд:
Dryundel писал(а):
21.09.2021{, 17:42}
В новом входные переменные не создаются.
Посему, батенька, с Вас тест создания функции.

Вот так приходилось делать раньше. Речь о расходе переменных, входных и выходных.
Оставлено только по теме. Верхний основной, остальные используют функцию.
Макет 01.flp
(351.8 КБ) 34 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

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

Мне приснилась FLProg 9.0.0 (Функции)

#18

Сообщение Dryundel » 21.09.2021{, 18:01}

Sancho писал(а):
21.09.2021{, 17:59}
Посему, батенька, с Вас тест.
Тест чего?
С радостью сделаю. Только не понял о чем речь.

Отправлено спустя 1 минуту 8 секунд:
Может тост?....
А да, забыл. Вы же сударь не пьете. :)

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

Мне приснилась FLProg 9.0.0 (Функции)

#19

Сообщение Sancho » 21.09.2021{, 18:04}

Обновил пост выше
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

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

Мне приснилась FLProg 9.0.0 (Функции)

#20

Сообщение Dryundel » 21.09.2021{, 18:30}

Sancho писал(а):
21.09.2021{, 18:04}
Обновил пост выше
Ну и в чем должен заключаться тест?
Перенести это в новый редактор?
Так я сразу скажу - В новом редакторе не надо ставить галку что бы не добавлялись уникальные номера к переменным. Там наоборот если требуется добавляешь если нет, то и в коде она будет "голой", такой как прописал в ПБ.
А входных переменных не добавится, т.к. входы блоков сразу используют ту что на входе, а не приравнивают входную к своей входной ибо ее просто нет.
Если тупо переписать все что в этих блоках то будет так же работать, но основной блок можно будет использовать один раз в проекте так же как и в твоем случае. В любом случае для возможности пользования функцией из других блоков требуется оставлять переменные (функции) без идентификаторов. Иначе не обратишься к ним. В твоем варианте это осуществлено с помощью галки "Использовать один раз". В новом редакторе оставлен простор для полета мысли.

Ответить

Вернуться в «Пожелания»