На самом деле я считаю что сделать автоматическое заполнение индикаторов можно. Но очень сложно. Тебе нужно взять reference твоей основной VI, затем из неё вытащить массив reference всех индикаторов (при этом в массив они объединиться могут только как однотипные reference на Gobj, кажется). Помимо этого нужно будет поискать индикаторы в Tab Control, в кластерах, и так далее на всю глубину возможную (вроде есть пример стандартный который это делает).
Затем заводишь этот массив reference в цикл и начинаешь анализировать имена индикаторов и их типы. Если имя совпало с текущим именем из конфига - вводишь Reference и Data в Case (селектор которого - значения типа). Дальше записываешь твои данные из конфига в Property Node "Value" твоего индикатора, предварительно подогнав все типы под нужные индивидуально для каждого кейса. Кейсов нужно будет сделать столько, сколько у тебя типов индикаторов.
Хранение данных о конфигурации программы
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Хранение данных о конфигурации программы
Последний раз редактировалось FireFly 04 фев 2010, 18:34, всего редактировалось 2 раза.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Хранение данных о конфигурации программы
Попробуй это. Я написал, но не проверял )))
- Вложения
-
- Пример.vi
- (12.54 КБ) 141 скачивание
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Хранение данных о конфигурации программы
То, что здесь описано я уже делал. Нужно поискать по форуму примерно о многоязычном интерфейсе.FireFly писал(а):На самом деле я считаю что сделать автоматическое заполнение индикаторов можно. Но очень сложно. Тебе нужно взять reference твоей основной VI, затем из неё вытащить массив reference всех индикаторов (при этом в массив они объединиться могут только как однотипные reference на Gobj, кажется). Помимо этого нужно будет поискать индикаторы в Tab Control, в кластерах, и так далее на всю глубину возможную (вроде есть пример стандартный который это делает).
Затем заводишь этот массив reference в цикл и начинаешь анализировать имена индикаторов и их типы. Если имя совпало с текущим именем из конфига - вводишь Reference и Data в Case селектор которого значения типа. Дальше записываешь твои данные из конфига в Property Node "Value" твоего индикатора, предварительно подогнав все типы под нужные индивидуально для каждого кейса. Кейсов нужно будет сделать столько, сколько у тебя типов индикаторов.
- Михаил23
- adviser
- Сообщения: 219
- Зарегистрирован: 24 ноя 2008, 17:58
- Версия LabVIEW: 2009
- Откуда: Москва
Re: Хранение данных о конфигурации программы
А можно все примеры сохранить в LV8.6FireFly писал(а):Попробуй это. Я написал, но не проверял )))
В общем смотри - тебе всё равно из этой SubVI тащить кучу проводов до каждого индикатора. У каждого индикатора есть имя которое ты знаешь, и его тип, так что Case со входом "имя" тебе всё равно придется заполнить самому соответствиями "тип". Автоматически это сделать не получится.Вложения
Read data file.vi
(17 ) Скачиваний: 2
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Хранение данных о конфигурации программы
Тема очень интересная. Выскажусь:
xml, и стандартный файл конфигурации с секциями - неплохо, но нужно многое писать вручную (как в приведённом примере). Главное достоинство, что так записанную конфигурацию можно потом править в любом текстовом редакторе.
А хотите дёшево и сердито? В OpenG есть GetAllControlValues {Variant}. На выходе: массив кластеров. Пишем его прямо в бинарный файл.
При чтении читаем по одному кластеру из этого бинарного файла и используем OpenG: SetControlValue {Variant}. И пусть /OpenG сами разбираются с преобразованиями типов в/из variant, сериализацией кластера из stirng и variant ...
Это хорошо, но не всегда хочется ставить ДБ сервер одновременно с прогой + привязывать свою прогу к какому-то виду БД.FireFly писал(а):Database тулкит.
xml, и стандартный файл конфигурации с секциями - неплохо, но нужно многое писать вручную (как в приведённом примере). Главное достоинство, что так записанную конфигурацию можно потом править в любом текстовом редакторе.
А хотите дёшево и сердито? В OpenG есть GetAllControlValues {Variant}. На выходе: массив кластеров. Пишем его прямо в бинарный файл.
При чтении читаем по одному кластеру из этого бинарного файла и используем OpenG: SetControlValue {Variant}. И пусть /OpenG сами разбираются с преобразованиями типов в/из variant, сериализацией кластера из stirng и variant ...
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Хранение данных о конфигурации программы
Я не предлагал подключать базу данных :) Я просто привел пример VI у которой тип выхода зависит от входа.mzu2006 писал(а):Тема очень интересная. Выскажусь:Это хорошо, но не всегда хочется ставить ДБ сервер одновременно с прогой + привязывать свою прогу к какому-то виду БД.FireFly писал(а):Database тулкит.
Михаил23 писал(а):А где можно найти DB Tools Fetch Element Data VI ?Шарх писал(а):В ходе работы программы такое изменение VI если не невозможно (Scripting вроде может помочь), то наверняка бесполезно. А вот в ходе написания блок-диаграммы такие VI очень даже удобны. Например DB Tools Fetch Element Data VI так работает. Какой тип подашь на вход-такой и получишь на выходе. Прям коннектор меняется.eg писал(а):Отвечу так: нужно заранее знать тип данных, иначе что с этими данными делать?
Вот :)FireFly писал(а):Database тулкит.
Приложил те же файлы, но для 8.6. Ещё раз повторюсь, что не уверен что это работает :). Но как тема для размышлений.
- Вложения
-
- Read data file.vi
- (19.15 КБ) 134 скачивания
-
- Пример.vi
- (8.3 КБ) 146 скачиваний
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение