Dual CANbus monitor and instrumentation cluster

Dependencies:   SPI_TFTx2 TFT_fonts TOUCH_TFTx2 beep mbed

Fork of CANary by Tick Tock

Committer:
TickTock
Date:
Sun Jul 21 11:08:38 2013 +0000
Branch:
Metric
Revision:
125:f58b7ab2abee
Parent:
124:0d622967b764
Re-centered efficiency screen

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"
TickTock 76:fb6779d0963e 6 #include "beep.h"
leafman 98:9f8bab96edff 7 #include <cctype>
TickTock 110:ffddff3ad2f2 8 #include "ff.h"
TickTock 110:ffddff3ad2f2 9
TickTock 13:62e0f7f39ff5 10 extern Timer timer;
TickTock 83:52b1f330a62d 11 extern Ticker msgReq;
TickTock 75:77bd26829dca 12 extern volatile unsigned short secsNoMsg;
TickTock 75:77bd26829dca 13 extern volatile unsigned short secsNoTouch;
TickTock 13:62e0f7f39ff5 14 extern volatile bool canIdle;
TickTock 13:62e0f7f39ff5 15 extern volatile bool userIdle;
TickTock 13:62e0f7f39ff5 16 extern char displayLog[20][40];
TickTock 13:62e0f7f39ff5 17 extern unsigned char displayLoc;
TickTock 13:62e0f7f39ff5 18 extern bool touched;
TickTock 13:62e0f7f39ff5 19 extern bool logOpen;
TickTock 39:eef8beac7411 20 extern bool logCP; // Turbo3
TickTock 48:d1ce92104a1f 21 extern bool yesBattLog ; // gg - Batt Log
TickTock 40:0e6e71a7323f 22 extern bool showCP;
TickTock 13:62e0f7f39ff5 23 extern char writeBuffer[maxBufLen][13];
TickTock 13:62e0f7f39ff5 24 extern volatile int writePointer;
TickTock 76:fb6779d0963e 25 extern int readPointer;
TickTock 13:62e0f7f39ff5 26 extern DigitalOut led1,led2,led3,led4;
TickTock 13:62e0f7f39ff5 27 extern char indexLastMsg[0x800];
TickTock 13:62e0f7f39ff5 28 extern unsigned char dMode[2];
TickTock 13:62e0f7f39ff5 29 extern unsigned char msgChanged[100];
TickTock 124:0d622967b764 30 extern unsigned char battData[BatDataBufMax]; // BatDataBufMax
TickTock 13:62e0f7f39ff5 31 extern CANMessage lastMsg[100];
TickTock 13:62e0f7f39ff5 32 extern CAN can1,can2;
leafman 98:9f8bab96edff 33 extern unsigned int fwCount;
TickTock 117:49883c779a74 34 extern DigitalOut can1SleepMode,can2SleepMode;
TickTock 34:4751a8259b18 35 extern bool tick;
garygid 69:6bfdfc002036 36 extern bool ZeroSecTick;
TickTock 34:4751a8259b18 37 extern bool headlights;
TickTock 23:cd03f9c3395e 38 extern TOUCH_TFTx2 tt;
TickTock 35:5acbd8a64a89 39 extern float ledHi;
TickTock 35:5acbd8a64a89 40 extern float ledLo;
TickTock 35:5acbd8a64a89 41 extern unsigned short pollInt;
TickTock 35:5acbd8a64a89 42 extern float scale12V;
TickTock 36:dbd39c315258 43 extern bool playbackEn;
TickTock 36:dbd39c315258 44 extern bool playbackOpen;
TickTock 36:dbd39c315258 45 extern bool step;
TickTock 36:dbd39c315258 46 extern float playbackInt;
TickTock 40:0e6e71a7323f 47 extern signed long mWs_x4;
TickTock 40:0e6e71a7323f 48 extern unsigned short numWsamples;
TickTock 41:8d4609ea7259 49 extern signed long motorRPM;
TickTock 41:8d4609ea7259 50 extern unsigned short numSsamples;
TickTock 48:d1ce92104a1f 51 extern unsigned char skin;
TickTock 50:83d5864c64a0 52 extern unsigned char dtePeriod;
TickTock 76:fb6779d0963e 53 extern Beep spkr;
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 102:fd19f777a0b4 58 extern unsigned short SOH_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 12:8e42d7ba8468 69
TickTock 12:8e42d7ba8468 70 extern "C" {
TickTock 12:8e42d7ba8468 71 void mbed_reset();
TickTock 13:62e0f7f39ff5 72 void RTC_IRQHandler();
TickTock 13:62e0f7f39ff5 73 void RTC_Init (void);
TickTock 93:c2402e8cd0e2 74 void printMsg (char *msg);
TickTock 13:62e0f7f39ff5 75 void touch_ISR();
TickTock 13:62e0f7f39ff5 76 unsigned short getTimeStamp();
TickTock 13:62e0f7f39ff5 77 void logCan (char mType, CANMessage canRXmsg);
TickTock 13:62e0f7f39ff5 78 void logTS ();
TickTock 93:c2402e8cd0e2 79 void logEvent (char * errMsg); // gg - messeges
TickTock 92:935adef49ea4 80 //void sendCPreq();
TickTock 92:935adef49ea4 81 //void sendTreq();
TickTock 78:a383971fe02f 82 void sendReq();
TickTock 36:dbd39c315258 83 void autoPollISR();
TickTock 36:dbd39c315258 84 void playbackISR();
TickTock 13:62e0f7f39ff5 85 void recieve1();
TickTock 13:62e0f7f39ff5 86 void recieve2();
TickTock 36:dbd39c315258 87 void doNothing();
TickTock 22:a43df3905863 88 unsigned char buttonX(unsigned short X, unsigned char columns);
TickTock 22:a43df3905863 89 unsigned char buttonY(unsigned short Y,unsigned char rows);
TickTock 23:cd03f9c3395e 90 void saveConfig();
TickTock 25:ddf0ec209f03 91 void readConfig();
TickTock 25:ddf0ec209f03 92 void upDate(unsigned char field, bool updownbar);
TickTock 39:eef8beac7411 93 void logPackVoltages(); // Turbo3
TickTock 108:29b5a760adc2 94 void tripLog(); // Turbo3
leafman 98:9f8bab96edff 95 void updateFirmware(); // LM - Update firmware off USB
TickTock 108:29b5a760adc2 96 bool detectUSB();
TickTock 25:ddf0ec209f03 97 }
TickTock 12:8e42d7ba8468 98
TickTock 12:8e42d7ba8468 99 //LEAF OBD
TickTock 12:8e42d7ba8468 100 //1:
TickTock 12:8e42d7ba8468 101 //2:
TickTock 12:8e42d7ba8468 102 //3: AVCAN-L White/Blue
TickTock 12:8e42d7ba8468 103 //4: VSS-Shield
TickTock 12:8e42d7ba8468 104 //5: VSS Brown,White/Brown
TickTock 12:8e42d7ba8468 105 //6: CARCAN-H Green
TickTock 12:8e42d7ba8468 106 //7:
TickTock 12:8e42d7ba8468 107 //8: 12V-SW Orange,White/Orange
TickTock 12:8e42d7ba8468 108 //9:
TickTock 12:8e42d7ba8468 109 //10:
TickTock 12:8e42d7ba8468 110 //11: AVCAN-H Blue
TickTock 12:8e42d7ba8468 111 //12: EVCAN-L White/Grey
TickTock 12:8e42d7ba8468 112 //13: EVCAN-H Grey
TickTock 12:8e42d7ba8468 113 //14: CARCAN-L White/Green
TickTock 12:8e42d7ba8468 114 //15:
TickTock 12:8e42d7ba8468 115 //16: 12V-AON Red/Blue,Blue/Red
TickTock 12:8e42d7ba8468 116
TickTock 12:8e42d7ba8468 117 //VP230
TickTock 12:8e42d7ba8468 118 //1:D
TickTock 12:8e42d7ba8468 119 //2:GND
TickTock 12:8e42d7ba8468 120 //3:VCC
TickTock 12:8e42d7ba8468 121 //4:R
TickTock 12:8e42d7ba8468 122 //5:Vref
TickTock 12:8e42d7ba8468 123 //6:CANL
TickTock 12:8e42d7ba8468 124 //7:CANH
TickTock 12:8e42d7ba8468 125 //8:RS
TickTock 12:8e42d7ba8468 126
TickTock 12:8e42d7ba8468 127 //LPC1768
TickTock 12:8e42d7ba8468 128 //1: VSS
TickTock 12:8e42d7ba8468 129 //2: NC:VIN (4.5-9V supply)
TickTock 12:8e42d7ba8468 130 //3: NC:VB
TickTock 12:8e42d7ba8468 131 //4: NC:nR
TickTock 22:a43df3905863 132 //5: SPI:Reset
TickTock 22:a43df3905863 133 //6: SPI:CS0
TickTock 22:a43df3905863 134 //7: SPI:CS1
TickTock 12:8e42d7ba8468 135 //8: CAN1:Sleep --> 8:CAN1:RS
TickTock 12:8e42d7ba8468 136 //9: CAN1:RX --> 4:CAN1:R
TickTock 12:8e42d7ba8468 137 //10: CAN1:TX --> 1:CAN1:D
TickTock 12:8e42d7ba8468 138 //11: SPI:MOSI
TickTock 12:8e42d7ba8468 139 //12: SPI:MISO
TickTock 12:8e42d7ba8468 140 //13: SPI:SCLK
TickTock 12:8e42d7ba8468 141 //14: NC:Ain
TickTock 12:8e42d7ba8468 142 //15: MON12V --> 4K to 12V, 1K to VSS (To be implemented)
TickTock 12:8e42d7ba8468 143 //16: TOUCH_X+
TickTock 12:8e42d7ba8468 144 //17: TOUCH_X-
TickTock 12:8e42d7ba8468 145 //18: NC:Aout
TickTock 12:8e42d7ba8468 146 //19: TOUCH_Y+
TickTock 12:8e42d7ba8468 147 //20: TOUCH_Y-
TickTock 12:8e42d7ba8468 148 //21: Spkr+
TickTock 22:a43df3905863 149 //22: NC:pwm
TickTock 22:a43df3905863 150 //23: LED
TickTock 22:a43df3905863 151 //24: NC:pwm
TickTock 12:8e42d7ba8468 152 //25: NC:pwm
TickTock 12:8e42d7ba8468 153 //26: NC:pwm
TickTock 12:8e42d7ba8468 154 //27: NC
TickTock 12:8e42d7ba8468 155 //28: CAN2:Sleep --> 8:CAN2:RS
TickTock 12:8e42d7ba8468 156 //29: CAN2:TX --> 1:CAN2:D
TickTock 12:8e42d7ba8468 157 //30: CAN2:RX --> 4:CAN2:R
TickTock 12:8e42d7ba8468 158 //31: USB_D+
TickTock 12:8e42d7ba8468 159 //32: USB_D-
TickTock 12:8e42d7ba8468 160 //33: NC:Eth_TD+
TickTock 12:8e42d7ba8468 161 //34: NC:Eth_TD-
TickTock 12:8e42d7ba8468 162 //35: NC:Eth_RD+
TickTock 12:8e42d7ba8468 163 //36: NC:Eth_RD-
TickTock 12:8e42d7ba8468 164 //37: NC:IF+
TickTock 12:8e42d7ba8468 165 //38: NC:IF-
TickTock 12:8e42d7ba8468 166 //39: NC:5Vout (only available when connected as USB device)
TickTock 12:8e42d7ba8468 167 //40: VCC3.3