Myserial Library extends RawSerial

MySerial.cpp

Committer:
naao
Date:
2014-07-03
Revision:
12:02b3877b48c6
Parent:
11:34ae126807a0
Child:
14:8bd054a87ac5

File content as of revision 12:02b3877b48c6:

#include "MySerial.h"

MySerial::MySerial(PinName tx,PinName rx):SerialBase(tx,rx)          //constructor
{
    fRxStartWait = 0.01;    //wait getting a 1st char after interrupted
    fRxEachWait = 0.001;    //wait getting each char
}

int MySerial::getc() {
    return _base_getc();
}
 
int MySerial::putc(int c) {
    return _base_putc(c);
}
 
int MySerial::puts(const char *str) {
    while (*str)
        putc(*str ++);
    return 0;
}

void MySerial::SetRxWait(float _fRxStartWait, float _fRxEachWait)
{
    fRxStartWait = _fRxStartWait;   //wait getting a 1st char after interrupted
    fRxEachWait = _fRxEachWait;     //wait getting each char
}

int MySerial::GetString(int size, char *cWord)            //by pointer
{
    int i=0;
    int ichar;
    memset(cWord, '\0', strlen(cWord));  //initialise chars

    wait(fRxStartWait);

    while(1) {
        if(!readable())    {
            break;
        }
        ichar = getc();
        if(i<size) {
            cWord[i] =ichar;
            //putc(ichar);
        }
        i++;
        wait(fRxEachWait);
    }
    return 0;
}