Add to 11U68 11E68

Dependencies:   DirectoryList MODSERIAL mbed

Fork of ika_shouyu_poppoyaki by Tedd OKANO

Committer:
okano
Date:
Fri Sep 13 03:09:09 2013 +0000
Revision:
21:e149d0bdbf4a
"command_utilities" module made

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okano 21:e149d0bdbf4a 1 #include "mbed.h"
okano 21:e149d0bdbf4a 2 #include "command_utilities.h"
okano 21:e149d0bdbf4a 3 #include "ika.h"
okano 21:e149d0bdbf4a 4
okano 21:e149d0bdbf4a 5 Serial pc ( USBTX,USBRX );
okano 21:e149d0bdbf4a 6
okano 21:e149d0bdbf4a 7 #if 0
okano 21:e149d0bdbf4a 8 Serial target( p28, p27 );
okano 21:e149d0bdbf4a 9 #else
okano 21:e149d0bdbf4a 10 #define MODSERIAL_DEFAULT_RX_BUFFER_SIZE 512
okano 21:e149d0bdbf4a 11 #define MODSERIAL_DEFAULT_TX_BUFFER_SIZE 512
okano 21:e149d0bdbf4a 12 #include "MODSERIAL.h"
okano 21:e149d0bdbf4a 13 MODSERIAL target( p28, p27 ); //
okano 21:e149d0bdbf4a 14 #endif
okano 21:e149d0bdbf4a 15
okano 21:e149d0bdbf4a 16 void set_target_baud_rate( int baud_rate )
okano 21:e149d0bdbf4a 17 {
okano 21:e149d0bdbf4a 18 target.baud( baud_rate );
okano 21:e149d0bdbf4a 19 }
okano 21:e149d0bdbf4a 20
okano 21:e149d0bdbf4a 21
okano 21:e149d0bdbf4a 22 void usb_serial_bridge_operation( void )
okano 21:e149d0bdbf4a 23 {
okano 21:e149d0bdbf4a 24 while (1) {
okano 21:e149d0bdbf4a 25
okano 21:e149d0bdbf4a 26 if ( pc.readable() ) {
okano 21:e149d0bdbf4a 27 target.putc( pc.getc() );
okano 21:e149d0bdbf4a 28 }
okano 21:e149d0bdbf4a 29
okano 21:e149d0bdbf4a 30 if ( target.readable() ) {
okano 21:e149d0bdbf4a 31 pc.putc( target.getc() );
okano 21:e149d0bdbf4a 32 }
okano 21:e149d0bdbf4a 33 }
okano 21:e149d0bdbf4a 34 }
okano 21:e149d0bdbf4a 35
okano 21:e149d0bdbf4a 36
okano 21:e149d0bdbf4a 37 void put_string( char *s )
okano 21:e149d0bdbf4a 38 {
okano 21:e149d0bdbf4a 39 char c;
okano 21:e149d0bdbf4a 40 static int i = 0;
okano 21:e149d0bdbf4a 41
okano 21:e149d0bdbf4a 42 while ( c = *s++ ) {
okano 21:e149d0bdbf4a 43 target.putc( c );
okano 21:e149d0bdbf4a 44 set_leds( i++ & 0x1 );
okano 21:e149d0bdbf4a 45 }
okano 21:e149d0bdbf4a 46 }
okano 21:e149d0bdbf4a 47
okano 21:e149d0bdbf4a 48
okano 21:e149d0bdbf4a 49 void put_binary( char *b, int size )
okano 21:e149d0bdbf4a 50 {
okano 21:e149d0bdbf4a 51 for ( int i = 0; i < size; i++ )
okano 21:e149d0bdbf4a 52 target.putc( *b++ );
okano 21:e149d0bdbf4a 53 }
okano 21:e149d0bdbf4a 54
okano 21:e149d0bdbf4a 55
okano 21:e149d0bdbf4a 56 Timeout timeout;
okano 21:e149d0bdbf4a 57
okano 21:e149d0bdbf4a 58 int timeout_flag = 0;
okano 21:e149d0bdbf4a 59
okano 21:e149d0bdbf4a 60 void set_flag()
okano 21:e149d0bdbf4a 61 {
okano 21:e149d0bdbf4a 62 timeout_flag = 1;
okano 21:e149d0bdbf4a 63 }
okano 21:e149d0bdbf4a 64
okano 21:e149d0bdbf4a 65
okano 21:e149d0bdbf4a 66 void get_string( char *s )
okano 21:e149d0bdbf4a 67 {
okano 21:e149d0bdbf4a 68 int i = 0;
okano 21:e149d0bdbf4a 69 char c = 0;
okano 21:e149d0bdbf4a 70 timeout_flag = 0;
okano 21:e149d0bdbf4a 71
okano 21:e149d0bdbf4a 72 timeout.attach( &set_flag, 1 );
okano 21:e149d0bdbf4a 73
okano 21:e149d0bdbf4a 74 do {
okano 21:e149d0bdbf4a 75 do {
okano 21:e149d0bdbf4a 76 if ( target.readable() ) {
okano 21:e149d0bdbf4a 77 c = target.getc();
okano 21:e149d0bdbf4a 78
okano 21:e149d0bdbf4a 79 if ( ( c == '\n') || (c == '\r') )
okano 21:e149d0bdbf4a 80 break;
okano 21:e149d0bdbf4a 81
okano 21:e149d0bdbf4a 82 *s++ = c;
okano 21:e149d0bdbf4a 83 i++;
okano 21:e149d0bdbf4a 84 }
okano 21:e149d0bdbf4a 85
okano 21:e149d0bdbf4a 86 if ( timeout_flag )
okano 21:e149d0bdbf4a 87 return;
okano 21:e149d0bdbf4a 88 } while ( 1 );
okano 21:e149d0bdbf4a 89 } while ( !i );
okano 21:e149d0bdbf4a 90
okano 21:e149d0bdbf4a 91 *s = '\0';
okano 21:e149d0bdbf4a 92 }
okano 21:e149d0bdbf4a 93
okano 21:e149d0bdbf4a 94
okano 21:e149d0bdbf4a 95 int get_binary( char *b, int length )
okano 21:e149d0bdbf4a 96 {
okano 21:e149d0bdbf4a 97 int i;
okano 21:e149d0bdbf4a 98
okano 21:e149d0bdbf4a 99 timeout_flag = 0;
okano 21:e149d0bdbf4a 100 timeout.attach( &set_flag, 1 );
okano 21:e149d0bdbf4a 101
okano 21:e149d0bdbf4a 102 for ( i = 0; i < length; i++ ) {
okano 21:e149d0bdbf4a 103 if ( target.readable() )
okano 21:e149d0bdbf4a 104 *b++ = target.getc();
okano 21:e149d0bdbf4a 105
okano 21:e149d0bdbf4a 106 if ( timeout_flag )
okano 21:e149d0bdbf4a 107 return ( i );
okano 21:e149d0bdbf4a 108 }
okano 21:e149d0bdbf4a 109
okano 21:e149d0bdbf4a 110 return ( i );
okano 21:e149d0bdbf4a 111 }
okano 21:e149d0bdbf4a 112
okano 21:e149d0bdbf4a 113
okano 21:e149d0bdbf4a 114 char read_byte( void )
okano 21:e149d0bdbf4a 115 {
okano 21:e149d0bdbf4a 116 while ( !target.readable() )
okano 21:e149d0bdbf4a 117 ;
okano 21:e149d0bdbf4a 118
okano 21:e149d0bdbf4a 119 return ( target.getc() );
okano 21:e149d0bdbf4a 120 }
okano 21:e149d0bdbf4a 121
okano 21:e149d0bdbf4a 122