1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2026-02-24 20:53:07 +01:00
Files
esp32-nmea2000-obp60/lib/gwwifi/GWWifi.h
norbert-walter 02b2c888ee Fix for GwWifi
2026-02-15 19:16:24 +01:00

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