auto-sync

This commit is contained in:
rusEfi 2014-12-10 14:03:15 -06:00
parent 93631216e0
commit cb57557aae
2 changed files with 14 additions and 12 deletions

View File

@ -19,6 +19,8 @@
#if EFI_CAN_SUPPORT || defined(__DOXYGEN__) #if EFI_CAN_SUPPORT || defined(__DOXYGEN__)
EXTERN_ENGINE;
static int canReadCounter = 0; static int canReadCounter = 0;
static Logging logger; static Logging logger;
static THD_WORKING_AREA(canTreadStack, UTILITY_THREAD_STACK_SIZE); static THD_WORKING_AREA(canTreadStack, UTILITY_THREAD_STACK_SIZE);
@ -50,6 +52,10 @@ static CANTxFrame txmsg;
static int engine_rpm = 0; static int engine_rpm = 0;
static float engine_clt = 0; static float engine_clt = 0;
//static CANDriver *getCanDevice() {
// if(board)
//}
static void printPacket(CANRxFrame *rx) { static void printPacket(CANRxFrame *rx) {
// scheduleMsg(&logger, "CAN FMI %x", rx->FMI); // scheduleMsg(&logger, "CAN FMI %x", rx->FMI);
// scheduleMsg(&logger, "TIME %x", rx->TIME); // scheduleMsg(&logger, "TIME %x", rx->TIME);
@ -142,18 +148,16 @@ static void canRead(void) {
printPacket(&rxBuffer); printPacket(&rxBuffer);
} }
static void writeStateToCan(void) { static void writeStateToCan(void) {
engine_rpm = getRpm(); engine_rpm = getRpm();
engine_clt = getCoolantTemperature(); engine_clt = getCoolantTemperature(engine);
canInfoNBCBroadcast(engineConfiguration->can_nbc_type); canInfoNBCBroadcast(engineConfiguration->can_nbc_type);
} }
static msg_t canThread(void *arg) { static msg_t canThread(void *arg) {
chRegSetThreadName("CAN"); chRegSetThreadName("CAN");
while (TRUE) { while (true) {
if(engineConfiguration->canWriteEnabled) if(engineConfiguration->canWriteEnabled)
writeStateToCan(); writeStateToCan();
@ -169,17 +173,13 @@ static msg_t canThread(void *arg) {
} }
static void canInfo(void) { static void canInfo(void) {
scheduleMsg(&logger, "CAN TX %s:%d", portname(EFI_CAN_TX_PORT), EFI_CAN_TX_PIN); scheduleMsg(&logger, "CAN TX %s", hwPortname(boardConfiguration->canTxPin));
scheduleMsg(&logger, "CAN RX %s:%d", portname(EFI_CAN_RX_PORT), EFI_CAN_RX_PIN); scheduleMsg(&logger, "CAN RX %s", hwPortname(boardConfiguration->canRxPin));
scheduleMsg(&logger, "canReadEnabled=%d canWriteEnabled=%d", engineConfiguration->canReadEnabled, engineConfiguration->canWriteEnabled); scheduleMsg(&logger, "canReadEnabled=%d canWriteEnabled=%d", engineConfiguration->canReadEnabled, engineConfiguration->canWriteEnabled);
scheduleMsg(&logger, "CAN rx count %d", canReadCounter); scheduleMsg(&logger, "CAN rx count %d", canReadCounter);
} }
static CANDriver *getCanDevice() {
if(board)
}
void initCan(void) { void initCan(void) {
initLogging(&logger, "CAN driver"); initLogging(&logger, "CAN driver");
@ -194,8 +194,8 @@ void initCan(void) {
canStart(&EFI_CAN_DEVICE, &canConfig); canStart(&EFI_CAN_DEVICE, &canConfig);
chThdCreateStatic(canTreadStack, sizeof(canTreadStack), NORMALPRIO, (tfunc_t) canThread, NULL ); chThdCreateStatic(canTreadStack, sizeof(canTreadStack), NORMALPRIO, (tfunc_t) canThread, NULL );
mySetPadMode("CAN TX", EFI_CAN_TX_PORT, EFI_CAN_TX_PIN, PAL_MODE_ALTERNATE(EFI_CAN_TX_AF)); mySetPadMode2("CAN TX", boardConfiguration->canTxPin, PAL_MODE_ALTERNATE(EFI_CAN_TX_AF));
mySetPadMode("CAN RX", EFI_CAN_RX_PORT, EFI_CAN_RX_PIN, PAL_MODE_ALTERNATE(EFI_CAN_RX_AF)); mySetPadMode2("CAN RX", boardConfiguration->canRxPin, PAL_MODE_ALTERNATE(EFI_CAN_RX_AF));
addConsoleActionI("enable_can_read", enableCanRead); addConsoleActionI("enable_can_read", enableCanRead);

View File

@ -11,6 +11,8 @@
// CAN Bus ID for broadcast // CAN Bus ID for broadcast
/** /**
* e46 data is from http://forums.bimmerforums.com/forum/showthread.php?1887229 * e46 data is from http://forums.bimmerforums.com/forum/showthread.php?1887229
*
* Same for Mini Cooper? http://vehicle-reverse-engineering.wikia.com/wiki/MINI
*/ */
#define CAN_BMW_E46_SPEED 0x153 #define CAN_BMW_E46_SPEED 0x153
#define CAN_BMW_E46_RPM 0x316 #define CAN_BMW_E46_RPM 0x316