Go to the documentation of this file.00001
00006
00007
00008
00009
00010 #include <string>
00011 #include "../../include/mm_vision_msgs/image.hpp"
00012
00013
00014
00015
00016
00017 namespace mm_vision_msgs {
00018
00019
00020
00021
00022
00023 std::string imageType2String(const ImageType& image_type) {
00024 switch( image_type ) {
00025 case ( ImageType::QVGA ) : return std::string("QVGA");
00026 case ( ImageType::CQVGA ) : return std::string("CQVGA");
00027 case ( ImageType::VGA ) : return std::string("VGA");
00028 case ( ImageType::CVGA ) : return std::string("CVGA");
00029 default : return "Unknown";
00030 }
00031 }
00032
00033 }
00034
00035
00036
00037
00038
00039 namespace mm_messages {
00040
00041
00042
00043
00055 void Message<mm_vision_msgs::ImagePtr>::encode(const mm_vision_msgs::ImagePtr& image, ByteArray& buffer) {
00056
00057
00058 buffer = image->data;
00059 }
00060
00068 mm_vision_msgs::ImagePtr Message<mm_vision_msgs::ImagePtr>::decode(const unsigned char* buffer, const unsigned int& size) {
00069 mm_vision_msgs::ImagePtr image = std::make_shared<mm_vision_msgs::Image>();
00070 image->data.assign(buffer, buffer + size);
00071 if (size == 76800) {
00072 image->width = 320;
00073 image->height = 240;
00074 image->colour = false;
00075 } else if (size == 153600) {
00076 image->width = 320;
00077 image->height = 240;
00078 image->colour = true;
00079 } else if (size == 307200) {
00080 image->width = 640;
00081 image->height = 480;
00082 image->colour = false;
00083 } else if (size == 614400) {
00084 image->width = 640;
00085 image->height = 480;
00086 image->colour = true;
00087 }
00088 image->size = size;
00089 return image;
00090 }
00091
00092
00093 }