SensorCube-Firmware/include/WebServer.h

40 lines
1 KiB
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 handleReadout(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res);
static void handleStatic(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res);
};