The Code Repository for the REV0 Steering Wheel.
Dependencies: CANBuffer KS0108_fork mbed-rtos mbed CAN Addresses
Fork of REVO_Updated_Steering by
Diff: Steering.cpp
- Revision:
- 47:5d3c6f85fa29
- Parent:
- 42:701df58e923a
--- a/Steering.cpp Mon Mar 23 19:36:37 2015 +0000 +++ b/Steering.cpp Sat May 30 02:26:23 2015 +0000 @@ -1,5 +1,4 @@ #include "Steering.h" - // To-Do: // Look at SYS management CAN translations: shutdown switches, DCDC status, & IMD (this is a resistance, in ohms) // Figure out screen/variable updating options (hardware filter), NVIC_SetPriority(CAN_IRQn,####)LPC17xx.h @@ -17,7 +16,6 @@ float CANFloat; float CANFloat2; - Ticker StatusMsg; int main() @@ -33,6 +31,8 @@ if (SteeringCANPort.rxRead(Rxmsg)) { ProcessCANMsg(Rxmsg); } + else + Thread::yield(); } } @@ -102,14 +102,14 @@ // 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]); - if (Rxmsg.id == MODE_TX_ID) { + if (Rxmsg.id == AMS_MODE_ID) { if(Rxmsg.data[0] != (1<<3)) DriveStatusRequestBuffer=1; else DriveStatusRequestBuffer=0; } - if (Rxmsg.id == POWER_TX_ID) { + if (Rxmsg.id == AMS_POWER_ID) { CANFloat = GetFloat; LEDBar = (CANFloat/85.0)*(2.6/3.3); } @@ -133,53 +133,51 @@ } break;*/ - case SOC_TX_ID: + case AMS_SOC_ID: CANFloat = GetFloat; - if (abs(CANFloat*100 - *BigBatLifeBuffer) >= 1) { + //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: + case SYS_MGMT_GLV_SOC_ID: CANFloat = GetFloat; - if (abs(CANFloat*100 - *SmallBatLifeBuffer) >= 1) { + //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) { + //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) { + case AMS_TEMP_MMA_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); + //} + CANFloat = GetFloat8; + //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: + case PCM_MOTEMP_ID: CANFloat = GetFloat; - if (abs((CANFloat*9.0/5.0)+32 - *LMtrTmpBuffer) >= 1) { + //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) { + //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; @@ -188,72 +186,68 @@ // BATTERY SCREEN*********************************************************************************** case BATTERY_SCREEN: switch (Rxmsg.id) { - case VOLTAGE_TX_ID: + case AMS_VOLTAGE_ID: CANFloat = GetFloat; - if (abs(CANFloat - *BigBatVoltBuffer) >= 0.1) { + //if (abs(CANFloat - *BigBatVoltBuffer) >= 0.1) { sprintf(BigBatVoltBuffer,"%3.2d", int(CANFloat)); // Volts display.PutString(1,10,BigBatVoltBuffer); - } + //} break; - case POWER_TX_ID: + case AMS_POWER_ID: CANFloat = GetFloat; LEDBar = (CANFloat/85.0)*(2.6/3.3); - if (abs(CANFloat - *BigBatPowerBuffer) >= 1) { + //if (abs(CANFloat - *BigBatPowerBuffer) >= 1) { sprintf(BigBatPowerBuffer,"%3.2d", int(CANFloat)); // Watts display.PutString(1,55,BigBatPowerBuffer); - } + //} break; - case CURRENT_TX_ID: + case AMS_CURRENT_ID: CANFloat = GetFloat; - if (abs(CANFloat - *BigBatCurrentBuffer) >= 0.2) { + //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: + case AMS_CELLV_MMA_ID_BASE: CANFloat2 = GetFloat4; - if (abs(CANFloat2 - *VmaxBuffer) >= 0.1) { + //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) { + //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) { + //} + CANFloat = GetFloat8; + //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: + case AMS_TEMP_MMA_ID_BASE: CANFloat = GetFloat; - if (abs((CANFloat*9.0/5.0)+32 - *MinBatTBuffer) >= 1) { + //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) { + //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) { + //} + CANFloat = GetFloat8; + //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: + case AMS_BOARDTEMP_ID: CANFloat = GetFloat; - if (abs((CANFloat*9.0/5.0)+32 - *BoardTempBuffer) >= 1) { + //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; @@ -262,65 +256,65 @@ // MOTOR SCREEN***************************************************************** case MOTOR_SCREEN: switch (Rxmsg.id) { - case MOC_MOTEMP_ID: + case PCM_MOTEMP_ID: CANFloat = GetFloat; - if (abs((CANFloat*9.0/5.0)+32 - *LMtrTmpBuffer) >= 1) { + //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) { + //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: + case PCM_AIRTEMP_ID: CANFloat = GetFloat; - if (abs((CANFloat*9.0/5.0)+32 - *LAirTmpBuffer) >= 1) { + //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) { + //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: + case PCM_IGBTTEMP_ID: CANFloat = GetFloat; - if (abs((CANFloat*9.0/5.0)+32 - *LIGBTmpBuffer) >= 1) { + //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) { + //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: + case PCM_RPM_ID: CANFloat = GetFloat; - if (abs(CANFloat - *Rpm_LBuffer) >= 1) { + //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) { + //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) { + //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) { + //if (abs(CANFloat2*100 - *TRequestBufferR) >= 1) { sprintf(TRequestBufferR,"%3.2d", int(CANFloat2*100)); // Percentage display.PutString(7,89,TRequestBufferR); - } + //} break; default: break; @@ -330,53 +324,53 @@ // SYSTEM MANAGEMENT SCREEN*************************************************** case SYS_MGMT_SCREEN: switch (Rxmsg.id) { - case SYS_GLV_CURRENT_ID: + case SYS_MGMT_GLV_CURRENT_ID: CANFloat = GetFloat; - if (abs(CANFloat - *SmallBatCurrentBuffer) >= 0.2) { + //if (abs(CANFloat - *SmallBatCurrentBuffer) >= 0.2) { sprintf(SmallBatCurrentBuffer,"%3.2d", int(CANFloat)); // Amps display.PutString(1,30,SmallBatCurrentBuffer); - } + //} break; - case SYS_SWITCHES_ID: + case SYS_MGMT_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: + case SYS_MGMT_PWM_FAN_ID: CANFloat = GetFloat; - if (abs(CANFloat*100 - *Fan1Buffer) >= 1) { + //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) { + //if (abs(CANFloat2*100 - *Fan1Buffer) >= 1) { sprintf(Fan2Buffer,"%3.2d", int(CANFloat2*100)); display.PutString(3,107,Fan2Buffer); - } + //} break; - case SYS_PWM_PUMP_ID: + case SYS_MGMT_PWM_PUMP_ID: CANFloat = GetFloat; - if (abs(CANFloat*100 - *Pump1Buffer) >= 1) { + //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) { + //if (abs(CANFloat2*100 - *Pump2Buffer) >= 1) { sprintf(Pump2Buffer,"%3.2d", int(CANFloat2*100)); display.PutString(5,107,Pump2Buffer); - } + //} break; - case SYS_DCDC_STATUS_ID: + case SYS_MGMT_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: + case SYS_MGMT_IMD_RESIST_ID: CANFloat = GetFloat; - if (abs(CANFloat - *IMDRBuffer) >= 1) { + //if (abs(CANFloat - *IMDRBuffer) >= 1) { sprintf(IMDRBuffer,"%3.2d", int(CANFloat)); display.PutString(7,82,IMDRBuffer); - } + //} break; default: break; @@ -386,19 +380,19 @@ // CHARGE SCREEN ************************************************************* case CHARGE_SCREEN: switch (Rxmsg.id) { - case CHARGECURR_TX_ID: + case CHARGER_CHARGING_CURRENT_ID: CANFloat = GetFloat; - if (abs(CANFloat - *ChargeCurrBuffer) >= 0.1) { + //if (abs(CANFloat - *ChargeCurrBuffer) >= 0.1) { sprintf(ChargeCurrBuffer,"%3.2d", int(CANFloat)); // Amps display.PutString(3,94,ChargeCurrBuffer); - } + //} break; - case VOLTAGE_TX_ID: + case CHARGER_CHARGING_VOLTAGE_ID: CANFloat = GetFloat; - if (abs(CANFloat - *BigBatVoltBuffer) >= 0.1) { + //if (abs(CANFloat - *BigBatVoltBuffer) >= 0.1) { sprintf(BigBatVoltBuffer,"%3.2d", int(CANFloat)); // Volts display.PutString(3,94,BigBatVoltBuffer); - } + //} break; default: break; @@ -412,14 +406,14 @@ void ConnectedStatusCANMsg() { - CANMessage ConnectedStatus(0x600, &ConnectedStatusBuffer,1); + CANMessage ConnectedStatus(STEERING_WHEEL_STATUS_ID, &ConnectedStatusBuffer,1); SteeringCANPort.txWrite(ConnectedStatus); } void RequestStatusChange() { - CANMessage TxDriveStatusRequest(0x601, &DriveStatusRequestBuffer,1); + CANMessage TxDriveStatusRequest(STEERING_WHEEL_DRIVE_STATUS_REQUEST_ID , &DriveStatusRequestBuffer,1); for (int j=0; j<10; j++) { SteeringCANPort.txWrite(TxDriveStatusRequest); } @@ -437,7 +431,7 @@ void ResetCar() { - CANMessage TxCarReset(0x602,&TxResetBuffer,1); + CANMessage TxCarReset(STEERING_WHEEL_CAR_RESET_ID,&TxResetBuffer,1); for (int k=0; k<10; k++) { SteeringCANPort.txWriteDirect(TxCarReset); }