16 #ifndef PSEN_SCAN_V2_STANDALONE_SCAN_ROUND_H 17 #define PSEN_SCAN_V2_STANDALONE_SCAN_ROUND_H 26 namespace protocol_layer
44 " The scan round will ignore it.")
56 " Dropping the incomplete round." 57 " (Please check the ethernet connection or contact PILZ support if " 58 "the error persists.)")
102 std::vector<data_conversion_layer::monitoring_frame::MessageStamped> currentRound();
104 bool isRoundComplete();
110 std::vector<data_conversion_layer::monitoring_frame::MessageStamped> current_round_{};
112 bool first_scan_round_ =
true;
168 #endif // PSEN_SCAN_V2_STANDALONE_SCAN_ROUND_H Exception thrown if a scan round has to many messages.
void reset()
Readies the validator for a new validation round. This function has to be called whenever there is an...
Exception thrown if the incoming frame has an outdated scan_counter.
ScanRoundError(const std::string &msg)
ScanRoundEndedEarlyError(const std::string &msg="Detected a MonitoringFrame from a new scan round before the old " "one was complete." " Dropping the incomplete round." " (Please check the ethernet connection or contact PILZ support if " "the error persists.)")
Exception thrown if a new scan round started without the last one finishing.
std::vector< data_conversion_layer::monitoring_frame::MessageStamped > current_round_
bool add(const actionlib::TwoIntsGoal &req, actionlib::TwoIntsResult &res)
const uint32_t & num_expected_msgs_
ScanRoundOversaturatedError(const std::string &msg="Received too many MonitoringFrames for one scan round.")
Wrapping class for a Message and its corresponding timestamp.
ScanBuffer(const uint32_t &num_expected_msgs)
Root namespace in which the software components to communicate with the scanner (firmware-version: 2)...
void add(const data_conversion_layer::monitoring_frame::MessageStamped &stamped_msg)
Adds the message to the current scan round.
std::vector< data_conversion_layer::monitoring_frame::MessageStamped > currentRound()
Exception indicating problems with the monitoring frames of a scan round.
uint32_t scanCounter() const
OutdatedMessageError(const std::string &msg="Detected a MonitoringFrame from an earlier round. " " The scan round will ignore it.")
Buffers and validates monitoring frames for a scan round.
void startNewRound(const data_conversion_layer::monitoring_frame::MessageStamped &stamped_msg)