SelfTestModel.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "IMotionModel.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. class SelfTestMotionStageArgs;
  6. class ITubeAngleController;
  7. class ITubeHeightController;
  8. class ISensorADController;
  9. class ISensorEncoderController;
  10. class SelfTestModel : public IMotionModel
  11. {
  12. public:
  13. SelfTestModel();
  14. ~SelfTestModel();
  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. virtual void SwitchScanningComponents(int nSwitch) override;
  27. virtual void SwitchWorkstation(string ws) override;
  28. private:
  29. void OnMotionStage(const std::string &stagename);
  30. void OnStageAutoSelfTest();
  31. void OnStageTubeHeightMoveToTarget();
  32. void OnStageTubeHeightMoveBack();
  33. void OnStageTubeAngleRotateToTarget();
  34. void OnStageTubeAngleRotateBack();
  35. void MoveMech(int dof, float current, float target,int period,float dutyCycle);
  36. void RotateTubeAngle(float current, float target, int period, float dutyCycle);
  37. void MoveTubeHeight(float current, float target, int period, float dutyCycle);
  38. int JudgeDirectionInTubeHeightAxis(float current, float target);
  39. int JudgeDirectionInTubeAngleAxis(float current, float target);
  40. private:
  41. std::string m_StageName;
  42. SelfTestMotionStageArgs *m_stageArgs;
  43. IPositionManager *m_coordinates;
  44. ITubeAngleController *m_tubeAngle;
  45. ITubeHeightController *m_tubeHeight;
  46. };
  47. }