Interface layer for the mbed boards ready for the JAVA library

Dependencies:   C12832 LM75B MMA7660 mbed FXOS8700Q

Fork of frdm_serial by Michael Berry

comms.cpp

Committer:
Condo2k4
Date:
2015-12-01
Revision:
4:39e949908fc5
Child:
5:d9f8c2f63323

File content as of revision 4:39e949908fc5:


#include "comms.h"

DataSerial::DataSerial(PinName tx, PinName rx) : Serial(tx,rx,NULL) {}

DataSerial::~DataSerial() {}

void DataSerial::sendFloat(float &f) {
    sendData(&f,sizeof(float));
}

void DataSerial::sendInt16(uint16_t &i) {
    sendData(&i,sizeof(uint16_t));
}

void DataSerial::sendChar(char c) {
    putc(1); putc(c);
}

float DataSerial::readFloat() {
    float f;
    readData(&f,sizeof(float));
    return f;
}

uint16_t DataSerial::readInt16() {
    uint16_t i;
    readData(&i,sizeof(uint16_t));
    return i;
}

char DataSerial::readChar() {
    return getc();
}

void DataSerial::sendData(void* data, uint8_t len) {
    putc(len);
    for(char* c = (char*)data;len--;)
        putc(*(c++));
}

void DataSerial::readData(void* data, uint8_t len) {
    char* c = (char*)data;
    while(len>0) {
        *c = getc();
        c++;
        len--;
    }
}

void DataSerial::sendSpecialCommand(char char1, char char2) {
    putc(0); putc(char1); putc(char2);
}