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 #ifndef FLATHEADERS
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 #else
00038 #include "joint_message.h"
00039 #include "joint_data.h"
00040 #include "byte_array.h"
00041 #include "log_wrapper.h"
00042 #endif
00043
00044 using namespace industrial::shared_types;
00045 using namespace industrial::byte_array;
00046 using namespace industrial::simple_message;
00047 using namespace industrial::joint_data;
00048
00049 namespace industrial
00050 {
00051 namespace joint_message
00052 {
00053
00054 JointMessage::JointMessage(void)
00055 {
00056 this->setMessageType(StandardMsgTypes::JOINT_POSITION);
00057 this->init();
00058 }
00059
00060 JointMessage::~JointMessage(void)
00061 {
00062
00063 }
00064
00065 bool JointMessage::init(industrial::simple_message::SimpleMessage & msg)
00066 {
00067 bool rtn = false;
00068 ByteArray data = msg.getData();
00069
00070 this->setMessageType(StandardMsgTypes::JOINT_POSITION);
00071
00072 if (data.unload(this->joints_))
00073 {
00074 if (data.unload(this->sequence_))
00075 {
00076 rtn = true;
00077 }
00078 else
00079 {
00080 rtn = false;
00081 LOG_ERROR("Failed to unload sequence data");
00082 }
00083 }
00084 else
00085 {
00086 LOG_ERROR("Failed to unload joint data");
00087 }
00088 return rtn;
00089 }
00090
00091 void JointMessage::setSequence(shared_int sequence)
00092 {
00093 this->sequence_ = sequence;
00094 }
00095
00096 void JointMessage::init(shared_int seq, JointData& joints)
00097 {
00098 this->setSequence(seq);
00099 this->joints_.copyFrom(joints);
00100 }
00101
00102 void JointMessage::init()
00103 {
00104 this->setSequence(0);
00105 this->joints_.init();
00106 }
00107
00108 bool JointMessage::load(ByteArray *buffer)
00109 {
00110 bool rtn = false;
00111 LOG_COMM("Executing joint message load");
00112 if (buffer->load(this->getSequence()))
00113 {
00114
00115 if (buffer->load(this->joints_))
00116 {
00117 rtn = true;
00118 }
00119 else
00120 {
00121 rtn = false;
00122 LOG_ERROR("Failed to load sequence data");
00123 }
00124 }
00125 else
00126 {
00127 rtn = false;
00128 LOG_ERROR("Failed to load sequence data");
00129 }
00130 return rtn;
00131 }
00132
00133 bool JointMessage::unload(ByteArray *buffer)
00134 {
00135 bool rtn = false;
00136 LOG_COMM("Executing joint message unload");
00137
00138 if (buffer->unload(this->joints_))
00139 {
00140
00141 if (buffer->unload(this->sequence_))
00142 {
00143 rtn = true;
00144 }
00145 else
00146 {
00147 rtn = false;
00148 LOG_ERROR("Failed to unload sequence data");
00149 }
00150 }
00151 else
00152 {
00153 rtn = false;
00154 LOG_ERROR("Failed to unload joint data");
00155 }
00156 return rtn;
00157 }
00158
00159 }
00160 }
00161