Draw "> Scanning..." at startup on OLED
This commit is contained in:
parent
85a7c12b97
commit
0c908c577c
|
@ -1094,11 +1094,11 @@ void CLI::runCommand(String input) {
|
||||||
// ------- loop function ----- //
|
// ------- loop function ----- //
|
||||||
currentTime = millis();
|
currentTime = millis();
|
||||||
|
|
||||||
wifi::update(); // manage access point
|
wifi::update(); // manage access point
|
||||||
scan.update(); // run scan
|
scan.update(); // run scan
|
||||||
attack.update(); // run attacks
|
attack.update(); // run attacks
|
||||||
ssids.update(); // run random mode, if enabled
|
ssids.update(); // run random mode, if enabled
|
||||||
led::update(); // update LED color
|
led::update(); // update LED color
|
||||||
|
|
||||||
// auto-save
|
// auto-save
|
||||||
if (settings::getAutosaveSettings().enabled && (currentTime - autosaveTime > settings::getAutosaveSettings().time)) {
|
if (settings::getAutosaveSettings().enabled && (currentTime - autosaveTime > settings::getAutosaveSettings().time)) {
|
||||||
|
@ -1229,10 +1229,10 @@ void CLI::runCommand(String input) {
|
||||||
// ===== SCREEN ===== //
|
// ===== SCREEN ===== //
|
||||||
// screen mode <menu/packetmonitor/buttontest/loading>
|
// screen mode <menu/packetmonitor/buttontest/loading>
|
||||||
else if (eqlsCMD(0, CLI_SCREEN) && eqlsCMD(1, CLI_MODE)) {
|
else if (eqlsCMD(0, CLI_SCREEN) && eqlsCMD(1, CLI_MODE)) {
|
||||||
if (eqlsCMD(2, CLI_MODE_BUTTONTEST)) displayUI.mode = displayUI.DISPLAY_MODE::BUTTON_TEST;
|
if (eqlsCMD(2, CLI_MODE_BUTTONTEST)) displayUI.mode = DISPLAY_MODE::BUTTON_TEST;
|
||||||
else if (eqlsCMD(2, CLI_MODE_PACKETMONITOR)) displayUI.mode = displayUI.DISPLAY_MODE::PACKETMONITOR;
|
else if (eqlsCMD(2, CLI_MODE_PACKETMONITOR)) displayUI.mode = DISPLAY_MODE::PACKETMONITOR;
|
||||||
else if (eqlsCMD(2, CLI_MODE_LOADINGSCREEN)) displayUI.mode = displayUI.DISPLAY_MODE::LOADSCAN;
|
else if (eqlsCMD(2, CLI_MODE_LOADINGSCREEN)) displayUI.mode = DISPLAY_MODE::LOADSCAN;
|
||||||
else if (eqlsCMD(2, CLI_MODE_MENU)) displayUI.mode = displayUI.DISPLAY_MODE::MENU;
|
else if (eqlsCMD(2, CLI_MODE_MENU)) displayUI.mode = DISPLAY_MODE::MENU;
|
||||||
else parameterError(list->get(2));
|
else parameterError(list->get(2));
|
||||||
prntln(CLI_CHANGED_SCREEN);
|
prntln(CLI_CHANGED_SCREEN);
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,10 +69,10 @@ void DisplayUI::setup() {
|
||||||
clock.setClockMode(false);
|
clock.setClockMode(false);
|
||||||
clockHour = clock.getHour(h12, PM_time);
|
clockHour = clock.getHour(h12, PM_time);
|
||||||
clockMinute = clock.getMinute();
|
clockMinute = clock.getMinute();
|
||||||
#else
|
#else // ifdef RTC_DS3231
|
||||||
clockHour = random(12);
|
clockHour = random(12);
|
||||||
clockMinute = random(60);
|
clockMinute = random(60);
|
||||||
#endif
|
#endif // ifdef RTC_DS3231
|
||||||
|
|
||||||
// ===== MENUS ===== //
|
// ===== MENUS ===== //
|
||||||
|
|
||||||
|
@ -461,7 +461,7 @@ void DisplayUI::setupLED() {
|
||||||
|
|
||||||
#endif // ifdef HIGHLIGHT_LED
|
#endif // ifdef HIGHLIGHT_LED
|
||||||
|
|
||||||
void DisplayUI::update() {
|
void DisplayUI::update(bool force) {
|
||||||
if (!enabled) return;
|
if (!enabled) return;
|
||||||
|
|
||||||
up->update();
|
up->update();
|
||||||
|
@ -469,7 +469,7 @@ void DisplayUI::update() {
|
||||||
a->update();
|
a->update();
|
||||||
b->update();
|
b->update();
|
||||||
|
|
||||||
draw();
|
draw(force);
|
||||||
|
|
||||||
uint32_t timeout = settings::getDisplaySettings().timeout * 1000;
|
uint32_t timeout = settings::getDisplaySettings().timeout * 1000;
|
||||||
|
|
||||||
|
@ -521,7 +521,7 @@ void DisplayUI::setupButtons() {
|
||||||
else currentMenu->selected = currentMenu->list->size() - 1;
|
else currentMenu->selected = currentMenu->list->size() - 1;
|
||||||
} else if (mode == DISPLAY_MODE::PACKETMONITOR) { // when in packet monitor, change channel
|
} else if (mode == DISPLAY_MODE::PACKETMONITOR) { // when in packet monitor, change channel
|
||||||
scan.setChannel(wifi_channel + 1);
|
scan.setChannel(wifi_channel + 1);
|
||||||
} else if (mode == DISPLAY_MODE::CLOCK) { // when in packet monitor, change channel
|
} else if (mode == DISPLAY_MODE::CLOCK) {
|
||||||
setTime(clockHour, clockMinute + 1, clockSecond);
|
setTime(clockHour, clockMinute + 1, clockSecond);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -654,18 +654,18 @@ String DisplayUI::getChannel() {
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayUI::draw() {
|
void DisplayUI::draw(bool force) {
|
||||||
if ((currentTime - drawTime > drawInterval) && currentMenu) {
|
if (force || ((currentTime - drawTime > drawInterval) && currentMenu)) {
|
||||||
drawTime = currentTime;
|
drawTime = currentTime;
|
||||||
|
|
||||||
updatePrefix();
|
updatePrefix();
|
||||||
|
|
||||||
#ifndef RTC_DS3231
|
#ifndef RTC_DS3231
|
||||||
if (clockTime < currentTime - 1000) {
|
if (clockTime < currentTime - 1000) {
|
||||||
setTime(clockHour, clockMinute++, clockSecond + 1);
|
setTime(clockHour, clockMinute++, clockSecond + 1);
|
||||||
clockTime += 1000;
|
clockTime += 1000;
|
||||||
}
|
}
|
||||||
#endif
|
#endif // ifndef RTC_DS3231
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case DISPLAY_MODE::BUTTON_TEST:
|
case DISPLAY_MODE::BUTTON_TEST:
|
||||||
|
@ -685,7 +685,7 @@ void DisplayUI::draw() {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DISPLAY_MODE::INTRO:
|
case DISPLAY_MODE::INTRO:
|
||||||
if (currentTime - startTime >= screenIntroTime) {
|
if (!scan.isScanning() && (currentTime - startTime >= screenIntroTime)) {
|
||||||
mode = DISPLAY_MODE::MENU;
|
mode = DISPLAY_MODE::MENU;
|
||||||
}
|
}
|
||||||
drawIntro();
|
drawIntro();
|
||||||
|
@ -693,6 +693,9 @@ void DisplayUI::draw() {
|
||||||
case DISPLAY_MODE::CLOCK:
|
case DISPLAY_MODE::CLOCK:
|
||||||
drawClock();
|
drawClock();
|
||||||
break;
|
break;
|
||||||
|
case DISPLAY_MODE::RESETTING:
|
||||||
|
drawResetting();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSuffix();
|
updateSuffix();
|
||||||
|
@ -786,8 +789,13 @@ void DisplayUI::drawIntro() {
|
||||||
drawString(0, center(str(D_INTRO_0), maxLen));
|
drawString(0, center(str(D_INTRO_0), maxLen));
|
||||||
drawString(1, center(str(D_INTRO_1), maxLen));
|
drawString(1, center(str(D_INTRO_1), maxLen));
|
||||||
drawString(2, center(str(D_INTRO_2), maxLen));
|
drawString(2, center(str(D_INTRO_2), maxLen));
|
||||||
drawString(3, center(str(D_INTRO_3), maxLen));
|
drawString(3, center(DEAUTHER_VERSION, maxLen));
|
||||||
drawString(4, center(DEAUTHER_VERSION, maxLen));
|
if (scan.isScanning()) {
|
||||||
|
if (currentTime - startTime >= screenIntroTime+4500) drawString(4, left(str(D_SCANNING_3), maxLen));
|
||||||
|
else if (currentTime - startTime >= screenIntroTime+3000) drawString(4, left(str(D_SCANNING_2), maxLen));
|
||||||
|
else if (currentTime - startTime >= screenIntroTime+1500) drawString(4, left(str(D_SCANNING_1), maxLen));
|
||||||
|
else if (currentTime - startTime >= screenIntroTime) drawString(4, left(str(D_SCANNING_0), maxLen));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayUI::drawClock() {
|
void DisplayUI::drawClock() {
|
||||||
|
@ -800,6 +808,10 @@ void DisplayUI::drawClock() {
|
||||||
display.drawString(64, 20, clockTime);
|
display.drawString(64, 20, clockTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DisplayUI::drawResetting() {
|
||||||
|
drawString(2, center(str(D_RESETTING), maxLen));
|
||||||
|
}
|
||||||
|
|
||||||
void DisplayUI::clearMenu(Menu* menu) {
|
void DisplayUI::clearMenu(Menu* menu) {
|
||||||
while (menu->list->size() > 0) {
|
while (menu->list->size() > 0) {
|
||||||
menu->list->remove(0);
|
menu->list->remove(0);
|
||||||
|
@ -906,5 +918,5 @@ void DisplayUI::setTime(int h, int m, int s) {
|
||||||
clock.setHour(clockHour);
|
clock.setHour(clockHour);
|
||||||
clock.setMinute(clockMinute);
|
clock.setMinute(clockMinute);
|
||||||
clock.setSecond(clockSecond);
|
clock.setSecond(clockSecond);
|
||||||
#endif
|
#endif // ifdef RTC_DS3231
|
||||||
}
|
}
|
|
@ -47,10 +47,14 @@ extern String right(String a, int len);
|
||||||
extern String leftRight(String a, String b, int len);
|
extern String leftRight(String a, String b, int len);
|
||||||
extern String replaceUtf8(String str, String r);
|
extern String replaceUtf8(String str, String r);
|
||||||
|
|
||||||
const char D_INTRO_0[] PROGMEM = "";
|
const char D_INTRO_0[] PROGMEM = "ESP8266 Deauther";
|
||||||
const char D_INTRO_1[] PROGMEM = "ESP8266 Deauther";
|
const char D_INTRO_1[] PROGMEM = "by @Spacehuhn";
|
||||||
const char D_INTRO_2[] PROGMEM = "by @Spacehuhn";
|
const char D_INTRO_2[] PROGMEM = DISPLAY_TEXT;
|
||||||
const char D_INTRO_3[] PROGMEM = DISPLAY_TEXT;
|
const char D_RESETTING[] PROGMEM = "Resetting...";
|
||||||
|
const char D_SCANNING_0[] PROGMEM = "> Scanning";
|
||||||
|
const char D_SCANNING_1[] PROGMEM = "> Scanning.";
|
||||||
|
const char D_SCANNING_2[] PROGMEM = "> Scanning..";
|
||||||
|
const char D_SCANNING_3[] PROGMEM = "> Scanning...";
|
||||||
|
|
||||||
struct MenuNode {
|
struct MenuNode {
|
||||||
std::function<String()>getStr; // function used to create the displayed string
|
std::function<String()>getStr; // function used to create the displayed string
|
||||||
|
@ -65,11 +69,18 @@ struct Menu {
|
||||||
std::function<void()> build; // function that is executed when button is clicked
|
std::function<void()> build; // function that is executed when button is clicked
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class DISPLAY_MODE { OFF,
|
||||||
|
BUTTON_TEST,
|
||||||
|
MENU,
|
||||||
|
LOADSCAN,
|
||||||
|
PACKETMONITOR,
|
||||||
|
INTRO,
|
||||||
|
CLOCK,
|
||||||
|
RESETTING };
|
||||||
|
|
||||||
class DisplayUI {
|
class DisplayUI {
|
||||||
public:
|
public:
|
||||||
enum DISPLAY_MODE { OFF = 0, BUTTON_TEST = 1, MENU = 2, LOADSCAN = 3, PACKETMONITOR = 4, INTRO = 5, CLOCK = 6 };
|
DISPLAY_MODE mode = DISPLAY_MODE::MENU;
|
||||||
|
|
||||||
uint8_t mode = DISPLAY_MODE::MENU;
|
|
||||||
bool highlightLED = false;
|
bool highlightLED = false;
|
||||||
|
|
||||||
Button* up = NULL;
|
Button* up = NULL;
|
||||||
|
@ -115,7 +126,7 @@ class DisplayUI {
|
||||||
void setupLED();
|
void setupLED();
|
||||||
#endif // ifdef HIGHLIGHT_LED
|
#endif // ifdef HIGHLIGHT_LED
|
||||||
|
|
||||||
void update();
|
void update(bool force = false);
|
||||||
void on();
|
void on();
|
||||||
void off();
|
void off();
|
||||||
|
|
||||||
|
@ -160,12 +171,13 @@ class DisplayUI {
|
||||||
String getChannel();
|
String getChannel();
|
||||||
|
|
||||||
// draw functions
|
// draw functions
|
||||||
void draw();
|
void draw(bool force = false);
|
||||||
void drawButtonTest();
|
void drawButtonTest();
|
||||||
void drawMenu();
|
void drawMenu();
|
||||||
void drawLoadingScan();
|
void drawLoadingScan();
|
||||||
void drawPacketMonitor();
|
void drawPacketMonitor();
|
||||||
void drawIntro();
|
void drawIntro();
|
||||||
|
void drawResetting();
|
||||||
void clearMenu(Menu* menu);
|
void clearMenu(Menu* menu);
|
||||||
|
|
||||||
// menu functions
|
// menu functions
|
||||||
|
|
|
@ -116,7 +116,7 @@ void setup() {
|
||||||
// start display
|
// start display
|
||||||
if (settings::getDisplaySettings().enabled) {
|
if (settings::getDisplaySettings().enabled) {
|
||||||
displayUI.setup();
|
displayUI.setup();
|
||||||
displayUI.mode = displayUI.DISPLAY_MODE::INTRO;
|
displayUI.mode = DISPLAY_MODE::INTRO;
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy web files to SPIFFS
|
// copy web files to SPIFFS
|
||||||
|
|
Loading…
Reference in New Issue