afLib 1.3 which is supporting both SPI and UART

Dependencies:   vt100 mbed afLib_1_3

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers edgeSerial.cpp Source File

edgeSerial.cpp

00001 #include "mbed.h"
00002 #include "vt100.h"
00003 #include "edgeSerial.h"
00004 #include "edge_reset_mgr.h"
00005 extern vt100 *tty ;
00006 
00007 edgeSerial::edgeSerial(PinName txPin, PinName rxPin, int baud) 
00008 : Serial(txPin, rxPin, baud) 
00009 {
00010     _is_peeked = false ;
00011     _peeked_byte = 0 ;
00012 }
00013     
00014 char edgeSerial::edge_peek(void)
00015 {
00016     _peeked_byte = getc() ;
00017     _is_peeked = true ;
00018     return(  _peeked_byte ) ;
00019 }
00020 
00021 void edgeSerial::edge_read(uint8_t *buffer, int len)
00022 {
00023     int i ;
00024     if (_is_peeked) {
00025         buffer[0] = _peeked_byte ;
00026         _is_peeked = false ;
00027 #if 1
00028         for (i = 1 ; i < len ; i++) {
00029             buffer[i] = Serial::getc() ;
00030         }
00031 #else
00032         Serial::read(&buffer[1], len) ;
00033 #endif
00034     } else {
00035 #if 1
00036         for (i = 0 ; i < len ; i++) {
00037             buffer[i] = Serial::getc() ;
00038         }
00039 #else
00040         Serial::read(buffer, len) ;
00041 #endif
00042     }     
00043 }
00044 
00045 char edgeSerial::edge_read(void)
00046 {
00047     char c ;
00048 // tty->printf("edge_read\n") ;
00049     if (_is_peeked) {
00050         c = _peeked_byte ;
00051         _is_peeked = false ;
00052     } else {
00053 //    Serial::read((uint8_t*)&c, 1) ;
00054         c = Serial::getc() ;
00055     }
00056     return( c ) ;
00057 }
00058 
00059 void edgeSerial::edge_write(uint8_t *buffer, int len)
00060 {
00061 #if 1
00062     for (int i = 0 ; i < len ; i++ ) {
00063         Serial::write(&buffer[i], 1) ;
00064     }    
00065 #else
00066     Serial::write(buffer, len) ;
00067 #endif
00068 }