mirror of
https://github.com/me-no-dev/ESPAsyncWebServer.git
synced 2025-09-28 07:11:01 +02:00
Fix include directives to make ArduinoJson optional and fix CI
This commit is contained in:
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@@ -106,6 +106,9 @@ jobs:
|
|||||||
- env: ci-arduino-3
|
- env: ci-arduino-3
|
||||||
board: esp32-h2-devkitm-1
|
board: esp32-h2-devkitm-1
|
||||||
|
|
||||||
|
- env: ci-arduino-3-no-json
|
||||||
|
board: esp32dev
|
||||||
|
|
||||||
- env: ci-arduino-310rc1
|
- env: ci-arduino-310rc1
|
||||||
board: esp32dev
|
board: esp32dev
|
||||||
- env: ci-arduino-310rc1
|
- env: ci-arduino-310rc1
|
||||||
|
@@ -19,9 +19,12 @@
|
|||||||
|
|
||||||
#include <ESPAsyncWebServer.h>
|
#include <ESPAsyncWebServer.h>
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
#include <ArduinoJson.h>
|
#include <ArduinoJson.h>
|
||||||
#include <AsyncJson.h>
|
#include <AsyncJson.h>
|
||||||
#include <AsyncMessagePack.h>
|
#include <AsyncMessagePack.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <LittleFS.h>
|
#include <LittleFS.h>
|
||||||
|
|
||||||
AsyncWebServer server(80);
|
AsyncWebServer server(80);
|
||||||
@@ -103,8 +106,10 @@ void notFound(AsyncWebServerRequest* request) {
|
|||||||
request->send(404, "text/plain", "Not found");
|
request->send(404, "text/plain", "Not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
AsyncCallbackJsonWebHandler* jsonHandler = new AsyncCallbackJsonWebHandler("/json2");
|
AsyncCallbackJsonWebHandler* jsonHandler = new AsyncCallbackJsonWebHandler("/json2");
|
||||||
AsyncCallbackMessagePackWebHandler* msgPackHandler = new AsyncCallbackMessagePackWebHandler("/msgpack2");
|
AsyncCallbackMessagePackWebHandler* msgPackHandler = new AsyncCallbackMessagePackWebHandler("/msgpack2");
|
||||||
|
#endif
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
|
||||||
@@ -293,6 +298,7 @@ void setup() {
|
|||||||
request->send(200, "text/plain", "Hello, POST: " + message);
|
request->send(200, "text/plain", "Hello, POST: " + message);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
// JSON
|
// JSON
|
||||||
|
|
||||||
// receives JSON and sends JSON
|
// receives JSON and sends JSON
|
||||||
@@ -338,6 +344,7 @@ void setup() {
|
|||||||
response->setLength();
|
response->setLength();
|
||||||
request->send(response);
|
request->send(response);
|
||||||
});
|
});
|
||||||
|
#endif
|
||||||
|
|
||||||
events.onConnect([](AsyncEventSourceClient* client) {
|
events.onConnect([](AsyncEventSourceClient* client) {
|
||||||
if (client->lastId()) {
|
if (client->lastId()) {
|
||||||
@@ -376,8 +383,11 @@ void setup() {
|
|||||||
|
|
||||||
server.addHandler(&events);
|
server.addHandler(&events);
|
||||||
server.addHandler(&ws);
|
server.addHandler(&ws);
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
server.addHandler(jsonHandler);
|
server.addHandler(jsonHandler);
|
||||||
server.addHandler(msgPackHandler);
|
server.addHandler(msgPackHandler);
|
||||||
|
#endif
|
||||||
|
|
||||||
server.onNotFound(notFound);
|
server.onNotFound(notFound);
|
||||||
|
|
||||||
|
@@ -36,6 +36,13 @@ platform = https://github.com/pioarduino/platform-espressif32/releases/download/
|
|||||||
; board = esp32-s3-devkitc-1
|
; board = esp32-s3-devkitc-1
|
||||||
; board = esp32-c6-devkitc-1
|
; board = esp32-c6-devkitc-1
|
||||||
|
|
||||||
|
[env:arduino-3-no-json]
|
||||||
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
||||||
|
; board = esp32-s3-devkitc-1
|
||||||
|
; board = esp32-c6-devkitc-1
|
||||||
|
lib_deps =
|
||||||
|
mathieucarbou/AsyncTCP @ 3.2.5
|
||||||
|
|
||||||
[env:arduino-310rc1]
|
[env:arduino-310rc1]
|
||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
||||||
; board = esp32-s3-devkitc-1
|
; board = esp32-s3-devkitc-1
|
||||||
@@ -74,6 +81,12 @@ board = ${sysenv.PIO_BOARD}
|
|||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
||||||
board = ${sysenv.PIO_BOARD}
|
board = ${sysenv.PIO_BOARD}
|
||||||
|
|
||||||
|
[env:ci-arduino-3-no-json]
|
||||||
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
||||||
|
board = ${sysenv.PIO_BOARD}
|
||||||
|
lib_deps =
|
||||||
|
mathieucarbou/AsyncTCP @ 3.2.5
|
||||||
|
|
||||||
[env:ci-arduino-310rc1]
|
[env:ci-arduino-310rc1]
|
||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
||||||
board = ${sysenv.PIO_BOARD}
|
board = ${sysenv.PIO_BOARD}
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
#include "AsyncJson.h"
|
#include "AsyncJson.h"
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
|
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
||||||
_code = 200;
|
_code = 200;
|
||||||
@@ -149,3 +151,5 @@ void AsyncCallbackJsonWebHandler::handleBody(AsyncWebServerRequest* request, uin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // ASYNC_JSON_SUPPORT
|
||||||
|
@@ -34,6 +34,11 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef ASYNC_JSON_H_
|
#ifndef ASYNC_JSON_H_
|
||||||
#define ASYNC_JSON_H_
|
#define ASYNC_JSON_H_
|
||||||
|
|
||||||
|
#if __has_include("ArduinoJson.h")
|
||||||
|
|
||||||
|
#define ASYNC_JSON_SUPPORT 1
|
||||||
|
|
||||||
#include <ArduinoJson.h>
|
#include <ArduinoJson.h>
|
||||||
#include <ESPAsyncWebServer.h>
|
#include <ESPAsyncWebServer.h>
|
||||||
|
|
||||||
@@ -121,4 +126,9 @@ class AsyncCallbackJsonWebHandler : public AsyncWebHandler {
|
|||||||
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
||||||
virtual bool isRequestHandlerTrivial() override final { return !_onRequest; }
|
virtual bool isRequestHandlerTrivial() override final { return !_onRequest; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#else // __has_include("ArduinoJson.h")
|
||||||
|
#define ASYNC_JSON_SUPPORT 0
|
||||||
|
#endif // __has_include("ArduinoJson.h")
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
#include "AsyncMessagePack.h"
|
#include "AsyncMessagePack.h"
|
||||||
|
|
||||||
|
#if ASYNC_MSG_PACK_SUPPORT == 1
|
||||||
|
|
||||||
AsyncMessagePackResponse::AsyncMessagePackResponse(bool isArray) : _isValid{false} {
|
AsyncMessagePackResponse::AsyncMessagePackResponse(bool isArray) : _isValid{false} {
|
||||||
_code = 200;
|
_code = 200;
|
||||||
_contentType = asyncsrv::T_application_msgpack;
|
_contentType = asyncsrv::T_application_msgpack;
|
||||||
@@ -77,3 +79,5 @@ void AsyncCallbackMessagePackWebHandler::handleBody(AsyncWebServerRequest* reque
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // ASYNC_MSG_PACK_SUPPORT
|
||||||
|
@@ -21,6 +21,10 @@
|
|||||||
server.addHandler(handler);
|
server.addHandler(handler);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if __has_include("ArduinoJson.h")
|
||||||
|
|
||||||
|
#define ASYNC_MSG_PACK_SUPPORT 1
|
||||||
|
|
||||||
#include <ArduinoJson.h>
|
#include <ArduinoJson.h>
|
||||||
#include <ESPAsyncWebServer.h>
|
#include <ESPAsyncWebServer.h>
|
||||||
|
|
||||||
@@ -65,3 +69,7 @@ class AsyncCallbackMessagePackWebHandler : public AsyncWebHandler {
|
|||||||
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
||||||
virtual bool isRequestHandlerTrivial() override final { return _onRequest ? false : true; }
|
virtual bool isRequestHandlerTrivial() override final { return _onRequest ? false : true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#else // __has_include("ArduinoJson.h")
|
||||||
|
#define ASYNC_MSG_PACK_SUPPORT 0
|
||||||
|
#endif // __has_include("ArduinoJson.h")
|
||||||
|
Reference in New Issue
Block a user