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

Чтобы задать символ строки, установите его поле Type на string. Stateflow динамически выделяет пространство памяти для этого типа данных.
Также можно создать данные о строке количество имеющее символов. Чтобы задать символ строки с buffer size символов n, установите его поле Type на . Текст строки может быть короче, чем буфер, но если это превышает buffer size, затем текст в строке является усеченным. Например, если символstringtype(n), output в предыдущем графике задан как stringtype(10), то его значение в On состояния является усеченным к "All system". В зависимости от параметра конфигурации String truncation checking можно остановить симуляцию и диагностировать усечение данных о строке.
| Представьте проверку усечения в виде строки | Описание |
|---|---|
error | Симуляция останавливается с ошибкой. |
warning | Строка является усеченной. Симуляция продолжает предупреждение. |
none | Строка является усеченной. Симуляция не продолжает ошибки или предупреждения. |
В отличие от C или C++, Stateflow интерпретирует escape-последовательности как буквенные символы. Например, строка "\n" содержит два символа, наклонную черту влево и n, и не символ новой строки.
Чтобы управлять данными о строке в диаграмме Stateflow, используйте операторы, перечисленные в этой таблице.
| Оператор | Синтаксис | Описание | Пример |
|---|---|---|---|
strcpy |
| Присвоения представляют в виде строки | Присвоения представляют данные в виде строки к s1 = 'hello'; s2 = "good bye"; |
| Альтернативный способ выполнить | Присвоения представляют данные в виде строки к strcpy(s3,'howdy'); strcpy(s4,"so long"); | |
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