Penn Electric Racing / Mbed 2 deprecated REVO_Updated_Steering

Dependencies:   CANBuffer KS0108_fork mbed-rtos mbed CAN Addresses

Fork of REVO_Updated_Steering by Penn Electric

Files at this revision

API Documentation at this revision

Comitter:
tmccurbin
Date:
Sun Feb 08 08:48:17 2015 +0000
Parent:
39:e6aa6dcf3f75
Child:
41:7c5ea411fad2
Commit message:
All variables show on proper screen

Changed in this revision

Buffers.h Show annotated file Show diff for this revision Revisions of this file
CAN_Filter_LUT.h Show annotated file Show diff for this revision Revisions of this file
Screens.h Show annotated file Show diff for this revision Revisions of this file
Steering.cpp Show annotated file Show diff for this revision Revisions of this file
Steering.h Show annotated file Show diff for this revision Revisions of this file
--- a/Buffers.h	Sun Feb 08 05:47:05 2015 +0000
+++ b/Buffers.h	Sun Feb 08 08:48:17 2015 +0000
@@ -41,6 +41,8 @@
 char ChargeCurrBuffer[_size];
 char SourceVBuffer[_size];
 char Fault1Buffer[_size];
+char AccPedalBuffer[_size];
+char BrkPedalBuffer[_size];
 
 // Outgoing
 char ConnectedStatusBuffer = 0;
--- a/CAN_Filter_LUT.h	Sun Feb 08 05:47:05 2015 +0000
+++ b/CAN_Filter_LUT.h	Sun Feb 08 08:48:17 2015 +0000
@@ -27,61 +27,61 @@
   
 // STANDARD EXPLICIT IDs - CAN CONTROLLER 1
 //( 0xID                            & STDMASK),
+
+( MOC_RPM_ID                        & STDMASK), // 0x211
+
+( MOC_MOTEMP_ID                     & STDMASK), // 0x212
+
+( MOC_AIRTEMP_ID                    & STDMASK), // 0x213
+
+( MOC_IGBTTEMP_ID                   & STDMASK), // 0x214
+
+( PCM_PEDALS_ID                     & STDMASK), // 0x220
+
+( PCM_FRPM_ID                       & STDMASK), // 0x222
+
+( PCM_TORQUERQ_ID                   & STDMASK), // 0x231
+
+( FAULTCODE_TX_ID                   & STDMASK), // 0x300
+
+( MODE_TX_ID                        & STDMASK), // 0x301
+
+( CURRENT_TX_ID                     & STDMASK), // 0x306
+
+( CHARGECURR_TX_ID                  & STDMASK), // 0x307
+
+( VOLTAGE_TX_ID                     & STDMASK), // 0x308
+
+( POWER_TX_ID                       & STDMASK), // 0x309
+
+( SOC_TX_ID                         & STDMASK), // 0x30B
+
+( BOARDTEMP_TX_ID                   & STDMASK), // 0x30E
+
+( CELLV_MMA_TX_ID_BASE              & STDMASK), // 0x316
+
+( CELLV_MMA_TX_ID_BASE2             & STDMASK), // 0x317
+
+( TEMP_MMA_TX_ID_BASE               & STDMASK), // 0x318
+
+( TEMP_MMA_TX_ID_BASE2              & STDMASK), // 0x319
+
+( SYS_GLV_CURRENT_ID                & STDMASK), // 0x510
+
+( SYS_GLV_SOC_ID                    & STDMASK), // 0x513
+
+( SYS_DCDC_STATUS_ID                & STDMASK), // 0x521
+
+( SYS_PWM_FAN_ID                    & STDMASK), // 0x530
+
+( SYS_PWM_PUMP_ID                   & STDMASK), // 0x531
+
+( SYS_IMD_RESIST_ID                 & STDMASK), // 0x541
+
+( SYS_SWITCHES_ID                   & STDMASK), // 0x560
   
 // STANDARD EXPLICIT IDs - CAN CONTROLLER 2
