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
Telemetry.cpp@7:d224bddd5405, 2016-04-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |