ROS Serial library for Mbed platforms for ROS Indigo Igloo. Check http://wiki.ros.org/rosserial_mbed/ for more information

Dependencies:   BufferedSerial

Dependents:   rosserial_mbed_hello_world_publisher rtos_base_control rosserial_mbed_F64MA ROS-RTOS ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Adc.h Source File

Adc.h

00001 #ifndef _ROS_rosserial_mbed_Adc_h
00002 #define _ROS_rosserial_mbed_Adc_h
00003 
00004 #include <stdint.h>
00005 #include <string.h>
00006 #include <stdlib.h>
00007 #include "ros/msg.h"
00008 
00009 namespace rosserial_mbed
00010 {
00011 
00012   class Adc : public ros::Msg
00013   {
00014     public:
00015       uint16_t adc0;
00016       uint16_t adc1;
00017       uint16_t adc2;
00018       uint16_t adc3;
00019       uint16_t adc4;
00020       uint16_t adc5;
00021 
00022     Adc():
00023       adc0(0),
00024       adc1(0),
00025       adc2(0),
00026       adc3(0),
00027       adc4(0),
00028       adc5(0)
00029     {
00030     }
00031 
00032     virtual int serialize(unsigned char *outbuffer) const
00033     {
00034       int offset = 0;
00035       *(outbuffer + offset + 0) = (this->adc0 >> (8 * 0)) & 0xFF;
00036       *(outbuffer + offset + 1) = (this->adc0 >> (8 * 1)) & 0xFF;
00037       offset += sizeof(this->adc0);
00038       *(outbuffer + offset + 0) = (this->adc1 >> (8 * 0)) & 0xFF;
00039       *(outbuffer + offset + 1) = (this->adc1 >> (8 * 1)) & 0xFF;
00040       offset += sizeof(this->adc1);
00041       *(outbuffer + offset + 0) = (this->adc2 >> (8 * 0)) & 0xFF;
00042       *(outbuffer + offset + 1) = (this->adc2 >> (8 * 1)) & 0xFF;
00043       offset += sizeof(this->adc2);
00044       *(outbuffer + offset + 0) = (this->adc3 >> (8 * 0)) & 0xFF;
00045       *(outbuffer + offset + 1) = (this->adc3 >> (8 * 1)) & 0xFF;
00046       offset += sizeof(this->adc3);
00047       *(outbuffer + offset + 0) = (this->adc4 >> (8 * 0)) & 0xFF;
00048       *(outbuffer + offset + 1) = (this->adc4 >> (8 * 1)) & 0xFF;
00049       offset += sizeof(this->adc4);
00050       *(outbuffer + offset + 0) = (this->adc5 >> (8 * 0)) & 0xFF;
00051       *(outbuffer + offset + 1) = (this->adc5 >> (8 * 1)) & 0xFF;
00052       offset += sizeof(this->adc5);
00053       return offset;
00054     }
00055 
00056     virtual int deserialize(unsigned char *inbuffer)
00057     {
00058       int offset = 0;
00059       this->adc0 =  ((uint16_t) (*(inbuffer + offset)));
00060       this->adc0 |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
00061       offset += sizeof(this->adc0);
00062       this->adc1 =  ((uint16_t) (*(inbuffer + offset)));
00063       this->adc1 |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
00064       offset += sizeof(this->adc1);
00065       this->adc2 =  ((uint16_t) (*(inbuffer + offset)));
00066       this->adc2 |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
00067       offset += sizeof(this->adc2);
00068       this->adc3 =  ((uint16_t) (*(inbuffer + offset)));
00069       this->adc3 |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
00070       offset += sizeof(this->adc3);
00071       this->adc4 =  ((uint16_t) (*(inbuffer + offset)));
00072       this->adc4 |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
00073       offset += sizeof(this->adc4);
00074       this->adc5 =  ((uint16_t) (*(inbuffer + offset)));
00075       this->adc5 |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
00076       offset += sizeof(this->adc5);
00077      return offset;
00078     }
00079 
00080     const char * getType(){ return "rosserial_mbed/Adc"; };
00081     const char * getMD5(){ return "6d7853a614e2e821319068311f2af25b"; };
00082 
00083   };
00084 
00085 }
00086 #endif