Jelajahi Sumber

Generate SSIDs #44

Just Call Me Koko 5 tahun lalu
induk
melakukan
cf2d5df4d5

+ 26 - 1
esp32_marauder/MenuFunctions.cpp

@@ -627,6 +627,8 @@ void MenuFunctions::RunSetup()
   // Settings stuff
   shutdownWiFiMenu.list = new LinkedList<MenuNode>();
   shutdownBLEMenu.list = new LinkedList<MenuNode>();
+  generateSSIDsMenu.list = new LinkedList<MenuNode>();
+  clearSSIDsMenu.list = new LinkedList<MenuNode>();
 
   // Work menu names
   mainMenu.name = " ESP32 Marauder ";
@@ -648,6 +650,9 @@ void MenuFunctions::RunSetup()
   bluetoothGeneralMenu.name = " Bluetooth General ";
   shutdownWiFiMenu.name = " Shutdown WiFi ";
   shutdownBLEMenu.name = " Shutdown BLE ";
+  generateSSIDsMenu.name = " Generate SSIDs ";
+  clearSSIDsMenu.name = " Clear SSIDs ";
+  
 
   // Build Main Menu
   mainMenu.parentMenu = NULL;
@@ -755,10 +760,18 @@ void MenuFunctions::RunSetup()
     wifi_scan_obj.StartScan(LV_JOIN_WIFI, TFT_YELLOW); 
     joinWiFiGFX();
   });
-  addNodes(&wifiGeneralMenu, "Shutdown WiFi", TFT_ORANGE, NULL, SHUTDOWN, [this]() {
+  addNodes(&wifiGeneralMenu, "Shutdown WiFi", TFT_CYAN, NULL, SHUTDOWN, [this]() {
     changeMenu(&shutdownWiFiMenu);
     wifi_scan_obj.RunShutdownWiFi();
   });
+  addNodes(&wifiGeneralMenu, "Generate SSIDs", TFT_SKYBLUE, NULL, GENERAL_APPS, [this]() {
+    changeMenu(&generateSSIDsMenu);
+    wifi_scan_obj.RunGenerateSSIDs();
+  });
+  addNodes(&wifiGeneralMenu, "Clear SSIDs", TFT_SILVER, NULL, GENERAL_APPS, [this]() {
+    changeMenu(&clearSSIDsMenu);
+    wifi_scan_obj.RunClearSSIDs();
+  });
 
   // Build shutdown wifi menu
   shutdownWiFiMenu.parentMenu = &wifiGeneralMenu;
@@ -766,6 +779,18 @@ void MenuFunctions::RunSetup()
     changeMenu(shutdownWiFiMenu.parentMenu);
   });
 
+  // Build generate ssids menu
+  generateSSIDsMenu.parentMenu = &wifiGeneralMenu;
+  addNodes(&generateSSIDsMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this]() {
+    changeMenu(generateSSIDsMenu.parentMenu);
+  });
+
+  // Build clear ssids menu
+  clearSSIDsMenu.parentMenu = &wifiGeneralMenu;
+  addNodes(&clearSSIDsMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this]() {
+    changeMenu(clearSSIDsMenu.parentMenu);
+  });
+
 
   // Build Bluetooth Menu
   bluetoothMenu.parentMenu = &mainMenu; // Second Menu is third menu parent

+ 2 - 0
esp32_marauder/MenuFunctions.h

@@ -138,6 +138,8 @@ class MenuFunctions
     // Settings things menus
     Menu shutdownWiFiMenu;
     Menu shutdownBLEMenu;
+    Menu generateSSIDsMenu;
+    Menu clearSSIDsMenu;
 
     static void lv_tick_handler();
 

+ 48 - 0
esp32_marauder/WiFiScan.cpp

@@ -129,6 +129,7 @@ WiFiScan::WiFiScan()
 }
 
 void WiFiScan::RunSetup() {
+  ssids = new LinkedList<ssid>();
   BLEDevice::init("");
   pBLEScan = BLEDevice::getScan(); //create new scan
   this->ble_initialized = true;
@@ -136,6 +137,29 @@ void WiFiScan::RunSetup() {
   this->shutdownBLE();
 }
 
+int WiFiScan::clearSSIDs() {
+  int num_cleared = this->ssids->size();
+  this->ssids->clear();
+  Serial.println("ssids: " + (String)this->ssids->size());
+  return num_cleared;
+}
+
+int WiFiScan::generateSSIDs() {
+  uint8_t num_gen = 20;
+  for (uint8_t x = 0; x < num_gen; x++) {
+    String essid = "";
+
+    for (uint8_t i = 0; i < 6; i++)
+      essid.concat(alfa[random(65)]);
+
+    ssid s = {essid, {random(256), random(256), random(256), random(256), random(256), random(256)}};
+    this->ssids->add(s);
+    Serial.println(this->ssids->get(this->ssids->size() - 1).essid);
+  }
+
+  return num_gen;
+}
+
 void WiFiScan::joinWiFi(String ssid, String password)
 {
   static const char * btns[] ={"Close", ""};
@@ -406,6 +430,30 @@ void WiFiScan::RunLvJoinWiFi(uint8_t scan_mode, uint16_t color) {
   //display_obj.joinWiFiGFX();
 }
 
+void WiFiScan::RunClearSSIDs() {
+  display_obj.tft.setTextWrap(false);
+  display_obj.tft.setFreeFont(NULL);
+  display_obj.tft.setCursor(0, 100);
+  display_obj.tft.setTextSize(1);
+  display_obj.tft.setTextColor(TFT_CYAN);
+
+  display_obj.tft.println(F("Clearing SSIDs..."));
+  display_obj.tft.println("SSIDs Cleared: " + (String)this->clearSSIDs());
+}
+
+void WiFiScan::RunGenerateSSIDs() {
+  display_obj.tft.setTextWrap(false);
+  display_obj.tft.setFreeFont(NULL);
+  display_obj.tft.setCursor(0, 100);
+  display_obj.tft.setTextSize(1);
+  display_obj.tft.setTextColor(TFT_CYAN);
+
+  display_obj.tft.println(F("Generating SSIDs..."));
+
+  display_obj.tft.println("SSIDs Generated: " + (String)this->generateSSIDs());
+  display_obj.tft.println("    Total SSIDs: " + (String)this->ssids->size());
+}
+
 void WiFiScan::RunShutdownWiFi() {
   display_obj.tft.setTextWrap(false);
   display_obj.tft.setFreeFont(NULL);

+ 11 - 0
esp32_marauder/WiFiScan.h

@@ -55,6 +55,11 @@ extern TemperatureInterface temp_obj;
 
 esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq);
 
+struct ssid {
+  String essid;
+  int bssid[6];
+};
+
 class WiFiScan
 {
   private:
@@ -154,6 +159,8 @@ class WiFiScan
   public:
     WiFiScan();
 
+    LinkedList<ssid>* ssids;
+
     int set_channel = 1;
 
     int old_channel = 0;
@@ -171,6 +178,8 @@ class WiFiScan
     wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();    
 
     void RunSetup();
+    int clearSSIDs();
+    int generateSSIDs();
     bool shutdownWiFi();
     bool shutdownBLE();
     void joinWiFi(String ssid, String password);
@@ -180,6 +189,8 @@ class WiFiScan
     void RunInfo();
     void RunShutdownWiFi();
     void RunShutdownBLE();
+    void RunGenerateSSIDs();
+    void RunClearSSIDs();
     void channelHop();
     uint8_t currentScanMode = 0;
     void main(uint32_t currentTime);