Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
State machine IAR VisualState要求状态中的每个表达式都有触发器_State Machine_Iar_Visualstates_Statechart - Fatal编程技术网

State machine IAR VisualState要求状态中的每个表达式都有触发器

State machine IAR VisualState要求状态中的每个表达式都有触发器,state-machine,iar,visualstates,statechart,State Machine,Iar,Visualstates,Statechart,我已经使用基于状态机的设计工具有一段时间了,并且看到了UML建模工具,它允许您在一个状态内执行逻辑(调用函数,做其他事情)。但是,在使用IAR VisualState几天后,您似乎无法在没有触发器的状态内执行逻辑。我很困惑,因为在一个州内的每一个动作都有一个触发器是没有意义的 以下是我对状态图工具的期望: 如果我输入StateA,在输入状态时,我在entry部分设置了我的值,然后我想调用一个函数(我只想调用它,没有触发器),在该函数中,我想根据一些逻辑触发一个事件,该事件将触发从StateA到S

我已经使用基于状态机的设计工具有一段时间了,并且看到了UML建模工具,它允许您在一个状态内执行逻辑(调用函数,做其他事情)。但是,在使用IAR VisualState几天后,您似乎无法在没有触发器的状态内执行逻辑。我很困惑,因为在一个州内的每一个动作都有一个触发器是没有意义的

以下是我对状态图工具的期望: 如果我输入StateA,在输入状态时,我在entry部分设置了我的值,然后我想调用一个函数(我只想调用它,没有触发器),在该函数中,我想根据一些逻辑触发一个事件,该事件将触发从StateA到StateB或StateC的状态转换

这种期望有什么问题吗?在VisualSTATE中可能吗


非常感谢您的帮助。

VisualSTATE采用了事件驱动模式,就像任何图形用户界面程序一样。在这样的系统中发生的任何事情都是由事件触发的。然后,系统通过执行操作(计算)以及可能通过更改状态(状态转换)做出响应

事件驱动系统最困难的方面可能是控制反转,也就是说,只有在有事件要处理时才调用(状态机)代码。否则,您的代码甚至不处于活动状态。这意味着你是而不是控制,事件是。你的工作是对事件做出反应


也许在您使用visualSTATE之前,您可以学习任何有关Windows GUI编程的书籍(Visual Basic是一个很好的起点),并构建两个事件驱动的应用程序。完成此操作后,visualSTATE背后的原理将变得更加清晰。

创建3种状态:A、B、C,其中状态A是默认状态。 通过进入状态A,调用动作函数[设置 变量a和b遵循某种算法],后跟^Signal1

Entry/action()^Signal1

由信号1【将作为事件】驱动,从状态a转换为2个守卫:


ab,过渡到b状态

谢谢。不需要一本书,不同的哲学,不适合我的工作。