You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.4 KiB
C++
38 lines
1.4 KiB
C++
#pragma once
|
|
#include "workcmd.h"
|
|
#include "PlatformXY.h"
|
|
#include "EnumDirection.h"
|
|
|
|
//移动XY 平台
|
|
class CWorkCmdMovePlatformXY :public CWorkCmd
|
|
{
|
|
public:
|
|
CWorkCmdMovePlatformXY();
|
|
virtual ~CWorkCmdMovePlatformXY(void);
|
|
virtual bool Excute();
|
|
virtual void WirteLog();
|
|
void SetMoveOrder(int n){m_MoveOrder = n;};
|
|
void MoveToTargetPt(Dbxy MovePt,Dbxy TargetPt);
|
|
void MoveByDis(double MoveDis,DIRECTION MoveDir);
|
|
void MoveByPulseCnt(int PulseCnt,DIRECTION MoveDir);
|
|
void InWorkState(bool b = true){m_Work = b;};//当前处于工作状态
|
|
void NotCheckIniState(){m_bCheckIniState = false;};
|
|
private:
|
|
bool m_Work;//是否在工作(false 表示空移),主要是电机速度不一样
|
|
//点对点的移动方式
|
|
Dbxy m_MovePt;//平台坐标的理论点(PLATFORM_COORD)
|
|
Dbxy m_TargetPt;//理论点移动的目标点(PLATFORM_COORD)
|
|
int m_MoveOrder;//移动顺序 0:按长度决定(默认) 1:X 轴先移动 2:Y 轴先移动 (主要为了避免有的设备撞到平台)
|
|
//距离和方向的移动方式
|
|
bool m_bMoveByDir;//是否通过方向距离来移动平台
|
|
double m_MoveDis;//移动距离
|
|
DIRECTION m_MoveDir;//移动方向
|
|
|
|
//按脉冲移动
|
|
bool m_bMoveByPulse;//是否通过方向脉冲个数来移动平台
|
|
int m_PulseCnt;
|
|
|
|
bool m_bCheckIniState;//是否检查初始化状态
|
|
};
|
|
|