diff --git a/AVCLan_mini/AVCLanDrv.cpp b/AVCLan_mini/AVCLanDrv.cpp index 293ab17..c75fcb1 100644 --- a/AVCLan_mini/AVCLanDrv.cpp +++ b/AVCLan_mini/AVCLanDrv.cpp @@ -199,7 +199,7 @@ byte AVCLanDrv::readMessage () { while (!avclan.isAvcBusFree()); } - // else avclan.printMessage(true); + else avclan.printMessage(true); return res; } @@ -538,8 +538,8 @@ void AVCLanDrv::printMessage(bool incoming) byte AVCLanDrv::getActionID(const AvcInCmdTable messageTable[], byte mtSize) //-------------------------------------------------------------------------------- { - if ( ((slaveAddress != deviceAddress) && (slaveAddress != 0x0FFF)) - || (( dataSize < 8) || (dataSize > 10 )) ) { + if ( ((dataSize < 8) && ( dataSize != 6 )) || (dataSize > 10 ) ) { + avclanBT.println("#18"); return ACT_NONE; } @@ -548,13 +548,19 @@ byte AVCLanDrv::getActionID(const AvcInCmdTable messageTable[], byte mtSize) if (dataSize == 6) idx = 0; else if (dataSize == 8) idx = 1; else if (dataSize == 9) idx = 7; - else idx = 10; + else idx = 10; for (; idx < mtSize; ++idx) { - if (dataSize != pgm_read_byte_near(&messageTable[idx].dataSize)) return ACT_NONE; // Because first unsized value from other range + if (dataSize != pgm_read_byte_near(&messageTable[idx].dataSize)) { + avclanBT.println("#19"); + return ACT_NONE; // Because first unsized value from other range + } if ( message[dataSize - 1] == pgm_read_byte_near(&messageTable[idx].command) ) + { + avclanBT.println("#20"); return pgm_read_byte_near( &messageTable[idx].actionID ); + } } return ACT_NONE; } diff --git a/AVCLan_mini/AVCLanHonda.cpp b/AVCLan_mini/AVCLanHonda.cpp index 663eab2..ddf8fdc 100644 --- a/AVCLan_mini/AVCLanHonda.cpp +++ b/AVCLan_mini/AVCLanHonda.cpp @@ -25,8 +25,8 @@ // { action_name, packed_size, end_off_packege_word(check_sum) } const AvcInCmdTable mtSearchHead[] PROGMEM = { - { ACT_PREP_CAMOFF, 0x06, 0x58}, //06170D31020158 - { ACT_BUTTON_DOWN, 0x08, 0xBC}, // 08590D3102012000BC + { ACT_PREP_CAMOFF, 0x06, 0x58}, // 06170D31020158 + { ACT_BUTTON_DOWN, 0x08, 0xBC}, // 08590D3102012000BC { ACT_BUTTON_UP, 0x08, 0xBE}, // 08590D3102012101BE { ACT_B_DISPOFF, 0x08, 0x2F}, // 08590D31020122712F { ACT_B_DISPFULL_DOWN, 0x08, 0x43}, // 08590D310201228543 @@ -46,9 +46,9 @@ const byte mtSearchHeadSize = sizeof(mtSearchHead) / sizeof(AvcInCmdTable); void AVCLanHonda::begin() //-------------------------------------------------------------------------------- { - avclan.deviceAddress = 0x0131; + // avclan.deviceAddress = 0x0131; - bPrepareCamOff = false; + // bPrepareCamOff = false; bShowHondaDisp = true; setHondaDisLast(true); bShowRearCam = false; @@ -81,6 +81,7 @@ void AVCLanHonda::getActionID() //-------------------------------------------------------------------------------- { avclan.actionID = avclan.getActionID( mtSearchHead, mtSearchHeadSize ); + avclanBT.println("#17"); }; // process action @@ -101,10 +102,10 @@ void AVCLanHonda::processAction( AvcActionID ActionID ) if ( INIT2_TIME < millis() ) bFirstStart_20 = false; } - if ( bPrepareCamOff && (ACT_B_DISPOFF == ActionID) ) { - ActionID = ACT_CAM_OFF; - avclanBT.println("#9"); - } else bPrepareCamOff = false; + // if ( bPrepareCamOff && (ACT_B_DISPOFF == ActionID) ) { + // ActionID = ACT_CAM_OFF; + // avclanBT.println("#9"); + // } else bPrepareCamOff = false; switch ( ActionID ) { case ACT_BUTTON_UP: @@ -138,15 +139,16 @@ void AVCLanHonda::processAction( AvcActionID ActionID ) freezeTime = (millis() + FREEZE_TIME); } break; + case ACT_PREP_CAMOFF: case ACT_CAM_OFF: bShowRearCam = false; bShowHondaDisp = bHondaDisLast; setWaitTime(0L); avclanBT.println("#11"); break; - case ACT_PREP_CAMOFF: - bPrepareCamOff = true; - break; + // case ACT_PREP_CAMOFF: + // bPrepareCamOff = true; + // break; } }; @@ -181,11 +183,8 @@ void AVCLanHonda::setHondaDis( bool val ) bShowHondaDisp = val; setHondaDisLast( val ); setWaitTime(0L); - if( val ) avclanBT.println("#2"); + if ( val ) avclanBT.println("#2"); else avclanBT.println("#16"); } - AVCLanHonda avclanHonda; - - diff --git a/AVCLan_mini/AVCLanHonda.h b/AVCLan_mini/AVCLanHonda.h index 1325751..61eedef 100644 --- a/AVCLan_mini/AVCLanHonda.h +++ b/AVCLan_mini/AVCLanHonda.h @@ -87,7 +87,7 @@ class AVCLanHonda bool bWait; - bool bPrepareCamOff; + // bool bPrepareCamOff; bool bShowRearCam; bool bShowHondaDisp; bool bTimeSwitch; diff --git a/AVCLan_mini/AVCLan_BT.cpp b/AVCLan_mini/AVCLan_BT.cpp index 6214347..f2db0fc 100644 --- a/AVCLan_mini/AVCLan_BT.cpp +++ b/AVCLan_mini/AVCLan_BT.cpp @@ -19,7 +19,7 @@ // *99 ">>A:UNDEFINED<<"); //-------------------------------------------------------------------------------- #define E_LOGG 0 -#define E_DISPLAY 0 +#define E_DISPLAY 1 //-------------------------------------------------------------------------------- SoftwareSerial mySerial(4, 3); // RX | TX @@ -88,6 +88,8 @@ int AVCLanBT::available() void AVCLanBT::checkCommand( char command ) //-------------------------------------------------------------------------------- { +// Serial.print("command:"); Serial.println(command); + if ( (command == '@') && !startCommand ) { startCommand = true; command_i = 0; @@ -107,7 +109,7 @@ void AVCLanBT::checkCommand( char command ) } else if ( 0 == strcmp( command_buff, "s" ) ) { EEPROM.write( E_LOGG, (int)logging ); EEPROM.write( E_DISPLAY, dispalyStatus ); - mySerial.println("#Store"); + mySerial.print("#S:"); mySerial.print(logging); mySerial.print(":"); mySerial.println(dispalyStatus); } else if ( 0 == strcmp( command_buff, "d0" ) ) { dispalyStatus = 0; mySerial.println("#D0"); @@ -118,7 +120,7 @@ void AVCLanBT::checkCommand( char command ) dispalyStatus = 2; mySerial.println("#D2"); } - println(command_buff); + // println(command_buff); } } @@ -209,8 +211,8 @@ void AVCLanBT::EERPOM_read_config() if ( EEPROM.read(E_LOGG) == 1 ) logging = true; dispalyStatus = EEPROM.read(E_DISPLAY); - logging ? mySerial.println(">>Logging ON<<") : mySerial.println(">>Logging OFF<<"); - mySerial.print("DisplStatus:"); mySerial.println(dispalyStatus); + logging ? mySerial.println("Log+;") : mySerial.println("Log-;"); + mySerial.print("Disp:"); mySerial.println(dispalyStatus); } AVCLanBT avclanBT; diff --git a/AVCLan_mini/AVCLan_mini.ino b/AVCLan_mini/AVCLan_mini.ino index 3af4559..eb76dd1 100644 --- a/AVCLan_mini/AVCLan_mini.ino +++ b/AVCLan_mini/AVCLan_mini.ino @@ -40,6 +40,10 @@ int error_count; // #14 - so many error comes // #15 - after wait try to show honda display // #16 - Set setHondaDis value false +// #17 - call getActionID function +// #18 - ((dataSize < 8) && ( dataSize != 6 )) || (dataSize > 10 ) // for fast action pars +// #19 - return NOT Action find +// #20 - Action find OK //-------------------------------------------------------------------------------- void setup() @@ -49,6 +53,8 @@ void setup() LED_ON; // Serial.begin(9600); +// Serial.print("Init by 9600"); + avclan.begin(); avclanHonda.begin(); errorID = 0; @@ -66,18 +72,19 @@ void setup() void loop() //-------------------------------------------------------------------------------- { + // int len = 0; //avclanBT.available(); if ( avclanBT.available() ) { - int len = avclanBT.available(); - for (int i = 0; i < len; i++) avclanBT.checkCommand(avclanBT.read()); +// Serial.print("available"); + avclanBT.checkCommand(avclanBT.read()); } - if( 1 == avclanBT.getDisplayStatus() ){ - HONDA_DIS_ON; - LED_ON; - } else if ( 2 == avclanBT.getDisplayStatus() ){ - HONDA_DIS_OFF; - LED_OFF; + if ( 1 == avclanBT.getDisplayStatus() ) { + HONDA_DIS_ON; + LED_ON; + } else if ( 2 == avclanBT.getDisplayStatus() ) { + HONDA_DIS_OFF; + LED_OFF; } // First 5 sec should be Honda logo @@ -104,8 +111,6 @@ void loop() { // LED_OFF; error_count = 0; - - avclan.printMessage(true); avclanHonda.getActionID(); if ( avclan.actionID != ACT_NONE ) diff --git a/AVCLan_mini/config.h b/AVCLan_mini/config.h index 65bebfe..441be51 100644 --- a/AVCLan_mini/config.h +++ b/AVCLan_mini/config.h @@ -1,4 +1,4 @@ -#define IEBUS_VERSION "0.82" +#define IEBUS_VERSION "0.9" // type of AVCLan hardwire driver #define AVCLAN_PCA82C250