-//( 0xID                              & STDMASK) | 1<<13,
-
-( MOC_RPM_ID                        & STDMASK) | 1<<13, // 0x211
-
-( MOC_MOTEMP_ID                     & STDMASK) | 1<<13, // 0x212
-
-( MOC_AIRTEMP_ID                    & STDMASK) | 1<<13, // 0x213
-
-( MOC_IGBTTEMP_ID                   & STDMASK) | 1<<13, // 0x214
-
-( PCM_PEDALS_ID                     & STDMASK) | 1<<13, // 0x220
-
-( PCM_FRPM_ID                       & STDMASK) | 1<<13, // 0x222
-
-( PCM_TORQUERQ_ID                   & STDMASK) | 1<<13, // 0x231
-
-( FAULTCODE_TX_ID                   & STDMASK) | 1<<13, // 0x300
-
-( MODE_TX_ID                        & STDMASK) | 1<<13, // 0x301
-
-( CURRENT_TX_ID                     & STDMASK) | 1<<13, // 0x306
-
-( CHARGECURR_TX_ID                  & STDMASK) | 1<<13, // 0x307
-
-( VOLTAGE_TX_ID                     & STDMASK) | 1<<13, // 0x308
-
-( POWER_TX_ID                       & STDMASK) | 1<<13, // 0x309
-
-( SOC_TX_ID                         & STDMASK) | 1<<13, // 0x30B
-
-( BOARDTEMP_TX_ID                   & STDMASK) | 1<<13, // 0x30E
-
-( CELLV_MMA_TX_ID_BASE              & STDMASK) | 1<<13, // 0x316
-
-( CELLV_MMA_TX_ID_BASE2             & STDMASK) | 1<<13, // 0x317
-
-( TEMP_MMA_TX_ID_BASE               & STDMASK) | 1<<13, // 0x318
-
-( TEMP_MMA_TX_ID_BASE2              & STDMASK) | 1<<13, // 0x319
-
-( SYS_GLV_CURRENT_ID                & STDMASK) | 1<<13, // 0x510
-
-( SYS_GLV_SOC_ID                    & STDMASK) | 1<<13, // 0x513
-
-( SYS_DCDC_STATUS_ID                & STDMASK) | 1<<13, // 0x521
-
-( SYS_PWM_FAN_ID                    & STDMASK) | 1<<13, // 0x530
-
-( SYS_PWM_PUMP_ID                   & STDMASK) | 1<<13, // 0x531
-
-( SYS_IMD_RESIST_ID                 & STDMASK) | 1<<13, // 0x541
-
-( SYS_SWITCHES_ID                   & STDMASK) | 1<<13, // 0x560
+//( 0xID                              & STDMASK),
 
 };
  
--- a/Screens.h	Sun Feb 08 05:47:05 2015 +0000
+++ b/Screens.h	Sun Feb 08 08:48:17 2015 +0000
@@ -111,7 +111,7 @@
 
     //Info line 4: DCDC & IMD Status
     PUT2SCREEN("DCDC :",      DCDCBuffer,      "",     7,  0, 30);
-    PUT2SCREEN(" IMD :",      IMDRBuffer,      "",     7, 77,107);
+    PUT2SCREEN(" IMD :",      IMDRBuffer,      "",     7, 52,82);
 }
 
 void DisplayFaultScreen()
--- a/Steering.cpp	Sun Feb 08 05:47:05 2015 +0000
+++ b/Steering.cpp	Sun Feb 08 08:48:17 2015 +0000
@@ -24,11 +24,6 @@
 {
     Init();
 
-    display.GotoXY(10,16);
-    display.SelectFont(Arial_14,BLACK,ReadData);
-    display.PrintString("Penn Electric Racing");
-    wait(1);
-
     CANMessage Rxmsg;
 
     Thread Thread2(ProcessButtons);
@@ -50,7 +45,6 @@
     BRButtonGreen;
     TLButtonGreen;
     TRButtonGreen;
-    DriveStatus = 0; // Off
     //initialize screen Startup Process
     wait(2);
 }
@@ -108,234 +102,305 @@
         // Printing CAN message data:
         // printf("Message ID: 0x%x len: %d hex: 0x%x float: %f\r\n", Rxmsg.id, Rxmsg.len, *((int*)((void*)(&Rxmsg.data[0]))), *((float*)((void*)(&Rxmsg.data[0]))));
         // for (int i=0; i < Rxmsg.len; i++) printf("D[%d]: %x ", i, Rxmsg.data[i]);
