Just Call Me Koko 3 лет назад
Родитель
Сommit
4f04e91d0a
5 измененных файлов с 84 добавлено и 37 удалено
  1. 48 17
      esp32_marauder/Display.cpp
  2. 8 0
      esp32_marauder/Display.h
  3. 5 2
      esp32_marauder/WiFiScan.cpp
  4. 8 3
      esp32_marauder/configs.h
  5. 15 15
      esp32_marauder/lang_var.h

+ 48 - 17
esp32_marauder/Display.cpp

@@ -14,6 +14,10 @@ void Display::RunSetup()
 
 
   // Need to declare new
   // Need to declare new
   display_buffer = new LinkedList<String>();
   display_buffer = new LinkedList<String>();
+
+  #ifdef SCREEN_BUFFER
+    screen_buffer = new LinkedList<String>();
+  #endif
   
   
   tft.init();
   tft.init();
   tft.setRotation(0); // Portrait
   tft.setRotation(0); // Portrait
@@ -252,30 +256,57 @@ void Display::clearScreen()
   tft.setCursor(0, 0);
   tft.setCursor(0, 0);
 }
 }
 
 
+#ifdef SCREEN_BUFFER
+void Display::scrollScreenBuffer(bool down) {
+  // Scroll screen normal direction (Up)
+  if (!down) {
+    this->screen_buffer->shift();
+  }
+}
+#endif
+
 void Display::displayBuffer(bool do_clear)
 void Display::displayBuffer(bool do_clear)
 {
 {
   if (this->display_buffer->size() > 0)
   if (this->display_buffer->size() > 0)
   {
   {
     delay(1);
     delay(1);
-    
+
     while (display_buffer->size() > 0)
     while (display_buffer->size() > 0)
     {
     {
-      xPos = 0;
-      if ((display_buffer->size() > 0) && (!loading))
-      {
-        printing = true;
-        delay(print_delay_1);
-        yDraw = scroll_line(TFT_RED);
-        tft.setCursor(xPos, yDraw);
-        tft.setTextColor(TFT_GREEN, TFT_BLACK);
-        tft.print(display_buffer->shift());
-        printing = false;
-        delay(print_delay_2);
-      }
-      if (!tteBar)
-        blank[(18+(yStart - TOP_FIXED_AREA) / TEXT_HEIGHT)%19] = xPos;
-      else
-        blank[(18+(yStart - TOP_FIXED_AREA_2) / TEXT_HEIGHT)%19] = xPos;
+
+      #ifndef SCREEN_BUFFER
+        xPos = 0;
+        if ((display_buffer->size() > 0) && (!loading))
+        {
+          printing = true;
+          delay(print_delay_1);
+          yDraw = scroll_line(TFT_RED);
+          tft.setCursor(xPos, yDraw);
+          tft.setTextColor(TFT_GREEN, TFT_BLACK);
+          tft.print(display_buffer->shift());
+          printing = false;
+          delay(print_delay_2);
+        }
+        if (!tteBar)
+          blank[(18+(yStart - TOP_FIXED_AREA) / TEXT_HEIGHT)%19] = xPos;
+        else
+          blank[(18+(yStart - TOP_FIXED_AREA_2) / TEXT_HEIGHT)%19] = xPos;
+      #else
+        xPos = 0;
+        if (this->screen_buffer->size() >= MAX_SCREEN_BUFFER) 
+          this->scrollScreenBuffer();
+
+        screen_buffer->add(display_buffer->shift());
+
+        for (int i = 0; i < this->screen_buffer->size(); i++) {
+          tft.setCursor(xPos, (i * 12) + (SCREEN_HEIGHT / 3));
+          for (int x = 0; x < TFT_WIDTH / CHAR_WIDTH; x++)
+            tft.print(" ");
+          tft.setCursor(xPos, (i * 12) + (SCREEN_HEIGHT / 3));
+          tft.setTextColor(TFT_GREEN, TFT_BLACK);
+          tft.print(this->screen_buffer->get(i));
+        }
+      #endif
     }
     }
   }
   }
 }
 }

