 #include <LowPower_Teensy3.h>
 #include <FiniteStateMachine.h>
 
+// SPI Pins
 #define OLED_MOSI 11
 #define OLED_CLK 13
 #define OLED_CS 10
 #define OLED_DC 3
 #define OLED_RESET 2
 
+// Timer IDs
 #define GET_FIX_TIMER 1
 #define READ_LOCATION_TIMER 2
 
+// Index Labels
 #define LAT_INDEX 0
 #define LNG_INDEX 1
 

      stateMachine.transitionTo(NextWaypoint);
  }

  if((gps.date.isUpdated() && gps.date.age() < 200) || (gps.time.isUpdated() && gps.time.age() < 200)) {
    setTime(
      gps.time.hour(),
      gps.time.minute(),
      gps.time.second(),
      gps.date.day(),
      gps.date.month(),
      gps.date.year()
    );
    adjustTime(-6 * SECS_PER_HOUR);
  }

  drawReadLocation();
}



FSM stateMachine = FSM(GetFix);

// Event handlers
void onClick(Button& button) {
  if(stateMachine.isInState(NextWaypoint)) {
    if(waypoint_index >= arraySize(waypoint)) {