-        switch (Rxmsg.id) {
+        if (Rxmsg.id == MODE_TX_ID) {
+            CANFloat = GetFloat;
+            sprintf(&DriveStatus,"%3.2d", int(CANFloat));                       //confirm that I am interpreting this correctly
+            DriveStatusRequestBuffer = !DriveStatus;
+            if (DriveStatus == 1) {
+                BLButtonGreen;
+            } else {
+                BLButtonRed;
+            }
+        }
+
+        switch (CurrScreen) {
+            case HOME_SCREEN:
+                switch (Rxmsg.id) {
 
-                // HOME SCREEN *******************************************************************************************
-            case SOC_TX_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat*100 - *BigBatLifeBuffer) >= 1) {
-                    sprintf(BigBatLifeBuffer,"%3.2d", int(CANFloat*100));                   // Big battery life percentage
-                    display.PutString(1,40,BigBatLifeBuffer);
-                }
-                break;
-            case SYS_GLV_SOC_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat*100 - *SmallBatLifeBuffer) >= 1) {
-                    sprintf(SmallBatLifeBuffer,"%3.2d", int(CANFloat*100));                 // Small battery life percentage
-                    display.PutString(1,60,SmallBatLifeBuffer);
-                }
-                break;
-            case PCM_FRPM_ID:
-                CANFloat  = GetFloat;
-                CANFloat2 = GetFloat4;
-                if (abs((CANFloat+CANFloat2)*WheelCircumference*30 - *CarSpdBuffer) >= 1) {
-                    sprintf(CarSpdBuffer,"%3.2d", int((CANFloat+CANFloat2)*WheelCircumference*30));     // Miles per hour
-                    display.PutString(1,108,CarSpdBuffer);
-                }
-                break;
-            case TEMP_MMA_TX_ID_BASE2:
-                CANFloat = GetFloat;
-                if (abs((CANFloat*9.0/5.0)+32 - *AvgBatTBuffer) >=1) {
-                    sprintf(AvgBatTBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));          // Degrees F
-                    display.PutString(3,39,AvgBatTBuffer);
-                    //display.PutString(5,108,AvgBatTBuffer); this is for the battery screen
-                }
-                break;
-            case TEMP_MMA_TX_ID_BASE:
-                CANFloat2 = GetFloat4;
-                if (abs((CANFloat2*9.0/5.0)+32 - *MaxBatTBuffer) >=1) {
-                    sprintf(MaxBatTBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));          // Figure out Max/Min and Figure out various screen display
-                    display.PutString(3,103,MaxBatTBuffer);
-                    //display.PutString(5,20,MaxBatTBuffer); this is for the battery screen
-                }
-                CANFloat = GetFloat;
-                if (abs((CANFloat*9.0/5.0)+32 - *MinBatTBuffer) >= 1) {
-                    sprintf(MinBatTBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));
-                    //display.PutString(5,67,MinBatTBuffer); this is for the battery screen
-                }
-                break;
-            case MOC_MOTEMP_ID:
-                CANFloat = GetFloat;
-                if (abs((CANFloat*9.0/5.0)+32 - *LMtrTmpBuffer) >= 1) {
-                    sprintf(LMtrTmpBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));          // We need to figure out how to handle the bytes for left and right motors
-                    display.PutString(5,34,LMtrTmpBuffer);
-                    // display.PutString(1,34,LMtrTmpBuffer); this is for the motor screen
-                }
-                CANFloat2 = GetFloat4;
-                if (abs((CANFloat2*9.0/5.0)+32 - *RMtrTmpBuffer) >= 1) {
-                    sprintf(RMtrTmpBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));          // We need to figure out how to handle the bytes for left and right motors
-                    display.PutString(5,34,RMtrTmpBuffer);
-                    //display.PutString(1,98,LMtrTmpBuffer); this is for the motor screen
-                }
-                break;
-
-                // BATTERY SCREEN***********************************************************************************
-            case VOLTAGE_TX_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *BigBatVoltBuffer) >= 0.1) {
-                    sprintf(BigBatVoltBuffer,"%3.2d", int(CANFloat));                       // Volts
-                    //display.PutString(1,10,BigBatVoltBuffer);
-                    //display.PutString(3,94,BigBatVoltBuffer); this is for the charging screen
-                }
-                break;
-            case POWER_TX_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *BigBatPowerBuffer) >= 1) {
-                    sprintf(BigBatPowerBuffer,"%3.2d", int(CANFloat));                       // Watts
-                    //display.PutString(1,55,BigBatPowerBuffer);
+                        // HOME SCREEN *******************************************************************************************
+                        // Pedal Test
+                    /*case PCM_PEDALS_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat*100 - float (*AccPedalBuffer)) >= 1) {
+                            sprintf(AccPedalBuffer,"%3.2d", int(CANFloat*100));
+                            display.PutString(1,40,AccPedalBuffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs(CANFloat2*100 - float (*BrkPedalBuffer)) >= 1) {
+                            sprintf(BrkPedalBuffer,"%3.2d", int(CANFloat2*100));
+                            display.PutString(1,60,BrkPedalBuffer);
+                        }
+                        break;*/
+                        
+                        case SOC_TX_ID:
+                            CANFloat = GetFloat;
+                            if (abs(CANFloat*100 - *BigBatLifeBuffer) >= 1) {
+                                sprintf(BigBatLifeBuffer,"%3.2d", int(CANFloat*100));                   // Big battery life percentage
+                                display.PutString(1,40,BigBatLifeBuffer);
+                            }
+                            break;
+                        case SYS_GLV_SOC_ID:
+                            CANFloat = GetFloat;
+                            if (abs(CANFloat*100 - *SmallBatLifeBuffer) >= 1) {
+                                sprintf(SmallBatLifeBuffer,"%3.2d", int(CANFloat*100));                 // Small battery life percentage
+                                display.PutString(1,60,SmallBatLifeBuffer);
+                            }
+                            break;
+                    case PCM_FRPM_ID:
+                        CANFloat  = GetFloat;
+                        CANFloat2 = GetFloat4;
+                        if (abs((CANFloat+CANFloat2)*WheelCircumference*30 - *CarSpdBuffer) >= 1) {
+                            sprintf(CarSpdBuffer,"%3.2d", int((CANFloat+CANFloat2)*WheelCircumference*30));     // Miles per hour
+                            display.PutString(1,108,CarSpdBuffer);
+                        }
+                        break;
+                    case TEMP_MMA_TX_ID_BASE2:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *AvgBatTBuffer) >=1) {
+                            sprintf(AvgBatTBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));          // Degrees F
+                            display.PutString(3,39,AvgBatTBuffer);
+                        }
+                        break;
+                    case TEMP_MMA_TX_ID_BASE:
+                        CANFloat2 = GetFloat4;
+                        if (abs((CANFloat2*9.0/5.0)+32 - *MaxBatTBuffer) >=1) {
+                            sprintf(MaxBatTBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));     
+                            display.PutString(3,103,MaxBatTBuffer);
+                        }
+                        break;
+                    case MOC_MOTEMP_ID:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *LMtrTmpBuffer) >= 1) {
+                            sprintf(LMtrTmpBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));          
+                            display.PutString(5,34,LMtrTmpBuffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs((CANFloat2*9.0/5.0)+32 - *RMtrTmpBuffer) >= 1) {
+                            sprintf(RMtrTmpBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));          
+                            display.PutString(5,34,RMtrTmpBuffer);
+                        }
+                        break;
+                    default:
+                        break;
                 }
                 break;
