Common
common packages for kyubic
 
Loading...
Searching...
No Matches
endian_utils.hpp
Go to the documentation of this file.
1
10#ifndef _ENDIAN_UTILS_HPP
11#define _ENDIAN_UTILS_HPP
12
13#include <cstdint>
14
16{
17
21inline uint8_t get_u8(const unsigned char * ptr) { return ptr[0]; }
22
26inline uint16_t get_u16(const unsigned char * ptr)
27{
28 return static_cast<uint16_t>(ptr[0]) | (static_cast<uint16_t>(ptr[1]) << 8);
29}
30
34inline int16_t get_s16(const unsigned char * ptr) { return static_cast<int16_t>(get_u16(ptr)); }
35
39inline uint32_t get_u32(const unsigned char * ptr)
40{
41 return static_cast<uint32_t>(ptr[0]) | (static_cast<uint32_t>(ptr[1]) << 8) |
42 (static_cast<uint32_t>(ptr[2]) << 16) | (static_cast<uint32_t>(ptr[3]) << 24);
43}
44
48inline int32_t get_s32(const unsigned char * ptr) { return static_cast<int32_t>(get_u32(ptr)); }
49
50} // namespace driver::dvl_driver::utils
51
52#endif // _ENDIAN_UTILS_HPP
Definition: endian_utils.hpp:16
uint16_t get_u16(const unsigned char *ptr)
Extract 16-bit unsigned integer from buffer (Little Endian)
Definition: endian_utils.hpp:26
uint8_t get_u8(const unsigned char *ptr)
Extract 8-bit unsigned integer.
Definition: endian_utils.hpp:21
int16_t get_s16(const unsigned char *ptr)
Extract 16-bit signed integer from buffer (Little Endian)
Definition: endian_utils.hpp:34
int32_t get_s32(const unsigned char *ptr)
Extract 32-bit signed integer from buffer (Little Endian)
Definition: endian_utils.hpp:48
uint32_t get_u32(const unsigned char *ptr)
Extract 32-bit unsigned integer from buffer (Little Endian)
Definition: endian_utils.hpp:39