38 namespace data_processing {
46 std::make_shared<sick::data_processing::ParseGeneralSystemState>();
64 auto dataHeadPtr =
data.getDataHeaderPtr();
65 uint32_t expected_size =
66 dataHeadPtr->getDerivedValuesBlockSize() + dataHeadPtr->getMeasurementDataBlockSize() +
67 dataHeadPtr->getGeneralSystemStateBlockSize() + dataHeadPtr->getIntrusionDataBlockSize() +
68 dataHeadPtr->getApplicationDataBlockSize();
69 uint32_t actual_size = buffer.
getLength();
70 if (actual_size < expected_size)
72 ROS_WARN(
"Skipping data, sizes do not match, actual size is smaller then expected "
73 "size! If this occurs please report with a stacktrace if the driver crashes at some "
75 ROS_WARN(
"Expected minimum size: %i", expected_size);
76 ROS_WARN(
"Actual size: %i", actual_size);
77 ROS_WARN(
"Skipping all data for this message.");
79 dataHeadPtr->setDerivedValuesBlockSize(0);
80 dataHeadPtr->setDerivedValuesBlockOffset(0);
81 dataHeadPtr->setMeasurementDataBlockSize(0);
82 dataHeadPtr->setMeasurementDataBlockOffset(0);
83 dataHeadPtr->setGeneralSystemStateBlockSize(0);
84 dataHeadPtr->setGeneralSystemStateBlockOffset(0);
85 dataHeadPtr->setIntrusionDataBlockSize(0);
86 dataHeadPtr->setIntrusionDataBlockOffset(0);
87 dataHeadPtr->setApplicationDataBlockSize(0);
88 dataHeadPtr->setApplicationDataBlockOffset(0);
103 data.setDataHeaderPtr(std::make_shared<sick::datastructure::DataHeader>(data_header));
111 data.setDerivedValuesPtr(std::make_shared<sick::datastructure::DerivedValues>(derived_values));
119 data.setMeasurementDataPtr(
120 std::make_shared<sick::datastructure::MeasurementData>(measurement_data));
128 data.setGeneralSystemStatePtr(
129 std::make_shared<sick::datastructure::GeneralSystemState>(general_system_state));
137 data.setIntrusionDataPtr(std::make_shared<sick::datastructure::IntrusionData>(intrusion_data));
145 data.setApplicationDataPtr(
146 std::make_shared<sick::datastructure::ApplicationData>(application_data));