First class data visualization and communication library with embedded devices. Code is maintained at github.com/Overdrivr/Telemetry

Dependents:   telemetry_car_demo telemetry_demo_FRDM-TFC telemetry_example_01 telemetry_indexed_data_demo ... more

Revision:
1:e51abb43c074
Parent:
0:3a30eba5d8f7
Child:
2:b7a3ac7bcec8
--- a/driver.hpp	Wed Jan 27 17:39:36 2016 +0000
+++ b/driver.hpp	Thu Jan 28 10:00:45 2016 +0000
@@ -1,44 +1,37 @@
-#include "MODSERIAL.h"
+#include "mbed.h"
+#include "telemetry/telemetry.hpp"
 
-// Driver implementation for telemetry (github.com/Overdrivr/Telemetry)
-// Don't forget in your main to aggregate the driver to telemetry (see below)
-/*
-  // Add this code to your main 
-  
-  TM_transport transport;
-  transport.read = read;
-  transport.write = write;
-  transport.readable = readable;
-  transport.writeable = writeable;
+// C++ Wrapper and driver implementation for telemetry (github.com/Overdrivr/Telemetry)
 
-  // Feed to transport to telemetry on init
-  init_telemetry(.., &transport);
-*/
-
-MODSERIAL pc(USBTX, USBRX);
-
-int32_t read(void * buf, uint32_t sizeToRead)
+class Telemetry
 {
-    *(uint8_t*)(buf) = pc.getc();
-    return 1;
-}
-
-int32_t readable()
-{
-    return pc.rxBufferGetCount();
-}
+    public:
+    Telemetry(TM_state* userData);
+    
+    uint32_t cast(TM_msg * m, char * buf, size_t bufSize);
+    uint32_t cast_u8(TM_msg * m, uint8_t * dst);
+    uint32_t cast_u16(TM_msg * m, uint16_t * dst);
+    uint32_t cast_u32(TM_msg * m, uint32_t * dst);
+    uint32_t cast_i8(TM_msg * m, int8_t * dst);
+    uint32_t cast_i16(TM_msg * m, int16_t * dst);
+    uint32_t cast_i32(TM_msg * m, int32_t * dst);
+    uint32_t cast_f32(TM_msg * m, float * dst);
+    
+    void pub(const char * topic, char * msg);
+    void pub_u8(const char * topic, uint8_t msg);
+    void pub_u16(const char * topic, uint16_t msg);
+    void pub_u32(const char * topic, uint32_t msg);
+    void pub_i8(const char * topic, int8_t msg);
+    void pub_i16(const char * topic, int16_t msg);
+    void pub_i32(const char * topic, int32_t msg);
+    void pub_f32(const char * topic, float msg);
+    
+    void sub(void (*callback)(TM_state * s, TM_msg * m));
 
-int32_t write(void * buf, uint32_t sizeToWrite)
-{
-    char * ptr = (char *)buf;
-    for(uint32_t i = 0 ; i < sizeToWrite ; i++)
-    {
-        pc.putc(ptr[i]);
-    }
-    return 0;
-}
+    void update();
+    
+    private:
+    TM_transport transport;
+};
 
-int32_t writeable()
-{
-    return pc.writeable();
-}
+