mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2025-12-22 15:16:43 -08:00
fixup preprocessor directives
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
#ifdef HAS_SD
|
||||
#include "SDInterface.h"
|
||||
#include "lang_var.h"
|
||||
|
||||
#include "SDInterface.h"
|
||||
#include "lang_var.h"
|
||||
|
||||
bool SDInterface::initSD() {
|
||||
bool SDInterface::initSD() {
|
||||
#ifdef HAS_SD
|
||||
String display_string = "";
|
||||
|
||||
|
||||
#ifdef KIT
|
||||
pinMode(SD_DET, INPUT);
|
||||
if (digitalRead(SD_DET) == LOW) {
|
||||
@@ -17,11 +16,11 @@
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
pinMode(SD_CS, OUTPUT);
|
||||
|
||||
|
||||
delay(10);
|
||||
|
||||
|
||||
if (!SD.begin(SD_CS)) {
|
||||
Serial.println(F("Failed to mount SD Card"));
|
||||
this->supported = false;
|
||||
@@ -38,221 +37,224 @@
|
||||
// Serial.println(F("SD: SDHC Mounted"));
|
||||
//else
|
||||
// Serial.println(F("SD: UNKNOWN Card Mounted"));
|
||||
|
||||
|
||||
this->cardSizeMB = SD.cardSize() / (1024 * 1024);
|
||||
|
||||
|
||||
//Serial.printf("SD Card Size: %lluMB\n", this->cardSizeMB);
|
||||
|
||||
|
||||
if (this->supported) {
|
||||
const int NUM_DIGITS = log10(this->cardSizeMB) + 1;
|
||||
|
||||
|
||||
char sz[NUM_DIGITS + 1];
|
||||
|
||||
|
||||
sz[NUM_DIGITS] = 0;
|
||||
for ( size_t i = NUM_DIGITS; i--; this->cardSizeMB /= 10)
|
||||
{
|
||||
sz[i] = '0' + (this->cardSizeMB % 10);
|
||||
display_string.concat((String)sz[i]);
|
||||
}
|
||||
|
||||
|
||||
this->card_sz = sz;
|
||||
}
|
||||
|
||||
|
||||
buffer_obj = Buffer();
|
||||
|
||||
|
||||
if (!SD.exists("/SCRIPTS")) {
|
||||
Serial.println("/SCRIPTS does not exist. Creating...");
|
||||
|
||||
|
||||
SD.mkdir("/SCRIPTS");
|
||||
Serial.println("/SCRIPTS created");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::listDir(String str_dir){
|
||||
if (this->supported) {
|
||||
File dir = SD.open(str_dir);
|
||||
while (true)
|
||||
{
|
||||
File entry = dir.openNextFile();
|
||||
if (! entry)
|
||||
{
|
||||
break;
|
||||
}
|
||||
//for (uint8_t i = 0; i < numTabs; i++)
|
||||
//{
|
||||
// Serial.print('\t');
|
||||
//}
|
||||
Serial.print(entry.name());
|
||||
Serial.print("\t");
|
||||
Serial.println(entry.size());
|
||||
entry.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::addPacket(uint8_t* buf, uint32_t len) {
|
||||
if ((this->supported) && (this->do_save)) {
|
||||
buffer_obj.addPacket(buf, len);
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::openCapture(String file_name) {
|
||||
bool save_pcap = settings_obj.loadSetting<bool>("SavePCAP");
|
||||
if ((this->supported) && (save_pcap)) {
|
||||
buffer_obj.createPcapFile(&SD, file_name);
|
||||
buffer_obj.open();
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::runUpdate() {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextWrap(false);
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
display_obj.tft.setCursor(0, 100);
|
||||
display_obj.tft.setTextSize(1);
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
|
||||
display_obj.tft.println(F(text15));
|
||||
#endif
|
||||
File updateBin = SD.open("/update.bin");
|
||||
if (updateBin) {
|
||||
if(updateBin.isDirectory()){
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(F(text_table2[0]));
|
||||
#endif
|
||||
Serial.println(F("Error, could not find \"update.bin\""));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
updateBin.close();
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
#else
|
||||
Serial.println("SD support disabled, skipping init");
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
void SDInterface::listDir(String str_dir){
|
||||
if (this->supported) {
|
||||
File dir = SD.open(str_dir);
|
||||
while (true)
|
||||
{
|
||||
File entry = dir.openNextFile();
|
||||
if (! entry)
|
||||
{
|
||||
break;
|
||||
}
|
||||
//for (uint8_t i = 0; i < numTabs; i++)
|
||||
//{
|
||||
// Serial.print('\t');
|
||||
//}
|
||||
Serial.print(entry.name());
|
||||
Serial.print("\t");
|
||||
Serial.println(entry.size());
|
||||
entry.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::addPacket(uint8_t* buf, uint32_t len) {
|
||||
if ((this->supported) && (this->do_save)) {
|
||||
buffer_obj.addPacket(buf, len);
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::openCapture(String file_name) {
|
||||
bool save_pcap = settings_obj.loadSetting<bool>("SavePCAP");
|
||||
if ((this->supported) && (save_pcap)) {
|
||||
buffer_obj.createPcapFile(&SD, file_name);
|
||||
buffer_obj.open();
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::runUpdate() {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextWrap(false);
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
display_obj.tft.setCursor(0, 100);
|
||||
display_obj.tft.setTextSize(1);
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
|
||||
size_t updateSize = updateBin.size();
|
||||
|
||||
if (updateSize > 0) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table2[1]));
|
||||
#endif
|
||||
Serial.println(F("Starting update over SD. Please wait..."));
|
||||
this->performUpdate(updateBin, updateSize);
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(F(text_table2[2]));
|
||||
#endif
|
||||
Serial.println(F("Error, file is empty"));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
updateBin.close();
|
||||
|
||||
// whe finished remove the binary from sd card to indicate end of the process
|
||||
display_obj.tft.println(F(text15));
|
||||
#endif
|
||||
File updateBin = SD.open("/update.bin");
|
||||
if (updateBin) {
|
||||
if(updateBin.isDirectory()){
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table2[3]));
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(F(text_table2[0]));
|
||||
#endif
|
||||
Serial.println(F("rebooting..."));
|
||||
//SD.remove("/update.bin");
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
Serial.println(F("Error, could not find \"update.bin\""));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
updateBin.close();
|
||||
return;
|
||||
}
|
||||
|
||||
size_t updateSize = updateBin.size();
|
||||
|
||||
if (updateSize > 0) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table2[1]));
|
||||
#endif
|
||||
Serial.println(F("Starting update over SD. Please wait..."));
|
||||
this->performUpdate(updateBin, updateSize);
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(F(text_table2[4]));
|
||||
display_obj.tft.println(F(text_table2[2]));
|
||||
#endif
|
||||
Serial.println(F("Could not load update.bin from sd root"));
|
||||
Serial.println(F("Error, file is empty"));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::performUpdate(Stream &updateSource, size_t updateSize) {
|
||||
if (Update.begin(updateSize)) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[5] + String(updateSize));
|
||||
display_obj.tft.println(F(text_table2[6]));
|
||||
#endif
|
||||
size_t written = Update.writeStream(updateSource);
|
||||
if (written == updateSize) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[7] + String(written) + text_table2[10]);
|
||||
#endif
|
||||
Serial.println("Written : " + String(written) + " successfully");
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[8] + String(written) + "/" + String(updateSize) + text_table2[9]);
|
||||
#endif
|
||||
Serial.println("Written only : " + String(written) + "/" + String(updateSize) + ". Retry?");
|
||||
}
|
||||
if (Update.end()) {
|
||||
Serial.println("OTA done!");
|
||||
if (Update.isFinished()) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table2[11]));
|
||||
#endif
|
||||
Serial.println(F("Update successfully completed. Rebooting."));
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(text_table2[12]);
|
||||
#endif
|
||||
Serial.println("Update not finished? Something went wrong!");
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[13] + String(Update.getError()));
|
||||
#endif
|
||||
Serial.println("Error Occurred. Error #: " + String(Update.getError()));
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[14]);
|
||||
#endif
|
||||
Serial.println("Not enough space to begin OTA");
|
||||
}
|
||||
}
|
||||
|
||||
bool SDInterface::checkDetectPin() {
|
||||
#ifdef KIT
|
||||
if (digitalRead(SD_DET) == LOW)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void SDInterface::main() {
|
||||
if ((this->supported) && (this->do_save)) {
|
||||
//Serial.println("Saving packet...");
|
||||
buffer_obj.forceSave(&SD);
|
||||
}
|
||||
else if (!this->supported) {
|
||||
if (checkDetectPin()) {
|
||||
delay(100);
|
||||
this->initSD();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
updateBin.close();
|
||||
|
||||
// whe finished remove the binary from sd card to indicate end of the process
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table2[3]));
|
||||
#endif
|
||||
Serial.println(F("rebooting..."));
|
||||
//SD.remove("/update.bin");
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(F(text_table2[4]));
|
||||
#endif
|
||||
Serial.println(F("Could not load update.bin from sd root"));
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void SDInterface::performUpdate(Stream &updateSource, size_t updateSize) {
|
||||
if (Update.begin(updateSize)) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[5] + String(updateSize));
|
||||
display_obj.tft.println(F(text_table2[6]));
|
||||
#endif
|
||||
size_t written = Update.writeStream(updateSource);
|
||||
if (written == updateSize) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[7] + String(written) + text_table2[10]);
|
||||
#endif
|
||||
Serial.println("Written : " + String(written) + " successfully");
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[8] + String(written) + "/" + String(updateSize) + text_table2[9]);
|
||||
#endif
|
||||
Serial.println("Written only : " + String(written) + "/" + String(updateSize) + ". Retry?");
|
||||
}
|
||||
if (Update.end()) {
|
||||
Serial.println("OTA done!");
|
||||
if (Update.isFinished()) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table2[11]));
|
||||
#endif
|
||||
Serial.println(F("Update successfully completed. Rebooting."));
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED);
|
||||
display_obj.tft.println(text_table2[12]);
|
||||
#endif
|
||||
Serial.println("Update not finished? Something went wrong!");
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[13] + String(Update.getError()));
|
||||
#endif
|
||||
Serial.println("Error Occurred. Error #: " + String(Update.getError()));
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(text_table2[14]);
|
||||
#endif
|
||||
Serial.println("Not enough space to begin OTA");
|
||||
}
|
||||
}
|
||||
|
||||
bool SDInterface::checkDetectPin() {
|
||||
#ifdef KIT
|
||||
if (digitalRead(SD_DET) == LOW)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void SDInterface::main() {
|
||||
if ((this->supported) && (this->do_save)) {
|
||||
//Serial.println("Saving packet...");
|
||||
buffer_obj.forceSave(&SD);
|
||||
}
|
||||
else if (!this->supported) {
|
||||
if (checkDetectPin()) {
|
||||
delay(100);
|
||||
this->initSD();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user