1
0
mirror of https://github.com/Oleg-Stepanenko-owo/IEBUS synced 2025-06-27 17:56:17 +00:00

added some loggs; added new command for eerom

This commit is contained in:
OlegStepanenko_noute 2016-05-14 16:43:22 +03:00
parent e806f0d3e4
commit 0a364bcdf2
6 changed files with 127 additions and 53 deletions

View File

@ -99,7 +99,6 @@ byte AVCLanDrv::_readMessage ()
if (t < AVC_START_BIT_HOLD_ON_MIN_LENGTH) { if (t < AVC_START_BIT_HOLD_ON_MIN_LENGTH) {
//if (t < 0x16){ //if (t < 0x16){
avclanBT.print("-->t=", true); avclanBT.printDec(t); avclanBT.println();
SREG = oldSREG; SREG = oldSREG;
return 2; return 2;
} }
@ -531,7 +530,6 @@ void AVCLanDrv::printMessage(bool incoming)
avclanBT.printHex8(message[i]); avclanBT.printHex8(message[i]);
} }
avclanBT.println(); avclanBT.println();
} }

View File

@ -95,6 +95,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
bShowHondaDisp = true; bShowHondaDisp = true;
bFirstStart_20 = false; bFirstStart_20 = false;
setWaitTime(0L); setWaitTime(0L);
avclanBT.println("#8");
return; return;
} }
if ( INIT2_TIME < millis() ) bFirstStart_20 = false; if ( INIT2_TIME < millis() ) bFirstStart_20 = false;
@ -102,7 +103,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
if ( bPrepareCamOff && (ACT_B_DISPOFF == ActionID) ) { if ( bPrepareCamOff && (ACT_B_DISPOFF == ActionID) ) {
ActionID = ACT_CAM_OFF; ActionID = ACT_CAM_OFF;
avclanBT.println("[CAMOFF+DISPOFF]"); avclanBT.println("#9");
} else bPrepareCamOff = false; } else bPrepareCamOff = false;
switch ( ActionID ) { switch ( ActionID ) {
@ -113,6 +114,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
if ( ULONG_MAX > (millis() + BUTT_WAIT) ) if ( ULONG_MAX > (millis() + BUTT_WAIT) )
setWaitTime( (unsigned long)((millis() + BUTT_WAIT)) ); setWaitTime( (unsigned long)((millis() + BUTT_WAIT)) );
else setWaitTime( BUTT_WAIT ); else setWaitTime( BUTT_WAIT );
avclanBT.println("#10");
} }
} }
break; break;
@ -121,6 +123,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
setHondaDisLast( isShowHondaDisp() ); setHondaDisLast( isShowHondaDisp() );
bShowHondaDisp = true; bShowHondaDisp = true;
setWaitTime(0L); setWaitTime(0L);
avclanBT.println("#11");
break; break;
case ACT_B_DISPOFF: case ACT_B_DISPOFF:
case ACT_B_DISPFULL_UP: case ACT_B_DISPFULL_UP:
@ -130,6 +133,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
bShowHondaDisp = false; bShowHondaDisp = false;
setHondaDisLast( false ); setHondaDisLast( false );
setWaitTime(0L); setWaitTime(0L);
avclanBT.println("#11");
bFreeze = true; bFreeze = true;
freezeTime = (millis() + FREEZE_TIME); freezeTime = (millis() + FREEZE_TIME);
} }
@ -138,6 +142,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
bShowRearCam = false; bShowRearCam = false;
bShowHondaDisp = bHondaDisLast; bShowHondaDisp = bHondaDisLast;
setWaitTime(0L); setWaitTime(0L);
avclanBT.println("#11");
break; break;
case ACT_PREP_CAMOFF: case ACT_PREP_CAMOFF:
bPrepareCamOff = true; bPrepareCamOff = true;
@ -176,6 +181,8 @@ void AVCLanHonda::setHondaDis( bool val )
bShowHondaDisp = val; bShowHondaDisp = val;
setHondaDisLast( val ); setHondaDisLast( val );
setWaitTime(0L); setWaitTime(0L);
if( val ) avclanBT.println("#2");
else avclanBT.println("#16");
} }

View File

