/*************************************** * * * file name: Tisetup.c * * Author : Cheng-Lu Yeng * * * ***************************************/ # include # include #include "olc96fa.h" #include "olc3common.h" #include "activeclass.h" #include "activeinstance.h" #include "eventinstance.h" #include "statemodel.h" #include "processevent.h" PROTOTYPE(extern void TIAction1, (hcg_key EIid)) PROTOTYPE(extern void TIAction2, (hcg_key EIid)) PROTOTYPE(extern void TIAction3, (hcg_key EIid)) PROTOTYPE(extern void TIAction4, (hcg_key EIid)) /****************************************************/ /* */ /* Timer Setup */ /* */ /****************************************************/ FUNCTION( void TIsetup ) { static EventTypeList TIEventTypes[] = { {"TI00", "Set new timer"}, {"TI01", "Set timer"}, {"TI02", "Reset timer"}, {"TI06", "Tick occured"}, {"TI07", "fire"}}; static StateList TIStates[] = { {"TIMER_INIT", "TIAction0", NULL}, {"SET_TIMER", "TIAction1", TIAction1}, {"TIMER_TICK", "TIAction2", TIAction2}, {"TIMER_FIRE", "TIAction3", TIAction3}, {"RESET_TIMER", "TIAction4", TIAction4}}; static StateTransitionList TITransitions[] = { {"TIMER_INIT", "SET_TIMER", "TI00"}, {"RESET_TIMER", "SET_TIMER", "TI01"}, {"RESET_TIMER", "RESET_TIMER", "TI02"}, {"TIMER_TICK", "RESET_TIMER", "TI02"}, {"TIMER_FIRE", "RESET_TIMER", "TI02"}, {"SET_TIMER", "RESET_TIMER", "TI02"}, {"SET_TIMER", "TIMER_TICK", "TI06"}, {"TIMER_TICK", "TIMER_TICK", "TI06"}, {"TIMER_TICK", "TIMER_FIRE", "TI07"}}; hcg_key TISMid; hcg_key TIACid; hcg_key TIAIid; TISMid = StateModelCreateCompletely("TI State Machine", "TISM", ARRAY_SIZE(TIEventTypes), TIEventTypes, ARRAY_SIZE(TIStates), TIStates, ARRAY_SIZE(TITransitions), TITransitions); TIACid = ActiveClassCreate("Timer's Active Class", TISMid); }