test fork

Dependencies:   SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary_9341 by Tick Tock

Committer:
TickTock
Date:
Wed Nov 20 13:13:54 2013 +0000
Revision:
160:905fe45ed54b
Parent:
159:577e9d015693
Child:
167:58d4edf403d4
// * Tweaked heater monitor to only issue once per power on/off; // * Added filtering to timeSync routing (some times set time to bogus value); // * Removed debug wait commands from config save and firmware update; // * Added 3-tone sound messages

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TickTock 13:62e0f7f39ff5 1 // utility.h
TickTock 13:62e0f7f39ff5 2
TickTock 12:8e42d7ba8468 3 #include "CAN.h"
TickTock 13:62e0f7f39ff5 4 #include "common.h"
TickTock 23:cd03f9c3395e 5 #include "TOUCH_TFTx2.h"
leafman 98:9f8bab96edff 6 #include <cctype>
TickTock 110:ffddff3ad2f2 7 #include "ff.h"
TickTock 12:8e42d7ba8468 8
TickTock 13:62e0f7f39ff5 9 extern Timer timer;
TickTock 79:68f0dd8d1f19 10 extern Ticker msgReq;
TickTock 131:0d926c080a65 11 extern volatile unsigned short secsNoCarCanMsg;
TickTock 132:08748a67280a 12 extern volatile unsigned short secsNoEvCanMsg;
TickTock 75:77bd26829dca 13 extern volatile unsigned short secsNoTouch;
TickTock 131:0d926c080a65 14 extern volatile bool carCanIdle;
TickTock 132:08748a67280a 15 extern volatile bool evCanIdle;
TickTock 13:62e0f7f39ff5 16 extern volatile bool userIdle;
TickTock 13:62e0f7f39ff5 17 extern char displayLog[20][40];
TickTock 13:62e0f7f39ff5 18 extern unsigned char displayLoc;
TickTock 13:62e0f7f39ff5 19 extern bool touched;
TickTock 13:62e0f7f39ff5 20 extern bool logOpen;
TickTock 39:eef8beac7411 21 extern bool logCP; // Turbo3
TickTock 48:d1ce92104a1f 22 extern bool yesBattLog ; // gg - Batt Log
TickTock 40:0e6e71a7323f 23 extern bool showCP;
TickTock 13:62e0f7f39ff5 24 extern char writeBuffer[maxBufLen][13];
TickTock 13:62e0f7f39ff5 25 extern volatile int writePointer;
TickTock 76:fb6779d0963e 26 extern int readPointer;
TickTock 13:62e0f7f39ff5 27 extern DigitalOut led1,led2,led3,led4;
TickTock 13:62e0f7f39ff5 28 extern char indexLastMsg[0x800];
TickTock 13:62e0f7f39ff5 29 extern unsigned char dMode[2];
TickTock 13:62e0f7f39ff5 30 extern unsigned char msgChanged[100];
TickTock 124:0d622967b764 31 extern unsigned char battData[BatDataBufMax]; // BatDataBufMax
TickTock 13:62e0f7f39ff5 32 extern CANMessage lastMsg[100];
TickTock 13:62e0f7f39ff5 33 extern CAN can1,can2;
leafman 98:9f8bab96edff 34 extern unsigned int fwCount;
TickTock 13:62e0f7f39ff5 35 extern DigitalOut can1SleepMode,can2SleepMode;
TickTock 34:4751a8259b18 36 extern bool tick;
garygid 69:6bfdfc002036 37 extern bool ZeroSecTick;
TickTock 34:4751a8259b18 38 extern bool headlights;
TickTock 23:cd03f9c3395e 39 extern TOUCH_TFTx2 tt;
TickTock 35:5acbd8a64a89 40 extern float ledHi;
TickTock 35:5acbd8a64a89 41 extern float ledLo;
TickTock 35:5acbd8a64a89 42 extern unsigned short pollInt;
TickTock 35:5acbd8a64a89 43 extern float scale12V;
TickTock 36:dbd39c315258 44 extern bool playbackEn;
TickTock 36:dbd39c315258 45 extern bool playbackOpen;
TickTock 36:dbd39c315258 46 extern bool step;
TickTock 36:dbd39c315258 47 extern float playbackInt;
TickTock 40:0e6e71a7323f 48 extern signed long mWs_x4;
TickTock 40:0e6e71a7323f 49 extern unsigned short numWsamples;
TickTock 160:905fe45ed54b 50 extern signed long motorRPM_x2;
TickTock 41:8d4609ea7259 51 extern unsigned short numSsamples;
TickTock 48:d1ce92104a1f 52 extern unsigned char skin;
TickTock 50:83d5864c64a0 53 extern unsigned char dtePeriod;
TickTock 78:a383971fe02f 54 extern unsigned char reqMsgCnt;
TickTock 108:29b5a760adc2 55 extern float maxTemp;
TickTock 102:fd19f777a0b4 56 extern unsigned long Ah_x10000;
TickTock 102:fd19f777a0b4 57 extern unsigned long SOC_x10000;
TickTock 143:88b5155622a5 58 extern unsigned short SOH2_x100;
leafman 98:9f8bab96edff 59 extern bool metric;
TickTock 100:63a7456fc972 60 extern unsigned char lastDMode[2];
TickTock 100:63a7456fc972 61 extern unsigned char whichTouched;
TickTock 120:041edeec08f5 62 extern float unloadedV_x2,Resr,curRmax,curRmin,redRmax,redRmin,incRmax,incRmin;
TickTock 121:553faf139a20 63 extern signed short Imax, Imin;
TickTock 118:02010b18efdc 64 extern unsigned char tNavRow ; // gg - 4x4
TickTock 118:02010b18efdc 65 extern char revStr[7]; // gg - version
TickTock 118:02010b18efdc 66 extern bool debugMode;
TickTock 121:553faf139a20 67 extern bool shunt[96];
TickTock 122:138a40892a4c 68 extern float accV;
TickTock 152:a4d66901785d 69 extern bool accOn;
TickTock 143:88b5155622a5 70 extern float accV2;
TickTock 131:0d926c080a65 71 extern bool showHealth;
TickTock 134:ad243e4f1a17 72 extern float kWh_trip[0];
TickTock 134:ad243e4f1a17 73 extern float miles_trip[0];
TickTock 155:f31006516956 74 extern PwmOut dled; // for test
TickTock 155:f31006516956 75 extern PwmOut spkr;
TickTock 159:577e9d015693 76 extern bool brakeMon, regenMon, heaterMon;
TickTock 140:ab3e94eb0227 77 extern Ticker geiger;
TickTock 140:ab3e94eb0227 78 extern unsigned short chirpInt;
TickTock 149:e9739523109f 79 extern unsigned short uMsgId[8];
TickTock 152:a4d66901785d 80 extern bool autoSync;
TickTock 152:a4d66901785d 81 extern unsigned short modelYear;
TickTock 154:90ea16ca7475 82 extern bool enableSound;
TickTock 158:059abeb44ba1 83 extern const unsigned char Arial12x12[];
TickTock 12:8e42d7ba8468 84
TickTock 12:8e42d7ba8468 85 extern "C" {
TickTock 12:8e42d7ba8468 86 void mbed_reset();
TickTock 13:62e0f7f39ff5 87 void RTC_IRQHandler();
TickTock 13:62e0f7f39ff5 88 void RTC_Init (void);
TickTock 93:c2402e8cd0e2 89 void printMsg (char *msg);
TickTock 13:62e0f7f39ff5 90 void touch_ISR();
TickTock 13:62e0f7f39ff5 91 unsigned short getTimeStamp();
TickTock 13:62e0f7f39ff5 92 void logCan (char mType, CANMessage canRXmsg);
TickTock 13:62e0f7f39ff5 93 void logTS ();
TickTock 138:a2f5af85ed0d 94 void logEvent (char * errMsg); // gg - messeges
TickTock 138:a2f5af85ed0d 95 void sendTempReq();
TickTock 78:a383971fe02f 96 void sendReq();
TickTock 36:dbd39c315258 97 void autoPollISR();
TickTock 36:dbd39c315258 98 void playbackISR();
TickTock 13:62e0f7f39ff5 99 void recieve1();
TickTock 13:62e0f7f39ff5 100 void recieve2();
TickTock 36:dbd39c315258 101 void doNothing();
TickTock 22:a43df3905863 102 unsigned char buttonX(unsigned short X, unsigned char columns);
TickTock 22:a43df3905863 103 unsigned char buttonY(unsigned short Y,unsigned char rows);
TickTock 23:cd03f9c3395e 104 void saveConfig();
TickTock 25:ddf0ec209f03 105 void readConfig();
TickTock 25:ddf0ec209f03 106 void upDate(unsigned char field, bool updownbar);
TickTock 153:e94cfe3c339c 107 bool syncDateTime();
TickTock 39:eef8beac7411 108 void logPackVoltages(); // Turbo3
TickTock 108:29b5a760adc2 109 void tripLog(); // Turbo3
leafman 98:9f8bab96edff 110 void updateFirmware(); // LM - Update firmware off USB
TickTock 108:29b5a760adc2 111 bool detectUSB();
TickTock 140:ab3e94eb0227 112 void chirp();
TickTock 155:f31006516956 113 void beep(float freq, float time);
TickTock 160:905fe45ed54b 114 void beep3(float freq1, float time1, float freq2, float time2, float freq3, float time3);
TickTock 25:ddf0ec209f03 115 }
TickTock 12:8e42d7ba8468 116
TickTock 12:8e42d7ba8468 117 //LEAF OBD
TickTock 12:8e42d7ba8468 118 //1:
TickTock 12:8e42d7ba8468 119 //2:
TickTock 12:8e42d7ba8468 120 //3: AVCAN-L White/Blue
TickTock 12:8e42d7ba8468 121 //4: VSS-Shield
TickTock 12:8e42d7ba8468 122 //5: VSS Brown,White/Brown
TickTock 12:8e42d7ba8468 123 //6: CARCAN-H Green
TickTock 12:8e42d7ba8468 124 //7:
TickTock 12:8e42d7ba8468 125 //8: 12V-SW Orange,White/Orange
TickTock 12:8e42d7ba8468 126 //9:
TickTock 12:8e42d7ba8468 127 //10:
TickTock 12:8e42d7ba8468 128 //11: AVCAN-H Blue
TickTock 12:8e42d7ba8468 129 //12: EVCAN-L White/Grey
TickTock 12:8e42d7ba8468 130 //13: EVCAN-H Grey
TickTock 12:8e42d7ba8468 131 //14: CARCAN-L White/Green
TickTock 12:8e42d7ba8468 132 //15:
TickTock 12:8e42d7ba8468 133 //16: 12V-AON Red/Blue,Blue/Red
TickTock 12:8e42d7ba8468 134
TickTock 12:8e42d7ba8468 135 //VP230
TickTock 12:8e42d7ba8468 136 //1:D
TickTock 12:8e42d7ba8468 137 //2:GND
TickTock 12:8e42d7ba8468 138 //3:VCC
TickTock 12:8e42d7ba8468 139 //4:R
TickTock 12:8e42d7ba8468 140 //5:Vref
TickTock 12:8e42d7ba8468 141 //6:CANL
TickTock 12:8e42d7ba8468 142 //7:CANH
TickTock 12:8e42d7ba8468 143 //8:RS
TickTock 12:8e42d7ba8468 144
TickTock 12:8e42d7ba8468 145 //LPC1768
TickTock 12:8e42d7ba8468 146 //1: VSS
TickTock 12:8e42d7ba8468 147 //2: NC:VIN (4.5-9V supply)
TickTock 12:8e42d7ba8468 148 //3: NC:VB
TickTock 12:8e42d7ba8468 149 //4: NC:nR
TickTock 22:a43df3905863 150 //5: SPI:Reset
TickTock 22:a43df3905863 151 //6: SPI:CS0
TickTock 22:a43df3905863 152 //7: SPI:CS1
TickTock 12:8e42d7ba8468 153 //8: CAN1:Sleep --> 8:CAN1:RS
TickTock 12:8e42d7ba8468 154 //9: CAN1:RX --> 4:CAN1:R
TickTock 12:8e42d7ba8468 155 //10: CAN1:TX --> 1:CAN1:D
TickTock 12:8e42d7ba8468 156 //11: SPI:MOSI
TickTock 12:8e42d7ba8468 157 //12: SPI:MISO
TickTock 12:8e42d7ba8468 158 //13: SPI:SCLK
TickTock 12:8e42d7ba8468 159 //14: NC:Ain
TickTock 12:8e42d7ba8468 160 //15: MON12V --> 4K to 12V, 1K to VSS (To be implemented)
TickTock 12:8e42d7ba8468 161 //16: TOUCH_X+
TickTock 12:8e42d7ba8468 162 //17: TOUCH_X-
TickTock 12:8e42d7ba8468 163 //18: NC:Aout
TickTock 12:8e42d7ba8468 164 //19: TOUCH_Y+
TickTock 12:8e42d7ba8468 165 //20: TOUCH_Y-
TickTock 12:8e42d7ba8468 166 //21: Spkr+
TickTock 22:a43df3905863 167 //22: NC:pwm
TickTock 22:a43df3905863 168 //23: LED
TickTock 22:a43df3905863 169 //24: NC:pwm
TickTock 12:8e42d7ba8468 170 //25: NC:pwm
TickTock 12:8e42d7ba8468 171 //26: NC:pwm
TickTock 12:8e42d7ba8468 172 //27: NC
TickTock 12:8e42d7ba8468 173 //28: CAN2:Sleep --> 8:CAN2:RS
TickTock 12:8e42d7ba8468 174 //29: CAN2:TX --> 1:CAN2:D
TickTock 12:8e42d7ba8468 175 //30: CAN2:RX --> 4:CAN2:R
TickTock 12:8e42d7ba8468 176 //31: USB_D+
TickTock 12:8e42d7ba8468 177 //32: USB_D-
TickTock 12:8e42d7ba8468 178 //33: NC:Eth_TD+
TickTock 12:8e42d7ba8468 179 //34: NC:Eth_TD-
TickTock 12:8e42d7ba8468 180 //35: NC:Eth_RD+
TickTock 12:8e42d7ba8468 181 //36: NC:Eth_RD-
TickTock 12:8e42d7ba8468 182 //37: NC:IF+
TickTock 12:8e42d7ba8468 183 //38: NC:IF-
TickTock 12:8e42d7ba8468 184 //39: NC:5Vout (only available when connected as USB device)
TickTock 12:8e42d7ba8468 185 //40: VCC3.3