12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #pragma once
- #include "IMotionModel.h"
- namespace DiosCtrlBox
- {
- class SelfTestMotionStageArgs;
- class ITubeAngleController;
- class ITubeHeightController;
- class ISensorADController;
- class ISensorEncoderController;
- class SelfTestModel : public IMotionModel
- {
- public:
- SelfTestModel();
- ~SelfTestModel();
- public:
- virtual void ChangeStage(const std::string &stageName) override;
- virtual std::string GetStageName() override;
- virtual IMotionStageArgs *GetStageArgs() override;
- public:
- virtual void Initialize(IMachineryManager *machineryManager, IPositionManager *coordinates) override;
- virtual void LoadMachineryParams(ResDataObject ¶ms) override;
- virtual void LoadModelParams(ResDataObject ¶ms) override;
- virtual void SetTechnicalParams(ResDataObject ¶ms) override;
- virtual void OnFeedbackMotionParams(ResDataObject ¶ms) override;
- virtual BOOL GetMotionParams(ResDataObject ¶ms) override;
- private:
- void OnMotionStage(const std::string &stagename);
- void OnStageAutoSelfTest();
- void OnStageTubeHeightMoveToTarget();
- void OnStageTubeHeightMoveBack();
- void OnStageTubeAngleRotateToTarget();
- void OnStageTubeAngleRotateBack();
- void MoveMech(int dof, float current, float target,int period,float dutyCycle);
- void RotateTubeAngle(float current, float target, int period, float dutyCycle);
- void MoveTubeHeight(float current, float target, int period, float dutyCycle);
- int JudgeDirectionInTubeHeightAxis(float current, float target);
- int JudgeDirectionInTubeAngleAxis(float current, float target);
- private:
- std::string m_StageName;
- SelfTestMotionStageArgs *m_stageArgs;
- IPositionManager *m_coordinates;
- ITubeAngleController *m_tubeAngle;
- ITubeHeightController *m_tubeHeight;
- };
- }
|