+ 8 - 0
esp32_marauder/Display.h

@@ -72,6 +72,10 @@ class Display
 
 
     void drawFrame();
     void drawFrame();
 
 
+    #ifdef SCREEN_BUFFER
+      void scrollScreenBuffer(bool down = false);
+    #endif
+
     //void addNodes(Menu* menu, String name, Menu* child, std::function<void()> callable);
     //void addNodes(Menu* menu, String name, Menu* child, std::function<void()> callable);
     //void changeMenu(Menu* menu);
     //void changeMenu(Menu* menu);
     //void showMenuList(Menu* menu, int layer);
     //void showMenuList(Menu* menu, int layer);
@@ -103,6 +107,10 @@ class Display
 
 
     LinkedList<String>* display_buffer;
     LinkedList<String>* display_buffer;
 
 
+    #ifdef SCREEN_BUFFER
+      LinkedList<String>* screen_buffer;
+    #endif
+
     // The initial y coordinate of the top of the bottom text line
     // The initial y coordinate of the top of the bottom text line
     uint16_t yDraw = YMAX - BOT_FIXED_AREA - TEXT_HEIGHT;
     uint16_t yDraw = YMAX - BOT_FIXED_AREA - TEXT_HEIGHT;
 
 

+ 5 - 2
esp32_marauder/WiFiScan.cpp

@@ -443,6 +443,9 @@ void WiFiScan::StopScan(uint8_t scan_mode)
 
 
   #ifdef HAS_SCREEN
   #ifdef HAS_SCREEN
     display_obj.display_buffer->clear();
     display_obj.display_buffer->clear();
+    #ifdef SCREEN_BUFFER
+      display_obj.screen_buffer->clear();
+    #endif
     //Serial.print("display_buffer->size(): ");
     //Serial.print("display_buffer->size(): ");
     Serial.println(display_obj.display_buffer->size());
     Serial.println(display_obj.display_buffer->size());
   
   
@@ -682,11 +685,11 @@ void WiFiScan::RunInfo()
   #ifdef HAS_SCREEN
   #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, SCREEN_HEIGHT / 3);
     display_obj.tft.setTextSize(1);
     display_obj.tft.setTextSize(1);
     display_obj.tft.setTextColor(TFT_CYAN);
     display_obj.tft.setTextColor(TFT_CYAN);
     display_obj.tft.println(text_table4[20]);
     display_obj.tft.println(text_table4[20]);
-    display_obj.tft.println(text_table4[21] + display_obj.version_number + "\n");
+    display_obj.tft.println(text_table4[21] + display_obj.version_number);
     display_obj.tft.println(text_table4[22] + (String)esp_get_idf_version());
     display_obj.tft.println(text_table4[22] + (String)esp_get_idf_version());
   #endif
   #endif
 
 

+ 8 - 3
esp32_marauder/configs.h

@@ -4,12 +4,12 @@
 
 
   #define POLISH_POTATO
   #define POLISH_POTATO
   
   
-  //#define MARAUDER_MINI
+  #define MARAUDER_MINI
   //#define MARAUDER_V4
   //#define MARAUDER_V4
   //#define MARAUDER_V6
   //#define MARAUDER_V6
   //#define MARAUDER_KIT
   //#define MARAUDER_KIT
   //#define GENERIC_ESP32
   //#define GENERIC_ESP32
-  #define MARAUDER_FLIPPER
+  //#define MARAUDER_FLIPPER
 
 
   #define MARAUDER_VERSION "v0.9.11"
   #define MARAUDER_VERSION "v0.9.11"
 
 
@@ -201,6 +201,10 @@
     #define TOUCH_CS 21
     #define TOUCH_CS 21
     #define SD_CS 4
     #define SD_CS 4
 
 
+    #define SCREEN_BUFFER
+
+    #define MAX_SCREEN_BUFFER 8
+
     #define BANNER_TEXT_SIZE 1
     #define BANNER_TEXT_SIZE 1
 
 
     #ifndef TFT_WIDTH
     #ifndef TFT_WIDTH
