Add rssi and setting reset

This commit is contained in:
Just Call Me Koko
2022-08-06 12:37:09 -04:00
parent d0d3c40ad3
commit 2e469d1410
6 changed files with 38 additions and 10 deletions

View File

@@ -192,10 +192,35 @@ void CommandLine::runCommand(String input) {
else if (cmd_args.get(0) == SETTINGS_CMD) {
int ss_sw = this->argSearch(&cmd_args, "-s"); // Set setting
int re_sw = this->argSearch(&cmd_args, "-r"); // Reset setting
int en_sw = this->argSearch(&cmd_args, "enable"); // enable setting
int da_sw = this->argSearch(&cmd_args, "disable"); // disable setting
if (re_sw != -1) {
settings_obj.createDefaultSettings(SPIFFS);
return;
}
if (ss_sw == -1) {
settings_obj.printJsonSettings(settings_obj.getSettingsString());
}
else {
bool result = false;
String setting_name = cmd_args.get(ss_sw + 1);
if (en_sw != -1)
result = settings_obj.saveSetting<bool>(setting_name, true);
else if (da_sw != -1)
result = settings_obj.saveSetting<bool>(setting_name, false);
else {
Serial.println("You did not properly enable/disable this setting.");
return;
}
if (!result) {
Serial.println("Could not successfully update setting \"" + setting_name + "\"");
return;
}
}
}
else if (cmd_args.get(0) == REBOOT_CMD) {
@@ -442,9 +467,9 @@ void CommandLine::runCommand(String input) {
if (ap_sw != -1) {
for (int i = 0; i < access_points->size(); i++) {
if (access_points->get(i).selected)
Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " (selected)");
Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi + " (selected)");
else
Serial.println("[" + (String)i + "] " + access_points->get(i).essid);
Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi);
}
}
// List SSIDs

View File

@@ -72,7 +72,7 @@ const char PROGMEM HELP_CLEARAP_CMD_B[] = "clearlist -s";
const char PROGMEM HELP_REBOOT_CMD[] = "reboot";
const char PROGMEM HELP_UPDATE_CMD_A[] = "update -s";
const char PROGMEM HELP_UPDATE_CMD_B[] = "update -w";
const char PROGMEM HELP_SETTINGS_CMD[] = "settings [-s <setting> <value>]";
const char PROGMEM HELP_SETTINGS_CMD[] = "settings [-s <setting> enable/disable>]/[-r]";
// WiFi sniff/scan
const char PROGMEM HELP_SCANAP_CMD[] = "scanap";

View File

@@ -1540,6 +1540,8 @@ void WiFiScan::apSnifferCallbackFull(void* buf, wifi_promiscuous_pkt_type_t type
Serial.print(" ");
}
ap.rssi = snifferPacket->rx_ctrl.rssi;
access_points->add(ap);
Serial.print(access_points->size());
@@ -1662,8 +1664,8 @@ void WiFiScan::apSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type)
snifferPacket->payload[14],
snifferPacket->payload[15]},
false,
NULL};
NULL,
snifferPacket->rx_ctrl.rssi};
access_points->add(ap);

View File

@@ -92,6 +92,7 @@ struct AccessPoint {
int bssid[6];
bool selected;
LinkedList<char>* beacon;
int rssi;
};
class WiFiScan

View File

@@ -162,6 +162,7 @@ bool Settings::saveSetting<bool>(String key, bool value) {
return true;
}
}
return false;
}
bool Settings::toggleSetting(String key) {
@@ -263,19 +264,19 @@ bool Settings::createDefaultSettings(fs::FS &fs) {
//jsonBuffer["Settings"][1]["range"]["min"] = 1;
//jsonBuffer["Settings"][1]["range"]["max"] = 10;
jsonBuffer["Settings"][0]["name"] = "Force PMKID";
jsonBuffer["Settings"][0]["name"] = "ForcePMKID";
jsonBuffer["Settings"][0]["type"] = "bool";
jsonBuffer["Settings"][0]["value"] = true;
jsonBuffer["Settings"][0]["range"]["min"] = false;
jsonBuffer["Settings"][0]["range"]["max"] = true;
jsonBuffer["Settings"][1]["name"] = "Force Probe";
jsonBuffer["Settings"][1]["name"] = "ForceProbe";
jsonBuffer["Settings"][1]["type"] = "bool";
jsonBuffer["Settings"][1]["value"] = true;
jsonBuffer["Settings"][1]["range"]["min"] = false;
jsonBuffer["Settings"][1]["range"]["max"] = true;
jsonBuffer["Settings"][2]["name"] = "Save PCAP";
jsonBuffer["Settings"][2]["name"] = "SavePCAP";
jsonBuffer["Settings"][2]["type"] = "bool";
jsonBuffer["Settings"][2]["value"] = true;
jsonBuffer["Settings"][2]["range"]["min"] = false;

View File

@@ -19,8 +19,6 @@ class Settings {
private:
String json_settings_string;
bool createDefaultSettings(fs::FS &fs);
public:
bool begin();
@@ -49,6 +47,7 @@ class Settings {
//uint8_t loadSetting<uint8_t>(String key);
String getSettingsString();
bool createDefaultSettings(fs::FS &fs);
void printJsonSettings(String json_string);
void main(uint32_t currentTime);
};