Program Listing for File ParseDataHeader.h

Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/data_processing/ParseDataHeader.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_PARSEDATAHEADER_H
#define SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEDATAHEADER_H


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

#include "sick_safetyscanners_base/data_processing/ReadWriteHelper.hpp"

namespace sick {
namespace data_processing {

class ParseDataHeader
{
public:
  ParseDataHeader();

  datastructure::DataHeader parseUDPSequence(const datastructure::PacketBuffer& buffer,
                                             datastructure::Data& data) const;

private:
  void setVersionIndicatorInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                       datastructure::DataHeader& data_header) const;
  void setMajorVersionInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                   datastructure::DataHeader& data_header) const;
  void setMinorVersionInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                   datastructure::DataHeader& data_header) const;
  void setVersionReleaseInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                     datastructure::DataHeader& data_header) const;
  void setSerialNumberOfDeviceInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                           datastructure::DataHeader& data_header) const;
  void setSerialNumberOfSystemPlugInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                               datastructure::DataHeader& data_header) const;
  void setChannelNumberInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                    datastructure::DataHeader& data_header) const;
  void setSequenceNumberInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                     datastructure::DataHeader& data_header) const;
  void setScanNumberInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                 datastructure::DataHeader& data_header) const;
  void setTimestampDateInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                    datastructure::DataHeader& data_header) const;
  void setTimestampTimeInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                    datastructure::DataHeader& data_header) const;
  void setGeneralSystemStateBlockOffsetInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                                    datastructure::DataHeader& data_header) const;
  void setGeneralSystemStateBlockSizeInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                                  datastructure::DataHeader& data_header) const;
  void setDerivedValuesBlockOffsetInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                               datastructure::DataHeader& data_header) const;
  void setDerivedValuesBlockSizeInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                             datastructure::DataHeader& data_header) const;
  void setMeasurementDataBlockOffsetInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                                 datastructure::DataHeader& data_header) const;
  void setMeasurementDataBlockSizeInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                               datastructure::DataHeader& data_header) const;
  void setIntrusionDataBlockOffsetInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                               datastructure::DataHeader& data_header) const;
  void setIntrusionDataBlockSizeInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                             datastructure::DataHeader& data_header) const;
  void setApplicationDataBlockOffsetInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                                 datastructure::DataHeader& data_header) const;
  void setApplicationDataBlockSizeInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                               datastructure::DataHeader& data_header) const;
  void setDataInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                           datastructure::DataHeader& data_header) const;
  void setVersionInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                              datastructure::DataHeader& data_header) const;
  void setScanHeaderInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                 datastructure::DataHeader& data_header) const;
  void setDataBlocksInDataHeader(std::vector<uint8_t>::const_iterator data_ptr,
                                 datastructure::DataHeader& data_header) const;
};

} // namespace data_processing
} // namespace sick

#endif // SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEDATAHEADER_H