#ifndef ICYLINDER_H #define ICYLINDER_H #include "IIO.h" /************************************************************************/ //气缸 //后续方法还需要定义 class ICylinder { public: ICylinder(){}; virtual ~ICylinder(){}; virtual void Init(CDigitInput *pDI1, CDigitOutput *pDO1, CDigitInput *pDI2 = nullptr, CDigitOutput *pDO2 = nullptr) = 0; // { // m_cylinderOutput = pDO; // m_cylinderInput = pDI; // EnableArrivalCheck(false); // SetCheckTime(0.0); // } /** * @brief CylinderMove气缸运动 * @param bDirection运动方向:true为正,false为负; bArrivalCheck为到位检查判断 * @return 运动是否成功,0为成功,其余返回值为错误码;超时也会返回一个错误码 */ virtual int CylinderMove(bool bDirection, int nCheckTime = 0) = 0; virtual bool IsArrive(bool bDirection) = 0; // /** // * @brief EnableArrivalCheck运动到位检查 // * @param bEnable使能判断到位,true则在每次气缸运动后在给定时间内阻塞判断是否到位;false则不阻塞判断 // * @return // */ // virtual void EnableArrivalCheck(bool bEnable = false) // { // m_bArrivalCheck = bEnable; // } // /** // * @brief SetCheckTime // * @param time 设置的到位判断时间 // * @return // */ // virtual void SetCheckTime(double time) // { // m_fCheckTime = time; // } protected: //1DO 2DI //DO输出 CDigitOutput *m_cylinderOutput; //2个DI输入,判断输入位置 CDigitInput *m_cylinderInput; // DIOData m_cylinderNegLimit; // //判断到位检查 // bool m_bArrivalCheck; // //设置到位检查时间 // double m_fCheckTime; }; #endif // ICYLINDER_H