15 #ifndef PSEN_SCAN_V2_STANDALONE_MONITORING_FRAME_DESERIALIZATION_H 16 #define PSEN_SCAN_V2_STANDALONE_MONITORING_FRAME_DESERIALIZATION_H 49 namespace data_conversion_layer
51 namespace monitoring_frame
128 static std::string idToString(
Id id);
157 template <
size_t ChunkSize>
160 for (
auto& byte_states : pin_states)
162 const auto raw_byte = raw_processing::read<uint8_t>(is);
163 byte_states |= std::bitset<8>(raw_byte);
175 DecodingFailure(
const std::string& msg =
"Error while decoding laser scanner measurement data");
216 return device_status_;
226 return working_mode_;
231 return transaction_type_;
253 #endif // PSEN_SCAN_V2_STANDALONE_MONITORING_FRAME_DESERIALIZATION_H
static constexpr uint16_t SIGNAL_TOO_LATE
static constexpr uint32_t ONLINE_WORKING_MODE
Higher level data type representing a single monitoring frame.
The information included in every single monitoring frame.
std::vector< diagnostic::Message > deserializeMessages(std::istream &is)
static constexpr uint16_t NUMBER_OF_BYTES_SCAN_COUNTER
FromTheta fromTheta() const
static constexpr uint16_t NO_SIGNAL_ARRIVED
configuration::ScannerId scannerId() const
monitoring_frame::Message deserialize(const data_conversion_layer::RawData &data, const std::size_t &num_bytes)
AdditionalFieldHeader readAdditionalField(std::istream &is, const std::size_t &max_num_bytes)
FixedFields readFixedFields(std::istream &is)
Resolution resolution() const
static constexpr uint16_t NUMBER_OF_BYTES_SINGLE_MEASUREMENT
psen_scan_v2_standalone::util::TenthOfDegree TenthOfDegree
TransactionType transactionType() const
PinData deserializePins(std::istream &is)
static constexpr uint32_t DEFAULT_DEVICE_STATUS
FixedFields(DeviceStatus device_status, OpCode op_code, WorkingMode working_mode, TransactionType transaction_type, configuration::ScannerId scanner_id, FromTheta from_theta, Resolution resolution)
static constexpr uint16_t NUMBER_OF_BYTES_SINGLE_INTENSITY
DecodingFailure(const std::string &msg="Error while decoding laser scanner measurement data")
Represents the IO PIN field of a monitoring frame.
std::vector< char > RawData
Exception thrown on problems with the additional fields with fixed size.
void deserializePinField(std::istream &is, std::array< std::bitset< 8 >, ChunkSize > &pin_states)
configuration::ScannerId scanner_id_
Root namespace in which the software components to communicate with the scanner (firmware-version: 2)...
TransactionType transaction_type_
AdditionalFieldUnexpectedSize(const std::string &msg)
static constexpr uint16_t NUMBER_OF_BYTES_ZONE_SET
WorkingMode workingMode() const
DeviceStatus device_status_
Definition for the type and length of an additional field in a monitoring frame.
static constexpr uint32_t GUI_MONITORING_TRANSACTION
Exception thrown on problems during the extraction of the measurement data.
TFSIMD_FORCE_INLINE tfScalar length(const Quaternion &q)
WorkingMode working_mode_
static constexpr uint32_t OP_CODE_MONITORING_FRAME
DeviceStatus deviceStatus() const
Helper class representing angles in tenth of degree.