#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.