FIFO Read HDRS

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

  • Библиотека:
  • Simulink Real-Time/ RS232

  • FIFO Read HDRS block

Описание

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

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

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

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

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

The matlab/toolbox/slrealtime/examples папка содержит примеры, которые показывают, как использовать блок FIFO Read HDRS: 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 terminator, блок не возвращает никаких символов. Если он содержит 5, блок возвращается 5 символы плюс терминатор строки.

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

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

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

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

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

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

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

sampletime

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

Введенный в R2020b