Hekateros  3.4.3
RoadNarrows Robotics Robot Arm Project
hekateros::HekDesc Class Reference

Hekateros robotic manipulator full description class. More...

#include <hekDesc.h>

Public Member Functions

 HekDesc ()
 
 ~HekDesc ()
 
void setArmDesc (int eProdId, const std::string &strProdName="", const std::string &strProdBrief="", const std::string &strHwVer="1.0.0", int nDoF=0, int eProdSize=HekProdSizeUnknown)
 
void setEEDesc (int eEEProdId, const std::string &strProdName="", const std::string &strProdBrief="", const std::string &strHwVer="1.0.0", int nDoF=0, int eProdSize=HekProdSizeUnknown)
 
void resetDesc ()
 Reset Hekateros description to the "unitialized" values.
 
int markAsDescribed ()
 Mark Hekateros hardware as fully described. More...
 
bool isDescribed ()
 Test if required descriptions are described. More...
 
HekDescArmgetArmDesc ()
 Get the Hekateros base product description. More...
 
HekDescEEgetEEDesc ()
 Get the Hekateros end effector product description. More...
 
int getProdId ()
 Convenience function to get this Hekateros description's base product id. More...
 
std::string getFullProdBrief ()
 Get the Hekateros full brief descirption. More...
 
bool hasEndEffector ()
 Check if this Hekateros description has an end effector description. More...
 
int getDoF ()
 Get this Hekateros description's total degrees of freedom. More...
 
int getNumServos ()
 Get the number of expected and required servos. More...
 
bool hasServo (int nServoId)
 Test if servo id is in the list of servos. More...
 

Protected Attributes

bool m_bIsDescribed
  Hekateros is [not] fully described
 
HekDescArm m_descArm
  Hekateros robotic arm
 
HekDescEE m_descEE
  Hekateros end effector tool
 
std::string m_strFullBrief
 product with accessories full brief
 

Friends

class HekRobot
 

Detailed Description

Hekateros robotic manipulator full description class.

The description is determined from the XML etc configuration file. From those description components, the compiled specifications are assigned.

Definition at line 75 of file hekDesc.h.

Constructor & Destructor Documentation

hekateros::HekDesc::HekDesc ( )
inline

Default constructor.

Definition at line 82 of file hekDesc.h.

83  {
84  }
hekateros::HekDesc::~HekDesc ( )
inline

Destructor.

Definition at line 89 of file hekDesc.h.

References hekateros::HekProdSizeUnknown, m_descArm, m_descEE, markAsDescribed(), and resetDesc().

90  {
91  }

Member Function Documentation

HekDescArm* hekateros::HekDesc::getArmDesc ( )
inline

Get the Hekateros base product description.

Returns
Returns pointer to robotic base description.

Definition at line 177 of file hekDesc.h.

References m_descArm.

Referenced by hekateros::HekRobot::getProdId(), hekateros::HekRobot::getProdName(), hekateros::HekRobot::getVersion(), hekateros::HekRobot::getVersionNum(), and hekateros::HekXmlCfg::setHekDescFromDOM().

178  {
179  return &m_descArm;
180  }
HekDescArm m_descArm
<b><i>Hekateros</i></b> robotic arm
Definition: hekDesc.h:252
int hekateros::HekDesc::getDoF ( )
inline

Get this Hekateros description's total degrees of freedom.

Returns
Returns DoF.

Definition at line 228 of file hekDesc.h.

References hekateros::HekDescEE::getDoF(), hekateros::HekDescArm::getDoF(), m_descArm, and m_descEE.

229  {
230  return m_descArm.getDoF() + m_descEE.getDoF();
231  }
HekDescEE m_descEE
<b><i>Hekateros</i></b> end effector tool
Definition: hekDesc.h:253
HekDescArm m_descArm
<b><i>Hekateros</i></b> robotic arm
Definition: hekDesc.h:252
int getDoF()
Get this end effector description&#39;s degrees of freedom.
Definition: hekDescEE.h:180
int getDoF()
Get this base description&#39;s degrees of freedom.
Definition: hekDescArm.h:185
HekDescEE* hekateros::HekDesc::getEEDesc ( )
inline

Get the Hekateros end effector product description.

Returns
Returns pointer to end effector description.

Definition at line 187 of file hekDesc.h.

References m_descEE.

Referenced by hekateros::HekXmlCfg::setHekDescFromDOM().

188  {
189  return &m_descEE;
190  }
HekDescEE m_descEE
<b><i>Hekateros</i></b> end effector tool
Definition: hekDesc.h:253
std::string hekateros::HekDesc::getFullProdBrief ( )
inline

Get the Hekateros full brief descirption.

Returns
Returns string.

Definition at line 208 of file hekDesc.h.

References m_strFullBrief.

Referenced by hekateros::HekRobot::getFullProdBrief().

209  {
210  return m_strFullBrief;
211  }
std::string m_strFullBrief
product with accessories full brief
Definition: hekDesc.h:256
int hekateros::HekDesc::getNumServos ( )
inline

Get the number of expected and required servos.

Returns
Returns number of servos.

Definition at line 238 of file hekDesc.h.

References hekateros::HekDescEE::getNumServos(), hekateros::HekDescArm::getNumServos(), hasServo(), m_descArm, and m_descEE.