@ -3,9 +3,23 @@
#include <SoftwareSerial.h> #include <SoftwareSerial.h>
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include <EEPROM.h> #include <EEPROM.h>
//--------------------------------------------------------------------------------
// *1 - Rear camera ON
// *2 - Rear camera Off
// *3 - Display off
// *4 - Button donw
// *5 - >>A:BUTTON UP<<"
// *6 ">>A:B_DISP_OFF<<"
// *7 ">>A:B_DISP_FULL_DOWN<<"
// *8 ">>A:B_DISP_FULL_UP<<"
// *9 ">>A:B_DISP_HILF<<"
// *10 ">>A:TEL<<"
// *11 ">>A:TEL CANCEL<<"
// *12 ">>A:PREP_CAMOFF<<"
// *99 ">>A:UNDEFINED<<");
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
#define E_LOGG 0 #define E_LOGG 0
#define E_DISPLAY 0
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
SoftwareSerial mySerial(4, 3); // RX | TX SoftwareSerial mySerial(4, 3); // RX | TX
@ -16,11 +30,16 @@ bool startCommand;
void AVCLanBT::begin() void AVCLanBT::begin()
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
{ {
dispalyStatus = 0;
mySerial.begin(9600); mySerial.begin(9600);
mySerial.println("BlueTooth is ready"); mySerial.println("BlueTooth:");
mySerial.println("@log+@ - start logging"); mySerial.println("@l+@");
mySerial.println("@log-@ - end logging"); mySerial.println("@l-@");
mySerial.println("@save@ - save logging in EEPROM"); mySerial.println("@s@");
mySerial.println("@d0,1,2@");
// d0 - default
// d1 - always HONDA
// d2 - always GVN
logging = false; logging = false;
command_i = 0; command_i = 0;
startCommand = false; startCommand = false;
@ -79,20 +98,27 @@ void AVCLanBT::checkCommand( char command )
command_buff[command_i] = '\0'; command_buff[command_i] = '\0';
startCommand = false; startCommand = false;
if ( 0 == strcmp( command_buff, "log+" ) ) { if ( 0 == strcmp( command_buff, "l+" ) ) {
logging = true; logging = true;
mySerial.println(">>Logging ON<<"); mySerial.println("#ON");
// Serial.println(">>Logging ON<<"); } else if ( 0 == strcmp( command_buff, "l-" ) ) {
} else if ( 0 == strcmp( command_buff, "log-" ) ) { mySerial.println("#OFF");
mySerial.println(">>Logging OFF<<");
// Serial.println(">>Logging OFF<<");
logging = false; logging = false;
} else if ( 0 == strcmp( command_buff, "save" ) ) { } else if ( 0 == strcmp( command_buff, "s" ) ) {
EEPROM.write( E_LOGG, (int)logging ); EEPROM.write( E_LOGG, (int)logging );
EEPROM.write( E_DISPLAY, dispalyStatus );
mySerial.println("#Store");
} else if ( 0 == strcmp( command_buff, "d0" ) ) {
dispalyStatus = 0;
mySerial.println("#D0");
} else if ( 0 == strcmp( command_buff, "d1" ) ) {
dispalyStatus = 1;
mySerial.println("#D1");
} else if ( 0 == strcmp( command_buff, "d2" ) ) {
dispalyStatus = 2;
mySerial.println("#D2");
} }
println(command_buff); println(command_buff);
// Serial.println(command_buff);
} }
} }
@ -153,29 +179,38 @@ void AVCLanBT::printAction( AvcActionID ActionID )
{ {
switch ( ActionID ) switch ( ActionID )
{ {
case ACT_CAM_ON: mySerial.println(">>A:CAM ON<<"); break; case ACT_CAM_ON: mySerial.println("*1"); break;
case ACT_CAM_OFF: mySerial.println(">>A:CAM OFF<<"); break; case ACT_CAM_OFF: mySerial.println("*2"); break;
case ACT_DISP_OFF: mySerial.println(">>A:DISP OFF<<"); break; case ACT_DISP_OFF: mySerial.println("*3"); break;
case ACT_BUTTON_DOWN: mySerial.println(">>A:BUTTON DOWN<<"); break; case ACT_BUTTON_DOWN: mySerial.println("*4"); break;
case ACT_BUTTON_UP: mySerial.println(">>A:BUTTON UP<<"); break; case ACT_BUTTON_UP: mySerial.println("*5"); break;
case ACT_B_DISPOFF: mySerial.println(">>A:B_DISP_OFF<<"); break; case ACT_B_DISPOFF: mySerial.println("*6"); break;
case ACT_B_DISPFULL_DOWN: mySerial.println(">>A:B_DISP_FULL_DOWN<<"); break; case ACT_B_DISPFULL_DOWN: mySerial.println("*7"); break;
case ACT_B_DISPFULL_UP: mySerial.println(">>A:B_DISP_FULL_UP<<"); break; case ACT_B_DISPFULL_UP: mySerial.println("*8"); break;
case ACT_B_DISPHULF: mySerial.println(">>A:B_DISP_HILF<<"); break; case ACT_B_DISPHULF: mySerial.println("*9"); break;
case ACT_TEL: mySerial.println(">>A:TEL<<"); break; case ACT_TEL: mySerial.println("*10"); break;
case ACT_TEL_CANCEL: mySerial.println(">>A:TEL CANCEL<<"); break; case ACT_TEL_CANCEL: mySerial.println("*11"); break;
case ACT_PREP_CAMOFF: mySerial.println(">>A:PREP_CAMOFF<<"); break; case ACT_PREP_CAMOFF: mySerial.println("*12"); break;
default: mySerial.println(">>A:UNDEFINED<<"); default: mySerial.println("*99");
} }
} }
//--------------------------------------------------------------------------------
int AVCLanBT::getDisplayStatus()
//--------------------------------------------------------------------------------
{
return dispalyStatus;
}
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
void AVCLanBT::EERPOM_read_config() void AVCLanBT::EERPOM_read_config()
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
{ {
if (EEPROM.read(E_LOGG) == 1 ) logging = true; if ( EEPROM.read(E_LOGG) == 1 ) logging = true;
dispalyStatus = EEPROM.read(E_DISPLAY);
logging ? mySerial.println(">>Logging ON<<") : mySerial.println(">>Logging OFF<<"); logging ? mySerial.println(">>Logging ON<<") : mySerial.println(">>Logging OFF<<");
mySerial.print("DisplStatus:"); mySerial.println(dispalyStatus);
} }
AVCLanBT avclanBT; AVCLanBT avclanBT;

