//Remote control start for Champion Proto V2
//****************************************************************
int MotorState()
{ 
  static enum { Idle, PowerOn, Starting, Starting2, Running, Stopping } state = Idle;
  static uint32_t ButtonTimer = 1000; //Timer for Start/Stop button
  switch (state)
    {
    case Idle:
      if (ChargeCommand == 1)
      {
        state = Starting;
        Serial.println("Start button ON");
        ButtonTimer = millis();
        digitalWrite(StartRelay, 1);
        break;
      }
      break;
    case Starting:
      while ((millis() - ButtonTimer) > StartOn)
      {
        state = Starting2;
        Serial.println("Start button OFF");
        ButtonTimer = millis();
        digitalWrite(StartRelay, 0);
        break;   
      }
      break;

    //Start motor on  
    case Starting2:
      while ((millis() - ButtonTimer) > 10000)
      {
        state = Running;
        Serial.println("Running");
        break;   
      }
      if (ChargeCommand == 0)
      {
        state = Running;
        break;
      }
      break;
    case Running:
      if (ChargeCommand == 0)
      {
        state = Stopping;
            Serial.println("Stopping");
            ButtonTimer = millis();
            digitalWrite(PowerRelay, 1);
        break;   
      }
      break;

    case Stopping:
      while ((millis() - ButtonTimer) > StopOn)
      {
        state = Idle;
        Serial.println("Go Idle state");
        digitalWrite(PowerRelay, 0);
        digitalWrite(StartRelay, 0);
        break;   
      }
      break;        
    }
  return state;
} 
