How to change sting type in stateflow to C char type?

2 ビュー (過去 30 日間)
jack
jack 2025 年 2 月 19 日
コメント済み: jack 2025 年 2 月 21 日
Now I have define a function in C file, For example ,Test_b(const char *a, uint8 b);Then I use stateflow shat to call the function tate_b(&c,d),c is defined in stateflow data whose type is string, d is also defined in stateflow data chose type is uint8; When I run simulink, it return a problem datatype is incompatible.
So I want to ask a question ,How to change sting type in stateflow to C char type?
  1 件のコメント
jack
jack 2025 年 2 月 19 日
I have Try to Use MATLABfunction,to convert string to char by using cnvertStringToChar, but it also return the problem "Attempt to conert the unsupported data type"

サインインしてコメントする。

採用された回答

Adarsh
Adarsh 2025 年 2 月 21 日
Hi @jack,
I understand that you are trying to use a function defined in “C” file in Stateflow and getting error in conversion of data from string to char using “convertStringToChar” MATLAB function. An alternate method to give a char input to a “C” function is to convert the string input to ascii values using “str2ascii” function and passing the output to the “C” function leveraging the implicit conversion properties of the “C” function to automatically convert ascii values to their respective charversions as the input to the function is defined as char*.
For more information on how to utilize this method for type conversion and examples related to it, the following documentation link can be referred:
  1. “Custom code with string data” - https://www.mathworks.com/help/stateflow/ug/tutorial-custom-code-with-string-data.html
Hope it resolves the error.
  1 件のコメント
jack
jack 2025 年 2 月 21 日
Yes, I solved the problem through that method。 Thank you Very much

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by