Реинтрантность

Общие принципы, проектирование, модуляризация, темплейты и шаблоны
Ответить
Аватара пользователя
Eugen Graf

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

Реинтрантность

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

Меня интерессует такой вопрос:

что будет если использовать неинициализированный сдвиговой регистр в реинтрантном приборе и при этом использовать клоны таких приборов несколько раз в программе?

Я бы хотел разобраться с этим, потому что мне приходится такое использовать, а что именно при этом происходит, я не очень понимаю.

Может кто нибудь разъяснит? Спасибо
Аватара пользователя
Konstantin Sumenko

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

Re: Реинтрантность

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

Если рассуждать напрямую, то реинтрантные VI всегда работают в различных областях памяти, следовательно и значения сдвиговых регистров храняться так же, поэтому перекрытия невозможны. Если убрать реинтрантность, то неинициализированные сдвиговые регистры будут иметь общий адрес обращения в памяти. Ну и если запустить VI спустя некоторое время после предыдущих вызовов, в которой сдвиговый регистр неинициализируется даже внутри блока кода, то прочитаться может все что угодно.
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Реинтрантность

Сообщение Confocal »

А нужно ли использовать реинтрантность если надо открывать подприбор по команде кнопки лицевой
панели? Т.е. мне нужно открыть подприбор как вторым окном, провести там измерения, закрыть и далее работать в
в основном ви. Как это делается?
Аватара пользователя
Eugen Graf

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

Re: Реинтрантность

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

Confocal писал(а):А нужно ли использовать реинтрантность если надо открывать подприбор по команде кнопки лицевой
панели? Т.е. мне нужно открыть подприбор как вторым окном, провести там измерения, закрыть и далее работать в
в основном ви. Как это делается?
Здесь реинстрантность непричём. Дальнейшее не относится к теме, если хочешь спроси в отдельной теме.
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Реинтрантность

Сообщение Confocal »

eg, про реинтратность я спросил из-за того, что видел в examples reentrant panels.vi, но скорее это не сюда
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Реинтрантность

Сообщение mzu2006 »

Согласен с Crowbar.
IMHO, Объявление прибора с неинициализированным сдвиговым регистром реинтерантным имеет
смысл для vi считающих что-то вроде скользящего среднего ... и совешенно не имеет
смысла для, например, функциональных глобальных переменных
Ответить

Вернуться в «Модели программирования»