View File

@ -31,9 +31,12 @@ class AVCLanBT
void checkCommand(char command ); void checkCommand(char command );
void printAction( AvcActionID ActionID ); void printAction( AvcActionID ActionID );
int getDisplayStatus();
private: private:
void EERPOM_read_config(); void EERPOM_read_config();
bool logging; bool logging;
int dispalyStatus;
}; };
extern AVCLanBT avclanBT; extern AVCLanBT avclanBT;

View File

@ -12,9 +12,7 @@
#define HONDA_DIS_ON sbi(COMMUT_PORT, COMMUT_OUT); #define HONDA_DIS_ON sbi(COMMUT_PORT, COMMUT_OUT);
#define HONDA_DIS_OFF cbi(COMMUT_PORT, COMMUT_OUT); #define HONDA_DIS_OFF cbi(COMMUT_PORT, COMMUT_OUT);
char BUFFF[15]; char BUFFF[15];
int len = 0; //stores the length of the commands
//------ Error time updating ----------------------------------------------------- //------ Error time updating -----------------------------------------------------
// unsigned long waitErrorTime; // unsigned long waitErrorTime;
@ -25,6 +23,24 @@ int error_count;
#define ERROR_TIME 4000 #define ERROR_TIME 4000
// ERRORs-------------------------------------------------------------
// #1 - First 20 sec start, should be GVN show
// #2 - Set setHondaDis value true
// #3 - HONDA DISP ON
// #4 - HONDA DISP OFF
// #5 - after 5 sec honda logo show GVN
// #6 - reset Freeze time
// #7 - set rear cam in first 10 sek
// #8 - processAction : show rear cam in first 20 sek
// #9 - before was action for preparing cam off and now cam DISPOFF action
// #10 - set wait time
// #11 - set wait time 0
// #12 - default action updating
// #13 - first 20 sek we should react only on rear cam on/off
// #14 - so many error comes
// #15 - after wait try to show honda display
// #16 - Set setHondaDis value false
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
void setup() void setup()
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
@ -41,9 +57,9 @@ void setup()
// waitErrorTime = 0; // waitErrorTime = 0;
avclanBT.begin(); avclanBT.begin();
avclanBT.print("Start HONDA avclan.#", true ); sprintf( BUFFF, "Start Ver:%s", IEBUS_VERSION );
sprintf( BUFFF, "%s", IEBUS_VERSION );
avclanBT.println( BUFFF, true ); avclanBT.println( BUFFF, true );
avclanHonda.setHondaDis( true );
} }
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
@ -52,21 +68,33 @@ void loop()
{ {
if ( avclanBT.available() ) if ( avclanBT.available() )
{ {
len = avclanBT.available(); int len = avclanBT.available();
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 && !avclanHonda.isShowRearCam() && (INIT_TIME < millis()) ) if( 1 == avclanBT.getDisplayStatus() ){
{ HONDA_DIS_ON;
avclanBT.print("[setHondaDis = false]"); LED_ON;
avclanHonda.setHondaDis( false ); //Show GVN screen } else if ( 2 == avclanBT.getDisplayStatus() ){
HONDA_DIS_OFF;
LED_OFF;
}
// First 5 sec should be Honda logo
if ( !avclanHonda.isShowHondaDisp() && avclanHonda.bFirstStart_20 && (INIT_TIME > millis()) ) {
avclanBT.println("#1");
avclanHonda.setHondaDis( true ); //Show GVN screen
} else if ( avclanHonda.isShowHondaDisp() && !avclanHonda.isShowRearCam()
&& (INIT_TIME < millis()) && (INIT2_TIME > millis()) && avclanHonda.bFirstStart_20 ) {
avclanBT.println("#5");
avclanHonda.setHondaDis( false );
} }
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;
avclanBT.print("[reset freezeTime]"); avclanBT.print("#6");
} }
} }
@ -74,7 +102,7 @@ void loop()
byte res = avclan.readMessage(); byte res = avclan.readMessage();
if ( !res ) if ( !res )
{ {
LED_OFF; // LED_OFF;
error_count = 0; error_count = 0;
avclan.printMessage(true); avclan.printMessage(true);
@ -84,28 +112,29 @@ void loop()
{ {
if ( (INIT2_TIME > millis()) && (avclan.actionID == ACT_CAM_ON) ) if ( (INIT2_TIME > millis()) && (avclan.actionID == ACT_CAM_ON) )
{ {
avclanBT.println("[Time < INIT2_TIME]"); avclanBT.println("#7");
avclanBT.printAction( (AvcActionID)avclan.actionID ); avclanBT.printAction( (AvcActionID)avclan.actionID );
avclanHonda.processAction( (AvcActionID)avclan.actionID ); avclanHonda.processAction( (AvcActionID)avclan.actionID );
} }
else if ( ( INIT2_TIME < millis() ) && (!avclanHonda.bFreeze) ) else if ( ( INIT2_TIME < millis() ) && (!avclanHonda.bFreeze) )
{ {
avclanBT.println("#12");
avclanBT.printAction((AvcActionID)avclan.actionID); avclanBT.printAction((AvcActionID)avclan.actionID);
avclanHonda.processAction( (AvcActionID)avclan.actionID ); avclanHonda.processAction( (AvcActionID)avclan.actionID );
} }
else // first 20 sek we should react only on rear cam on/off else // first 20 sek we should react only on rear cam on/off
{ {
avclanBT.println("[------SKIP------]"); avclanBT.println("#13");
avclanBT.printAction( (AvcActionID)avclan.actionID ); avclanBT.printAction( (AvcActionID)avclan.actionID );
avclanBT.println("[----------------]");
} }
} }
LED_ON; // LED_ON;
// back to screeen that was before Error: // back to screeen that was before Error:
if ( error_count >= MAX_ERROR_COUNT ) if ( error_count >= MAX_ERROR_COUNT )
{ {
avclanBT.println("#14");
error_count = 0; error_count = 0;
if ( !avclanHonda.isShowRearCam() ) if ( !avclanHonda.isShowRearCam() )
avclanHonda.setHondaDis( beforeErrorComute ); avclanHonda.setHondaDis( beforeErrorComute );
@ -125,7 +154,7 @@ void loop()
{ {
avclanHonda.checkWait(); avclanHonda.checkWait();
if ( !avclanHonda.isWait() ) { if ( !avclanHonda.isWait() ) {
avclanBT.println("[reset isWait]"); avclanBT.println("#15");
avclanHonda.tryToShowHondaDisp(); avclanHonda.tryToShowHondaDisp();
} }
} }
@ -134,12 +163,14 @@ void loop()
if ( avclanHonda.getCommute() ) if ( avclanHonda.getCommute() )
{ {
HONDA_DIS_ON; HONDA_DIS_ON;
avclanBT.println("[HONDA_DIS_ON]"); LED_ON;
// avclanBT.println("#3");
} }
else else
{ {
HONDA_DIS_OFF; HONDA_DIS_OFF;
avclanBT.println("[HONDA_DIS_OFF]"); LED_OFF;
// avclanBT.println("#4");
} }
} }
@ -151,11 +182,11 @@ void loop()
beforeErrorComute = avclanHonda.getCommute(); beforeErrorComute = avclanHonda.getCommute();
avclanHonda.setHondaDis(true); // Show Honda display avclanHonda.setHondaDis(true); // Show Honda display
LED_OFF; LED_ON;
HONDA_DIS_ON; HONDA_DIS_ON;
avclanBT.println("[HONDA_DIS_ON]"); avclanBT.println("#3");
sprintf(BUFFF, "Error: %d", errorID ); sprintf(BUFFF, "E:%d", errorID );
avclanBT.println( BUFFF, true ); avclanBT.println( BUFFF, true );
} }
} }

View File

@ -1,4 +1,4 @@
#define IEBUS_VERSION "0.8" #define IEBUS_VERSION "0.82"
// type of AVCLan hardwire driver // type of AVCLan hardwire driver
#define AVCLAN_PCA82C250 #define AVCLAN_PCA82C250