Управляйте текстовой информацией при помощи строк

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

Создание строк в Statelfow

В Stateflow®, string является частью текста, окруженного двойными кавычками ("..."). Кроме того, одно заключенные в кавычки строки ('...') поддерживаются в графиках, которые используют C в качестве языка действия. Например, этот график берет данные о строке в качестве входа. На основе того входа график производит соответствующую строку выход.

Chart that uses a string input to switch between two states, On and Off.

Чтобы задать символ строки, откройте сначала Property Inspector. В панели Символов выберите данные, которые вы хотите преобразовать в строку. В панели Property Inspector, набор Type к string. Stateflow динамически выделяет пространство памяти для этого типа данных.

Расчет со строками

Чтобы управлять данными о строке в диаграмме Stateflow, используйте операторы в этой таблице. Для полного списка строковых операторов смотрите Операторы Языка Действия MATLAB и Операторы Языка Действия C.

ЦельФункция языка действия MATLABПримерC язык действия FuntionПример

Конкатенация двух строк

plus
h = "Hello,"
w = " world!"
x = plus(h,w)
strcat
s1 = "State";
s2 = "flow";
dest = strcat(s1,s2);

Определите длину строки

strlength
h = "Hello, world!"
x = strlength(h)
strlen
L = strlen("Stateflow");

Преобразуйте строку в двойное

str2double
X = str2double("-12.345");
str2double
X = str2double("-12.345");

Преобразуйте числовые, булевы, или перечисленные данные, чтобы представить в виде строки

строка
a = [1307];
str = string(a)
tostring
dest = tostring(RED);

Представьте усечение в виде строки

Можно также создать данные о строке количество имеющее символов. Задавать символ как строку с buffer size n символы, набор поле Type символа к stringtype (n). Текст строки может быть короче, чем буфер, но если длина строки превышает buffer size, то текст в строке является усеченным. Например, если свойство Type символа output в предыдущем графике stringtype(10), затем его значение в On состояния является усеченным к "All system".

В графиках, которые используют C в качестве языка действия, можно позволить параметру String truncation checking выбрать, остановить ли симуляцию или сгенерировать предупреждение, когда строка превышает длину, заданную stringtype(n).

Представьте проверку усечения в виде строкиОписание
errorСимуляция останавливается с ошибкой.
warningСтрока является усеченной. Симуляция продолжает предупреждение.
noneСтрока является усеченной. Симуляция не продолжает ошибки или предупреждения.

Для графиков то использование MATLAB® как язык действия, не поддерживается параметр String truncation checking, и симуляция всегда останавливается с ошибкой, если строка превышает buffer size.

Примечание

В отличие от C или C++, Stateflow интерпретирует escape-последовательности как буквенные символы. Например, строка "\n" содержит два символа, обратную косую черту и n, и не один символ новой строки.

Различия между графиками, которые используют MATLAB и C как язык действия

Основные отличия между строками в графиках, которые используют C в качестве языка действия и графиков, которые используют MATLAB, включают:

  • Графики, которые используют MATLAB в качестве поддержки языка действия только, представляют в виде строки заключенный с двойными кавычками. В графиках, которые используют C в качестве языка действия, строки могут использовать двойные кавычки или одинарные кавычки.

  • В графиках, которые используют MATLAB в качестве языка действия, strcmp возвращает 1 (true) когда строки соответствуют. В графиках, которые используют C в качестве языка действия, strcmp возвращает 0.

  • В графиках, которые используют MATLAB в качестве языка действия, strcmp возвращает boolean. В графиках, которые используют C в качестве языка действия, strcmp возвращает двойное.

  • Чтобы возвратить длину строки, используйте strlength в графиках, которые используют MATLAB в качестве языка действия и strlen в графиках, которые используют C в качестве языка действия.

  • Чтобы конкатенировать строку, используйте + операция в графиках, которые используют MATLAB в качестве языка действия и strcat в графиках, которые используют C в качестве языка действия.

  • Графики, которые используют MATLAB в качестве языка действия, осуществляют сложность на выходной переменной при использовании str2double.

  • Графики, которые используют MATLAB в качестве языка действия, поддерживают все операции сравнения, такие как >, <, или ==.

Ограничения

Данные о параметре не могут быть строками.

Нижеследующие ограничения существуют для графиков, которые используют MATLAB в качестве языка действия:

  • Постоянные данные не могут быть строками.

  • Эти операторы не поддерживаются:

    • strcat

    • extract

    • extractBetween

    • sscanf

    • compose

    • append

    • pad

    • count

    • sfprint

    • forward

    • hasChangedFrom

    • hasChangedTo

  • Таблицы переходов состояний и блоки Таблицы истинности не поддерживают строки.

  • Структуры могут только использовать эти операторы:

    • isstring

    • strcmp

    • string

    • strlength

    Для получения дополнительной информации о структурах Stateflow, смотрите доступ к Сигналам Шины Через Структуры Stateflow.

Смотрите также

| | | | | | | |

Похожие темы