EasyVR by Chad and Alty

Dependents:   Lab4

This is code for the EasyVR module that is used with Lab 4.

Committer:
cmiller86
Date:
Mon Oct 19 15:15:55 2015 +0000
Revision:
1:80db49d7e068
Parent:
0:5d93573903ed
EasyVR library for use with ECE 4180 lab 4.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cmiller86 0:5d93573903ed 1 #include <easyvr.h>
cmiller86 0:5d93573903ed 2
cmiller86 0:5d93573903ed 3 EasyVR::EasyVR( PinName tx, PinName rx ) : dev( tx, rx )
cmiller86 0:5d93573903ed 4 {
cmiller86 0:5d93573903ed 5 // Nothing
cmiller86 0:5d93573903ed 6 }
cmiller86 0:5d93573903ed 7
cmiller86 0:5d93573903ed 8 void EasyVR::wakeup()
cmiller86 0:5d93573903ed 9 {
cmiller86 0:5d93573903ed 10 do
cmiller86 0:5d93573903ed 11 {
cmiller86 0:5d93573903ed 12 send( CMD_BREAK );
cmiller86 0:5d93573903ed 13 wait( 0.2 );
cmiller86 0:5d93573903ed 14 } while( receive() != STS_SUCCESS );
cmiller86 0:5d93573903ed 15 }
cmiller86 0:5d93573903ed 16
cmiller86 0:5d93573903ed 17 void EasyVR::setup( int lang, int timeout )
cmiller86 0:5d93573903ed 18 {
cmiller86 0:5d93573903ed 19 char err;
cmiller86 0:5d93573903ed 20
cmiller86 0:5d93573903ed 21 send( CMD_ID );
cmiller86 0:5d93573903ed 22
cmiller86 0:5d93573903ed 23 if( ( err = receive() ) != STS_ID )
cmiller86 0:5d93573903ed 24 term.printf( "(in setup() line %d) Error: %c\r\n", __LINE__, err );
cmiller86 0:5d93573903ed 25
cmiller86 0:5d93573903ed 26 send( ARG_ACK );
cmiller86 0:5d93573903ed 27
cmiller86 0:5d93573903ed 28 switch( a2i( err = receive() ) )
cmiller86 0:5d93573903ed 29 {
cmiller86 0:5d93573903ed 30 case 0:
cmiller86 0:5d93573903ed 31 term.printf( "VRbot detected\r\n" );
cmiller86 0:5d93573903ed 32 break;
cmiller86 0:5d93573903ed 33 case 1:
cmiller86 0:5d93573903ed 34 term.printf( "EasyVR detected\r\n" );
cmiller86 0:5d93573903ed 35 break;
cmiller86 0:5d93573903ed 36 default:
cmiller86 0:5d93573903ed 37 term.printf( "(in setup() line %d) Error: %c\r\n", __LINE__, err );
cmiller86 0:5d93573903ed 38 break;
cmiller86 0:5d93573903ed 39 }
cmiller86 0:5d93573903ed 40
cmiller86 0:5d93573903ed 41 send( CMD_LANGUAGE );
cmiller86 0:5d93573903ed 42 send( i2a( lang ) );
cmiller86 0:5d93573903ed 43
cmiller86 0:5d93573903ed 44 if( ( err = receive() ) != STS_SUCCESS )
cmiller86 0:5d93573903ed 45 term.printf( "(in setup() line %d) Error: %c\r\n", __LINE__, err );
cmiller86 0:5d93573903ed 46
cmiller86 0:5d93573903ed 47 send( CMD_TIMEOUT );
cmiller86 0:5d93573903ed 48 send( i2a( timeout ) );
cmiller86 0:5d93573903ed 49
cmiller86 0:5d93573903ed 50 if( ( err = receive() ) != STS_SUCCESS )
cmiller86 0:5d93573903ed 51 term.printf( "(in setup() line %d) Error: %c\r\n", __LINE__, err );
cmiller86 0:5d93573903ed 52 }
cmiller86 0:5d93573903ed 53
cmiller86 0:5d93573903ed 54 void EasyVR::send( char byte )
cmiller86 0:5d93573903ed 55 {
cmiller86 0:5d93573903ed 56 dev.putc( byte );
cmiller86 0:5d93573903ed 57 }
cmiller86 0:5d93573903ed 58
cmiller86 0:5d93573903ed 59 char EasyVR::receive()
cmiller86 0:5d93573903ed 60 {
cmiller86 0:5d93573903ed 61 return dev.getc();
cmiller86 0:5d93573903ed 62 }
cmiller86 0:5d93573903ed 63
cmiller86 0:5d93573903ed 64 void EasyVR::baud( int rate )
cmiller86 0:5d93573903ed 65 {
cmiller86 0:5d93573903ed 66 dev.baud( rate );
cmiller86 0:5d93573903ed 67 }