Чтобы использовать текстовые данные для поведения диаграммы управления и управлять текстом, чтобы создать естественный язык выход, используйте строки. Данные о строке доступны только в графиках Stateflow®, которые используют C в качестве языка действия.
В Stateflow string является частью текста, окруженного кавычками ("
..."
или '
...'
). Например, этот график берет данные о строке в качестве входа. На основе того входа график производит соответствующую строку выход.
Чтобы задать символ строки, установите его поле Type на string
. Stateflow динамически выделяет пространство памяти для этого типа данных.
В качестве альтернативы можно создать данные о строке количество имеющее символов. Задавать символ строки с buffer size n
символы, набор его поле Type к stringtype (
. Текст строки может быть короче, чем буфер, но если это превышает buffer size, затем текст в строке является усеченным. Например, если символ n
)output
в предыдущем графике задан как stringtype(10)
, затем его значение в On
состояния является усеченным к
"All system"
. В зависимости от параметра конфигурации String truncation checking можно остановить симуляцию и диагностировать усечение данных о строке.
Представьте проверку усечения в виде строки | Описание |
---|---|
error | Симуляция останавливается с ошибкой. |
warning | Строка является усеченной. Симуляция продолжает предупреждение. |
none | Строка является усеченной. Симуляция не продолжает ошибки или предупреждения. |
Примечание
В отличие от C или C++, Stateflow интерпретирует escape-последовательности как буквенные символы. Например, строка "\n"
содержит два символа, обратную косую черту и n
, и не символ новой строки.
Чтобы управлять данными о строке в диаграмме Stateflow, используйте операторы, перечисленные в этой таблице.
Оператор | Синтаксис | Описание | Пример |
---|---|---|---|
strcpy |
| Альтернативный способ выполнить | Присвойте данные о строке strcpy(s1,'So long'); strcpy(s2,"Farewell"); strcpy(s3,s2); |
| Присвоения представляют в виде строки | Присвойте данные о строке s4 = 'Auf Wiedersehen'; s5 = "Adieu"; s6 = s4; | |
strcat |
| Конкатенации строк | Конкатенация строк, чтобы сформировать s1 = "State"; s2 = "flow"; dest = strcat(s1,s2); |
substr |
| Возвращает подстроку длины | Извлеките подстроку str = "Stateflow, rule the waves!";
dest = substr(str,0,9); |
tostring |
| Преобразует числовые, булевы, или перечисленные данные, чтобы представить в виде строки. | Преобразуйте числовое значение, чтобы представить в виде строки dest = tostring(1.2345); |
Преобразуйте булево значение, чтобы представить в виде строки dest = tostring(1==1); | |||
Преобразуйте перечисляемое значение, чтобы представить в виде строки dest = tostring(RED); | |||
strcmp |
| Выдерживает сравнение представляет в виде строки
Строки рассматриваются идентичными, когда у них есть тот же размер и содержимое. Этот оператор сопоставим с библиотечной функцией C | Возвратите значение tf = strcmp("abc","abc"); |
Возвратите ненулевое значение (строки не равны). tf = strcmp("abc","abcd"); | |||
| Альтернативный способ выполнить | Возвратите значение "abc" == "abc"; | |
| Альтернативный способ выполнить | Возвратите значение "abc" != "abcd"; | |
| Возвращает 0 если первый n символы в s1 и s2 идентичны. | Возвратите значение tf = strcmp("abc","abcd",3); | |
strlen |
| Возвращает количество символов в строке str . | Возвратите значение L = strlen("Stateflow"); |
str2double |
| Преобразует текст в строке
Если | Возвратите значение X = str2double("-12.345"); |
Возвратите значение X = str2double("1.234e5"); | |||
str2ascii |
| Возвращает массив типа | Возвратите A = str2ascii("Hello",5); |
ascii2str |
| Преобразует значения ASCII в массиве | Возвращаемая строка A[0] = 72; A[1] = 105; A[2] = 33; dest = ascii2str(A); |
Используйте данные о строке на этих уровнях иерархии Stateflow:
График
Субдиаграмма
Состояние
Используйте данные о строке в качестве аргументов для:
Состояния активности
Условие и действия перехода
Графические функции
Функции Simulink®
Функции таблицы истинности, которые используют C в качестве языка действия
Если вам установили Simulink Coder™, можно использовать данные о строке для симуляции и генерации кода.
ascii2str | str2ascii | str2double | strcat | strcmp | strcpy | strlen | substr | tostring