C++ 状态设计模式在嵌入式软件中的应用

C++ 状态设计模式在嵌入式软件中的应用,c++,design-patterns,embedded,C++,Design Patterns,Embedded,我一直在解决以下问题。我是一个C++新手,我需要实现 嵌入式软件的状态机。这个状态机应该构成 应用程序逻辑的核心。它应该控制状态之间的转换 控制器的静止、运行和故障。这些转换是基于 on:逻辑输入状态、模拟输入状态、通过通信线路接收的消息以及控制器软件内部创建的消息 我希望以一种利用 C++的面向对象编程的能力。所以我花了一些时间在 寻找一些合适的设计模式。我发现国家正在设计 但我不确定这对我来说是否是一个好的选择。远至 我以正确的方式理解该定义,该定义适用于以下情况: 有一些对象称为上下文对象

我一直在解决以下问题。我是一个C++新手,我需要实现 嵌入式软件的状态机。这个状态机应该构成 应用程序逻辑的核心。它应该控制状态之间的转换 控制器的静止、运行和故障。这些转换是基于 on:逻辑输入状态、模拟输入状态、通过通信线路接收的消息以及控制器软件内部创建的消息

我希望以一种利用 C++的面向对象编程的能力。所以我花了一些时间在 寻找一些合适的设计模式。我发现国家正在设计 但我不确定这对我来说是否是一个好的选择。远至 我以正确的方式理解该定义,该定义适用于以下情况: 有一些对象称为上下文对象,它的公共接口的行为方法强烈依赖于它的状态


我的第一个想法是,所谓的上下文对象可以是控制器本身。我指的是实现整个设备的软件模型的类。状态相关方法可以是与状态机处理的上述输入相关联的方法,即逻辑输入、模拟输入、通过通信线路接收的消息和内部消息。但我不确定这是否是一个好办法。有没有人有过使用状态设计模式的经验?谢谢你的建议。

状态模式是一个很好的开始设计。但是如前所述,有一些现有的工具可以为您生成代码。另一个你可以看的是。这是一个使用“C++的强大功能”并基于状态模式设计的代码。

状态模式是一个很好的开始设计。但是如前所述,有一些现有的工具可以为您生成代码。另一个你可以看的是。这一个代码使用“C++的力量”,也是基于状态模式设计的。

仅仅因为你使用C++,你不一定要使用面向对象的设计。在实现琐碎的事情时,也不必使用OOD。由于状态机是一种非常简单的数据结构,因此在不涉及OOD的情况下实现状态机是非常可行的。基本上,它只是一个带有命名成员的函数指针数组


这种模式被称为。可以找到一个用于嵌入式系统的典型C实现。可以围绕该数组编写一个简单的类。嵌入式系统中的状态机几乎总是静态和只读的,因此类必须是单例的。你会发现这里使用类没有明显的好处。

仅仅因为你使用C++,你不一定要使用面向对象的设计。在实现琐碎的事情时,也不必使用OOD。由于状态机是一种非常简单的数据结构,因此在不涉及OOD的情况下实现状态机是非常可行的。基本上,它只是一个带有命名成员的函数指针数组


这种模式被称为。可以找到一个用于嵌入式系统的典型C实现。可以围绕该数组编写一个简单的类。嵌入式系统中的状态机几乎总是静态和只读的,因此类必须是单例的。您会发现在这里使用类没有明显的好处。

据我所知,您将状态机模式正确地转移到了您的情况中。您正在寻找的是有限状态机,它已经有很多实现。明确检查中的一个是否可以根据您的特定项目约束使用。据我所知,您的问题是您将状态机模式正确地转移到了您的情况。您正在寻找的是有限状态机,它已经有相当多的实现。明确检查是否可以根据您的特定项目约束使用中的一个