Очередь и как с неи бороться?

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

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Очередь и как с неи бороться?

Сообщение irena_abr »

Задача: В процессе работы создается кластер из массивов. SubVI отлючается и через какое-то время снова работает.Надо собрать все массивы в 1 кластер на на протяжении всеи работы программы. Для сборки массивов в кластер использую очередь. А вот собрать кластеры в кластер не выходит.Кто поможет?
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение Konstantin Sumenko »

Если массивы одинаковых типов, то проще их держать в двумерном массиве- тогда проблемы объединения отпадут.
Аватара пользователя
Eugen Graf

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

Re: Очередь и как с неи бороться?

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

Crowbar писал(а):Если массивы одинаковых типов, то проще их держать в двумерном массиве- тогда проблемы объединения отпадут.
Размер двумерного массива зависит от максимального размера одного из одномерных и все незаполненые элементы остальных одномерных заполняются значениями по умолчанию.
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение Konstantin Sumenko »

Ну если длина у них разная, тогда придется первый кластер массивов оставить в покое, остальные кластеры разобрать на составляющие массивы и Bundle'ом в цикле запихать в первый.
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение irena_abr »

Всем-спасибо. Все получилось. Очередь прекрасно справляется и с кластерами, просто я давала неправильные начальные значения и совсем забыла про Loop. Теперь Enqueue Element , Get Queue Status - в Loop, а Flush Queue, Release Queue - за пределами Loop. И ,наверное, и неизящно, но все работает
Аватара пользователя
Eugen Graf

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

Re: Очередь и как с неи бороться?

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

Покажь
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение irena_abr »

Ох, ну,вот. На выходе POPMain- кластер"remaining elements, в нем данные, а потом все эти данные собира[тся в такои бо-о-о-льшои кластер
Вложения
Start.vi
(19.65 КБ) 211 скачиваний
Аватара пользователя
Eugen Graf

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

Re: Очередь и как с неи бороться?

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

Obtain Queue надо бы тоже вынести за пределы цикла. А во вторых Flush и Release Queue при выходе из цикла получают неизвестно что на вход вместо правильной Queue Reference.
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение irena_abr »

Спасибо, сеичас посмотрю
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение irena_abr »

Про - Obtain -согласна, а почему "неизвестно что" ? И как чинить?
Аватара пользователя
Eugen Graf

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

Re: Очередь и как с неи бороться?

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

Как только вынесешь Obtain за цикл станет понятно, что референс тебе так же нужно протягивать и через ивент стоп.
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение irena_abr »

Попробую
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Очередь и как с неи бороться?

Сообщение irena_abr »

Спасибо. Переделала. Кстати, поменяла структуру. Теперь все массивы записываются в 1. Т.е. - внутри Так коллегам удобнее. Вот
Вложения
Start.vi
(18.63 КБ) 221 скачивание
Ответить

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