LabVIEW: как поделиться объектом .NET, созданным из LabVIEW - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть класс Camera в библиотеке .NET, и когда я создаю экземпляр объекта, я хочу создать ссылку на него, чтобы этот экземпляр можно было использовать из других ВП.Как сделать ссылку или как сделать ее глобальной?

Спасибо,

1 Ответ

0 голосов
/ 26 апреля 2018

Есть несколько способов подойти к вашему вопросу.

Возможный ответ 1: вы хотите, чтобы несколько параллельных subVI использовали объект одновременно.Провод .NET уже является эталонным.Разветвление этого провода не копирует объект.Просто подключите его к другим ВП, сколько бы их ни было, и пусть все они используют ссылку.

Возможный ответ 2: Вы пытаетесь получить существующую ссылку в другом ВП, не пропуская ссылку в проводе через subVI conpane или узел Call By Reference.В этом случае вы передадите refnum объекта .NET так же, как и любой другой бит данных в LabVIEW, избегая проводов. Как правило, правило «избегать передачи данных за пределы потока данных». Серьезно ... попробуйте передать refnum через conpane ... если у этой программы будет существенный срок службы, выбудь счастливее, когда сможешь воспользоваться этим подходом. НО ... когда необходима такая передача вне потока данных, есть много инструментов - очереди, уведомители, глобальные ВП, ссылки на значения данных, функциональные глобалы.Какой из этих инструментов является правильным, во многом зависит от того, чего вы на самом деле пытаетесь достичь.Самое простое - создать глобальный ВП, но это вводит много проверок опроса, поскольку второй ВП должен продолжать опрашивать глобальный ВП, чтобы узнать, сохранил ли первый ВП значение или нет.Refnum для уведомлений, вероятно, является наиболее гибким вариантом, на который я могу вам указать ... создать именованное средство уведомления вашего типа .NET refnum.И первый, и второй ВП могут получить уведомитель по имени.Затем второй ВП блокирует функцию «Ожидание уведомления», ожидая, пока первый ВП запишет ссылку в уведомитель.См. http://zone.ni.com/reference/en-XX/help/371361L-01/glang/create_notifier/ для получения дополнительной информации об уведомителях.Или Google другие термины, которые я перечислил, если это кажется недостаточно для ваших нужд.

...