EasyVR by Chad and Alty
This is code for the EasyVR module that is used with Lab 4.
easyvr.h@0:5d93573903ed, 2015-10-19 (annotated)
- Committer:
- cmiller86
- Date:
- Mon Oct 19 14:40:25 2015 +0000
- Revision:
- 0:5d93573903ed
- Child:
- 1:80db49d7e068
First commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cmiller86 | 0:5d93573903ed | 1 | #ifndef EASYVR_H_DEFINED |
cmiller86 | 0:5d93573903ed | 2 | #define EASYVR_H_DEFINED |
cmiller86 | 0:5d93573903ed | 3 | |
cmiller86 | 0:5d93573903ed | 4 | #include <mbed.h> |
cmiller86 | 0:5d93573903ed | 5 | |
cmiller86 | 0:5d93573903ed | 6 | #define ARG_MIN '@' |
cmiller86 | 0:5d93573903ed | 7 | #define ARG_MAX '`' |
cmiller86 | 0:5d93573903ed | 8 | #define ARG_ZERO 'A' |
cmiller86 | 0:5d93573903ed | 9 | #define ARG_ACK ' ' |
cmiller86 | 0:5d93573903ed | 10 | |
cmiller86 | 0:5d93573903ed | 11 | #define CMD_BREAK 'b' |
cmiller86 | 0:5d93573903ed | 12 | #define CMD_SLEEP 's' |
cmiller86 | 0:5d93573903ed | 13 | #define CMD_KNOB 'k' |
cmiller86 | 0:5d93573903ed | 14 | #define CMD_LEVEL 'v' |
cmiller86 | 0:5d93573903ed | 15 | #define CMD_LANGUAGE 'l' |
cmiller86 | 0:5d93573903ed | 16 | #define CMD_TIMEOUT 'o' |
cmiller86 | 0:5d93573903ed | 17 | #define CMD_RECOG_SI 'i' |
cmiller86 | 0:5d93573903ed | 18 | #define CMD_TRAIN_SD 't' |
cmiller86 | 0:5d93573903ed | 19 | #define CMD_GROUP_SD 'g' |
cmiller86 | 0:5d93573903ed | 20 | #define CMD_UNGROUP_SD 'u' |
cmiller86 | 0:5d93573903ed | 21 | #define CMD_RECOG_SD 'd' |
cmiller86 | 0:5d93573903ed | 22 | #define CMD_ERASE_SD 'e' |
cmiller86 | 0:5d93573903ed | 23 | #define CMD_NAME_SD 'n' |
cmiller86 | 0:5d93573903ed | 24 | #define CMD_COUNT_SD 'c' |
cmiller86 | 0:5d93573903ed | 25 | #define CMD_DUMP_SD 'p' |
cmiller86 | 0:5d93573903ed | 26 | #define CMD_MASK_SD 'm' |
cmiller86 | 0:5d93573903ed | 27 | #define CMD_RESETALL 'r' |
cmiller86 | 0:5d93573903ed | 28 | #define CMD_ID 'x' |
cmiller86 | 0:5d93573903ed | 29 | #define CMD_DELAY 'y' |
cmiller86 | 0:5d93573903ed | 30 | #define CMD_BAUDRATE 'a' |
cmiller86 | 0:5d93573903ed | 31 | #define CMD_QUERY_IO 'q' |
cmiller86 | 0:5d93573903ed | 32 | #define CMD_PLAY_SX 'w' |
cmiller86 | 0:5d93573903ed | 33 | #define CMD_DUMP_SX 'h' |
cmiller86 | 0:5d93573903ed | 34 | |
cmiller86 | 0:5d93573903ed | 35 | #define STS_MASK 'k' |
cmiller86 | 0:5d93573903ed | 36 | #define STS_COUNT 'c' |
cmiller86 | 0:5d93573903ed | 37 | #define STS_AWAKEN 'w' |
cmiller86 | 0:5d93573903ed | 38 | #define STS_DATA 'd' |
cmiller86 | 0:5d93573903ed | 39 | #define STS_ERROR 'e' |
cmiller86 | 0:5d93573903ed | 40 | #define STS_INVALID 'v' |
cmiller86 | 0:5d93573903ed | 41 | #define STS_TIMEOUT 't' |
cmiller86 | 0:5d93573903ed | 42 | #define STS_INTERR 'i' |
cmiller86 | 0:5d93573903ed | 43 | #define STS_SUCCESS 'o' |
cmiller86 | 0:5d93573903ed | 44 | #define STS_RESULT 'r' |
cmiller86 | 0:5d93573903ed | 45 | #define STS_SIMILAR 's' |
cmiller86 | 0:5d93573903ed | 46 | #define STS_OUT_OF_MEM 'm' |
cmiller86 | 0:5d93573903ed | 47 | #define STS_ID 'x' |
cmiller86 | 0:5d93573903ed | 48 | #define STS_PIN 'p' |
cmiller86 | 0:5d93573903ed | 49 | #define STS_TABLE_SX 'd' |
cmiller86 | 0:5d93573903ed | 50 | |
cmiller86 | 0:5d93573903ed | 51 | #define ERR_DATACOL_TOO_NOISY 0x3 |
cmiller86 | 0:5d93573903ed | 52 | #define ERR_DATACOL_TOO_SOFT 0x4 |
cmiller86 | 0:5d93573903ed | 53 | #define ERR_DATACOL_TOO_LOUD 0x5 |
cmiller86 | 0:5d93573903ed | 54 | #define ERR_DATACOL_TOO_SOON 0x6 |
cmiller86 | 0:5d93573903ed | 55 | #define ERR_DATACOL_TOO_CHOPPY 0x7 |
cmiller86 | 0:5d93573903ed | 56 | #define ERR_RECOG_FAIL 0x11 |
cmiller86 | 0:5d93573903ed | 57 | #define ERR_RECOG_LOW_CONF 0x12 |
cmiller86 | 0:5d93573903ed | 58 | #define ERR_RECOG_MID_CONF 0x13 |
cmiller86 | 0:5d93573903ed | 59 | #define ERR_RECOG_BAD_TEMPLATE 0x14 |
cmiller86 | 0:5d93573903ed | 60 | #define ERR_RECOG_DURATION 0x17 |
cmiller86 | 0:5d93573903ed | 61 | #define ERR_SYNTH_BAD_VERSION 0x4A |
cmiller86 | 0:5d93573903ed | 62 | #define ERR_SYNTH_BAD_MSG 0x4E |
cmiller86 | 0:5d93573903ed | 63 | #define ERR_NOT_A_WORD 0x80 |
cmiller86 | 0:5d93573903ed | 64 | |
cmiller86 | 0:5d93573903ed | 65 | #define i2a(i) ((char)((i)+ARG_ZERO)) |
cmiller86 | 0:5d93573903ed | 66 | #define a2i(a) ((int)((a)-ARG_ZERO)) |
cmiller86 | 0:5d93573903ed | 67 | |
cmiller86 | 0:5d93573903ed | 68 | extern Serial term; |
cmiller86 | 0:5d93573903ed | 69 | |
cmiller86 | 0:5d93573903ed | 70 | class EasyVR |
cmiller86 | 0:5d93573903ed | 71 | { |
cmiller86 | 0:5d93573903ed | 72 | public: |
cmiller86 | 0:5d93573903ed | 73 | EasyVR( PinName tx, PinName rx ); |
cmiller86 | 0:5d93573903ed | 74 | void wakeup(); |
cmiller86 | 0:5d93573903ed | 75 | void setup( int lang, int timeout ); |
cmiller86 | 0:5d93573903ed | 76 | void send( char byte ); |
cmiller86 | 0:5d93573903ed | 77 | char receive(); |
cmiller86 | 0:5d93573903ed | 78 | void baud( int rate ); |
cmiller86 | 0:5d93573903ed | 79 | |
cmiller86 | 0:5d93573903ed | 80 | private: |
cmiller86 | 0:5d93573903ed | 81 | Serial dev; |
cmiller86 | 0:5d93573903ed | 82 | }; |
cmiller86 | 0:5d93573903ed | 83 | |
cmiller86 | 0:5d93573903ed | 84 | #endif // EASYVR_H_DEFINED |