Class used to interface with the handheld gamepad.

Fork of Gamepad by Craig Evans

Revision:
8:7eaf26f4b5f2
Parent:
6:b1c3dfe67f7d
Child:
9:893189072e89
--- a/Gamepad.h	Mon Feb 06 20:31:45 2017 +0000
+++ b/Gamepad.h	Tue Feb 07 10:53:46 2017 +0000
@@ -1,3 +1,14 @@
+/**
+@file Gamepad.h
+
+@brief Library for interfacing with ELEC2645 Gamepad PCB
+@brief University of Leeds
+
+@author Dr Craig A. Evans
+@date Febraury 2017
+
+*/
+
 #ifndef GAMEPAD_H
 #define GAMEPAD_H
 
@@ -33,32 +44,116 @@
 
 public:
 
+    /** Constructor
+    */
     Gamepad();
+
+    /** Destructor
+    */
     ~Gamepad();
 
+    /** Initialise all peripherals and configure interrupts
+    */
     void init();
+
+    /** Turn all LEDs on
+    */
     void leds_on();
+
+    /** Turn all LEDs off
+    */
     void leds_off();
+
+    /** Fade all to set duty-cycle
+    @param value in range 0.0 to 1.0
+    */
     void fade_leds(float val);
 
+    /** Read potentiometer
+    @returns potentiometer value in range 0.0 to 1.0
+    */
     float read_pot();
+
+    /** Play tone on piezo
+    @param frequency in Hz
+    @param duration of tone in seconds
+    */
     void tone(float frequency, float duration);
 
+    /** Check if A button pressed
+    @returns true if yes, false if no
+    */
     bool a_pressed();
+
+    /** Check if B button pressed
+    @returns true if yes, false if no
+    */
     bool b_pressed();
+
+    /** Check if X button pressed
+    @returns true if yes, false if no
+    */
     bool x_pressed();
+
+    /** Check if Y button pressed
+    @returns true if yes, false if no
+    */
     bool y_pressed();
+
+    /** Check if L button pressed
+    @returns true if yes, false if no
+    */
     bool l_pressed();
+
+    /** Check if R button pressed
+    @returns true if yes, false if no
+    */
     bool r_pressed();
+
+    /** Check if Back button pressed
+    @returns true if yes, false if no
+    */
     bool back_pressed();
+
+    /** Check if Start button pressed
+    @returns true if yes, false if no
+    */
     bool start_pressed();
+
+    /** Check if Joystick button pressed
+    @returns true if yes, false if no
+    */
     bool joystick_pressed();
+
+    /** Get magnitude of joystick movement
+    @returns value in range 0.0 to 1.0
+    */
+
+    float get_mag();
     
-    float get_mag();
+    /** Get angle of joystick movement
+    @returns value in range 0.0 to 359.9. 0.0 corresponds to N, 180.0 to S. -1.0 is central
+    */
     float get_angle();
+    
+    /** Gets joystick direction
+    @returns an enum: CENTRE, N, NE, E, SE, S, SW, W, NW,
+    */
     Direction get_direction();    // N,NE,E,SE etc.
+    
+    /** Gets raw cartesian co-ordinates of joystick
+    @returns a struct with x,y members, each in the range 0.0 to 1.0
+    */
     Vector2D get_coord();         // cartesian co-ordinates x,y
+    
+    /** Gets cartesian coordinates mapped to circular grid
+     @returns a struct with x,y members, each in the range 0.0 to 1.0
+    */
     Vector2D get_mapped_coord();  // x,y mapped to circle
+    
+    /** Gets polar coordinates of the joystick
+    @returns a struct contains mag and angle
+    */
     Polar get_polar();            // mag and angle in struct form
 
 private:
@@ -100,10 +195,10 @@
     void back_isr();
     void start_isr();
     void joy_isr();
-    
+
     bool a_flag,b_flag,x_flag,y_flag,l_flag,r_flag,back_flag,start_flag,joy_flag;
-    
-      // centred x,y values    
+
+    // centred x,y values
     float _x0;
     float _y0;
 };