AnimatLab  2
Test
RbFirmataHingeServo.h
1 // RbFirmataHingeServo.h: interface for the RbFirmataHingeServo class.
2 //
4 
5 #pragma once
6 
7 namespace RoboticsAnimatSim
8 {
9  namespace Robotics
10  {
11  namespace RobotIOControls
12  {
13  namespace Firmata
14  {
15 
16 class ROBOTICS_PORT RbFirmataHingeServo : public RbFirmataPart
17 {
18 protected:
19  MotorizedJoint *m_lpJoint;
20 
21  int m_iMaxPulse;
22  int m_iMinPulse;
23  bool m_bResetToStartPos;
24 
25  int m_iMaxAngle;
26  int m_iMinAngle;
27  int m_iCenterAngle;
28 
29  float m_fltMaxAngle;
30  float m_fltMinAngle;
31 
34  float m_fltPosFPToFloatIntercept;
35 
36  float m_fltPosFloatToFPSlope;
37  float m_fltPosFloatToFPIntercept;
38 
39  int m_iLastGoalPos;
40 
41 public:
43  virtual ~RbFirmataHingeServo();
44 
45  virtual bool IsMotorControl() {return true;};
46 
47  virtual int MaxPulse();
48  virtual void MaxPulse(int iPulse);
49 
50  virtual int MinPulse();
51  virtual void MinPulse(int iPulse);
52 
53  virtual bool ResetToStartPos();
54  virtual void ResetToStartPos(bool bVal);
55 
56  virtual void SetupIO();
57  virtual void StepIO(int iPartIdx);
58 
59  virtual float ConvertPosFPToRad(int iPos);
60  virtual int ConvertPosRadToFP(float fltPos);
61 
62  virtual void SetGoalPosition_FP(int iPos);
63  virtual void SetGoalPosition(float fltPos);
64 
65 #pragma region DataAccesMethods
66 
67  virtual float *GetDataPointer(const std::string &strDataType);
68  virtual bool SetData(const std::string &strDataType, const std::string &strValue, bool bThrowError = true);
69  virtual void QueryProperties(CStdPtrArray<TypeProperty> &aryProperties);
70 
71 #pragma endregion
72 
73  virtual void Initialize();
74  virtual void StepSimulation();
75  virtual void Load(CStdXml &oXml);
76 };
77 
78  } //Firmata
79  } //RobotIOControls
80  } // Robotics
81 } //RoboticsAnimatSim
82 
float m_fltPosFPToFloatSlope
The conversion factor to convert radians to FP angle position.
Classes for implementing the cm-labs vortex physics engine for AnimatLab.
virtual bool IsMotorControl()
Returns true if this part interface is for controlling a motor.