@@ -210,7 +214,8 @@
     #ifndef TFT_HEIGHT
     #ifndef TFT_HEIGHT
       #define TFT_HEIGHT 128
       #define TFT_HEIGHT 128
     #endif
     #endif
-    
+
+    #define CHAR_WIDTH 6
     #define SCREEN_WIDTH TFT_WIDTH // Originally 240
     #define SCREEN_WIDTH TFT_WIDTH // Originally 240
     #define SCREEN_HEIGHT TFT_HEIGHT // Originally 320
     #define SCREEN_HEIGHT TFT_HEIGHT // Originally 320
     #define HEIGHT_1 TFT_WIDTH
     #define HEIGHT_1 TFT_WIDTH

+ 15 - 15
esp32_marauder/lang_var.h

@@ -144,21 +144,21 @@ PROGMEM const char text4_16[] = "Shutting down WiFi...";
 PROGMEM const char text4_17[] = "WiFi not currently initialized";
 PROGMEM const char text4_17[] = "WiFi not currently initialized";
 PROGMEM const char text4_18[] = "Shutting down BLE...";
 PROGMEM const char text4_18[] = "Shutting down BLE...";
 PROGMEM const char text4_19[] = "BLE not currently initialized";
 PROGMEM const char text4_19[] = "BLE not currently initialized";
-PROGMEM const char text4_20[] = "     Firmware: Marauder";      //From 20 to 35 add spaces so : is in line like it is now
-PROGMEM const char text4_21[] = "      Version: ";
-PROGMEM const char text4_22[] = "      ESP-IDF: ";
-PROGMEM const char text4_23[] = "   WSL Bypass: enabled\n";
-PROGMEM const char text4_24[] = "   WSL Bypass: disabled\n";
-PROGMEM const char text4_25[] = "  Station MAC: ";
-PROGMEM const char text4_26[] = "       AP MAC: ";
-PROGMEM const char text4_27[] = "     ";
-PROGMEM const char text4_28[] = "      SD Card: Connected";
-PROGMEM const char text4_29[] = " SD Card Size: ";
-PROGMEM const char text4_30[] = "      SD Card: Not Connected";
-PROGMEM const char text4_31[] = " SD Card Size: 0";
-PROGMEM const char text4_32[] = "   IP5306 I2C: supported";
-PROGMEM const char text4_33[] = "  Battery Lvl: ";
-PROGMEM const char text4_34[] = "   IP5306 I2C: not supported";
+PROGMEM const char text4_20[] = "Firmware: Marauder";      //From 20 to 35 add spaces so : is in line like it is now
+PROGMEM const char text4_21[] = "Version: ";
+PROGMEM const char text4_22[] = "ESP-IDF: ";
+PROGMEM const char text4_23[] = "WSL Bypass: enabled";
+PROGMEM const char text4_24[] = "WSL Bypass: disabled";
+PROGMEM const char text4_25[] = "Station MAC: ";
+PROGMEM const char text4_26[] = "AP MAC: ";
+PROGMEM const char text4_27[] = "";
+PROGMEM const char text4_28[] = "SD Card: Connected";
+PROGMEM const char text4_29[] = "SD Card Size: ";
+PROGMEM const char text4_30[] = "SD Card: Not Connected";
+PROGMEM const char text4_31[] = "SD Card Size: 0";
+PROGMEM const char text4_32[] = "IP5306 I2C: supported";
+PROGMEM const char text4_33[] = "Battery Lvl: ";
+PROGMEM const char text4_34[] = "IP5306 I2C: not supported";
 PROGMEM const char text4_35[] = "Internal temp: ";
 PROGMEM const char text4_35[] = "Internal temp: ";
 PROGMEM const char text4_36[] = " Detect Espressif ";
 PROGMEM const char text4_36[] = " Detect Espressif ";
 PROGMEM const char text4_37[] = " Detect Pwnagotchi ";
 PROGMEM const char text4_37[] = " Detect Pwnagotchi ";