-            case CURRENT_TX_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *BigBatCurrentBuffer) >= 0.2) {
-                    sprintf(BigBatCurrentBuffer,"%3.2d", int(CANFloat));                       // Amps
-                    //display.PutString(1,100,BigBatCurrentBuffer);
-                }
-                break;
-            case CELLV_MMA_TX_ID_BASE:
-                CANFloat2 = GetFloat4;
-                if (abs(CANFloat2 - *VmaxBuffer) >= 0.1) {
-                    sprintf(VmaxBuffer,"%3.2d", int(CANFloat2));                                 // We need to figure out how to handle max and min
-                    //display.PutString(3,20,VmaxBuffer);
-                }
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *VminBuffer) >= 0.1) {
-                    sprintf(VminBuffer,"%3.2d", int(CANFloat));
-                    //display.PutString(3,67,VminBuffer);
-                }
-                break;
-            case CELLV_MMA_TX_ID_BASE2:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *VavgBuffer) >= 0.1) {
-                    sprintf(VavgBuffer,"%3.2d", int(CANFloat));                                 // Volts
-                    //display.PutString(3,108,VavgBuffer);
-                }
-                break;
-            case BOARDTEMP_TX_ID:
-                CANFloat = GetFloat;
-                if (abs((CANFloat*9.0/5.0)+32 - *BoardTempBuffer) >= 1) {
-                    sprintf(BoardTempBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));                                 // Degrees F
-                    //display.PutString(7,87,BoardTempBuffer);
+                // BATTERY SCREEN***********************************************************************************
+            case BATTERY_SCREEN:
+                switch (Rxmsg.id) {
+                    case VOLTAGE_TX_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *BigBatVoltBuffer) >= 0.1) {
+                            sprintf(BigBatVoltBuffer,"%3.2d", int(CANFloat));                       // Volts
+                            display.PutString(1,10,BigBatVoltBuffer);
+                        }
+                        break;
+                    case POWER_TX_ID:
+                        CANFloat = GetFloat;
+                        LEDBar = (CANFloat/85.0)*(2.6/3.3);
+                        if (abs(CANFloat - *BigBatPowerBuffer) >= 1) {
+                            sprintf(BigBatPowerBuffer,"%3.2d", int(CANFloat));                       // Watts
+                            display.PutString(1,55,BigBatPowerBuffer);
+                        }
+                        break;
+                    case CURRENT_TX_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *BigBatCurrentBuffer) >= 0.2) {
+                            sprintf(BigBatCurrentBuffer,"%3.2d", int(CANFloat));                       // Amps
+                            display.PutString(1,100,BigBatCurrentBuffer);
+                        }
+                        break;
+                    case CELLV_MMA_TX_ID_BASE:
+                        CANFloat2 = GetFloat4;
+                        if (abs(CANFloat2 - *VmaxBuffer) >= 0.1) {
+                            sprintf(VmaxBuffer,"%3.2d", int(CANFloat2));                                 
+                            display.PutString(3,20,VmaxBuffer);
+                        }
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *VminBuffer) >= 0.1) {
+                            sprintf(VminBuffer,"%3.2d", int(CANFloat));
+                            display.PutString(3,67,VminBuffer);
+                        }
+                        break;
+                    case CELLV_MMA_TX_ID_BASE2:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *VavgBuffer) >= 0.1) {
+                            sprintf(VavgBuffer,"%3.2d", int(CANFloat));                                 // Volts
+                            display.PutString(3,108,VavgBuffer);
+                        }
+                        break;
+                    case TEMP_MMA_TX_ID_BASE:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *MinBatTBuffer) >= 1) {
+                            sprintf(MinBatTBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));
+                            display.PutString(5,67,MinBatTBuffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs((CANFloat2*9.0/5.0)+32 - *MaxBatTBuffer) >=1) {
+                            sprintf(MaxBatTBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));          
+                            display.PutString(5,20,MaxBatTBuffer);
+                        }
+                        break;
+                    case TEMP_MMA_TX_ID_BASE2:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *AvgBatTBuffer) >=1) {
+                            sprintf(AvgBatTBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));          // Degrees F
+                            display.PutString(5,108,AvgBatTBuffer);
+                        }
+                        break;
+                    case BOARDTEMP_TX_ID:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *BoardTempBuffer) >= 1) {
+                            sprintf(BoardTempBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));                                 // Degrees F
+                            display.PutString(7,87,BoardTempBuffer);
+                        }
+                        break;
+                    default:
+                        break;
                 }
                 break;
