Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CANBuffer KS0108_fork mbed-rtos mbed CAN Addresses
Fork of REVO_Updated_Steering by
Revision 40:92f08fdc32df, committed 2015-02-08
- 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
--- 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
