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:
Tue Apr 12 07:40:10 2016 +0000
Revision:
7:d224bddd5405
Parent:
5:cd94bb58e096
Release 2.0.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Overdrivr 5:cd94bb58e096 1 #include "Telemetry.hpp"
Overdrivr 5:cd94bb58e096 2 #include "c_api/telemetry_core.h"
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 7:d224bddd5405 41 void Telemetry::attach_f32_to(const char * topic, float * variable)
Overdrivr 7:d224bddd5405 42 {
Overdrivr 7:d224bddd5405 43 attach_f32(topic, variable);
Overdrivr 7:d224bddd5405 44 }
Overdrivr 7:d224bddd5405 45
Overdrivr 7:d224bddd5405 46 void Telemetry::attach_u8_to(const char * topic, uint8_t * variable)
Overdrivr 7:d224bddd5405 47 {
Overdrivr 7:d224bddd5405 48 attach_u8(topic, variable);
Overdrivr 7:d224bddd5405 49 }
Overdrivr 7:d224bddd5405 50
Overdrivr 7:d224bddd5405 51 void Telemetry::attach_u16_to(const char * topic, uint16_t * variable)
Overdrivr 7:d224bddd5405 52 {
Overdrivr 7:d224bddd5405 53 attach_u16(topic, variable);
Overdrivr 7:d224bddd5405 54 }
Overdrivr 7:d224bddd5405 55
Overdrivr 7:d224bddd5405 56 void Telemetry::attach_u32_to(const char * topic, uint32_t * variable)
Overdrivr 7:d224bddd5405 57 {
Overdrivr 7:d224bddd5405 58 attach_u32(topic, variable);
Overdrivr 7:d224bddd5405 59 }
Overdrivr 7:d224bddd5405 60
Overdrivr 7:d224bddd5405 61 void Telemetry::attach_i8_to(const char * topic, int8_t * variable)
Overdrivr 7:d224bddd5405 62 {
Overdrivr 7:d224bddd5405 63 attach_i8(topic, variable);
Overdrivr 7:d224bddd5405 64 }
Overdrivr 7:d224bddd5405 65
Overdrivr 7:d224bddd5405 66 void Telemetry::attach_i16_to(const char * topic, int16_t * variable)
Overdrivr 7:d224bddd5405 67 {
Overdrivr 7:d224bddd5405 68 attach_i16(topic, variable);
Overdrivr 7:d224bddd5405 69 }
Overdrivr 7:d224bddd5405 70
Overdrivr 7:d224bddd5405 71 void Telemetry::attach_i32_to(const char * topic, int32_t * variable)
Overdrivr 7:d224bddd5405 72 {
Overdrivr 7:d224bddd5405 73 attach_i32(topic, variable);
Overdrivr 7:d224bddd5405 74 }
Overdrivr 7:d224bddd5405 75
Overdrivr 5:cd94bb58e096 76 void Telemetry::begin(uint32_t bauds)
Overdrivr 5:cd94bb58e096 77 {
Overdrivr 5:cd94bb58e096 78 pc.baud(bauds);
Overdrivr 5:cd94bb58e096 79 }
Overdrivr 5:cd94bb58e096 80
Overdrivr 5:cd94bb58e096 81 TM_transport * Telemetry::get_transport()
Overdrivr 5:cd94bb58e096 82 {
Overdrivr 5:cd94bb58e096 83 return &transport;
Overdrivr 5:cd94bb58e096 84 }
Overdrivr 5:cd94bb58e096 85
Overdrivr 5:cd94bb58e096 86 void Telemetry::pub(const char * topic, const char * msg)
Overdrivr 3:37d2d127bc83 87 {
Overdrivr 3:37d2d127bc83 88 publish(topic,msg);
Overdrivr 3:37d2d127bc83 89 }
Overdrivr 3:37d2d127bc83 90
Overdrivr 4:8e3de1a314e1 91 void Telemetry::pub_u8(const char * topic, uint8_t msg)
Overdrivr 3:37d2d127bc83 92 {
Overdrivr 3:37d2d127bc83 93 publish_u8(topic,msg);
Overdrivr 3:37d2d127bc83 94 }
Overdrivr 3:37d2d127bc83 95
Overdrivr 4:8e3de1a314e1 96 void Telemetry::pub_u16(const char * topic, uint16_t msg)
Overdrivr 3:37d2d127bc83 97 {
Overdrivr 3:37d2d127bc83 98 publish_u16(topic,msg);
Overdrivr 3:37d2d127bc83 99 }
Overdrivr 3:37d2d127bc83 100
Overdrivr 4:8e3de1a314e1 101 void Telemetry::pub_u32(const char * topic, uint32_t msg)
Overdrivr 3:37d2d127bc83 102 {
Overdrivr 3:37d2d127bc83 103 publish_u32(topic,msg);
Overdrivr 3:37d2d127bc83 104 }
Overdrivr 3:37d2d127bc83 105
Overdrivr 4:8e3de1a314e1 106 void Telemetry::pub_i8(const char * topic, int8_t msg)
Overdrivr 3:37d2d127bc83 107 {
Overdrivr 3:37d2d127bc83 108 publish_i8(topic,msg);
Overdrivr 3:37d2d127bc83 109 }
Overdrivr 3:37d2d127bc83 110
Overdrivr 4:8e3de1a314e1 111 void Telemetry::pub_i16(const char * topic, int16_t msg)
Overdrivr 3:37d2d127bc83 112 {
Overdrivr 3:37d2d127bc83 113 publish_i16(topic,msg);
Overdrivr 3:37d2d127bc83 114 }
Overdrivr 3:37d2d127bc83 115
Overdrivr 4:8e3de1a314e1 116 void Telemetry::pub_i32(const char * topic, int32_t msg)
Overdrivr 3:37d2d127bc83 117 {
Overdrivr 3:37d2d127bc83 118 publish_i32(topic,msg);
Overdrivr 3:37d2d127bc83 119 }
Overdrivr 3:37d2d127bc83 120
Overdrivr 4:8e3de1a314e1 121 void Telemetry::pub_f32(const char * topic, float msg)
Overdrivr 3:37d2d127bc83 122 {
Overdrivr 3:37d2d127bc83 123 publish_f32(topic,msg);
Overdrivr 3:37d2d127bc83 124 }
Overdrivr 3:37d2d127bc83 125
Overdrivr 4:8e3de1a314e1 126 void Telemetry::sub(void (*callback)(TM_state * s, TM_msg * m),
Overdrivr 4:8e3de1a314e1 127 TM_state* userData)
Overdrivr 3:37d2d127bc83 128 {
Overdrivr 5:cd94bb58e096 129 subscribe(callback,userData);
Overdrivr 3:37d2d127bc83 130 }
Overdrivr 3:37d2d127bc83 131
Overdrivr 3:37d2d127bc83 132 void Telemetry::update()
Overdrivr 3:37d2d127bc83 133 {
Overdrivr 3:37d2d127bc83 134 update_telemetry(0);
Overdrivr 3:37d2d127bc83 135 }