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 #ifndef FLATHEADERS
00036 #include "simple_message/simple_serialize.h"
00037 #include "simple_message/byte_array.h"
00038 #include "simple_message/shared_types.h"
00039 #else
00040 #include "simple_serialize.h"
00041 #include "byte_array.h"
00042 #include "shared_types.h"
00043 #endif
00044
00045
00046 namespace industrial
00047 {
00048
00049 namespace simple_message
00050 {
00051
00056 namespace StandardMsgTypes
00057 {
00058 enum StandardMsgType
00059 {
00060 INVALID = 0,
00061 PING = 1,
00062
00063
00064
00065 JOINT_POSITION = 10,
00066 JOINT = 10,
00067 READ_INPUT = 20,
00068 WRITE_OUTPUT = 21,
00069
00070 JOINT_TRAJ_PT = 11,
00071 JOINT_TRAJ = 12,
00072 STATUS = 13,
00073 JOINT_TRAJ_PT_FULL = 14,
00074 JOINT_FEEDBACK = 15,
00075
00076
00077
00078
00079
00080 SWRI_MSG_BEGIN = 1000,
00081 UR_MSG_BEGIN = 1100,
00082 ADEPT_MSG_BEGIN = 1200,
00083 ABB_MSG_BEGIN = 1300,
00084 FANUC_MSG_BEGIN = 1400,
00085 MOTOMAN_MSG_BEGIN = 2000
00086 };
00087 }
00088 typedef StandardMsgTypes::StandardMsgType StandardMsgType;
00089
00093 namespace CommTypes
00094 {
00095 enum CommType
00096 {
00097 INVALID = 0,
00098 TOPIC = 1,
00099 SERVICE_REQUEST = 2,
00100 SERVICE_REPLY = 3
00101 };
00102 }
00103 typedef CommTypes::CommType CommType;
00104
00109 namespace ReplyTypes
00110 {
00111 enum ReplyType
00112 {
00113 INVALID = 0,
00114 SUCCESS = 1,
00115 FAILURE = 2
00116 };
00117 }
00118 typedef ReplyTypes::ReplyType ReplyType;
00119
00120
00121
00164 class SimpleMessage
00165 {
00166
00167
00168 public:
00172 SimpleMessage();
00173
00177 ~SimpleMessage(void);
00188 bool init(int msgType, int commType, int replyCode,
00189 industrial::byte_array::ByteArray &data );
00190
00200 bool init(int msgType, int commType, int replyCode);
00201
00210 bool init(industrial::byte_array::ByteArray & msg);
00211
00218 void toByteArray(industrial::byte_array::ByteArray & msg);
00219
00225 static unsigned int getHeaderSize() { return SimpleMessage::HEADER_SIZE; };
00226
00232 static unsigned int getLengthSize() { return SimpleMessage::LENGTH_SIZE; };
00233
00239 int getMessageType() {return this->message_type_;};
00240
00246 int getCommType() {return this->comm_type_;};
00247
00253 int getReplyCode() {return this->reply_code_;};
00254
00260 int getMsgLength() {return this->getHeaderSize() + this->data_.getBufferSize();};
00261
00267 int getDataLength() {return this->data_.getBufferSize();};
00268
00274 industrial::byte_array::ByteArray & getData() {return this->data_;};
00275
00282 bool validateMessage();
00283
00284
00285
00286 private:
00287
00291 industrial::shared_types::shared_int message_type_;
00292
00296 industrial::shared_types::shared_int comm_type_;
00297
00301 industrial::shared_types::shared_int reply_code_;
00302
00306 industrial::byte_array::ByteArray data_;
00307
00311 static const unsigned int HEADER_SIZE = sizeof(industrial::shared_types::shared_int) +
00312 sizeof(industrial::shared_types::shared_int) +
00313 sizeof(industrial::shared_types::shared_int);
00314
00318 static const unsigned int LENGTH_SIZE = sizeof(industrial::shared_types::shared_int);
00319
00325 void setMessageType(int msgType) {this->message_type_ = msgType;};
00326
00332 void setCommType(int commType) {this->comm_type_ = commType;};
00333
00339 void setReplyCode(int replyCode) {this->reply_code_ = replyCode;};
00340
00346 void setData(industrial::byte_array::ByteArray & data);
00347 };
00348
00349 }
00350 }
00351
00352 #endif //SIMPLE_MSG_