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 STATUS = 13,
00079
00080
00081
00082
00083
00084 SWRI_MSG_BEGIN = 1000,
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_