45 unsigned char frame_id;
46 unsigned char followed_data_length;
47 unsigned short data[MAX_DATA_SIZE];
52 bool serialise(ecl::PushAndPop<unsigned char> & byteStream)
54 unsigned char length = 2 + 2 * data.followed_data_length;
55 buildBytes(Header::ThreeAxisGyro, byteStream);
56 buildBytes(
length, byteStream);
57 buildBytes(data.frame_id, byteStream);
58 buildBytes(data.followed_data_length, byteStream);
59 for (
unsigned int i=0; i<data.followed_data_length; i++)
60 buildBytes(data.data[i], byteStream);
64 bool deserialise(ecl::PushAndPop<unsigned char> & byteStream)
66 if (byteStream.size() <
static_cast<unsigned int>(
length)+2)
72 unsigned char header_id(0x00), length_packed(0x00);
73 buildVariable(header_id, byteStream);
74 buildVariable(length_packed, byteStream);
75 if( header_id != Header::ThreeAxisGyro )
return false;
76 if(
length > length_packed )
return false;
78 buildVariable(data.frame_id, byteStream);
79 buildVariable(data.followed_data_length, byteStream);
80 if( length_packed != 2 + 2 * data.followed_data_length )
return false;
82 for (
unsigned int i=0; i<data.followed_data_length; i++)
83 buildVariable(data.data[i], byteStream);