Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifdef ROS
00033 #include "simple_message/messages/joint_message.h"
00034 #include "simple_message/joint_data.h"
00035 #include "simple_message/byte_array.h"
00036 #include "simple_message/log_wrapper.h"
00037 #endif
00038
00039 #ifdef MOTOPLUS
00040 #include "joint_message.h"
00041 #include "joint_data.h"
00042 #include "byte_array.h"
00043 #include "log_wrapper.h"
00044 #endif
00045
00046 using namespace industrial::shared_types;
00047 using namespace industrial::byte_array;
00048 using namespace industrial::simple_message;
00049 using namespace industrial::joint_data;
00050
00051 namespace industrial
00052 {
00053 namespace joint_message
00054 {
00055
00056 JointMessage::JointMessage(void)
00057 {
00058 this->setMessageType(StandardMsgTypes::JOINT_POSITION);
00059 this->init();
00060 }
00061
00062 JointMessage::~JointMessage(void)
00063 {
00064
00065 }
00066
00067 bool JointMessage::init(industrial::simple_message::SimpleMessage & msg)
00068 {
00069 bool rtn = false;
00070 ByteArray data = msg.getData();
00071
00072 this->setMessageType(StandardMsgTypes::JOINT_POSITION);
00073
00074 if (data.unload(this->joints_))
00075 {
00076 if (data.unload(this->sequence_))
00077 {
00078 rtn = true;
00079 }
00080 else
00081 {
00082 rtn = false;
00083 LOG_ERROR("Failed to unload sequence data");
00084 }
00085 }
00086 else
00087 {
00088 LOG_ERROR("Failed to unload joint data");
00089 }
00090 return rtn;
00091 }
00092
00093 void JointMessage::setSequence(shared_int sequence)
00094 {
00095 this->sequence_ = sequence;
00096 }
00097
00098 void JointMessage::init(shared_int seq, JointData& joints)
00099 {
00100 this->setSequence(seq);
00101 this->joints_.copyFrom(joints);
00102 }
00103
00104 void JointMessage::init()
00105 {
00106 this->setSequence(0);
00107 this->joints_.init();
00108 }
00109
00110 bool JointMessage::load(ByteArray *buffer)
00111 {
00112 bool rtn = false;
00113 LOG_COMM("Executing joint message load");
00114 if (buffer->load(this->getSequence()))
00115 {
00116
00117 if (buffer->load(this->joints_))
00118 {
00119 rtn = true;
00120 }
00121 else
00122 {
00123 rtn = false;
00124 LOG_ERROR("Failed to load sequence data");
00125 }
00126 }
00127 else
00128 {
00129 rtn = false;
00130 LOG_ERROR("Failed to load sequence data");
00131 }
00132 return rtn;
00133 }
00134
00135 bool JointMessage::unload(ByteArray *buffer)
00136 {
00137 bool rtn = false;
00138 LOG_COMM("Executing joint message unload");
00139
00140 if (buffer->unload(this->joints_))
00141 {
00142
00143 if (buffer->unload(this->sequence_))
00144 {
00145 rtn = true;
00146 }
00147 else
00148 {
00149 rtn = false;
00150 LOG_ERROR("Failed to unload sequence data");
00151 }
00152 }
00153 else
00154 {
00155 rtn = false;
00156 LOG_ERROR("Failed to unload joint data");
00157 }
00158 return rtn;
00159 }
00160
00161 }
00162 }
00163