CArmGeneralModel.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "IMotionModel.h"
  3. namespace DiosCtrlBox
  4. {
  5. class CArmGeneralMotionStageArgs;
  6. class ICircularController;
  7. class ISwingController;
  8. class ISensorEncoderController;
  9. class IPositionManager;
  10. class CArmGeneralModel : public IMotionModel
  11. {
  12. public:
  13. CArmGeneralModel();
  14. ~CArmGeneralModel();
  15. public:
  16. virtual void ChangeStage(const std::string &stageName) override;
  17. virtual std::string GetStageName() override;
  18. virtual IMotionStageArgs *GetStageArgs() override;
  19. public:
  20. virtual void Initialize(IMachineryManager *machineryManager, IPositionManager *coordinates) override;
  21. virtual void LoadMachineryParams(ResDataObject &params) override;
  22. virtual void LoadModelParams(ResDataObject &params) override;
  23. virtual void SetTechnicalParams(ResDataObject &params) override;
  24. virtual void OnFeedbackMotionParams(ResDataObject &params) override;
  25. virtual BOOL GetMotionParams(ResDataObject &params) override;
  26. private:
  27. void OnMotionStage(const std::string &name);
  28. void OnMotionStageMoveTubeCircular();
  29. void OnMotionStageMoveTubeSwing();
  30. void OnMotionStageGetTubeCircularEncoder();
  31. void OnMotionStageGetTubeSwingEncoder();
  32. void OnMotionStageActiveTubeSwingZAxis();
  33. void OnMotionStageCancleTubeSwingZAxis();
  34. void OnMotionStageActiveTubeCircularZAxis();
  35. void OnMotionStageCancleTubeCircularZAxis();
  36. void OnMotionStageStopMechMoving();
  37. void OnMotionStageMoveTubeSwingAsPhysical();
  38. void OnMotionStageMoveTubeCircularAsPhysical();
  39. private:
  40. std::string m_StageName;
  41. CArmGeneralMotionStageArgs *m_stageArgs;
  42. IPositionManager *m_coordinates;
  43. ICircularController *m_circular;
  44. ISwingController *m_swing;
  45. ISensorEncoderController *m_circularencoder;
  46. ISensorEncoderController *m_swingencoder;
  47. DWORD m_tubeCircularMotionPeriod;
  48. DWORD m_tubeSwingMotionPeriod;
  49. };
  50. }