39 lines
954 B
C
39 lines
954 B
C
|
#pragma once
|
||
|
|
||
|
#include <Adafruit_SCD30.h>
|
||
|
|
||
|
#include <HTTPRequest.hpp>
|
||
|
#include <HTTPResponse.hpp>
|
||
|
#include <HTTPServer.hpp>
|
||
|
|
||
|
#include <freertos/FreeRTOS.h>
|
||
|
#include <freertos/semphr.h>
|
||
|
|
||
|
class WebServer
|
||
|
{
|
||
|
public:
|
||
|
bool start(Adafruit_SCD30 *scd30);
|
||
|
|
||
|
static WebServer &instance(void)
|
||
|
{
|
||
|
static WebServer theInstance;
|
||
|
return theInstance;
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
httpsserver::HTTPServer *m_server;
|
||
|
|
||
|
Adafruit_SCD30 *m_scd30;
|
||
|
|
||
|
WebServer(void);
|
||
|
|
||
|
static void serverTask(void *arg);
|
||
|
|
||
|
static bool serveFile(String filename, httpsserver::HTTPResponse *res);
|
||
|
|
||
|
// handlers
|
||
|
static void handleRoot(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res);
|
||
|
static void handleCalibrate(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res);
|
||
|
static void handleStatic(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res);
|
||
|
};
|