#pragma once #include "../BaseSerialInterface.h" #include class SerialWifiInterface : public BaseSerialInterface { bool deviceConnected; bool _isEnabled; uint32_t _pin_code; unsigned long _last_write; unsigned long adv_restart_time; WiFiServer server; WiFiClient client; struct Frame { uint8_t len; uint8_t buf[MAX_FRAME_SIZE]; }; #define FRAME_QUEUE_SIZE 4 int recv_queue_len; Frame recv_queue[FRAME_QUEUE_SIZE]; int send_queue_len; Frame send_queue[FRAME_QUEUE_SIZE]; void clearBuffers() { recv_queue_len = 0; send_queue_len = 0; } protected: public: SerialWifiInterface() : server(WiFiServer()), client(WiFiClient()) { deviceConnected = false; _isEnabled = false; _last_write = 0; send_queue_len = recv_queue_len = 0; } void begin(int port); // BaseSerialInterface methods void enable() override; void disable() override; bool isEnabled() const override { return _isEnabled; } bool isConnected() const override; bool isWriteBusy() const override; size_t writeFrame(const uint8_t src[], size_t len) override; size_t checkRecvFrame(uint8_t dest[]) override; };