Uml 状态机如何处理包含值的事件(如楼层编号)?

Uml 状态机如何处理包含值的事件(如楼层编号)?,uml,boost-msm,Uml,Boost Msm,我在玩弄(标签是针对boost msm的,因为msm lite没有标签,但类似的问题也适用),我有一个问题,即如何设计具有许多可能输入的状态机 想象你正在做电梯的模特。除了移动、停止、门打开、门关闭等明显的状态外,我想知道如何模拟按钮按下(即从-2到39的数字),因为不可能有那么多事件(42只针对每个按钮按下) 您可以在转换上使用保护条件。它们看起来像[currentFloor!=请求的楼层]。也许更好的方法是对事件进行建模,例如选择上层,选择下层,选择当前楼层。这将42个按钮整齐地折叠为三类。

我在玩弄(标签是针对boost msm的,因为msm lite没有标签,但类似的问题也适用),我有一个问题,即如何设计具有许多可能输入的状态机


想象你正在做电梯的模特。除了移动、停止、门打开、门关闭等明显的状态外,我想知道如何模拟按钮按下(即从-2到39的数字),因为不可能有那么多事件(42只针对每个按钮按下)

您可以在转换上使用保护条件。它们看起来像
[currentFloor!=请求的楼层]
。也许更好的方法是对事件进行建模,例如
选择上层
选择下层
选择当前楼层
。这将42个按钮整齐地折叠为三类。

您可以在转换时使用保护条件。它们看起来像
[currentFloor!=请求的楼层]
。也许更好的方法是对事件进行建模,例如
选择上层
选择下层
选择当前楼层
。我想如果你设计一个有42个按钮的楼层选择,你可能不会将每个按钮映射到一个输入,而是制作一个矩阵(没有人会把42个按钮放在彼此的上面,是吗?)。当然,您不会将每一行建模为一列,而只建模为两列,这样您就可以显示每一行和每一列的顺序轮询。也许你今天也可以使用“智能”按钮,它有一个微型芯片,可以通过串行线发送一些“我被按下了”的信息。或者你介绍一个


在列举了这些例子之后,我倾向于以过于宽泛的方式来结束这个问题。

我想如果你设计一个有42个按钮的楼层选择,你可能不会将每个按钮映射到单个输入,而是制作一个矩阵(没有人会将42个按钮放在彼此的顶部,是吗?)。当然,您不会将每一行建模为一列,而只建模为两列,这样您就可以显示每一行和每一列的顺序轮询。也许你今天也可以使用“智能”按钮,它有一个微型芯片,可以通过串行线发送一些“我被按下了”的信息。或者你介绍一个


在列举了这些例子之后,我倾向于认为这个问题过于宽泛。

你无法理解简单的具体问题并不意味着它过于宽泛。电梯是一个使用状态机建模的常见设置示例。谢谢你的夸奖。你无法理解简单的具体问题并不意味着它太宽泛。电梯是一个常见的设置示例,当用状态机建模某事时。谢谢赞美。如果你找到问题的答案,请考虑,并投票表决。如果你没有找到一个满意的答案,请留下评论。如果你找到问题的答案,请考虑,并投票表决。如果您对您的问题没有找到满意的答案,请留下评论。