overflowed

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

Синтаксис

Описание

пример

overflowed(message_name) проверяет, утеряно ли сообщение, поскольку оно было отправлено в очередь, которая уже была заполнена. На каждом временном шаге значение этого оператора устанавливается, когда график добавляет сообщение в очередь или удаляет сообщение из нее. Недопустимое использование overflowed оператор перед отправкой или извлечением сообщения в тот же временной шаг. Как использовать overflowed оператор, установите модель в autosar.tlc цель для симуляции и генерации кода и проверьте, что сообщение inport или outport соединяется с внешней очередью.

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

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

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

Примеры

свернуть все

Проверьте вход или локальную очередь сообщений 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. Для получения дополнительной информации см. Раздел «Диагностика переполнения очереди» (Stateflow).

Введенный в R2018b