ParseFieldGeometryData.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 
38 
39 namespace sick {
40 namespace data_processing {
41 
43 {
44  m_reader_ptr = std::make_shared<sick::data_processing::ReadWriteHelper>();
45 }
46 
47 
49  sick::datastructure::FieldData& field_data) const
50 {
51  const uint8_t* data_ptr(buffer.getBuffer().data());
52  uint32_t array_length = readArrayLength(data_ptr);
53  std::vector<uint16_t> geometry_distance_mm;
54  for (uint32_t i = 0; i < array_length; i++)
55  {
56  geometry_distance_mm.push_back(readArrayElement(data_ptr, i));
57  }
58  field_data.setBeamDistances(geometry_distance_mm);
59 
60  return true;
61 }
62 
63 uint32_t ParseFieldGeometryData::readArrayLength(const uint8_t*& data_ptr) const
64 {
65  return m_reader_ptr->readuint32_tLittleEndian(data_ptr, 4);
66 }
67 
68 uint16_t ParseFieldGeometryData::readArrayElement(const uint8_t*& data_ptr,
69  uint32_t elem_number) const
70 {
71  return m_reader_ptr->readuint16_tLittleEndian(data_ptr, 8 + elem_number * 2);
72 }
73 
74 
75 } // namespace data_processing
76 } // namespace sick
A packetbuffer for the raw data from the sensor.
Definition: PacketBuffer.h:61
bool parseTCPSequence(const datastructure::PacketBuffer &buffer, datastructure::FieldData &field_data) const
Parses a tcp sequence and return the field geometry data of the warning and protective fields...
std::shared_ptr< sick::data_processing::ReadWriteHelper > m_reader_ptr
Field data for warning and protective fields.
Definition: FieldData.h:48
const VectorBuffer & getBuffer() const
Getter to return the VectorBuffer saved in the PacketBuffer.
void setBeamDistances(const std::vector< uint16_t > &beam_distances)
Sets vector with beam distances for field.
Definition: FieldData.cpp:87
uint32_t readArrayLength(const uint8_t *&data_ptr) const
uint16_t readArrayElement(const uint8_t *&data_ptr, uint32_t elem_number) const


sick_safetyscanners
Author(s): Lennart Puck
autogenerated on Thu May 9 2019 02:41:08