// General C++ Libraries
#include <queue>
#include <sstream>
#include <string>
#include <algorithm>
#include <cmath>
#include <map>
#include <utility>
// Web Server Libraries
#include <WebSocketsServer.h>
#include <WiFi.h>
#include <SPIFFS.h>
// Arduino Libraries
#include <Arduino.h>
#include <ArduinoJson.h>
// Motor Libraries
#include <AccelStepper.h>
#include <TMCStepper.h>
"TMC2209Pin.h"
TMC2209Pin(int en, int step, int dir, int clk,
int uart_rx, int uart_tx, int ms1, int ms2);
"L298NPin.h"
L298NPin(int enA, int enB, int in1, int in2, int in3, int in4);
"AccelStepperController.h"
class AccelStepperController {
AccelStepperController(
TMC2209Pin leftMotorPin, TMC2209Pin rightMotorPin,
L298NPin midMotorPin, double botWidth);
void begin();
void setup(int windowWidth, int windowHeight);
void enqueueWaypoint(int x, int y);
void next();
void updateMovement();
void spinMid();
void stop();
}
"EventType.h"
enum class EventType {
INIT, SETUP, WAYPOINT, INFO, UNKNOWN
};
"ESPWebController.h"
class ESPWebController {
ESPWebController();
void begin();
void update();
void send(
EventType type,
std::function<void(JsonDocument&)> fill);
};
};