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:
Wed Mar 09 12:15:13 2016 +0000
Revision:
5:cd94bb58e096
Parent:
4:8e3de1a314e1
Child:
7:d224bddd5405
Release 1.0.3. See changelog here https://github.com/Overdrivr/Telemetry/releases/tag/1.0.3

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 5:cd94bb58e096 41 void Telemetry::begin(uint32_t bauds)
Overdrivr 5:cd94bb58e096 42 {
Overdrivr 5:cd94bb58e096 43 pc.baud(bauds);
Overdrivr 5:cd94bb58e096 44 }
Overdrivr 5:cd94bb58e096 45
Overdrivr 5:cd94bb58e096 46 TM_transport * Telemetry::get_transport()
Overdrivr 5:cd94bb58e096 47 {
Overdrivr 5:cd94bb58e096 48 return &transport;
Overdrivr 5:cd94bb58e096 49 }
Overdrivr 5:cd94bb58e096 50
Overdrivr 5:cd94bb58e096 51 void Telemetry::pub(const char * topic, const char * msg)
Overdrivr 3:37d2d127bc83 52 {
Overdrivr 3:37d2d127bc83 53 publish(topic,msg);
Overdrivr 3:37d2d127bc83 54 }
Overdrivr 3:37d2d127bc83 55
Overdrivr 4:8e3de1a314e1 56 void Telemetry::pub_u8(const char * topic, uint8_t msg)
Overdrivr 3:37d2d127bc83 57 {
Overdrivr 3:37d2d127bc83 58 publish_u8(topic,msg);
Overdrivr 3:37d2d127bc83 59 }
Overdrivr 3:37d2d127bc83 60
Overdrivr 4:8e3de1a314e1 61 void Telemetry::pub_u16(const char * topic, uint16_t msg)
Overdrivr 3:37d2d127bc83 62 {
Overdrivr 3:37d2d127bc83 63 publish_u16(topic,msg);
Overdrivr 3:37d2d127bc83 64 }
Overdrivr 3:37d2d127bc83 65
Overdrivr 4:8e3de1a314e1 66 void Telemetry::pub_u32(const char * topic, uint32_t msg)
Overdrivr 3:37d2d127bc83 67 {
Overdrivr 3:37d2d127bc83 68 publish_u32(topic,msg);
Overdrivr 3:37d2d127bc83 69 }
Overdrivr 3:37d2d127bc83 70
Overdrivr 4:8e3de1a314e1 71 void Telemetry::pub_i8(const char * topic, int8_t msg)
Overdrivr 3:37d2d127bc83 72 {
Overdrivr 3:37d2d127bc83 73 publish_i8(topic,msg);
Overdrivr 3:37d2d127bc83 74 }
Overdrivr 3:37d2d127bc83 75
Overdrivr 4:8e3de1a314e1 76 void Telemetry::pub_i16(const char * topic, int16_t msg)
Overdrivr 3:37d2d127bc83 77 {
Overdrivr 3:37d2d127bc83 78 publish_i16(topic,msg);
Overdrivr 3:37d2d127bc83 79 }
Overdrivr 3:37d2d127bc83 80
Overdrivr 4:8e3de1a314e1 81 void Telemetry::pub_i32(const char * topic, int32_t msg)
Overdrivr 3:37d2d127bc83 82 {
Overdrivr 3:37d2d127bc83 83 publish_i32(topic,msg);
Overdrivr 3:37d2d127bc83 84 }
Overdrivr 3:37d2d127bc83 85
Overdrivr 4:8e3de1a314e1 86 void Telemetry::pub_f32(const char * topic, float msg)
Overdrivr 3:37d2d127bc83 87 {
Overdrivr 3:37d2d127bc83 88 publish_f32(topic,msg);
Overdrivr 3:37d2d127bc83 89 }
Overdrivr 3:37d2d127bc83 90
Overdrivr 4:8e3de1a314e1 91 void Telemetry::sub(void (*callback)(TM_state * s, TM_msg * m),
Overdrivr 4:8e3de1a314e1 92 TM_state* userData)
Overdrivr 3:37d2d127bc83 93 {
Overdrivr 5:cd94bb58e096 94 subscribe(callback,userData);
Overdrivr 3:37d2d127bc83 95 }
Overdrivr 3:37d2d127bc83 96
Overdrivr 3:37d2d127bc83 97 void Telemetry::update()
Overdrivr 3:37d2d127bc83 98 {
Overdrivr 3:37d2d127bc83 99 update_telemetry(0);
Overdrivr 3:37d2d127bc83 100 }