Подскажите...
Программа состоит из нескольких . Передача данных организована на очередях (queue).
Все устраивало, пока не попробовал откомпилировать в EXE.
Видимо проблема в разграничении памяти между различными исполняемыми файлами.
Попробовал передачу в одном EXE, все работает без проблем. В то же время, между различными EXE данные не передаются.
Набросал пример в 2014, там же в папке Build готовые EXE.
Это можно обойти стандартными способами или необходимо использовать иные механизмы взаимодействия между EXE?
Сейчас некогда экспериментировать, но подразумеваю, что и рандеву (Rendezvous) тоже в разных EXE работать не будут, как и вся палитра синхронизации (Synchronization).
Queue (очередь) в EXE
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Queue (очередь) в EXE
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Queue (очередь) в EXE
Именно так, и это в хэлпе написано:IvanLis писал(а):рандеву (Rendezvous) тоже в разных EXE работать не будут, как и вся палитра синхронизации (Synchronization).
[color=#008000]Obtain Queue Function[/color] писал(а):Note You cannot use queues or named queues to communicate across application instances. If you attempt to communicate with a named queue in another application instance, LabVIEW does not return an error but you might not receive the expected results.
If you obtain a queue reference in one application instance, you cannot use that queue reference in another application instance. If you attempt to use a queue reference in another application instance, LabVIEW returns error 1491.
Так что придётся либо перестраивать архитектуру проекта (загонять всё в один exe), либо использовать методы межпроцессовой коммуникации: http://labviewportal.org/viewtopic.php? ... 53&p=62077[color=#008000]Create Rendezvous VI[/color] писал(а):Note You cannot use a rendezvous to communicate between LabVIEW application instance. If you create a rendezvous reference in one application instance, you cannot use that rendezvous reference in another application instance.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Queue (очередь) в EXE
Проект достаточно большой, структуры передаваемых данных сложные и разные.dadreamer писал(а):Так что придётся либо перестраивать архитектуру проекта (загонять всё в один exe), либо использовать методы межпроцессовой коммуникации
По этому, пойду по пути наименьшего сопротивления и запихну все в один EXE, тем более запускать в любом случае все пять подпрограмм.
А в этом случае переделок никаких не требуется, у меня там еще и синхронизация трех потоков, много работы Это показано в файле Main.exe
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение