// https://stackoverflow.com/questions/4014827/how-can-i-compare-strings-in-c-using-a-switch-statement
#define LS 5862500
#define CD 5862188
#define MKDIR 228239964
#define PWD 193467056
const unsigned long hash(const char *str) {
unsigned long hash = 5381;
int c;
while ((c = *str++))
hash = ((hash << 5) + hash) + c;
return hash;
}
void parseInput(const String& input) {
unsigned long hashed = hash(input.c_str());
Serial.println(hashed);
switch (hashed) {
case LS:
Serial.println("Running ls...");
break;
case CD:
Serial.println("Running cd...");
break;
case MKDIR:
Serial.println("Running mkdir...");
break;
case PWD:
Serial.println("Running pwd...");
break;
default:
Serial.println("Not a valid command.");
}
}
void setup() {
Serial.begin(115200);
Serial.println("Type a command: ");
}
void loop() {
if (Serial.available()) {
String msg = Serial.readStringUntil('\n');
parseInput(msg);
}
}