在simple message协议的实现代码中,还有一组关节类是在TypedMessage类的基础上实现的,这篇文章就针对此组关节类整理一下其类内的 代码,内容不再赘述,可以参考ROS-Industrial 之 simple_message 实现分析三
目录
joint_message
继承自TypedMessage类,所以内部会首先有两个变量message_type_和comm_type_,通过下面的代码可以看出,其内部添加了sequence_和joints_变量。这个类的数据可以列为下表所示:
成员变量 | type | size |
---|---|---|
sequence | (industrial::shared_types::shared_int) | 4 bytes |
joints | (industrial::joint_data) | 40 bytes |
#ifndef JOINT_MESSAGE_H
#define JOINT_MESSAGE_H
#ifndef FLATHEADERS
#include "simple_message/typed_message.h"
#include "simple_message/simple_message.h"
#include "simple_message/shared_types.h"
#include "simple_message/joint_data.h"
#else
#include "typed_message.h"
#include "simple_message.h"
#include "shared_types.h"
#include "joint_data.h"
#endif
namespace industrial
{
namespace joint_message
{
namespace SpecialSeqValues
{
enum SpecialSeqValue
{
END_TRAJECTORY = -1, STOP_TRAJECTORY = -2
};
}
typedef SpecialSeqValues::SpecialSeqValue SpecialSeqValue;
class JointMessage : public industrial::typed_message::TypedMessage
{
public:
JointMessage(void);
~JointMessage(void);
bool init(industrial::simple_message::SimpleMessage & msg);
void init(industrial::shared_types::shared_int seq, industrial::joint_data::JointData & joints);
void init();
void setSequence(industrial::shared_types::shared_int sequence);
industrial::shared_types::shared_int getSequence()
{
re