Generic communication interface between the wireless board (mote) and the sensor board. Any kind of sensor board can be connected to the mote using this specification given it provides a SPI peripheral, one input pin with interrupt capability and one digital output. The sensor board must implement a special register set from which all required information can be retrieved. Protocol: http://is.gd/wuQorh Github: http://is.gd/ySj1L9

Dependencies:   mbed-src

Committer:
marcelobarrosalmeida
Date:
Tue Apr 08 16:34:20 2014 +0000
Revision:
1:acdf490d94a7
Adding accel to sensor list

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcelobarrosalmeida 1:acdf490d94a7 1 #include <stdint.h>
marcelobarrosalmeida 1:acdf490d94a7 2 #include "buf_io.h"
marcelobarrosalmeida 1:acdf490d94a7 3
marcelobarrosalmeida 1:acdf490d94a7 4 /* --- swap functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 5
marcelobarrosalmeida 1:acdf490d94a7 6 uint16_t buf_io_swap16(uint16_t orig_value)
marcelobarrosalmeida 1:acdf490d94a7 7 {
marcelobarrosalmeida 1:acdf490d94a7 8 uint16_t value = ((orig_value & 0x00FF) << 8) |
marcelobarrosalmeida 1:acdf490d94a7 9 ((orig_value & 0xFF00) >> 8) ;
marcelobarrosalmeida 1:acdf490d94a7 10 return value;
marcelobarrosalmeida 1:acdf490d94a7 11 }
marcelobarrosalmeida 1:acdf490d94a7 12
marcelobarrosalmeida 1:acdf490d94a7 13 uint32_t buf_io_swap32(uint32_t orig_value)
marcelobarrosalmeida 1:acdf490d94a7 14 {
marcelobarrosalmeida 1:acdf490d94a7 15 uint32_t value = ((orig_value & 0x000000FF) << 24) |
marcelobarrosalmeida 1:acdf490d94a7 16 ((orig_value & 0x0000FF00) << 8 ) |
marcelobarrosalmeida 1:acdf490d94a7 17 ((orig_value & 0x00FF0000) >> 8 ) |
marcelobarrosalmeida 1:acdf490d94a7 18 ((orig_value & 0xFF000000) >> 24);
marcelobarrosalmeida 1:acdf490d94a7 19 return value;
marcelobarrosalmeida 1:acdf490d94a7 20 }
marcelobarrosalmeida 1:acdf490d94a7 21
marcelobarrosalmeida 1:acdf490d94a7 22 void buf_io_swap16p(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 23 {
marcelobarrosalmeida 1:acdf490d94a7 24 uint8_t value[2];
marcelobarrosalmeida 1:acdf490d94a7 25 value[1] = *buf++;
marcelobarrosalmeida 1:acdf490d94a7 26 value[0] = *buf++;
marcelobarrosalmeida 1:acdf490d94a7 27 *--buf = value[1];
marcelobarrosalmeida 1:acdf490d94a7 28 *--buf = value[0];
marcelobarrosalmeida 1:acdf490d94a7 29 }
marcelobarrosalmeida 1:acdf490d94a7 30
marcelobarrosalmeida 1:acdf490d94a7 31 void buf_io_swap32p(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 32 {
marcelobarrosalmeida 1:acdf490d94a7 33 uint8_t value[4];
marcelobarrosalmeida 1:acdf490d94a7 34 value[3] = *buf++;
marcelobarrosalmeida 1:acdf490d94a7 35 value[2] = *buf++;
marcelobarrosalmeida 1:acdf490d94a7 36 value[1] = *buf++;
marcelobarrosalmeida 1:acdf490d94a7 37 value[0] = *buf++;
marcelobarrosalmeida 1:acdf490d94a7 38 *--buf = value[3];
marcelobarrosalmeida 1:acdf490d94a7 39 *--buf = value[2];
marcelobarrosalmeida 1:acdf490d94a7 40 *--buf = value[1];
marcelobarrosalmeida 1:acdf490d94a7 41 *--buf = value[0];
marcelobarrosalmeida 1:acdf490d94a7 42 }
marcelobarrosalmeida 1:acdf490d94a7 43
marcelobarrosalmeida 1:acdf490d94a7 44 uint8_t buf_io_swap8b(uint8_t orig_value)
marcelobarrosalmeida 1:acdf490d94a7 45 {
marcelobarrosalmeida 1:acdf490d94a7 46 uint8_t value = ((orig_value & 0x01) << 7) |
marcelobarrosalmeida 1:acdf490d94a7 47 ((orig_value & 0x02) << 5) |
marcelobarrosalmeida 1:acdf490d94a7 48 ((orig_value & 0x04) << 3) |
marcelobarrosalmeida 1:acdf490d94a7 49 ((orig_value & 0x08) << 1) |
marcelobarrosalmeida 1:acdf490d94a7 50 ((orig_value & 0x10) >> 1) |
marcelobarrosalmeida 1:acdf490d94a7 51 ((orig_value & 0x20) >> 3) |
marcelobarrosalmeida 1:acdf490d94a7 52 ((orig_value & 0x40) >> 5) |
marcelobarrosalmeida 1:acdf490d94a7 53 ((orig_value & 0x80) >> 7);
marcelobarrosalmeida 1:acdf490d94a7 54 return value;
marcelobarrosalmeida 1:acdf490d94a7 55 }
marcelobarrosalmeida 1:acdf490d94a7 56
marcelobarrosalmeida 1:acdf490d94a7 57 /* --- 8 bits GET functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 58
marcelobarrosalmeida 1:acdf490d94a7 59 uint8_t buf_io_get8_fl(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 60 {
marcelobarrosalmeida 1:acdf490d94a7 61 return buf[0];
marcelobarrosalmeida 1:acdf490d94a7 62 }
marcelobarrosalmeida 1:acdf490d94a7 63
marcelobarrosalmeida 1:acdf490d94a7 64 uint8_t buf_io_get8_fb(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 65 {
marcelobarrosalmeida 1:acdf490d94a7 66 return buf[0];
marcelobarrosalmeida 1:acdf490d94a7 67 }
marcelobarrosalmeida 1:acdf490d94a7 68
marcelobarrosalmeida 1:acdf490d94a7 69 uint8_t buf_io_get8_fl_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 70 {
marcelobarrosalmeida 1:acdf490d94a7 71 uint8_t value = buf_io_get8_fl(*buf);
marcelobarrosalmeida 1:acdf490d94a7 72 *buf += 1;
marcelobarrosalmeida 1:acdf490d94a7 73 return value;
marcelobarrosalmeida 1:acdf490d94a7 74 }
marcelobarrosalmeida 1:acdf490d94a7 75
marcelobarrosalmeida 1:acdf490d94a7 76 uint8_t buf_io_get8_fb_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 77 {
marcelobarrosalmeida 1:acdf490d94a7 78 uint8_t value = buf_io_get8_fb(*buf);
marcelobarrosalmeida 1:acdf490d94a7 79 *buf += 1;
marcelobarrosalmeida 1:acdf490d94a7 80 return value;
marcelobarrosalmeida 1:acdf490d94a7 81 }
marcelobarrosalmeida 1:acdf490d94a7 82
marcelobarrosalmeida 1:acdf490d94a7 83 /* --- 16 bits GET functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 84
marcelobarrosalmeida 1:acdf490d94a7 85 uint16_t buf_io_get16_fl(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 86 {
marcelobarrosalmeida 1:acdf490d94a7 87 uint16_t value = buf[0] | (buf[1] << 8);
marcelobarrosalmeida 1:acdf490d94a7 88 return value;
marcelobarrosalmeida 1:acdf490d94a7 89 }
marcelobarrosalmeida 1:acdf490d94a7 90
marcelobarrosalmeida 1:acdf490d94a7 91 uint16_t buf_io_get16_fb(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 92 {
marcelobarrosalmeida 1:acdf490d94a7 93 uint16_t value = buf[1] | (buf[0] << 8);
marcelobarrosalmeida 1:acdf490d94a7 94 return value;
marcelobarrosalmeida 1:acdf490d94a7 95 }
marcelobarrosalmeida 1:acdf490d94a7 96
marcelobarrosalmeida 1:acdf490d94a7 97 uint16_t buf_io_get16_fl_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 98 {
marcelobarrosalmeida 1:acdf490d94a7 99 uint16_t value = buf_io_get16_fl(*buf);
marcelobarrosalmeida 1:acdf490d94a7 100 *buf += 2;
marcelobarrosalmeida 1:acdf490d94a7 101 return value;
marcelobarrosalmeida 1:acdf490d94a7 102 }
marcelobarrosalmeida 1:acdf490d94a7 103
marcelobarrosalmeida 1:acdf490d94a7 104 uint16_t buf_io_get16_fb_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 105 {
marcelobarrosalmeida 1:acdf490d94a7 106 uint16_t value = buf_io_get16_fb(*buf);
marcelobarrosalmeida 1:acdf490d94a7 107 *buf += 2;
marcelobarrosalmeida 1:acdf490d94a7 108 return value;
marcelobarrosalmeida 1:acdf490d94a7 109 }
marcelobarrosalmeida 1:acdf490d94a7 110
marcelobarrosalmeida 1:acdf490d94a7 111 /* --- 32 bits GET functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 112
marcelobarrosalmeida 1:acdf490d94a7 113 uint32_t buf_io_get32_fl(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 114 {
marcelobarrosalmeida 1:acdf490d94a7 115 uint32_t value = buf[0] | (buf[1] << 8 ) | (buf[2] << 16) | (buf[3] << 24);
marcelobarrosalmeida 1:acdf490d94a7 116 return value;
marcelobarrosalmeida 1:acdf490d94a7 117 }
marcelobarrosalmeida 1:acdf490d94a7 118
marcelobarrosalmeida 1:acdf490d94a7 119 uint32_t buf_io_get32_fb(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 120 {
marcelobarrosalmeida 1:acdf490d94a7 121 uint32_t value = buf[3] | (buf[2] << 8 ) | (buf[1] << 16) | (buf[0] << 24);
marcelobarrosalmeida 1:acdf490d94a7 122 return value;
marcelobarrosalmeida 1:acdf490d94a7 123 }
marcelobarrosalmeida 1:acdf490d94a7 124
marcelobarrosalmeida 1:acdf490d94a7 125 uint32_t buf_io_get32_fl_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 126 {
marcelobarrosalmeida 1:acdf490d94a7 127 uint32_t value = buf_io_get32_fl(*buf);
marcelobarrosalmeida 1:acdf490d94a7 128 *buf += 4;
marcelobarrosalmeida 1:acdf490d94a7 129 return value;
marcelobarrosalmeida 1:acdf490d94a7 130 }
marcelobarrosalmeida 1:acdf490d94a7 131
marcelobarrosalmeida 1:acdf490d94a7 132 uint32_t buf_io_get32_fb_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 133 {
marcelobarrosalmeida 1:acdf490d94a7 134 uint32_t value = buf_io_get32_fb(*buf);
marcelobarrosalmeida 1:acdf490d94a7 135 *buf += 4;
marcelobarrosalmeida 1:acdf490d94a7 136 return value;
marcelobarrosalmeida 1:acdf490d94a7 137 }
marcelobarrosalmeida 1:acdf490d94a7 138
marcelobarrosalmeida 1:acdf490d94a7 139 /* --- 64 bits GET functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 140
marcelobarrosalmeida 1:acdf490d94a7 141 uint64_t buf_io_get64_fl(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 142 {
marcelobarrosalmeida 1:acdf490d94a7 143 uint8_t *p1 = buf;
marcelobarrosalmeida 1:acdf490d94a7 144 uint8_t *p2 = (buf + 4);
marcelobarrosalmeida 1:acdf490d94a7 145 uint64_t v1 = p1[0] | (p1[1] << 8 ) | (p1[2] << 16) | (p1[3] << 24);
marcelobarrosalmeida 1:acdf490d94a7 146 uint64_t v2 = p2[0] | (p2[1] << 8 ) | (p2[2] << 16) | (p2[3] << 24);
marcelobarrosalmeida 1:acdf490d94a7 147 uint64_t value = (v2 << 32) | v1;
marcelobarrosalmeida 1:acdf490d94a7 148 return value;
marcelobarrosalmeida 1:acdf490d94a7 149 }
marcelobarrosalmeida 1:acdf490d94a7 150
marcelobarrosalmeida 1:acdf490d94a7 151 uint64_t buf_io_get64_fb(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 152 {
marcelobarrosalmeida 1:acdf490d94a7 153 uint8_t *p1 = buf;
marcelobarrosalmeida 1:acdf490d94a7 154 uint8_t *p2 = (buf + 4);
marcelobarrosalmeida 1:acdf490d94a7 155 uint64_t v1 = p1[3] | (p1[2] << 8 ) | (p1[1] << 16) | (p1[0] << 24);
marcelobarrosalmeida 1:acdf490d94a7 156 uint64_t v2 = p2[3] | (p2[2] << 8 ) | (p2[1] << 16) | (p2[0] << 24);
marcelobarrosalmeida 1:acdf490d94a7 157 uint64_t value = (v1 << 32) | v2;
marcelobarrosalmeida 1:acdf490d94a7 158 return value;
marcelobarrosalmeida 1:acdf490d94a7 159 }
marcelobarrosalmeida 1:acdf490d94a7 160
marcelobarrosalmeida 1:acdf490d94a7 161 uint64_t buf_io_get64_fl_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 162 {
marcelobarrosalmeida 1:acdf490d94a7 163 uint64_t value = buf_io_get64_fl(*buf);
marcelobarrosalmeida 1:acdf490d94a7 164 *buf += 8;
marcelobarrosalmeida 1:acdf490d94a7 165 return value;
marcelobarrosalmeida 1:acdf490d94a7 166 }
marcelobarrosalmeida 1:acdf490d94a7 167
marcelobarrosalmeida 1:acdf490d94a7 168 uint64_t buf_io_get64_fb_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 169 {
marcelobarrosalmeida 1:acdf490d94a7 170 uint64_t value = buf_io_get64_fb(*buf);
marcelobarrosalmeida 1:acdf490d94a7 171 *buf += 8;
marcelobarrosalmeida 1:acdf490d94a7 172 return value;
marcelobarrosalmeida 1:acdf490d94a7 173 }
marcelobarrosalmeida 1:acdf490d94a7 174
marcelobarrosalmeida 1:acdf490d94a7 175 /* --- float GET functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 176
marcelobarrosalmeida 1:acdf490d94a7 177 float buf_io_getf_fl(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 178 {
marcelobarrosalmeida 1:acdf490d94a7 179 uint32_t value = buf_io_get32_fl(buf);
marcelobarrosalmeida 1:acdf490d94a7 180 return *((float* )&value);
marcelobarrosalmeida 1:acdf490d94a7 181 }
marcelobarrosalmeida 1:acdf490d94a7 182
marcelobarrosalmeida 1:acdf490d94a7 183 float buf_io_getf_fb(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 184 {
marcelobarrosalmeida 1:acdf490d94a7 185 uint32_t value = buf_io_get32_fb(buf);
marcelobarrosalmeida 1:acdf490d94a7 186 return *((float* )&value);
marcelobarrosalmeida 1:acdf490d94a7 187 }
marcelobarrosalmeida 1:acdf490d94a7 188
marcelobarrosalmeida 1:acdf490d94a7 189 float buf_io_getf_fl_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 190 {
marcelobarrosalmeida 1:acdf490d94a7 191 float value = buf_io_getf_fl(*buf);
marcelobarrosalmeida 1:acdf490d94a7 192 (*buf) += 4;
marcelobarrosalmeida 1:acdf490d94a7 193 return value;
marcelobarrosalmeida 1:acdf490d94a7 194 }
marcelobarrosalmeida 1:acdf490d94a7 195
marcelobarrosalmeida 1:acdf490d94a7 196 float buf_io_getf_fb_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 197 {
marcelobarrosalmeida 1:acdf490d94a7 198 float value = buf_io_getf_fb(*buf);
marcelobarrosalmeida 1:acdf490d94a7 199 (*buf) += 4;
marcelobarrosalmeida 1:acdf490d94a7 200 return value;
marcelobarrosalmeida 1:acdf490d94a7 201 }
marcelobarrosalmeida 1:acdf490d94a7 202
marcelobarrosalmeida 1:acdf490d94a7 203 /* --- double GET functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 204
marcelobarrosalmeida 1:acdf490d94a7 205 double buf_io_getd_fl(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 206 {
marcelobarrosalmeida 1:acdf490d94a7 207 uint64_t value = buf_io_get64_fl(buf);
marcelobarrosalmeida 1:acdf490d94a7 208 return *((double* )&value);
marcelobarrosalmeida 1:acdf490d94a7 209 }
marcelobarrosalmeida 1:acdf490d94a7 210
marcelobarrosalmeida 1:acdf490d94a7 211 double buf_io_getd_fb(uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 212 {
marcelobarrosalmeida 1:acdf490d94a7 213 uint64_t value = buf_io_get64_fb(buf);
marcelobarrosalmeida 1:acdf490d94a7 214 return *((double* )&value);
marcelobarrosalmeida 1:acdf490d94a7 215 }
marcelobarrosalmeida 1:acdf490d94a7 216
marcelobarrosalmeida 1:acdf490d94a7 217 double buf_io_getd_fl_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 218 {
marcelobarrosalmeida 1:acdf490d94a7 219 double value = buf_io_getd_fl(*buf);
marcelobarrosalmeida 1:acdf490d94a7 220 (*buf) += 8;
marcelobarrosalmeida 1:acdf490d94a7 221 return value;
marcelobarrosalmeida 1:acdf490d94a7 222 }
marcelobarrosalmeida 1:acdf490d94a7 223
marcelobarrosalmeida 1:acdf490d94a7 224 double buf_io_getd_fb_apr(uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 225 {
marcelobarrosalmeida 1:acdf490d94a7 226 double ret = buf_io_getd_fb(*buf);
marcelobarrosalmeida 1:acdf490d94a7 227 (*buf) += 8;
marcelobarrosalmeida 1:acdf490d94a7 228 return ret;
marcelobarrosalmeida 1:acdf490d94a7 229 }
marcelobarrosalmeida 1:acdf490d94a7 230
marcelobarrosalmeida 1:acdf490d94a7 231 /* --- 8 bits PUT functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 232
marcelobarrosalmeida 1:acdf490d94a7 233 void buf_io_put8_tl(uint8_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 234 {
marcelobarrosalmeida 1:acdf490d94a7 235 buf[0] = value;
marcelobarrosalmeida 1:acdf490d94a7 236 }
marcelobarrosalmeida 1:acdf490d94a7 237
marcelobarrosalmeida 1:acdf490d94a7 238 void buf_io_put8_tb(uint8_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 239 {
marcelobarrosalmeida 1:acdf490d94a7 240 buf[0] = value;
marcelobarrosalmeida 1:acdf490d94a7 241 }
marcelobarrosalmeida 1:acdf490d94a7 242
marcelobarrosalmeida 1:acdf490d94a7 243 void buf_io_put8_tl_apr(uint8_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 244 {
marcelobarrosalmeida 1:acdf490d94a7 245 buf_io_put8_tl(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 246 *buf += 1;
marcelobarrosalmeida 1:acdf490d94a7 247 }
marcelobarrosalmeida 1:acdf490d94a7 248
marcelobarrosalmeida 1:acdf490d94a7 249 void buf_io_put8_tb_apr(uint8_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 250 {
marcelobarrosalmeida 1:acdf490d94a7 251 buf_io_put8_tb(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 252 *buf += 1;
marcelobarrosalmeida 1:acdf490d94a7 253 }
marcelobarrosalmeida 1:acdf490d94a7 254
marcelobarrosalmeida 1:acdf490d94a7 255 /* --- 16 bits PUT functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 256
marcelobarrosalmeida 1:acdf490d94a7 257 void buf_io_put16_tl(uint16_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 258 {
marcelobarrosalmeida 1:acdf490d94a7 259 buf[0] = (uint8_t)(value );
marcelobarrosalmeida 1:acdf490d94a7 260 buf[1] = (uint8_t)(value >> 8);
marcelobarrosalmeida 1:acdf490d94a7 261 }
marcelobarrosalmeida 1:acdf490d94a7 262
marcelobarrosalmeida 1:acdf490d94a7 263 void buf_io_put16_tb(uint16_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 264 {
marcelobarrosalmeida 1:acdf490d94a7 265 buf[1] = (uint8_t)(value );
marcelobarrosalmeida 1:acdf490d94a7 266 buf[0] = (uint8_t)(value >> 8);
marcelobarrosalmeida 1:acdf490d94a7 267 }
marcelobarrosalmeida 1:acdf490d94a7 268
marcelobarrosalmeida 1:acdf490d94a7 269 void buf_io_put16_tl_apr(uint16_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 270 {
marcelobarrosalmeida 1:acdf490d94a7 271 buf_io_put16_tl(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 272 *buf += 2;
marcelobarrosalmeida 1:acdf490d94a7 273 }
marcelobarrosalmeida 1:acdf490d94a7 274
marcelobarrosalmeida 1:acdf490d94a7 275 void buf_io_put16_tb_apr(uint16_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 276 {
marcelobarrosalmeida 1:acdf490d94a7 277 buf_io_put16_tb(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 278 *buf += 2;
marcelobarrosalmeida 1:acdf490d94a7 279 }
marcelobarrosalmeida 1:acdf490d94a7 280
marcelobarrosalmeida 1:acdf490d94a7 281 /* --- 32 bits PUT functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 282
marcelobarrosalmeida 1:acdf490d94a7 283 void buf_io_put32_tl(uint32_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 284 {
marcelobarrosalmeida 1:acdf490d94a7 285 buf[0] = (uint8_t)(value );
marcelobarrosalmeida 1:acdf490d94a7 286 buf[1] = (uint8_t)(value >> 8 );
marcelobarrosalmeida 1:acdf490d94a7 287 buf[2] = (uint8_t)(value >> 16);
marcelobarrosalmeida 1:acdf490d94a7 288 buf[3] = (uint8_t)(value >> 24);
marcelobarrosalmeida 1:acdf490d94a7 289 }
marcelobarrosalmeida 1:acdf490d94a7 290
marcelobarrosalmeida 1:acdf490d94a7 291 void buf_io_put32_tb(uint32_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 292 {
marcelobarrosalmeida 1:acdf490d94a7 293 buf[3] = (uint8_t)(value );
marcelobarrosalmeida 1:acdf490d94a7 294 buf[2] = (uint8_t)(value >> 8 );
marcelobarrosalmeida 1:acdf490d94a7 295 buf[1] = (uint8_t)(value >> 16);
marcelobarrosalmeida 1:acdf490d94a7 296 buf[0] = (uint8_t)(value >> 24);
marcelobarrosalmeida 1:acdf490d94a7 297 }
marcelobarrosalmeida 1:acdf490d94a7 298
marcelobarrosalmeida 1:acdf490d94a7 299 void buf_io_put32_tl_apr(uint32_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 300 {
marcelobarrosalmeida 1:acdf490d94a7 301 buf_io_put32_tl(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 302 *buf += 4;
marcelobarrosalmeida 1:acdf490d94a7 303 }
marcelobarrosalmeida 1:acdf490d94a7 304
marcelobarrosalmeida 1:acdf490d94a7 305 void buf_io_put32_tb_apr(uint32_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 306 {
marcelobarrosalmeida 1:acdf490d94a7 307 buf_io_put32_tb(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 308 *buf += 4;
marcelobarrosalmeida 1:acdf490d94a7 309 }
marcelobarrosalmeida 1:acdf490d94a7 310
marcelobarrosalmeida 1:acdf490d94a7 311 /* --- 64 bits PUT functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 312
marcelobarrosalmeida 1:acdf490d94a7 313 void buf_io_put64_tl(uint64_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 314 {
marcelobarrosalmeida 1:acdf490d94a7 315 buf[0] = (uint8_t)(value );
marcelobarrosalmeida 1:acdf490d94a7 316 buf[1] = (uint8_t)(value >> 8 );
marcelobarrosalmeida 1:acdf490d94a7 317 buf[2] = (uint8_t)(value >> 16);
marcelobarrosalmeida 1:acdf490d94a7 318 buf[3] = (uint8_t)(value >> 24);
marcelobarrosalmeida 1:acdf490d94a7 319 buf[4] = (uint8_t)(value >> 32);
marcelobarrosalmeida 1:acdf490d94a7 320 buf[5] = (uint8_t)(value >> 40);
marcelobarrosalmeida 1:acdf490d94a7 321 buf[6] = (uint8_t)(value >> 48);
marcelobarrosalmeida 1:acdf490d94a7 322 buf[7] = (uint8_t)(value >> 56);
marcelobarrosalmeida 1:acdf490d94a7 323 }
marcelobarrosalmeida 1:acdf490d94a7 324
marcelobarrosalmeida 1:acdf490d94a7 325 void buf_io_put64_tb(uint64_t value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 326 {
marcelobarrosalmeida 1:acdf490d94a7 327 buf[7] = (uint8_t)(value );
marcelobarrosalmeida 1:acdf490d94a7 328 buf[6] = (uint8_t)(value >> 8 );
marcelobarrosalmeida 1:acdf490d94a7 329 buf[5] = (uint8_t)(value >> 16);
marcelobarrosalmeida 1:acdf490d94a7 330 buf[4] = (uint8_t)(value >> 24);
marcelobarrosalmeida 1:acdf490d94a7 331 buf[3] = (uint8_t)(value >> 32);
marcelobarrosalmeida 1:acdf490d94a7 332 buf[2] = (uint8_t)(value >> 40);
marcelobarrosalmeida 1:acdf490d94a7 333 buf[1] = (uint8_t)(value >> 48);
marcelobarrosalmeida 1:acdf490d94a7 334 buf[0] = (uint8_t)(value >> 56);
marcelobarrosalmeida 1:acdf490d94a7 335 }
marcelobarrosalmeida 1:acdf490d94a7 336
marcelobarrosalmeida 1:acdf490d94a7 337 void buf_io_put64_tl_apr(uint64_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 338 {
marcelobarrosalmeida 1:acdf490d94a7 339 buf_io_put64_tl(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 340 *buf += 8;
marcelobarrosalmeida 1:acdf490d94a7 341 }
marcelobarrosalmeida 1:acdf490d94a7 342
marcelobarrosalmeida 1:acdf490d94a7 343 void buf_io_put64_tb_apr(uint64_t value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 344 {
marcelobarrosalmeida 1:acdf490d94a7 345 buf_io_put64_tb(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 346 *buf += 8;
marcelobarrosalmeida 1:acdf490d94a7 347 }
marcelobarrosalmeida 1:acdf490d94a7 348
marcelobarrosalmeida 1:acdf490d94a7 349 /* --- float PUT functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 350
marcelobarrosalmeida 1:acdf490d94a7 351 void buf_io_putf_tl(float value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 352 {
marcelobarrosalmeida 1:acdf490d94a7 353 buf_io_put32_tl(*((uint32_t*) &value),buf);
marcelobarrosalmeida 1:acdf490d94a7 354 }
marcelobarrosalmeida 1:acdf490d94a7 355
marcelobarrosalmeida 1:acdf490d94a7 356 void buf_io_putf_tb(float value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 357 {
marcelobarrosalmeida 1:acdf490d94a7 358 buf_io_put32_tb(*((uint32_t*) &value),buf);
marcelobarrosalmeida 1:acdf490d94a7 359 }
marcelobarrosalmeida 1:acdf490d94a7 360
marcelobarrosalmeida 1:acdf490d94a7 361 void buf_io_putf_tl_apr(float value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 362 {
marcelobarrosalmeida 1:acdf490d94a7 363 buf_io_putf_tl(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 364 *buf += 4;
marcelobarrosalmeida 1:acdf490d94a7 365 }
marcelobarrosalmeida 1:acdf490d94a7 366
marcelobarrosalmeida 1:acdf490d94a7 367 void buf_io_putf_tb_apr(float value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 368 {
marcelobarrosalmeida 1:acdf490d94a7 369 buf_io_putf_tb(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 370 *buf += 4;
marcelobarrosalmeida 1:acdf490d94a7 371 }
marcelobarrosalmeida 1:acdf490d94a7 372
marcelobarrosalmeida 1:acdf490d94a7 373 /* --- double PUT functions ---------------------------- */
marcelobarrosalmeida 1:acdf490d94a7 374
marcelobarrosalmeida 1:acdf490d94a7 375 void buf_io_putd_tl(double value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 376 {
marcelobarrosalmeida 1:acdf490d94a7 377 buf_io_put64_tl(*((uint64_t*) &value),buf);
marcelobarrosalmeida 1:acdf490d94a7 378 }
marcelobarrosalmeida 1:acdf490d94a7 379
marcelobarrosalmeida 1:acdf490d94a7 380 void buf_io_putd_tb(double value, uint8_t *buf)
marcelobarrosalmeida 1:acdf490d94a7 381 {
marcelobarrosalmeida 1:acdf490d94a7 382 buf_io_put64_tb(*((uint64_t*) &value),buf);
marcelobarrosalmeida 1:acdf490d94a7 383 }
marcelobarrosalmeida 1:acdf490d94a7 384
marcelobarrosalmeida 1:acdf490d94a7 385 void buf_io_putd_tl_apr(double value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 386 {
marcelobarrosalmeida 1:acdf490d94a7 387 buf_io_putd_tl(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 388 *buf += 8;
marcelobarrosalmeida 1:acdf490d94a7 389 }
marcelobarrosalmeida 1:acdf490d94a7 390
marcelobarrosalmeida 1:acdf490d94a7 391 void buf_io_putd_tb_apr(double value, uint8_t **buf)
marcelobarrosalmeida 1:acdf490d94a7 392 {
marcelobarrosalmeida 1:acdf490d94a7 393 buf_io_putd_tb(value,*buf);
marcelobarrosalmeida 1:acdf490d94a7 394 *buf += 8;
marcelobarrosalmeida 1:acdf490d94a7 395 }