/**
  * ROBO is a global variable containing the status of the roboteq controller
  *
**/
struct robo_status
{
   char M1[4]; //Motor Command 1 format: A00 to a7F
   char M2[4]; //Motor Command 2 format: B7F to b00
   int amps1; //amps being consumed by motor1
   int amps2; //amps being consumed by motor2
   int volt1; //Voltage of motors power supply
   int volt2; //Voltage of electronics power supply
} ROBO;

/**
  * hCONTROL struct contains all the parameters for heading control
**/
struct
{
        int1 enabled;   //flag that enables / disables heading control
       float desired;   //desired heading
       float error;     //current error
       float pError;    //previous error
signed int16 iVal;      //integral component
signed int16 pVal;      //proportional component
signed int16 dVal;      //derivitive component
         int iGain;     //integral gain
         int pGain;     //proportional gain
         int dGain;     //derivative gain
signed int16 PIDtot;    //total value of P+I+D components

} hCONTROL;

/**
  * This struct contains all the parameters for velocity control
**/
struct
{
        int1 enabled;   //flag that enables / disables velocity control
       float desired;   //desired velocity
       float error;     //current error
       float pError;    //previous error
signed int16 iVal;      //integral component
signed int16 pVal;      //proportional component
signed int16 dVal;      //derivitive component
         int iGain;     //integral gain
         int pGain;     //proportional gain
         int dGain;     //derivative gain
signed int16 PIDtot;    //total value of P+I+D components

} vCONTROL;
