Improv support (#2334)

* Working Improv device identification

* Improv functional

* Cast fix

* Minor fix for two back-to-back Improv packets

* Improv checksum update and logic simplification

* Improved improv failed connection behavior
This commit is contained in:
Christian Schwinne
2021-11-16 23:20:26 +01:00
committed by GitHub
parent 6df64d0d31
commit 38d8dfe5ab
5 changed files with 280 additions and 4 deletions

View File

@@ -16,7 +16,7 @@ enum class AdaState {
Data_Blue,
TPM2_Header_Type,
TPM2_Header_CountHi,
TPM2_Header_CountLo
TPM2_Header_CountLo,
};
void handleSerial()
@@ -41,7 +41,12 @@ void handleSerial()
else if (next == 0xC9) { //TPM2 start byte
state = AdaState::TPM2_Header_Type;
}
else if (next == '{') { //JSON API
else if (next == 'I') {
handleImprovPacket();
return;
} else if (next == 'v') {
Serial.print("WLED"); Serial.write(' '); Serial.println(VERSION);
} else if (next == '{') { //JSON API
bool verboseResponse = false;
{
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
@@ -61,6 +66,7 @@ void handleSerial()
serializeInfo(info);
serializeJson(doc, Serial);
Serial.println();
}
}
break;