Today's the day. Renamed platform to framework.
This commit is contained in:
106
globalfunctions/conversion.cpp
Normal file
106
globalfunctions/conversion.cpp
Normal file
@ -0,0 +1,106 @@
|
||||
/*
|
||||
* conversion.cpp
|
||||
*
|
||||
* Created on: 07.05.2012
|
||||
* Author: baetz
|
||||
*/
|
||||
|
||||
#include <framework/globalfunctions/conversion.h>
|
||||
//TODO: This shall be optimized (later)!
|
||||
void convertToByteStream( uint16_t value, uint8_t* buffer, uint32_t* size ) {
|
||||
buffer[0] = (value & 0xFF00) >> 8;
|
||||
buffer[1] = (value & 0x00FF);
|
||||
*size += 2;
|
||||
}
|
||||
|
||||
void convertToByteStream( uint32_t value, uint8_t* buffer, uint32_t* size ) {
|
||||
buffer[0] = (value & 0xFF000000) >> 24;
|
||||
buffer[1] = (value & 0x00FF0000) >> 16;
|
||||
buffer[2] = (value & 0x0000FF00) >> 8;
|
||||
buffer[3] = (value & 0x000000FF);
|
||||
*size +=4;
|
||||
}
|
||||
|
||||
void convertToByteStream( int16_t value, uint8_t* buffer, uint32_t* size ) {
|
||||
buffer[0] = (value & 0xFF00) >> 8;
|
||||
buffer[1] = (value & 0x00FF);
|
||||
*size += 2;
|
||||
}
|
||||
|
||||
void convertToByteStream( int32_t value, uint8_t* buffer, uint32_t* size ) {
|
||||
buffer[0] = (value & 0xFF000000) >> 24;
|
||||
buffer[1] = (value & 0x00FF0000) >> 16;
|
||||
buffer[2] = (value & 0x0000FF00) >> 8;
|
||||
buffer[3] = (value & 0x000000FF);
|
||||
*size += 4;
|
||||
}
|
||||
|
||||
//void convertToByteStream( uint64_t value, uint8_t* buffer, uint32_t* size ) {
|
||||
// buffer[0] = (value & 0xFF00000000000000) >> 56;
|
||||
// buffer[1] = (value & 0x00FF000000000000) >> 48;
|
||||
// buffer[2] = (value & 0x0000FF0000000000) >> 40;
|
||||
// buffer[3] = (value & 0x000000FF00000000) >> 32;
|
||||
// buffer[4] = (value & 0x00000000FF000000) >> 24;
|
||||
// buffer[5] = (value & 0x0000000000FF0000) >> 16;
|
||||
// buffer[6] = (value & 0x000000000000FF00) >> 8;
|
||||
// buffer[7] = (value & 0x00000000000000FF);
|
||||
// *size+=8;
|
||||
//}
|
||||
//
|
||||
//void convertToByteStream( int64_t value, uint8_t* buffer, uint32_t* size ) {
|
||||
// buffer[0] = (value & 0xFF00000000000000) >> 56;
|
||||
// buffer[1] = (value & 0x00FF000000000000) >> 48;
|
||||
// buffer[2] = (value & 0x0000FF0000000000) >> 40;
|
||||
// buffer[3] = (value & 0x000000FF00000000) >> 32;
|
||||
// buffer[4] = (value & 0x00000000FF000000) >> 24;
|
||||
// buffer[5] = (value & 0x0000000000FF0000) >> 16;
|
||||
// buffer[6] = (value & 0x000000000000FF00) >> 8;
|
||||
// buffer[7] = (value & 0x00000000000000FF);
|
||||
// *size+=8;
|
||||
//}
|
||||
|
||||
void convertToByteStream( float in_value, uint8_t* buffer, uint32_t* size ) {
|
||||
#ifndef BYTE_ORDER
|
||||
#error BYTE_ORDER not defined
|
||||
#elif BYTE_ORDER == LITTLE_ENDIAN
|
||||
union float_union {
|
||||
float value;
|
||||
uint8_t chars[4];
|
||||
};
|
||||
float_union temp;
|
||||
temp.value = in_value;
|
||||
buffer[0] = temp.chars[3];
|
||||
buffer[1] = temp.chars[2];
|
||||
buffer[2] = temp.chars[1];
|
||||
buffer[3] = temp.chars[0];
|
||||
*size += 4;
|
||||
#elif BYTE_ORDER == BIG_ENDIAN
|
||||
memcpy(buffer, &in_value, sizeof(in_value));
|
||||
*size += sizeof(in_value);
|
||||
#endif
|
||||
}
|
||||
|
||||
void convertToByteStream( double in_value, uint8_t* buffer, uint32_t* size ) {
|
||||
#ifndef BYTE_ORDER
|
||||
#error Endianess not defined
|
||||
#elif BYTE_ORDER == LITTLE_ENDIAN
|
||||
union double_union {
|
||||
double value;
|
||||
uint8_t chars[8];
|
||||
};
|
||||
double_union temp;
|
||||
temp.value = in_value;
|
||||
buffer[0] = temp.chars[7];
|
||||
buffer[1] = temp.chars[6];
|
||||
buffer[2] = temp.chars[5];
|
||||
buffer[3] = temp.chars[4];
|
||||
buffer[4] = temp.chars[3];
|
||||
buffer[5] = temp.chars[2];
|
||||
buffer[6] = temp.chars[1];
|
||||
buffer[7] = temp.chars[0];
|
||||
*size += 8;
|
||||
#elif BYTE_ORDER == BIG_ENDIAN
|
||||
memcpy(buffer, &in_value, sizeof(in_value));
|
||||
*size += sizeof(in_value);
|
||||
#endif
|
||||
}
|
Reference in New Issue
Block a user