const byte STX = 0x02; const byte ETX = 0x03; char RXMSG[10]; char VER[3]; char MSG[3]; int i = 0; char iwillplay[5]; char iwillrecord[5]; void setup() { Serial.begin(9600); Serial.print("e-Gizmo Voice recorder software version: "); Serial.println(swversion()); Serial.print("Current number of messages: "); Serial.println(msg_number()); resets(); delay(5000); Serial.println("Begin recording!"); record(); stops(3000); Serial.println("Now playing."); play(1); delay(3000); stops(10); Serial.println("Test succesful"); } void loop() { } void stops(int stopper) { delay(stopper); Serial1.write(STX); Serial1.write("S"); Serial1.write(ETX); rxread(); rxclear(); } void resets() { Serial1.write(STX); Serial1.write("X"); Serial1.write(ETX); rxread(); rxclear(); if(msg_number() == 0) { Serial.println("All recordings removed!"); } } String swversion() { Serial1.write(STX); Serial1.write("V"); Serial1.write(ETX); delay(100); rxread(); for(int i = 0; i<= 3; i++) { VER[i] = RXMSG[i]; } delay(50); String swversion(VER); return swversion; rxclear(); } int msg_number() { Serial1.write(STX); Serial1.write("M"); Serial1.write(ETX); delay(100); rxread(); for(int i =1; i<=3; i++) { MSG[i] = RXMSG[i]; } delay(50); String msg(MSG); int number = msg.toInt(); return number; rxclear(); } void play(int number) { itoa(number,iwillplay,5); Serial1.write(STX); Serial1.write("P"); Serial1.write(iwillplay); Serial1.write(ETX); rxread(); delay(50); rxclear(); } void recordover(int number) { itoa(number,iwillrecord,5); Serial1.write(STX); Serial1.write("R"); Serial1.write(iwillrecord); Serial1.write(ETX); rxread(); delay(50); rxclear(); } void record() { Serial1.write(STX); Serial1.write("R"); Serial1.write(ETX); rxread(); delay(50); rxclear(); } void rxread() { i = 0; while (Serial1.available()) { RXMSG[i] = (char)Serial1.read(); i++; } } void rxclear() { for(int i = 0; i<= 10; i++) { RXMSG[i] = 0; } }