Dodge/Chrysler Radio Emulator Connect to Interior CAN bus
Dependencies: mbed SDFileSystem
radioEmulator.h@0:9bc41d70bdd3, 2011-01-31 (annotated)
- Committer:
- rtgree01
- Date:
- Mon Jan 31 05:13:04 2011 +0000
- Revision:
- 0:9bc41d70bdd3
Who changed what in which revision?
User | Revision | Line number | New 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 |