enter() 操作名称具有以下格式:
<object>_<state>_enter(<object*> const <me>)
例如,以下 enter() 操作是为 systemControl 状态的 HomeHeatingSystem 生成的:
void HomeHeatingSystem_systemControl_enter(
HomeHeatingSystem* const me);
enter() 操作将要退出的状态的 <state>_subState 和 <state>_active 成员设置为要进入的状态(根据状态图)。例如,HomeHeatingSystem 的 systemControl 状态的 enter() 操作将这两个 rootState(前一状态)的成员设置为 systemControl 状态(要进入的状态),如下所示:
void HomeHeatingSystem_systemControl_enter(
HomeHeatingSystem* const me) {
NOTIFY_STATE_ENTERED(me, HomeHeatingSystem,
"ROOT.systemControl");
me->rootState_subState = HomeHeatingSystem_systemControl;
me->rootState_active = HomeHeatingSystem_systemControl;
RiCTask_schedTm(me->ric_reactive.myTask, 3000,
HomeHeatingSystem_Timeout_systemControl_id,
&me->ric_reactive, "ROOT.systemControl");
}