Чтобы использовать текстовые данные для поведения диаграммы управления и управлять текстом, чтобы создать естественный язык вывод, используйте строки. Данные о строке доступны только в графиках 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