#define ENTRIES 30
#define BUFFER_SIZE 512
char buffer[BUFFER_SIZE];
String entries[ENTRIES] = { "" };
bool done = false;
String randStr(int len) {
String output = "";
for (int i=0; i<len; i++) {
char c = random(32, 126);
output += c;
}
return output;
}
void setup() {
Serial1.begin(115200);
Serial1.println("");
buffer[0] = '\0';
char tmp[6] = {'\0'};
for (int nt = 0; nt < ENTRIES; nt++) {
sprintf(tmp, "%02d:|||||||||||||||||||||||\n", (nt+1));
strcat(buffer, tmp);
}
Serial1.println(buffer);
/*
for (int nt = 0; nt < ENTRIES; nt++) {
sprintf(tmp, "%02d=$|", (nt+1));
strcat(buffer, tmp);
for (int ln = 0; ln < 24; ln++) {
sprintf(tmp, "%02d\\$|", ((ln+6)%24));
strcat(buffer, tmp);
}
strcat(buffer,"\n");
}
Serial1.println("BUF:");
Serial1.println(buffer);
while (1);
*/
/*
String output = "";
for (int nt = 0; nt < ENTRIES; nt++) {
output += ((i < 9)?"0":"")+String(i+1)+":";
for (int ln = 0; ln < 24; ln++) {
char tm[6] = {'\0'};
int clk = (ln+6)%24;
Serial1.print("clk: ");
Serial1.println(clk);
sprintf(line, "%02d:00", ln);
}
}
*/
//for (int i = 0; i<ENTRIES; i++) entries[i] = ((i < 9)?"0":"")+String(i+1)+":";
}
void checkData() {
String output = "";
for (int i = 0; i<ENTRIES; i++) {
if (entries[i].length())
output += entries[i]+"\n";
//Serial1.print(i); Serial1.print(" -> len: "); Serial1.println(entries[i].length())
}
Serial1.print("DATA (len: ");
Serial1.print(output.length());
Serial1.println("):'");
Serial1.print(output);
Serial1.println("'\n");
}
void loop() {
String s, n;
int index = 0;
while (!Serial1.available()) delay(1);
s = Serial1.readStringUntil('\n');
s.trim();
if (s.startsWith("EXIT")) {
checkData();
done = true;
}
else {
n = s.substring(0,s.indexOf(' '));
s = s.substring(s.indexOf(' ')+1, s.length());
index = n.toInt();
if (index >= 0 && index < ENTRIES) {
if (!done) { // WRITE MODE
if (s.length()) {
n = entries[index];
entries[index] = (
((index < 9)?"0":"") +
String(index+1) + ":" +
n.substring(n.indexOf(':')+1, n.length()) +
s + "|");
}
Serial1.print(index); Serial1.print(" -> "); Serial1.println(entries[index]); Serial1.println();
}
else { // READ MODE
int i = 0;
n = entries[index];
n = n.substring(n.indexOf(':')+1, n.length());
Serial1.print(index); Serial1.print(" -> "); Serial1.println(n);
while (n.indexOf('|') != -1) {
Serial1.print("> ");
Serial1.println(n.substring(0, n.indexOf('|')));
n = n.substring(n.indexOf('|')+1, n.length());
}
}
}
}
delay(1);
}