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
c_api/telemetry_utils.cpp@6:f5e1b079bffd, 2016-03-09 (annotated)
- Committer:
- Overdrivr
- Date:
- Wed Mar 09 13:41:27 2016 +0000
- Revision:
- 6:f5e1b079bffd
- Parent:
- c_api/telemetry_utils.c@5:cd94bb58e096
Fixed build.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |