Nanopb (lightweight version of googles protobuf) test. It is not working as it should yet.

Dependencies:   MODSERIAL mbed

Revision:
0:bada2c7bd577
Child:
1:f02249a6e8bb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Apr 08 10:28:49 2014 +0000
@@ -0,0 +1,53 @@
+#include "mbed.h"
+#include "pb.h"
+#include "pb_encode.h"
+#include "pb_decode.h"
+#include "threeaxis.pb.h"
+#include "MODSERIAL.h"
+
+#include <iostream>
+#include <string>
+#include <fstream>
+DigitalOut myled(LED1);
+MODSERIAL pc(USBTX, USBRX, "modser"); //modified modser lib to be able to input custom stream
+
+
+using namespace std;
+
+int main() {
+    pc.baud(115200);
+    status_message Status;
+    gyro_message Gyro;
+    
+    pc.claim();
+    uint8_t buffer[128];
+    
+    pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
+    Status.Mode=1;
+    Gyro.X=1.1;
+    Gyro.Y=2.1;
+    Gyro.Z=3.1;
+    while(1){
+        Gyro.X+=0.1;
+        Gyro.Y+=0.2;
+        Gyro.Z+=0.3;
+        
+        if (pb_encode(&stream, gyro_message_fields, &Gyro)) {
+            pc.putc('$');
+            //fwrite(buffer, 1, stream.bytes_written, stdout);
+            pc.printf("%s", buffer);
+            //pb_write(&stream, &buffer, 20);
+            //memset(&buffer[0], 0, sizeof(buffer)); //empty buffer
+            pc.putc('e');
+            pc.putc('n');
+            pc.putc('d');
+            //stream*=0; //empty stream, not working as of now but creating error on mbed
+        }
+        
+        else {
+            pc.printf("Encoding failed: %s\n", PB_GET_ERROR(&stream));
+            return 1;
+        }        
+        wait(1);
+    }
+}