#pragma once #include #include #include class wifiHandlerInterface { public: struct WifiInfo { WifiInfo(){}; WifiInfo(std::string aSsid, int aRssi) : ssid(aSsid), rssi(aRssi) {} std::string ssid = ""; int rssi = 0; }; struct wifiStatus { wifiStatus(bool aConnected, std::string aIp, std::string aSsid) : isConnected(aConnected), IP(aIp), ssid(aSsid){}; bool isConnected; std::string IP = ""; std::string ssid = ""; }; typedef std::vector ScanDoneDataTy; typedef Notification ScanNotificationTy; virtual void begin() = 0; virtual void scan() = 0; virtual void connect(std::string ssid, std::string password) = 0; virtual bool isAvailable() = 0; std::shared_ptr ScanCompleteNotification() { return mScanNotification; }; std::shared_ptr> WifiStatusNotification() { return mStatusUpdate; }; protected: std::shared_ptr mScanNotification = std::make_shared(); std::shared_ptr> mStatusUpdate = std::make_shared>(); };