Classes | Namespaces | Macros | Typedefs | Variables
scanner_state_machine.h File Reference
#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"
Include dependency graph for scanner_state_machine.h:
This graph shows which files directly or indirectly include this file:

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 }
 

Macro Definition Documentation

◆ BOOST_MSM_CONSTRUCTOR_ARG_SIZE

#define BOOST_MSM_CONSTRUCTOR_ARG_SIZE   12

Definition at line 28 of file scanner_state_machine.h.

◆ STATE

#define STATE (   state_name)
Value:
class state_name : public msm::front::state<>\
{\
public:\
template <class Event, class FSM>\
void on_entry(Event const&, FSM& fsm);\
\
template <class Event, class FSM>\
void on_exit(Event const&, FSM& fsm);\
}

Definition at line 72 of file scanner_state_machine.h.



psen_scan_v2
Author(s): Pilz GmbH + Co. KG
autogenerated on Sat Jun 22 2024 02:46:12