126 lines
2.7 KiB
C++
126 lines
2.7 KiB
C++
#include "AppEsp32BtRec.h"
|
|
#if defined(ESP32)
|
|
AppBtRec::AppBtRec(BluetoothSerial& _SerialBT,bool _monitorPRINT) {
|
|
monitorPRINT=_monitorPRINT;
|
|
IsStarts = false;
|
|
IsVal = false;
|
|
Mark = false;
|
|
ValNum = 0;
|
|
REceiveChar = "";
|
|
SerialBT = &_SerialBT;
|
|
}
|
|
#elif defined(ESP8266)
|
|
AppBtRec::AppBtRec(Stream& _SerialBT,bool _monitorPRINT) {
|
|
monitorPRINT=_monitorPRINT;
|
|
IsStarts = false;
|
|
IsVal = false;
|
|
Mark = false;
|
|
ValNum = 0;
|
|
REceiveChar = "";
|
|
SerialBT = &_SerialBT;
|
|
}
|
|
#endif
|
|
void AppBtRec::PortReceive() {
|
|
if (SerialBT->available() > 0) {
|
|
byte ReadByte = SerialBT->read();
|
|
// if(monitorPRINT)
|
|
// Serial.write(ReadByte);
|
|
switch (ReadByte) {
|
|
case ',':
|
|
IsStarts = true;
|
|
REceiveChar = "";
|
|
break;
|
|
case '.':
|
|
if (IsVal) {
|
|
switch (ValNum) {
|
|
case 1:
|
|
val1 = REceiveChar.toInt();
|
|
if(monitorPRINT)
|
|
Serial.println(String("val1:")+val1);
|
|
break;
|
|
case 2:
|
|
val2 = REceiveChar.toInt();
|
|
if(monitorPRINT)
|
|
Serial.println(String("val2:")+val2);
|
|
break;
|
|
case 3:
|
|
val3 = REceiveChar.toInt();
|
|
if(monitorPRINT)
|
|
Serial.println(String("val3:")+val3);
|
|
break;
|
|
case 4:
|
|
val4 = REceiveChar.toInt();
|
|
if(monitorPRINT)
|
|
Serial.println(String("val4:")+val4);
|
|
break;
|
|
case 5:
|
|
val5 = REceiveChar.toInt();
|
|
if(monitorPRINT)
|
|
Serial.println(String("val5:")+val5);
|
|
break;
|
|
}
|
|
|
|
} else {
|
|
Last_Data = REceiveChar;
|
|
if(monitorPRINT)
|
|
Serial.println(String("REceiveChar:")+REceiveChar);
|
|
}
|
|
ValNum = 0;
|
|
IsStarts = false;
|
|
IsVal = false;
|
|
Mark = false;
|
|
break;
|
|
case '!':
|
|
IsVal = true;
|
|
Mark = true;
|
|
break;
|
|
default:
|
|
if (IsStarts) {
|
|
if (IsVal) {
|
|
if (Mark) {
|
|
ValNum = ReadByte - '0';
|
|
Mark = false;
|
|
}
|
|
else {
|
|
REceiveChar += char(ReadByte);
|
|
}
|
|
} else {
|
|
REceiveChar += char(ReadByte);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
bool AppBtRec::IsObject(String obj ) {
|
|
if (obj == REceiveChar) {
|
|
REceiveChar = "";
|
|
return true;
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
|
|
}
|
|
int AppBtRec::GetVal(uint8_t num) {
|
|
switch (num) {
|
|
case 1 :
|
|
return val1;
|
|
break;
|
|
case 2 :
|
|
return val2;
|
|
break;
|
|
case 3 :
|
|
return val3;
|
|
break;
|
|
case 4 :
|
|
return val4;
|
|
break;
|
|
case 5 :
|
|
return val5;
|
|
break;
|
|
|
|
}
|
|
}
|
|
|