Program Listing for File ParseFieldHeaderData.h

Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/data_processing/ParseFieldHeaderData.h)

// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-

// -- BEGIN LICENSE BLOCK ----------------------------------------------

// -- END LICENSE BLOCK ------------------------------------------------

//----------------------------------------------------------------------
//----------------------------------------------------------------------

#ifndef SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEFIELDHEADERDATA_H
#define SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEFIELDHEADERDATA_H

#include "sick_safetyscanners_base/datastructure/Data.h"
#include "sick_safetyscanners_base/datastructure/FieldData.h"
#include "sick_safetyscanners_base/datastructure/PacketBuffer.h"

#include "sick_safetyscanners_base/data_processing/ReadWriteHelper.hpp"

namespace sick {

namespace data_processing {


class ParseFieldHeaderData
{
public:
  ParseFieldHeaderData();

  bool parseTCPSequence(const datastructure::PacketBuffer& buffer,
                        datastructure::FieldData& field_data) const;

private:
  bool isValid(std::vector<uint8_t>::const_iterator data_ptr) const;
  void setFieldType(std::vector<uint8_t>::const_iterator data_ptr,
                    datastructure::FieldData& field_data) const;
  uint8_t readFieldType(std::vector<uint8_t>::const_iterator data_ptr) const;
  std::string readVersionIndicator(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint8_t readMajorNumber(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint8_t readMinorNumber(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint8_t readReleaseNumber(std::vector<uint8_t>::const_iterator data_ptr) const;
  bool readIsDefined(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint8_t readEvalMethod(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint16_t readMultiSampling(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint16_t readObjectResolution(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint16_t readSetIndex(std::vector<uint8_t>::const_iterator data_ptr) const;
  uint32_t readNameLength(std::vector<uint8_t>::const_iterator data_ptr) const;
  std::string readFieldName(std::vector<uint8_t>::const_iterator data_ptr) const;
};

} // namespace data_processing
} // namespace sick

#endif // SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEFIELDHEADERDATA_H