00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 00003 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00004 00024 // -- END LICENSE BLOCK ------------------------------------------------ 00025 00026 //---------------------------------------------------------------------- 00033 //---------------------------------------------------------------------- 00034 00035 #ifndef SICK_SAFETYSCANNERS_DATA_PROCESSING_PARSEDATA_H 00036 #define SICK_SAFETYSCANNERS_DATA_PROCESSING_PARSEDATA_H 00037 00038 #include <sick_safetyscanners/datastructure/Data.h> 00039 #include <sick_safetyscanners/datastructure/PacketBuffer.h> 00040 00041 #include <sick_safetyscanners/data_processing/ParseApplicationData.h> 00042 #include <sick_safetyscanners/data_processing/ParseDataHeader.h> 00043 #include <sick_safetyscanners/data_processing/ParseDerivedValues.h> 00044 #include <sick_safetyscanners/data_processing/ParseGeneralSystemState.h> 00045 #include <sick_safetyscanners/data_processing/ParseIntrusionData.h> 00046 #include <sick_safetyscanners/data_processing/ParseMeasurementData.h> 00047 #include <sick_safetyscanners/data_processing/ReadWriteHelper.h> 00048 00049 00050 namespace sick { 00051 namespace data_processing { 00052 00056 class ParseData 00057 { 00058 public: 00062 ParseData(); 00063 00073 bool parseUDPSequence(const sick::datastructure::PacketBuffer buffer, 00074 sick::datastructure::Data& data) const; 00075 00076 private: 00077 std::shared_ptr<sick::data_processing::ReadWriteHelper> m_reader_ptr; 00078 00079 std::shared_ptr<sick::data_processing::ParseDataHeader> m_data_header_parser_ptr; 00080 std::shared_ptr<sick::data_processing::ParseDerivedValues> m_derived_values_parser_ptr; 00081 std::shared_ptr<sick::data_processing::ParseMeasurementData> m_measurement_data_parser_ptr; 00082 std::shared_ptr<sick::data_processing::ParseGeneralSystemState> m_general_system_state_parser_ptr; 00083 std::shared_ptr<sick::data_processing::ParseIntrusionData> m_intrusion_data_parser_ptr; 00084 std::shared_ptr<sick::data_processing::ParseApplicationData> m_application_data_parser_ptr; 00085 00086 00087 void setDataBlocksInData(const datastructure::PacketBuffer& buffer, 00088 datastructure::Data& data) const; 00089 void setDataHeaderInData(const datastructure::PacketBuffer& buffer, 00090 datastructure::Data& data) const; 00091 void setDerivedValuesInData(const datastructure::PacketBuffer& buffer, 00092 datastructure::Data& data) const; 00093 void setMeasurementDataInData(const datastructure::PacketBuffer& buffer, 00094 datastructure::Data& data) const; 00095 void setGeneralSystemStateInData(const datastructure::PacketBuffer& buffer, 00096 datastructure::Data& data) const; 00097 void setIntrusionDataInData(const datastructure::PacketBuffer& buffer, 00098 datastructure::Data& data) const; 00099 void setApplicationDataInData(const datastructure::PacketBuffer& buffer, 00100 datastructure::Data& data) const; 00101 }; 00102 00103 } // namespace data_processing 00104 } // namespace sick 00105 00106 #endif // SICK_SAFETYSCANNERS_DATA_PROCESSING_PARSEDATA_H