/**************************************************************************** Module TOMDebug.c Description Debug Module for project. Contains code to force events to event checker through keyboard input, as well as terminal printouts of states and commands. ****************************************************************************/ /*----------------------------- Include Files -----------------------------*/ #include "GlobalHeader.h" #include "TOMDebug.h" #include "SMMaster.h" /**************************************************************************** Function DebugEvent Parameters none Returns Event_t event to force to event checker Description If a key has been hit, the corresponding event is returned. ****************************************************************************/ Event_t DebugEvent (void) { Event_t Event = EV_NO_EVENT; if ( kbhit() != 0) { unsigned char KeyStroke = getchar(); switch ((KeyStroke)) { //General Events case '0': Event = EV_NO_EVENT; break; // case '1': Event = EV_ENTRY; break; // case '2': Event = EV_EXIT; break; //Master and Gameplay Events case 'q': Event = EV_Game_On; break; case 'w': Event = EV_Game_Pause; break; case 'e': Event = EV_Play_AtDispenser; break; case 'r': Event = EV_Play_ToDispenser; break; case 't': Event = EV_Request_Timeout; break; case 'y': Event = EV_Shoot_TimerExpired; break; case 'u': Event = EV_Shoot_BallAtGate; break; //OC Internal Events // case 'a': Event = EV_OC_TimerExpired; break; // case 's': Event = EV_OC_CounterExpired; break; // case 'd': Event = EV_OC_NewCommand; break; // case 'f': Event = EV_OC_NewRead; break; //OC External Events // case 'g': Event = EV_OC_NewResponse; break; //New response from field //Drivetrain Events case 'z': Event = EV_Drive_TimerExpired; break; case 'x': Event = EV_Drive_Transition; break; case 'c': Event = EV_Drive_BeaconFound; break; case 'v' : Event = EV_Drive_BeaconLost; break; case 'b' : Event = EV_Drive_Aimed; break; //Sensors case 'n' : Event = EV_Sensor_Bump; break; case 'm' : Event = EV_Sensor_TapeFront; break; case ',' : Event = EV_Sensor_TapeBack; break; case '.' : ClearBackTapeCache(); ClearFrontTapeCache(); break; } } return Event; } /**************************************************************************** Function DebugPrint Parameters Event_t current event Returns none Description Prints desired outputs to terminal ****************************************************************************/ void DebugPrint (Event_t Event) { if ((Event != 0) && (Event != EV_NO_EVENT) && (Event != EV_OC_TimerExpired) && (Event != EV_OC_NewCommand) && (Event != EV_OC_NewRead)) //(Event != EV_OC_CounterExpired) && { printf("Event: %d ",Event); if (Event == EV_OC_NewResponse) { printf(" Com: 0x%x Resp 0x%x\r\n",QueryOCLastCommand(),QueryOCResponse()); } /* printf("\r\nStates: "); printf("Master: %d ",QueryMasterSM()); printf("Game: %d ",QueryGameSM()); printf("Play: %d ",QueryPlaySM()); printf("To: %d ",QueryToDispenserSM()); printf("Req: %d ",QueryRequestBallSM()); printf("Shoot: %d ",QueryShootSM()); printf("Drive: %d ",QueryDriveSM()); printf("\r\n");*/ } //printf("L %d C %d R %d BL %d BR %d Ball %d Port 0x%x\r\n",ADS12_ReadADPin(5),ADS12_ReadADPin(6),ADS12_ReadADPin(7),ADS12_ReadADPin(2),ADS12_ReadADPin(3),ADS12_ReadADPin(4),PTAD); }