exponenta event banner

FIFO чтение HDRS

Считывание нескольких потоков данных ASCII в соответствии с информацией заголовка

  • Библиотека:
  • Симулинк в реальном времени/ RS232

  • FIFO Read HDRS block

Описание

Блок FIFO Read HDRS идентифицирует и разделяет потоки данных ASCII, которые имеют встроенные идентификаторы.

Данные, следующие за определенным заголовком, могут иметь различную длину, но имеют общий маркер окончания, такой как <CR><LF>. Несмотря на то, что блок FIFO Read обеспечивает такую же функциональность, он требует сложного конечного автомата с таким поведением:

  • Если один и тот же заголовок поступает в FIFO более одного раза после последнего выполнения блока, блок возвращает последний экземпляр заголовка. Блок захватывает данные, которые поступают быстрее, чем выполняется блок.

  • Если в FIFO поступает заголовок, не соответствующий элементу в списке заголовков, блок отменяет сообщение.

  • Если байты поступают в FIFO, которые не соответствуют заголовку, блок интерпретирует сообщение как имеющее неопределенный заголовок. Блок пропускает эти байты.

matlab/toolbox/slrealtime/examples содержит примеры использования блока чтения HDRS FIFO: slrt_ex_serialbaseboardasciitest и slrt_ex_serialbaseboardasciisplit.

Порты

Вход

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

Подключается к программному FIFO, содержащему данные, считанные с последовательного порта.

Если true, читать из FIFO.

Зависимость

Чтобы сделать этот порт видимым, установите параметр Enable input.

Продукция

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

Векторы, содержащие проанализированные данные, считанные из FIFO. Каждый выход соответствует одному из заголовков.

Зависимость

Чтобы определить тип данных этого вектора, задайте параметр Output vector type.

Типы данных: int8 | uint8 | int16 | uint16 | int32 | uint32

Параметры

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

Введите заголовки, которые блок должен искать в блоке данных из FIFO. Введите каждый заголовок в отдельных кавычках в качестве элемента в массиве ячеек.

Программное использование

Параметр блока: hdr

Введите завершающий символьный вектор для данных. Введите символы, определяющие конец вектора символов, обычно один или два символа.

Программное использование

Параметр блока: nterm

В списке выберите поведение блока, если FIFO не получил новые данные:

  • Hold last output if no new data - Блок сохраняет выходные данные последнего сообщения FIFO.

  • Zero output if no new data - Блок перезаписывает первый элемент вывода на 0.

Программное использование

Параметр блока: hold

Чтобы создать входной порт, который включает или отключает операцию чтения, установите этот флажок. Входной порт принимает логический сигнал.

Зависимость

Вызывает порт ввода E чтобы стать видимым.

Программное использование

Параметр блока: enable

Укажите максимальное количество символов для возвращаемого блока. Результирующий размер вектора на единицу больше этого максимального количества символов. Этот блок указывает количество символов, возвращаемых с помощью дополнительного элемента:

  • Терминатор NULL для 8-разрядных типов данных

  • Число символов для 16-разрядных и 32-разрядных типов данных

Введите достаточно большое число. Если это число слишком мало, блок не может ничего вернуть. Например, если ввести значение 10, но при выполнении FIFO содержит 11 символы плюс терминатор null, блок не возвращает символы. Если он содержит 5, блок возвращает 5 символы плюс терминатор NULL.

Программное использование

Параметр блока: maxsize

8-разрядные типы данных создают в выходном векторе символьный вектор с нулевым окончанием. Для 16-разрядных и 32-разрядных типов данных первый элемент содержит ожидаемое количество элементов в остальной части выходного вектора.

Программное использование

Параметр блока: outputtype

Введите время базовой выборки или кратное времени базовой выборки. -1 означает, что время выборки наследуется.

Программное использование

sampletime

Примеры модели

Представлен в R2020b