Страница 1 из 2

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

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

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

Добавлено: 20 сен 2021, 12:47
aidar_i
Короновирус, штамп flp у Вас.

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

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

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

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

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

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

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

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

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

Добавлено: 21 сен 2021, 13:01
Naladchik
Dryundel писал(а): 20 сен 2021, 11:12 А что если добавить в программу окно(вкладку) создания функций?
Если я правильно помню, то создание пользовательского блока на FBD это уже есть создание функции.

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

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

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

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

Добавлено: 21 сен 2021, 15:40
Naladchik
Dryundel писал(а): 21 сен 2021, 13:36 Сейчас нет.
Создание блока, это всего лишь упаковка куска кода в блок.
Ничего подобного, упаковка куска кода в блок это создание блока на С.
При создании блока на FBD создается функция, только что это проверил. На LAD скорее всего аналогично, проверять нет времени.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вот так приходилось делать раньше. Речь о расходе переменных, входных и выходных.
Оставлено только по теме. Верхний основной, остальные используют функцию.
Макет 01.flp

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

Добавлено: 21 сен 2021, 18:03
Dryundel
Sancho писал(а): 21 сен 2021, 17:59 Посему, батенька, с Вас тест.
Тест чего?
С радостью сделаю. Только не понял о чем речь.

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

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

Добавлено: 21 сен 2021, 18:04
Sancho
Обновил пост выше

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

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