speeduino-personal/speeduino/comms_CAN.h

54 lines
1.8 KiB
C

#ifndef COMMS_CAN_H
#define COMMS_CAN_H
//For BMW e46/e39/e38, rover and mini other CAN instrument clusters
#define CAN_BMW_ASC1 0x153 //Rx message from ACS unit that includes speed
#define CAN_BMW_DME1 0x316 //Tx message that includes RPM
#define CAN_BMW_DME2 0x329 //Tx message that includes CLT and TPS
#define CAN_BMW_DME4 0x545 //Tx message that includes CLT and TPS
#define CAN_BMW_ICL2 0x613
#define CAN_BMW_ICL3 0x615
//For VAG CAN instrument clusters
#define CAN_VAG_RPM 0x280
#define CAN_VAG_VSS 0x5A0
//For Haltech IC-7 and IC-10 digital dashes
#define CAN_HALTECH_DATA1 0x360 //RPM, MAP, TPS, Coolant Pressure. 50Hz
#define CAN_HALTECH_DATA2 0x361 //Fuel Pressure, Oil Pressure, Load, Wastegate Pressure. 50Hz
#define CAN_HALTECH_DATA3 0x362 //Advance, INJ Stage 1/2 duty cycles. 50Hz
#define CAN_HALTECH_PW 0x364 //Pulsewidth 1-4. 50Hz
#define CAN_HALTECH_LAMBDA 0x368 //Lambda 1-4. 20Hz
#define CAN_HALTECH_TRIGGER 0x369 //Trigger Counter, sync level, sync error count. 20Hz
#define CAN_HALTECH_DATA4 0x372 //Baro, BatteryV, Target boost. 10Hz
#define CAN_HALTECH_DATA5 0x3E0 //IAT, CLT, Fuel Temp, Oil Temp. 10Hz
#define CAN_BROADCAST_PROTOCOL_OFF 0
#define CAN_BROADCAST_PROTOCOL_BMW 1
#define CAN_BROADCAST_PROTOCOL_VAG 2
#define CAN_BROADCAST_PROTOCOL_HALTECH 3
#define CAN_WBO_RUSEFI 1
#define CAN_WBO_AEM 2
#define TS_CAN_OFFSET 0x100
#if defined(NATIVE_CAN_AVAILABLE)
void initCAN();
int CAN_read();
void CAN_write();
void sendCANBroadcast(uint8_t);
void receiveCANwbo();
void DashMessages(uint16_t DashMessageID);
void can_Command(void);
void obd_response(uint8_t therequestedPID , uint8_t therequestedPIDlow, uint8_t therequestedPIDhigh);
void readAuxCanBus();
extern CAN_message_t outMsg;
extern CAN_message_t inMsg;
#endif
#endif // COMMS_CAN_H