#include <SPI.h>
#include <SD.h>
/*
Arduino Mega SDI pins:
https://forum.arduino.cc/t/sd-card-shield-configuration-on-arduino-mega-2560-rev3/161376/6$0
SPI // Mega
SS // 53
MOSI // 51
MISO // 50
SCK // 52
*/
const int chipSelect = 53;
File root;
String buffer;
String searchVal = "#I78X8OV5";
unsigned long CurrentTime;
unsigned long StartTime;
float ElapsedTime;
unsigned long LineCount = 0;
void setup() {
// init Serial comm
Serial.begin(9600);
// for raspi-logging protokoll, check if UART/Serial is there
while (!Serial);
// Check if SD-Card is there
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
// ERROR-HANDLING!
Serial.println("Error on SD-Card.");
while (true);
}
Serial.println("initialization done.");
root = SD.open("/");
printDirectory(root, 1);
Serial.println("done!");
}
void loop() {}
void printDirectory(File dir, int numTabs) {
while (true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
break;
}
for (uint8_t i = 0; i < numTabs; i++) {
Serial.print('\t');
}
Serial.println(entry.name());
StartTime = millis();
while (entry.available()) {
buffer = entry.readStringUntil('\n');
LineCount += 1;
StartTime = millis();
//Serial.println(buffer); //Printing for debugging purpose
if (buffer == searchVal){ // checking integer
Serial.println("found");
CurrentTime = millis();
ElapsedTime = CurrentTime - StartTime;
Serial.print("duration [s]:\t"); // prints a tab)
Serial.print(ElapsedTime);
Serial.print("\t on line:\t");
Serial.println(LineCount);
break;
}
}
entry.close();
}
}