Редактирование: LabVIEW

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 18: Строка 18:


'''Общие шаблоны проектирования приложений LabVIEW'''
'''Общие шаблоны проектирования приложений LabVIEW'''
{| class="wikitable"
|-
! Шаблон проектирования !! Цель !! Детали реализации !! Примеры использования !! Ограничения
|-
| Функциональная глобальная переменная || Обмен информацией без использования глобальных переменных  || Регистр сдвига цикла while используется для хранения данных, и цикл while выполняет только одну итерацию в "нереентерабельном" виртуальном инструменте (VI) || Обмен информацией с меньшим количеством проводов || Все виртуальные инструменты (ВИС) хранятся в памяти.
|-
| Конечный автомат || Контролируемое выполнение, зависящее от прошлых событий || Структура случая внутри цикла while передайте перечисляемую переменную в регистр сдвига, представляющий следующее состояние; сложные конечные автоматы могут быть спроектированы с использованием модуля Statechart || • Пользовательские интерфейсы • Сложная логика • Протоколы связи || Все возможные состояния должны быть известны заранее.
|-
| Событийный пользовательский интерфейс || Обработка действий пользователя без потерь || События графического интерфейса захватываются очередью структуры событий внутри цикла while; цикл while приостанавливается структурой событий и возобновляется только тогда, когда захватываются нужные события || Графический интерфейс пользователя || Только одна структура событий в цикле.
|-
| Master-slave || Одновременное выполнение независимых процессов || Несколько параллельных циклов while, один из которых функционирует как "ведущий", управляющий "ведомыми" циклами || Простой графический интерфейс для сбора и визуализации данных || Внимание и предотвращение гоночных условий требуется.
|-
| Производитель-потребитель || Асинхронность многопоточного выполнения циклов || Главный цикл управляет выполнением двух подчиненных циклов, которые взаимодействуют с помощью уведомителей, очередей и семафоров; независимые от данных циклы автоматически выполняются в отдельных потоках || Выборка и визуализация данных || Порядок выполнения не очевиден для контроля.
|-
| Конечный автомат в очереди с управляемым событиями производителем-потребителем || Высокочувствительный пользовательский интерфейс для многопоточных приложений || Управляемый событиями пользовательский интерфейс помещается внутри цикла производителя, а конечный автомат помещается внутри цикла потребителя, обмениваясь данными с помощью очередей между собой и другими параллельными ВИС || Сложные приложения || *
|}


==Преимущества==
==Преимущества==
Пожалуйста, учтите, что любой ваш вклад в проект «wikixw» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Wikixw:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

  <charinsert>[+]</charinsert> · <charinsert>+</charinsert> · <charinsert>+</charinsert> · <charinsert>✔ Оставить</charinsert> · <charinsert>– —</charinsert> · <charinsert>“+” ‘+’ «+» ‹+› „+“ ‚+‘</charinsert> · <charinsert>… ~ | °  </charinsert> · <charinsert>≈ ≠ ≤ ≥ ± − × ÷ ← → ² ³ ½ · §</charinsert>
     <charinsert></charinsert> · <charinsert>File:+</charinsert> · <charinsert>Special:MyLanguage/+</charinsert> · <charinsert>Special:MyLanguage/</charinsert> · <charinsert>+</charinsert> · <charinsert><nowiki>+</nowiki></charinsert> <charinsert><nowiki>+</nowiki></code></charinsert> · <charinsert><syntaxhighlight lang="php">+</syntaxhighlight></charinsert> · <charinsert></charinsert> · <charinsert>+</charinsert> · <charinsert>#REDIRECT+</charinsert> · <charinsert><translate>+</translate></charinsert> · <charinsert><languages/></charinsert> · <charinsert>{{#translation:}}</charinsert> · <charinsert><tvar name=1>+</tvar></charinsert> · <charinsert>{{DEFAULTSORT:+}}</charinsert> · <charinsert>+</charinsert>

Источник — https://wikixw.ru/LabVIEW