Получение сообщений
Simulink/Сообщения и события
SimEvents
Блок Receive извлекает данные из полученных сообщений и записывает их в порт выходного сигнала. Если при выполнении блока нет новых сообщений, блок использует Value source when queue is empty значение. Receive и Message Receive блоки являются идентичными блоками.
Выберите Hold last value
для хранения данных, считанных из последнего сообщения.
Выберите Use initial value
для записи данных по умолчанию.
Port_1
- Входное сообщениеПорт входа для сообщения.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| enumerated
| bus
| fixed point
Port_S
- Показать, было ли получено сообщениеВыходы 1
если блок получает сообщение успешно, и 0
в противном случае.
Чтобы включить этот порт, установите флажок, помеченный Show receive status.
Типы данных: double
Port_1
- Выходной сигналВыходной порт для сигнала.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| enumerated
| bus
| fixed point
Use internal queue
- Выберите, чтобы использовать внутреннюю очередьУстановите этот флажок, если для получения сообщений используется внутренняя очередь.
Параметры блоков: UseInternalQueue |
Тип: Вектор символов |
Значения: 'on' | 'off' |
По умолчанию: 'on' |
Overwrite the oldest element if queue is full
- Задайте политику перезаписи очередиУстановите этот флажок, чтобы выбрать между двумя политика перезаписи очереди.
Если флажок установлен, входящее сообщение перезаписывает самое старое, если очередь полна.
Если флажок снят, блок не принимает новые сообщения, если очередь полна.
Этот параметр видим, когда вы выбираете прямоугольник, маркированный Use internal queue.
Параметры блоков: QueueOverwriting |
Тип: Вектор символов |
Значения: 'on' | 'off' |
По умолчанию: 'on' (для Simulink) и 'off' (для SimEvents) |
Queue length
- Задайте длину очереди сообщений16
(по умолчанию) | scalar
Укажите пропускную способность очереди сообщений. Длина очереди может быть задана как положительное целое число между 1
и 226- 1 (оба включены).
Этот параметр видим, когда вы выбираете прямоугольник, маркированный Use internal queue.
Параметры блоков: QueueLength |
Тип: Вектор символов |
Значения: '16' | скаляр |
По умолчанию: '16' |
Queue type
- Задайте политику сортировки очереди сообщенийFIFO
(по умолчанию) | LIFO
| Priority
Блок поддерживает три политики сортировки сообщений:
Первый в первом (FIFO
) - Первое отправляется самое старое сообщение в хранилище.
Последний в первом (LIFO
) - Первое отправляется новейшее сообщение в хранилище.
Priority
- Сообщения или сущности сортируются в зависимости от их приоритета.
Очередь приоритетов может использоваться только при снятии флажка Overwrite the oldest element if queue is full.
Примечание
Очередь приоритетов принимает только скаляр без шины, и она не поддерживает fixed point
тип данных.
Этот параметр видим, когда вы выбираете прямоугольник, маркированный Use internal queue.
Параметры блоков: QueueType |
Тип: Вектор символов |
Значения: 'FIFO' | 'LIFO' | 'Priority' |
По умолчанию: 'FIFO' |
Priority order
- Задайте приоритет очереди сообщенийAscending
(по умолчанию) | Descending
Выберите направление сортировки сообщений в зависимости от приоритета.
Ascending
- Перед очередью появляются сообщения с меньшими значениями приоритета.
Descending
- Перед очередью появляются сообщения с большими значениями приоритета.
Этот параметр видим, когда вы выбираете прямоугольник с метками Use internal queue и Queue type > Priority.
Параметры блоков: PriorityOrder |
Тип: Вектор символов |
Значения: 'Ascending' | 'Descending'
|
По умолчанию: 'Ascending' |
Show receive status
- Показать, было ли получено сообщениеoff
(по умолчанию) | наУстановите этот флажок, чтобы показать, было ли получено сообщение. Если этот флажок установлен, блоки выводятся 1
если оно успешно получает сообщение, и 0
в противном случае.
Параметры блоков: ShowQueueStatus |
Тип: Вектор символов |
Значения: 'on' | 'off' |
По умолчанию: 'off' |
Initial value
- Установите начальное значение данных[](unspecified)
(по умолчанию) | scalar
| vector
| matrix
Введите начальное значение данных для очереди до прибытия первого сообщения. Значение по умолчанию [](unspecified)
рассматривается как 0
с типом данных double.
Чтобы использовать этот блок для инициализации невиртуального сигнала шины, задайте начальное значение как MATLAB® структура. Для получения дополнительной информации об инициализации невиртуальных сигналов шины с помощью структур, смотрите Задайте Начальные Условия для Элементов Шины.
Параметры блоков: InitialValue |
Тип: Вектор символов |
Значения: '[]' | скаляр |
По умолчанию: '[]' |
Value source when queue is empty
- Источник значения для пустой очередиHold last value
(по умолчанию) | Use initial value
Укажите значение, которое должно быть получено, когда очередь полученных сообщений пуста.
Hold last value
(по умолчанию) - содержит данные, считанные из последнего сообщения.
Первоначально, если блок пытается получить сообщение и отказывает, он выводит начальное значение.
Use initial value
- Записывает данные по умолчанию.
Этот параметр видим, когда вы выбираете прямоугольник, маркированный Use internal queue.
Параметры блоков: ValueSourceWhenQueueIsEmpty |
Тип: Вектор символов |
Значения: 'Hold last value' | 'Use initial value'
|
По умолчанию: 'Hold last value' |
Sample time (-1 for inherited)
- Задайте временной интервал между выборками-1
(по умолчанию) | scalar
Чтобы наследовать шаг расчета, установите этот параметр равным -1
. Дополнительные сведения см. в разделе «Задание шага расчета».
Параметры блоков: SampleTime |
Тип: Вектор символов |
Значения: '-1' | скаляр |
По умолчанию: '-1' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.