src
data_processing
ParseDataHeader.cpp
Go to the documentation of this file.
1
// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
2
3
// -- BEGIN LICENSE BLOCK ----------------------------------------------
4
24
// -- END LICENSE BLOCK ------------------------------------------------
25
26
//----------------------------------------------------------------------
33
//----------------------------------------------------------------------
34
35
#include <
sick_safetyscanners/data_processing/ParseDataHeader.h
>
36
37
namespace
sick
{
38
namespace
data_processing {
39
40
ParseDataHeader::ParseDataHeader
() {}
41
42
datastructure::DataHeader
43
ParseDataHeader::parseUDPSequence
(
const
datastructure::PacketBuffer
& buffer,
44
datastructure::Data
& data)
const
45
{
46
// Keep our own copy of the shared_ptr to keep the iterators valid
47
const
std::shared_ptr<std::vector<uint8_t>
const
> vec_ptr = buffer.
getBuffer
();
48
std::vector<uint8_t>::const_iterator data_ptr = vec_ptr->begin();
49
datastructure::DataHeader
data_header;
50
setDataInDataHeader
(data_ptr, data_header);
51
return
data_header;
52
}
53
54
void
ParseDataHeader::setDataInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
55
datastructure::DataHeader
& data_header)
const
56
{
57
setVersionInDataHeader
(data_ptr, data_header);
58
setScanHeaderInDataHeader
(data_ptr, data_header);
59
setDataBlocksInDataHeader
(data_ptr, data_header);
60
}
61
62
63
void
ParseDataHeader::setVersionInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
64
datastructure::DataHeader
& data_header)
const
65
{
66
setVersionIndicatorInDataHeader
(data_ptr, data_header);
67
setMajorVersionInDataHeader
(data_ptr, data_header);
68
setMinorVersionInDataHeader
(data_ptr, data_header);
69
setVersionReleaseInDataHeader
(data_ptr, data_header);
70
setSerialNumberOfDeviceInDataHeader
(data_ptr, data_header);
71
setSerialNumberOfSystemPlugInDataHeader
(data_ptr, data_header);
72
}
73
74
void
ParseDataHeader::setScanHeaderInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
75
datastructure::DataHeader
& data_header)
const
76
{
77
setChannelNumberInDataHeader
(data_ptr, data_header);
78
setSequenceNumberInDataHeader
(data_ptr, data_header);
79
setScanNumberInDataHeader
(data_ptr, data_header);
80
setTimestampDateInDataHeader
(data_ptr, data_header);
81
setTimestampTimeInDataHeader
(data_ptr, data_header);
82
}
83
84
void
ParseDataHeader::setDataBlocksInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
85
datastructure::DataHeader
& data_header)
const
86
{
87
setGeneralSystemStateBlockOffsetInDataHeader
(data_ptr, data_header);
88
setGeneralSystemStateBlockSizeInDataHeader
(data_ptr, data_header);
89
setDerivedValuesBlockOffsetInDataHeader
(data_ptr, data_header);
90
setDerivedValuesBlockSizeInDataHeader
(data_ptr, data_header);
91
setMeasurementDataBlockOffsetInDataHeader
(data_ptr, data_header);
92
setMeasurementDataBlockSizeInDataHeader
(data_ptr, data_header);
93
setIntrusionDataBlockOffsetInDataHeader
(data_ptr, data_header);
94
setIntrusionDataBlockSizeInDataHeader
(data_ptr, data_header);
95
setApplicationDataBlockOffsetInDataHeader
(data_ptr, data_header);
96
setApplicationDataBlockSizeInDataHeader
(data_ptr, data_header);
97
}
98
99
void
ParseDataHeader::setVersionIndicatorInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
100
datastructure::DataHeader
& data_header)
const
101
{
102
data_header.
setVersionIndicator
(
read_write_helper::readUint8LittleEndian
(data_ptr + 0));
103
}
104
105
void
ParseDataHeader::setMajorVersionInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
106
datastructure::DataHeader
& data_header)
const
107
{
108
data_header.
setVersionMajorVersion
(
read_write_helper::readUint8LittleEndian
(data_ptr + 1));
109
}
110
111
void
ParseDataHeader::setMinorVersionInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
112
datastructure::DataHeader
& data_header)
const
113
{
114
data_header.
setVersionMinorVersion
(
read_write_helper::readUint8LittleEndian
(data_ptr + 2));
115
}
116
117
void
ParseDataHeader::setVersionReleaseInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
118
datastructure::DataHeader
& data_header)
const
119
{
120
data_header.
setVersionRelease
(
read_write_helper::readUint8LittleEndian
(data_ptr + 3));
121
}
122
123
void
ParseDataHeader::setSerialNumberOfDeviceInDataHeader
(
124
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
125
{
126
data_header.
setSerialNumberOfDevice
(
read_write_helper::readUint32LittleEndian
(data_ptr + 4));
127
}
128
129
void
ParseDataHeader::setSerialNumberOfSystemPlugInDataHeader
(
130
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
131
{
132
data_header.
setSerialNumberOfSystemPlug
(
read_write_helper::readUint32LittleEndian
(data_ptr + 8));
133
}
134
135
void
ParseDataHeader::setChannelNumberInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
136
datastructure::DataHeader
& data_header)
const
137
{
138
data_header.
setChannelNumber
(
read_write_helper::readUint8LittleEndian
(data_ptr + 12));
139
}
140
141
void
ParseDataHeader::setSequenceNumberInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
142
datastructure::DataHeader
& data_header)
const
143
{
144
data_header.
setSequenceNumber
(
read_write_helper::readUint32LittleEndian
(data_ptr + 16));
145
}
146
147
void
ParseDataHeader::setScanNumberInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
148
datastructure::DataHeader
& data_header)
const
149
{
150
data_header.
setScanNumber
(
read_write_helper::readUint32LittleEndian
(data_ptr + 20));
151
}
152
153
void
ParseDataHeader::setTimestampDateInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
154
datastructure::DataHeader
& data_header)
const
155
{
156
data_header.
setTimestampDate
(
read_write_helper::readUint16LittleEndian
(data_ptr + 24));
157
}
158
159
void
ParseDataHeader::setTimestampTimeInDataHeader
(std::vector<uint8_t>::const_iterator data_ptr,
160
datastructure::DataHeader
& data_header)
const
161
{
162
data_header.
setTimestampTime
(
read_write_helper::readUint32LittleEndian
(data_ptr + 28));
163
}
164
165
void
ParseDataHeader::setGeneralSystemStateBlockOffsetInDataHeader
(
166
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
167
{
168
data_header.
setGeneralSystemStateBlockOffset
(
169
read_write_helper::readUint16LittleEndian
(data_ptr + 32));
170
}
171
172
void
ParseDataHeader::setGeneralSystemStateBlockSizeInDataHeader
(
173
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
174
{
175
data_header.
setGeneralSystemStateBlockSize
(
176
read_write_helper::readUint16LittleEndian
(data_ptr + 34));
177
}
178
179
void
ParseDataHeader::setDerivedValuesBlockOffsetInDataHeader
(
180
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
181
{
182
data_header.
setDerivedValuesBlockOffset
(
read_write_helper::readUint16LittleEndian
(data_ptr + 36));
183
}
184
185
void
ParseDataHeader::setDerivedValuesBlockSizeInDataHeader
(
186
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
187
{
188
data_header.
setDerivedValuesBlockSize
(
read_write_helper::readUint16LittleEndian
(data_ptr + 38));
189
}
190
191
void
ParseDataHeader::setMeasurementDataBlockOffsetInDataHeader
(
192
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
193
{
194
data_header.
setMeasurementDataBlockOffset
(
195
read_write_helper::readUint16LittleEndian
(data_ptr + 40));
196
}
197
198
void
ParseDataHeader::setMeasurementDataBlockSizeInDataHeader
(
199
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
200
{
201
data_header.
setMeasurementDataBlockSize
(
read_write_helper::readUint16LittleEndian
(data_ptr + 42));
202
}
203
204
void
ParseDataHeader::setIntrusionDataBlockOffsetInDataHeader
(
205
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
206
{
207
data_header.
setIntrusionDataBlockOffset
(
read_write_helper::readUint16LittleEndian
(data_ptr + 44));
208
}
209
210
void
ParseDataHeader::setIntrusionDataBlockSizeInDataHeader
(
211
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
212
{
213
data_header.
setIntrusionDataBlockSize
(
read_write_helper::readUint16LittleEndian
(data_ptr + 46));
214
}
215
216
void
ParseDataHeader::setApplicationDataBlockOffsetInDataHeader
(
217
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
218
{
219
data_header.
setApplicationDataBlockOffset
(
220
read_write_helper::readUint16LittleEndian
(data_ptr + 48));
221
}
222
223
void
ParseDataHeader::setApplicationDataBlockSizeInDataHeader
(
224
std::vector<uint8_t>::const_iterator data_ptr,
datastructure::DataHeader
& data_header)
const
225
{
226
data_header.
setApplicationDataBlockSize
(
read_write_helper::readUint16LittleEndian
(data_ptr + 50));
227
}
228
229
}
// namespace data_processing
230
}
// namespace sick
sick::data_processing::ParseDataHeader::setMajorVersionInDataHeader
void setMajorVersionInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:105
sick::data_processing::ParseDataHeader::setApplicationDataBlockSizeInDataHeader
void setApplicationDataBlockSizeInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:223
sick::datastructure::DataHeader::setTimestampTime
void setTimestampTime(const uint32_t ×tamp_time)
Sets the timestamp time.
Definition:
DataHeader.cpp:150
sick::data_processing::ParseDataHeader::setMeasurementDataBlockOffsetInDataHeader
void setMeasurementDataBlockOffsetInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:191
sick::data_processing::ParseDataHeader::setTimestampTimeInDataHeader
void setTimestampTimeInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:159
sick::data_processing::ParseDataHeader::setGeneralSystemStateBlockOffsetInDataHeader
void setGeneralSystemStateBlockOffsetInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:165
ParseDataHeader.h
sick::datastructure::DataHeader::setSerialNumberOfDevice
void setSerialNumberOfDevice(const uint32_t &serial_number_of_device)
Sets the serial number of the device.
Definition:
DataHeader.cpp:90
sick
Definition:
ApplicationNameVariableCommand.h:43
sick::data_processing::ParseDataHeader::setSequenceNumberInDataHeader
void setSequenceNumberInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:141
sick::datastructure::DataHeader::setChannelNumber
void setChannelNumber(const uint8_t &channel_number)
Sets the number of channel the measurement data belongs to.
Definition:
DataHeader.cpp:110
sick::read_write_helper::readUint32LittleEndian
uint32_t readUint32LittleEndian(std::vector< uint8_t >::const_iterator it)
Read an unsigned 32-bit integer at offset in little endian encoding.
Definition:
ReadWriteHelper.hpp:341
sick::datastructure::DataHeader::setIntrusionDataBlockSize
void setIntrusionDataBlockSize(const uint16_t &intrusion_data_block_size)
Sets the intrusion data block size.
Definition:
DataHeader.cpp:230
sick::read_write_helper::readUint8LittleEndian
uint8_t readUint8LittleEndian(std::vector< uint8_t >::const_iterator it)
Read an unsigned 8-bit integer at offset in big little encoding.
Definition:
ReadWriteHelper.hpp:224
sick::data_processing::ParseDataHeader::ParseDataHeader
ParseDataHeader()
Constructor of the parser.
Definition:
ParseDataHeader.cpp:40
sick::data_processing::ParseDataHeader::setIntrusionDataBlockOffsetInDataHeader
void setIntrusionDataBlockOffsetInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:204
sick::datastructure::Data
The data class containing all data blocks of a measurement.
Definition:
Data.h:55
sick::datastructure::DataHeader::setMeasurementDataBlockOffset
void setMeasurementDataBlockOffset(const uint16_t &measurement_data_block_offset)
Sets the measurement data block offset.
Definition:
DataHeader.cpp:200
sick::datastructure::DataHeader::setGeneralSystemStateBlockOffset
void setGeneralSystemStateBlockOffset(const uint16_t &general_system_state_block_offset)
Sets the general system state block offset.
Definition:
DataHeader.cpp:160
sick::data_processing::ParseDataHeader::setApplicationDataBlockOffsetInDataHeader
void setApplicationDataBlockOffsetInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:216
sick::data_processing::ParseDataHeader::setMinorVersionInDataHeader
void setMinorVersionInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:111
sick::data_processing::ParseDataHeader::setSerialNumberOfSystemPlugInDataHeader
void setSerialNumberOfSystemPlugInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:129
sick::data_processing::ParseDataHeader::setScanNumberInDataHeader
void setScanNumberInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:147
sick::datastructure::DataHeader::setApplicationDataBlockSize
void setApplicationDataBlockSize(const uint16_t &application_data_block_size)
Sets the application io data block size.
Definition:
DataHeader.cpp:250
sick::data_processing::ParseDataHeader::setIntrusionDataBlockSizeInDataHeader
void setIntrusionDataBlockSizeInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:210
sick::datastructure::DataHeader::setVersionRelease
void setVersionRelease(const uint8_t &version_release)
Sets the release of the version.
Definition:
DataHeader.cpp:80
sick::data_processing::ParseDataHeader::setDerivedValuesBlockSizeInDataHeader
void setDerivedValuesBlockSizeInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:185
sick::datastructure::DataHeader::setVersionMajorVersion
void setVersionMajorVersion(const uint8_t &version_major_version)
Sets the major version number.
Definition:
DataHeader.cpp:60
sick::datastructure::DataHeader::setScanNumber
void setScanNumber(const uint32_t &scan_number)
Sets the scan number of the measurement data.
Definition:
DataHeader.cpp:130
sick::datastructure::PacketBuffer::getBuffer
std::shared_ptr< std::vector< uint8_t > const > getBuffer() const
Getter to return a copy of the data saved in the PacketBuffer.
Definition:
PacketBuffer.cpp:53
sick::data_processing::ParseDataHeader::setDataInDataHeader
void setDataInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:54
sick::datastructure::DataHeader::setSerialNumberOfSystemPlug
void setSerialNumberOfSystemPlug(const uint32_t &serial_number_of_system_plug)
Sets the serial number of the system plug.
Definition:
DataHeader.cpp:100
sick::datastructure::DataHeader::setSequenceNumber
void setSequenceNumber(const uint32_t &sequence_number)
Sets the sequence number of the measurement data.
Definition:
DataHeader.cpp:120
sick::data_processing::ParseDataHeader::setScanHeaderInDataHeader
void setScanHeaderInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:74
sick::datastructure::DataHeader::setGeneralSystemStateBlockSize
void setGeneralSystemStateBlockSize(const uint16_t &general_system_state_block_size)
Sets the general system state block size.
Definition:
DataHeader.cpp:170
sick::data_processing::ParseDataHeader::setTimestampDateInDataHeader
void setTimestampDateInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:153
sick::data_processing::ParseDataHeader::parseUDPSequence
datastructure::DataHeader parseUDPSequence(const datastructure::PacketBuffer &buffer, datastructure::Data &data) const
Parses the data header from a udp sequence.
Definition:
ParseDataHeader.cpp:43
sick::datastructure::DataHeader::setIntrusionDataBlockOffset
void setIntrusionDataBlockOffset(const uint16_t &intrusion_data_block_offset)
Sets the intrusion data block offset.
Definition:
DataHeader.cpp:220
sick::datastructure::DataHeader::setDerivedValuesBlockOffset
void setDerivedValuesBlockOffset(const uint16_t &derived_values_block_offset)
Sets the derived values block offset.
Definition:
DataHeader.cpp:180
sick::data_processing::ParseDataHeader::setDataBlocksInDataHeader
void setDataBlocksInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:84
sick::data_processing::ParseDataHeader::setDerivedValuesBlockOffsetInDataHeader
void setDerivedValuesBlockOffsetInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:179
sick::datastructure::DataHeader::setMeasurementDataBlockSize
void setMeasurementDataBlockSize(const uint16_t &measurement_data_block_size)
Sets the measurement data block size.
Definition:
DataHeader.cpp:210
sick::datastructure::DataHeader::setDerivedValuesBlockSize
void setDerivedValuesBlockSize(const uint16_t &derived_values_block_size)
Sets the derived values block size.
Definition:
DataHeader.cpp:190
sick::data_processing::ParseDataHeader::setVersionReleaseInDataHeader
void setVersionReleaseInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:117
sick::data_processing::ParseDataHeader::setSerialNumberOfDeviceInDataHeader
void setSerialNumberOfDeviceInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:123
sick::data_processing::ParseDataHeader::setVersionInDataHeader
void setVersionInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:63
sick::data_processing::ParseDataHeader::setChannelNumberInDataHeader
void setChannelNumberInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:135
sick::datastructure::PacketBuffer
A packetbuffer for the raw data from the sensor.
Definition:
PacketBuffer.h:61
sick::datastructure::DataHeader::setTimestampDate
void setTimestampDate(const uint16_t ×tamp_date)
Sets the timestamp date.
Definition:
DataHeader.cpp:140
sick::data_processing::ParseDataHeader::setVersionIndicatorInDataHeader
void setVersionIndicatorInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:99
sick::datastructure::DataHeader
Contains the content of the data header of a udp data packet.
Definition:
DataHeader.h:46
sick::datastructure::DataHeader::setApplicationDataBlockOffset
void setApplicationDataBlockOffset(const uint16_t &application_data_block_offset)
Sets the application io data block offset.
Definition:
DataHeader.cpp:240
sick::datastructure::DataHeader::setVersionIndicator
void setVersionIndicator(const uint8_t &version_indicator)
Sets the version indicator.
Definition:
DataHeader.cpp:50
sick::datastructure::DataHeader::setVersionMinorVersion
void setVersionMinorVersion(const uint8_t &version_minor_version)
Sets the minor version number.
Definition:
DataHeader.cpp:70
sick::data_processing::ParseDataHeader::setGeneralSystemStateBlockSizeInDataHeader
void setGeneralSystemStateBlockSizeInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:172
sick::read_write_helper::readUint16LittleEndian
uint16_t readUint16LittleEndian(std::vector< uint8_t >::const_iterator it)
Read an unsigned 16-bit integer at offset in little endian encoding.
Definition:
ReadWriteHelper.hpp:289
sick::data_processing::ParseDataHeader::setMeasurementDataBlockSizeInDataHeader
void setMeasurementDataBlockSizeInDataHeader(std::vector< uint8_t >::const_iterator data_ptr, datastructure::DataHeader &data_header) const
Definition:
ParseDataHeader.cpp:198
sick_safetyscanners
Author(s): Lennart Puck
autogenerated on Fri Jun 21 2024 02:40:51