Go to the documentation of this file.
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
146 AdditionalFieldHeader
readAdditionalField(std::istream& is,
const std::size_t& max_num_bytes);
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");
253 #endif // PSEN_SCAN_V2_STANDALONE_MONITORING_FRAME_DESERIALIZATION_H
AdditionalFieldUnexpectedSize(const std::string &msg)
DecodingFailure(const std::string &msg="Error while decoding laser scanner measurement data")
psen_scan_v2_standalone::util::TenthOfDegree TenthOfDegree
AdditionalFieldHeader readAdditionalField(std::istream &is, const std::size_t &max_num_bytes)
static constexpr uint32_t OP_CODE_MONITORING_FRAME
Exception thrown on problems during the extraction of the measurement data.
PinData deserializePins(std::istream &is)
WorkingMode working_mode_
static constexpr uint16_t NO_SIGNAL_ARRIVED
WorkingMode workingMode() const
static constexpr uint32_t ONLINE_WORKING_MODE
static constexpr uint16_t NUMBER_OF_BYTES_SCAN_COUNTER
Resolution resolution() const
static constexpr uint32_t DEFAULT_DEVICE_STATUS
void deserializePinField(std::istream &is, std::array< std::bitset< 8 >, ChunkSize > &pin_states)
Exception thrown on problems with the additional fields with fixed size.
TransactionType transactionType() const
static constexpr uint16_t NUMBER_OF_BYTES_SINGLE_INTENSITY
FixedFields readFixedFields(std::istream &is)
static constexpr uint16_t NUMBER_OF_BYTES_ZONE_SET
configuration::ScannerId scannerId() const
Definition for the type and length of an additional field in a monitoring frame.
TransactionType transaction_type_
DeviceStatus deviceStatus() const
FixedFields(DeviceStatus device_status, OpCode op_code, WorkingMode working_mode, TransactionType transaction_type, configuration::ScannerId scanner_id, FromTheta from_theta, Resolution resolution)
static constexpr uint32_t GUI_MONITORING_TRANSACTION
FromTheta fromTheta() const
AdditionalFieldHeader(Id id, Length length)
monitoring_frame::Message deserialize(const data_conversion_layer::RawData &data, const std::size_t &num_bytes)
static std::string idToString(Id id)
Root namespace in which the software components to communicate with the scanner (firmware-version: 2)...
Higher level data type representing a single monitoring frame.
static constexpr uint16_t NUMBER_OF_BYTES_SINGLE_MEASUREMENT
std::vector< char > RawData
static constexpr uint16_t SIGNAL_TOO_LATE
configuration::ScannerId scanner_id_
DeviceStatus device_status_
Helper class representing angles in tenth of degree.
std::vector< diagnostic::Message > deserializeMessages(std::istream &is)
The information included in every single monitoring frame.
psen_scan_v2
Author(s): Pilz GmbH + Co. KG
autogenerated on Sat Jun 22 2024 02:46:11