From c4f9f102ce2d8669b93fdaf348393ff47cccb99f Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 15 Jul 2016 10:03:34 +0200 Subject: [PATCH] Add getCommand() api for OTA update type (#2259) --- libraries/ArduinoOTA/ArduinoOTA.cpp | 6 +++++- libraries/ArduinoOTA/ArduinoOTA.h | 1 + libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino | 9 ++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libraries/ArduinoOTA/ArduinoOTA.cpp b/libraries/ArduinoOTA/ArduinoOTA.cpp index ea45a6e85..621d7183f 100644 --- a/libraries/ArduinoOTA/ArduinoOTA.cpp +++ b/libraries/ArduinoOTA/ArduinoOTA.cpp @@ -180,7 +180,7 @@ void ArduinoOTAClass::_onRx(){ nonce_md5.add(String(micros())); nonce_md5.calculate(); _nonce = nonce_md5.toString(); - + char auth_req[38]; sprintf(auth_req, "AUTH %s", _nonce.c_str()); _udp_ota->append((const char *)auth_req, strlen(auth_req)); @@ -326,4 +326,8 @@ void ArduinoOTAClass::handle() { } } +int ArduinoOTAClass::getCommand() { + return _cmd; +} + ArduinoOTAClass ArduinoOTA; diff --git a/libraries/ArduinoOTA/ArduinoOTA.h b/libraries/ArduinoOTA/ArduinoOTA.h index 2cae458cc..94f86ca44 100644 --- a/libraries/ArduinoOTA/ArduinoOTA.h +++ b/libraries/ArduinoOTA/ArduinoOTA.h @@ -40,6 +40,7 @@ class ArduinoOTAClass void onProgress(THandlerFunction_Progress fn); void begin(); void handle(); + int getCommand(); // get update command type after OTA started- either U_FLASH or U_SPIFFS private: int _port; diff --git a/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino b/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino index 50e926efe..db9a96c93 100644 --- a/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino +++ b/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino @@ -27,7 +27,14 @@ void setup() { // ArduinoOTA.setPassword((const char *)"123"); ArduinoOTA.onStart([]() { - Serial.println("Start"); + String type; + if (ArduinoOTA.getCommand() == U_FLASH) + type = "sketch"; + else // U_SPIFFS + type = "filesystem"; + + // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end() + Serial.println("Start updating " + type); }); ArduinoOTA.onEnd([]() { Serial.println("\nEnd");