29 virtual int serialize(
unsigned char *outbuffer)
const = 0;
31 virtual const char *
getType() = 0;
32 virtual const char *
getMD5() = 0;
47 const int32_t* val = (int32_t*) &f;
48 int32_t exp = ((*val >> 23) & 255);
58 *(outbuffer++) = (sig << 5) & 0xff;
59 *(outbuffer++) = (sig >> 3) & 0xff;
60 *(outbuffer++) = (sig >> 11) & 0xff;
61 *(outbuffer++) = ((exp << 4) & 0xF0) | ((sig >> 19) & 0x0F);
62 *(outbuffer++) = (exp >> 4) & 0x7F;
67 *(outbuffer - 1) |= 0x80;
85 uint32_t* val = (uint32_t*)f;
89 *val = ((uint32_t)(*(inbuffer++)) >> 5 & 0x07);
90 *val |= ((uint32_t)(*(inbuffer++)) & 0xff) << 3;
91 *val |= ((uint32_t)(*(inbuffer++)) & 0xff) << 11;
92 *val |= ((uint32_t)(*inbuffer) & 0x0f) << 19;
95 uint32_t exp = ((uint32_t)(*(inbuffer++)) & 0xf0)>>4;
96 exp |= ((uint32_t)(*inbuffer) & 0x7f) << 4;
99 *val |= ((exp) - 1023 + 127) << 23;
103 *val |= ((uint32_t)(*(inbuffer++)) & 0x80) << 24;
static int serializeAvrFloat64(unsigned char *outbuffer, const float f)
This tricky function handles promoting a 32bit float to a 64bit double, so that AVR can publish messa...
virtual int deserialize(unsigned char *data)=0
virtual const char * getType()=0
virtual const char * getMD5()=0
virtual int serialize(unsigned char *outbuffer) const =0
static int deserializeAvrFloat64(const unsigned char *inbuffer, float *f)
This tricky function handles demoting a 64bit double to a 32bit float, so that AVR can understand mes...