123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- #include "CANEncode.h"
- #include "Signal.h"
- #include "mainTask.h"
- void CANEncodeFunction(UINT32 ID,UINT8* rawData);
- void CANEncodeFunction(UINT32 ID,UINT8* rawData)
- {
- memset(rawData, 0xFF, 8);
- switch (ID)
- {
- case 0x6A0:
- *(UINT16*)(rawData +0) = ((battCellU[0]>>8) & 0xFF) | (((battCellU[0]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[1]>>8) & 0xFF) | (((battCellU[1]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[2]>>8) & 0xFF) | (((battCellU[2]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[3]>>8) & 0xFF) | (((battCellU[3]&0xFF)<<8)&0xFF00);
- break;
- case 0x6A1:
- *(UINT16*)(rawData +0) = ((battCellU[4]>>8) & 0xFF) | (((battCellU[4]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[5]>>8) & 0xFF) | (((battCellU[5]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[6]>>8) & 0xFF) | (((battCellU[6]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[7]>>8) & 0xFF) | (((battCellU[7]&0xFF)<<8)&0xFF00);
- break;
- case 0x6A2:
- *(UINT16*)(rawData +0) = ((battCellU[8]>>8) & 0xFF) | (((battCellU[8]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[9]>>8) & 0xFF) | (((battCellU[9]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[10]>>8) & 0xFF) | (((battCellU[10]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[11]>>8) & 0xFF) | (((battCellU[11]&0xFF)<<8)&0xFF00);
- break;
- case 0x6A3:
- *(UINT16*)(rawData +0) = ((battCellU[12]>>8) & 0xFF) | (((battCellU[12]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[13]>>8) & 0xFF) | (((battCellU[13]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[14]>>8) & 0xFF) | (((battCellU[14]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[15]>>8) & 0xFF) | (((battCellU[15]&0xFF)<<8)&0xFF00);
- break;
- case 0x6A4:
- *(UINT16*)(rawData +0) = ((battCellU[16]>>8) & 0xFF) | (((battCellU[16]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[17]>>8) & 0xFF) | (((battCellU[17]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[18]>>8) & 0xFF) | (((battCellU[18]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[19]>>8) & 0xFF) | (((battCellU[19]&0xFF)<<8)&0xFF00);
- break;
- case 0x6A5:
- *(UINT16*)(rawData +0) = ((battCellU[20]>>8) & 0xFF) | (((battCellU[20]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[21]>>8) & 0xFF) | (((battCellU[21]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[22]>>8) & 0xFF) | (((battCellU[22]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[23]>>8) & 0xFF) | (((battCellU[23]&0xFF)<<8)&0xFF00);
- break;
- case 0x6A6:
- *(UINT16*)(rawData +0) = ((battCellU[24]>>8) & 0xFF) | (((battCellU[24]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[25]>>8) & 0xFF) | (((battCellU[25]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[26]>>8) & 0xFF) | (((battCellU[26]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[27]>>8) & 0xFF) | (((battCellU[27]&0xFF)<<8)&0xFF00);
- break;
- case 0x6B0:
- *(UINT8*)(rawData +0) =battCellTemp[0]&0xFF;
- *(UINT8*)(rawData +1) =battCellTemp[1]&0xFF;
- *(UINT8*)(rawData +2) =battCellTemp[2]&0xFF;
- *(UINT8*)(rawData +3) =battCellTemp[3]&0xFF;
- *(UINT8*)(rawData +4) =battCellTemp[4]&0xFF;
- *(UINT8*)(rawData +5) =battCellTemp[5]&0xFF;
- *(UINT8*)(rawData +6) =battCellTemp[6]&0xFF;
- *(UINT8*)(rawData +7) =battCellTemp[7]&0xFF;
- break;
- case 0x6BA:
- *(UINT8*)(rawData +0) =MOSTemp&0xFF;
- *(UINT8*)(rawData +1) =packTemp&0xFF;
- *(UINT8*)(rawData +2) =fastChargeTemp&0xFF;
- *(UINT8*)(rawData +3) =normalChargeTemp&0xFF;
- *(UINT8*)(rawData +4) =heatTemp1&0xFF;
- *(UINT8*)(rawData +5) =heatTemp2&0xFF;
- *(UINT8*)(rawData +6) =nbReservedTemp1&0xFF;
- *(UINT8*)(rawData +7) =nbReservedTemp2&0xFF;
- break;
- case 0x6C0:
- *(UINT16*)(rawData +0) = ((minCellVol>>8) & 0xFF) | (((minCellVol&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((maxCellVol>>8) & 0xFF) | (((maxCellVol&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battPackVol>>8) & 0xFF) | (((battPackVol&0xFF)<<8)&0xFF00);
- *(UINT8*)(rawData +6) =maxCellTemp&0xFF;
- *(UINT8*)(rawData +7) =minCellTemp&0xFF;
- break;
- case 0x6C1:
- *(UINT8*)(rawData +0) =battSOC&0xFF;
- *(UINT8*)(rawData +1) =battSOH&0xFF;
- *(UINT16*)(rawData +2) = ((battI>>8) & 0xFF) | (((battI&0xFF)<<8)&0xFF00);
- *(UINT8*)(rawData +4) =battWorkState&0xFF;
- *(UINT32*)(rawData +5) = ((battWarningState>>16) & 0xFF)|((battWarningState)&0xFF00)|(((battWarningState&0xFF)<<16)&0xFF0000);
- break;
- case 0x6C2:
- *(UINT32*)(rawData +0) = ((nbSwVersion>>24) & 0xFF)|((nbSwVersion>>8)&0xFF00)|((nbSwVersion<<8)&0xFF0000)|(((nbSwVersion&0xFF)<<24)&0xFF000000);
- *(UINT16*)(rawData +4) = ((nbHwVersion>>8) & 0xFF) | (((nbHwVersion&0xFF)<<8)&0xFF00);
- *(UINT8*)(rawData +6) =bmsSwVersion&0xFF;
- *(UINT8*)(rawData +7) =bmsHwVersion&0xFF;
- break;
- case 0x6C3:
- *(UINT32*)(rawData +0) = ((battBalanceoInfo>>24) & 0xFF)|((battBalanceoInfo>>8)&0xFF00)|((battBalanceoInfo<<8)&0xFF0000)|(((battBalanceoInfo&0xFF)<<24)&0xFF000000);
- *(UINT8*)(rawData +4) =battMOSSwitchState&0xFF;
- *(UINT8*)(rawData +5) =battHeatEnableState&0xFF;
- break;
- case 0x6C4:
- *(UINT8*)(rawData +0) =reservedSignal1&0xFF;
- *(UINT8*)(rawData +1) =reservedSignal2&0xFF;
- *(UINT8*)(rawData +2) =reservedSignal3&0xFF;
- *(UINT8*)(rawData +3) =reservedSignal4&0xFF;
- *(UINT8*)(rawData +4) =reservedSignal5&0xFF;
- *(UINT8*)(rawData +5) =reservedSignal6&0xFF;
- *(UINT8*)(rawData +6) =reservedSignal7&0xFF;
- *(UINT8*)(rawData +7) =reservedSignal8&0xFF;
- break;
- case 0x7C0:
- *(UINT16*)(rawData +0) = ((battCellU[0]>>8) & 0xFF) | (((battCellU[0]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[1]>>8) & 0xFF) | (((battCellU[1]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[2]>>8) & 0xFF) | (((battCellU[2]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[3]>>8) & 0xFF) | (((battCellU[3]&0xFF)<<8)&0xFF00);
- break;
- case 0x7C1:
- *(UINT16*)(rawData +0) = ((battCellU[4]>>8) & 0xFF) | (((battCellU[4]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[5]>>8) & 0xFF) | (((battCellU[5]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[6]>>8) & 0xFF) | (((battCellU[6]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[7]>>8) & 0xFF) | (((battCellU[7]&0xFF)<<8)&0xFF00);
- break;
- case 0x7C2:
- *(UINT16*)(rawData +0) = ((battCellU[8]>>8) & 0xFF) | (((battCellU[8]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[9]>>8) & 0xFF) | (((battCellU[9]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[10]>>8) & 0xFF) | (((battCellU[10]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[11]>>8) & 0xFF) | (((battCellU[11]&0xFF)<<8)&0xFF00);
- break;
- case 0x7C3:
- *(UINT16*)(rawData +0) = ((battCellU[12]>>8) & 0xFF) | (((battCellU[12]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[13]>>8) & 0xFF) | (((battCellU[13]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[14]>>8) & 0xFF) | (((battCellU[14]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[15]>>8) & 0xFF) | (((battCellU[15]&0xFF)<<8)&0xFF00);
- break;
- case 0x7C4:
- *(UINT16*)(rawData +0) = ((battCellU[16]>>8) & 0xFF) | (((battCellU[16]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[17]>>8) & 0xFF) | (((battCellU[17]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[18]>>8) & 0xFF) | (((battCellU[18]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[19]>>8) & 0xFF) | (((battCellU[19]&0xFF)<<8)&0xFF00);
- break;
- case 0x7C5:
- *(UINT16*)(rawData +0) = ((battCellU[20]>>8) & 0xFF) | (((battCellU[20]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[21]>>8) & 0xFF) | (((battCellU[21]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[22]>>8) & 0xFF) | (((battCellU[22]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[23]>>8) & 0xFF) | (((battCellU[23]&0xFF)<<8)&0xFF00);
- break;
- case 0x7C6:
- *(UINT16*)(rawData +0) = ((battCellU[24]>>8) & 0xFF) | (((battCellU[24]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((battCellU[25]>>8) & 0xFF) | (((battCellU[25]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battCellU[26]>>8) & 0xFF) | (((battCellU[26]&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +6) = ((battCellU[27]>>8) & 0xFF) | (((battCellU[27]&0xFF)<<8)&0xFF00);
- break;
- case 0x7C7:
- *(UINT8*)(rawData +0) =battCellTemp[0]&0xFF;
- *(UINT8*)(rawData +1) =battCellTemp[1]&0xFF;
- *(UINT8*)(rawData +2) =battCellTemp[2]&0xFF;
- *(UINT8*)(rawData +3) =battCellTemp[3]&0xFF;
- *(UINT8*)(rawData +4) =battCellTemp[4]&0xFF;
- *(UINT8*)(rawData +5) =battCellTemp[5]&0xFF;
- *(UINT8*)(rawData +6) =battCellTemp[6]&0xFF;
- *(UINT8*)(rawData +7) =battCellTemp[7]&0xFF;
- break;
- case 0x7C8:
- *(UINT8*)(rawData +0) =MOSTemp&0xFF;
- *(UINT8*)(rawData +1) =packTemp&0xFF;
- *(UINT8*)(rawData +2) =fastChargeTemp&0xFF;
- *(UINT8*)(rawData +3) =normalChargeTemp&0xFF;
- *(UINT8*)(rawData +4) =heatTemp1&0xFF;
- *(UINT8*)(rawData +5) =heatTemp2&0xFF;
- *(UINT8*)(rawData +6) =nbReservedTemp1&0xFF;
- *(UINT8*)(rawData +7) =nbReservedTemp2&0xFF;
- break;
- case 0x7C9:
- *(UINT16*)(rawData +0) = ((minCellVol>>8) & 0xFF) | (((minCellVol&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +2) = ((maxCellVol>>8) & 0xFF) | (((maxCellVol&0xFF)<<8)&0xFF00);
- *(UINT16*)(rawData +4) = ((battPackVol>>8) & 0xFF) | (((battPackVol&0xFF)<<8)&0xFF00);
- *(UINT8*)(rawData +6) =maxCellTemp&0xFF;
- *(UINT8*)(rawData +7) =minCellTemp&0xFF;
- break;
- case 0x7CA:
- *(UINT8*)(rawData +0) =battSOC&0xFF;
- *(UINT8*)(rawData +1) =battSOH&0xFF;
- *(UINT16*)(rawData +2) = ((battI>>8) & 0xFF) | (((battI&0xFF)<<8)&0xFF00);
- *(UINT8*)(rawData +4) =battWorkState&0xFF;
- *(UINT32*)(rawData +5) = ((battWarningState>>16) & 0xFF)|((battWarningState)&0xFF00)|(((battWarningState&0xFF)<<16)&0xFF0000);
- break;
- case 0x7CB:
- *(UINT32*)(rawData +0) = ((nbSwVersion>>24) & 0xFF)|((nbSwVersion>>8)&0xFF00)|((nbSwVersion<<8)&0xFF0000)|(((nbSwVersion&0xFF)<<24)&0xFF000000);
- *(UINT16*)(rawData +4) = ((nbHwVersion>>8) & 0xFF) | (((nbHwVersion&0xFF)<<8)&0xFF00);
- *(UINT8*)(rawData +6) =bmsSwVersion&0xFF;
- *(UINT8*)(rawData +7) =bmsHwVersion&0xFF;
- break;
- case 0x7CC:
- *(UINT32*)(rawData +0) = ((battBalanceoInfo>>24) & 0xFF)|((battBalanceoInfo>>8)&0xFF00)|((battBalanceoInfo<<8)&0xFF0000)|(((battBalanceoInfo&0xFF)<<24)&0xFF000000);
- *(UINT8*)(rawData +4) =battMOSSwitchState&0xFF;
- *(UINT8*)(rawData +5) =battHeatEnableState&0xFF;
- break;
- case 0x7CD:
- *(UINT8*)(rawData +0) =reservedSignal1&0xFF;
- *(UINT8*)(rawData +1) =reservedSignal2&0xFF;
- *(UINT8*)(rawData +2) =reservedSignal3&0xFF;
- *(UINT8*)(rawData +3) =reservedSignal4&0xFF;
- *(UINT8*)(rawData +4) =reservedSignal5&0xFF;
- *(UINT8*)(rawData +5) =reservedSignal6&0xFF;
- *(UINT8*)(rawData +6) =reservedSignal7&0xFF;
- *(UINT8*)(rawData +7) =reservedSignal8&0xFF;
- break;
- case 0x7B0:
- *(UINT8*)(rawData +0) = (AppNVMData.battSN[0])&0xFF;
- *(UINT8*)(rawData +1) = (AppNVMData.battSN[1])&0xFF;
- *(UINT8*)(rawData +2) = (AppNVMData.battSN[2])&0xFF;
- *(UINT8*)(rawData +3) = (AppNVMData.battSN[3])&0xFF;
- *(UINT8*)(rawData +4) = (AppNVMData.battSN[4])&0xFF;
- *(UINT8*)(rawData +5) = (AppNVMData.battSN[5])&0xFF;
- *(UINT8*)(rawData +6) = (AppNVMData.battSN[6])&0xFF;
- *(UINT8*)(rawData +7) = (AppNVMData.battSN[7])&0xFF;
- break;
- case 0x7B1:
- *(UINT8*)(rawData +0) = (AppNVMData.battSN[8])&0xFF;
- *(UINT8*)(rawData +1) = (AppNVMData.battSN[9])&0xFF;
- *(UINT8*)(rawData +2) = (AppNVMData.battSN[10])&0xFF;
- *(UINT8*)(rawData +3) = (AppNVMData.battSN[11])&0xFF;
- *(UINT8*)(rawData +4) = (AppNVMData.battSN[12])&0xFF;
- *(UINT8*)(rawData +5) = (AppNVMData.battSN[13])&0xFF;
- *(UINT8*)(rawData +6) = (AppNVMData.battSN[14])&0xFF;
- *(UINT8*)(rawData +7) = (AppNVMData.battSN[15])&0xFF;
- break;
- case 0x7B2:
- *(UINT8*)(rawData +0) = (AppNVMData.battSN[16])&0xFF;
-
- break;
-
- default:
- break;
- }
- }
|