Dodge/Chrysler Radio Emulator Connect to Interior CAN bus

Dependencies:   mbed SDFileSystem

Committer:
rtgree01
Date:
Mon Jan 31 05:13:04 2011 +0000
Revision:
0:9bc41d70bdd3

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rtgree01 0:9bc41d70bdd3 1 #ifndef RADIOEMULATOR_H
rtgree01 0:9bc41d70bdd3 2 #define RADIOEMULATOR_H
rtgree01 0:9bc41d70bdd3 3
rtgree01 0:9bc41d70bdd3 4 #include "mbed.h"
rtgree01 0:9bc41d70bdd3 5 #include "MODSERIAL.h"
rtgree01 0:9bc41d70bdd3 6
rtgree01 0:9bc41d70bdd3 7 #include "RadioState.h"
rtgree01 0:9bc41d70bdd3 8
rtgree01 0:9bc41d70bdd3 9 class RadioEmulator
rtgree01 0:9bc41d70bdd3 10 {
rtgree01 0:9bc41d70bdd3 11 public:
rtgree01 0:9bc41d70bdd3 12 RadioEmulator();
rtgree01 0:9bc41d70bdd3 13 ~RadioEmulator() {};
rtgree01 0:9bc41d70bdd3 14
rtgree01 0:9bc41d70bdd3 15 void readCANbus(void);
rtgree01 0:9bc41d70bdd3 16 void HostComm(void);
rtgree01 0:9bc41d70bdd3 17
rtgree01 0:9bc41d70bdd3 18 //private:
rtgree01 0:9bc41d70bdd3 19
rtgree01 0:9bc41d70bdd3 20 MODSERIAL *usb;
rtgree01 0:9bc41d70bdd3 21 void serialReceiver(void);
rtgree01 0:9bc41d70bdd3 22
rtgree01 0:9bc41d70bdd3 23 void StartEmulation();
rtgree01 0:9bc41d70bdd3 24 void SendOnMsg();
rtgree01 0:9bc41d70bdd3 25 void SendEVICMsg();
rtgree01 0:9bc41d70bdd3 26 void SendRadioModeMsg();
rtgree01 0:9bc41d70bdd3 27 void SendStereoSettingsMsg();
rtgree01 0:9bc41d70bdd3 28 void ChangeSiriusStation(int station, bool turn_on);
rtgree01 0:9bc41d70bdd3 29
rtgree01 0:9bc41d70bdd3 30 void readInitFile();
rtgree01 0:9bc41d70bdd3 31 void writeInitFile();
rtgree01 0:9bc41d70bdd3 32 void PowerUp(void);
rtgree01 0:9bc41d70bdd3 33
rtgree01 0:9bc41d70bdd3 34 void WriteCANMessages();
rtgree01 0:9bc41d70bdd3 35 Ticker CANBusTicker;
rtgree01 0:9bc41d70bdd3 36
rtgree01 0:9bc41d70bdd3 37 void SendStatusToHost();
rtgree01 0:9bc41d70bdd3 38 Ticker statusTicker;
rtgree01 0:9bc41d70bdd3 39
rtgree01 0:9bc41d70bdd3 40 CAN *can2;
rtgree01 0:9bc41d70bdd3 41 CANMessage can_MsgRx;
rtgree01 0:9bc41d70bdd3 42 DigitalOut *can_RS;
rtgree01 0:9bc41d70bdd3 43 InterruptIn *canIRQ;
rtgree01 0:9bc41d70bdd3 44 void RestartCAN(void);
rtgree01 0:9bc41d70bdd3 45
rtgree01 0:9bc41d70bdd3 46 int poweredDown;
rtgree01 0:9bc41d70bdd3 47
rtgree01 0:9bc41d70bdd3 48 bool radioOn;
rtgree01 0:9bc41d70bdd3 49
rtgree01 0:9bc41d70bdd3 50 void ParseCANMessage(CANMessage can_MsgRx);
rtgree01 0:9bc41d70bdd3 51 void ReadSiriusText(char *data);
rtgree01 0:9bc41d70bdd3 52 char siriusText[8][8][8];
rtgree01 0:9bc41d70bdd3 53
rtgree01 0:9bc41d70bdd3 54
rtgree01 0:9bc41d70bdd3 55 char serialCounter;
rtgree01 0:9bc41d70bdd3 56 char msg[14];
rtgree01 0:9bc41d70bdd3 57
rtgree01 0:9bc41d70bdd3 58 static char unlock[6];
rtgree01 0:9bc41d70bdd3 59 static char lock[6];
rtgree01 0:9bc41d70bdd3 60 static char trunk[6];
rtgree01 0:9bc41d70bdd3 61
rtgree01 0:9bc41d70bdd3 62
rtgree01 0:9bc41d70bdd3 63 RadioState status;
rtgree01 0:9bc41d70bdd3 64
rtgree01 0:9bc41d70bdd3 65 Timeout buttonTimeout;
rtgree01 0:9bc41d70bdd3 66 void ClickTimeout(void);
rtgree01 0:9bc41d70bdd3 67 int prevSWC;
rtgree01 0:9bc41d70bdd3 68 int buttonClicks[6];
rtgree01 0:9bc41d70bdd3 69 bool buttonHeld[6];
rtgree01 0:9bc41d70bdd3 70 bool reportButtonClick;
rtgree01 0:9bc41d70bdd3 71 bool buttonClickTimedOut;
rtgree01 0:9bc41d70bdd3 72
rtgree01 0:9bc41d70bdd3 73 bool ReceivedCANMsg;
rtgree01 0:9bc41d70bdd3 74 void CheckCANTimeout(void);
rtgree01 0:9bc41d70bdd3 75 Ticker CANTimeout;
rtgree01 0:9bc41d70bdd3 76 bool needToParseCANMessage;
rtgree01 0:9bc41d70bdd3 77
rtgree01 0:9bc41d70bdd3 78 bool ReceivedHostMsg;
rtgree01 0:9bc41d70bdd3 79 void CheckHostTimeout(void);
rtgree01 0:9bc41d70bdd3 80 Ticker HostTimeout;
rtgree01 0:9bc41d70bdd3 81
rtgree01 0:9bc41d70bdd3 82 enum {standalone, slave} opMode;
rtgree01 0:9bc41d70bdd3 83 };
rtgree01 0:9bc41d70bdd3 84
rtgree01 0:9bc41d70bdd3 85 #endif