ParseDerivedValues.cpp
Go to the documentation of this file.
1 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
2 
3 // -- BEGIN LICENSE BLOCK ----------------------------------------------
4 
24 // -- END LICENSE BLOCK ------------------------------------------------
25 
26 //----------------------------------------------------------------------
33 //----------------------------------------------------------------------
34 
36 
37 namespace sick {
38 namespace data_processing {
39 
41 
44  datastructure::Data& data) const
45 {
46  datastructure::DerivedValues derived_values;
47 
48 
50  {
51  derived_values.setIsEmpty(true);
52  return derived_values;
53  }
54  // Keep our own copy of the shared_ptr to keep the iterators valid
55  const std::shared_ptr<std::vector<uint8_t> const> vec_ptr = buffer.getBuffer();
56  std::vector<uint8_t>::const_iterator data_ptr =
57  vec_ptr->begin() + data.getDataHeaderPtr()->getDerivedValuesBlockOffset();
58  setDataInDerivedValues(data_ptr, derived_values);
59  return derived_values;
60 }
61 
63 {
65  {
66  return false;
67  }
69  {
70  return false;
71  }
72 
73  return true;
74 }
75 
77 {
78  return !(data.getDataHeaderPtr()->getDerivedValuesBlockOffset() == 0 &&
79  data.getDataHeaderPtr()->getDerivedValuesBlockSize() == 0);
80 }
81 
83  const datastructure::Data& data) const
84 {
85  return !(data.getDataHeaderPtr()->isEmpty());
86 }
87 
88 void ParseDerivedValues::setDataInDerivedValues(std::vector<uint8_t>::const_iterator data_ptr,
89  datastructure::DerivedValues& derived_values) const
90 {
91  setMultiplicationFactorInDerivedValues(data_ptr, derived_values);
92  setNumberOfBeamsInDerivedValues(data_ptr, derived_values);
93  setScanTimeInDerivedValues(data_ptr, derived_values);
94  setStartAngleInDerivedValues(data_ptr, derived_values);
95  setAngularBeamResolutionInDerivedValues(data_ptr, derived_values);
96  setInterbeamPeriodInDerivedValues(data_ptr, derived_values);
97 }
98 
100  std::vector<uint8_t>::const_iterator data_ptr, datastructure::DerivedValues& derived_values) const
101 {
103 }
104 
106  std::vector<uint8_t>::const_iterator data_ptr, datastructure::DerivedValues& derived_values) const
107 {
108  derived_values.setNumberOfBeams(read_write_helper::readUint16LittleEndian(data_ptr + 2));
109 }
110 
112  std::vector<uint8_t>::const_iterator data_ptr, datastructure::DerivedValues& derived_values) const
113 {
114  derived_values.setScanTime(read_write_helper::readUint16LittleEndian(data_ptr + 4));
115 }
116 
118  std::vector<uint8_t>::const_iterator data_ptr, datastructure::DerivedValues& derived_values) const
119 {
120  derived_values.setStartAngle(read_write_helper::readInt32LittleEndian(data_ptr + 8));
121 }
122 
124  std::vector<uint8_t>::const_iterator data_ptr, datastructure::DerivedValues& derived_values) const
125 {
127 }
128 
130  std::vector<uint8_t>::const_iterator data_ptr, datastructure::DerivedValues& derived_values) const
131 {
132  derived_values.setInterbeamPeriod(read_write_helper::readUint32LittleEndian(data_ptr + 16));
133 }
134 
135 } // namespace data_processing
136 } // namespace sick
sick::data_processing::ParseDerivedValues::setDataInDerivedValues
void setDataInDerivedValues(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DerivedValues &derived_values) const
Definition: ParseDerivedValues.cpp:88
sick::datastructure::DerivedValues::setNumberOfBeams
void setNumberOfBeams(const uint16_t &number_of_beams)
Sets the number of beams for the current scan.
Definition: DerivedValues.cpp:60
sick::data_processing::ParseDerivedValues::setScanTimeInDerivedValues
void setScanTimeInDerivedValues(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DerivedValues &derived_values) const
Definition: ParseDerivedValues.cpp:111
sick::data_processing::ParseDerivedValues::setNumberOfBeamsInDerivedValues
void setNumberOfBeamsInDerivedValues(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DerivedValues &derived_values) const
Definition: ParseDerivedValues.cpp:105
sick::datastructure::DerivedValues::setIsEmpty
void setIsEmpty(bool is_empty)
Set if derived values are enabled.
Definition: DerivedValues.cpp:111
sick
Definition: ApplicationNameVariableCommand.h:43
sick::datastructure::DerivedValues
The DerivedValues class Includes the derived configuration of the measurement data channel.
Definition: DerivedValues.h:48
sick::datastructure::DerivedValues::setAngularBeamResolution
void setAngularBeamResolution(const int32_t &angular_beam_resolution)
Set the angular resolution between beams.
Definition: DerivedValues.cpp:91
sick::read_write_helper::readUint32LittleEndian
uint32_t readUint32LittleEndian(std::vector< uint8_t >::const_iterator it)
Read an unsigned 32-bit integer at offset in little endian encoding.
Definition: ReadWriteHelper.hpp:341
sick::datastructure::Data
The data class containing all data blocks of a measurement.
Definition: Data.h:55
ParseDerivedValues.h
sick::data_processing::ParseDerivedValues::setMultiplicationFactorInDerivedValues
void setMultiplicationFactorInDerivedValues(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DerivedValues &derived_values) const
Definition: ParseDerivedValues.cpp:99
data
data
sick::data_processing::ParseDerivedValues::checkIfPreconditionsAreMet
bool checkIfPreconditionsAreMet(const datastructure::Data &data) const
Definition: ParseDerivedValues.cpp:62
sick::data_processing::ParseDerivedValues::ParseDerivedValues
ParseDerivedValues()
Constructor of the parser.
Definition: ParseDerivedValues.cpp:40
sick::data_processing::ParseDerivedValues::setStartAngleInDerivedValues
void setStartAngleInDerivedValues(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DerivedValues &derived_values) const
Definition: ParseDerivedValues.cpp:117
sick::data_processing::ParseDerivedValues::parseUDPSequence
datastructure::DerivedValues parseUDPSequence(const datastructure::PacketBuffer &buffer, datastructure::Data &data) const
Parsed the packet buffer and returns the derived values.
Definition: ParseDerivedValues.cpp:43
sick::datastructure::DerivedValues::setMultiplicationFactor
void setMultiplicationFactor(const uint16_t &multiplication_factor)
Sets the multiplication factor.
Definition: DerivedValues.cpp:50
sick::datastructure::PacketBuffer::getBuffer
std::shared_ptr< std::vector< uint8_t > const > getBuffer() const
Getter to return a copy of the data saved in the PacketBuffer.
Definition: PacketBuffer.cpp:53
sick::data_processing::ParseDerivedValues::setAngularBeamResolutionInDerivedValues
void setAngularBeamResolutionInDerivedValues(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DerivedValues &derived_values) const
Definition: ParseDerivedValues.cpp:123
sick::data_processing::ParseDerivedValues::setInterbeamPeriodInDerivedValues
void setInterbeamPeriodInDerivedValues(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DerivedValues &derived_values) const
Definition: ParseDerivedValues.cpp:129
sick::datastructure::DerivedValues::setStartAngle
void setStartAngle(const int32_t &start_angle)
Set the start angle of the scan.
Definition: DerivedValues.cpp:81
sick::datastructure::DerivedValues::setScanTime
void setScanTime(const uint16_t &scan_time)
Sets the time of the scan.
Definition: DerivedValues.cpp:70
sick::datastructure::PacketBuffer
A packetbuffer for the raw data from the sensor.
Definition: PacketBuffer.h:61
sick::data_processing::ParseDerivedValues::checkIfDataContainsNeededParsedBlocks
bool checkIfDataContainsNeededParsedBlocks(const datastructure::Data &data) const
Definition: ParseDerivedValues.cpp:82
sick::data_processing::ParseDerivedValues::checkIfDerivedValuesIsPublished
bool checkIfDerivedValuesIsPublished(const datastructure::Data &data) const
Definition: ParseDerivedValues.cpp:76
sick::read_write_helper::readUint16LittleEndian
uint16_t readUint16LittleEndian(std::vector< uint8_t >::const_iterator it)
Read an unsigned 16-bit integer at offset in little endian encoding.
Definition: ReadWriteHelper.hpp:289
sick::read_write_helper::readInt32LittleEndian
int32_t readInt32LittleEndian(std::vector< uint8_t >::const_iterator it)
Read an unsigned 32-bit integer at offset in little endian encoding.
Definition: ReadWriteHelper.hpp:368
sick::datastructure::DerivedValues::setInterbeamPeriod
void setInterbeamPeriod(const uint32_t &interbeam_period)
Set the time between two consecutive beams.
Definition: DerivedValues.cpp:101


sick_safetyscanners
Author(s): Lennart Puck
autogenerated on Fri Jun 21 2024 02:40:51