motoman_write_single_io.cpp
Go to the documentation of this file.
1 /*
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2016, Delft Robotics Institute
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * * Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  * * Neither the name of the Delft Robotics Institute, nor the names
16  * of its contributors may be used to endorse or promote products derived
17  * from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  *
31  * \author G.A. vd. Hoorn (TU Delft Robotics Institute)
32  */
33 
34 #ifdef ROS
38 #endif
39 
40 #ifdef MOTOPLUS
41 #include "motoman_write_single_io.h" // NOLINT(build/include)
42 #include "shared_types.h" // NOLINT(build/include)
43 #include "log_wrapper.h" // NOLINT(build/include)
44 #endif
45 
47 
48 namespace motoman
49 {
50 namespace simple_message
51 {
52 namespace io_ctrl
53 {
55 {
56  this->init();
57 }
59 {
60 }
61 
63 {
64  // TODO( ): is '0' a good initial value?
65  this->init(0, 0);
66 }
67 
69 {
70  this->setAddress(address);
71  this->setValue(value);
72 }
73 
75 {
76  this->setAddress(src.getAddress());
77  this->setValue(src.getValue());
78 }
79 
81 {
82  bool rslt = this->address_ == rhs.address_ &&
83  this->value_ == rhs.value_;
84 
85  return rslt;
86 }
87 
89 {
90  LOG_COMM("Executing WriteSingleIO command load");
91 
92  if (!buffer->load(this->address_))
93  {
94  LOG_ERROR("Failed to load WriteSingleIO address");
95  return false;
96  }
97 
98  if (!buffer->load(this->value_))
99  {
100  LOG_ERROR("Failed to load WriteSingleIO value");
101  return false;
102  }
103 
104  LOG_COMM("WriteSingleIO data successfully loaded");
105  return true;
106 }
107 
109 {
110  LOG_COMM("Executing WriteSingleIO command unload");
111 
112  if (!buffer->unload(this->value_))
113  {
114  LOG_ERROR("Failed to unload WriteSingleIO value");
115  return false;
116  }
117 
118  if (!buffer->unload(this->address_))
119  {
120  LOG_ERROR("Failed to unload WriteSingleIO address");
121  return false;
122  }
123 
124  LOG_COMM("WriteSingleIO data successfully unloaded");
125  return true;
126 }
127 
128 } // namespace io_ctrl
129 } // namespace simple_message
130 } // namespace motoman
industrial::shared_types::shared_int getAddress()
Returns the address of the IO element.
industrial::shared_types::shared_int address_
Address of IO element.
void init()
Initializes a empty write single io command.
void setAddress(industrial::shared_types::shared_int address)
Sets address.
UINT32 value
Class encapsulated write single io data. Motoman specific interface to write a single IO element on t...
industrial::shared_types::shared_int getValue()
Returns the value of the IO element.
#define LOG_COMM(format,...)
bool load(industrial::shared_types::shared_bool value)
bool operator==(WriteSingleIO &rhs)
== operator implementation
#define LOG_ERROR(format,...)
bool load(industrial::byte_array::ByteArray *buffer)
void copyFrom(WriteSingleIO &src)
Copies the passed in value.
void setValue(industrial::shared_types::shared_int value)
Sets value.
industrial::shared_types::shared_int value_
Value of IO element.
bool unload(industrial::shared_types::shared_bool &value)
bool unload(industrial::byte_array::ByteArray *buffer)


motoman_driver
Author(s): Jeremy Zoss (Southwest Research Institute), Ted Miller (MotoROS) (Yaskawa Motoman), Eric Marcil (MotoROS) (Yaskawa Motoman)
autogenerated on Sat May 8 2021 02:27:44