This program is porting rosserial_arduino for mbed http://www.ros.org/wiki/rosserial_arduino This program supported the revision of 169 of rosserial.

Dependencies:  

Dependents:   rosserial_mbed robot_S2

MbedHardware.h

Committer:
nucho
Date:
2011-08-19
Revision:
0:77afd7560544
Child:
1:ff0ec969dad1

File content as of revision 0:77afd7560544:

/*
 * mbedHardware
 *
 *  Created on: Aug 17, 2011
 *      Author: nucho
 */

#ifndef MBEDHARDWARE_H_
#define MBEDHARDWARE_H_

#include"mbed.h"

class MbedHardware {
public:
    MbedHardware(Serial* io , long baud= 57600)
            :iostream(*io){
        baud_ = baud;
        t.start();
    }
    MbedHardware()
            :iostream(USBTX, USBRX) {
        baud_ = 57600;
        t.start();
    }
    MbedHardware(MbedHardware& h)
            :iostream(h.iostream) {
        this->baud_ = h.baud_;
        
        t.start();
    }

    void setBaud(long baud) {
        this->baud_= baud;
    }

    int getBaud() {
        return baud_;
    }

    void init() {
        iostream.baud(baud_);
    }

    int read() {
        if (iostream.readable()) {
            return iostream.getc();
        } else {
            return -1;
        }
    };
    void write(uint8_t* data, int length) {
        for (int i=0; i<length; i++) iostream.putc(data[i]);
    }

    unsigned long time() {
        return t.read_ms();
    }

protected:
    long baud_;
    Serial iostream;
    Timer t;
};


#endif /* MBEDHARDWARE_H_ */