[英]Trouble with agent state chart
我正在尝试创建一个代理状态图,应该在每天的下午4点(周末除外)进行转换。
我已经尝试过:1.有条件的转换(条件:getHourOfDay()== 16)2:超时转换,每隔1 s将代理“重新插入”到图表中,并检查time = 16。
我的代码仍未运行,是否有人知道如何解决?
这是我的状态图视图。 客户是一种资源,应该每天下午4点从我的库存中“取出”产品。 它应该在“活动”状态下发生。
我设置了一个从1秒运行的超时过渡(从Active-Active)。
在“进入动作”的“活动”状态下,我编写了代码以检查是否为下午4点,如果是,请运行我的动作。
我以为,自从我设置了一个超时转换后,它将每隔1秒检查一次我的状况,但显然它不起作用。
出于性能原因,请勿使用基于条件的转换。 在您的情况下,它也永远不会触发,因为仅在模型中发生某些事情时才对其进行评估。 顺便说一下,下午4点不是这种情况。
重新使用超时方法:为什么要将代理“重新插入”到自己的状态图中? 不确定我了解...
为什么不根据您的重复要求设置计划或事件,并使其发送消息到状态图: stateChart.fireEvent("trigger!");
。 在状态图中,添加一个等待该消息的基于消息的过渡。 这将起作用。
但是,请小心了解Statechart.fireEvent()
和Statechart.receiveMessage()
函数之间的区别。
PS:并同意Felipe的观点:请按照其含义使用SOF,即也将答复标记为已解决。 它不仅可以帮助我们,也可以帮助未来的用户快速找到解决方案:-)欢呼
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.