MATLAB Answers

Creating a Responsive GUI Within Simulink

13 ビュー (過去 30 日間)
Luke Dillon
Luke Dillon 2018 年 9 月 5 日
コメント済み: Luke Dillon 2018 年 9 月 6 日
Hi All,
I recently made a small app in App Designer where the user could provide inputs via switches/buttons, and a number of responses could be observed.
Some of these responses were a lamp changing colour from red to green, some were text changing from grey to red, and some were a textbox/area becoming visible/invisible for example.
I am now attempting to recreate the same app using Simulink and Stateflow, as Stateflow allows for more efficient behavioural modelling.
For the GUI I've used dashboard blocks (lamps, text areas etc.) and for the lamps changing colour, it's as simple as connecting them to the right output from the model.
However, I'm struggling to find a way to get text to change colour in response to a signal, or for an area to appear/disappear, etc. For example, say I've got a line of text that says 'WARNING', and it starts greyed out. I'd like it to turn bright red when the user presses a certain Dashboard button/switch.
In App Designer I was able to do this using callbacks, and I'm just wondering if anyone knows the method for doing the same in Simulink?
Many thanks!

  0 件のコメント

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

採用された回答

Sara Nadeau
Sara Nadeau 2018 年 9 月 5 日
Hi Luke,
What version of MATLAB/Simulink are you using? I think there are a couple blocks that could help you.
If your version is R2016b or later, you could use the MultiStateImage block as a responsive indicator. You would connect the MultiStateImage block to the signal you want to control its state and you could upload an image for each state. For example, the image could be of the text you want to display (WARNING) in different colors, depending on the state. The MultiStateImage block works very similarly to the Lamp block while allowing much greater control over the appearance.
If your version is R2017b or later, you can call a callback function from your dashboard with the Callback Button block. A callback function that you specify in the block dialog executes when you press the button. You can define separate functions for a 'click' (short press) and a 'press' (holding the button for an amount of time you specify).

  1 件のコメント

Luke Dillon
Luke Dillon 2018 年 9 月 6 日
Hi Sara,
I'm on MATLAB 2018a, so I could potentially use callbacks - however, I didn't know about the MultistateImage block! I've just tried it out and it seems to work much better for my model - just the kind of thing I was after.
Many thanks for the help!

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

その他の回答 (0 件)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by