sick_scan_common.h
Go to the documentation of this file.
1 #include "sick_scan/sick_scan_base.h" /* Base definitions included in all header files, added by add_sick_scan_base_header.py. Do not edit this line. */
2 /*
3  * Copyright (C) 2013, Osnabrueck University
4  * Copyright (C) 2017, Ing.-Buero Dr. Michael Lehning, Hildesheim
5  * Copyright (C) 2017, SICK AG, Waldkirch
6  * All rights reserved.
7  *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 *
20 *
21 * All rights reserved.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions are met:
25 *
26 * * Redistributions of source code must retain the above copyright
27 * notice, this list of conditions and the following disclaimer.
28 * * Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * * Neither the name of Osnabrueck University nor the names of its
32 * contributors may be used to endorse or promote products derived from
33 * this software without specific prior written permission.
34 * * Neither the name of SICK AG nor the names of its
35 * contributors may be used to endorse or promote products derived from
36 * this software without specific prior written permission
37 * * Neither the name of Ing.-Buero Dr. Michael Lehning nor the names of its
38 * contributors may be used to endorse or promote products derived from
39 * this software without specific prior written permission
40 *
41 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
42 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
45 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
46 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
47 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
48 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
49 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
50 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
51 * POSSIBILITY OF SUCH DAMAGE.
52  *
53  * Created on: 24.05.2012
54  *
55  * Authors:
56  * Jochen Sprickerhof <jochen@sprickerhof.de>
57  * Martin Günther <mguenthe@uos.de>
58  * Michael Lehning <michael.lehning@lehning.de>
59  *
60  * Based on the TiM communication example by SICK AG.
61  *
62  */
63 
64 #ifndef SICK_SCAN_COMMON_H_
65 #define SICK_SCAN_COMMON_H_
66 
67 #include <stdio.h>
68 #include <stdlib.h>
69 #include <string>
70 #include <string.h>
71 #include <vector>
72 
75 
76 #include <thread>
77 #include <mutex>
78 
83 
89 
90 /*
91 ** Default timeouts
92 */
93 #define READ_TIMEOUT_MILLISEC_STARTUP 120000 // 120 sec read timeout during startup (sensor may be starting up, which can take up to 120 sec.) // TODO: move timeout to config
94 #define READ_TIMEOUT_MILLISEC_DEFAULT 5000 // 5 sec read timeout in operational mode (measurement mode) // TODO: move timeout to config
95 #define READ_TIMEOUT_MILLISEC_KILL_NODE 150000 // 150 sec pointcloud timeout, ros node will be killed if no point cloud published within the last 150 sec. // TODO: move timeout to config
96 
97 void swap_endian(unsigned char *ptr, int numBytes);
98 
99 namespace sick_scan_xd
100 {
101 
103  {
104  public:
106  {
108  CMD_DEVICE_IDENT, // for MRS6124
120  // CMD_ALIGNMENT_MODE,
126  CMD_READ_ACTIVE_APPLICATIONS, // "sRN SetActiveApplications"
142 
143  // Encode settings
154 
155  CMD_START_IMU_DATA, // start of IMU data
156  CMD_STOP_IMU_DATA, // start of IMU data
157 
158  // start of radar specific commands
159  CMD_SET_TRANSMIT_RAWTARGETS_ON, // transmit raw target for radar
160  CMD_SET_TRANSMIT_RAWTARGETS_OFF, // do not transmit raw target for radar
161 
162  CMD_SET_TRANSMIT_OBJECTS_ON, // transmit raw target for radar
163  CMD_SET_TRANSMIT_OBJECTS_OFF, // do not transmit raw target for radar
164 
165  CMD_SET_TRACKING_MODE_0, // set radar tracking mode to "BASIC"
166  CMD_SET_TRACKING_MODE_1, // set radar tracking mode to "TRAFFIC"
167 
168  CMD_LOAD_APPLICATION_DEFAULT, // load application default
171  // end of radar specific commands
180  CMD_SET_SCANDATACONFIGNAV, // "sMN mLMPsetscancfg ..."
181  CMD_GET_SCANDATACONFIGNAV, // "sRN LMPscancfg"
182  CMD_SEN_SCANDATACONFIGNAV, // "sEN LMPscancfg 1"
183  CMD_GET_ANGLE_COMPENSATION_PARAM, // Angle Compensation Parameter for NAV lidar
184  CMD_SET_TO_COLA_A_PROTOCOL, // sWN EIHstCola 1 // Cola B sWN EIHstCola 0 // Cola A
186  CMD_GET_SAFTY_FIELD_CFG,// gets the safty fields cfg olny tim 7xxs supported at the moment
187 
188  CMD_SET_LFEREC_ACTIVE, // activate LFErec messages, send "sEN LFErec 1"
189  CMD_SET_LID_OUTPUTSTATE_ACTIVE, // activate LIDoutputstate messages, send "sEN LIDoutputstate 1"
190  CMD_SET_LID_INPUTSTATE_ACTIVE, // activate LIDinputstate messages, send "sEN LIDinputstate 1"
191  CMD_SET_SCAN_CFG_LIST, // "sMN mCLsetscancfglist %d", set scan config from list for NAX310 LD-OEM15xx LD-LRS36xx
192 
193  // NAV-350 commands
194  CMD_SET_NAV_OPERATIONAL_MODE_0, // "sMN mNEVAChangeState 0", 0 = power down
195  CMD_SET_NAV_OPERATIONAL_MODE_1, // "sMN mNEVAChangeState 1", 1 = standby
196  CMD_SET_NAV_OPERATIONAL_MODE_2, // "sMN mNEVAChangeState 2", 2 = mapping
197  CMD_SET_NAV_OPERATIONAL_MODE_3, // "sMN mNEVAChangeState 3", 3 = landmark detection
198  CMD_SET_NAV_OPERATIONAL_MODE_4, // "sMN mNEVAChangeState 4", 4 = navigation
199  CMD_SET_NAV_CURR_LAYER, // "sWN NEVACurrLayer 0"
200  CMD_SET_NAV_LANDMARK_DATA_FORMAT, // "sWN NLMDLandmarkDataFormat 0 1 1"
201  CMD_SET_NAV_SCAN_DATA_FORMAT, // "sWN NAVScanDataFormat 1 1"
202  CMD_SET_NAV_POSE_DATA_FORMAT, // "sWN NPOSPoseDataFormat 1 1"
203  CMD_SET_NAV_MAP_CFG, // "sWN NMAPMapCfg 50 0 0 0 0"
204  CMD_SET_NAV_REFL_SIZE, // "sWN NLMDReflSize 80"
205  CMD_SET_NAV_DO_MAPPING, // "sMN mNMAPDoMapping"
206  CMD_SET_NAV_ADD_LANDMARK, // "sMN mNLAYAddLandmark landmarkData {x y type subtype size layerID {ID}}"
207  CMD_SET_NAV_ERASE_LAYOUT, // "sMN mNLAYEraseLayout 1"
208  CMD_SET_NAV_STORE_LAYOUT, // "sMN mNLAYStoreLayout"
209  CMD_SET_NAV_POSE, // Set NAV-350 start pose in navigation mode by "sMN mNPOSSetPose X Y Phi"
210 
211  // Supported by sick_generic_caller version 2.7.3 and above:
212  CMD_SET_LFPMEANFILTER, // MRS1xxx, LMS1xxx, LMS4xxx, LRS4xxx: "sWN LFPmeanfilter" + { 1 byte 0|1 active/inactive } + { 2 byte 0x02 ... 0x64 number of scans } + { 1 byte 0x00 }
213  CMD_SET_LFPMEDIANFILTER, // MRS1xxx, LMS1xxx, LMS4xxx, LRS4xxx: "sWN LFPmedianfilter" (3x1 median filter) + { 1 byte 0|1 active/inactive } + { 2 byte 0x03 }
214  CMD_SET_LMDSCANDATASCALEFACTOR, // LRS4xxx: "sWN LMDscandatascalefactor" + { 4 byte float }, e.g. scalefactor 1.0f = 0x3f800000, scalefactor 2.0f = 0x40000000
215 
216  // Supported by sick_generic_caller version 2.8.4 and above:
217  CMD_SET_GLARE_DETECTION_SENS, // Glare Detection Sensitivity (LRS4xxx only): glare_detection_sens<0: do not apply, glare_detection_sens==0: deactivate glare_detection_filter, glare_detection_sens==5: medium glare detection sensitivity, glare_detection_sens==10: sensitive glare detection filter
218 
219  // CMD_SET_ALIGNMENT_MODE, // Support for MRS-1000 layer activation (alignment mode): do not overwrite: -1, all Layer: 0 (default), red Layer (-2.5 deg): 1, blue Layer (0 deg): 2, green Layer (+2.5 deg): 3, yellow Layer (+5 deg): 4
220  CMD_SET_SCAN_LAYER_FILTER, // MRS-1000 scan layer activation mask, "sWN ScanLayerFilter <number of layers> <layer 1: on/off> … <layer N: on/off>"", default: all layer activated: "sWN ScanLayerFilter 4 1 1 1 1"
221 
222  // ML: Add above new CMD-Identifier
223  //
224  //
225  CMD_END // CMD_END is a tag for end of enum - never (re-)move it. It must be the last element.
226  };
227 // --- START KEYWORD DEFINITIONS ---
228 #define PARAM_MIN_ANG "min_ang"
229 #define PARAM_MAX_ANG "max_ang"
230 #define PARAM_RES_ANG "res_ang"
231 // --- END KEYWORD DEFINITIONS ---
232 
233 
234  SickScanCommon(rosNodePtr nh, SickGenericParser *parser);
235 
236  virtual ~SickScanCommon();
237 
238  int setParticleFilter(bool _active, int _particleThreshold);//actualy only 500 mm is working.
239 
245  std::vector<std::string> generateExpectedAnswerString(const std::vector<unsigned char>& requestStr);
246 
252  std::vector<std::string> generateUnexpectedAnswerString(const std::string& requestStr);
253 
259  virtual int convertSendSOPASCommand(const std::string& sopas_ascii_request, std::vector<unsigned char>* reply, bool wait_for_reply = true);
260 
261  int sendSopasAndCheckAnswer(std::string request, std::vector<unsigned char> *reply, int cmdId);
262 
263  int sendSopasAndCheckAnswer(std::vector<unsigned char> request, std::vector<unsigned char> *reply, int cmdId);
264 
265  int sendSopasAorBgetAnswer(const std::string& request, std::vector<unsigned char> *reply, bool useBinaryCmd);
266 
267  int get2ndSopasResponse(std::vector<uint8_t>& sopas_response, const std::string& sopas_keyword);
268 
269  ExitCode checkColaTypeAndSwitchToConfigured(bool useBinaryCmd);
270 
271  bool sendSopasRunSetAccessMode(bool useBinaryCmd);
272 
273  // NAV-350 data must be polled by sending sopas command "sMN mNPOSGetData wait mask"
274  int sendNAV350mNPOSGetData(void);
275 
276  // Parse NAV-350 pose and scan data and send next "sMN mNPOSGetData" request (NAV-350 polling)
277  bool handleNAV350BinaryPositionData(const uint8_t* receiveBuffer, int receiveBufferLength, short& elevAngleX200, double& elevationAngleInRad, rosTime& recvTimeStamp,
278  bool config_sw_pll_only_publish, double config_time_offset, SickGenericParser* parser_, int& numEchos, ros_sensor_msgs::LaserScan& msg, NAV350mNPOSData& navdata);
279 
280  int setAligmentMode(int _AligmentMode);
281 
282  int setMeanFilter(bool _active, int _numberOfScans);
283 
284  int setApplicationMode(bool _active, int _mode); //0=RANG (Ranging) 1=FEVL (Field Application).
285  int ActivateStandBy(void);
286 
287  bool testSettingIpAddress();
288 
289  bool testsetParticleFilter();
290 
291  bool testsetMeanFilter();
292 
293  bool testsetAligmentMode();
294 
295  bool testsetActivateStandBy();
296 
297  bool testsetApplicationMode();
298 
299  int getReadTimeOutInMs();
300 
301  void setReadTimeOutInMs(int timeOutInMs);
302 
303  int getProtocolType(void);
304 
305  void setProtocolType(SopasProtocol cola_dialect_id);
306 
307  virtual int init(rosNodePtr nh);
308 
309  int loopOnce(rosNodePtr nh);
310 
311  void check_angle_range(SickScanConfig &conf);
312 
313  void update_config(sick_scan_xd::SickScanConfig &new_config, uint32_t level = 0);
314 
315 #if defined USE_DYNAMIC_RECONFIGURE && __ROS_VERSION == 2
316  rcl_interfaces::msg::SetParametersResult update_config_cb(const std::vector<rclcpp::Parameter> &parameters);
317 #endif
318 
319  double get_expected_frequency() const
320  { return expectedFrequency_; }
321 
322  int convertAscii2BinaryCmd(const char *requestAscii, std::vector<unsigned char> *requestBinary);
323 
324  void setLengthAndCRCinBinarySopasRequest(std::vector<uint8_t>* requestBinary);
325 
326  int init_cmdTables(rosNodePtr nh);
327 
329 
332  virtual bool rebootScanner();
333 
335 
339  bool changeIPandreboot(const std::string& IpAdress);
340 
342 
344  {
345  return (&config_);
346  }
347 
349  {
350  return parser_ ? parser_->getCurrentParamPtr() : 0;
351  }
352 
353  std::string cmdSetAccessMode3(void);
354 
356 
360  std::string sopasReplyToString(const std::vector<unsigned char> &reply)
361  {
362  return replyToString(reply);
363  }
364 
365  uint64_t getNanosecTimestampLastTcpMessageReceived(void) { return m_nw.getNanosecTimestampLastTcpMessageReceived(); } // Returns a timestamp in nanoseconds of the last received tcp message (or 0 if no message received)
366 
367  // Write FieldSetSelectionMethod
368  int writeFieldSetSelectionMethod(int field_set_selection_method, std::vector<unsigned char>& sopasReply, bool useBinaryCmd = true);
369 
370  // Read FieldSetSelectionMethod
371  int readFieldSetSelectionMethod(int& field_set_selection_method, std::vector<unsigned char>& sopasReply, bool useBinaryCmd = true);
372 
373  // Write ActiveFieldSet
374  int writeActiveFieldSet(int active_field_set, std::vector<unsigned char>& sopasReply, bool useBinaryCmd = true);
375 
376  // Read ActiveFieldSet
377  int readActiveFieldSet(int& active_field_set, std::vector<unsigned char>& sopasReply, bool useBinaryCmd = true);
378 
379  // move back to private
380  /* FÜR MRS10000 brauchen wir einen Publish und eine NAchricht */
381  // Should we publish laser or point cloud?
382  // ros::Publisher cloud_pub_;
388 
390 
391  static bool dumpDatagramForDebugging(unsigned char *buffer, int bufLen, bool isBinary = true);
392 
394  // Dynamic Reconfigure
396  protected:
397  virtual int init_device() = 0;
398 
399  virtual int init_scanner(rosNodePtr nh);
400 
401  virtual int stop_scanner(bool force_immediate_shutdown = false);
402 
403  virtual int close_device() = 0;
404 
406 
411  virtual int sendSOPASCommand(const char *request, std::vector<unsigned char> *reply, int cmdLen, bool wait_for_reply = true) = 0;
412 
413  virtual int readWithTimeout(size_t timeout_ms, char *buffer, int buffer_size, int *bytes_read, const std::vector<std::string>& datagram_keywords) = 0;
414 
416 
424  virtual int get_datagram(rosNodePtr nh, rosTime &recvTimeStamp, unsigned char *receiveBuffer, int bufferSize, int *actual_length,
425  bool isBinaryProtocol, int *numberOfRemainingFifoEntries, const std::vector<std::string>& datagram_keywords) = 0;
426 
432  std::string replyToString(const std::vector<unsigned char> &reply);
433 
439  unsigned long convertBigEndianCharArrayToUnsignedLong(const unsigned char *vecArr);
440 
446  int checkForBinaryAnswer(const std::vector<unsigned char> *reply);
447 
453  bool isCompatibleDevice(const std::string identStr) const;
454 
455  bool switchColaProtocol(bool useBinaryCmd);
456 
457  int readLIDinputstate(SickScanFieldMonSingleton *fieldMon, bool useBinaryCmd);
458 
459 #ifdef USE_DIAGNOSTIC_UPDATER
460  std::shared_ptr<diagnostic_updater::Updater> diagnostics_;
461 #endif
462 
463  private:
465  std::string cloud_topic_val = "cloud";
466  // ROS
470 
478 
484 
487 #if __ROS_VERSION > 0
488  tf2_ros::TransformBroadcaster* nav_tf_broadcaster_;
489  void messageCbRosOdom(const ros_nav_msgs::Odometry& msg);
490 #endif
491 #if __ROS_VERSION == 1
492  ros::Subscriber nav_odom_velocity_subscriber_;
493  ros::Subscriber ros_odom_subscriber_;
494 #elif __ROS_VERSION == 2
495  rclcpp::Subscription<sick_scan_msg::NAVOdomVelocity>::SharedPtr nav_odom_velocity_subscriber_;
496  void messageCbNavOdomVelocityROS2(const std::shared_ptr<sick_scan_msg::NAVOdomVelocity> msg) { messageCbNavOdomVelocity(*msg); }
497  rclcpp::Subscription<ros_nav_msgs::Odometry>::SharedPtr ros_odom_subscriber_;
498  void messageCbRosOdomROS2(const std::shared_ptr<ros_nav_msgs::Odometry> msg) { messageCbRosOdom(*msg); }
499 #endif
500 
501  // Diagnostics
502 #if defined USE_DIAGNOSTIC_UPDATER
503 #if __ROS_VERSION == 1
505 #elif __ROS_VERSION == 2
506  DiagnosedPublishAdapter<rosPublisher<ros_sensor_msgs::LaserScan>> *diagnosticPub_;
507 #else
508  uint8_t* diagnosticPub_; // always 0
509 #endif
510 #else
511  uint8_t* diagnosticPub_; // always 0
512 #endif
514  std::string deviceIdentStr; // devide id from sopas response to "sRN DeviceIdent"
515 
516 #if defined USE_DYNAMIC_RECONFIGURE && __ROS_VERSION == 1
518 #endif
519  // Parser
521  std::vector<std::string> sopasCmdVec;
522  std::vector<std::string> sopasCmdMaskVec;
523  std::vector<std::string> sopasReplyVec;
524  std::vector<std::vector<unsigned char> > sopasReplyBinVec;
525  std::vector<std::string> sopasReplyStrVec;
526  std::vector<std::string> sopasCmdErrMsg;
527  std::vector<int> sopasCmdChain;
528 
530 
531  bool checkForProtocolChangeAndMaybeReconnect(bool &useBinaryCmdNow);
532 
533  void setSensorIsRadar(bool _isRadar);
534 
535  bool getSensorIsRadar(void);
536 
537  bool setNewIpAddress(const std::string& ipNewIPAddr, bool useBinaryCmd);
538 
539  bool setNTPServerAndStart(const std::string& ipNewIPAddr, bool useBinaryCmd);
540 
541  int readParseSafetyFields(bool useBinaryCmd);
542 
544 
545  std::mutex sopasSendMutex; // mutex to lock sendSopasAndCheckAnswer
546 
547  private:
549 
551 
552  double m_min_intensity; // Set range of LaserScan messages to infinity, if intensity < min_intensity (default: 0)
553 
554  //void getConfigUpdateParam(SickScanConfig & cfg);
555  //void setConfigUpdateParam(SickScanConfig & cfg);
556 
559 
561 
562  struct ScanLayerFilterCfg // Optional ScanLayerFilter setting
563  {
564  ScanLayerFilterCfg(const std::string& parameter = "") // parameter for ScanLayerFilter, e.g. "4 1 1 1 1"
565  {
566  if (!parameter.empty())
567  parse(parameter);
568  }
569  std::string scan_layer_filter = ""; // Optional ScanLayerFilter setting from launchfile
570  std::vector<int> scan_layer_activated = std::vector<int>();
573  int num_layers = 0;
575  void parse(const std::string& parameter);
576  void print();
577  };
578  ScanLayerFilterCfg m_scan_layer_filter_cfg; // Optional ScanLayerFilter setting
579 
581  };
582 
583 } /* namespace sick_scan_xd */
584 #endif /* SICK_TIM3XX_COMMON_H_ */
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::ScanLayerFilterCfg
ScanLayerFilterCfg(const std::string &parameter="")
Definition: sick_scan_common.h:564
sick_scan_xd::SickScanCommon::SOPAS_CMD
SOPAS_CMD
Definition: sick_scan_common.h:105
sick_scan_xd::SickScanCommon::init_cmdTables
int init_cmdTables(rosNodePtr nh)
init command tables and define startup sequence
Definition: sick_scan_common.cpp:1541
sick_scan_xd::SickScanCommon::CMD_WRITE_EEPROM
@ CMD_WRITE_EEPROM
Definition: sick_scan_common.h:111
sick_cloud_transform.h
sick_scan_xd::SickScanCommon::lferec_pub_
rosPublisher< sick_scan_msg::LFErecMsg > lferec_pub_
Definition: sick_scan_common.h:471
sick_scan_xd::SickScanCommon::CMD_SET_ENCODER_RES
@ CMD_SET_ENCODER_RES
Definition: sick_scan_common.h:153
sick_scan_xd::SickScanCommon::CMD_STOP_SCANDATA
@ CMD_STOP_SCANDATA
Definition: sick_scan_common.h:137
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::num_active_layers
int num_active_layers
Definition: sick_scan_common.h:574
sick_scan_xd::SickScanCommon::CMD_SET_ACCESS_MODE_3
@ CMD_SET_ACCESS_MODE_3
Definition: sick_scan_common.h:127
sick_scan_xd::SickScanCommon::testsetApplicationMode
bool testsetApplicationMode()
sick_scan_xd::SickScanCommon::CMD_SET_NAV_POSE_DATA_FORMAT
@ CMD_SET_NAV_POSE_DATA_FORMAT
Definition: sick_scan_common.h:202
sick_scan_xd::SickScanCommon::publish_lidinputstate_
bool publish_lidinputstate_
Definition: sick_scan_common.h:475
sick_scan_xd::SickScanCommon::CMD_SET_LID_INPUTSTATE_ACTIVE
@ CMD_SET_LID_INPUTSTATE_ACTIVE
Definition: sick_scan_common.h:190
NULL
#define NULL
sick_scan_xd::SickScanCommon::CMD_STOP_MEASUREMENT
@ CMD_STOP_MEASUREMENT
Definition: sick_scan_common.h:173
sick_scan_xd::SickScanCommon::CMD_SET_NAV_LANDMARK_DATA_FORMAT
@ CMD_SET_NAV_LANDMARK_DATA_FORMAT
Definition: sick_scan_common.h:200
sick_scan_xd::SickScanCommon::setAligmentMode
int setAligmentMode(int _AligmentMode)
sick_scan_xd::SickScanCommon::CMD_APPLICATION_MODE_FIELD_OFF
@ CMD_APPLICATION_MODE_FIELD_OFF
Definition: sick_scan_common.h:124
sick_scan_xd::SickScanCommon::CMD_SET_ENCODER_MODE_FI
@ CMD_SET_ENCODER_MODE_FI
Definition: sick_scan_common.h:149
sick_scan_xd::SickScanCommon::CMD_SET_PARTIAL_SCAN_CFG
@ CMD_SET_PARTIAL_SCAN_CFG
Definition: sick_scan_common.h:133
sick_scan_xd::SickScanCommon::CMD_END
@ CMD_END
Definition: sick_scan_common.h:225
sick_scan_xd::SickScanCommon::CMD_SET_NTP_UPDATETIME
@ CMD_SET_NTP_UPDATETIME
Definition: sick_scan_common.h:175
sick_scan_xd::SickScanCommon::CMD_SET_TRANSMIT_OBJECTS_ON
@ CMD_SET_TRANSMIT_OBJECTS_ON
Definition: sick_scan_common.h:162
sick_scan_xd::SickScanCommon::isCompatibleDevice
bool isCompatibleDevice(const std::string identStr) const
check the identification string
Definition: sick_scan_common.cpp:4277
sick_scan_xd::SickScanCommon::cloud_marker_
SickScanMarker * cloud_marker_
Definition: sick_scan_common.h:477
sick_scan_xd::SickScanCommon::CMD_SET_NAV_ERASE_LAYOUT
@ CMD_SET_NAV_ERASE_LAYOUT
Definition: sick_scan_common.h:207
sick_scan_xd::SickScanCommon::CMD_SET_SCANDATACONFIGNAV
@ CMD_SET_SCANDATACONFIGNAV
Definition: sick_scan_common.h:180
sick_scan_xd::SickCloudTransform
Definition: sick_cloud_transform.h:85
sick_scan_xd::SickScanCommon::CMD_SET_NAV_OPERATIONAL_MODE_3
@ CMD_SET_NAV_OPERATIONAL_MODE_3
Definition: sick_scan_common.h:197
sick_scan_xd::SickScanCommon::CMD_SET_NAV_OPERATIONAL_MODE_4
@ CMD_SET_NAV_OPERATIONAL_MODE_4
Definition: sick_scan_common.h:198
sick_scan_xd::SickScanCommon::sopasCmdVec
std::vector< std::string > sopasCmdVec
Definition: sick_scan_common.h:521
sick_scan_xd::SickScanCommon::CMD_SET_ENCODER_MODE_SI
@ CMD_SET_ENCODER_MODE_SI
Definition: sick_scan_common.h:146
sick_scan_xd_api_test.sopas_response
sopas_response
Definition: sick_scan_xd_api_test.py:453
sick_scan_xd::SickScanCommon::CMD_SET_TRANSMIT_RAWTARGETS_ON
@ CMD_SET_TRANSMIT_RAWTARGETS_ON
Definition: sick_scan_common.h:159
sick_scan_xd::SickScanCommon::writeFieldSetSelectionMethod
int writeFieldSetSelectionMethod(int field_set_selection_method, std::vector< unsigned char > &sopasReply, bool useBinaryCmd=true)
Definition: sick_scan_common.cpp:6386
sick_scan_xd::SickScanCommon::CMD_SET_LID_OUTPUTSTATE_ACTIVE
@ CMD_SET_LID_OUTPUTSTATE_ACTIVE
Definition: sick_scan_common.h:189
sick_scan_marker.h
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::num_layers
int num_layers
Definition: sick_scan_common.h:573
sick_scan_xd::SickScanCommon::CMD_SET_NAV_SCAN_DATA_FORMAT
@ CMD_SET_NAV_SCAN_DATA_FORMAT
Definition: sick_scan_common.h:201
swap_endian
void swap_endian(unsigned char *ptr, int numBytes)
Universal swapping function.
Definition: sick_scan_common.cpp:125
SickScanCommonNw
Interface for TCP/IP.
Definition: sick_scan_common_nw.h:39
sick_scan_xd::SickScanCommon::SickScanCommon
SickScanCommon(rosNodePtr nh, SickGenericParser *parser)
Construction of SickScanCommon.
Definition: sick_scan_common.cpp:462
sick_scan_xd::SickScanCommon::readWithTimeout
virtual int readWithTimeout(size_t timeout_ms, char *buffer, int buffer_size, int *bytes_read, const std::vector< std::string > &datagram_keywords)=0
sick_scan_xd::SickScanCommon::CMD_SET_LMDSCANDATASCALEFACTOR
@ CMD_SET_LMDSCANDATASCALEFACTOR
Definition: sick_scan_common.h:214
sick_scan_xd::SickScanCommon::checkColaTypeAndSwitchToConfigured
ExitCode checkColaTypeAndSwitchToConfigured(bool useBinaryCmd)
Definition: sick_scan_common.cpp:1289
sick_scan_xd::SickScanCommon::publish_datagram_
bool publish_datagram_
Definition: sick_scan_common.h:469
sick_scan_xd::SickScanCommon::CMD_SET_LFPMEDIANFILTER
@ CMD_SET_LFPMEDIANFILTER
Definition: sick_scan_common.h:213
sick_scan_xd::SickScanCommon::CMD_SET_IP_ADDR
@ CMD_SET_IP_ADDR
Definition: sick_scan_common.h:177
sick_scan_xd::SickScanCommon::sopasReplyVec
std::vector< std::string > sopasReplyVec
Definition: sick_scan_common.h:523
sick_scan_xd::SickScanCommon::outputChannelFlagId
int outputChannelFlagId
Definition: sick_scan_common.h:529
sick_scan_xd::SickScanCommon::setParticleFilter
int setParticleFilter(bool _active, int _particleThreshold)
sick_scan_xd::SickScanCommon::config_
SickScanConfig config_
Definition: sick_scan_common.h:395
sick_scan_xd::SickScanCommon::generateExpectedAnswerString
std::vector< std::string > generateExpectedAnswerString(const std::vector< unsigned char > &requestStr)
Generate expected answer strings from the command string.
Definition: sick_scan_common.cpp:932
sick_scan_xd::SickScanCommon::CMD_REBOOT
@ CMD_REBOOT
Definition: sick_scan_common.h:110
sick_scan_xd::SickScanCommon::CMD_DEVICE_TYPE
@ CMD_DEVICE_TYPE
Definition: sick_scan_common.h:169
sensor_msgs::PointCloud2
::sensor_msgs::PointCloud2_< std::allocator< void > > PointCloud2
Definition: PointCloud2.h:90
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::last_active_layer
int last_active_layer
Definition: sick_scan_common.h:572
sick_scan_xd::SickScanCommon
Definition: sick_scan_common.h:102
sick_scan_xd::SickScanCommon::testsetAligmentMode
bool testsetAligmentMode()
sick_scan_xd::SickScanCommon::CMD_SET_ENOCDER_RES_1
@ CMD_SET_ENOCDER_RES_1
Definition: sick_scan_common.h:152
sick_scan_xd::SickScanCommon::CMD_SET_GATEWAY
@ CMD_SET_GATEWAY
Definition: sick_scan_common.h:178
sick_scan_xd::SickScanCommon::CMD_GET_PARTIAL_SCAN_CFG
@ CMD_GET_PARTIAL_SCAN_CFG
Definition: sick_scan_common.h:134
sick_scan_xd::SickScanCommon::CMD_SET_INCREMENTSOURCE_ENC
@ CMD_SET_INCREMENTSOURCE_ENC
Definition: sick_scan_common.h:150
sick_scan_xd::SickScanCommon::update_config
void update_config(sick_scan_xd::SickScanConfig &new_config, uint32_t level=0)
updating configuration
Definition: sick_scan_common.cpp:5398
sick_scan_xd::SickScanCommon::loopOnce
int loopOnce(rosNodePtr nh)
parsing datagram and publishing ros messages
Definition: sick_scan_common.cpp:4360
sick_scan_xd::SickScanCommon::CMD_DEVICE_IDENT_LEGACY
@ CMD_DEVICE_IDENT_LEGACY
Definition: sick_scan_common.h:107
sick_scan_xd::SickScanCommon::cloud_polar_
ros_sensor_msgs::PointCloud2 cloud_polar_
Definition: sick_scan_common.h:387
sick_scan_xd::SickScanCommon::CMD_SET_3_4_TO_ENCODER
@ CMD_SET_3_4_TO_ENCODER
Definition: sick_scan_common.h:151
sick_scan_xd::SickScanCommon::getNanosecTimestampLastTcpMessageReceived
uint64_t getNanosecTimestampLastTcpMessageReceived(void)
Definition: sick_scan_common.h:365
sick_nav_scandata_parser.h
sick_scan_xd::SickScanCommon::CMD_SET_ACCESS_MODE_3_SAFETY_SCANNER
@ CMD_SET_ACCESS_MODE_3_SAFETY_SCANNER
Definition: sick_scan_common.h:128
sick_scan_xd::SickGenericParser
Definition: sick_generic_parser.h:239
sick_scan_xd::SickScanCommon::convertSendSOPASCommand
virtual int convertSendSOPASCommand(const std::string &sopas_ascii_request, std::vector< unsigned char > *reply, bool wait_for_reply=true)
Converts a given SOPAS command from ascii to binary (in case of binary communication),...
Definition: sick_scan_common.cpp:830
sick_scan_xd::SickScanCommon::checkForBinaryAnswer
int checkForBinaryAnswer(const std::vector< unsigned char > *reply)
Check block for correct framing and starting sequence of a binary message.
Definition: sick_scan_common.cpp:793
sick_scan_xd::SickScanCommon::nav_landmark_data_pub_
rosPublisher< sick_scan_msg::NAVLandmarkData > nav_landmark_data_pub_
Definition: sick_scan_common.h:481
sick_scan_xd::SickScanCommon::CMD_GET_SAFTY_FIELD_CFG
@ CMD_GET_SAFTY_FIELD_CFG
Definition: sick_scan_common.h:186
sick_scan_xd::SickScanCommon::angleCompensator
AngleCompensator * angleCompensator
Definition: sick_scan_common.h:550
sick_scan_xd::SickScanCommon::writeActiveFieldSet
int writeActiveFieldSet(int active_field_set, std::vector< unsigned char > &sopasReply, bool useBinaryCmd=true)
Definition: sick_scan_common.cpp:6438
sick_scan_xd::SickScanCommon::sopasReplyStrVec
std::vector< std::string > sopasReplyStrVec
Definition: sick_scan_common.h:525
sick_scan_xd::SickScanCommon::CMD_SET_ENCODER_MODE
@ CMD_SET_ENCODER_MODE
Definition: sick_scan_common.h:144
sick_scan_xd::SickScanCommon::sopasCmdMaskVec
std::vector< std::string > sopasCmdMaskVec
Definition: sick_scan_common.h:522
sick_scan_xd::SickScanCommon::sendSopasAorBgetAnswer
int sendSopasAorBgetAnswer(const std::string &request, std::vector< unsigned char > *reply, bool useBinaryCmd)
Definition: sick_scan_common.cpp:1227
sick_scan_xd::SickScanCommon::sopasSendMutex
std::mutex sopasSendMutex
Definition: sick_scan_common.h:545
sick_generic_callback.h
sick_scan_xd::SickScanCommon::CMD_SET_TRACKING_MODE_0
@ CMD_SET_TRACKING_MODE_0
Definition: sick_scan_common.h:165
angle_compensator.h
sick_scan_xd::SickScanCommon::CMD_SET_NAV_STORE_LAYOUT
@ CMD_SET_NAV_STORE_LAYOUT
Definition: sick_scan_common.h:208
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::parse
void parse(const std::string &parameter)
Definition: sick_scan_common.cpp:6223
sick_scan_xd::SickScanCommon::CMD_SET_NTP_INTERFACE_ETH
@ CMD_SET_NTP_INTERFACE_ETH
Definition: sick_scan_common.h:141
sick_scan_xd::SickScanCommon::CMD_SET_NAV_POSE
@ CMD_SET_NAV_POSE
Definition: sick_scan_common.h:209
sick_scan_xd::SickScanCommon::sendSopasAndCheckAnswer
int sendSopasAndCheckAnswer(std::string request, std::vector< unsigned char > *reply, int cmdId)
send command and check answer
Definition: sick_scan_common.cpp:1068
sick_scan_xd::SickScanCommon::CMD_SET_TRACKING_MODE_1
@ CMD_SET_TRACKING_MODE_1
Definition: sick_scan_common.h:166
sick_scan_xd::SickScanCommon::cloud_pub_
rosPublisher< ros_sensor_msgs::PointCloud2 > cloud_pub_
Definition: sick_scan_common.h:383
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg
Definition: sick_scan_common.h:562
sick_scan_xd::SickScanCommon::testsetParticleFilter
bool testsetParticleFilter()
sick_scan_xd
Definition: abstract_parser.cpp:65
sick_range_filter.h
sick_scan_xd::SickScanCommon::m_read_timeout_millisec_startup
int m_read_timeout_millisec_startup
Definition: sick_scan_common.h:558
sick_scan_xd::SickScanCommon::CMD_SET_NTP_TIMEZONE
@ CMD_SET_NTP_TIMEZONE
Definition: sick_scan_common.h:176
sick_ros_wrapper.h
nav_msgs::Odometry
::nav_msgs::Odometry_< std::allocator< void > > Odometry
Definition: Odometry.h:67
sick_scan_xd::SickScanCommon::CMD_SET_TO_COLA_A_PROTOCOL
@ CMD_SET_TO_COLA_A_PROTOCOL
Definition: sick_scan_common.h:184
sick_scan_xd::SickScanCommon::CMD_SET_ENCODER_MODE_NO
@ CMD_SET_ENCODER_MODE_NO
Definition: sick_scan_common.h:145
sick_scan_xd::SickScanCommon::CMD_SET_LFEREC_ACTIVE
@ CMD_SET_LFEREC_ACTIVE
Definition: sick_scan_common.h:188
sick_scan_xd::SickScanCommon::CMD_STOP_IMU_DATA
@ CMD_STOP_IMU_DATA
Definition: sick_scan_common.h:156
sick_scan_xd::SickScanCommon::rebootScanner
virtual bool rebootScanner()
Send a SOPAS command to the scanner that should cause a soft reset.
Definition: sick_scan_common.cpp:853
sick_scan_xd::SickScanCommon::CMD_RUN
@ CMD_RUN
Definition: sick_scan_common.h:132
sick_scan_xd::SickScanCommon::setSensorIsRadar
void setSensorIsRadar(bool _isRadar)
Definition: sick_scan_common.cpp:6213
sick_scan_xd::SickScanCommon::CMD_START_IMU_DATA
@ CMD_START_IMU_DATA
Definition: sick_scan_common.h:155
sick_scan_xd::SickScanCommon::handleNAV350BinaryPositionData
bool handleNAV350BinaryPositionData(const uint8_t *receiveBuffer, int receiveBufferLength, short &elevAngleX200, double &elevationAngleInRad, rosTime &recvTimeStamp, bool config_sw_pll_only_publish, double config_time_offset, SickGenericParser *parser_, int &numEchos, ros_sensor_msgs::LaserScan &msg, NAV350mNPOSData &navdata)
Definition: sick_scan_common.cpp:1376
sensor_msgs::LaserScan
::sensor_msgs::LaserScan_< std::allocator< void > > LaserScan
Definition: LaserScan.h:94
sick_scan_xd::SickScanCommon::CMD_SET_TO_COLA_B_PROTOCOL
@ CMD_SET_TO_COLA_B_PROTOCOL
Definition: sick_scan_common.h:185
sick_scan_xd::SickScanCommon::CMD_SEN_SCANDATACONFIGNAV
@ CMD_SEN_SCANDATACONFIGNAV
Definition: sick_scan_common.h:182
sick_scan_xd::SickScanCommon::CMD_SET_NAV_DO_MAPPING
@ CMD_SET_NAV_DO_MAPPING
Definition: sick_scan_common.h:205
sick_scan_xd::SickScanCommon::CMD_SERIAL_NUMBER
@ CMD_SERIAL_NUMBER
Definition: sick_scan_common.h:109
sick_scan_xd::SickScanCommon::CMD_LOCATION_NAME
@ CMD_LOCATION_NAME
Definition: sick_scan_common.h:116
sick_scan_xd::SickScanConfig
Definition: sick_ros_wrapper.h:512
sick_scan_xd::SickScanCommon::getCurrentParamPtr
ScannerBasicParam * getCurrentParamPtr()
Definition: sick_scan_common.h:348
sick_generic_parser.h
sick_scan_xd::SickScanCommon::setNTPServerAndStart
bool setNTPServerAndStart(const std::string &ipNewIPAddr, bool useBinaryCmd)
Definition: sick_scan_common.cpp:6154
sick_scan_xd::SickScanCommon::CMD_SET_OUTPUT_RANGES
@ CMD_SET_OUTPUT_RANGES
Definition: sick_scan_common.h:129
sick_scan_xd::SickScanCommon::init
virtual int init(rosNodePtr nh)
init routine of scanner
Definition: sick_scan_common.cpp:1513
rosPublisher< ros_sensor_msgs::PointCloud2 >
sick_scan_xd::SickScanCommon::lidoutputstate_pub_
rosPublisher< sick_scan_msg::LIDoutputstateMsg > lidoutputstate_pub_
Definition: sick_scan_common.h:474
sick_scan_xd::SickScanCommon::diagnosticPub_
uint8_t * diagnosticPub_
Definition: sick_scan_common.h:511
sick_scan_xd::SickScanCommon::CMD_SET_NAV_OPERATIONAL_MODE_2
@ CMD_SET_NAV_OPERATIONAL_MODE_2
Definition: sick_scan_common.h:196
sick_scan_xd::SickScanCommon::sopasCmdChain
std::vector< int > sopasCmdChain
Definition: sick_scan_common.h:527
imu_delay_tester.parser
parser
Definition: imu_delay_tester.py:116
sick_scan_xd::SickScanCommon::getConfigPtr
SickScanConfig * getConfigPtr()
Definition: sick_scan_common.h:343
diagnostic_updater::DiagnosedPublisher
A TopicDiagnostic combined with a ros::Publisher.
Definition: eloquent/include/diagnostic_updater/publisher.hpp:176
sick_scan_xd::SickScanCommon::nav_tf_child_frame_id_
std::string nav_tf_child_frame_id_
Definition: sick_scan_common.h:486
sick_scan_xd::SickScanCommon::CMD_SET_NAV_MAP_CFG
@ CMD_SET_NAV_MAP_CFG
Definition: sick_scan_common.h:203
sick_scan_xd::SickScanCommon::get_datagram
virtual int get_datagram(rosNodePtr nh, rosTime &recvTimeStamp, unsigned char *receiveBuffer, int bufferSize, int *actual_length, bool isBinaryProtocol, int *numberOfRemainingFifoEntries, const std::vector< std::string > &datagram_keywords)=0
Read a datagram from the device.
sick_scan_xd::SickScanCommon::CMD_SET_NTP_SERVER_IP_ADDR
@ CMD_SET_NTP_SERVER_IP_ADDR
Definition: sick_scan_common.h:179
sick_scan_xd::SickScanCommon::ActivateStandBy
int ActivateStandBy(void)
sick_scan_xd::SickScanCommon::cmdSetAccessMode3
std::string cmdSetAccessMode3(void)
Returns "sMN SetAccessMode 3 F4724744" resp. "\x02sMN SetAccessMode 3 6FD62C05\x03\0" for safety scan...
Definition: sick_scan_common.cpp:715
sick_scan_xd::SickScanCommon::setProtocolType
void setProtocolType(SopasProtocol cola_dialect_id)
set protocol type as enum
Definition: sick_scan_common.cpp:1492
sick_scan_xd::SickScanCommon::init_scanner
virtual int init_scanner(rosNodePtr nh)
initialize scanner
Definition: sick_scan_common.cpp:2046
sick_scan_xd::SickScanCommon::nav_reflector_pub_
rosPublisher< ros_visualization_msgs::MarkerArray > nav_reflector_pub_
Definition: sick_scan_common.h:482
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::print
void print()
Definition: sick_scan_common.cpp:6259
sick_scan_xd::SickScanCommon::CMD_SET_LFPMEANFILTER
@ CMD_SET_LFPMEANFILTER
Definition: sick_scan_common.h:212
sick_scan_xd::SickScanCommon::CMD_SET_NAV_REFL_SIZE
@ CMD_SET_NAV_REFL_SIZE
Definition: sick_scan_common.h:204
sick_scan_xd::SickScanCommon::lidinputstate_pub_
rosPublisher< sick_scan_msg::LIDinputstateMsg > lidinputstate_pub_
Definition: sick_scan_common.h:473
sick_scan_xd::SickScanCommon::dumpDatagramForDebugging
static bool dumpDatagramForDebugging(unsigned char *buffer, int bufLen, bool isBinary=true)
Definition: sick_scan_common.cpp:4233
sick_scan_xd::SickGenericParser::getCurrentParamPtr
ScannerBasicParam * getCurrentParamPtr()
Gets Pointer to parameter object.
Definition: sick_generic_parser.cpp:1040
sick_scan_xd::SickScanCommon::CMD_START_SCANDATA
@ CMD_START_SCANDATA
Definition: sick_scan_common.h:138
sick_scan_xd::SickScanCommon::readFieldSetSelectionMethod
int readFieldSetSelectionMethod(int &field_set_selection_method, std::vector< unsigned char > &sopasReply, bool useBinaryCmd=true)
Definition: sick_scan_common.cpp:6409
sick_scan_xd::SickScanCommon::check_angle_range
void check_angle_range(SickScanConfig &conf)
check angle setting in the config and adjust the min_ang to the max_ang if min_ang greater than max_a...
Definition: sick_scan_common.cpp:5384
sick_scan_xd::SickScanCommon::setApplicationMode
int setApplicationMode(bool _active, int _mode)
sick_scan_xd::SickScanCommon::CMD_SET_ECHO_FILTER
@ CMD_SET_ECHO_FILTER
Definition: sick_scan_common.h:174
sick_scan_xd::SickScanCommon::testSettingIpAddress
bool testSettingIpAddress()
sick_scan_xd::SickScanCommon::CMD_READ_ACTIVE_APPLICATIONS
@ CMD_READ_ACTIVE_APPLICATIONS
Definition: sick_scan_common.h:126
ros::NodeHandle
sick_scan_xd::SickScanCommon::init_device
virtual int init_device()=0
sick_scan_xd::SickScanCommon::imuScan_pub_
rosPublisher< ros_sensor_msgs::Imu > imuScan_pub_
Definition: sick_scan_common.h:384
sick_scan_xd::SickScanCommon::~SickScanCommon
virtual ~SickScanCommon()
Destructor of SickScanCommon.
Definition: sick_scan_common.cpp:919
sick_scan_xd::SickScanCommon::get2ndSopasResponse
int get2ndSopasResponse(std::vector< uint8_t > &sopas_response, const std::string &sopas_keyword)
Definition: sick_scan_common.cpp:1252
sick_scan_xd::SickScanCommon::getReadTimeOutInMs
int getReadTimeOutInMs()
get timeout in milliseconds
Definition: sick_scan_common.cpp:1473
sick_scan_xd::SickScanCommon::sopasCmdErrMsg
std::vector< std::string > sopasCmdErrMsg
Definition: sick_scan_common.h:526
sick_scan_xd::SickScanCommon::CMD_SET_GLARE_DETECTION_SENS
@ CMD_SET_GLARE_DETECTION_SENS
Definition: sick_scan_common.h:217
sick_scan_xd::SickScanCommon::testsetActivateStandBy
bool testsetActivateStandBy()
sick_scan_xd::SickScanCommon::get_expected_frequency
double get_expected_frequency() const
Definition: sick_scan_common.h:319
sick_scan_xd::SickScanCommon::CMD_SET_TRANSMIT_OBJECTS_OFF
@ CMD_SET_TRANSMIT_OBJECTS_OFF
Definition: sick_scan_common.h:163
sick_scan_xd::SickScanCommon::CMD_DEVICE_STATE
@ CMD_DEVICE_STATE
Definition: sick_scan_common.h:113
sick_scan_xd::SickScanCommon::CMD_START_RADARDATA
@ CMD_START_RADARDATA
Definition: sick_scan_common.h:139
sick_scan_xd::SickScanCommon::readParseSafetyFields
int readParseSafetyFields(bool useBinaryCmd)
Definition: sick_scan_common.cpp:6270
sick_scan_xd::SickScanCommon::getProtocolType
int getProtocolType(void)
get protocol type as enum
Definition: sick_scan_common.cpp:1483
sick_scan_xd::SickScanCommon::m_nw
SickScanCommonNw m_nw
Definition: sick_scan_common.h:341
sick_scan_xd::SickScanCommon::CMD_SET_PARTIAL_SCANDATA_CFG
@ CMD_SET_PARTIAL_SCANDATA_CFG
Definition: sick_scan_common.h:136
sick_scan_xd::SickScanCommon::CMD_LOAD_APPLICATION_DEFAULT
@ CMD_LOAD_APPLICATION_DEFAULT
Definition: sick_scan_common.h:168
sick_generic_field_mon.h
sick_scan_xd::SickScanCommon::setMeanFilter
int setMeanFilter(bool _active, int _numberOfScans)
sick_scan_xd::SickScanCommon::readActiveFieldSet
int readActiveFieldSet(int &active_field_set, std::vector< unsigned char > &sopasReply, bool useBinaryCmd=true)
Definition: sick_scan_common.cpp:6461
sick_scan_xd::SickScanCommon::CMD_SET_MEAN_FILTER
@ CMD_SET_MEAN_FILTER
Definition: sick_scan_common.h:119
AngleCompensator
Definition: angle_compensator.h:12
sick_scan_xd::SickScanCommon::sendNAV350mNPOSGetData
int sendNAV350mNPOSGetData(void)
Definition: sick_scan_common.cpp:1364
sick_scan_xd::SickScanCommon::sopasReplyToString
std::string sopasReplyToString(const std::vector< unsigned char > &reply)
Converts reply from sendSOPASCommand to string.
Definition: sick_scan_common.h:360
sick_scan_xd::SickScanCommon::messageCbNavOdomVelocity
void messageCbNavOdomVelocity(const sick_scan_msg::NAVOdomVelocity &msg)
Definition: sick_scan_common.cpp:1422
sick_scan_xd::SickScanCommon::setReadTimeOutInMs
void setReadTimeOutInMs(int timeOutInMs)
set timeout in milliseconds
Definition: sick_scan_common.cpp:1463
sick_scan_xd::SickScanCommon::publish_lferec_
bool publish_lferec_
Definition: sick_scan_common.h:472
sick_scan_xd::SickScanCommon::generateUnexpectedAnswerString
std::vector< std::string > generateUnexpectedAnswerString(const std::string &requestStr)
Definition: sick_scan_common.cpp:1050
sick_scan_xd::SickScanCommon::cloud_
ros_sensor_msgs::PointCloud2 cloud_
Definition: sick_scan_common.h:386
sick_scan_xd::SickScanCommon::m_protocolId
SopasProtocol m_protocolId
Definition: sick_scan_common.h:464
sick_scan_xd::SickScanCommon::testsetMeanFilter
bool testsetMeanFilter()
ros::Time
sick_scan_xd::SickScanCommon::CMD_SET_ENCODER_MODE_DL
@ CMD_SET_ENCODER_MODE_DL
Definition: sick_scan_common.h:148
sick_scan_xd::SickScanCommon::sensorIsRadar
bool sensorIsRadar
Definition: sick_scan_common.h:548
sick_scan_xd::SickScanCommon::Encoder_pub
rosPublisher< sick_scan_msg::Encoder > Encoder_pub
Definition: sick_scan_common.h:385
sick_scan_xd::SickScanCommon::CMD_SET_NAV_OPERATIONAL_MODE_0
@ CMD_SET_NAV_OPERATIONAL_MODE_0
Definition: sick_scan_common.h:194
sick_scan_xd::SickScanCommon::CMD_SET_NAV_OPERATIONAL_MODE_1
@ CMD_SET_NAV_OPERATIONAL_MODE_1
Definition: sick_scan_common.h:195
sick_scan_xd::SickScanCommon::CMD_SET_PARTICLE_FILTER
@ CMD_SET_PARTICLE_FILTER
Definition: sick_scan_common.h:118
sick_scan_xd::SickScanCommon::CMD_ORDER_NUMBER
@ CMD_ORDER_NUMBER
Definition: sick_scan_common.h:170
sick_scan_xd::SickScanCommon::CMD_APPLICATION_MODE_RANGING_ON
@ CMD_APPLICATION_MODE_RANGING_ON
Definition: sick_scan_common.h:125
sick_scan_xd::SickScanCommon::CMD_SET_NAV_CURR_LAYER
@ CMD_SET_NAV_CURR_LAYER
Definition: sick_scan_common.h:199
sick_scan_xd::SickScanCommon::replyToString
std::string replyToString(const std::vector< unsigned char > &reply)
Converts reply from sendSOPASCommand to string.
Definition: sick_scan_common.cpp:4190
sick_scan_xd::SickScanCommon::changeIPandreboot
bool changeIPandreboot(const std::string &IpAdress)
Send a SOPAS command to the scanner that logs in the authorized client, changes the ip address and th...
SopasProtocol
SopasProtocol
Definition: sick_scan_common_nw.h:31
sick_scan_xd::SickScanCommon::CMD_ACTIVATE_STANDBY
@ CMD_ACTIVATE_STANDBY
Definition: sick_scan_common.h:117
sick_scan_xd::SickScanCommon::setNewIpAddress
bool setNewIpAddress(const std::string &ipNewIPAddr, bool useBinaryCmd)
Definition: sick_scan_common.cpp:6095
sick_scan_xd::ExitCode
ExitCode
Definition: abstract_parser.h:44
tf2_ros::TransformBroadcaster
This class provides an easy way to publish coordinate frame transform information....
Definition: transform_broadcaster.h:49
dynamic_reconfigure::Server
Definition: server.h:65
sick_scan_base.h
sick_scan_xd::SickScanCommon::expectedFrequency_
double expectedFrequency_
Definition: sick_scan_common.h:513
sick_scan_xd::SickScanCommon::pub_
rosPublisher< ros_sensor_msgs::LaserScan > pub_
Definition: sick_scan_common.h:467
sick_scan_xd::SickScanCommon::sendSOPASCommand
virtual int sendSOPASCommand(const char *request, std::vector< unsigned char > *reply, int cmdLen, bool wait_for_reply=true)=0
Send a SOPAS command to the device and print out the response to the console.
sick_scan_xd::SickScanCommon::m_add_transform_xyz_rpy
sick_scan_xd::SickCloudTransform m_add_transform_xyz_rpy
Definition: sick_scan_common.h:560
sick_scan_xd::SickScanFieldMonSingleton
Definition: sick_generic_field_mon.h:152
sick_scan_xd::SickScanCommon::CMD_SET_ENCODER_MODE_DP
@ CMD_SET_ENCODER_MODE_DP
Definition: sick_scan_common.h:147
sick_scan_xd::SickScanCommon::datagram_pub_
rosPublisher< ros_std_msgs::String > datagram_pub_
Definition: sick_scan_common.h:468
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::scan_layer_activated
std::vector< int > scan_layer_activated
Definition: sick_scan_common.h:570
sick_scan_xd::SickScanCommon::CMD_ACTIVATE_NTP_CLIENT
@ CMD_ACTIVATE_NTP_CLIENT
Definition: sick_scan_common.h:140
sick_scan_xd::SickScanCommon::readTimeOutInMs
int readTimeOutInMs
Definition: sick_scan_common.h:543
sick_scan_xd::SickScanCommon::stop_scanner
virtual int stop_scanner(bool force_immediate_shutdown=false)
Stops sending scan data.
Definition: sick_scan_common.cpp:727
sick_scan_common_nw.h
sick_scan_xd::SickScanCommon::CMD_APPLICATION_MODE_FIELD_ON
@ CMD_APPLICATION_MODE_FIELD_ON
Definition: sick_scan_common.h:123
sick_scan_xd::SickScanCommon::sopasReplyBinVec
std::vector< std::vector< unsigned char > > sopasReplyBinVec
Definition: sick_scan_common.h:524
sick_scan_xd::SickScanCommon::convertAscii2BinaryCmd
int convertAscii2BinaryCmd(const char *requestAscii, std::vector< unsigned char > *requestBinary)
Convert ASCII-message to Binary-message.
Definition: sick_scan_common.cpp:5455
sick_scan_xd::SickScanCommon::close_device
virtual int close_device()=0
sick_scan_xd::SickScanCommon::deviceIdentStr
std::string deviceIdentStr
Definition: sick_scan_common.h:514
sick_scan_xd::SickScanCommon::CMD_SET_NAV_ADD_LANDMARK
@ CMD_SET_NAV_ADD_LANDMARK
Definition: sick_scan_common.h:206
sick_scan_xd::SickScanCommon::CMD_GET_SCANDATACONFIGNAV
@ CMD_GET_SCANDATACONFIGNAV
Definition: sick_scan_common.h:181
sick_scan_xd::SickScanCommon::setLengthAndCRCinBinarySopasRequest
void setLengthAndCRCinBinarySopasRequest(std::vector< uint8_t > *requestBinary)
Definition: sick_scan_common.cpp:6031
sick_scan_xd::SickScanMarker
Definition: sick_scan_marker.h:72
sick_scan_xd::SickScanCommon::m_read_timeout_millisec_default
int m_read_timeout_millisec_default
Definition: sick_scan_common.h:557
sick_scan_xd::SickScanCommon::publish_nav_pose_data_
bool publish_nav_pose_data_
Definition: sick_scan_common.h:480
sick_scan_xd::SickScanCommon::CMD_GET_ANGLE_COMPENSATION_PARAM
@ CMD_GET_ANGLE_COMPENSATION_PARAM
Definition: sick_scan_common.h:183
sick_scan_xd::SickScanCommon::m_nh
rosNodePtr m_nh
Definition: sick_scan_common.h:580
sick_scan_xd::SickScanCommon::sendSopasRunSetAccessMode
bool sendSopasRunSetAccessMode(bool useBinaryCmd)
Definition: sick_scan_common.cpp:1337
sick_scan_xd::SickScanCommon::checkForProtocolChangeAndMaybeReconnect
bool checkForProtocolChangeAndMaybeReconnect(bool &useBinaryCmdNow)
checks the current protocol type and gives information about necessary change
Definition: sick_scan_common.cpp:6059
sick_scan_xd::SickScanCommon::CMD_SET_TRANSMIT_RAWTARGETS_OFF
@ CMD_SET_TRANSMIT_RAWTARGETS_OFF
Definition: sick_scan_common.h:160
sick_scan_xd::SickScanCommon::readLIDinputstate
int readLIDinputstate(SickScanFieldMonSingleton *fieldMon, bool useBinaryCmd)
Definition: sick_scan_common.cpp:6358
sick_scan_xd::SickScanCommon::parser_
SickGenericParser * parser_
Definition: sick_scan_common.h:520
sick_scan_xd::SickScanCommon::CMD_SET_SCAN_CFG_LIST
@ CMD_SET_SCAN_CFG_LIST
Definition: sick_scan_common.h:191
sick_scan_xd::SickScanCommon::CMD_SCAN_LAYER_FILTER
@ CMD_SCAN_LAYER_FILTER
Definition: sick_scan_common.h:121
sick_scan_xd::SickScanCommon::CMD_POWER_ON_COUNT
@ CMD_POWER_ON_COUNT
Definition: sick_scan_common.h:115
sick_scan_xd::SickScanCommon::nav_pose_data_pub_
rosPublisher< sick_scan_msg::NAVPoseData > nav_pose_data_pub_
Definition: sick_scan_common.h:479
sick_scan_xd::ScannerBasicParam
Definition: sick_generic_parser.h:110
sick_scan_xd::SickScanCommon::cloud_topic_val
std::string cloud_topic_val
Definition: sick_scan_common.h:465
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::first_active_layer
int first_active_layer
Definition: sick_scan_common.h:571
sick_scan_xd::SickScanCommon::publish_nav_landmark_data_
bool publish_nav_landmark_data_
Definition: sick_scan_common.h:483
sick_scan_xd::SickScanCommon::convertBigEndianCharArrayToUnsignedLong
unsigned long convertBigEndianCharArrayToUnsignedLong(const unsigned char *vecArr)
Convert little endian to big endian (should be replaced by swap-routine)
Definition: sick_scan_common.cpp:776
sick_scan_xd::SickScanCommon::CMD_SET_SCAN_LAYER_FILTER
@ CMD_SET_SCAN_LAYER_FILTER
Definition: sick_scan_common.h:220
sick_scan_xd::SickScanCommon::CMD_START_MEASUREMENT
@ CMD_START_MEASUREMENT
Definition: sick_scan_common.h:172
SickScanCommonNw::getNanosecTimestampLastTcpMessageReceived
uint64_t getNanosecTimestampLastTcpMessageReceived(void)
Definition: sick_scan_common_nw.cpp:199
sick_scan_xd::NAVOdomVelocity
::sick_scan_xd::NAVOdomVelocity_< std::allocator< void > > NAVOdomVelocity
Definition: NAVOdomVelocity.h:69
sick_scan_xd::SickScanCommon::CMD_FIRMWARE_VERSION
@ CMD_FIRMWARE_VERSION
Definition: sick_scan_common.h:112
sick_scan_xd::SickScanCommon::getSensorIsRadar
bool getSensorIsRadar(void)
Definition: sick_scan_common.cpp:6218
sick_scan_xd::SickScanCommon::CMD_SET_OUTPUT_RANGES_NAV3
@ CMD_SET_OUTPUT_RANGES_NAV3
Definition: sick_scan_common.h:130
sick_scan_xd::SickScanCommon::CMD_OPERATION_HOURS
@ CMD_OPERATION_HOURS
Definition: sick_scan_common.h:114
sick_scan_xd::SickScanCommon::switchColaProtocol
bool switchColaProtocol(bool useBinaryCmd)
Definition: sick_scan_common.cpp:1267
sick_scan_xd::SickScanCommon::ScanLayerFilterCfg::scan_layer_filter
std::string scan_layer_filter
Definition: sick_scan_common.h:569
sick_scan_xd::SickScanCommon::CMD_APPLICATION_MODE
@ CMD_APPLICATION_MODE
Definition: sick_scan_common.h:122
sick_scan_xd::SickScanCommon::publish_lidoutputstate_
bool publish_lidoutputstate_
Definition: sick_scan_common.h:476
ros::Subscriber
sick_scan_xd::SickScanCommon::nav_tf_parent_frame_id_
std::string nav_tf_parent_frame_id_
Definition: sick_scan_common.h:485
sick_scan_xd::SickScanCommon::CMD_GET_PARTIAL_SCANDATA_CFG
@ CMD_GET_PARTIAL_SCANDATA_CFG
Definition: sick_scan_common.h:135
sick_scan_xd::SickScanCommon::m_scan_layer_filter_cfg
ScanLayerFilterCfg m_scan_layer_filter_cfg
Definition: sick_scan_common.h:578
sick_scan_xd::SickScanCommon::m_min_intensity
double m_min_intensity
Definition: sick_scan_common.h:552
sick_scan_xd::SickScanCommon::CMD_DEVICE_IDENT
@ CMD_DEVICE_IDENT
Definition: sick_scan_common.h:108
sick_scan_xd::SickScanCommon::CMD_GET_OUTPUT_RANGES
@ CMD_GET_OUTPUT_RANGES
Definition: sick_scan_common.h:131


sick_scan_xd
Author(s): Michael Lehning , Jochen Sprickerhof , Martin Günther
autogenerated on Fri Oct 25 2024 02:47:10