Использование VI Server Reference
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Использование VI Server Reference
Доброе время суток!
Не подскажите, возможно ли каким либо образом "создавать" ссылки на индикаторы(VI Server Reference)?
Если есть несколько одинаковых индикаторов на панели и хотелось бы при выполнениии в цикле For Loop некоторой одинаковой процедуры в результате выполнения каждого "прохода" изменять свойства этих одинаковых индикаторов(их имена состоят их постоянной части и переменной, которая совпадает с номером итерации цикла).
Т.е. хотелось бы создать subVI или подпрограмму, входным параметром была бы
переменная типа число.
А может возможны другие способы?
Заранее спасибо!
Не подскажите, возможно ли каким либо образом "создавать" ссылки на индикаторы(VI Server Reference)?
Если есть несколько одинаковых индикаторов на панели и хотелось бы при выполнениии в цикле For Loop некоторой одинаковой процедуры в результате выполнения каждого "прохода" изменять свойства этих одинаковых индикаторов(их имена состоят их постоянной части и переменной, которая совпадает с номером итерации цикла).
Т.е. хотелось бы создать subVI или подпрограмму, входным параметром была бы
переменная типа число.
А может возможны другие способы?
Заранее спасибо!
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
Да, это возможно. Но надо учитывать, что ты не получаешь доступ ко всем свойствам контрола, так как не совсем известен тип контрола. Если покопать дальше, то в принципе можно разбирать контролы по типам в свитч кейзе.
- Вложения
-
- Reference.vi
- (10.31 КБ) 319 скачиваний
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
А о каких именно свойствах элементов идёт речь? Я недавно писал инересный проект, где мне надо было переводить элементы на другой язык. То есть менять например его caption и если это кнопка, то и boolean text. Дело в том что если элемент это кластер или сабпэнел например, то надо разбирать дальше на его подэлементы. Я сделал это сначала с помощью рекурсивного вызова виай, а потом уже не помню, но переделал по другому.
Если есть интерес могу дать посмотреть.
Если есть интерес могу дать посмотреть.
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
Попробую с помощью твоего приведённого примера, а вообще это всё те же Picture Ring. Мне хотелось бы менять их Val, Visible и положение на передней панеле, причём т.к. видимое пользователю их кол-во может меняться, нужно как то ссылаться на них быстро, а создавать с помощью Stacked Sequence Structure больше неохота.eg писал(а):А о каких именно свойствах элементов идёт речь? Я недавно писал инересный проект, где мне надо было переводить элементы на другой язык. То есть менять например его caption и если это кнопка, то и boolean text. Дело в том что если элемент это кластер или сабпэнел например, то надо разбирать дальше на его подэлементы. Я сделал это сначала с помощью рекурсивного вызова виай, а потом уже не помню, но переделал по другому.
Если есть интерес могу дать посмотреть.
Насчёт перевода на другой язык - это очень интересно. У нас планируется в будующем перевод на другой язык, и я уже предлагал сделать мультиязыковой интерфейс с помощью файлов-"локализаторов". Потому буду благодарен, если поделишься наработками!
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
Да, попробуй как в моём примере, должно получится.
Вот выкладываю наработки по переводу. Там немного разобраться надо какие виай где использоватъ.
Ты кстати тоже бы выложил что ты со своими картинками сделал. Может подскажу ещё что нибудь, да мне и самому тоже интересно.
Вот выкладываю наработки по переводу. Там немного разобраться надо какие виай где использоватъ.
Ты кстати тоже бы выложил что ты со своими картинками сделал. Может подскажу ещё что нибудь, да мне и самому тоже интересно.
- Вложения
-
- Perevod.zip
- (655.31 КБ) 355 скачиваний
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
вот так щас реализовал:eg писал(а):Да, попробуй как в моём примере, должно получится.
Вот выкладываю наработки по переводу. Там немного разобраться надо какие виай где использоватъ.
Ты кстати тоже бы выложил что ты со своими картинками сделал. Может подскажу ещё что нибудь, да мне и самому тоже интересно.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
Понятно. Обясни что именно ты хочешь сделать с помощью этого и в каком месте твоего главного виай ты это используешь.
Почему используешь именно Set Value Signalling?
А так вроде всё в порядке в твоей диаграмме.
Кстати картинки в формате PNG изображаются в форуме и вообще намного качественней чем ужатый JPG.
Почему используешь именно Set Value Signalling?
А так вроде всё в порядке в твоей диаграмме.
Кстати картинки в формате PNG изображаются в форуме и вообще намного качественней чем ужатый JPG.
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
Это будет часть основной процедуры программы - в цикле от 1 до 24 (т.е. до последнего элемента проверки) будет проделываться операция проверки каждого элемента. До цикла все ячейки скрыты. В начале цикла выводиться 1 состояние каждого следующей ячейки(Picture Ring) - это показ процесса проверки, затем идёт обмен с железкой и в результате получение результата проверки данного элемента, в зависимости от этого состояние Picture Ring меняется на 1 или 2 - это OK и Брак соответсвенно.eg писал(а):Понятно. Обясни что именно ты хочешь сделать с помощью этого и в каком месте твоего главного виай ты это используешь.
Почему используешь именно Set Value Signalling?
А так вроде всё в порядке в твоей диаграмме.
Кстати картинки в формате PNG изображаются в форуме и вообще намного качественней чем ужатый JPG.
Про Set Value - это смена состояния Picture Ring. Что не так по твоему?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
Я только имел ввиду что Value Signalling кроме того что он изменяет значение ещё и генерирует ивент изменения. Если у тебя где то в программе будет ивент структура, то она может отреагировать неадекватно, если ты это не учёл. Используй вместо value signalling свойство value.
А на счёт остального понятно. Ты хочешь видимо упаковать этот кусочек в подприбор и наверное загружать названия из внешнего файла, например INI.
В моём транслитере я как раз использовал что то подобное, если ты туда в код заглядывал.
А на счёт остального понятно. Ты хочешь видимо упаковать этот кусочек в подприбор и наверное загружать названия из внешнего файла, например INI.
В моём транслитере я как раз использовал что то подобное, если ты туда в код заглядывал.
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
Это я сделал потому так, что в начале обучения LabView у меня какие то глюки были с Value, а value sign прошло номана, потом не загонялся на эту тему. Про генерацию even'а не знал... исправлю!eg писал(а):Я только имел ввиду что Value Signalling кроме того что он изменяет значение ещё и генерирует ивент изменения. Если у тебя где то в программе будет ивент структура, то она может отреагировать неадекватно, если ты это не учёл. Используй вместо value signalling свойство value.
А на счёт остального понятно. Ты хочешь видимо упаковать этот кусочек в подприбор и наверное загружать названия из внешнего файла, например INI.
В моём транслитере я как раз использовал что то подобное, если ты туда в код заглядывал.
Это уже подприбор. Названия меняться не будет, а из ini читаю их кол-во. Мне вот ещё сделать бы изменение положения на панели в зависимости он кол-ва - ширина окна постоянна, ширина всех "подложек"-изображений струкруры ячеек тоже одинакова, но т.к. их может быть 12,24, то соответственно может быть такие схемы расположения:
СТРОКхСтолбцов
4х3
4х6
При этом, при 24 эелементах расположение может меняться по вертикале.
Не подскажешь элегантные методы разположения ячеек Picture Ring на соответсв. места?
Я предполагаю менять Position в зависимости от типа подложки, но надо как то привязаться к этой подложке. Простой расчёт наверное: (отступ слева-отступ справа)/кол-во элементов в строке?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
То есть если я правильно всё понял у тебя есть два вида подложек-бэкграундов. Это те которые будут подкладываться под все кратинки. Если например выбран первый тип, то у тебя количество рингов 4Х3. Если второй тип, то их количество 4Х6.
Я не очень понял в какой момент и зачем ты хочешь двигать картинки по вертикали. Поясни.
А вот двигать по горизонтали, понятно, ты видимо хочешь чтобы картинки были посередине окна и бэкграунда.
Сначала напиши правильно ли я всё понял. А как это делать покажу потом. Если можно выложи скрины обоих вариантов лицевой панели с 4Х3 и 4Х6, чтобы понятнее было.
Кстати ещё возникает вопрос чем тебя не устрол эррэй из пикчер рингов?
Я не очень понял в какой момент и зачем ты хочешь двигать картинки по вертикали. Поясни.
А вот двигать по горизонтали, понятно, ты видимо хочешь чтобы картинки были посередине окна и бэкграунда.
Сначала напиши правильно ли я всё понял. А как это делать покажу потом. Если можно выложи скрины обоих вариантов лицевой панели с 4Х3 и 4Х6, чтобы понятнее было.
Кстати ещё возникает вопрос чем тебя не устрол эррэй из пикчер рингов?
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
Если совсем точно, то их не 2, а 5:eg писал(а):То есть если я правильно всё понял у тебя есть два вида подложек-бэкграундов. Это те которые будут подкладываться под все кратинки. Если например выбран первый тип, то у тебя количество рингов 4Х3. Если второй тип, то их количество 4Х6.
Я не очень понял в какой момент и зачем ты хочешь двигать картинки по вертикали. Поясни.
А вот двигать по горизонтали, понятно, ты видимо хочешь чтобы картинки были посередине окна и бэкграунда.
Сначала напиши правильно ли я всё понял. А как это делать покажу потом. Если можно выложи скрины обоих вариантов лицевой панели с 4Х3 и 4Х6, чтобы понятнее было.
Кстати ещё возникает вопрос чем тебя не устрол эррэй из пикчер рингов?
Менять нужно в зависимости от значения combo box'а не только подложку, но и кол-во "статусов", при этом сдвигая на нужное место.
А массив picture ring не устроил - вроде уже сделал(переделывать не охота), да и по мне выглядит не совсем так, как требуется
- Вложения
-
- 1.png (21.79 КБ) 17101 просмотр
-
- 2.png (21.05 КБ) 17097 просмотров
-
- 3.png (21.49 КБ) 17106 просмотров
-
- 4.png (21.99 КБ) 17109 просмотров
-
- 5.png (12.68 КБ) 17107 просмотров
Последний раз редактировалось PaXXaN 07 фев 2008, 14:52, всего редактировалось 1 раз.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
опять возник вопрос, что то я не вижу отличий между картинкой 1 и 4, и между 2 и 3.
Самое первое что нужно сделать это разбить главный виай на инизиализацию (где будут правильно расположены элементы), на среднюю часть (где будут проводится измерения и менятся значения картинок) и деинициализацию (где будут закрываться всякие там референсы).
Потом определить левый верхний угол бэкграунда началом координат. Т.е. это будет наша нулевая координата и будет являтся offset-ом для всех координат картинок. Для этого можно опросить позицию бэкграунда и в последующем добавлять эти координаты ко всем координатам всех картинок.
Ну так вот. Теперь определим середину одной картинки, с координатой середины считать будет наверное легче. Для этого опрашиваем размер картинки и делим высоту и ширину на два.
Самое первое что нужно сделать это разбить главный виай на инизиализацию (где будут правильно расположены элементы), на среднюю часть (где будут проводится измерения и менятся значения картинок) и деинициализацию (где будут закрываться всякие там референсы).
Потом определить левый верхний угол бэкграунда началом координат. Т.е. это будет наша нулевая координата и будет являтся offset-ом для всех координат картинок. Для этого можно опросить позицию бэкграунда и в последующем добавлять эти координаты ко всем координатам всех картинок.
Ну так вот. Теперь определим середину одной картинки, с координатой середины считать будет наверное легче. Для этого опрашиваем размер картинки и делим высоту и ширину на два.
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
Отличия есть - немного движутся ряды и совсем чудок столбцы, но кол-во элементов у них неизменяется.eg писал(а): опять возник вопрос, что то я не вижу отличий между картинкой 1 и 4, и между 2 и 3.
Самое первое что нужно сделать это разбить главный виай на инизиализацию (где будут правильно расположены элементы), на среднюю часть (где будут проводится измерения и менятся значения картинок) и деинициализацию (где будут закрываться всякие там референсы).
Потом определить левый верхний угол бэкграунда началом координат. Т.е. это будет наша нулевая координата и будет являтся offset-ом для всех координат картинок. Для этого можно опросить позицию бэкграунда и в последующем добавлять эти координаты ко всем координатам всех картинок.
Ну так вот. Теперь определим середину одной картинки, с координатой середины считать будет наверное легче. Для этого опрашиваем размер картинки и делим высоту и ширину на два.
Это я сделал - в начале всё скрыто, и по событию выбора типа я показываю подложку. Вот тут то и надо сдвинуть ячейки на нужные места.
Затем - выполнение проверки, в ходе которой происходит показ ячеек(Picture Ring) и замена в них отображаемого изображения. После этого при нажатии "продолжить" опять всё скрывается и можно снова выбрать тип/начать новую проверку. Элементы при этом на нужных местах уже.
Что имеешь в виду, говоря "закрыть референсы" в деинициализации?
Т.е. читаем Position->Left?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 4 Ответы
- 155 Просмотры
-
Последнее сообщение Artem.spb