Коммуникация между параллельными потоками
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Коммуникация между параллельными потоками
Возможно и так, но я не пойму как верхний цикл будет обращаться к нижнему...
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Коммуникация между параллельными потоками
Ну я имел ввиду если нижнему циклу нечем занятся, то пускай время от времени опрашивает прибор. А если верхний цикл посылает ему какую нибудь команду, то он её выполняет и дальше себе занимается себе опросом прибора.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Коммуникация между параллельными потоками
а...понятно, проверю. Если нужно передавать команды второму циклу и данные с приборов то
делать разделение на очереди (командные, измеренных данных), т.е. открывать 1, 2 и т.д очереди?
делать разделение на очереди (командные, измеренных данных), т.е. открывать 1, 2 и т.д очереди?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Коммуникация между параллельными потоками
Нет, на каждый параллельный цикл хватит по одной очереди.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Коммуникация между параллельными потоками
ну а если нужно опрашивать один прибор несколькими командами параллельно - нужно ли их разделять на потоки?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Коммуникация между параллельными потоками
Именно если параллельно, то да. Но мне кажется если прибор один, параллельность здесь не нужна, опрашивай в одном потоке последовательно.
У меня принцип такой - сколько приборов, столько и потоков. В общем каждый отдельный поток отвечает конкретно за какой нибудь прибор.
У меня принцип такой - сколько приборов, столько и потоков. В общем каждый отдельный поток отвечает конкретно за какой нибудь прибор.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Коммуникация между параллельными потоками
да, а в нижнем цикле я считанные данные и посылаю в enqueue element? Вообще верхний цикл является продюсером, т.е. выдает команды нижнему, а когда нужно чтобы нижний выдал дынные без запроса верхнего...вот тут не ясно.eg писал(а):А что если в нижнем цикле выставить таймаут при чтении очереди? Тогда она сама по себе будет опрашивать прибор и посылать данные в верхний цикл.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Коммуникация между параллельными потоками
Я же уже предлагал встроить таймаут в нижний цикл, тогда он будет сам по себе опрашивать прибор, и будет при этом являтся и продюссером и консумером.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Коммуникация между параллельными потоками
да, нижний цикл теперь опрашивает данные с прибора, но как их передать в верхний?!
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Коммуникация между параллельными потоками
Спасибо, работает! Теперь о коммуникации между сабВП и главным ВП. Допустим мне нужно из верхнего цикла главного
ВП вызвать подприбор. Как поступают в этом случае: открывать лицевую панель из верхнего цикла главного ВП, а обрабатывать команды и снимать данные через параллельный цикл главного ВП или же передавать данные в отдельный поток подприбора и все обращения к командам из сабВП делать из в параллельном цикле главного ВП?
ВП вызвать подприбор. Как поступают в этом случае: открывать лицевую панель из верхнего цикла главного ВП, а обрабатывать команды и снимать данные через параллельный цикл главного ВП или же передавать данные в отдельный поток подприбора и все обращения к командам из сабВП делать из в параллельном цикле главного ВП?
- Михаил23
- adviser
- Сообщения: 219
- Зарегистрирован: 24 ноя 2008, 17:58
- Версия LabVIEW: 2009
- Откуда: Москва
Re: Коммуникация между параллельными потоками
Добрый день! Подскажите зачем нужны notifier на примере Tasking_Exxample 2. Правельно я понял что:
первый цикл- регистрация событий пользователя и отображение данных на лицевой панели
второй цикл- чтение данных с портов приборов и т.д.
третий- обработка данных из цикла 2
???????
первый цикл- регистрация событий пользователя и отображение данных на лицевой панели
второй цикл- чтение данных с портов приборов и т.д.
третий- обработка данных из цикла 2
???????
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Коммуникация между параллельными потоками
А где лежит этот пример?
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
- Михаил23
- adviser
- Сообщения: 219
- Зарегистрирован: 24 ноя 2008, 17:58
- Версия LabVIEW: 2009
- Откуда: Москва
Re: Коммуникация между параллельными потоками
http://www.labviewportal.eu/download/file.php?id=1503 или на первой странице этой темы.mzu2006 писал(а):А где лежит этот пример?
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Коммуникация между параллельными потоками
Это просто пример.Михаил23 писал(а):зачем нужны notifier на примере Tasking_Exxample 2
Сложно угадать, но может быть eg имел в виду, что изменения происходят так быстро, что имеет смысл лишь последнее значение flag либо Number?
IMHO, вместо notifier, там могла бы быть и queue.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows