переполненный

Определите, когда очередь сообщений переполнится

Синтаксис

overflowed(message_name)

Описание

пример

overflowed(message_name) проверки, потеряно ли сообщение, потому что оно было отправлено очереди, которая была уже полна. В каждом временном шаге установлено значение этого оператора, когда график добавляет сообщение в или удаляет сообщение из, очередь. Это недопустимо, чтобы использовать оператор overflowed прежде, чем отправить или получить сообщение в том же временном шаге.

  • Чтобы проверять состояние переполнения очереди входного сигнала, сначала удалите сообщение из очереди.

  • Чтобы проверять состояние переполнения очереди выходного сигнала, сначала добавьте сообщение в очередь.

  • Чтобы проверять состояние переполнения локальной очереди сообщений, сначала добавьте сообщение в очередь или удалите сообщение из очереди.

Примеры

развернуть все

Проверяйте вход или локальную очередь для сообщения M. Если сообщение присутствует, и очередь переполнилась, переход происходит.

M[overflowed(M)]

Проверяйте вход или локальную очередь для сообщения M. Если сообщение присутствует, и очередь переполнилась, постепенно увеличьте значение x.

on M:
if overflowed(M) == true
    x = x+1;
end

Отправьте сообщение и проверку на переполнение. Если очередь переполняется, постепенно увеличьте значение x.

entry:
M.data = 3;
send(M);
if overflowed(M) == true
    x = x+1;
end

Советы

  • По умолчанию, когда очередь сообщений переполняется, остановки симуляции с ошибкой. Чтобы предотвратить ошибку времени выполнения и позволить оператору overflowed динамически реагировать на пропущенные сообщения, установите значение свойства Queue Overflow Diagnostic к Warning или None. Для получения дополнительной информации смотрите Диагностику Переполнения Очереди.

Введенный в R2018b