mirror of
https://github.com/thooge/esp32-nmea2000-obp60.git
synced 2026-02-24 20:53:07 +01:00
39 lines
1.3 KiB
C++
39 lines
1.3 KiB
C++
#ifndef _GWWIFI_H
|
|
#define _GWWIFI_H
|
|
#include <WiFi.h>
|
|
#include <GWConfig.h>
|
|
#include <freertos/FreeRTOS.h>
|
|
#include <freertos/semphr.h>
|
|
|
|
class GwWifi{
|
|
private:
|
|
const GwConfigHandler *config;
|
|
GwLog *logger;
|
|
const GwConfigInterface *wifiClient;
|
|
const GwConfigInterface *wifiSSID;
|
|
const GwConfigInterface *wifiPass;
|
|
bool connectInternal();
|
|
long lastConnectStart=0;
|
|
unsigned long lastApAccess=0;
|
|
unsigned long apShutdownTime=0;
|
|
bool apActive=false;
|
|
bool fixedApPass=true;
|
|
bool clientIsConnected=false;
|
|
SemaphoreHandle_t wifiMutex=nullptr;
|
|
static const TickType_t WIFI_MUTEX_TIMEOUT=pdMS_TO_TICKS(1000);
|
|
bool acquireMutex();
|
|
void releaseMutex();
|
|
public:
|
|
const char *AP_password = "esp32nmea2k";
|
|
GwWifi(const GwConfigHandler *config,GwLog *log, bool fixedApPass=true);
|
|
~GwWifi();
|
|
void setup();
|
|
void loop();
|
|
bool clientConnected();
|
|
bool connectClient(); // Blocking version
|
|
bool connectClientAsync(); // Non-blocking version for other tasks
|
|
String apIP();
|
|
bool isApActive(){return apActive;}
|
|
bool isClientActive(){return wifiClient->asBoolean();}
|
|
};
|
|
#endif |