123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #pragma once
- #include "IMotionModel.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- class CalibrationStageArgs;
- class ITubeAngleController;
- class ITubeHeightController;
- class ISensorADController;
- class ISensorEncoderController;
- class IOutputController;
- class CalibrationModel : public IMotionModel
- {
- public:
- CalibrationModel();
- ~CalibrationModel();
- 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;
- virtual void SwitchScanningComponents(int nSwitch) override;
- virtual void SwitchWorkstation(string ws) override;
- private:
- void OnMotionStage(const std::string &name);
- void OnStageMoveTubeHeight();
- void OnStageRotateTubeAngle();
- void OnStageGetTubeAngleAD();
- void OnStageGetTubeHeightAD();
- void OnStageGetDetectorHeightAD();
- void OnStageGetTubeAngleEncoder();
- void OnStageGetTubeHeightEncoder();
- void OnStageGetDetectorHeightEncoder();
- void OnStageActiveTubeAngleZAxisClear();
- void OnStageCancelTubeAngleZAxisClear();
- void OnStageActiveTubeHeightZAxisClear();
- void OnStageCancelTubeHeightZAxisClear();
- void OnStageRotateTubeAngleToZAxis();
- void OnStageMoveTubeHeightToZAxis();
- void OnStageStopTubeAngleAtZxis();
- void OnStageStopTubeHeightAtZAxis();
- void OnStageMoveTubeHeightAsPhysical();
- void OnStageRotateTubeAngleAsPhysical();
- void OnStageSwitchSvoStatus();
- void OnStageAutoCalibrationADStart();
- void OnStageAutoCalibrationADNext();
- void OnStageAutoCalibrationADEnd();
- int GetAD(int dof);
- void MoveMech(int dof,float current, float target);
- void RotateTubeAngle(float current,float target);
- void MoveTubeHeight(float current, float target);
- int JudgeDirectionInTubeHeightAxis(float current, float target);
- int JudgeDirectionInTubeAngleAxis(float current, float target);
- void OnStageMoveTubeHorizontal();
- void OnStageGetTubeHorizontalAD();
- void OnStageGetTubeHorizontalEncoder();
- void OnStageGetDetectorHorizontalAD();
- private:
- std::string m_StageName;
- CalibrationStageArgs *m_stageArgs;
- IPositionManager *m_coordinates;
- ITubeAngleController *m_tubeAngle;
- ITubeHeightController *m_tubeHeight;
- ISensorADController *m_tubeHeightAD;
- ISensorADController *m_tubeAngleAD;
- ISensorADController *m_detectorAD;
- ISensorEncoderController *m_tubeHeightEncoder;
- ISensorEncoderController *m_tubeAngleEncoder;
- ISensorEncoderController *m_detectorHeightEncoder;
- ITubeHeightController* m_motorTubeHorizontal;
- ISensorADController* m_adTubeHorizontal;
- ISensorEncoderController* m_encoderTubeHorizontal;
- IOutputController* m_tubeLineMotionSwitch;
- ISensorADController* m_detectorHorizontalAD;
- ISensorEncoderController* m_detectorHorizontalEncoder;
- int m_tubeHeightMotionPeriod;
- int m_tubeAngleMotionPeriod;
- int m_tubeRotateLandmarkDirection;
- int m_tubeHeightLandmarkDirection;
- int m_tubeHeightAxisPositiveDirection;
- int m_tubeRotateAxisPositiveDirection;
- float m_autoCalADPhysicalEachStep;
- int m_tubeHorizontalMotionPeriod;
- int m_tubeHorizontalLandmarkDirection;
- int m_tubeHorizontalAxisPositiveDirection;
- };
- }
|