Program Listing for File ParseMeasurementData.h
↰ Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/data_processing/ParseMeasurementData.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_PARSEMEASUREMENTDATA_H
#define SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEMEASUREMENTDATA_H
#include "sick_safetyscanners_base/datastructure/Data.h"
#include "sick_safetyscanners_base/datastructure/MeasurementData.h"
#include "sick_safetyscanners_base/datastructure/PacketBuffer.h"
#include "sick_safetyscanners_base/Logging.h"
#include "sick_safetyscanners_base/data_processing/ReadWriteHelper.hpp"
#include <string>
#include <vector>
namespace sick {
namespace data_processing {
class ParseMeasurementData
{
public:
ParseMeasurementData();
datastructure::MeasurementData parseUDPSequence(const datastructure::PacketBuffer& buffer,
datastructure::Data& data);
private:
float m_angle;
float m_angle_delta;
void setDataInMeasurementData(std::vector<uint8_t>::const_iterator data_ptr,
datastructure::MeasurementData& measurement_data);
void setNumberOfBeamsInMeasurementData(std::vector<uint8_t>::const_iterator data_ptr,
datastructure::MeasurementData& measurement_data) const;
void setStartAngleAndDelta(const datastructure::Data& data);
void setScanPointsInMeasurementData(std::vector<uint8_t>::const_iterator data_ptr,
datastructure::MeasurementData& measurement_data);
void addScanPointToMeasurementData(uint16_t offset,
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::MeasurementData& measurement_data) const;
bool checkIfPreconditionsAreMet(const datastructure::Data& data) const;
bool checkIfMeasurementDataIsPublished(const datastructure::Data& data) const;
bool checkIfDataContainsNeededParsedBlocks(const datastructure::Data& data) const;
};
} // namespace data_processing
} // namespace sick
#endif // SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEMEASUREMENTDATA_H