冰壶游戏更新:软件设计师和Stateflow
最近有人向我挑战将冰壶模拟器我们几年前(见发表这篇文章和这篇文章)利用新功能不可用的时间:程序设计师和为MATLAB Stateflow。
你可以猜一猜,这不是一种挑战我能说不!
你可以在这里找到最终的结果:冰壶游戏应用程序
概述
这是一个图说明在高级别上盘旋而上的应用程序是如何实现:
如果你下载这个应用程序,这是一个描述的文件,你会看到:
- TestCurling.m:使用创建的测试软件测试框架。这允许我执行应用程序以编程方式和验证如预期的那样运行。
- curling.mlapp:主要的应用。
- curlingLogic.sfx:Stateflow图,所有的逻辑,定义应用程序的行为。
- curlingSimulator.slx:模拟万博1manbetx仿真软件模型的动态石头在冰上。
- msfcn_showTrack。m和msfcnsweeper.m:MATLAB函数中使用仿真软件模型动画冰壶游戏应用。万博1manbetx
现在让我们看看每个部分单独
程序设计师
正如我所提到的以前的文章Stateflow图表执行MATLAB非常方便定义MATLAB应用程序的行为。在这样的应用程序中,MATLAB应用程序本身只定义了图形元素的应用,和地图应用回调事件Stateflow图表。
这就是设计视图的应用程序看起来像:
的代码,这是非常简单的。我只是定义一个startupFcn回调实例化Stateflow图表,我通过一个句柄的MATLAB程序,然后程序中的每一项(按钮、轴等),我定义一个回调,会触发一个事件,在Stateflow图表。
MATLAB Stateflow图表
这是所有应用程序定义的功能。这就是它看起来像:
这个逻辑划分一个扔在4州:等待,选择一个目标,指定速度和旋转,和扔。每个状态之间的转换是由应用程序,在每个国家,我可以与应用程序的交互组件就像我在MATLAB代码。你会看到更多关于这篇文章的最后石头动画。
一旦用户在应用程序中单击“继续”按钮,Stateflow图开始仿真,并等待它完成。为此,我定期检查模拟状态使用后函数。
几个实用程序,我需要在多个地方的图表,我创建了MATLAB函数内部Stateflow从多个地方,我可以叫图表。这里有一个例子函数使用每次我需要画一个新的石头。
万博1manbetx仿真软件模型
比我描述的版本2018年后仿真软件模型万博1manbetx,并没有改变太多。我唯一的项目修改是MATLAB函数在仿真动画的石头。
的功能与应用程序进行交互,它需要一个处理。在开始仿真之前,Stateflow图存储处理功能的应用程序阻止用户数据。这样,函数可以检索和设置在每个时间步石头的位置。这就是输出方法看起来像:
测试
在开发这样的应用程序时,它可以是乏味的测试和调试,如果您需要手动点击按钮一次又一次的同一系列。这就是软件测试框架发挥作用了。
我创建了一个函数,以编程方式执行一扔。为,新闻方法应用测试框架允许我按下一个按钮或应用程序的一个特定的位置。
然后在测试,我调用这个方法有不同的目标和速度。最后,我确认所有的石头都是预计。
这是我的屏幕是什么样子当我运行测试。注意蓝色圆编程式点击在哪里发生,随着Stateflow动画,方便我去验证它是做正确的事情:
现在轮到你了
下载这个最新版本的冰壶游戏应用MATLAB中央并让我们知道你认为在下面的评论中。
- 类别:
- 有趣,
- Stateflow,
- 有什么新鲜事吗?
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。