mirror of
https://github.com/Oleg-Stepanenko-owo/IEBUS
synced 2025-06-24 16:26:10 +00:00
Bug fix with package analisys
This commit is contained in:
parent
0a364bcdf2
commit
ae701c2f4a
@ -199,7 +199,7 @@ byte AVCLanDrv::readMessage ()
|
||||
{
|
||||
while (!avclan.isAvcBusFree());
|
||||
}
|
||||
// else avclan.printMessage(true);
|
||||
else avclan.printMessage(true);
|
||||
return res;
|
||||
}
|
||||
|
||||
@ -538,8 +538,8 @@ void AVCLanDrv::printMessage(bool incoming)
|
||||
byte AVCLanDrv::getActionID(const AvcInCmdTable messageTable[], byte mtSize)
|
||||
//--------------------------------------------------------------------------------
|
||||
{
|
||||
if ( ((slaveAddress != deviceAddress) && (slaveAddress != 0x0FFF))
|
||||
|| (( dataSize < 8) || (dataSize > 10 )) ) {
|
||||
if ( ((dataSize < 8) && ( dataSize != 6 )) || (dataSize > 10 ) ) {
|
||||
avclanBT.println("#18");
|
||||
return ACT_NONE;
|
||||
}
|
||||
|
||||
@ -548,13 +548,19 @@ byte AVCLanDrv::getActionID(const AvcInCmdTable messageTable[], byte mtSize)
|
||||
if (dataSize == 6) idx = 0;
|
||||
else if (dataSize == 8) idx = 1;
|
||||
else if (dataSize == 9) idx = 7;
|
||||
else idx = 10;
|
||||
else idx = 10;
|
||||
|
||||
for (; idx < mtSize; ++idx) {
|
||||
if (dataSize != pgm_read_byte_near(&messageTable[idx].dataSize)) return ACT_NONE; // Because first unsized value from other range
|
||||
if (dataSize != pgm_read_byte_near(&messageTable[idx].dataSize)) {
|
||||
avclanBT.println("#19");
|
||||
return ACT_NONE; // Because first unsized value from other range
|
||||
}
|
||||
|
||||
if ( message[dataSize - 1] == pgm_read_byte_near(&messageTable[idx].command) )
|
||||
{
|
||||
avclanBT.println("#20");
|
||||
return pgm_read_byte_near( &messageTable[idx].actionID );
|
||||
}
|
||||
}
|
||||
return ACT_NONE;
|
||||
}
|
||||
|
@ -25,8 +25,8 @@
|
||||
|
||||
// { action_name, packed_size, end_off_packege_word(check_sum) }
|
||||
const AvcInCmdTable mtSearchHead[] PROGMEM = {
|
||||
{ ACT_PREP_CAMOFF, 0x06, 0x58}, //06170D31020158
|
||||
{ ACT_BUTTON_DOWN, 0x08, 0xBC}, // 08590D3102012000BC
|
||||
{ ACT_PREP_CAMOFF, 0x06, 0x58}, // 06170D31020158
|
||||
{ ACT_BUTTON_DOWN, 0x08, 0xBC}, // 08590D3102012000BC
|
||||
{ ACT_BUTTON_UP, 0x08, 0xBE}, // 08590D3102012101BE
|
||||
{ ACT_B_DISPOFF, 0x08, 0x2F}, // 08590D31020122712F
|
||||
{ ACT_B_DISPFULL_DOWN, 0x08, 0x43}, // 08590D310201228543
|
||||
@ -46,9 +46,9 @@ const byte mtSearchHeadSize = sizeof(mtSearchHead) / sizeof(AvcInCmdTable);
|
||||
void AVCLanHonda::begin()
|
||||
//--------------------------------------------------------------------------------
|
||||
{
|
||||
avclan.deviceAddress = 0x0131;
|
||||
// avclan.deviceAddress = 0x0131;
|
||||
|
||||
bPrepareCamOff = false;
|
||||
// bPrepareCamOff = false;
|
||||
bShowHondaDisp = true;
|
||||
setHondaDisLast(true);
|
||||
bShowRearCam = false;
|
||||
@ -81,6 +81,7 @@ void AVCLanHonda::getActionID()
|
||||
//--------------------------------------------------------------------------------
|
||||
{
|
||||
avclan.actionID = avclan.getActionID( mtSearchHead, mtSearchHeadSize );
|
||||
avclanBT.println("#17");
|
||||
};
|
||||
|
||||
// process action
|
||||
@ -101,10 +102,10 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
if ( INIT2_TIME < millis() ) bFirstStart_20 = false;
|
||||
}
|
||||
|
||||
if ( bPrepareCamOff && (ACT_B_DISPOFF == ActionID) ) {
|
||||
ActionID = ACT_CAM_OFF;
|
||||
avclanBT.println("#9");
|
||||
} else bPrepareCamOff = false;
|
||||
// if ( bPrepareCamOff && (ACT_B_DISPOFF == ActionID) ) {
|
||||
// ActionID = ACT_CAM_OFF;
|
||||
// avclanBT.println("#9");
|
||||
// } else bPrepareCamOff = false;
|
||||
|
||||
switch ( ActionID ) {
|
||||
case ACT_BUTTON_UP:
|
||||
@ -138,15 +139,16 @@ void AVCLanHonda::processAction( AvcActionID ActionID )
|
||||
freezeTime = (millis() + FREEZE_TIME);
|
||||
}
|
||||
break;
|
||||
case ACT_PREP_CAMOFF:
|
||||
case ACT_CAM_OFF:
|
||||
bShowRearCam = false;
|
||||
bShowHondaDisp = bHondaDisLast;
|
||||
setWaitTime(0L);
|
||||
avclanBT.println("#11");
|
||||
break;
|
||||
case ACT_PREP_CAMOFF:
|
||||
bPrepareCamOff = true;
|
||||
break;
|
||||
// case ACT_PREP_CAMOFF:
|
||||
// bPrepareCamOff = true;
|
||||
// break;
|
||||
}
|
||||
};
|
||||
|
||||
@ -181,11 +183,8 @@ void AVCLanHonda::setHondaDis( bool val )
|
||||
bShowHondaDisp = val;
|
||||
setHondaDisLast( val );
|
||||
setWaitTime(0L);
|
||||
if( val ) avclanBT.println("#2");
|
||||
if ( val ) avclanBT.println("#2");
|
||||
else avclanBT.println("#16");
|
||||
}
|
||||
|
||||
|
||||
AVCLanHonda avclanHonda;
|
||||
|
||||
|
||||
|
@ -87,7 +87,7 @@ class AVCLanHonda
|
||||
|
||||
bool bWait;
|
||||
|
||||
bool bPrepareCamOff;
|
||||
// bool bPrepareCamOff;
|
||||
bool bShowRearCam;
|
||||
bool bShowHondaDisp;
|
||||
bool bTimeSwitch;
|
||||
|
@ -19,7 +19,7 @@
|
||||
// *99 ">>A:UNDEFINED<<");
|
||||
//--------------------------------------------------------------------------------
|
||||
#define E_LOGG 0
|
||||
#define E_DISPLAY 0
|
||||
#define E_DISPLAY 1
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
SoftwareSerial mySerial(4, 3); // RX | TX
|
||||
@ -88,6 +88,8 @@ int AVCLanBT::available()
|
||||
void AVCLanBT::checkCommand( char command )
|
||||
//--------------------------------------------------------------------------------
|
||||
{
|
||||
// Serial.print("command:"); Serial.println(command);
|
||||
|
||||
if ( (command == '@') && !startCommand ) {
|
||||
startCommand = true;
|
||||
command_i = 0;
|
||||
@ -107,7 +109,7 @@ void AVCLanBT::checkCommand( char command )
|
||||
} else if ( 0 == strcmp( command_buff, "s" ) ) {
|
||||
EEPROM.write( E_LOGG, (int)logging );
|
||||
EEPROM.write( E_DISPLAY, dispalyStatus );
|
||||
mySerial.println("#Store");
|
||||
mySerial.print("#S:"); mySerial.print(logging); mySerial.print(":"); mySerial.println(dispalyStatus);
|
||||
} else if ( 0 == strcmp( command_buff, "d0" ) ) {
|
||||
dispalyStatus = 0;
|
||||
mySerial.println("#D0");
|
||||
@ -118,7 +120,7 @@ void AVCLanBT::checkCommand( char command )
|
||||
dispalyStatus = 2;
|
||||
mySerial.println("#D2");
|
||||
}
|
||||
println(command_buff);
|
||||
// println(command_buff);
|
||||
}
|
||||
}
|
||||
|
||||
@ -209,8 +211,8 @@ 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);
|
||||
logging ? mySerial.println("Log+;") : mySerial.println("Log-;");
|
||||
mySerial.print("Disp:"); mySerial.println(dispalyStatus);
|
||||
}
|
||||
|
||||
AVCLanBT avclanBT;
|
||||
|
@ -40,6 +40,10 @@ int error_count;
|
||||
// #14 - so many error comes
|
||||
// #15 - after wait try to show honda display
|
||||
// #16 - Set setHondaDis value false
|
||||
// #17 - call getActionID function
|
||||
// #18 - ((dataSize < 8) && ( dataSize != 6 )) || (dataSize > 10 ) // for fast action pars
|
||||
// #19 - return NOT Action find
|
||||
// #20 - Action find OK
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
void setup()
|
||||
@ -49,6 +53,8 @@ void setup()
|
||||
LED_ON;
|
||||
|
||||
// Serial.begin(9600);
|
||||
// Serial.print("Init by 9600");
|
||||
|
||||
avclan.begin();
|
||||
avclanHonda.begin();
|
||||
errorID = 0;
|
||||
@ -66,18 +72,19 @@ void setup()
|
||||
void loop()
|
||||
//--------------------------------------------------------------------------------
|
||||
{
|
||||
// int len = 0; //avclanBT.available();
|
||||
if ( avclanBT.available() )
|
||||
{
|
||||
int len = avclanBT.available();
|
||||
for (int i = 0; i < len; i++) avclanBT.checkCommand(avclanBT.read());
|
||||
// Serial.print("available");
|
||||
avclanBT.checkCommand(avclanBT.read());
|
||||
}
|
||||
|
||||
if( 1 == avclanBT.getDisplayStatus() ){
|
||||
HONDA_DIS_ON;
|
||||
LED_ON;
|
||||
} else if ( 2 == avclanBT.getDisplayStatus() ){
|
||||
HONDA_DIS_OFF;
|
||||
LED_OFF;
|
||||
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
|
||||
@ -104,8 +111,6 @@ void loop()
|
||||
{
|
||||
// LED_OFF;
|
||||
error_count = 0;
|
||||
|
||||
avclan.printMessage(true);
|
||||
avclanHonda.getActionID();
|
||||
|
||||
if ( avclan.actionID != ACT_NONE )
|
||||
|
@ -1,4 +1,4 @@
|
||||
#define IEBUS_VERSION "0.82"
|
||||
#define IEBUS_VERSION "0.9"
|
||||
|
||||
// type of AVCLan hardwire driver
|
||||
#define AVCLAN_PCA82C250
|
||||
|
Loading…
x
Reference in New Issue
Block a user