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

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

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

Postby FireFly on 04 Feb 2010, 18:15

На самом деле я считаю что сделать автоматическое заполнение индикаторов можно. Но очень сложно. Тебе нужно взять reference твоей основной VI, затем из неё вытащить массив reference всех индикаторов (при этом в массив они объединиться могут только как однотипные reference на Gobj, кажется). Помимо этого нужно будет поискать индикаторы в Tab Control, в кластерах, и так далее на всю глубину возможную (вроде есть пример стандартный который это делает).
Затем заводишь этот массив reference в цикл и начинаешь анализировать имена индикаторов и их типы. Если имя совпало с текущим именем из конфига - вводишь Reference и Data в Case (селектор которого - значения типа). Дальше записываешь твои данные из конфига в Property Node "Value" твоего индикатора, предварительно подогнав все типы под нужные индивидуально для каждого кейса. Кейсов нужно будет сделать столько, сколько у тебя типов индикаторов.
Last edited by FireFly on 04 Feb 2010, 18:34, edited 2 times in total.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
User avatar
FireFly
expert
expert
 
Posts: 1320
Joined: 25 Apr 2009, 08:58
Location: Санкт-Петербург
Medals: 2
Activity (1) Black (1)
LabVIEW Version: 2014
Karma: 174

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

Postby FireFly on 04 Feb 2010, 18:25

Попробуй это. Я написал, но не проверял )))
Attachments
Пример.vi
(12.54 KiB) Downloaded 70 times
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
User avatar
FireFly
expert
expert
 
Posts: 1320
Joined: 25 Apr 2009, 08:58
Location: Санкт-Петербург
Medals: 2
Activity (1) Black (1)
LabVIEW Version: 2014
Karma: 174

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

Postby Eugen Graf on 04 Feb 2010, 18:31

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


То, что здесь описано я уже делал. Нужно поискать по форуму примерно о многоязычном интерфейсе.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

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

Postby Михаил23 on 04 Feb 2010, 21:12

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

А можно все примеры сохранить в LV8.6
User avatar
Михаил23
adviser
adviser
 
Posts: 219
Joined: 24 Nov 2008, 17:58
Location: Москва
LabVIEW Version: 2009
Karma: 8
hardware freelance

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

Postby mzu2006 on 05 Feb 2010, 00:55

Тема очень интересная. Выскажусь:
FireFly wrote:Database тулкит.

Это хорошо, но не всегда хочется ставить ДБ сервер одновременно с прогой + привязывать свою прогу к какому-то виду БД.

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

А хотите дёшево и сердито? В OpenG есть GetAllControlValues {Variant}. На выходе: массив кластеров. Пишем его прямо в бинарный файл.
При чтении читаем по одному кластеру из этого бинарного файла и используем OpenG: SetControlValue {Variant}. И пусть :labview:/OpenG сами разбираются с преобразованиями типов в/из variant, сериализацией кластера из stirng и variant ...
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

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

Postby FireFly on 05 Feb 2010, 07:54

mzu2006 wrote:Тема очень интересная. Выскажусь:
FireFly wrote:Database тулкит.

Это хорошо, но не всегда хочется ставить ДБ сервер одновременно с прогой + привязывать свою прогу к какому-то виду БД.

Я не предлагал подключать базу данных :) Я просто привел пример VI у которой тип выхода зависит от входа.

Михаил23 wrote:
Шарх wrote:
eg wrote:Отвечу так: нужно заранее знать тип данных, иначе что с этими данными делать?


В ходе работы программы такое изменение VI если не невозможно (Scripting вроде может помочь), то наверняка бесполезно. А вот в ходе написания блок-диаграммы такие VI очень даже удобны. Например DB Tools Fetch Element Data VI так работает. Какой тип подашь на вход-такой и получишь на выходе. Прям коннектор меняется.

А где можно найти DB Tools Fetch Element Data VI ?

FireFly wrote:Database тулкит.


Вот :)

Приложил те же файлы, но для 8.6. Ещё раз повторюсь, что не уверен что это работает :). Но как тема для размышлений.
Attachments
Read data file.vi
(19.15 KiB) Downloaded 70 times
Пример.vi
(8.3 KiB) Downloaded 80 times
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
User avatar
FireFly
expert
expert
 
Posts: 1320
Joined: 25 Apr 2009, 08:58
Location: Санкт-Петербург
Medals: 2
Activity (1) Black (1)
LabVIEW Version: 2014
Karma: 174

Previous

Return to Для чайников

Who is online

Users browsing this forum: No registered users and 6 guests

cron