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:
6:f5e1b079bffd
Release 2.0.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Overdrivr 5:cd94bb58e096 1 #include "telemetry_utils.h"
Overdrivr 5:cd94bb58e096 2
Overdrivr 5:cd94bb58e096 3 uint32_t emplace(TM_msg* m, char * buf, size_t bufSize)
Overdrivr 5:cd94bb58e096 4 {
Overdrivr 5:cd94bb58e096 5 if(m->type != TM_string)
Overdrivr 5:cd94bb58e096 6 return 0;
Overdrivr 5:cd94bb58e096 7
Overdrivr 5:cd94bb58e096 8 uint32_t size = m->size;
Overdrivr 5:cd94bb58e096 9
Overdrivr 5:cd94bb58e096 10 if(bufSize - 1 < size)
Overdrivr 5:cd94bb58e096 11 size = bufSize - 1;
Overdrivr 5:cd94bb58e096 12
Overdrivr 5:cd94bb58e096 13 strncpy(buf, (char*)(m->buffer), size);
Overdrivr 5:cd94bb58e096 14 buf[size] = '\0';
Overdrivr 5:cd94bb58e096 15
Overdrivr 5:cd94bb58e096 16 return 1;
Overdrivr 5:cd94bb58e096 17 }
Overdrivr 5:cd94bb58e096 18
Overdrivr 5:cd94bb58e096 19 uint32_t emplace_u8(TM_msg* m, uint8_t* dst)
Overdrivr 5:cd94bb58e096 20 {
Overdrivr 5:cd94bb58e096 21 if(m->type != TM_uint8)
Overdrivr 5:cd94bb58e096 22 return 0;
Overdrivr 5:cd94bb58e096 23
Overdrivr 5:cd94bb58e096 24 memcpy(dst,m->buffer,1);
Overdrivr 5:cd94bb58e096 25 return 1;
Overdrivr 5:cd94bb58e096 26 }
Overdrivr 5:cd94bb58e096 27
Overdrivr 5:cd94bb58e096 28 uint32_t emplace_u16(TM_msg* m, uint16_t* dst)
Overdrivr 5:cd94bb58e096 29 {
Overdrivr 5:cd94bb58e096 30 if(m->type != TM_uint16)
Overdrivr 5:cd94bb58e096 31 return 0;
Overdrivr 5:cd94bb58e096 32
Overdrivr 5:cd94bb58e096 33 memcpy(dst,m->buffer,2);
Overdrivr 5:cd94bb58e096 34 return 1;
Overdrivr 5:cd94bb58e096 35 }
Overdrivr 5:cd94bb58e096 36
Overdrivr 5:cd94bb58e096 37 uint32_t emplace_u32(TM_msg* m, uint32_t* dst)
Overdrivr 5:cd94bb58e096 38 {
Overdrivr 5:cd94bb58e096 39 if(m->type != TM_uint32)
Overdrivr 5:cd94bb58e096 40 return 0;
Overdrivr 5:cd94bb58e096 41
Overdrivr 5:cd94bb58e096 42 memcpy(dst,m->buffer,4);
Overdrivr 5:cd94bb58e096 43 return 1;
Overdrivr 5:cd94bb58e096 44 }
Overdrivr 5:cd94bb58e096 45
Overdrivr 5:cd94bb58e096 46 uint32_t emplace_i8(TM_msg* m, int8_t* dst)
Overdrivr 5:cd94bb58e096 47 {
Overdrivr 5:cd94bb58e096 48 if(m->type != TM_int8)
Overdrivr 5:cd94bb58e096 49 return 0;
Overdrivr 5:cd94bb58e096 50
Overdrivr 5:cd94bb58e096 51 memcpy(dst,m->buffer,1);
Overdrivr 5:cd94bb58e096 52 return 1;
Overdrivr 5:cd94bb58e096 53 }
Overdrivr 5:cd94bb58e096 54
Overdrivr 5:cd94bb58e096 55 uint32_t emplace_i16(TM_msg* m, int16_t* dst)
Overdrivr 5:cd94bb58e096 56 {
Overdrivr 5:cd94bb58e096 57 if(m->type != TM_int16)
Overdrivr 5:cd94bb58e096 58 return 0;
Overdrivr 5:cd94bb58e096 59
Overdrivr 5:cd94bb58e096 60 memcpy(dst,m->buffer,2);
Overdrivr 5:cd94bb58e096 61 return 1;
Overdrivr 5:cd94bb58e096 62 }
Overdrivr 5:cd94bb58e096 63
Overdrivr 5:cd94bb58e096 64 uint32_t emplace_i32(TM_msg* m, int32_t* dst)
Overdrivr 5:cd94bb58e096 65 {
Overdrivr 5:cd94bb58e096 66 if(m->type != TM_int32)
Overdrivr 5:cd94bb58e096 67 return 0;
Overdrivr 5:cd94bb58e096 68
Overdrivr 5:cd94bb58e096 69 memcpy(dst,m->buffer,4);
Overdrivr 5:cd94bb58e096 70 return 1;
Overdrivr 5:cd94bb58e096 71 }
Overdrivr 5:cd94bb58e096 72
Overdrivr 5:cd94bb58e096 73 uint32_t emplace_f32(TM_msg* m, float* dst)
Overdrivr 5:cd94bb58e096 74 {
Overdrivr 5:cd94bb58e096 75 if(m->type != TM_float32)
Overdrivr 5:cd94bb58e096 76 return 0;
Overdrivr 5:cd94bb58e096 77
Overdrivr 5:cd94bb58e096 78 memcpy(dst,m->buffer,4);
Overdrivr 5:cd94bb58e096 79 return 1;
Overdrivr 5:cd94bb58e096 80 }
Overdrivr 5:cd94bb58e096 81
Overdrivr 5:cd94bb58e096 82 uint32_t match(TM_msg * m, const char * topicToMatch)
Overdrivr 5:cd94bb58e096 83 {
Overdrivr 5:cd94bb58e096 84 if(strcmp(m->topic,topicToMatch) == 0)
Overdrivr 5:cd94bb58e096 85 return 1;
Overdrivr 5:cd94bb58e096 86
Overdrivr 5:cd94bb58e096 87 return 0;
Overdrivr 5:cd94bb58e096 88 }
Overdrivr 5:cd94bb58e096 89
Overdrivr 5:cd94bb58e096 90 uint32_t fullmatch(TM_msg * m, const char * topicToMatch, TM_type typeToMatch)
Overdrivr 5:cd94bb58e096 91 {
Overdrivr 5:cd94bb58e096 92 if(strcmp(m->topic,topicToMatch) == 0 && m->type == typeToMatch)
Overdrivr 5:cd94bb58e096 93 return 1;
Overdrivr 5:cd94bb58e096 94
Overdrivr 5:cd94bb58e096 95 return 0;
Overdrivr 5:cd94bb58e096 96 }
Overdrivr 5:cd94bb58e096 97
Overdrivr 5:cd94bb58e096 98 uint32_t update(TM_msg * msg, const char *topic, char *var, size_t bufSize)
Overdrivr 5:cd94bb58e096 99 {
Overdrivr 5:cd94bb58e096 100 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 101 return emplace(msg, var, bufSize);
Overdrivr 5:cd94bb58e096 102
Overdrivr 5:cd94bb58e096 103 return 0;
Overdrivr 5:cd94bb58e096 104 }
Overdrivr 5:cd94bb58e096 105
Overdrivr 5:cd94bb58e096 106 uint32_t update_u8(TM_msg * msg, const char *topic, uint8_t *var)
Overdrivr 5:cd94bb58e096 107 {
Overdrivr 5:cd94bb58e096 108 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 109 return emplace_u8(msg, var);
Overdrivr 5:cd94bb58e096 110
Overdrivr 5:cd94bb58e096 111 return 0;
Overdrivr 5:cd94bb58e096 112 }
Overdrivr 5:cd94bb58e096 113
Overdrivr 5:cd94bb58e096 114 uint32_t update_u16(TM_msg * msg, const char *topic, uint16_t *var)
Overdrivr 5:cd94bb58e096 115 {
Overdrivr 5:cd94bb58e096 116 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 117 return emplace_u16(msg, var);
Overdrivr 5:cd94bb58e096 118
Overdrivr 5:cd94bb58e096 119 return 0;
Overdrivr 5:cd94bb58e096 120 }
Overdrivr 5:cd94bb58e096 121
Overdrivr 5:cd94bb58e096 122 uint32_t update_u32(TM_msg * msg, const char *topic, uint32_t *var)
Overdrivr 5:cd94bb58e096 123 {
Overdrivr 5:cd94bb58e096 124 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 125 return emplace_u32(msg, var);
Overdrivr 5:cd94bb58e096 126
Overdrivr 5:cd94bb58e096 127 return 0;
Overdrivr 5:cd94bb58e096 128 }
Overdrivr 5:cd94bb58e096 129
Overdrivr 5:cd94bb58e096 130 uint32_t update_i8(TM_msg * msg, const char *topic, int8_t *var)
Overdrivr 5:cd94bb58e096 131 {
Overdrivr 5:cd94bb58e096 132 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 133 return emplace_i8(msg, var);
Overdrivr 5:cd94bb58e096 134
Overdrivr 5:cd94bb58e096 135 return 0;
Overdrivr 5:cd94bb58e096 136 }
Overdrivr 5:cd94bb58e096 137
Overdrivr 5:cd94bb58e096 138 uint32_t update_i16(TM_msg * msg, const char *topic, int16_t *var)
Overdrivr 5:cd94bb58e096 139 {
Overdrivr 5:cd94bb58e096 140 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 141 return emplace_i16(msg, var);
Overdrivr 5:cd94bb58e096 142
Overdrivr 5:cd94bb58e096 143 return 0;
Overdrivr 5:cd94bb58e096 144 }
Overdrivr 5:cd94bb58e096 145
Overdrivr 5:cd94bb58e096 146 uint32_t update_i32(TM_msg * msg, const char *topic, int32_t *var)
Overdrivr 5:cd94bb58e096 147 {
Overdrivr 5:cd94bb58e096 148 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 149 return emplace_i32(msg, var);
Overdrivr 5:cd94bb58e096 150
Overdrivr 5:cd94bb58e096 151 return 0;
Overdrivr 5:cd94bb58e096 152 }
Overdrivr 5:cd94bb58e096 153
Overdrivr 5:cd94bb58e096 154 uint32_t update_f32(TM_msg * msg, const char *topic, float *var)
Overdrivr 5:cd94bb58e096 155 {
Overdrivr 5:cd94bb58e096 156 if(strcmp(topic,msg->topic) == 0)
Overdrivr 5:cd94bb58e096 157 return emplace_f32(msg, var);
Overdrivr 5:cd94bb58e096 158
Overdrivr 5:cd94bb58e096 159 return 0;
Overdrivr 5:cd94bb58e096 160 }