#include <functional>#include <string>#include <memory>#include <mutex>#include <chrono>#include <stdexcept>#include <unordered_map>#include <vector>#include <boost/optional.hpp>#include <boost/msm/back/state_machine.hpp>#include <boost/msm/front/state_machine_def.hpp>#include <boost/msm/back/tools.hpp>#include <boost/msm/back/metafunctions.hpp>#include "psen_scan_v2_standalone/protocol_layer/scanner_events.h"#include "psen_scan_v2_standalone/util/logging.h"#include "psen_scan_v2_standalone/util/format_range.h"#include "psen_scan_v2_standalone/util/ip_conversion.h"#include "psen_scan_v2_standalone/communication_layer/udp_client.h"#include "psen_scan_v2_standalone/laserscan.h"#include "psen_scan_v2_standalone/data_conversion_layer/laserscan_conversions.h"#include "psen_scan_v2_standalone/data_conversion_layer/start_request.h"#include "psen_scan_v2_standalone/data_conversion_layer/stop_request_serialization.h"#include "psen_scan_v2_standalone/data_conversion_layer/scanner_reply_msg.h"#include "psen_scan_v2_standalone/data_conversion_layer/scanner_reply_serialization_deserialization.h"#include "psen_scan_v2_standalone/data_conversion_layer/monitoring_frame_msg.h"#include "psen_scan_v2_standalone/data_conversion_layer/monitoring_frame_deserialization.h"#include "psen_scan_v2_standalone/protocol_layer/scan_buffer.h"#include "psen_scan_v2_standalone/util/watchdog.h"#include "psen_scan_v2_standalone/configuration/scanner_ids.h"#include "psen_scan_v2_standalone/protocol_layer/scanner_state_machine_def.h"

Go to the source code of this file.
Classes | |
| class | psen_scan_v2_standalone::protocol_layer::ScannerProtocolDef::InternalScannerReplyError |
| Exception thrown when something goes wrong with the scanner reply. More... | |
| class | psen_scan_v2_standalone::protocol_layer::IWatchdogFactory |
| Interface to create event timeout callbacks. More... | |
| class | psen_scan_v2_standalone::protocol_layer::ScannerProtocolDef |
| Definition of the scanner protocol. It is initialized using the StateMachineArgs class. More... | |
| struct | psen_scan_v2_standalone::protocol_layer::ScannerProtocolDef::transition_table |
| Table describing the state machine which is specified in the scanner protocol. More... | |
| class | psen_scan_v2_standalone::protocol_layer::WatchdogFactory |
| Watchdog factory implementation for scanner interaction timeouts. More... | |
Namespaces | |
| psen_scan_v2_standalone | |
| Root namespace in which the software components to communicate with the scanner (firmware-version: 2) are realised/implemented. | |
| psen_scan_v2_standalone::protocol_layer | |
| Namespace for the implementation of the scanner protocol state machine. | |
Macros | |
| #define | BOOST_MSM_CONSTRUCTOR_ARG_SIZE 12 |
| #define | STATE(state_name) |
Typedefs | |
| using | psen_scan_v2_standalone::protocol_layer::InformUserAboutLaserScanCallback = std::function< void(const LaserScan &)> |
| using | psen_scan_v2_standalone::protocol_layer::ScannerStartedCallback = std::function< void()> |
| using | psen_scan_v2_standalone::protocol_layer::ScannerStateMachine = msm::back::state_machine< ScannerProtocolDef > |
| State machine handling all events according to the scanner protocol and error handling specification. More... | |
| using | psen_scan_v2_standalone::protocol_layer::ScannerStoppedCallback = std::function< void()> |
| using | psen_scan_v2_standalone::protocol_layer::StartErrorCallback = std::function< void(const std::string &)> |
| using | psen_scan_v2_standalone::protocol_layer::StopErrorCallback = std::function< void(const std::string &)> |
| using | psen_scan_v2_standalone::protocol_layer::TimeoutCallback = std::function< void()> |
Variables | |
| static constexpr uint32_t | psen_scan_v2_standalone::protocol_layer::DEFAULT_NUM_MSG_PER_ROUND { 6 } |
| static constexpr std::chrono::milliseconds | psen_scan_v2_standalone::protocol_layer::WATCHDOG_TIMEOUT { 1000 } |
| #define BOOST_MSM_CONSTRUCTOR_ARG_SIZE 12 |
Definition at line 28 of file scanner_state_machine.h.
| #define STATE | ( | state_name | ) |
Definition at line 72 of file scanner_state_machine.h.