afLib 1.3 which is supporting both SPI and UART
Dependencies: vt100 mbed afLib_1_3
af_utils/edgeSerial.cpp
- Committer:
- Rhyme
- Date:
- 2018-04-23
- Revision:
- 0:87662653a3c6
File content as of revision 0:87662653a3c6:
#include "mbed.h"
#include "vt100.h"
#include "edgeSerial.h"
#include "edge_reset_mgr.h"
extern vt100 *tty ;
edgeSerial::edgeSerial(PinName txPin, PinName rxPin, int baud)
: Serial(txPin, rxPin, baud)
{
_is_peeked = false ;
_peeked_byte = 0 ;
}
char edgeSerial::edge_peek(void)
{
_peeked_byte = getc() ;
_is_peeked = true ;
return( _peeked_byte ) ;
}
void edgeSerial::edge_read(uint8_t *buffer, int len)
{
int i ;
if (_is_peeked) {
buffer[0] = _peeked_byte ;
_is_peeked = false ;
#if 1
for (i = 1 ; i < len ; i++) {
buffer[i] = Serial::getc() ;
}
#else
Serial::read(&buffer[1], len) ;
#endif
} else {
#if 1
for (i = 0 ; i < len ; i++) {
buffer[i] = Serial::getc() ;
}
#else
Serial::read(buffer, len) ;
#endif
}
}
char edgeSerial::edge_read(void)
{
char c ;
// tty->printf("edge_read\n") ;
if (_is_peeked) {
c = _peeked_byte ;
_is_peeked = false ;
} else {
// Serial::read((uint8_t*)&c, 1) ;
c = Serial::getc() ;
}
return( c ) ;
}
void edgeSerial::edge_write(uint8_t *buffer, int len)
{
#if 1
for (int i = 0 ; i < len ; i++ ) {
Serial::write(&buffer[i], 1) ;
}
#else
Serial::write(buffer, len) ;
#endif
}