//#define TEST_WITHOUT_JSR /**************************************************************************** Module ES_Configure.h Description This file contains macro definitions that are edited by the user to adapt the Events and Services framework to a particular application. Notes History When Who What/Why -------------- --- -------- 10/21/13 20:54 jec lots of added entries to bring the number of timers and services up to 16 each 08/06/13 14:10 jec removed PostKeyFunc stuff since we are moving that functionality out of the framework and putting it explicitly into the event checking functions 01/15/12 10:03 jec started coding *****************************************************************************/ #ifndef CONFIGURE_H #define CONFIGURE_H /****************************************************************************/ // The maximum number of services sets an upper bound on the number of // services that the framework will handle. Reasonable values are 8 and 16 // corresponding to an 8-bit(uint8_t) and 16-bit(uint16_t) Ready variable size #define MAX_NUM_SERVICES 16 /****************************************************************************/ // This macro determines that nuber of services that are *actually* used in // a particular application. It will vary in value from 1 to MAX_NUM_SERVICES #define NUM_SERVICES 2 /****************************************************************************/ // These are the definitions for Service 0, the lowest priority service. // Every Events and Services application must have a Service 0. Further // services are added in numeric sequence (1,2,3,...) with increasing // priorities // the header file with the public fuction prototypes #define SERV_0_HEADER "MasterSM.h" // the name of the Init function #define SERV_0_INIT InitMasterSM // the name of the run function #define SERV_0_RUN RunMasterSM // How big should this services Queue be? #define SERV_0_QUEUE_SIZE 6 /****************************************************************************/ // The following sections are used to define the parameters for each of the // services. You only need to fill out as many as the number of services // defined by NUM_SERVICES /****************************************************************************/ // These are the definitions for Service 1 #if NUM_SERVICES > 1 #ifdef TEST_WITHOUT_JSR // the header file with the public fuction prototypes #define SERV_1_HEADER "GameTimingService.h" // the name of the Init function #define SERV_1_INIT InitGameTimingService // the name of the run function #define SERV_1_RUN RunGameTimingService // How big should this services Queue be? #define SERV_1_QUEUE_SIZE 3 #else // the header file with the public fuction prototypes #define SERV_1_HEADER "JSR.h" // the name of the Init function #define SERV_1_INIT InitJSR // the name of the run function #define SERV_1_RUN RunJSR // How big should this services Queue be? #define SERV_1_QUEUE_SIZE 3 #endif #endif /****************************************************************************/ // These are the definitions for Service 2 #if NUM_SERVICES > 2 // the header file with the public fuction prototypes #define SERV_2_HEADER "TapeSensor.h" // the name of the Init function #define SERV_2_INIT InitTapeSensor // the name of the run function #define SERV_2_RUN RunTapeSensor // How big should this services Queue be? #define SERV_2_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 3 #if NUM_SERVICES > 3 // the header file with the public fuction prototypes #define SERV_3_HEADER "TestHarnessService3.h" // the name of the Init function #define SERV_3_INIT InitTestHarnessService3 // the name of the run function #define SERV_3_RUN RunTestHarnessService3 // How big should this services Queue be? #define SERV_3_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 4 #if NUM_SERVICES > 4 // the header file with the public fuction prototypes #define SERV_4_HEADER "TestHarnessService4.h" // the name of the Init function #define SERV_4_INIT InitTestHarnessService4 // the name of the run function #define SERV_4_RUN RunTestHarnessService4 // How big should this services Queue be? #define SERV_4_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 5 #if NUM_SERVICES > 5 // the header file with the public fuction prototypes #define SERV_5_HEADER "TestHarnessService5.h" // the name of the Init function #define SERV_5_INIT InitTestHarnessService5 // the name of the run function #define SERV_5_RUN RunTestHarnessService5 // How big should this services Queue be? #define SERV_5_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 6 #if NUM_SERVICES > 6 // the header file with the public fuction prototypes #define SERV_6_HEADER "TestHarnessService6.h" // the name of the Init function #define SERV_6_INIT InitTestHarnessService6 // the name of the run function #define SERV_6_RUN RunTestHarnessService6 // How big should this services Queue be? #define SERV_6_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 7 #if NUM_SERVICES > 7 // the header file with the public fuction prototypes #define SERV_7_HEADER "TestHarnessService7.h" // the name of the Init function #define SERV_7_INIT InitTestHarnessService7 // the name of the run function #define SERV_7_RUN RunTestHarnessService7 // How big should this services Queue be? #define SERV_7_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 8 #if NUM_SERVICES > 8 // the header file with the public fuction prototypes #define SERV_8_HEADER "TestHarnessService8.h" // the name of the Init function #define SERV_8_INIT InitTestHarnessService8 // the name of the run function #define SERV_8_RUN RunTestHarnessService8 // How big should this services Queue be? #define SERV_8_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 9 #if NUM_SERVICES > 9 // the header file with the public fuction prototypes #define SERV_9_HEADER "TestHarnessService9.h" // the name of the Init function #define SERV_9_INIT InitTestHarnessService9 // the name of the run function #define SERV_9_RUN RunTestHarnessService9 // How big should this services Queue be? #define SERV_9_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 10 #if NUM_SERVICES > 10 // the header file with the public fuction prototypes #define SERV_10_HEADER "TestHarnessService10.h" // the name of the Init function #define SERV_10_INIT InitTestHarnessService10 // the name of the run function #define SERV_10_RUN RunTestHarnessService10 // How big should this services Queue be? #define SERV_10_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 11 #if NUM_SERVICES > 11 // the header file with the public fuction prototypes #define SERV_11_HEADER "TestHarnessService11.h" // the name of the Init function #define SERV_11_INIT InitTestHarnessService11 // the name of the run function #define SERV_11_RUN RunTestHarnessService11 // How big should this services Queue be? #define SERV_11_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 12 #if NUM_SERVICES > 12 // the header file with the public fuction prototypes #define SERV_12_HEADER "TestHarnessService12.h" // the name of the Init function #define SERV_12_INIT InitTestHarnessService12 // the name of the run function #define SERV_12_RUN RunTestHarnessService12 // How big should this services Queue be? #define SERV_12_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 13 #if NUM_SERVICES > 13 // the header file with the public fuction prototypes #define SERV_13_HEADER "TestHarnessService13.h" // the name of the Init function #define SERV_13_INIT InitTestHarnessService13 // the name of the run function #define SERV_13_RUN RunTestHarnessService13 // How big should this services Queue be? #define SERV_13_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 14 #if NUM_SERVICES > 14 // the header file with the public fuction prototypes #define SERV_14_HEADER "TestHarnessService14.h" // the name of the Init function #define SERV_14_INIT InitTestHarnessService14 // the name of the run function #define SERV_14_RUN RunTestHarnessService14 // How big should this services Queue be? #define SERV_14_QUEUE_SIZE 3 #endif /****************************************************************************/ // These are the definitions for Service 15 #if NUM_SERVICES > 15 // the header file with the public fuction prototypes #define SERV_15_HEADER "TestHarnessService15.h" // the name of the Init function #define SERV_15_INIT InitTestHarnessService15 // the name of the run function #define SERV_15_RUN RunTestHarnessService15 // How big should this services Queue be? #define SERV_15_QUEUE_SIZE 3 #endif /****************************************************************************/ // Name/define the events of interest // Universal events occupy the lowest entries, followed by user-defined events typedef enum { ES_NO_EVENT = 0, ES_ERROR, /* used to indicate an error from the service */ ES_INIT, /* used to transition from initial pseudo-state */ ES_TIMEOUT, /* signals that the timer has expired */ /* HSM events */ ES_ENTRY, ES_EXIT, ES_ENTRY_HISTORY, /* User-defined events start here */ ES_NEW_KEY, /* signals a new key received from terminal */ ES_LOCK, ES_UNLOCK, EV_GOAL_TAPE, EV_GAME_STATUS, EV_REQUEST_SENT, //event from the JSR module EV_PAS_DARMES, EV_END_MATCH, EV_RECESS, EV_SUDDEN_DEATH, EV_FRONT_WALL_REACHED, EV_BACK_WALL_REACHED, EV_TAPE_REACHED, EV_START_JOUSTING } ES_EventTyp_t ; /****************************************************************************/ // These are the definitions for the Distribution lists. Each definition // should be a comma seperated list of post functions to indicate which // services are on that distribution list. #define NUM_DIST_LISTS 0 #if NUM_DIST_LISTS > 0 #define DIST_LIST0 PostTestHarnessService0, PostTestHarnessService0 #endif #if NUM_DIST_LISTS > 1 #define DIST_LIST1 PostTestHarnessService1, PostTestHarnessService1 #endif #if NUM_DIST_LISTS > 2 #define DIST_LIST2 PostTemplateFSM #endif #if NUM_DIST_LISTS > 3 #define DIST_LIST3 PostTemplateFSM #endif #if NUM_DIST_LISTS > 4 #define DIST_LIST4 PostTemplateFSM #endif #if NUM_DIST_LISTS > 5 #define DIST_LIST5 PostTemplateFSM #endif #if NUM_DIST_LISTS > 6 #define DIST_LIST6 PostTemplateFSM #endif #if NUM_DIST_LISTS > 7 #define DIST_LIST7 PostTemplateFSM #endif /****************************************************************************/ // This are the name of the Event checking funcion header file. #define EVENT_CHECK_HEADER "EventCheckers.h" /****************************************************************************/ // This is the list of event checking functions #define EVENT_CHECK_LIST CheckFrontBumperHit, CheckBackBumperHit, CheckForTape, CheckForBeacon, Check4Keystroke /****************************************************************************/ // These are the definitions for the post functions to be executed when the // correspnding timer expires. All 16 must be defined. If you are not using // a timer, then you should use TIMER_UNUSED // Unlike services, any combination of timers may be used and there is no // priority in servicing them #define TIMER_UNUSED ((pPostFunc)0) #define TIMER0_RESP_FUNC PostJSR #define TIMER1_RESP_FUNC PostJSR #define TIMER2_RESP_FUNC PostMasterSM #define TIMER3_RESP_FUNC PostMasterSM #define TIMER4_RESP_FUNC PostMasterSM #define TIMER5_RESP_FUNC PostMasterSM #ifdef TEST_WITHOUT_JSR #define TIMER6_RESP_FUNC PostGameTimingService #else #define TIMER6_RESP_FUNC TIMER_UNUSED #endif #define TIMER7_RESP_FUNC PostMasterSM #define TIMER8_RESP_FUNC TIMER_UNUSED//PostTapeSensor #define TIMER9_RESP_FUNC PostMasterSM #define TIMER10_RESP_FUNC PostMasterSM #define TIMER11_RESP_FUNC PostMasterSM #define TIMER12_RESP_FUNC TIMER_UNUSED #define TIMER13_RESP_FUNC TIMER_UNUSED #define TIMER14_RESP_FUNC TIMER_UNUSED #define TIMER15_RESP_FUNC TIMER_UNUSED /****************************************************************************/ // Give the timer numbers symbolc names to make it easier to move them // to different timers if the need arises. Keep these definitons close to the // definitions for the response functions to make it easier to check that // the timer number matches where the timer event will be routed // These symbolic names should be changed to be relevant to your application #define TRANSFER_TIMER 0 #define QUERY_TIMER 1 #define RELOAD_TIMER 2 #define PID_TIMER 3 #define JOUST_TIMER 4 #define HONORABLE_PAUSE_TIMER 5 #define TIMING_TIMER 6 #define SHOOTING_TIMER 7 #define TAPE_TIMER 8 #define ULTRASONIC_TIMER 9 #define SWING_TIMER 10 #define TURN_TIMER 11 // define the corresponding timer intervals // we may assume a 1.024mS/tick timing #define TRANSFER_INTERVAL 2 #define QUERY_INTERVAL 100 #define PID_INTERVAL 20 #define JOUST_DEPLOY_INTERVAL 3000 #define SHOOTING_INTERVAL 5000 #define RELOAD_WAIT_INTERVAL 10 #define WAIT_FOR_BALL_INTERVAL 3000 #define RELOADING_IR_INTERVAL 450 #define TAPE_SENSOR_INTERVAL 100 #define ULTRASONIC_INTERVAL 20 #define TURN_INTERVAL 100 #define SWING_INTERVAL 700 #define HONORABLE_PAUSE_INTERVAL (1000 + SWING_INTERVAL) #endif /* CONFIGURE_H */