mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-04-20 22:13:47 +00:00
52 lines
1.1 KiB
C
52 lines
1.1 KiB
C
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "../BaseSerialInterface.h"
|
||
|
|
#include <WiFi.h>
|
||
|
|
|
||
|
|
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;
|
||
|
|
};
|