test fork
Dependencies: SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed
Fork of CANary_9341 by
Diff: utility.cpp
- Revision:
- 39:eef8beac7411
- Parent:
- 38:155ec32c5e91
- Child:
- 40:0e6e71a7323f
--- a/utility.cpp Sun Mar 24 17:26:09 2013 +0000 +++ b/utility.cpp Mon Mar 25 15:13:15 2013 +0000 @@ -351,4 +351,60 @@ set_time(mktime(&t)); } +void logPackVoltages() { // Turbo3 - routine to dump CP values to text file + char sTemp[40]; + struct tm t; // pointer to a static tm structure + short unsigned max, min, jv, i, bd; + unsigned avg; + unsigned short gids, SOC, packV; + signed short packA; + time_t seconds ; + + CANMessage msg; + + seconds = time(NULL); // Turbo3 + t = *localtime(&seconds) ; // Turbo3 + + msg = lastMsg[indexLastMsg[0x5bc]]; //Get gids + gids = (msg.data[0]<<2)+(msg.data[1]>>6); + msg = lastMsg[indexLastMsg[0x55b]]; //Get SOC + SOC = (msg.data[0]<<2)+(msg.data[1]>>6); + msg = lastMsg[indexLastMsg[0x1db]]; //Get pack volts + packV = (msg.data[2]<<2)+(msg.data[3]>>6); + packA = (msg.data[0]<<3)+(msg.data[1]>>5); + if (packA & 0x400) packA |= 0xf800; + + max=0; + min=9999; + avg=0; + for(i=0; i<96; i++) { + bd=(battData[i*2+3]<<8)+battData[i*2+4]; + avg+=bd; + if(bd>max) max=bd; + if(bd<min) min=bd; + } + avg /= 96; + if(min<3713) { + jv=avg-(max-avg)*1.5; + } else { // Only compute judgement value if min cellpair meets <= 3712mV requirement + jv=0; + } + + FILE *bfile; + //bfile = fopen("/local/batvolt.txt", "a"); + bfile = fopen("/usb/batvolt.txt", "a"); + if(bfile!=NULL) { + strftime(sTemp, 40, "%a %m/%d/%Y %X", &t); + fprintf(bfile,"%s,%d,%5.1f%%,%5.1f,%5.1f,%d,%d,%d,%d,%d",sTemp,gids,(float)SOC/10,(float)packV/2,(float)packA/2,max,min,avg,max-min,jv); + fprintf(bfile,"%d,%d,%d,%d,",(battData[224+ 3]<<8)+battData[224+ 4],battData[224+ 5],(battData[224+ 6]<<8)+battData[224+ 7],battData[224+ 8]); + fprintf(bfile,"%d,%d,%d,%d", (battData[224+ 9]<<8)+battData[224+10],battData[224+11],(battData[224+12]<<8)+battData[224+13],battData[224+14]); + for(i=0; i<96; i++) { + bd=(battData[i*2+3]<<8)+battData[i*2+4]; + fprintf(bfile,",%d",bd); + } + fprintf(bfile,"\r\n"); + fclose(bfile); + } + logCP=false; +}