-
                 // MOTOR SCREEN*****************************************************************
-            case MOC_AIRTEMP_ID:
-                CANFloat = GetFloat;
-                if (abs((CANFloat*9.0/5.0)+32 - *LAirTmpBuffer) >= 1) {
-                sprintf(LAirTmpBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));                   // Figure out the left and the right
-                //display.PutString(2,34,LAirTmpBuffer);
-                }
-                CANFloat2 = GetFloat4;
-                if (abs((CANFloat2*9.0/5.0)+32 - *RAirTmpBuffer) >= 1) {
-                sprintf(RAirTmpBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));                   // Degrees F
-                //display.PutString(2,98,RAirTmpBuffer);
-                }
-                break;
-            case MOC_IGBTTEMP_ID:
-                CANFloat = GetFloat;
-                if (abs((CANFloat*9.0/5.0)+32 - *LIGBTmpBuffer) >= 1) {
-                sprintf(LIGBTmpBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));                   // Figure out the left and the right
-                //display.PutString(3,34,LIGBTmpBuffer);
-                }
-                CANFloat2 = GetFloat4;
-                if (abs((CANFloat2*9.0/5.0)+32 - *RIGBTmpBuffer) >= 1) {
-                sprintf(RIGBTmpBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));                   // Degrees F
-                //display.PutString(3,98,RIGBTmpBuffer);
-                }
-                break;
-            case MOC_RPM_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *Rpm_LBuffer) >= 1) {
-                sprintf(Rpm_LBuffer,"%3.2d", int(CANFloat));                   // Figure out the left and the right
-                //display.PutString(5,30,Rpm_LBuffer);
-                }
-                CANFloat2 = GetFloat4;
-                if (abs(CANFloat2 - *Rpm_RBuffer) >= 1) {
-                sprintf(Rpm_RBuffer,"%3.2d", int(CANFloat2));
-                //display.PutString(5,107,Rpm_RBuffer);
-                }
-                break;
-            case PCM_TORQUERQ_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat*100 - *TRequestBufferL) >= 1) {
-                sprintf(TRequestBufferL,"%3.2d", int(CANFloat*100));             // Percentage
-                //display.PutString(7,89,TRequestBufferL);
-                }
-                CANFloat2 = GetFloat4;
-                if (abs(CANFloat2*100 - *TRequestBufferR) >= 1) {
-                sprintf(TRequestBufferR,"%3.2d", int(CANFloat2*100));             // Percentage
-                //display.PutString(7,89,TRequestBufferR);
+            case MOTOR_SCREEN:
+                switch (Rxmsg.id) {
+                    case MOC_MOTEMP_ID:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *LMtrTmpBuffer) >= 1) {
+                            sprintf(LMtrTmpBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));          
+                            display.PutString(1,34,LMtrTmpBuffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs((CANFloat2*9.0/5.0)+32 - *RMtrTmpBuffer) >= 1) {
+                            sprintf(RMtrTmpBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));          
+                            display.PutString(1,98,LMtrTmpBuffer);
+                        }
+                        break;
+                    case MOC_AIRTEMP_ID:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *LAirTmpBuffer) >= 1) {
+                            sprintf(LAirTmpBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));                   
+                            display.PutString(2,34,LAirTmpBuffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs((CANFloat2*9.0/5.0)+32 - *RAirTmpBuffer) >= 1) {
+                            sprintf(RAirTmpBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));                   // Degrees F
+                            display.PutString(2,98,RAirTmpBuffer);
+                        }
+                        break;
+                    case MOC_IGBTTEMP_ID:
+                        CANFloat = GetFloat;
+                        if (abs((CANFloat*9.0/5.0)+32 - *LIGBTmpBuffer) >= 1) {
+                            sprintf(LIGBTmpBuffer,"%3.2d", int((CANFloat*9.0/5.0)+32));                   
+                            display.PutString(3,34,LIGBTmpBuffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs((CANFloat2*9.0/5.0)+32 - *RIGBTmpBuffer) >= 1) {
+                            sprintf(RIGBTmpBuffer,"%3.2d", int((CANFloat2*9.0/5.0)+32));                   // Degrees F
+                            display.PutString(3,98,RIGBTmpBuffer);
+                        }
+                        break;
+                    case MOC_RPM_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *Rpm_LBuffer) >= 1) {
+                            sprintf(Rpm_LBuffer,"%3.2d", int(CANFloat));                   
+                            display.PutString(5,30,Rpm_LBuffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs(CANFloat2 - *Rpm_RBuffer) >= 1) {
+                            sprintf(Rpm_RBuffer,"%3.2d", int(CANFloat2));
+                            display.PutString(5,107,Rpm_RBuffer);
+                        }
+                        break;
+                    case PCM_TORQUERQ_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat*100 - *TRequestBufferL) >= 1) {
+                            sprintf(TRequestBufferL,"%3.2d", int(CANFloat*100));             // Percentage
+                            display.PutString(7,89,TRequestBufferL);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs(CANFloat2*100 - *TRequestBufferR) >= 1) {
+                            sprintf(TRequestBufferR,"%3.2d", int(CANFloat2*100));             // Percentage
+                            display.PutString(7,89,TRequestBufferR);
+                        }
+                        break;
+                    default:
+                        break;
                 }
                 break;
 
                 // SYSTEM MANAGEMENT SCREEN***************************************************
