typed_message.h
Go to the documentation of this file.
1 /*
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2011, Southwest Research Institute
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * * Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  * * Neither the name of the Southwest Research Institute, nor the names
16  * of its contributors may be used to endorse or promote products derived
17  * from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef TYPED_MESSAGE_H
33 #define TYPED_MESSAGE_H
34 
35 #ifndef FLATHEADERS
38 #else
39 #include "simple_message.h"
40 #include "byte_array.h"
41 #endif
42 
43 
44 namespace industrial
45 {
46 namespace typed_message
47 {
48 
75 {
76 
77 public:
83  virtual bool init(industrial::simple_message::SimpleMessage & msg)=0;
84 
89  virtual void init()=0;
90 
97  {
99  data.load(*this);
100  return msg.init(this->getMessageType(),
103  }
104 
112  {
114  data.load(*this);
115  return msg.init(this->getMessageType(),
117  reply, data);
118  }
125  {
127  data.load(*this);
128  return msg.init(this->getMessageType(),
131  }
137  int getMessageType() const
138  {
139  return message_type_;
140  }
141 
147  int getCommType() const
148  {
149  return comm_type_;
150  }
151 
152 protected:
153 
160  {
161  this->message_type_ = message_type;
162  }
163 
170  {
171  this->comm_type_ = comm_type;
172  }
173 
174 private:
175 
181 
186 
187 };
188 
189 }
190 }
191 
192 #endif /* TYPED_MESSAGE_H */
void setMessageType(int message_type=industrial::simple_message::StandardMsgTypes::INVALID)
sets message type
virtual bool toTopic(industrial::simple_message::SimpleMessage &msg)
creates a simple_message topic
int comm_type_
Communications type (see simple_message::CommTypes::CommType)
This class defines a simple messaging protocol for communicating with an industrial robot controller...
virtual void init()=0
Initializes a new empty message.
Interface for loading and unloading a class to/from a ByteArray.
bool load(industrial::shared_types::shared_bool value)
loads a boolean into the byte array
Definition: byte_array.cpp:142
virtual bool toRequest(industrial::simple_message::SimpleMessage &msg)
creates a simple_message request
Definition: typed_message.h:96
void setCommType(int comm_type=industrial::simple_message::CommTypes::INVALID)
Sets the communication type of the message.
Message interface for typed messages built from SimpleMessage.
Definition: typed_message.h:74
The byte array wraps a dynamic array of bytes (i.e. char).
Definition: byte_array.h:80
int message_type_
Message type expected by callback.
int getCommType() const
Gets the communication type of the message.
bool init(int msgType, int commType, int replyCode, industrial::byte_array::ByteArray &data)
Initializes a fully populated simple message.
int getMessageType() const
gets message type (enumeration)
virtual bool toReply(industrial::simple_message::SimpleMessage &msg, industrial::simple_message::ReplyType reply)
creates a simple_message reply


simple_message
Author(s): Shaun Edwards
autogenerated on Sat Sep 21 2019 03:30:09