exponenta event banner

Декодирование ASCII

Анализ вектора символов ASCII на значения Simulink

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

  • ASCII Decode block

Описание

Блок декодирования ASCII анализирует вектор входных символов в соответствии со спецификатором формата, подобным scanf и делает преобразованные значения доступными для приложения реального времени.

Порты

Вход

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

Входной вектор может быть либо 8-разрядным, либо 16-разрядным и быть подписанным или неподписанным. Если формат данных является 16-битным, блок игнорирует верхние 8 битов каждой записи.

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

Продукция

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

Выходные порты, соответствующие элементам в строке Format.

Зависимость

Количество переменных определяет количество выходных портов.

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

Параметры

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

Введите a scanf как строка формата. Каждый спецификатор формата, например %d должен соответствовать соответствующей части входного вектора. Строки литералов в формате должны совпадать с первым символом и числом символов. Спецификаторы формата следуют обычному описанию для scanf.

Пример строки формата:

'alpha %d bravo %f\n'

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

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

Введите количество выходных портов для этого блока. Например:

Если строка Format имеет значение %xmore text%x и входной вектор для блока имеет cdmabcdefgh90, необходимо указать значение параметра Number of variables как 2.

Первой переменной присваивается значение 0xcd. Далее - символьный вектор mabcdefgh считается совпадением с more text потому что:

  • Первым символом для обоих векторов символов является m.

  • Оба вектора символов имеют одинаковое количество символов.

Второй переменной присваивается значение 0x90. Вектор символов mabcdefgh не обязательно должно точно соответствовать значению строки Format. Это поведение отличается от поведения для scanf, что требует точного совпадения.

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

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

Вектор ячейки с таким же количеством элементов, как указано в поле Number of variables, может задавать различные типы данных для каждого выходного порта. Один элемент реплицируется. Например:

nvars=3

{ } - Три выхода являются двойными.

{'uint8'} - Три выхода: uint8.

{'uint16', 'double', 'uint8'} - Первый выход - uint16, второй выход - double, и третий выход является uint8.

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

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

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

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