-            case SYS_GLV_CURRENT_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *SmallBatCurrentBuffer) >= 0.2) {
-                sprintf(SmallBatCurrentBuffer,"%3.2d", int(CANFloat));             // Amps
-                //display.PutString(1,30,SmallBatCurrentBuffer);
-                }
-                break;
-            case SYS_SWITCHES_ID:
-                CANFloat = GetFloat;
-                sprintf(ShtdSwtchBuffer,"%3.2d", int(CANFloat));             // How the heck are we interpreting this data
-                //display.PutString(1,108,ShtdSwtchBuffer);
-                break;
-            case SYS_PWM_FAN_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat*100 - *Fan1Buffer) >= 1) {
-                sprintf(Fan1Buffer,"%3.2d", int(CANFloat*100));                   // Duty Cycle. Figure out the left and the right
-                //display.PutString(3,30,Fan1Buffer);
-                }
-                CANFloat2 = GetFloat4;
-                if (abs(CANFloat2*100 - *Fan1Buffer) >= 1) {
-                sprintf(Fan2Buffer,"%3.2d", int(CANFloat2*100));
-                //display.PutString(3,107,Fan2Buffer);
-                }
-                break;
-            case SYS_PWM_PUMP_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat*100 - *Pump1Buffer) >= 1) {
-                sprintf(Pump1Buffer,"%3.2d", int(CANFloat*100));                   // Duty Cycle. Figure out the left and the right
-                //display.PutString(5,30,Pump1Buffer);
-                }
-                CANFloat2 = GetFloat4;
-                if (abs(CANFloat2*100 - *Pump2Buffer) >= 1) {
-                sprintf(Pump2Buffer,"%3.2d", int(CANFloat2*100));
-                //display.PutString(5,107,Pump2Buffer);
-                }
-                break;
-            case SYS_DCDC_STATUS_ID:
-                CANFloat = GetFloat;
-                sprintf(DCDCBuffer,"%3.2d", int(CANFloat));             // How the heck are we interpreting this data
-                //display.PutString(7,30,DCDCBuffer);
-                break;
-            case SYS_IMD_RESIST_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *IMDRBuffer) >= 1) {
-                sprintf(IMDRBuffer,"%3.2d", int(CANFloat));
-                //display.PutString(7,107,IMDRBuffer);
+            case SYS_MGMT_SCREEN:
+                switch (Rxmsg.id) {
+                    case SYS_GLV_CURRENT_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *SmallBatCurrentBuffer) >= 0.2) {
+                            sprintf(SmallBatCurrentBuffer,"%3.2d", int(CANFloat));             // Amps
+                            display.PutString(1,30,SmallBatCurrentBuffer);
+                        }
+                        break;
+                    case SYS_SWITCHES_ID:
+                        CANFloat = GetFloat;
+                        sprintf(ShtdSwtchBuffer,"%3.2d", int(CANFloat));             // How the heck are we interpreting this data
+                        display.PutString(1,108,ShtdSwtchBuffer);
+                        break;
+                    case SYS_PWM_FAN_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat*100 - *Fan1Buffer) >= 1) {
+                            sprintf(Fan1Buffer,"%3.2d", int(CANFloat*100));                   
+                            display.PutString(3,30,Fan1Buffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs(CANFloat2*100 - *Fan1Buffer) >= 1) {
+                            sprintf(Fan2Buffer,"%3.2d", int(CANFloat2*100));
+                            display.PutString(3,107,Fan2Buffer);
+                        }
+                        break;
+                    case SYS_PWM_PUMP_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat*100 - *Pump1Buffer) >= 1) {
+                            sprintf(Pump1Buffer,"%3.2d", int(CANFloat*100));                   
+                            display.PutString(5,30,Pump1Buffer);
+                        }
+                        CANFloat2 = GetFloat4;
+                        if (abs(CANFloat2*100 - *Pump2Buffer) >= 1) {
+                            sprintf(Pump2Buffer,"%3.2d", int(CANFloat2*100));
+                            display.PutString(5,107,Pump2Buffer);
+                        }
+                        break;
+                    case SYS_DCDC_STATUS_ID:
+                        CANFloat = GetFloat;
+                        sprintf(DCDCBuffer,"%3.2d", int(CANFloat));             // How the heck are we interpreting this data
+                        display.PutString(7,30,DCDCBuffer);
+                        break;
+                    case SYS_IMD_RESIST_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *IMDRBuffer) >= 1) {
+                            sprintf(IMDRBuffer,"%3.2d", int(CANFloat));
+                            display.PutString(7,82,IMDRBuffer);
+                        }
+                        break;
+                    default:
+                        break;
                 }
                 break;
 
