Create set macs menu and fix wifi init for macs

This commit is contained in:
Just Call Me Koko
2025-04-03 10:57:01 -04:00
parent 3c5b3bd544
commit caecd09d74
3 changed files with 28 additions and 7 deletions

View File

@@ -1456,6 +1456,7 @@ void MenuFunctions::RunSetup()
wifiGeneralMenu.list = new LinkedList<MenuNode>(); wifiGeneralMenu.list = new LinkedList<MenuNode>();
wifiAPMenu.list = new LinkedList<MenuNode>(); wifiAPMenu.list = new LinkedList<MenuNode>();
apInfoMenu.list = new LinkedList<MenuNode>(); apInfoMenu.list = new LinkedList<MenuNode>();
setMacMenu.list = new LinkedList<MenuNode>();
genAPMacMenu.list = new LinkedList<MenuNode>(); genAPMacMenu.list = new LinkedList<MenuNode>();
#ifdef HAS_BT #ifdef HAS_BT
airtagMenu.list = new LinkedList<MenuNode>(); airtagMenu.list = new LinkedList<MenuNode>();
@@ -1524,6 +1525,7 @@ void MenuFunctions::RunSetup()
clearAPsMenu.name = text_table1[29]; clearAPsMenu.name = text_table1[29];
wifiAPMenu.name = "Access Points"; wifiAPMenu.name = "Access Points";
apInfoMenu.name = "AP Info"; apInfoMenu.name = "AP Info";
setMacMenu.name = "Set MACs";
genAPMacMenu.name = "Generate AP MAC"; genAPMacMenu.name = "Generate AP MAC";
#ifdef HAS_BT #ifdef HAS_BT
airtagMenu.name = "Select Airtag"; airtagMenu.name = "Select Airtag";
@@ -1944,12 +1946,30 @@ void MenuFunctions::RunSetup()
}); });
#endif #endif
this->addNodes(&wifiGeneralMenu, "Generate AP MAC", TFTLIGHTGREY, NULL, 0, [this]() { this->addNodes(&wifiGeneralMenu, "Set MACs", TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(&setMacMenu);
});
// Menu for generating and setting MAC addrs for AP and STA
setMacMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&setMacMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(setMacMenu.parentMenu);
});
// Generate random MAC for AP
this->addNodes(&setMacMenu, "Generate AP MAC", TFTLIME, NULL, 0, [this]() {
this->changeMenu(&genAPMacMenu); this->changeMenu(&genAPMacMenu);
wifi_scan_obj.RunGenerateRandomMac(true); wifi_scan_obj.RunGenerateRandomMac(true);
}); });
// Menu for generating and setting access point MAC // Generate random MAC for AP
this->addNodes(&setMacMenu, "Generate STA MAC", TFTCYAN, NULL, 0, [this]() {
this->changeMenu(&genAPMacMenu);
wifi_scan_obj.RunGenerateRandomMac(false);
});
// Menu for generating and setting access point MAC (just goes bacK)
genAPMacMenu.parentMenu = &wifiGeneralMenu; genAPMacMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&genAPMacMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() { this->addNodes(&genAPMacMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(genAPMacMenu.parentMenu); this->changeMenu(genAPMacMenu.parentMenu);

View File

@@ -179,6 +179,7 @@ class MenuFunctions
Menu saveFileMenu; Menu saveFileMenu;
Menu apInfoMenu; Menu apInfoMenu;
Menu genAPMacMenu; Menu genAPMacMenu;
Menu setMacMenu;
// Bluetooth menu stuff // Bluetooth menu stuff
Menu bluetoothSnifferMenu; Menu bluetoothSnifferMenu;

View File

@@ -1078,9 +1078,9 @@ String WiFiScan::getStaMAC()
char *buf; char *buf;
uint8_t mac[6]; uint8_t mac[6];
char macAddrChr[18] = {0}; char macAddrChr[18] = {0};
esp_wifi_init(&cfg); esp_wifi_init(&cfg2);
esp_wifi_set_storage(WIFI_STORAGE_RAM); esp_wifi_set_storage(WIFI_STORAGE_RAM);
esp_wifi_set_mode(WIFI_MODE_NULL); esp_wifi_set_mode(WIFI_MODE_STA);
esp_wifi_start(); esp_wifi_start();
this->setMac(); this->setMac();
esp_err_t mac_status = esp_wifi_get_mac(WIFI_IF_STA, mac); esp_err_t mac_status = esp_wifi_get_mac(WIFI_IF_STA, mac);
@@ -1102,9 +1102,9 @@ String WiFiScan::getApMAC()
char *buf; char *buf;
uint8_t mac[6]; uint8_t mac[6];
char macAddrChr[18] = {0}; char macAddrChr[18] = {0};
esp_wifi_init(&cfg); esp_wifi_init(&cfg2);
esp_wifi_set_storage(WIFI_STORAGE_RAM); esp_wifi_set_storage(WIFI_STORAGE_RAM);
esp_wifi_set_mode(WIFI_MODE_NULL); esp_wifi_set_mode(WIFI_MODE_AP);
esp_wifi_start(); esp_wifi_start();
this->setMac(); this->setMac();
esp_err_t mac_status = esp_wifi_get_mac(WIFI_IF_AP, mac); esp_err_t mac_status = esp_wifi_get_mac(WIFI_IF_AP, mac);
@@ -1730,7 +1730,7 @@ void WiFiScan::RunGenerateRandomMac(bool ap) {
if (ap) Serial.println("Setting AP MAC: " + macToString(this->ap_mac)); if (ap) Serial.println("Setting AP MAC: " + macToString(this->ap_mac));
else Serial.println("Setting STA MAC: " + macToString(this->sta_mac)); else Serial.println("Setting STA MAC: " + macToString(this->sta_mac));
#ifdef HAS_DISPLAY #ifdef HAS_SCREEN
display_obj.tft.setTextWrap(false); display_obj.tft.setTextWrap(false);
display_obj.tft.setFreeFont(NULL); display_obj.tft.setFreeFont(NULL);
display_obj.tft.setCursor(0, 100); display_obj.tft.setCursor(0, 100);