diff --git a/AVCLan_mini/AVCLan_BT.cpp b/AVCLan_mini/AVCLan_BT.cpp index 0ee72d3..fd344a5 100644 --- a/AVCLan_mini/AVCLan_BT.cpp +++ b/AVCLan_mini/AVCLan_BT.cpp @@ -4,13 +4,19 @@ #include //-------------------------------------------------------------------------------- SoftwareSerial mySerial(4, 3); // RX | TX - +char command_buff[15]; +int command_i; //-------------------------------------------------------------------------------- void AVCLanBT::begin() //-------------------------------------------------------------------------------- { mySerial.begin(9600); mySerial.println("BlueTooth is ready"); + mySerial.println("log_on@ - start logging"); + mySerial.println("log_off@ - end logging"); + mySerial.println("save@ - save logging in EEPROM"); + logging = false; + command_i = 0; } //-------------------------------------------------------------------------------- @@ -18,7 +24,6 @@ void AVCLanBT::println( char* val ) //-------------------------------------------------------------------------------- { mySerial.println( val ); - mySerial.println( "\n\r" ); } //-------------------------------------------------------------------------------- @@ -28,6 +33,47 @@ void AVCLanBT::print( const char* val ) mySerial.print( val ); } +//-------------------------------------------------------------------------------- +char AVCLanBT::read() +//-------------------------------------------------------------------------------- +{ + return mySerial.read(); +} + +//-------------------------------------------------------------------------------- +bool AVCLanBT::isLogging() +//-------------------------------------------------------------------------------- +{ + return logging; +} + +//-------------------------------------------------------------------------------- +int AVCLanBT::available() +//-------------------------------------------------------------------------------- +{ + return mySerial.available(); +} + +//-------------------------------------------------------------------------------- +void AVCLanBT::checkCommand( char command ) +//-------------------------------------------------------------------------------- +{ + if ( command == '@' ) //end of command; + { + command_buff[command_i + 1] = '\0'; + command_i = 0; + + if ( 0 == strcmp( command_buff, "log_on" ) ) logging = true; + else if ( 0 == strcmp( command_buff, "log_off" ) ) logging = false; + println(command_buff); + Serial.print("logging - "); Serial.println(logging); + } + else + { + command_buff[command_i++] = command; + } +} + AVCLanBT avclanBT; diff --git a/AVCLan_mini/AVCLan_BT.h b/AVCLan_mini/AVCLan_BT.h index f080c47..6ebbf01 100644 --- a/AVCLan_mini/AVCLan_BT.h +++ b/AVCLan_mini/AVCLan_BT.h @@ -18,7 +18,14 @@ class AVCLanBT void println( char*); void print(const char*); + char read(); + + bool isLogging(); + int available(); + void checkCommand(char command ); + private: + bool logging; }; extern AVCLanBT avclanBT; diff --git a/AVCLan_mini/AVCLan_mini.ino b/AVCLan_mini/AVCLan_mini.ino index 9527619..d2d13c1 100644 --- a/AVCLan_mini/AVCLan_mini.ino +++ b/AVCLan_mini/AVCLan_mini.ino @@ -1,11 +1,11 @@ +//-------------------------------------------------------------------------------- #include "AVCLanDrv.h" #include "AVCLanHonda.h" #include "AVCLan_BT.h" #include "config.h" //-------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- #define LED_ON sbi(LED_PORT, LED_OUT); #define LED_OFF cbi(LED_PORT, LED_OUT); @@ -16,10 +16,15 @@ static int MAX_ERROR_COUNT = 30; byte errorID; int error_count; char BUFFF[15]; + +char buf[12]; //buffer to store AT commands +int len = 0; //stores the length of the commands //-------------------------------------------------------------------------------- void setup() //-------------------------------------------------------------------------------- { + Serial.begin(9600); + avclan.begin(); avclanHonda.begin(); errorID = 0; @@ -34,6 +39,17 @@ void setup() void loop() //-------------------------------------------------------------------------------- { + if (avclanBT.available()) + { + len = avclanBT.available(); + int i; + Serial.print("len ="); Serial.println(len); + for (i = 0; i < len; i++) + { + avclanBT.checkCommand(avclanBT.read()); + } + } + if ( avclanHonda.bFirstStart_20 && (11500 > millis()) ) { HONDA_DIS_ON; // initalize return; diff --git a/AVCLan_mini/config.h b/AVCLan_mini/config.h index 0993282..c012a9c 100644 --- a/AVCLan_mini/config.h +++ b/AVCLan_mini/config.h @@ -39,11 +39,6 @@ #define LED_OUT 5 -// AZFM board activate -//#define AZFM_INIT -//#define AZFM_ON -//#define AZFM_OFF - #endif