-                // CHARGER SCREEN *************************************************************
-            case CHARGECURR_TX_ID:
-                CANFloat = GetFloat;
-                if (abs(CANFloat - *ChargeCurrBuffer) >= 0.1) {
-                sprintf(ChargeCurrBuffer,"%3.2d", int(CANFloat));                       // Amps
-                //display.PutString(3,94,ChargeCurrBuffer);
-                }
-                break;
-
-                // OTHER **********************************************************************
-            case MODE_TX_ID:
-                CANFloat = GetFloat;
-                sprintf(&DriveStatus,"%3.2d", int(CANFloat));                       //confirm that I am interpreting this correctly
-                if (DriveStatus == 1) {
-                    BLButtonGreen;
-                } else {
-                    BLButtonRed;
+                // CHARGE SCREEN *************************************************************
+            case CHARGE_SCREEN:
+                switch (Rxmsg.id) {
+                    case CHARGECURR_TX_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *ChargeCurrBuffer) >= 0.1) {
+                            sprintf(ChargeCurrBuffer,"%3.2d", int(CANFloat));                       // Amps
+                            display.PutString(3,94,ChargeCurrBuffer);
+                        }
+                        break;
+                    case VOLTAGE_TX_ID:
+                        CANFloat = GetFloat;
+                        if (abs(CANFloat - *BigBatVoltBuffer) >= 0.1) {
+                            sprintf(BigBatVoltBuffer,"%3.2d", int(CANFloat));                       // Volts
+                            display.PutString(3,94,BigBatVoltBuffer);
+                        }
+                        break;
+                    default:
+                        break;
                 }
                 break;
             default:
@@ -353,7 +418,6 @@
 
 void RequestStatusChange()
 {
-    DriveStatusRequestBuffer = !DriveStatus;
     CANMessage TxDriveStatusRequest(0x601, &DriveStatusRequestBuffer,1);
     for (int j=0; j<10; j++) {
         SteeringCANPort.txWrite(TxDriveStatusRequest);
--- a/Steering.h	Sun Feb 08 05:47:05 2015 +0000
+++ b/Steering.h	Sun Feb 08 08:48:17 2015 +0000
@@ -33,7 +33,7 @@
 
 CANBuffer SteeringCANPort(CAN1, MEDIUM, P3_26);    // Initialize the CAN port/pin
 
-AnalogOut ledstream(p18);  // This appears to iniialize the pin as an analog out, and probably defaults to low.  Without this, the LED bar would have a few lights on.
+AnalogOut LEDBar(p18);
 
 DigitalOut boSW1(P1_29,1);//            SW1   
 DigitalIn biSWBR(P1_27, PullDown);//    SW3,  BRight