VariableCommand.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 VariableCommand::VariableCommand(Cola2Session& session, const uint16_t& variable_index)
44  : Command(session, 0x52, 0x49) // see cola2 manual 0x52 = 'R' and 0x49 = 'I'
45  , m_variable_index(variable_index)
46 {
47 }
48 
49 std::vector<uint8_t> VariableCommand::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() == 'R' && getCommandMode() == 'A') ||
67  (getCommandType() == 0x52 && getCommandMode() == 0x41))
68  {
69  ROS_INFO("Command Variable Acknowledged.");
70  result = true;
71  }
72  else
73  {
74  ROS_WARN("Command Variable Not Accepted.");
75  result = false;
76  }
77  return result;
78 }
79 
81 {
82  return m_variable_index;
83 }
84 
85 void VariableCommand::setVariableIndex(const uint16_t& variable_index)
86 {
87  m_variable_index = variable_index;
88 }
89 
90 } // namespace cola2
91 } // namespace sick
uint16_t getVariableIndex() const
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(...)
std::vector< uint8_t > expandTelegram(const std::vector< uint8_t > &telegram, size_t additional_bytes) const
Definition: Command.cpp:121
#define ROS_INFO(...)
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.
VariableCommand(Cola2Session &session, const uint16_t &variable_index)
Constructor of the command.
uint8_t getCommandMode() const
Returns the command mode.
Definition: Command.cpp:91
bool canBeExecutedWithoutSessionID() const
Returns if the command can be executed without a session ID. Will return false for most commands exce...
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.
void setVariableIndex(const uint16_t &variable_index)
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