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:
parent
e806f0d3e4
commit
0a364bcdf2
@ -99,7 +99,6 @@ byte AVCLanDrv::_readMessage ()
|
||||
|
||||
if (t < AVC_START_BIT_HOLD_ON_MIN_LENGTH) {
|
||||
//if (t < 0x16){
|
||||
avclanBT.print("-->t=", true); avclanBT.printDec(t); avclanBT.println();
|
||||
SREG = oldSREG;
|
||||
return 2;
|
||||
}
|
||||
@ -531,7 +530,6 @@ void AVCLanDrv::printMessage(bool incoming)
|
||||
avclanBT.printHex8(message[i]);
|
||||
}
|
||||
avclanBT.println();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -95,6 +95,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
bShowHondaDisp = true;
|
||||
bFirstStart_20 = false;
|
||||
setWaitTime(0L);
|
||||
avclanBT.println("#8");
|
||||
return;
|
||||
}
|
||||
if ( INIT2_TIME < millis() ) bFirstStart_20 = false;
|
||||
@ -102,7 +103,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
|
||||
if ( bPrepareCamOff && (ACT_B_DISPOFF == ActionID) ) {
|
||||
ActionID = ACT_CAM_OFF;
|
||||
avclanBT.println("[CAMOFF+DISPOFF]");
|
||||
avclanBT.println("#9");
|
||||
} else bPrepareCamOff = false;
|
||||
|
||||
switch ( ActionID ) {
|
||||
@ -113,6 +114,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
if ( ULONG_MAX > (millis() + BUTT_WAIT) )
|
||||
setWaitTime( (unsigned long)((millis() + BUTT_WAIT)) );
|
||||
else setWaitTime( BUTT_WAIT );
|
||||
avclanBT.println("#10");
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -121,6 +123,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
setHondaDisLast( isShowHondaDisp() );
|
||||
bShowHondaDisp = true;
|
||||
setWaitTime(0L);
|
||||
avclanBT.println("#11");
|
||||
break;
|
||||
case ACT_B_DISPOFF:
|
||||
case ACT_B_DISPFULL_UP:
|
||||
@ -130,6 +133,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
bShowHondaDisp = false;
|
||||
setHondaDisLast( false );
|
||||
setWaitTime(0L);
|
||||
avclanBT.println("#11");
|
||||
bFreeze = true;
|
||||
freezeTime = (millis() + FREEZE_TIME);
|
||||
}
|
||||
@ -138,6 +142,7 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
bShowRearCam = false;
|
||||
bShowHondaDisp = bHondaDisLast;
|
||||
setWaitTime(0L);
|
||||
avclanBT.println("#11");
|
||||
break;
|
||||
case ACT_PREP_CAMOFF:
|
||||
bPrepareCamOff = true;
|
||||
@ -176,6 +181,8 @@ void AVCLanHonda::setHondaDis( bool val )
|
||||
bShowHondaDisp = val;
|
||||
setHondaDisLast( val );
|
||||
setWaitTime(0L);
|
||||
if( val ) avclanBT.println("#2");
|
||||
else avclanBT.println("#16");
|
||||
}
|
||||
|
||||
|
||||
|
@ -3,9 +3,23 @@
|
||||
#include <SoftwareSerial.h>
|
||||
#include <avr/pgmspace.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_DISPLAY 0
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
SoftwareSerial mySerial(4, 3); // RX | TX
|
||||
@ -16,11 +30,16 @@ bool startCommand;
|
||||
void AVCLanBT::begin()
|
||||
//--------------------------------------------------------------------------------
|
||||
{
|
||||
dispalyStatus = 0;
|
||||
mySerial.begin(9600);
|
||||
mySerial.println("BlueTooth is ready");
|
||||
mySerial.println("@log+@ - start logging");
|
||||
mySerial.println("@log-@ - end logging");
|
||||
mySerial.println("@save@ - save logging in EEPROM");
|
||||
mySerial.println("BlueTooth:");
|
||||
mySerial.println("@l+@");
|
||||
mySerial.println("@l-@");
|
||||
mySerial.println("@s@");
|
||||
mySerial.println("@d0,1,2@");
|
||||
// d0 - default
|
||||
// d1 - always HONDA
|
||||
// d2 - always GVN
|
||||
logging = false;
|
||||
command_i = 0;
|
||||
startCommand = false;
|
||||
@ -79,20 +98,27 @@ void AVCLanBT::checkCommand( char command )
|
||||
command_buff[command_i] = '\0';
|
||||
startCommand = false;
|
||||
|
||||
if ( 0 == strcmp( command_buff, "log+" ) ) {
|
||||
if ( 0 == strcmp( command_buff, "l+" ) ) {
|
||||
logging = true;
|
||||
mySerial.println(">>Logging ON<<");
|
||||
// Serial.println(">>Logging ON<<");
|
||||
} else if ( 0 == strcmp( command_buff, "log-" ) ) {
|
||||
mySerial.println(">>Logging OFF<<");
|
||||
// Serial.println(">>Logging OFF<<");
|
||||
mySerial.println("#ON");
|
||||
} else if ( 0 == strcmp( command_buff, "l-" ) ) {
|
||||
mySerial.println("#OFF");
|
||||
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_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);
|
||||
// Serial.println(command_buff);
|
||||
}
|
||||
}
|
||||
|
||||
@ -153,29 +179,38 @@ 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;
|
||||
case ACT_PREP_CAMOFF: mySerial.println(">>A:PREP_CAMOFF<<"); break;
|
||||
default: mySerial.println(">>A:UNDEFINED<<");
|
||||
case ACT_CAM_ON: mySerial.println("*1"); break;
|
||||
case ACT_CAM_OFF: mySerial.println("*2"); break;
|
||||
case ACT_DISP_OFF: mySerial.println("*3"); break;
|
||||
case ACT_BUTTON_DOWN: mySerial.println("*4"); break;
|
||||
case ACT_BUTTON_UP: mySerial.println("*5"); break;
|
||||
case ACT_B_DISPOFF: mySerial.println("*6"); break;
|
||||
case ACT_B_DISPFULL_DOWN: mySerial.println("*7"); break;
|
||||
case ACT_B_DISPFULL_UP: mySerial.println("*8"); break;
|
||||
case ACT_B_DISPHULF: mySerial.println("*9"); break;
|
||||
case ACT_TEL: mySerial.println("*10"); break;
|
||||
case ACT_TEL_CANCEL: mySerial.println("*11"); break;
|
||||
case ACT_PREP_CAMOFF: mySerial.println("*12"); break;
|
||||
default: mySerial.println("*99");
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
int AVCLanBT::getDisplayStatus()
|
||||
//--------------------------------------------------------------------------------
|
||||
{
|
||||
return dispalyStatus;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
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);
|
||||
}
|
||||
|
||||
AVCLanBT avclanBT;
|
||||
|
@ -31,9 +31,12 @@ class AVCLanBT
|
||||
void checkCommand(char command );
|
||||
void printAction( AvcActionID ActionID );
|
||||
|
||||
int getDisplayStatus();
|
||||
|
||||
private:
|
||||
void EERPOM_read_config();
|
||||
bool logging;
|
||||
int dispalyStatus;
|
||||
};
|
||||
|
||||
extern AVCLanBT avclanBT;
|
||||
|
@ -12,9 +12,7 @@
|
||||
#define HONDA_DIS_ON sbi(COMMUT_PORT, COMMUT_OUT);
|
||||
#define HONDA_DIS_OFF cbi(COMMUT_PORT, COMMUT_OUT);
|
||||
|
||||
|
||||
char BUFFF[15];
|
||||
int len = 0; //stores the length of the commands
|
||||
|
||||
//------ Error time updating -----------------------------------------------------
|
||||
// unsigned long waitErrorTime;
|
||||
@ -25,6 +23,24 @@ int error_count;
|
||||
|
||||
#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()
|
||||
//--------------------------------------------------------------------------------
|
||||
@ -41,9 +57,9 @@ void setup()
|
||||
// waitErrorTime = 0;
|
||||
|
||||
avclanBT.begin();
|
||||
avclanBT.print("Start HONDA avclan.#", true );
|
||||
sprintf( BUFFF, "%s", IEBUS_VERSION );
|
||||
sprintf( BUFFF, "Start Ver:%s", IEBUS_VERSION );
|
||||
avclanBT.println( BUFFF, true );
|
||||
avclanHonda.setHondaDis( true );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
@ -52,21 +68,33 @@ void loop()
|
||||
{
|
||||
if ( avclanBT.available() )
|
||||
{
|
||||
len = avclanBT.available();
|
||||
int len = avclanBT.available();
|
||||
for (int i = 0; i < len; i++) avclanBT.checkCommand(avclanBT.read());
|
||||
}
|
||||
|
||||
if ( avclanHonda.bFirstStart_20 && !avclanHonda.isShowRearCam() && (INIT_TIME < millis()) )
|
||||
{
|
||||
avclanBT.print("[setHondaDis = false]");
|
||||
avclanHonda.setHondaDis( false ); //Show GVN screen
|
||||
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
|
||||
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.freezeTime < millis() ) {
|
||||
avclanHonda.bFreeze = false;
|
||||
avclanHonda.freezeTime = 0L;
|
||||
avclanBT.print("[reset freezeTime]");
|
||||
avclanBT.print("#6");
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,7 +102,7 @@ void loop()
|
||||
byte res = avclan.readMessage();
|
||||
if ( !res )
|
||||
{
|
||||
LED_OFF;
|
||||
// LED_OFF;
|
||||
error_count = 0;
|
||||
|
||||
avclan.printMessage(true);
|
||||
@ -84,28 +112,29 @@ void loop()
|
||||
{
|
||||
if ( (INIT2_TIME > millis()) && (avclan.actionID == ACT_CAM_ON) )
|
||||
{
|
||||
avclanBT.println("[Time < INIT2_TIME]");
|
||||
avclanBT.println("#7");
|
||||
avclanBT.printAction( (AvcActionID)avclan.actionID );
|
||||
avclanHonda.processAction( (AvcActionID)avclan.actionID );
|
||||
}
|
||||
else if ( ( INIT2_TIME < millis() ) && (!avclanHonda.bFreeze) )
|
||||
{
|
||||
avclanBT.println("#12");
|
||||
avclanBT.printAction((AvcActionID)avclan.actionID);
|
||||
avclanHonda.processAction( (AvcActionID)avclan.actionID );
|
||||
}
|
||||
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.println("[----------------]");
|
||||
}
|
||||
}
|
||||
|
||||
LED_ON;
|
||||
// LED_ON;
|
||||
|
||||
// back to screeen that was before Error:
|
||||
if ( error_count >= MAX_ERROR_COUNT )
|
||||
{
|
||||
avclanBT.println("#14");
|
||||
error_count = 0;
|
||||
if ( !avclanHonda.isShowRearCam() )
|
||||
avclanHonda.setHondaDis( beforeErrorComute );
|
||||
@ -125,7 +154,7 @@ void loop()
|
||||
{
|
||||
avclanHonda.checkWait();
|
||||
if ( !avclanHonda.isWait() ) {
|
||||
avclanBT.println("[reset isWait]");
|
||||
avclanBT.println("#15");
|
||||
avclanHonda.tryToShowHondaDisp();
|
||||
}
|
||||
}
|
||||
@ -134,12 +163,14 @@ void loop()
|
||||
if ( avclanHonda.getCommute() )
|
||||
{
|
||||
HONDA_DIS_ON;
|
||||
avclanBT.println("[HONDA_DIS_ON]");
|
||||
LED_ON;
|
||||
// avclanBT.println("#3");
|
||||
}
|
||||
else
|
||||
{
|
||||
HONDA_DIS_OFF;
|
||||
avclanBT.println("[HONDA_DIS_OFF]");
|
||||
LED_OFF;
|
||||
// avclanBT.println("#4");
|
||||
}
|
||||
}
|
||||
|
||||
@ -151,11 +182,11 @@ void loop()
|
||||
beforeErrorComute = avclanHonda.getCommute();
|
||||
avclanHonda.setHondaDis(true); // Show Honda display
|
||||
|
||||
LED_OFF;
|
||||
LED_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 );
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
#define IEBUS_VERSION "0.8"
|
||||
#define IEBUS_VERSION "0.82"
|
||||
|
||||
// type of AVCLan hardwire driver
|
||||
#define AVCLAN_PCA82C250
|
||||
|
Loading…
x
Reference in New Issue
Block a user