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 SIMPLE_MSG_H
00033 #define SIMPLE_MSG_H
00034
00035 #ifdef ROS
00036
00037 #include "simple_message/simple_serialize.h"
00038 #include "simple_message/byte_array.h"
00039 #include "simple_message/shared_types.h"
00040
00041 #endif
00042
00043 #ifdef MOTOPLUS
00044
00045 #include "simple_serialize.h"
00046 #include "byte_array.h"
00047 #include "shared_types.h"
00048
00049 #endif
00050
00051
00052 namespace industrial
00053 {
00054
00055 namespace simple_message
00056 {
00057
00062 namespace StandardMsgTypes
00063 {
00064 enum StandardMsgType
00065 {
00066 INVALID = 0,
00067 PING = 1,
00068
00069
00070
00071 JOINT_POSITION = 10,
00072 JOINT = 10,
00073 READ_INPUT = 20,
00074 WRITE_OUTPUT = 21,
00075
00076 JOINT_TRAJ_PT = 11,
00077 JOINT_TRAJ = 12,
00078
00079
00080
00081
00082
00083 SWRI_MSG_BEGIN = 1000,
00084 MOTOMAN_MSG_BEGIN = 2000
00085 };
00086 }
00087 typedef StandardMsgTypes::StandardMsgType StandardMsgType;
00088
00092 namespace CommTypes
00093 {
00094 enum CommType
00095 {
00096 INVALID = 0,
00097 TOPIC = 1,
00098 SERVICE_REQUEST = 2,
00099 SERVICE_REPLY = 3
00100 };
00101 }
00102 typedef CommTypes::CommType CommType;
00103
00108 namespace ReplyTypes
00109 {
00110 enum ReplyType
00111 {
00112 INVALID = 0,
00113 SUCCESS = 1,
00114 FAILURE = 2
00115 };
00116 }
00117 typedef ReplyTypes::ReplyType ReplyType;
00118
00119
00120
00125 class SimpleMessage
00126 {
00127
00128
00165 public:
00166 SimpleMessage();
00167 ~SimpleMessage(void);
00168
00169 bool init(int msgType, int commType, int replyCode,
00170 industrial::byte_array::ByteArray &data );
00171 bool init(int msgType, int commType, int replyCode);
00172 bool init(industrial::byte_array::ByteArray & msg);
00173
00174 void toByteArray(industrial::byte_array::ByteArray & msg);
00175
00176 static unsigned int getHeaderSize() { return SimpleMessage::HEADER_SIZE; };
00177 static unsigned int getLengthSize() { return SimpleMessage::LENGTH_SIZE; };
00178
00179 int getMessageType() {return this->message_type_;};
00180 int getCommType() {return this->comm_type_;};
00181 int getReplyCode() {return this->reply_code_;};
00182 int getMsgLength() {return this->getHeaderSize() + this->data_.getBufferSize();};
00183 int getDataLength() {return this->data_.getBufferSize();};
00184 industrial::byte_array::ByteArray & getData() {return this->data_;};
00185
00192 bool validateMessage();
00193
00194
00195
00196 private:
00197
00198 industrial::shared_types::shared_int message_type_;
00199 industrial::shared_types::shared_int comm_type_;
00200 industrial::shared_types::shared_int reply_code_;
00201 industrial::byte_array::ByteArray data_;
00202
00203 static const unsigned int HEADER_SIZE = sizeof(industrial::shared_types::shared_int) +
00204 sizeof(industrial::shared_types::shared_int) +
00205 sizeof(industrial::shared_types::shared_int);
00206 static const unsigned int LENGTH_SIZE = sizeof(industrial::shared_types::shared_int);
00207
00208 void setMessageType(int msgType) {this->message_type_ = msgType;};
00209 void setCommType(int commType) {this->comm_type_ = commType;};
00210 void setReplyCode(int replyCode) {this->reply_code_ = replyCode;};
00211 void setData(industrial::byte_array::ByteArray & data);
00212 };
00213
00214 }
00215 }
00216
00217 #endif //SIMPLE_MSG_