MethodCommand.cpp
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 
36 
39 
40 namespace sick {
41 namespace cola2 {
42 
43 MethodCommand::MethodCommand(Cola2Session& session, const uint16_t& method_index)
44  : Command(session, 0x4D, 0x49) // see cola2 manual 0x4D = 'M' and 0x49 = 'I'
45  , m_method_index(method_index)
46 {
47 }
48 
49 std::vector<uint8_t> MethodCommand::addTelegramData(const std::vector<uint8_t>& telegram) const
50 {
51  auto output = expandTelegram(telegram, 2);
52  // Add new values after telegram
53  auto new_data_offset_it = output.begin() + telegram.size();
55  return output;
56 }
57 
59 {
60  return false;
61 }
62 
64 {
65  bool result = false;
66  if ((getCommandType() == 'A' && getCommandMode() == 'I') ||
67  (getCommandType() == 0x41 && getCommandMode() == 0x49))
68  {
69  ROS_INFO("Command Method Acknowledged.");
70  result = true;
71  }
72  else
73  {
74  ROS_WARN("Command Method Not Accepted.");
75  }
76  return result;
77 }
78 
80 {
81  return m_method_index;
82 }
83 
84 void MethodCommand::setMethodIndex(const uint16_t& method_index)
85 {
86  m_method_index = method_index;
87 }
88 
89 } // namespace cola2
90 } // namespace sick
uint8_t getCommandType() const
Returns the command type.
Definition: Command.cpp:81
Base class for commands. Defines the base interface and does the common tasks.
Definition: Command.h:61
#define ROS_WARN(...)
uint16_t getMethodIndex() const
void setMethodIndex(const uint16_t &method_index)
std::vector< uint8_t > expandTelegram(const std::vector< uint8_t > &telegram, size_t additional_bytes) const
Definition: Command.cpp:121
#define ROS_INFO(...)
MethodCommand(Cola2Session &session, const uint16_t &method_index)
Constructor of the method command.
uint8_t getCommandMode() const
Returns the command mode.
Definition: Command.cpp:91
bool processReply()
Processes the return from the sensor.
std::vector< uint8_t > addTelegramData(const std::vector< uint8_t > &telegram) const
Adds the data to the telegram.
void writeUint16LittleEndian(std::vector< uint8_t >::iterator it, const uint16_t v)
Writes an unsigned 16-bit integer to a buffer at offset in little endian encoding.
bool canBeExecutedWithoutSessionID() const
Returns if the command can be executed without a session ID. Will return false for most commands exce...
Establishes a cola2 session with a sensor and enables execution of commands in this session...
Definition: Cola2Session.h:72


sick_safetyscanners
Author(s): Lennart Puck
autogenerated on Fri Apr 2 2021 02:45:41