From d9e0f0bd9d152df7a840721a882ae2ee1f4536da Mon Sep 17 00:00:00 2001 From: OlegStepanenko_noute Date: Mon, 14 Mar 2016 20:25:55 +0200 Subject: [PATCH] added freeze after Honda/GVN display swithcing --- AVCLan_mini/AVCLanHonda.cpp | 5 +++++ AVCLan_mini/AVCLanHonda.h | 9 ++++++--- AVCLan_mini/AVCLan_mini.ino | 7 +++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/AVCLan_mini/AVCLanHonda.cpp b/AVCLan_mini/AVCLanHonda.cpp index e789ea2..35f6670 100644 --- a/AVCLan_mini/AVCLanHonda.cpp +++ b/AVCLan_mini/AVCLanHonda.cpp @@ -50,8 +50,10 @@ void AVCLanHonda::begin() bHondaDisLast = false; bShowRearCam = false; bFirstStart_20 = true; + bFreeze = false; setWaitTime( 0L ); + freezeTime = 0L; // timer1 setup, prescaler factor - 1024 TCCR1A = 0; // normal mode @@ -112,9 +114,12 @@ void AVCLanHonda::processAction( AvcActionID ActionID ) case ACT_DISP_OFF: if ( !bShowRearCam ) { + // need freeze on 2000 sec after code receiving. bShowHondaDisp = false; bHondaDisLast = false; setWaitTime(0L); + bFreeze = true; + freezeTime = (millis() + FREEZE_TIME); } break; case ACT_CAM_OFF: diff --git a/AVCLan_mini/AVCLanHonda.h b/AVCLan_mini/AVCLanHonda.h index 4f07f87..ecd5697 100644 --- a/AVCLan_mini/AVCLanHonda.h +++ b/AVCLan_mini/AVCLanHonda.h @@ -30,7 +30,7 @@ #define AVCLANDEVICE_VERSION "0.1.0" #define BUTT_WAIT 1000 -#define LOCK_TIME 700 +#define FREEZE_TIME 1500 //-------------------------------------------------------------------------------- typedef enum { @@ -74,14 +74,17 @@ class AVCLanHonda void checkLock(); void setHondaDis( bool val ); + bool bFreeze; bool bFirstStart_20; + unsigned long freezeTime; + private: unsigned long waitTime; - // unsigned long lockTime; + bool bWait; - bool bLock; + bool bShowRearCam; bool bShowHondaDisp; diff --git a/AVCLan_mini/AVCLan_mini.ino b/AVCLan_mini/AVCLan_mini.ino index e3896d7..95c204d 100644 --- a/AVCLan_mini/AVCLan_mini.ino +++ b/AVCLan_mini/AVCLan_mini.ino @@ -33,6 +33,13 @@ void loop() avclanHonda.setHondaDis( false ); //Show GVN screen } + if ( avclanHonda.bFreeze ) { + if ( avclanHonda.freezeTime < millis() ) { + avclanHonda.bFreeze = false; + avclanHonda.freezeTime = 0L; + } else return; + } + if ( INPUT_IS_SET ) { byte res = avclan.readMessage(); if ( !res ) {