1
0
mirror of https://github.com/Oleg-Stepanenko-owo/IEBUS synced 2025-06-13 02:46:09 +00:00

Fix bug with rear cam till 10 sek

This commit is contained in:
OlegStepanenko_noute 2016-04-07 21:44:47 +03:00
parent 67457e86ea
commit ef73f5eb69
5 changed files with 72 additions and 31 deletions

View File

@ -53,8 +53,8 @@ void AVCLanHonda::begin()
{ {
avclan.deviceAddress = 0x0131; avclan.deviceAddress = 0x0131;
bShowHondaDisp = false; bShowHondaDisp = true;
bHondaDisLast = false; bHondaDisLast = true;
bShowRearCam = false; bShowRearCam = false;
bFirstStart_20 = true; bFirstStart_20 = true;
bFreeze = false; bFreeze = false;
@ -94,7 +94,8 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
{ {
if ( bFirstStart_20 && (20000 > millis()) && (ACT_CAM_ON == ActionID) ) { if ( bFirstStart_20 && (20000 > millis()) && (ACT_CAM_ON == ActionID) ) {
bShowRearCam = true; bShowRearCam = true;
bHondaDisLast = false; //after reverse action should be GVN screen if ( 11500 > millis() ) bHondaDisLast = true;
else bHondaDisLast = false;
bShowHondaDisp = true; bShowHondaDisp = true;
return; return;
} }

View File

@ -144,6 +144,27 @@ void AVCLanBT::sendByte(uint8_t val)
mySerial.write( 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() void AVCLanBT::EERPOM_read_config()
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------

View File

@ -5,6 +5,7 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include "Arduino.h" #include "Arduino.h"
#include "AVCLanHonda.h"
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
@ -28,6 +29,7 @@ class AVCLanBT
bool isLogging(); bool isLogging();
int available(); int available();
void checkCommand(char command ); void checkCommand(char command );
void printAction( AvcActionID ActionID );
private: private:
void EERPOM_read_config(); void EERPOM_read_config();

View File

@ -23,15 +23,17 @@ int len = 0; //stores the length of the commands
void setup() void setup()
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
{ {
// Serial.begin(9600); // Serial.begin(9600);
avclan.begin(); avclan.begin();
avclanHonda.begin(); avclanHonda.begin();
errorID = 0; errorID = 0;
error_count = 0; error_count = 0;
avclanBT.begin(); avclanBT.begin();
avclanBT.println("Start HONDA avclan."); avclanBT.print("Start HONDA avclan.#");
sprintf( BUFFF, "%s", IEBUS_VERSION );
avclanBT.println( BUFFF );
LED_ON; LED_ON;
} }
@ -39,44 +41,53 @@ void setup()
void loop() void loop()
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
{ {
if (avclanBT.available()) if ( avclanBT.available() )
{ {
len = 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()) ) { if ( avclanHonda.bFirstStart_20 && !avclanHonda.isShowRearCam() && (11500 < millis()) )
HONDA_DIS_ON; // initalize {
return;
} else if ( avclanHonda.bFirstStart_20 && !avclanHonda.isShowRearCam() && (11500 < millis()) ) {
avclanHonda.setHondaDis( false ); //Show GVN screen avclanHonda.setHondaDis( false ); //Show GVN screen
} }
if ( avclanHonda.bFreeze ) { if ( avclanHonda.bFreeze ) {
if ( avclanHonda.freezeTime < millis() ) { if ( avclanHonda.freezeTime < millis() ) {
avclanHonda.bFreeze = false; avclanHonda.bFreeze = false;
avclanHonda.freezeTime = 0L; avclanHonda.freezeTime = 0L;
} else return; }
} }
if ( INPUT_IS_SET ) { if ( INPUT_IS_SET ) {
byte res = avclan.readMessage(); byte res = avclan.readMessage();
if ( !res ) { if ( !res )
{
LED_OFF;
avclan.printMessage(true); avclan.printMessage(true);
error_count = 0; error_count = 0;
avclanHonda.getActionID(); 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 ); 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++; if ( errorID == res ) error_count++;
else error_count = 1; else error_count = 1;
@ -84,13 +95,19 @@ void loop()
} }
} }
if ( avclanHonda.isWait() ) { if ( avclanHonda.isWait() )
{
avclanHonda.checkWait(); avclanHonda.checkWait();
if ( !avclanHonda.isWait() ) avclanHonda.tryToShowHondaDisp(); if ( !avclanHonda.isWait() ) avclanHonda.tryToShowHondaDisp();
} else { }
if ( avclanHonda.getCommute() ) { else
{
if ( avclanHonda.getCommute() )
{
HONDA_DIS_ON; HONDA_DIS_ON;
} else { }
else
{
HONDA_DIS_OFF; HONDA_DIS_OFF;
} }
} }
@ -105,8 +122,8 @@ void loop()
sprintf(BUFFF, "Error: %d", errorID ); sprintf(BUFFF, "Error: %d", errorID );
avclanBT.println( BUFFF ); avclanBT.println( BUFFF );
avclan.begin(); //avclan.begin();
cli(); //cli();
} }
} }

View File

@ -2,7 +2,7 @@
config.h - AVCLan driver config config.h - AVCLan driver config
Created by Kochetkov Aleksey, 04.08.2010 Created by Kochetkov Aleksey, 04.08.2010
*/ */
#define IEBUS_VERSION "0.4" #define IEBUS_VERSION "0.5"
// type of AVCLan hardwire driver // type of AVCLan hardwire driver
#define AVCLAN_PCA82C250 #define AVCLAN_PCA82C250