/****************************************************************************
 Header file for
 ****************************************************************************/

#ifndef SMShoot_H
#define SMShoot_H

// Event Definitions
#include "SMEvents.h"

// typedefs for the states
typedef enum {
	Shoot_Aiming,
	Shoot_Waiting,
	Shoot_Releasing,
	Shoot_Firing,
	Shoot_Resetting
} ShootState_t ;

// Public Function Prototypes

//State machine functions
Event_t RunShootSM( Event_t CurrentEvent );
void StartShootSM ( Event_t CurrentEvent );
ShootState_t QueryShootSM ( void );

//other functions
/****************************************************************************
 Function
 QueryShootTimer

 Returns
 1 if current state has expired. 0 otherwise

 Description
 Signals when it is time to transition to next state during shooting process.
 ****************************************************************************/
unsigned char QueryShootTimer(void);

#endif /*Shoot_H */