CoLaParameterReader.cpp
Go to the documentation of this file.
1 // -- BEGIN LICENSE BLOCK ----------------------------------------------
20 // -- END LICENSE BLOCK ------------------------------------------------
21 
24 
25 namespace visionary {
26 
28  : m_command(command)
29 {
31 }
32 
34 
36 {
38 }
39 
41 {
42  int8_t value = static_cast<int8_t>(m_command.getBuffer()[m_currentPosition]);
43  m_currentPosition += 1;
44  return value;
45 }
46 
48 {
49  const uint8_t value = m_command.getBuffer()[m_currentPosition];
50  m_currentPosition += 1;
51  return value;
52 }
53 
55 {
56  const int16_t value =
57  readUnalignColaByteOrder<int16_t>(&m_command.getBuffer()[m_currentPosition]);
58  m_currentPosition += 2;
59  return value;
60 }
61 
63 {
64  const uint16_t value =
65  readUnalignColaByteOrder<uint16_t>(&m_command.getBuffer()[m_currentPosition]);
66  m_currentPosition += 2;
67  return value;
68 }
69 
71 {
72  const int32_t value =
73  readUnalignColaByteOrder<int32_t>(&m_command.getBuffer()[m_currentPosition]);
74  m_currentPosition += 4;
75  return value;
76 }
77 
79 {
80  const uint32_t value =
81  readUnalignColaByteOrder<uint32_t>(&m_command.getBuffer()[m_currentPosition]);
82  m_currentPosition += 4;
83  return value;
84 }
85 
87 {
88  const float value = readUnalignColaByteOrder<float>(&m_command.getBuffer()[m_currentPosition]);
89  m_currentPosition += 4;
90  return value;
91 }
92 
94 {
95  const double value = readUnalignColaByteOrder<double>(&m_command.getBuffer()[m_currentPosition]);
96  m_currentPosition += 8;
97  return value;
98 }
99 
101 {
102  return readUSInt() == 1;
103 }
104 
106 {
107  std::string str("");
108  uint16_t len = readUInt();
109  if (len)
110  {
111  str =
112  std::string(reinterpret_cast<const char*>(&m_command.getBuffer()[m_currentPosition]), len);
113  }
114  m_currentPosition += str.length();
115  return str;
116 }
117 } // namespace visionary
VisionaryEndian.h
visionary::CoLaParameterReader::readInt
int16_t readInt()
Read a signed int (16 bit, range [-32768, 32767]) and advances position by 2 bytes.
Definition: CoLaParameterReader.cpp:54
visionary::CoLaParameterReader::CoLaParameterReader
CoLaParameterReader(CoLaCommand command)
Definition: CoLaParameterReader.cpp:27
visionary::CoLaParameterReader::readReal
float readReal()
Read a IEEE-754 single precision (32 bit) and advances position by 4 bytes.
Definition: CoLaParameterReader.cpp:86
visionary
Definition: AuthenticationLegacy.h:25
visionary::CoLaCommand
Definition: CoLaCommand.h:32
visionary::CoLaParameterReader::m_command
CoLaCommand m_command
Definition: CoLaParameterReader.h:36
visionary::CoLaParameterReader::readSInt
int8_t readSInt()
Read a signed short int (8 bit, range [-128, 127]) and advances position by 1 byte.
Definition: CoLaParameterReader.cpp:40
visionary::CoLaParameterReader::rewind
void rewind()
Rewind the position to the first parameter.
Definition: CoLaParameterReader.cpp:35
visionary::CoLaCommand::getBuffer
const std::vector< uint8_t > & getBuffer()
Get the binary data buffer.
Definition: CoLaCommand.cpp:93
visionary::CoLaCommand::getParameterOffset
size_t getParameterOffset()
Get offset in bytes to where first parameter starts.
Definition: CoLaCommand.cpp:108
visionary::CoLaParameterReader::readUSInt
uint8_t readUSInt()
Read a unsigned short int (8 bit, range [0, 255]) and advances position by 1 byte.
Definition: CoLaParameterReader.cpp:47
visionary::CoLaParameterReader::readBool
bool readBool()
Read a boolean and advance the position by 1 byte.
Definition: CoLaParameterReader.cpp:100
visionary::CoLaParameterReader::readUInt
uint16_t readUInt()
Read a unsigned int (16 bit, range [0, 65535]) and advances position by 2 bytes.
Definition: CoLaParameterReader.cpp:62
visionary::CoLaParameterReader::readDInt
int32_t readDInt()
Read a signed double int (32 bit) and advances position by 4 bytes.
Definition: CoLaParameterReader.cpp:70
CoLaParameterReader.h
visionary::CoLaParameterReader::~CoLaParameterReader
~CoLaParameterReader()
Definition: CoLaParameterReader.cpp:33
visionary::CoLaParameterReader::readLReal
double readLReal()
Read a IEEE-754 double precision (64 bit) and advances position by 8 bytes.
Definition: CoLaParameterReader.cpp:93
visionary::CoLaParameterReader::readFlexString
std::string readFlexString()
Read a flex string, and advance position according to string size.
Definition: CoLaParameterReader.cpp:105
visionary::CoLaParameterReader::readUDInt
uint32_t readUDInt()
Read a unsigned int (32 bit) and advances position by 4 bytes.
Definition: CoLaParameterReader.cpp:78
visionary::CoLaParameterReader::m_currentPosition
size_t m_currentPosition
Definition: CoLaParameterReader.h:37


sick_safevisionary_base
Author(s):
autogenerated on Sat Oct 21 2023 02:24:26