SerialFlow allows to send and receive packaged arrays of integer values via serial port.

SerialFlow allows to send and receive packaged arrays of integer(short only) values via serial port.

Packet format:

  1. begin - 0x12
  2. end - 0x13
  3. value separator - 0x10
  4. escape - 0x7D

Simple packet example:
0x12,0x1,0x0,0x10,0x7D,0x12,0x0,0x13
corresponds to: [1,18]

Now handles only short int values. Example:

#include "mbed.h"
#include "SerialFlow.h"
SerialFlow pc(USBTX, USBRX);
AnalogIn gyro_x(p17); // data from gyro x axis
AnalogIn gyro_y(p18); // data from gyro y axis

int main(){
    // two short values
    pc.setPacketFormat(SerialFlow::COMPLEX_1, 2, 2);
    while(1){
        pc.setPacketValue((short)(gyro_x*1023.0));
        pc.setPacketValue((short)(gyro_y*1023.0));
        pc.sendPacket();
        wait(0.01);
    }
}

On the PC side you can use this program to catch data flows: http://www.poprobot.ru/files/sfmonitor_0.9.zip

Files at this revision

API Documentation at this revision

Comitter:
Decimus
Date:
Sun Oct 21 17:40:25 2012 +0000
Parent:
3:7cbfd422c98e
Commit message:
USE_MODSERIAL flag is on by default

Changed in this revision

SerialFlow.h Show annotated file Show diff for this revision Revisions of this file
--- a/SerialFlow.h	Sun Oct 21 17:39:20 2012 +0000
+++ b/SerialFlow.h	Sun Oct 21 17:40:25 2012 +0000
@@ -7,7 +7,7 @@
 #define MBED_SERIALFLOW_H
 
 // optional use of MODSERIAL
-//#define USE_MODSERIAL
+#define USE_MODSERIAL
 
 #include "mbed.h"