Settings actually work

This commit is contained in:
Just Call Me Koko
2022-01-18 23:20:42 -05:00
parent 8e874c493b
commit 71ced23041
5 changed files with 2962 additions and 2923 deletions

View File

@@ -1,41 +1,44 @@
#ifndef Buffer_h #ifndef Buffer_h
#define Buffer_h #define Buffer_h
#include "Arduino.h" #include "Arduino.h"
#include "FS.h" #include "FS.h"
//#include "SD_MMC.h" #include "settings.h"
//#include "SD_MMC.h"
#define BUF_SIZE 3 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
#define SNAP_LEN 2324 // max len of each recieved packet #define BUF_SIZE 3 * 1024 // Had to reduce buffer size to save RAM. GG @spacehuhn
#define SNAP_LEN 2324 // max len of each recieved packet
//extern bool useSD;
//extern bool useSD;
class Buffer {
public: extern Settings settings_obj;
Buffer();
void open(fs::FS* fs, String fn = ""); class Buffer {
void close(fs::FS* fs); public:
void addPacket(uint8_t* buf, uint32_t len); Buffer();
void save(fs::FS* fs); void open(fs::FS* fs, String fn = "");
void forceSave(fs::FS* fs); void close(fs::FS* fs);
private: void addPacket(uint8_t* buf, uint32_t len);
void write(int32_t n); void save(fs::FS* fs);
void write(uint32_t n); void forceSave(fs::FS* fs);
void write(uint16_t n); private:
void write(uint8_t* buf, uint32_t len); void write(int32_t n);
void write(uint32_t n);
uint8_t* bufA; void write(uint16_t n);
uint8_t* bufB; void write(uint8_t* buf, uint32_t len);
uint32_t bufSizeA = 0; uint8_t* bufA;
uint32_t bufSizeB = 0; uint8_t* bufB;
bool writing = false; // acceppting writes to buffer uint32_t bufSizeA = 0;
bool useA = true; // writing to bufA or bufB uint32_t bufSizeB = 0;
bool saving = false; // currently saving onto the SD card
bool writing = false; // acceppting writes to buffer
String fileName = "/0.pcap"; bool useA = true; // writing to bufA or bufB
File file; bool saving = false; // currently saving onto the SD card
};
String fileName = "/0.pcap";
#endif File file;
};
#endif

View File

@@ -131,7 +131,7 @@ class Display
TFT_eSPI tft = TFT_eSPI(); TFT_eSPI tft = TFT_eSPI();
TFT_eSprite img = TFT_eSprite(&tft); TFT_eSprite img = TFT_eSprite(&tft);
TFT_eSPI_Button key[BUTTON_ARRAY_LEN]; TFT_eSPI_Button key[BUTTON_ARRAY_LEN];
const String PROGMEM version_number = "v0.9.4"; const String PROGMEM version_number = "v0.9.5";
bool printing = false; bool printing = false;
bool loading = false; bool loading = false;

View File

@@ -1212,24 +1212,33 @@ String MenuFunctions::callSetting(String key) {
} }
} }
void MenuFunctions::displaySetting(String key) { void MenuFunctions::displaySetting(String key, Menu* menu, int index) {
specSettingMenu.name = key; specSettingMenu.name = key;
bool setting_value = settings_obj.loadSetting<bool>(key); bool setting_value = settings_obj.loadSetting<bool>(key);
// Make a local copy of menu node
MenuNode node = menu->list->get(index);
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);
display_obj.tft.setTextSize(1); display_obj.tft.setTextSize(1);
// Set local copy value
if (!setting_value) { if (!setting_value) {
display_obj.tft.setTextColor(TFT_RED); display_obj.tft.setTextColor(TFT_RED);
display_obj.tft.println(F("Setting disabled")); display_obj.tft.println(F("Setting disabled"));
node.selected = false;
} }
else { else {
display_obj.tft.setTextColor(TFT_GREEN); display_obj.tft.setTextColor(TFT_GREEN);
display_obj.tft.println(F("Setting on")); display_obj.tft.println(F("Setting on"));
node.selected = true;
} }
// Put local copy back into menu
menu->list->set(index, node);
} }
@@ -1598,7 +1607,7 @@ void MenuFunctions::RunSetup()
settings_obj.toggleSetting(settings_obj.setting_index_to_name(i)); settings_obj.toggleSetting(settings_obj.setting_index_to_name(i));
changeMenu(&specSettingMenu); changeMenu(&specSettingMenu);
//this->callSetting(settings_obj.setting_index_to_name(i)); //this->callSetting(settings_obj.setting_index_to_name(i));
this->displaySetting(settings_obj.setting_index_to_name(i)); this->displaySetting(settings_obj.setting_index_to_name(i), &settingsMenu, i + 1);
}, settings_obj.loadSetting<bool>(settings_obj.setting_index_to_name(i))); }, settings_obj.loadSetting<bool>(settings_obj.setting_index_to_name(i)));
} }
@@ -1771,10 +1780,10 @@ void MenuFunctions::displayCurrentMenu()
//display_obj.key[i].drawButton2(current_menu->list->get(i).name); //display_obj.key[i].drawButton2(current_menu->list->get(i).name);
//display_obj.key[i].drawButton(ML_DATUM, BUTTON_PADDING, current_menu->list->get(i).name); //display_obj.key[i].drawButton(ML_DATUM, BUTTON_PADDING, current_menu->list->get(i).name);
//display_obj.key[i].drawButton(true); //display_obj.key[i].drawButton(true);
//if (!current_menu->list->get(i).selected) if (!current_menu->list->get(i).selected)
display_obj.key[i].drawButton(false, current_menu->list->get(i).name); display_obj.key[i].drawButton(false, current_menu->list->get(i).name);
//else else
// display_obj.key[i].drawButton(true, current_menu->list->get(i).name); display_obj.key[i].drawButton(true, current_menu->list->get(i).name);
if (current_menu->list->get(i).name != "Back") if (current_menu->list->get(i).name != "Back")
display_obj.tft.drawXBitmap(0, display_obj.tft.drawXBitmap(0,

View File

@@ -182,7 +182,7 @@ class MenuFunctions
void showMenuList(Menu* menu, int layer); void showMenuList(Menu* menu, int layer);
String callSetting(String key); String callSetting(String key);
void runBoolSetting(String ley); void runBoolSetting(String ley);
void displaySetting(String key); void displaySetting(String key, Menu* menu, int index);
public: public:
MenuFunctions(); MenuFunctions();

File diff suppressed because it is too large Load Diff