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

Dependencies:   rosserial_mbed_lib mbed Servo

Committer:
nucho
Date:
Sun Oct 16 07:17:43 2011 +0000
Revision:
1:098e75fd5ad2
Parent:
0:06fc856e99ca
Child:
3:dff241b66f84
This program supported the revision of 143 of rosserial.
And the bug fix of receive of array data.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:06fc856e99ca 1 /*
nucho 0:06fc856e99ca 2 * MbedHardware
nucho 0:06fc856e99ca 3 *
nucho 0:06fc856e99ca 4 * Created on: Aug 17, 2011
nucho 0:06fc856e99ca 5 * Author: nucho
nucho 0:06fc856e99ca 6 */
nucho 0:06fc856e99ca 7
nucho 0:06fc856e99ca 8 #ifndef MBEDHARDWARE_H_
nucho 0:06fc856e99ca 9 #define MBEDHARDWARE_H_
nucho 0:06fc856e99ca 10
nucho 0:06fc856e99ca 11 #include"mbed.h"
nucho 1:098e75fd5ad2 12 #include"MODSERIAL.h"
nucho 1:098e75fd5ad2 13
nucho 0:06fc856e99ca 14
nucho 0:06fc856e99ca 15 class MbedHardware {
nucho 0:06fc856e99ca 16 public:
nucho 1:098e75fd5ad2 17 MbedHardware(MODSERIAL* io , int baud= 57600)
nucho 0:06fc856e99ca 18 :iostream(*io){
nucho 0:06fc856e99ca 19 baud_ = baud;
nucho 0:06fc856e99ca 20 t.start();
nucho 0:06fc856e99ca 21 }
nucho 0:06fc856e99ca 22 MbedHardware()
nucho 0:06fc856e99ca 23 :iostream(USBTX, USBRX) {
nucho 0:06fc856e99ca 24 baud_ = 57600;
nucho 0:06fc856e99ca 25 t.start();
nucho 0:06fc856e99ca 26 }
nucho 0:06fc856e99ca 27 MbedHardware(MbedHardware& h)
nucho 0:06fc856e99ca 28 :iostream(h.iostream) {
nucho 0:06fc856e99ca 29 this->baud_ = h.baud_;
nucho 0:06fc856e99ca 30
nucho 0:06fc856e99ca 31 t.start();
nucho 0:06fc856e99ca 32 }
nucho 0:06fc856e99ca 33
nucho 1:098e75fd5ad2 34 void setBaud(int baud) {
nucho 0:06fc856e99ca 35 this->baud_= baud;
nucho 0:06fc856e99ca 36 }
nucho 0:06fc856e99ca 37
nucho 0:06fc856e99ca 38 int getBaud() {
nucho 0:06fc856e99ca 39 return baud_;
nucho 0:06fc856e99ca 40 }
nucho 0:06fc856e99ca 41
nucho 0:06fc856e99ca 42 void init() {
nucho 0:06fc856e99ca 43 iostream.baud(baud_);
nucho 0:06fc856e99ca 44 }
nucho 0:06fc856e99ca 45
nucho 0:06fc856e99ca 46 int read() {
nucho 0:06fc856e99ca 47 if (iostream.readable()) {
nucho 0:06fc856e99ca 48 return iostream.getc();
nucho 0:06fc856e99ca 49 } else {
nucho 0:06fc856e99ca 50 return -1;
nucho 0:06fc856e99ca 51 }
nucho 0:06fc856e99ca 52 };
nucho 0:06fc856e99ca 53 void write(uint8_t* data, int length) {
nucho 0:06fc856e99ca 54 for (int i=0; i<length; i++) iostream.putc(data[i]);
nucho 0:06fc856e99ca 55 }
nucho 0:06fc856e99ca 56
nucho 0:06fc856e99ca 57 unsigned long time() {
nucho 0:06fc856e99ca 58 return t.read_ms();
nucho 0:06fc856e99ca 59 }
nucho 0:06fc856e99ca 60
nucho 0:06fc856e99ca 61 protected:
nucho 1:098e75fd5ad2 62 int baud_;
nucho 1:098e75fd5ad2 63 MODSERIAL iostream;
nucho 0:06fc856e99ca 64 Timer t;
nucho 0:06fc856e99ca 65 };
nucho 0:06fc856e99ca 66
nucho 0:06fc856e99ca 67
nucho 0:06fc856e99ca 68 #endif /* MBEDHARDWARE_H_ */