<object>_<state>_takeEvent(<object>* const <me>, <event ID>)
事件 ID 是針對位於套件規格檔案頂端的事件所產生的識別號碼。
例如,針對 HomeHeatingSystem 的 systemControl 狀態,會產生下列 takeEvent() 作業:
int HomeHeatingSystem_systemControl_takeEvent( HomeHeatingSystem* const me, short id);
int HomeHeatingSystem_systemControl_takeEvent(
HomeHeatingSystem* const me, short id) {
int res = eventNotConsumed;
if(id == Timeout_id)
{
if(RiCTimeout_getTimeoutId((RiCTimeout*)
me->ric_reactive.current_event) ==
HomeHeatingSystem_Timeout_systemControl_id)
{
NOTIFY_TRANSITION_STARTED(me,
HomeHeatingSystem, "1");
HomeHeatingSystem_systemControl_exit(me);
{
/*#[ transition 1 */
if(IS_IN(&me->theFurnace,Furnace_starting))
RiCGEN(&me->theFurnace,motorReady());
/*#]*/
}
systemControl_entDef(me);
NOTIFY_TRANSITION_TERMINATED(me,
HomeHeatingSystem, "1");
res = eventConsumed;
}
}
return res;
}