我一直在解决以下问题。我是C ++的新手,我需要为嵌入式软件实现状态机。此状态机应构成应用程序逻辑的核心。它应控制控制器状态“ STANDSTILL”,“ RUN”和“ FAULT”之间的转换。这些转换的发生基于:逻辑输入状态,模拟输入状态,通过通信线路接收的消息以及在控制器软件内部创建的消息。
我想以利用C ++(面向对象编程)功能的方式来实现此状态机。所以我花了一些时间寻找合适的设计模式。我已经找到了“状态”设计模式,但不确定是否对我来说是一个不错的选择。据我以正确的方式理解该定义,它是针对以下情况的:我有一些对象(所谓的上下文对象),其行为(其公共接口的方法)很大程度上取决于其状态。
我的第一个想法是所谓的上下文对象可以是控制器本身。(我的意思是一个将实现整个设备软件模型的类。)状态相关方法可以是与状态机处理的上述输入相关的方法,即逻辑输入,模拟输入,通过通信线路接收的消息以及内部消息。但我不确定这是否是好方法。有人对这种状态设计模式的使用有经验吗?感谢您的任何建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句