diff --git a/AVCLan_mini/AVCLanHonda.cpp b/AVCLan_mini/AVCLanHonda.cpp index 93d6900..853934c 100644 --- a/AVCLan_mini/AVCLanHonda.cpp +++ b/AVCLan_mini/AVCLanHonda.cpp @@ -53,8 +53,8 @@ void AVCLanHonda::begin() { avclan.deviceAddress = 0x0131; - bShowHondaDisp = false; - bHondaDisLast = false; + bShowHondaDisp = true; + bHondaDisLast = true; bShowRearCam = false; bFirstStart_20 = true; bFreeze = false; @@ -94,7 +94,8 @@ void AVCLanHonda::processAction( AvcActionID ActionID ) { if ( bFirstStart_20 && (20000 > millis()) && (ACT_CAM_ON == ActionID) ) { bShowRearCam = true; - bHondaDisLast = false; //after reverse action should be GVN screen + if ( 11500 > millis() ) bHondaDisLast = true; + else bHondaDisLast = false; bShowHondaDisp = true; return; } diff --git a/AVCLan_mini/AVCLan_BT.cpp b/AVCLan_mini/AVCLan_BT.cpp index 2334072..8d7bf80 100644 --- a/AVCLan_mini/AVCLan_BT.cpp +++ b/AVCLan_mini/AVCLan_BT.cpp @@ -144,6 +144,27 @@ void AVCLanBT::sendByte(uint8_t val) mySerial.write( val ); } +//-------------------------------------------------------------------------------- +void AVCLanBT::printAction( AvcActionID ActionID ) +//-------------------------------------------------------------------------------- +{ + switch ( ActionID ) + { + case ACT_CAM_ON: mySerial.println(">>A:CAM ON<<"); break; + case ACT_CAM_OFF: mySerial.println(">>A:CAM OFF<<"); break; + case ACT_DISP_OFF: mySerial.println(">>A:DISP OFF<<"); break; + case ACT_BUTTON_DOWN: mySerial.println(">>A:BUTTON DOWN<<"); break; + case ACT_BUTTON_UP: mySerial.println(">>A:BUTTON UP<<"); break; + case ACT_B_DISPOFF: mySerial.println(">>A:B_DISP_OFF<<"); break; + case ACT_B_DISPFULL_DOWN: mySerial.println(">>A:B_DISP_FULL_DOWN<<"); break; + case ACT_B_DISPFULL_UP: mySerial.println(">>A:B_DISP_FULL_UP<<"); break; + case ACT_B_DISPHULF: mySerial.println(">>A:B_DISP_HILF<<"); break; + case ACT_TEL: mySerial.println(">>A:TEL<<"); break; + case ACT_TEL_CANCEL: mySerial.println(">>A:TEL CANCEL<<"); break; + default: mySerial.println(">>A:UNDEFINED<<"); + } +} + //-------------------------------------------------------------------------------- void AVCLanBT::EERPOM_read_config() //-------------------------------------------------------------------------------- diff --git a/AVCLan_mini/AVCLan_BT.h b/AVCLan_mini/AVCLan_BT.h index b622dd3..124d488 100644 --- a/AVCLan_mini/AVCLan_BT.h +++ b/AVCLan_mini/AVCLan_BT.h @@ -5,6 +5,7 @@ #include #include "Arduino.h" +#include "AVCLanHonda.h" //-------------------------------------------------------------------------------- @@ -28,6 +29,7 @@ class AVCLanBT bool isLogging(); int available(); void checkCommand(char command ); + void printAction( AvcActionID ActionID ); private: void EERPOM_read_config(); diff --git a/AVCLan_mini/AVCLan_mini.ino b/AVCLan_mini/AVCLan_mini.ino index dd4934f..287993f 100644 --- a/AVCLan_mini/AVCLan_mini.ino +++ b/AVCLan_mini/AVCLan_mini.ino @@ -23,15 +23,17 @@ int len = 0; //stores the length of the commands void setup() //-------------------------------------------------------------------------------- { - // Serial.begin(9600); - + // Serial.begin(9600); avclan.begin(); avclanHonda.begin(); errorID = 0; error_count = 0; avclanBT.begin(); - avclanBT.println("Start HONDA avclan."); + avclanBT.print("Start HONDA avclan.#"); + sprintf( BUFFF, "%s", IEBUS_VERSION ); + avclanBT.println( BUFFF ); + LED_ON; } @@ -39,44 +41,53 @@ void setup() void loop() //-------------------------------------------------------------------------------- { - if (avclanBT.available()) + if ( avclanBT.available() ) { len = avclanBT.available(); - // Serial.print("len ="); Serial.println(len); - for (int i = 0; i < len; i++) - { - avclanBT.checkCommand(avclanBT.read()); - } + for (int i = 0; i < len; i++) avclanBT.checkCommand(avclanBT.read()); } - if ( avclanHonda.bFirstStart_20 && (11500 > millis()) ) { - HONDA_DIS_ON; // initalize - return; - } else if ( avclanHonda.bFirstStart_20 && !avclanHonda.isShowRearCam() && (11500 < millis()) ) { + if ( avclanHonda.bFirstStart_20 && !avclanHonda.isShowRearCam() && (11500 < millis()) ) + { avclanHonda.setHondaDis( false ); //Show GVN screen } if ( avclanHonda.bFreeze ) { - if ( avclanHonda.freezeTime < millis() ) { + if ( avclanHonda.freezeTime < millis() ) { avclanHonda.bFreeze = false; avclanHonda.freezeTime = 0L; - } else return; + } } if ( INPUT_IS_SET ) { byte res = avclan.readMessage(); - if ( !res ) { + if ( !res ) + { + LED_OFF; + avclan.printMessage(true); error_count = 0; avclanHonda.getActionID(); - if ( avclan.actionID != ACT_NONE ) { - sprintf( BUFFF, "Action: %d", avclan.actionID ); - avclanBT.println( BUFFF ); - LED_ON; + if ( avclanHonda.bFirstStart_20 && (avclan.actionID == ACT_CAM_ON) ) + { + avclanBT.printAction((AvcActionID)avclan.actionID); avclanHonda.processAction( (AvcActionID)avclan.actionID ); } - } else { + else if ( (avclan.actionID != ACT_NONE) && ( 20000 < millis() ) && (!avclanHonda.bFreeze)) + { + avclanBT.printAction((AvcActionID)avclan.actionID); + avclanHonda.processAction( (AvcActionID)avclan.actionID ); + } + else + { + if ( avclanHonda.bFirstStart_20 ) avclanBT.println(">>FIRST_SKIP<<"); + else if ( avclanHonda.bFreeze ) avclanBT.println(">>FREEZE_SKIP<<"); + } + LED_ON; + } + else + { if ( errorID == res ) error_count++; else error_count = 1; @@ -84,13 +95,19 @@ void loop() } } - if ( avclanHonda.isWait() ) { + if ( avclanHonda.isWait() ) + { avclanHonda.checkWait(); if ( !avclanHonda.isWait() ) avclanHonda.tryToShowHondaDisp(); - } else { - if ( avclanHonda.getCommute() ) { + } + else + { + if ( avclanHonda.getCommute() ) + { HONDA_DIS_ON; - } else { + } + else + { HONDA_DIS_OFF; } } @@ -105,8 +122,8 @@ void loop() sprintf(BUFFF, "Error: %d", errorID ); avclanBT.println( BUFFF ); - avclan.begin(); - cli(); + //avclan.begin(); + //cli(); } } diff --git a/AVCLan_mini/config.h b/AVCLan_mini/config.h index c012a9c..6074846 100644 --- a/AVCLan_mini/config.h +++ b/AVCLan_mini/config.h @@ -2,7 +2,7 @@ config.h - AVCLan driver config Created by Kochetkov Aleksey, 04.08.2010 */ -#define IEBUS_VERSION "0.4" +#define IEBUS_VERSION "0.5" // type of AVCLan hardwire driver #define AVCLAN_PCA82C250