?? scanmirror.cpp
字號:
// ScanMirror.cpp: implementation of the CScanMirror class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DemoGT400.h"
#include "ScanMirror.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CScanMirror::CScanMirror()
{
bIsNeedStartList = FALSE;
bIsRuning = FALSE;
}
CScanMirror::~CScanMirror()
{
}
void CScanMirror::InitialScanMirror(unsigned short jumpdelay,
unsigned short markdelay,
double jumpValue)
{
GT_ScanSetScannerDelay(jumpdelay,markdelay,0);
GT_ScanStrtList();
bIsRuning = TRUE;
bIsNeedStartList =TRUE;
GT_ScanSetLaserTimingList(100,50,3);
GT_ScanSetJumpVel(jumpValue);
GT_ScanSetMarkVel(jumpValue);
}
void CScanMirror::EndScanMirror()
{
if(bIsRuning)
{
short rtn;
if(bIsNeedStartList)
{
//啟動緩沖區運動
rtn = GT_ScanStrtMtn();
//等待緩沖區運動完成
}
//關閉緩沖區
rtn = GT_ScanEndList();
WaitFinished();
bIsNeedStartList = FALSE;
}
}
void CScanMirror::WaitFinished()
{
if(global_scan_motor==0)
{
short rtn;
do
{
rtn = GT_ScanGetCrdSts(&crdsts);
} while(!(crdsts&0x1));
}
bIsRuning = FALSE;
}
void CScanMirror::StartList()
{
short rtn;
if(bIsNeedStartList)
{
rtn = GT_ScanStrtMtn(); //啟動緩沖區運動
bIsNeedStartList = FALSE;
}
}
BOOL CScanMirror::GotoMirror(double x,double y,BOOL bLaserOn)
{
m_dig_x = (short)((x/10.0)*32767);
/*
if(globalScrimPara.bMirrorX)
m_dig_x = 0-m_dig_x; */
m_dig_y = (short)((y/10.0)*32767);
/*
if(globalScrimPara.bMirrorY)
m_dig_y = 0-m_dig_y; */
/////////////////////////////////////////
short rtn;
do
{
rtn = GT_ScanGetListSpace(&space);
}while(rtn!=0);
if(space<=5)
{
return FALSE;
}
do
{
rtn = GT_ScanJump(m_dig_x,m_dig_y);
}while(rtn!=0);
if(bLaserOn)
{
do
{
rtn = GT_ScanLaserOnList();
}while(rtn!=0);
do
{
rtn = GT_ScanTimeJump(m_dig_x,m_dig_y,1);
}while(rtn!=0);
do
{
rtn = GT_ScanLaserOffList();
}while(rtn!=0);
do
{
rtn = GT_ScanTimeJump(m_dig_x,m_dig_y,5);
}while(rtn!=0);
}
return TRUE;
}
void CScanMirror::MoveMirror(double x,double y,BOOL bLaserOn)
{
if(!bIsNeedStartList && !bIsRuning)
{
unsigned short jumpdelay = 30;//變換成微秒
unsigned short markdelay = 30;//變換成微秒
double jumpspeed = 100;
InitialScanMirror(jumpdelay,markdelay,jumpspeed);
}
BOOL bIsSendCmd;
do
{
bIsSendCmd = GotoMirror(x,y,bLaserOn);
if(!bIsSendCmd && bIsNeedStartList)
{
StartList();
}
}while(!bIsSendCmd);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -