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

Committer:
Overdrivr
Date:
Mon Feb 22 17:17:52 2016 +0000
Revision:
3:37d2d127bc83
Child:
4:8e3de1a314e1
Using the newly generated API

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Overdrivr 3:37d2d127bc83 1 #include "Telemetry.h"
Overdrivr 3:37d2d127bc83 2
Overdrivr 3:37d2d127bc83 3 #include "BufferedSerial.h"
Overdrivr 3:37d2d127bc83 4
Overdrivr 3:37d2d127bc83 5 static BufferedSerial pc(USBTX, USBRX);
Overdrivr 3:37d2d127bc83 6
Overdrivr 3:37d2d127bc83 7 int32_t read(void * buf, uint32_t sizeToRead)
Overdrivr 3:37d2d127bc83 8 {
Overdrivr 3:37d2d127bc83 9 *(uint8_t*)(buf) = pc.getc();
Overdrivr 3:37d2d127bc83 10 return 1;
Overdrivr 3:37d2d127bc83 11 }
Overdrivr 3:37d2d127bc83 12
Overdrivr 3:37d2d127bc83 13 int32_t write(void * buf, uint32_t sizeToWrite)
Overdrivr 3:37d2d127bc83 14 {
Overdrivr 3:37d2d127bc83 15 pc.write(buf,sizeToWrite);
Overdrivr 3:37d2d127bc83 16 return 0;
Overdrivr 3:37d2d127bc83 17 }
Overdrivr 3:37d2d127bc83 18
Overdrivr 3:37d2d127bc83 19 int32_t readable()
Overdrivr 3:37d2d127bc83 20 {
Overdrivr 3:37d2d127bc83 21 return pc.readable();
Overdrivr 3:37d2d127bc83 22 }
Overdrivr 3:37d2d127bc83 23
Overdrivr 3:37d2d127bc83 24 int32_t writeable()
Overdrivr 3:37d2d127bc83 25 {
Overdrivr 3:37d2d127bc83 26 return pc.writeable();
Overdrivr 3:37d2d127bc83 27 }
Overdrivr 3:37d2d127bc83 28
Overdrivr 3:37d2d127bc83 29 Telemetry::Telemetry(uint32_t bauds)
Overdrivr 3:37d2d127bc83 30 {
Overdrivr 3:37d2d127bc83 31 transport.read = read;
Overdrivr 3:37d2d127bc83 32 transport.write = write;
Overdrivr 3:37d2d127bc83 33 transport.readable = readable;
Overdrivr 3:37d2d127bc83 34 transport.writeable = writeable;
Overdrivr 3:37d2d127bc83 35
Overdrivr 3:37d2d127bc83 36 init_telemetry(&transport);
Overdrivr 3:37d2d127bc83 37
Overdrivr 3:37d2d127bc83 38 pc.baud(bauds);
Overdrivr 3:37d2d127bc83 39 }
Overdrivr 3:37d2d127bc83 40
Overdrivr 3:37d2d127bc83 41 void Telemetry::publish(const char * topic, char * msg)
Overdrivr 3:37d2d127bc83 42 {
Overdrivr 3:37d2d127bc83 43 publish(topic,msg);
Overdrivr 3:37d2d127bc83 44 }
Overdrivr 3:37d2d127bc83 45
Overdrivr 3:37d2d127bc83 46 void Telemetry::publish_u8(const char * topic, uint8_t msg)
Overdrivr 3:37d2d127bc83 47 {
Overdrivr 3:37d2d127bc83 48 publish_u8(topic,msg);
Overdrivr 3:37d2d127bc83 49 }
Overdrivr 3:37d2d127bc83 50
Overdrivr 3:37d2d127bc83 51 void Telemetry::publish_u16(const char * topic, uint16_t msg)
Overdrivr 3:37d2d127bc83 52 {
Overdrivr 3:37d2d127bc83 53 publish_u16(topic,msg);
Overdrivr 3:37d2d127bc83 54 }
Overdrivr 3:37d2d127bc83 55
Overdrivr 3:37d2d127bc83 56 void Telemetry::publish_u32(const char * topic, uint32_t msg)
Overdrivr 3:37d2d127bc83 57 {
Overdrivr 3:37d2d127bc83 58 publish_u32(topic,msg);
Overdrivr 3:37d2d127bc83 59 }
Overdrivr 3:37d2d127bc83 60
Overdrivr 3:37d2d127bc83 61 void Telemetry::publish_i8(const char * topic, int8_t msg)
Overdrivr 3:37d2d127bc83 62 {
Overdrivr 3:37d2d127bc83 63 publish_i8(topic,msg);
Overdrivr 3:37d2d127bc83 64 }
Overdrivr 3:37d2d127bc83 65
Overdrivr 3:37d2d127bc83 66 void Telemetry::publish_i16(const char * topic, int16_t msg)
Overdrivr 3:37d2d127bc83 67 {
Overdrivr 3:37d2d127bc83 68 publish_i16(topic,msg);
Overdrivr 3:37d2d127bc83 69 }
Overdrivr 3:37d2d127bc83 70
Overdrivr 3:37d2d127bc83 71 void Telemetry::publish_i32(const char * topic, int32_t msg)
Overdrivr 3:37d2d127bc83 72 {
Overdrivr 3:37d2d127bc83 73 publish_i32(topic,msg);
Overdrivr 3:37d2d127bc83 74 }
Overdrivr 3:37d2d127bc83 75
Overdrivr 3:37d2d127bc83 76 void Telemetry::publish_f32(const char * topic, float msg)
Overdrivr 3:37d2d127bc83 77 {
Overdrivr 3:37d2d127bc83 78 publish_f32(topic,msg);
Overdrivr 3:37d2d127bc83 79 }
Overdrivr 3:37d2d127bc83 80
Overdrivr 3:37d2d127bc83 81 void Telemetry::subscribe(void (*callback)(TM_state * s, TM_msg * m))
Overdrivr 3:37d2d127bc83 82 {
Overdrivr 3:37d2d127bc83 83 subscribe(callback);
Overdrivr 3:37d2d127bc83 84 }
Overdrivr 3:37d2d127bc83 85
Overdrivr 3:37d2d127bc83 86 void Telemetry::set(TM_state* userData)
Overdrivr 3:37d2d127bc83 87 {
Overdrivr 3:37d2d127bc83 88 set_state(userData);
Overdrivr 3:37d2d127bc83 89 }
Overdrivr 3:37d2d127bc83 90
Overdrivr 3:37d2d127bc83 91 void Telemetry::update()
Overdrivr 3:37d2d127bc83 92 {
Overdrivr 3:37d2d127bc83 93 update_telemetry(0);
Overdrivr 3:37d2d127bc83 94 }
Overdrivr 3:37d2d127bc83 95
Overdrivr 3:37d2d127bc83 96 uint32_t cast(TM_msg * m, char * buf, size_t bufSize)
Overdrivr 3:37d2d127bc83 97 {
Overdrivr 3:37d2d127bc83 98 return emplace(m,buf,bufSize);
Overdrivr 3:37d2d127bc83 99 }
Overdrivr 3:37d2d127bc83 100
Overdrivr 3:37d2d127bc83 101 uint32_t cast_u8(TM_msg * m, uint8_t * dst)
Overdrivr 3:37d2d127bc83 102 {
Overdrivr 3:37d2d127bc83 103 return emplace_u8(m,dst);
Overdrivr 3:37d2d127bc83 104 }
Overdrivr 3:37d2d127bc83 105
Overdrivr 3:37d2d127bc83 106 uint32_t cast_u16(TM_msg * m, uint16_t * dst)
Overdrivr 3:37d2d127bc83 107 {
Overdrivr 3:37d2d127bc83 108 return emplace_u16(m,dst);
Overdrivr 3:37d2d127bc83 109 }
Overdrivr 3:37d2d127bc83 110
Overdrivr 3:37d2d127bc83 111 uint32_t cast_u32(TM_msg * m, uint32_t * dst)
Overdrivr 3:37d2d127bc83 112 {
Overdrivr 3:37d2d127bc83 113 return emplace_u32(m,dst);
Overdrivr 3:37d2d127bc83 114 }
Overdrivr 3:37d2d127bc83 115
Overdrivr 3:37d2d127bc83 116 uint32_t cast_i8(TM_msg * m, int8_t * dst)
Overdrivr 3:37d2d127bc83 117 {
Overdrivr 3:37d2d127bc83 118 return emplace_i8(m,dst);
Overdrivr 3:37d2d127bc83 119 }
Overdrivr 3:37d2d127bc83 120
Overdrivr 3:37d2d127bc83 121 uint32_t cast_i16(TM_msg * m, int16_t * dst)
Overdrivr 3:37d2d127bc83 122 {
Overdrivr 3:37d2d127bc83 123 return emplace_i16(m,dst);
Overdrivr 3:37d2d127bc83 124 }
Overdrivr 3:37d2d127bc83 125
Overdrivr 3:37d2d127bc83 126 uint32_t cast_i32(TM_msg * m, int32_t * dst)
Overdrivr 3:37d2d127bc83 127 {
Overdrivr 3:37d2d127bc83 128 return emplace_i32(m,dst);
Overdrivr 3:37d2d127bc83 129 }
Overdrivr 3:37d2d127bc83 130
Overdrivr 3:37d2d127bc83 131 uint32_t cast_f32(TM_msg * m, float * dst)
Overdrivr 3:37d2d127bc83 132 {
Overdrivr 3:37d2d127bc83 133 return emplace_f32(m,dst);
Overdrivr 3:37d2d127bc83 134 }