239  {
241  }
int getNumServos()
Get the number of expected and required servos.
Definition: hekDescEE.h:190
HekDescEE m_descEE
<b><i>Hekateros</i></b> end effector tool
Definition: hekDesc.h:253
HekDescArm m_descArm
<b><i>Hekateros</i></b> robotic arm
Definition: hekDesc.h:252
int getNumServos()
Get the number of expected and required servos.
Definition: hekDescArm.h:195
int hekateros::HekDesc::getProdId ( )
inline

Convenience function to get this Hekateros description's base product id.

Returns
Returns product id. See HekProdId.

Definition at line 198 of file hekDesc.h.

References hekateros::HekDescArm::getProdId(), and m_descArm.

199  {
200  return m_descArm.getProdId();
201  }
HekDescArm m_descArm
<b><i>Hekateros</i></b> robotic arm
Definition: hekDesc.h:252
int getProdId()
Get this base description&#39;s base product id.
Definition: hekDescArm.h:135
bool hekateros::HekDesc::hasEndEffector ( )
inline

Check if this Hekateros description has an end effector description.

Returns
Returns true or false.

Definition at line 218 of file hekDesc.h.

References hekateros::HekDescEE::getProdId(), hekateros::HekProdIdUnknown, and m_descEE.

219  {
220  return m_descEE.getProdId() != HekProdIdUnknown? true: false;
221  }
HekDescEE m_descEE
<b><i>Hekateros</i></b> end effector tool
Definition: hekDesc.h:253
const int HekProdIdUnknown
unknown/undefined product id
Definition: hekateros.h:219
int getProdId()
Get this end effector description&#39;s product id.
Definition: hekDescEE.h:130
bool HekDesc::hasServo ( int  nServoId)

Test if servo id is in the list of servos.

Returns
Returns true or false.

Definition at line 97 of file hekDesc.cxx.

Referenced by getNumServos().

98 {
99  if( m_descArm.hasServo(nServoId) )
100  {
101  return true;
102  }
103  else if( m_descEE.hasServo(nServoId) )
104  {
105  }
106  else
107  {
108  return false;
109  }
110 }
HekDescEE m_descEE
<b><i>Hekateros</i></b> end effector tool
Definition: hekDesc.h:253
HekDescArm m_descArm
<b><i>Hekateros</i></b> robotic arm
Definition: hekDesc.h:252
bool hasServo(int nServoId)
Test if servo id is in the list of servos.
Definition: hekDescArm.h:207
bool hasServo(int nServoId)
Test if servo id is in the list of servos.
Definition: hekDescEE.h:202
bool hekateros::HekDesc::isDescribed ( )
inline

Test if required descriptions are described.

Returns
Returns true or false.

Definition at line 165 of file hekDesc.h.

References hekateros::HekDescEE::getProdId(), hekateros::HekDescArm::getProdId(), hekateros::HekProdIdUnknown, m_bIsDescribed, m_descArm, and m_descEE.

Referenced by hekateros::HekRobot::isDescribed().

166  {
167  return m_bIsDescribed &&
169  (m_descEE.getProdId() != HekProdIdUnknown)? true: false;
170  }
HekDescEE m_descEE
<b><i>Hekateros</i></b> end effector tool
Definition: hekDesc.h:253
HekDescArm m_descArm
<b><i>Hekateros</i></b> robotic arm
Definition: hekDesc.h:252
const int HekProdIdUnknown
unknown/undefined product id
Definition: hekateros.h:219
int getProdId()
Get this end effector description&#39;s product id.
Definition: hekDescEE.h:130
bool m_bIsDescribed
<b><i>Hekateros</i></b> is [not] fully described
Definition: hekDesc.h:251
int getProdId()
Get this base description&#39;s base product id.
Definition: hekDescArm.h:135
int HekDesc::markAsDescribed ( )

Mark Hekateros hardware as fully described.

The calling application context determines this state.

Returns
On success, HEK_OK is returned.
On error, the appropriate < 0 negated Hekateros Error Code is returned.

Definition at line 74 of file hekDesc.cxx.

Referenced by ~HekDesc().

75 {
76  if( !m_descArm.isDescribed() )
77  {
78  LOGERROR("Hekateros base description is undefined.");
79  return -HEK_ECODE_BAD_OP;
80  }
81 
82  if( !m_descEE.isDescribed() )
83  {
84  LOGERROR("Hekateros end effector description is undefined.");
85  return -HEK_ECODE_BAD_OP;
86  }
87 
89  " with " +
91 
92  m_bIsDescribed = true;
93 
94  return HEK_OK;
95 }
bool isDescribed()
Test if required base description is adequately described.
Definition: hekDescEE.h:120
static const int HEK_OK
not an error, success
Definition: hekateros.h:70
std::string getProdBrief()
Get this base description&#39;s brief.
Definition: hekDescArm.h:155
std::string getProdBrief()
Get this end effector description&#39;s brief.
Definition: hekDescEE.h:150
HekDescEE m_descEE
<b><i>Hekateros</i></b> end effector tool
Definition: hekDesc.h:253
HekDescArm m_descArm
<b><i>Hekateros</i></b> robotic arm
Definition: hekDesc.h:252
static const int HEK_ECODE_BAD_OP
invalid operation error
Definition: hekateros.h:79
std::string m_strFullBrief
product with accessories full brief
Definition: hekDesc.h:256
bool isDescribed()
Test if required base description is adequately described.
Definition: hekDescArm.h:125
bool m_bIsDescribed
<b><i>Hekateros</i></b> is [not] fully described
Definition: hekDesc.h:251

The documentation for this class was generated from the following files: