#include <SD.h>
#include <SDConfig.h>
#include "FS.h"
#define SD_CS 5
#define SPI_MOSI 23
#define SPI_MISO 19
#define SPI_SCK 18
unsigned long hexValue = 0xE227568C;
char asciiHexString[9];
String tag_string; //= "E227568C,52C7568C,14CB27AC,6435CDAB,E46928AC,948DFDAB,F400FCAB,0492FBAB,A46420AC";
String mp3_string; //= "01.mp3,02.mp3,03.mp3,04.mp3,05.mp3,06.mp3,07.mp3,08.mp3,09.mp3";
int i;
#define LINELENGTH 127
char configFile[] = "/config.txt"; // filename
char *wifi_ssid = 0;
char *wifi_pwd = 0;
char *tag_string = 0;
char *mp3_string = 0;
char *tekst;
void setup() {
Serial.begin(9600);
SPI.begin();
if (!SD.begin(SD_CS, SPI)){
Serial.println("Card Mount Failed");
while (1);
}
else { Serial.println("SD OK"); }
}
void loop() {
if (readConfiguration() == false ) {
return;
}
convertAndStoreAsciiHex(hexValue, asciiHexString);
Serial.println(asciiHexString); // Print the result
i = tag_string.indexOf(asciiHexString);
if ( i != 0 ) i= (i/9)*7;
Serial.println(i);
Serial.println(mp3_string.substring(i,i+6));
while(1);
}
void convertAndStoreAsciiHex(unsigned long hexValue, char *result) {
result[0] = '\0';
for (int i = 3; i >= 0; i--) {
byte hexByte = (hexValue >> (i * 8)) & 0xFF;
sprintf(result, "%s%02X", result, hexByte);
}
}
boolean readConfiguration() {
SDConfig cfg;
// Open the configuration file.
if (!cfg.begin(configFile, LINELENGTH)) {
Serial.print("Failed to open configuration file: ");
Serial.println(configFile);
return false;
}
// Read each setting from the file.
while (cfg.readNextSetting()) {
if (cfg.nameIs("ssid")) {
wifi_ssid = cfg.copyValue();
Serial.print("Read ssid: ");
Serial.println(wifi_ssid);
} else if (cfg.nameIs("password")) {
wifi_pwd = cfg.copyValue();
Serial.print("Read password: ");
Serial.println(wifi_pwd);
} else if (cfg.nameIs("tag_array")) {
tag_string = cfg.copyValue();
Serial.print("Read tag string: ");
Serial.println(tag_string);
} else if (cfg.nameIs("mp3_array")) {
mp3_string = cfg.copyValue();
Serial.print("Read mp3 string: ");
Serial.println(mp3_string);
} else {
// report unrecognized names.
Serial.print("Unknown name in config: ");
Serial.println(cfg.getName());
}
}
// clean up
cfg.end();
return true;
}