enter() 操作名の形式は以下のとおりです。
<object>_<state>_enter(<object*> const <me>)
例えば、HomeHeatingSystem の systemControl 状態の場合には、以下の enter() 操作が生成されます。
void HomeHeatingSystem_systemControl_enter(
HomeHeatingSystem* const me);
enter() 操作は、 (ステートチャートに基づいて) 退場する状態の <state>_subState および <state>_active メンバーに、 入場する状態を設定します。例えば、HomeHeatingSystem の systemControl 状態の enter() 操作は、 rootState (前の状態) の 2 つのメンバーに 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");
}