Хранение данных о конфигурации программы

Простейшие вопросы в области инженерной разработки
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Хранение данных о конфигурации программы

Сообщение FireFly »

На самом деле я считаю что сделать автоматическое заполнение индикаторов можно. Но очень сложно. Тебе нужно взять reference твоей основной VI, затем из неё вытащить массив reference всех индикаторов (при этом в массив они объединиться могут только как однотипные reference на Gobj, кажется). Помимо этого нужно будет поискать индикаторы в Tab Control, в кластерах, и так далее на всю глубину возможную (вроде есть пример стандартный который это делает).
Затем заводишь этот массив reference в цикл и начинаешь анализировать имена индикаторов и их типы. Если имя совпало с текущим именем из конфига - вводишь Reference и Data в Case (селектор которого - значения типа). Дальше записываешь твои данные из конфига в Property Node "Value" твоего индикатора, предварительно подогнав все типы под нужные индивидуально для каждого кейса. Кейсов нужно будет сделать столько, сколько у тебя типов индикаторов.
Последний раз редактировалось FireFly 04 фев 2010, 18:34, всего редактировалось 2 раза.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Хранение данных о конфигурации программы

Сообщение FireFly »

Попробуй это. Я написал, но не проверял )))
Вложения
Пример.vi
(12.54 КБ) 136 скачиваний
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Хранение данных о конфигурации программы

Сообщение Eugen Graf »

FireFly писал(а):На самом деле я считаю что сделать автоматическое заполнение индикаторов можно. Но очень сложно. Тебе нужно взять reference твоей основной VI, затем из неё вытащить массив reference всех индикаторов (при этом в массив они объединиться могут только как однотипные reference на Gobj, кажется). Помимо этого нужно будет поискать индикаторы в Tab Control, в кластерах, и так далее на всю глубину возможную (вроде есть пример стандартный который это делает).
Затем заводишь этот массив reference в цикл и начинаешь анализировать имена индикаторов и их типы. Если имя совпало с текущим именем из конфига - вводишь Reference и Data в Case селектор которого значения типа. Дальше записываешь твои данные из конфига в Property Node "Value" твоего индикатора, предварительно подогнав все типы под нужные индивидуально для каждого кейса. Кейсов нужно будет сделать столько, сколько у тебя типов индикаторов.
То, что здесь описано я уже делал. Нужно поискать по форуму примерно о многоязычном интерфейсе.
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Re: Хранение данных о конфигурации программы

Сообщение Михаил23 »

FireFly писал(а):Попробуй это. Я написал, но не проверял )))
В общем смотри - тебе всё равно из этой SubVI тащить кучу проводов до каждого индикатора. У каждого индикатора есть имя которое ты знаешь, и его тип, так что Case со входом "имя" тебе всё равно придется заполнить самому соответствиями "тип". Автоматически это сделать не получится.Вложения
Read data file.vi
(17 ) Скачиваний: 2
А можно все примеры сохранить в LV8.6
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Хранение данных о конфигурации программы

Сообщение mzu2006 »

Тема очень интересная. Выскажусь:
FireFly писал(а):Database тулкит.
Это хорошо, но не всегда хочется ставить ДБ сервер одновременно с прогой + привязывать свою прогу к какому-то виду БД.

xml, и стандартный файл конфигурации с секциями - неплохо, но нужно многое писать вручную (как в приведённом примере). Главное достоинство, что так записанную конфигурацию можно потом править в любом текстовом редакторе.

А хотите дёшево и сердито? В OpenG есть GetAllControlValues {Variant}. На выходе: массив кластеров. Пишем его прямо в бинарный файл.
При чтении читаем по одному кластеру из этого бинарного файла и используем OpenG: SetControlValue {Variant}. И пусть :labview:/OpenG сами разбираются с преобразованиями типов в/из variant, сериализацией кластера из stirng и variant ...
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Хранение данных о конфигурации программы

Сообщение FireFly »

mzu2006 писал(а):Тема очень интересная. Выскажусь:
FireFly писал(а):Database тулкит.
Это хорошо, но не всегда хочется ставить ДБ сервер одновременно с прогой + привязывать свою прогу к какому-то виду БД.
Я не предлагал подключать базу данных :) Я просто привел пример VI у которой тип выхода зависит от входа.
Михаил23 писал(а):
Шарх писал(а):
eg писал(а):Отвечу так: нужно заранее знать тип данных, иначе что с этими данными делать?
В ходе работы программы такое изменение VI если не невозможно (Scripting вроде может помочь), то наверняка бесполезно. А вот в ходе написания блок-диаграммы такие VI очень даже удобны. Например DB Tools Fetch Element Data VI так работает. Какой тип подашь на вход-такой и получишь на выходе. Прям коннектор меняется.
А где можно найти DB Tools Fetch Element Data VI ?
FireFly писал(а):Database тулкит.
Вот :)

Приложил те же файлы, но для 8.6. Ещё раз повторюсь, что не уверен что это работает :). Но как тема для размышлений.
Вложения
Read data file.vi
(19.15 КБ) 131 скачивание
Пример.vi
(8.3 КБ) 143 скачивания
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»