mirror of
https://github.com/Links2004/arduinoWebSockets.git
synced 2025-07-13 07:16:31 +02:00
make OTA work with ArduinoJson 6.x
This commit is contained in:
@ -56,8 +56,8 @@ bool ws_conn = false;
|
|||||||
void greetings_(){
|
void greetings_(){
|
||||||
StaticJsonDocument<200> doc;
|
StaticJsonDocument<200> doc;
|
||||||
doc["type"] = "greetings";
|
doc["type"] = "greetings";
|
||||||
doc["mac"] = WiFi.macAddress();
|
doc["mac"] = WiFi.macAddress().c_str();
|
||||||
doc["ip"] = WiFi.localIP().toString();
|
doc["ip"] = WiFi.localIP().toString().c_str();
|
||||||
doc["version"] = version;
|
doc["version"] = version;
|
||||||
doc["name"] = name;
|
doc["name"] = name;
|
||||||
doc["chip"] = chip;
|
doc["chip"] = chip;
|
||||||
@ -70,7 +70,7 @@ void greetings_(){
|
|||||||
void register_(){
|
void register_(){
|
||||||
StaticJsonDocument<200> doc;
|
StaticJsonDocument<200> doc;
|
||||||
doc["type"] = "register";
|
doc["type"] = "register";
|
||||||
doc["mac"] = WiFi.macAddress();
|
doc["mac"] = WiFi.macAddress().c_str();
|
||||||
|
|
||||||
char data[200];
|
char data[200];
|
||||||
serializeJson(doc, data);
|
serializeJson(doc, data);
|
||||||
@ -87,9 +87,8 @@ typedef struct {
|
|||||||
|
|
||||||
void OTA_RESPONSES(JsonDocument &msg){
|
void OTA_RESPONSES(JsonDocument &msg){
|
||||||
USE_SERIAL.print(F("[WSc] OTA mode: "));
|
USE_SERIAL.print(F("[WSc] OTA mode: "));
|
||||||
const char* go = "go";
|
String val = msg["value"];
|
||||||
const char* ok = "ok";
|
if(val == "go") {
|
||||||
if(strncmp( msg["value"], go, strlen(go)) == 0 ) {
|
|
||||||
USE_SERIAL.print(F("go\n"));
|
USE_SERIAL.print(F("go\n"));
|
||||||
SketchSize = int(msg["size"]);
|
SketchSize = int(msg["size"]);
|
||||||
maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000;
|
maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000;
|
||||||
@ -100,12 +99,12 @@ void OTA_RESPONSES(JsonDocument &msg){
|
|||||||
Update.printError(Serial);
|
Update.printError(Serial);
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
}
|
}
|
||||||
} else if (strncmp( msg["value"], ok, strlen(ok)) == 0) {
|
} else if (val == "ok") {
|
||||||
USE_SERIAL.print(F("OK\n"));
|
USE_SERIAL.print(F("OK\n"));
|
||||||
register_();
|
register_();
|
||||||
} else {
|
} else {
|
||||||
USE_SERIAL.print(F("unknown value : "));
|
USE_SERIAL.print(F("unknown value : "));
|
||||||
USE_SERIAL.print(msg["value"].as<char>());
|
USE_SERIAL.print(val);
|
||||||
USE_SERIAL.print(F("\n"));
|
USE_SERIAL.print(F("\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,9 +145,10 @@ void text(uint8_t * payload, size_t length){
|
|||||||
// Handle each TYPE of message
|
// Handle each TYPE of message
|
||||||
int b = 0;
|
int b = 0;
|
||||||
|
|
||||||
|
String t = doc_in["type"];
|
||||||
for( b=0 ; b<nrOfResponses ; b++ )
|
for( b=0 ; b<nrOfResponses ; b++ )
|
||||||
{
|
{
|
||||||
if( strncmp(doc_in["type"], responses[b].type, strlen(responses[b].type)) == 0 ) {
|
if(t == responses[b].type) {
|
||||||
responses[b].func(doc_in);
|
responses[b].func(doc_in);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user