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

Запуск с предыдущими значениями в полях

Добавлено: 09 апр 2020, 16:33
Select
Всем привет, пытаюсь задать полям в свойствах при перезапуске :vi: отображение предыдущих значений.
Сразу оговорюсь, что речь не идет о Make Current value default т.к. значения вводятся уже в запущенном режиме.
Возможно есть функция авто сохранения введенных значений с последующем их отображением при повторном запуске? :dntknw:

Re: Запуск с предыдущими значениями в полях

Добавлено: 09 апр 2020, 16:58
ladik

Re: Запуск с предыдущими значениями в полях

Добавлено: 09 апр 2020, 20:57
dadreamer

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 01:10
Select
Благодарю за ссылки, я их видал. Думал, возможно здесь у кого нибудь есть опыт программно обойти эту проблему простыми инструкциями, без необходимости в сторонних тулкитах. Примеры, которые там приведены больше подойдут для небольшого массива, но в моем случае массив около выводимых на переднюю панель 300 значений :think:
Сейчас я такое количество сохраняю в текстовых файлах, но это не так чтоб удобно каждый раз при запуске, если данные большую часть работы с :vi: не меняются, обращаться к таким файлам.
Я хочу замутить так, и думаю это будут не так чтоб очень сложно на уровне такого чайника как я, чтоб был флажок, который по умолчанию при запуске запускал процедуру обращения к этому файлу, а в случае необходимости была бы возможность здесь же с кнопки выполнить обращение к другому файлу.
Я такую процедуру построил, но проблема в том, что на такой флажок нужно построить процедуру, которая бы выполнялась 1 раз при запуске.
Буду пробовать, это статистически вполне востребованная во многих проектах функция, но почему-то в :labview: она явно проигнорирована и нужно за них это допиливать.
Предлагаю всем желающим в условиях самоизоляции поупражняться в своем мастерстве. :drink:

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 03:12
Select
Набросал вариант, с сохранением и считыванием в текстовый файл

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 10:45
ladik
Использование переменных в VI с большим количеством контролов будет затруднительно. На мой взгляд, более гибкий вариант для этой задачи -- использовать InvokeNode. Немного подправил Ваш пример.

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 12:51
Kosist
Select, Вы опять за свое - за изобретение велосипеда? Люди стараются, создают тулкиты, тратят свое личное (очень часто даже неоплачиваемое) время для того, чтобы именно вот в таких вот случаях кто-то другой мог взять, установить этот тулкит, и с его помощью решить свою задачу. Время - деньги, и если кто-то уже сделал решение которое работает, его нужно использовать. dadreamer сбросил отличную ссылку на OpenG тулкит. Одна виайка на запись, вторая - на чтение. Куда проще-то? Вы ведь пишете, цитирую:
"Я хочу замутить так, и думаю это будут не так чтоб очень сложно на уровне такого чайника как я, чтоб был флажок, который по умолчанию при запуске запускал процедуру обращения к этому файлу, а в случае необходимости была бы возможность здесь же с кнопки выполнить обращение к другому файлу."
Вам дают готовое решение, а Вы начинаете изобретать велосипед. Без обид, ничего личного - но зачем? А если хотите решить вопрос сами - то зачем здесь спрашивать?

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 15:25
Select
ladik,
С нодами мне понравилось, но я их не очень хорошо знаю но непременно возьму на вооружение.
Ваш пример полезный, но проблему не решает, после перезапуска мне все же нужно вручную ссылаться на конфигурацию.
Придумал все же вариант с автоматическим вбросом ранее сохраненной конфигурации, что в принципе рулит.
Kosist,
Почему не люблю сторонние тулкиты, по мере обновлений :labview: некоторые модули так же меняются. Был очень гиморойный опыт когда по этой причине возник у клиента после апгреита :labview: баг, пришлось все там перелапачивать чтоб исправить ситуацию.
В.у. разработчик строит свои тулкиты на :labview: 2009, да и не такая это сложная оказалась задача, чтоб брать тулсы со стороны.

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 18:31
Kosist
Select, серьезно? На опыте с одним тулкитом теперь отметать все остальные :dntknw:? Это как в поговорке, "Обжегся на молоке, дует и на воду"...
Версия :labview: вообще ни при чем - какая разница, если работает? Вот Вы откройте исходники тулкита, посмотрите как это делают другие люди - найдете какие-то идеи, выучите новые вещи. Полезно ведь.
Я бы советовал Вам развиваться в сторону более правильных решений и подходов. Паттерны программирования ведь не дураки придумали. Вот эти Flat Sequence Structure ненужные заменяются стейт-машиной, обрабатывание кнопок в цикле вот так - сомнительный подход. Вы добавите еще один контрол - и читание/запись нужно обновлять на двух местах. Если первая кейс-структура будет в состянии False, то вторая не получит путь к файлу. И т.д., и т.п. А Вы спрашиваете советы, люди Вам пытаются помочь - но все равно делаете свое решение, далекое от правильного.
Вам ведь для решения ladikа достаточно один проводок переподключить - а Вы пишете что оно не подходит. Удалить кнопку Read, и вместо нее подключить кнопку Play... А ведь Ваш изначальный пример имел кнопку Read - так это значит что Вы неправильно вначале описываете задачу/даете неправильные входные данные; а потом говорите что предложенные решения не решают Вашу проблему :dntknw: .

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 20:42
IvanLis
Select писал(а):Буду пробовать, это статистически вполне востребованная во многих проектах функция, но почему-то в :labview: она явно проигнорирована и нужно за них это допиливать.
Предлагаю всем желающим в условиях самоизоляции поупражняться в своем мастерстве. :drink:
А можно пару ссылок на Ваши проекты, очень интересно посмотреть их функционал и проработанность деталей?
Select писал(а):Придумал все же вариант с автоматическим вбросом ранее сохраненной конфигурации, что в принципе рулит.
А Вас не смущает, что пишите Вы DBL, а читаете I32, при этом игнорируя дробную часть. И как Вы будите выходить из ситуации, когда необходимо сохранить состояния элементов с типом String или Boolean, я не говорю уже о всеми любимых и используемых, массивах, кластерах, массивов кластеров содержащих массивы :crazy:

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 21:47
Select
Kosist,
...Удалить кнопку Read, и вместо нее подключить кнопку Play... А ведь Ваш изначальный пример имел кнопку Read - так это значит что Вы неправильно вначале описываете задачу/даете неправильные входные данные; а потом говорите что предложенные решения не решают Вашу проблему
Этот проводок додумал, не претендуя на чье-либо авторство, да и некоторые свойства пришлось подправлять по методу обращения к источнику.
По поводу нечеткой формулировки ... изначальной задачи, никто ничего здесь не пытался уточнять, я решил что формулировка понятна. Собственно она по смыслу свою суть не меняет, если кто меня неверно истолковал, каюсь.
Еще раз, по рекомендуемым тулсам я несколько раз перечитывал авторские туториалы, по свободе покурю их, но меня смущает версия на которой они строились :labview: Далеко ходить не нужно. Откройте модуль Write To Spreadsheet File.vi от :labview: 14 в :labview: 18 и вы увидите ситуацию, есть и другие подобные грабли.
Относительно Вашего примера с Read Panel from INI и Write Panel to INI красиво и не громоздко, перезапись в config.ini по умолчанию текущего состояния всей панели в запущенном состоянии, стоит его объединить с методом ladikа

