SickSafetyscanners.h
Go to the documentation of this file.
1 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
2 
3 // -- BEGIN LICENSE BLOCK ----------------------------------------------
4 
24 // -- END LICENSE BLOCK ------------------------------------------------
25 
26 //----------------------------------------------------------------------
33 //----------------------------------------------------------------------
34 
35 #ifndef SICK_SAFETYSCANNERS_SICKSAFETYSCANNERS_H
36 #define SICK_SAFETYSCANNERS_SICKSAFETYSCANNERS_H
37 
38 #include <ros/ros.h>
39 
40 #include <boost/function.hpp>
41 #include <boost/scoped_ptr.hpp>
42 #include <boost/thread.hpp>
43 
44 #include <iostream>
45 #include <string>
46 #include <vector>
47 
55 
77 
78 namespace sick {
79 
84 {
85 public:
90  typedef boost::function<void(const sick::datastructure::Data&)> packetReceivedCallbackFunction;
91 
98  SickSafetyscanners(const packetReceivedCallbackFunction& newPacketReceivedCallbackFunction,
100  boost::asio::ip::address_v4 interface_ip);
101 
105  virtual ~SickSafetyscanners();
106 
111  bool run();
112 
118 
125  sick::datastructure::TypeCode& type_code);
126 
133  datastructure::ConfigMetadata& config_metadata);
134 
141  sick::datastructure::FirmwareVersion& firmware_version);
142 
143 
145  sick::datastructure::ApplicationName& application_name);
147  sick::datastructure::SerialNumber& serial_number);
148  void requestOrderNumber(const datastructure::CommSettings& settings,
149  datastructure::OrderNumber& order_number);
150  void requestProjectName(const datastructure::CommSettings& settings,
151  datastructure::ProjectName& project_name);
152  void requestUserName(const datastructure::CommSettings& settings,
153  datastructure::UserName& user_name);
155  datastructure::StatusOverview& status_overview);
157  datastructure::DeviceStatus& device_status);
159  datastructure::RequiredUserAction& required_user_action);
160  void FindSensor(const datastructure::CommSettings& settings, uint16_t blink_time);
168  std::vector<sick::datastructure::FieldData>& field_data);
169 
177  datastructure::DeviceName& device_name);
178 
186  sick::datastructure::ConfigData& config_data);
193  void
195  std::vector<sick::datastructure::MonitoringCaseData>& monitoring_cases);
196 
197 
198 private:
200 
201  std::shared_ptr<boost::asio::io_service> m_io_service_ptr;
202  std::shared_ptr<boost::asio::io_service::work> m_io_work_ptr;
203  std::shared_ptr<sick::communication::AsyncUDPClient> m_async_udp_client_ptr;
204  std::shared_ptr<sick::communication::AsyncTCPClient> m_async_tcp_client_ptr;
205  boost::scoped_ptr<boost::thread> m_udp_client_thread_ptr;
206 
207  std::shared_ptr<sick::cola2::Cola2Session> m_session_ptr;
208 
209  std::shared_ptr<sick::data_processing::UDPPacketMerger> m_packet_merger_ptr;
210 
212  bool udpClientThread();
216  void stopTCPConnection();
218  void requestFieldDataInColaSession(std::vector<sick::datastructure::FieldData>& fields);
231  sick::datastructure::RequiredUserAction& required_user_action);
233  std::vector<sick::datastructure::MonitoringCaseData>& monitoring_cases);
234  void FindSensorInColaSession(uint16_t blink_time);
235 };
236 
237 } // namespace sick
238 
239 
240 #endif // SICK_SAFETYSCANNERS_SICKSAFETYSCANNERS_H
sick::SickSafetyscanners::packetReceivedCallbackFunction
boost::function< void(const sick::datastructure::Data &)> packetReceivedCallbackFunction
Definition: SickSafetyscanners.h:90
sick::SickSafetyscanners
Class managing the algorithmic part of the package.
Definition: SickSafetyscanners.h:83
sick::SickSafetyscanners::requestOrderNumber
void requestOrderNumber(const datastructure::CommSettings &settings, datastructure::OrderNumber &order_number)
Definition: SickSafetyscanners.cpp:168
sick::datastructure::ConfigMetadata
Class containing the serial number of a laser scanner.
Definition: ConfigMetadata.h:48
sick::SickSafetyscanners::requestPersistentConfigInColaSession
void requestPersistentConfigInColaSession(sick::datastructure::ConfigData &config_data)
Definition: SickSafetyscanners.cpp:433
sick::SickSafetyscanners::requestDeviceStatusInColaSession
void requestDeviceStatusInColaSession(sick::datastructure::DeviceStatus &device_status)
Definition: SickSafetyscanners.cpp:415
sick::SickSafetyscanners::stopTCPConnection
void stopTCPConnection()
Definition: SickSafetyscanners.cpp:442
sick::datastructure::OrderNumber
Class containing the order number of a laser scanner.
Definition: OrderNumber.h:47
sick::SickSafetyscanners::requestTypeCodeInColaSession
void requestTypeCodeInColaSession(sick::datastructure::TypeCode &type_code)
Definition: SickSafetyscanners.cpp:361
sick::datastructure::UserName
Class containing the user name of a laser scanner.
Definition: UserName.h:47
sick
Definition: ApplicationNameVariableCommand.h:43
sick::SickSafetyscanners::processTCPPacket
void processTCPPacket(const sick::datastructure::PacketBuffer &buffer)
Definition: SickSafetyscanners.cpp:99
AsyncTCPClient.h
ros.h
sick::datastructure::CommSettings
Containing the communication settings for the sensor which can be changed on runtime.
Definition: CommSettings.h:48
OrderNumberVariableCommand.h
sick::SickSafetyscanners::startTCPConnection
void startTCPConnection(const sick::datastructure::CommSettings &settings)
Definition: SickSafetyscanners.cpp:240
UDPPacketMerger.h
sick::SickSafetyscanners::requestUserNameInColaSession
void requestUserNameInColaSession(sick::datastructure::UserName &user_name)
Definition: SickSafetyscanners.cpp:389
sick::datastructure::DeviceName
Class containing the device name of a laser scanner.
Definition: DeviceName.h:47
sick::SickSafetyscanners::requestFieldData
void requestFieldData(const sick::datastructure::CommSettings &settings, std::vector< sick::datastructure::FieldData > &field_data)
Requests data of the protective and warning fields from the sensor.
Definition: SickSafetyscanners.cpp:135
ProjectNameVariableCommand.h
sick::SickSafetyscanners::changeCommSettingsInColaSession
void changeCommSettingsInColaSession(const datastructure::CommSettings &settings)
Definition: SickSafetyscanners.cpp:256
sick::SickSafetyscanners::m_async_udp_client_ptr
std::shared_ptr< sick::communication::AsyncUDPClient > m_async_udp_client_ptr
Definition: SickSafetyscanners.h:203
sick::SickSafetyscanners::FindSensorInColaSession
void FindSensorInColaSession(uint16_t blink_time)
Definition: SickSafetyscanners.cpp:314
sick::datastructure::Data
The data class containing all data blocks of a measurement.
Definition: Data.h:55
MeasurementPersistentConfigVariableCommand.h
MonitoringCaseTableHeaderVariableCommand.h
TypeCodeVariableCommand.h
sick::SickSafetyscanners::changeSensorSettings
void changeSensorSettings(const sick::datastructure::CommSettings &settings)
Changes the internal settings of the sensor.
Definition: SickSafetyscanners.cpp:104
CommSettings.h
sick::SickSafetyscanners::requestStatusOverview
void requestStatusOverview(const datastructure::CommSettings &settings, datastructure::StatusOverview &status_overview)
Definition: SickSafetyscanners.cpp:215
sick::SickSafetyscanners::requestPersistentConfig
void requestPersistentConfig(const datastructure::CommSettings &settings, sick::datastructure::ConfigData &config_data)
Requests the persistent configuration from the sensor.
Definition: SickSafetyscanners.cpp:199
ConfigMetadataVariableCommand.h
sick::SickSafetyscanners::m_async_tcp_client_ptr
std::shared_ptr< sick::communication::AsyncTCPClient > m_async_tcp_client_ptr
Definition: SickSafetyscanners.h:204
sick::SickSafetyscanners::requestProjectNameInColaSession
void requestProjectNameInColaSession(sick::datastructure::ProjectName &project_name)
Definition: SickSafetyscanners.cpp:379
sick::SickSafetyscanners::processUDPPacket
void processUDPPacket(const sick::datastructure::PacketBuffer &buffer)
Definition: SickSafetyscanners.cpp:449
sick::SickSafetyscanners::requestOrderNumberInColaSession
void requestOrderNumberInColaSession(sick::datastructure::OrderNumber &order_number)
Definition: SickSafetyscanners.cpp:369
ParseData.h
RequiredUserActionVariableCommand.h
sick::SickSafetyscanners::m_io_service_ptr
std::shared_ptr< boost::asio::io_service > m_io_service_ptr
Definition: SickSafetyscanners.h:201
sick::SickSafetyscanners::SickSafetyscanners
SickSafetyscanners(const packetReceivedCallbackFunction &newPacketReceivedCallbackFunction, sick::datastructure::CommSettings *settings, boost::asio::ip::address_v4 interface_ip)
Constructor of the SickSafetyscanners class.
Definition: SickSafetyscanners.cpp:40
MeasurementCurrentConfigVariableCommand.h
DeviceNameVariableCommand.h
ChangeCommSettingsCommand.h
sick::SickSafetyscanners::m_udp_client_thread_ptr
boost::scoped_ptr< boost::thread > m_udp_client_thread_ptr
Definition: SickSafetyscanners.h:205
sick::SickSafetyscanners::requestTypeCode
void requestTypeCode(const sick::datastructure::CommSettings &settings, sick::datastructure::TypeCode &type_code)
Requests the typecode of the sensor.
Definition: SickSafetyscanners.cpp:119
sick::SickSafetyscanners::udpClientThread
bool udpClientThread()
Definition: SickSafetyscanners.cpp:89
sick::SickSafetyscanners::requestRequiredUserAction
void requestRequiredUserAction(const datastructure::CommSettings &settings, datastructure::RequiredUserAction &required_user_action)
Definition: SickSafetyscanners.cpp:231
sick::datastructure::ApplicationName
Class containing the application name of a laser scanner.
Definition: ApplicationName.h:47
ConfigData.h
Cola2Session.h
sick::SickSafetyscanners::requestRequiredUserActionInColaSession
void requestRequiredUserActionInColaSession(sick::datastructure::RequiredUserAction &required_user_action)
Definition: SickSafetyscanners.cpp:424
sick::SickSafetyscanners::run
bool run()
Start the connection to the sensor and enables output.
Definition: SickSafetyscanners.cpp:80
sick::datastructure::StatusOverview
Class containing the serial number of a laser scanner.
Definition: StatusOverview.h:47
UserNameVariableCommand.h
sick::datastructure::RequiredUserAction
Class containing the additional information about the sopas state.
Definition: RequiredUserAction.h:47
StatusOverviewVariableCommand.h
sick::SickSafetyscanners::requestDeviceNameInColaSession
void requestDeviceNameInColaSession(datastructure::DeviceName &device_name)
Definition: SickSafetyscanners.cpp:321
sick::SickSafetyscanners::requestFirmwareVersionInColaSession
void requestFirmwareVersionInColaSession(sick::datastructure::FirmwareVersion &firmware_version)
Definition: SickSafetyscanners.cpp:351
AsyncUDPClient.h
FirmwareVersionVariableCommand.h
sick::SickSafetyscanners::requestSerialNumberInColaSession
void requestSerialNumberInColaSession(sick::datastructure::SerialNumber &serial_number)
Definition: SickSafetyscanners.cpp:341
sick::SickSafetyscanners::requestConfigMetadataInColaSession
void requestConfigMetadataInColaSession(sick::datastructure::ConfigMetadata &config_metadata)
Definition: SickSafetyscanners.cpp:397
PacketBuffer.h
sick::SickSafetyscanners::requestMonitoringCaseDataInColaSession
void requestMonitoringCaseDataInColaSession(std::vector< sick::datastructure::MonitoringCaseData > &monitoring_cases)
Definition: SickSafetyscanners.cpp:292
sick::SickSafetyscanners::FindSensor
void FindSensor(const datastructure::CommSettings &settings, uint16_t blink_time)
Definition: SickSafetyscanners.cpp:111
sick::SickSafetyscanners::~SickSafetyscanners
virtual ~SickSafetyscanners()
Destructor.
Definition: SickSafetyscanners.cpp:73
sick::datastructure::ProjectName
Class containing the project name of a laser scanner.
Definition: ProjectName.h:47
sick::SickSafetyscanners::m_session_ptr
std::shared_ptr< sick::cola2::Cola2Session > m_session_ptr
Definition: SickSafetyscanners.h:207
sick::datastructure::SerialNumber
Class containing the serial number of a laser scanner.
Definition: SerialNumber.h:47
MonitoringCaseVariableCommand.h
sick::datastructure::DeviceStatus
Class containing the device status of a laser scanner.
Definition: DeviceStatus.h:47
DeviceStatusVariableCommand.h
sick::SickSafetyscanners::m_newPacketReceivedCallbackFunction
packetReceivedCallbackFunction m_newPacketReceivedCallbackFunction
Definition: SickSafetyscanners.h:199
sick::SickSafetyscanners::requestApplicationName
void requestApplicationName(const sick::datastructure::CommSettings &settings, sick::datastructure::ApplicationName &application_name)
Definition: SickSafetyscanners.cpp:127
sick::SickSafetyscanners::requestStatusOverviewInColaSession
void requestStatusOverviewInColaSession(sick::datastructure::StatusOverview &status_overview)
Definition: SickSafetyscanners.cpp:406
SerialNumberVariableCommand.h
sick::SickSafetyscanners::requestFieldDataInColaSession
void requestFieldDataInColaSession(std::vector< sick::datastructure::FieldData > &fields)
Definition: SickSafetyscanners.cpp:264
sick::datastructure::ConfigData
Config data for current and persistent sensor config.
Definition: ConfigData.h:50
ApplicationNameVariableCommand.h
sick::SickSafetyscanners::requestDeviceName
void requestDeviceName(const sick::datastructure::CommSettings &settings, datastructure::DeviceName &device_name)
Requests the name of the device from the sensor.
Definition: SickSafetyscanners.cpp:152
sick::SickSafetyscanners::requestFirmwareVersion
void requestFirmwareVersion(const sick::datastructure::CommSettings &settings, sick::datastructure::FirmwareVersion &firmware_version)
Requests the firmware version of the sensor.
Definition: SickSafetyscanners.cpp:191
sick::SickSafetyscanners::requestDeviceStatus
void requestDeviceStatus(const datastructure::CommSettings &settings, datastructure::DeviceStatus &device_status)
Definition: SickSafetyscanners.cpp:223
sick::SickSafetyscanners::requestUserName
void requestUserName(const datastructure::CommSettings &settings, datastructure::UserName &user_name)
Definition: SickSafetyscanners.cpp:184
sick::datastructure::PacketBuffer
A packetbuffer for the raw data from the sensor.
Definition: PacketBuffer.h:61
sick::datastructure::TypeCode
Class containing the type code of a laser scanner.
Definition: TypeCode.h:62
sick::SickSafetyscanners::m_io_work_ptr
std::shared_ptr< boost::asio::io_service::work > m_io_work_ptr
Definition: SickSafetyscanners.h:202
sick::datastructure::FirmwareVersion
Class containing the firmware version of a laser scanner.
Definition: FirmwareVersion.h:47
sick::SickSafetyscanners::requestSerialNumber
void requestSerialNumber(const sick::datastructure::CommSettings &settings, sick::datastructure::SerialNumber &serial_number)
Definition: SickSafetyscanners.cpp:160
sick::SickSafetyscanners::requestMonitoringCases
void requestMonitoringCases(const sick::datastructure::CommSettings &settings, std::vector< sick::datastructure::MonitoringCaseData > &monitoring_cases)
Requests the monitoring cases from the sensor.
Definition: SickSafetyscanners.cpp:143
sick::SickSafetyscanners::requestProjectName
void requestProjectName(const datastructure::CommSettings &settings, datastructure::ProjectName &project_name)
Definition: SickSafetyscanners.cpp:176
sick::SickSafetyscanners::requestApplicationNameInColaSession
void requestApplicationNameInColaSession(sick::datastructure::ApplicationName &application_name)
Definition: SickSafetyscanners.cpp:331
sick::SickSafetyscanners::requestConfigMetadata
void requestConfigMetadata(const datastructure::CommSettings &settings, datastructure::ConfigMetadata &config_metadata)
Requests the config meta data of the sensor.
Definition: SickSafetyscanners.cpp:207
sick::SickSafetyscanners::m_packet_merger_ptr
std::shared_ptr< sick::data_processing::UDPPacketMerger > m_packet_merger_ptr
Definition: SickSafetyscanners.h:209
FindMeCommand.h
FieldHeaderVariableCommand.h
FieldGeometryVariableCommand.h


sick_safetyscanners
Author(s): Lennart Puck
autogenerated on Fri Jun 21 2024 02:40:51