#ifndef Settings_h #define Settings_h #include "Arduino.h" #include extern "C" { #include "user_interface.h" } #include "ArduinoJson.h" #include "language.h" #include "A_config.h" #define VERSION "v2.1.0" extern void checkFile(String path, String data); extern JsonVariant parseJSONFile(String path, DynamicJsonBuffer& jsonBuffer); extern bool writeFile(String path, String& buf); extern void saveJSONFile(String path, JsonObject& root); extern String macToStr(uint8_t* mac); extern void getRandomMac(uint8_t* mac); extern bool strToMac(String macStr, uint8_t* mac); extern void setWifiChannel(uint8_t ch); extern String fixUtf8(String str); extern void copyWebFiles(bool force); extern bool macValid(uint8_t* mac); class Settings { public: Settings(); void load(); void load(String filepath); void save(bool force); void save(bool force, String filepath); void reset(); void print(); void set(const char* str, String value); String get(const char* str); String getVersion(); uint16_t getDeauthsPerTarget(); uint8_t getDeauthReason(); bool getBeaconChannel(); uint8_t getForcePackets(); bool getAutosave(); uint32_t getAutosaveTime(); bool getBeaconInterval(); uint8_t getChannel(); String getSSID(); String getPassword(); bool getCLI(); bool getDisplayInterface(); bool getWebInterface(); uint16_t getChTime(); uint8_t* getMacSt(); uint8_t* getMacAP(); bool getRandomTX(); uint32_t getAttackTimeout(); bool getLedEnabled(); uint8_t getProbesPerSSID(); bool getHidden(); bool getCaptivePortal(); uint16_t getMinDeauths(); uint32_t getDisplayTimeout(); String getLang(); bool getSerialEcho(); bool getWebSpiffs(); void setDeauthsPerTarget(uint16_t deauthsPerTarget); void setDeauthReason(uint8_t deauthReason); void setBeaconChannel(bool beaconChannel); void setForcePackets(uint8_t forcePackets); void setAutosave(bool autosave); void setAutosaveTime(uint32_t autosaveTime); void setBeaconInterval(bool beaconInterval); void setChannel(uint8_t channel); void setSSID(String ssid); void setPassword(String password); void setCLI(bool cli); void setDisplayInterface(bool displayInterface); void setWebInterface(bool webInterface); void setChTime(uint16_t chTime); void setMacSt(String macStr); bool setMacSt(uint8_t* macSt); void setMacAP(String macStr); bool setMacAP(uint8_t* macAP); void setRandomTX(bool randomTX); void setAttackTimeout(uint32_t attackTimeout); void setLedEnabled(bool ledEnabled); void setProbesPerSSID(uint8_t probesPerSSID); void setHidden(bool hidden); void setCaptivePortal(bool captivePortal); void setMinDeauths(uint16_t minDeauths); void setDisplayTimeout(uint32_t displayTimeout); void setLang(String lang); void setSerialEcho(bool serialEcho); void setWebSpiffs(bool webSpiffs); private: bool changed = false; String version = VERSION; bool beaconChannel = false; bool autosave = true; bool beaconInterval = false; bool cli = true; bool displayInterface = USE_DISPLAY; bool webInterface = true; bool webSpiffs = false; bool randomTX = false; bool ledEnabled = true; bool serialEcho = true; uint32_t attackTimeout = 600; uint32_t autosaveTime = 10000; uint32_t displayTimeout = 600; uint16_t deauthsPerTarget = 20; uint16_t chTime = 384; uint16_t minDeauths = 3; uint8_t forcePackets = 1; uint8_t channel = 9; uint8_t deauthReason = 1; uint8_t* macSt; uint8_t* macAP; uint8_t probesPerSSID = 1; String ssid = "pwned"; String password = "deauther"; bool hidden = false; bool captivePortal = true; String lang = "en"; String FILE_PATH = "/settings.json"; String getJsonStr(); }; #endif // ifndef Settings_h