class for emic 2 speech synthesis module

Dependents:   Alexa_Text BAT_senior_design_Azra BAT_senior_design_Nhi BAT_senior_design_Test ... more

Committer:
4180_1
Date:
Wed Nov 25 03:24:16 2015 +0000
Revision:
0:b95ede38e19d
ver 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
4180_1 0:b95ede38e19d 1 #define speakf printf
4180_1 0:b95ede38e19d 2 class emic2 : public Stream
4180_1 0:b95ede38e19d 3 {
4180_1 0:b95ede38e19d 4 public :
4180_1 0:b95ede38e19d 5 emic2(PinName tx, PinName rx): _cmd(tx,rx) {
4180_1 0:b95ede38e19d 6 _cmd.baud(9600);
4180_1 0:b95ede38e19d 7 _cmd.putc('X'); //stop talking if reset and not a power on
4180_1 0:b95ede38e19d 8 _cmd.putc('\r'); // Send a CR in case the system is already up
4180_1 0:b95ede38e19d 9 wait(1); //delay for emic power on boot or reset respone
4180_1 0:b95ede38e19d 10 while (_cmd.getc() != ':'); // When the Emic 2 has initialized and is ready, it will send a single ':'
4180_1 0:b95ede38e19d 11 while (_cmd.readable()) _cmd.getc();//flush out buffer just in case
4180_1 0:b95ede38e19d 12 };
4180_1 0:b95ede38e19d 13 void ready() {
4180_1 0:b95ede38e19d 14 while (_cmd.getc() != ':');
4180_1 0:b95ede38e19d 15 while (_cmd.readable()) _cmd.getc();//flush out recieve buffer just in case
4180_1 0:b95ede38e19d 16 };
4180_1 0:b95ede38e19d 17 int readable() {
4180_1 0:b95ede38e19d 18 return _cmd.readable();
4180_1 0:b95ede38e19d 19 };
4180_1 0:b95ede38e19d 20 int getc() {
4180_1 0:b95ede38e19d 21 return _cmd.getc();
4180_1 0:b95ede38e19d 22 }
4180_1 0:b95ede38e19d 23 void volume(int x) {
4180_1 0:b95ede38e19d 24 speakf("V%D\r",x);
4180_1 0:b95ede38e19d 25 ready();
4180_1 0:b95ede38e19d 26 }
4180_1 0:b95ede38e19d 27 void voice(int x) {
4180_1 0:b95ede38e19d 28 speakf("N%D\r",x);
4180_1 0:b95ede38e19d 29 ready();
4180_1 0:b95ede38e19d 30 }
4180_1 0:b95ede38e19d 31 protected :
4180_1 0:b95ede38e19d 32 Serial _cmd;
4180_1 0:b95ede38e19d 33 //used by printf - supply it and printf works!
4180_1 0:b95ede38e19d 34 virtual int _putc(int c) {
4180_1 0:b95ede38e19d 35 _cmd.putc(c);
4180_1 0:b95ede38e19d 36 return 0;
4180_1 0:b95ede38e19d 37 };
4180_1 0:b95ede38e19d 38 virtual int _getc() {
4180_1 0:b95ede38e19d 39 return -1;
4180_1 0:b95ede38e19d 40 };
4180_1 0:b95ede38e19d 41 };