123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #pragma once
- #include "IMotionModel.h"
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- class ResetMotionStageArgs;
- class ICircularController;
- class ISwingController;
- class ISensorEncoderController;
- class ILandmarkController;
- class IOutputController;
- class CArmResetMotionModel : public IMotionModel
- {
- public:
- CArmResetMotionModel();
- ~CArmResetMotionModel();
- 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 &stageName);
- void OnMotionStageStopMove();
- void OnMotionStageFindSwingLandmark();
- void OnMotionStageFindCircularLandmark();
- void OnMotionStageAttachSwingZAxis();
- void OnMotionStageDetachSwingZAxis();
- void OnMotionStageAttachCircularZAxis();
- void OnMotionStageDetachCircularZAxis();
- void OnMotionStageSwingFinish();
- void OnMotionStageCircularFinish();
- void OnMotionStageSwingStopAtLandmark();
- void OnMotionStageCircularStopAtLandmark();
- BOOL IsTubeSwingAtResetLandmark();
- int JudgeTubeSwingLandmarkDirection();
- BOOL IsTubeCircularAtResetLandmark();
- int JudgeTubeCircularLandmarkDirection();
- float GetTubeSwingResetPosition();
- int JudgeSwingDirection(float current,float target);
- float GetTubeCircularResetPosition();
- int JudgeCircularDirection(float current, float target);
- void OnStartExposure();
- void OnStopExposure();
- private:
- std::string m_StageName;
- ResetMotionStageArgs *m_stageArgs;
- IPositionManager *m_coordinates;
- ICircularController *m_circular;
- ISwingController *m_swing;
- ISensorEncoderController *m_circularencoder;
- ISensorEncoderController *m_swingencoder;
- ILandmarkController *m_landmark;
- IOutputController* m_fluoroSwitch;
- DWORD m_resetSwingPeriod;
- DWORD m_resetCircularPeriod;
- int m_tubeSwingLandmarkDirection;
- int m_tubeCircularLandmarkDirection;
- float m_tubeSwingResetAngle;
- float m_tubeCircularResetAngle;
- int m_tubeCircularAxisPositiveDirection;
- int m_tubeSwingAxisPositiveDirection;
- };
- }
|