modify for Hydro version

Dependencies:   MODSERIAL

Fork of rosserial_mbed_lib by nucho

Committer:
jjzak
Date:
Sat Oct 26 15:38:35 2013 +0000
Revision:
5:8cd48977ec68
modify for Hydro version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jjzak 5:8cd48977ec68 1 #ifndef _ROS_sensor_msgs_Illuminance_h
jjzak 5:8cd48977ec68 2 #define _ROS_sensor_msgs_Illuminance_h
jjzak 5:8cd48977ec68 3
jjzak 5:8cd48977ec68 4 #include <stdint.h>
jjzak 5:8cd48977ec68 5 #include <string.h>
jjzak 5:8cd48977ec68 6 #include <stdlib.h>
jjzak 5:8cd48977ec68 7 #include "ros/msg.h"
jjzak 5:8cd48977ec68 8 #include "std_msgs/Header.h"
jjzak 5:8cd48977ec68 9
jjzak 5:8cd48977ec68 10 namespace sensor_msgs
jjzak 5:8cd48977ec68 11 {
jjzak 5:8cd48977ec68 12
jjzak 5:8cd48977ec68 13 class Illuminance : public ros::Msg
jjzak 5:8cd48977ec68 14 {
jjzak 5:8cd48977ec68 15 public:
jjzak 5:8cd48977ec68 16 std_msgs::Header header;
jjzak 5:8cd48977ec68 17 float illuminance;
jjzak 5:8cd48977ec68 18 float variance;
jjzak 5:8cd48977ec68 19
jjzak 5:8cd48977ec68 20 virtual int serialize(unsigned char *outbuffer) const
jjzak 5:8cd48977ec68 21 {
jjzak 5:8cd48977ec68 22 int offset = 0;
jjzak 5:8cd48977ec68 23 offset += this->header.serialize(outbuffer + offset);
jjzak 5:8cd48977ec68 24 int32_t * val_illuminance = (int32_t *) &(this->illuminance);
jjzak 5:8cd48977ec68 25 int32_t exp_illuminance = (((*val_illuminance)>>23)&255);
jjzak 5:8cd48977ec68 26 if(exp_illuminance != 0)
jjzak 5:8cd48977ec68 27 exp_illuminance += 1023-127;
jjzak 5:8cd48977ec68 28 int32_t sig_illuminance = *val_illuminance;
jjzak 5:8cd48977ec68 29 *(outbuffer + offset++) = 0;
jjzak 5:8cd48977ec68 30 *(outbuffer + offset++) = 0;
jjzak 5:8cd48977ec68 31 *(outbuffer + offset++) = 0;
jjzak 5:8cd48977ec68 32 *(outbuffer + offset++) = (sig_illuminance<<5) & 0xff;
jjzak 5:8cd48977ec68 33 *(outbuffer + offset++) = (sig_illuminance>>3) & 0xff;
jjzak 5:8cd48977ec68 34 *(outbuffer + offset++) = (sig_illuminance>>11) & 0xff;
jjzak 5:8cd48977ec68 35 *(outbuffer + offset++) = ((exp_illuminance<<4) & 0xF0) | ((sig_illuminance>>19)&0x0F);
jjzak 5:8cd48977ec68 36 *(outbuffer + offset++) = (exp_illuminance>>4) & 0x7F;
jjzak 5:8cd48977ec68 37 if(this->illuminance < 0) *(outbuffer + offset -1) |= 0x80;
jjzak 5:8cd48977ec68 38 int32_t * val_variance = (int32_t *) &(this->variance);
jjzak 5:8cd48977ec68 39 int32_t exp_variance = (((*val_variance)>>23)&255);
jjzak 5:8cd48977ec68 40 if(exp_variance != 0)
jjzak 5:8cd48977ec68 41 exp_variance += 1023-127;
jjzak 5:8cd48977ec68 42 int32_t sig_variance = *val_variance;
jjzak 5:8cd48977ec68 43 *(outbuffer + offset++) = 0;
jjzak 5:8cd48977ec68 44 *(outbuffer + offset++) = 0;
jjzak 5:8cd48977ec68 45 *(outbuffer + offset++) = 0;
jjzak 5:8cd48977ec68 46 *(outbuffer + offset++) = (sig_variance<<5) & 0xff;
jjzak 5:8cd48977ec68 47 *(outbuffer + offset++) = (sig_variance>>3) & 0xff;
jjzak 5:8cd48977ec68 48 *(outbuffer + offset++) = (sig_variance>>11) & 0xff;
jjzak 5:8cd48977ec68 49 *(outbuffer + offset++) = ((exp_variance<<4) & 0xF0) | ((sig_variance>>19)&0x0F);
jjzak 5:8cd48977ec68 50 *(outbuffer + offset++) = (exp_variance>>4) & 0x7F;
jjzak 5:8cd48977ec68 51 if(this->variance < 0) *(outbuffer + offset -1) |= 0x80;
jjzak 5:8cd48977ec68 52 return offset;
jjzak 5:8cd48977ec68 53 }
jjzak 5:8cd48977ec68 54
jjzak 5:8cd48977ec68 55 virtual int deserialize(unsigned char *inbuffer)
jjzak 5:8cd48977ec68 56 {
jjzak 5:8cd48977ec68 57 int offset = 0;
jjzak 5:8cd48977ec68 58 offset += this->header.deserialize(inbuffer + offset);
jjzak 5:8cd48977ec68 59 uint32_t * val_illuminance = (uint32_t*) &(this->illuminance);
jjzak 5:8cd48977ec68 60 offset += 3;
jjzak 5:8cd48977ec68 61 *val_illuminance = ((uint32_t)(*(inbuffer + offset++))>>5 & 0x07);
jjzak 5:8cd48977ec68 62 *val_illuminance |= ((uint32_t)(*(inbuffer + offset++)) & 0xff)<<3;
jjzak 5:8cd48977ec68 63 *val_illuminance |= ((uint32_t)(*(inbuffer + offset++)) & 0xff)<<11;
jjzak 5:8cd48977ec68 64 *val_illuminance |= ((uint32_t)(*(inbuffer + offset)) & 0x0f)<<19;
jjzak 5:8cd48977ec68 65 uint32_t exp_illuminance = ((uint32_t)(*(inbuffer + offset++))&0xf0)>>4;
jjzak 5:8cd48977ec68 66 exp_illuminance |= ((uint32_t)(*(inbuffer + offset)) & 0x7f)<<4;
jjzak 5:8cd48977ec68 67 if(exp_illuminance !=0)
jjzak 5:8cd48977ec68 68 *val_illuminance |= ((exp_illuminance)-1023+127)<<23;
jjzak 5:8cd48977ec68 69 if( ((*(inbuffer+offset++)) & 0x80) > 0) this->illuminance = -this->illuminance;
jjzak 5:8cd48977ec68 70 uint32_t * val_variance = (uint32_t*) &(this->variance);
jjzak 5:8cd48977ec68 71 offset += 3;
jjzak 5:8cd48977ec68 72 *val_variance = ((uint32_t)(*(inbuffer + offset++))>>5 & 0x07);
jjzak 5:8cd48977ec68 73 *val_variance |= ((uint32_t)(*(inbuffer + offset++)) & 0xff)<<3;
jjzak 5:8cd48977ec68 74 *val_variance |= ((uint32_t)(*(inbuffer + offset++)) & 0xff)<<11;
jjzak 5:8cd48977ec68 75 *val_variance |= ((uint32_t)(*(inbuffer + offset)) & 0x0f)<<19;
jjzak 5:8cd48977ec68 76 uint32_t exp_variance = ((uint32_t)(*(inbuffer + offset++))&0xf0)>>4;
jjzak 5:8cd48977ec68 77 exp_variance |= ((uint32_t)(*(inbuffer + offset)) & 0x7f)<<4;
jjzak 5:8cd48977ec68 78 if(exp_variance !=0)
jjzak 5:8cd48977ec68 79 *val_variance |= ((exp_variance)-1023+127)<<23;
jjzak 5:8cd48977ec68 80 if( ((*(inbuffer+offset++)) & 0x80) > 0) this->variance = -this->variance;
jjzak 5:8cd48977ec68 81 return offset;
jjzak 5:8cd48977ec68 82 }
jjzak 5:8cd48977ec68 83
jjzak 5:8cd48977ec68 84 const char * getType(){ return "sensor_msgs/Illuminance"; };
jjzak 5:8cd48977ec68 85 const char * getMD5(){ return "8cf5febb0952fca9d650c3d11a81a188"; };
jjzak 5:8cd48977ec68 86
jjzak 5:8cd48977ec68 87 };
jjzak 5:8cd48977ec68 88
jjzak 5:8cd48977ec68 89 }
jjzak 5:8cd48977ec68 90 #endif