IvanLis,
DBL формат не смущает, если Вы по моим прошлым постам, там со стрингами все иначе.
По проектам, что конкретно интересует? У меня периодически возникают вопросы, мой стиль далек от хрестоматийного, опыт приходит по мере решения проблем. Многие вещи наследую от проекта к проекту. Если я здесь начну разворачивать все чем занимался или занимаюсь, я погрязну в судах, т.к. подписываюсь о неразглашении.

IvanLis,
20,000 10,000 10,000 20,000 10,000 20,000 10,000 20,000 1,000 1,000 1,000 1,000

Re: Запуск с предыдущими значениями в полях

Добавлено: 10 апр 2020, 22:28
IvanLis
Select писал(а):Если я здесь начну разворачивать все чем занимался или занимаюсь, я погрязну в судах, т.к. подписываюсь о неразглашении.
Я понимаю, что часть ПО показать нет возможности, но речь шла о паре ссылок, я думаю у каждого найдется один два проекта, не обремененные соглашениями. Тем более исходники и не требуются, достаточно видео и скринов, Вы же должны иметь некоторое портфолио для создания имиджа при контакте с потенциальными заказчиками.

Re: Запуск с предыдущими значениями в полях

Добавлено: 11 апр 2020, 01:28
Select
IvanLis,
Немного разгружусь выставлю что найду.

Re: Запуск с предыдущими значениями в полях

Добавлено: 11 апр 2020, 20:41
Kosist
Select писал(а):Буду пробовать, это статистически вполне востребованная во многих проектах функция, но почему-то в :labview: она явно проигнорирована и нужно за них это допиливать.
Как-то сразу я эту фразу пропустил...
:labview: предоставляет все средства для реализации требуемого функционала. Считать и записать данные с контролов можно; сделать запись в разные типы файлов - тоже. Ну а остальное - зависит от бизнес-логики. Как :labview: разработчики, по-вашему, должны предвидеть что именно Вам понадобится? Какие типы данных будете писать, в какой точке исполнения будете считывать данные, и сохранять? Так что ничего не проигнорированно - просто это уже бизнес-логика, и :labview: само по себе ее не должно содержать.

Re: Запуск с предыдущими значениями в полях

Добавлено: 12 апр 2020, 08:15
Select
Kosist,
По части именно этой функции я не согласен, т.к. она присутствует во многих ядрах популярного софта и по усмотрению юзеров подключается в настройках.
ladik, очень шикарно, я в восторге и еще раз благодарю. Благодаря такому решению моя БД избавилась от квадратных метров кода, и в целом :vi: обрел универсальную вкуснятину.
Я все что нужно подправил, дизаблы перевел в енаблы, теперь я сохраняю не только переменные, но и все состояния контролов одним пинком, даже USB номера портов сохраняются, уж на что я никак не надеялся. Одним махом все вопросы отпали.
Вместе с тем я могу создавать дополнительные конфигурации в каждом конкретном случае. :drink: