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