Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: vt100 mbed afLib_1_3
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 }
Generated on Wed Jul 20 2022 21:24:28 by
1.7.2