📄 move2.cpp
字号:
// MOVE2.cpp : implementation file
#include "stdafx.h"
#include "source10.h"
#include "MOVE2.h"
#include "wnaspi32.h"
#include "scsidefs.h"
#include "Scanner.h"
#include "Setscanner.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern char InitDir2[100];
extern CScanner *pScanner;
extern CSetScanner *pSetScanner;
/////////////////////////////////////////////////////////////////////////////
// CMOVE2 dialog
CMOVE2::CMOVE2(CWnd* pParent /*=NULL*/)
: CDialog(CMOVE2::IDD, pParent)
{
//{{AFX_DATA_INIT(CMOVE2)
m_MovTSH = _T("");
//}}AFX_DATA_INIT
m_pParent = pParent;
m_nID = CMOVE2::IDD;
}
void CMOVE2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMOVE2)
DDX_CBIndex(pDX, IDC_COMBO_MOVEF, m_MoveF);
DDX_Control(pDX, IDC_MOVE2, m_Edit);
DDX_Text(pDX, IDC_MOVE2, move);
DDV_MinMaxInt(pDX, move, 0, 3900);
DDX_Text(pDX, IDC_STATIC_TSH, m_MovTSH);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMOVE2, CDialog)
//{{AFX_MSG_MAP(CMOVE2)
ON_BN_CLICKED(IDOK2, OnOk)
ON_WM_CLOSE()
ON_CBN_SELCHANGE(IDC_COMBO_MOVEF, OnSelchangeComboMovef)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
void CMOVE2::OnOk()
{
char str[36];
DWORD ASPI32Status=0xff;
SRB_ExecSCSICmd mySRBEIO;
int Move_Max=GetPrivateProfileInt("move","Move_Max",100,InitDir2);
UpdateData(true);
if(move<0||move>Move_Max) //输入、下传坐标单位:毫米。
{
MessageBox("输入超界,重新输入");
return;
}
sprintf(str, "%d", move);
WritePrivateProfileString("move", "move", str, InitDir2);
sprintf(str, "%d", m_MoveF);
WritePrivateProfileString("move", "m_MoveF", str, InitDir2);
int ASPI_Host_Adapter_ID1=GetPrivateProfileInt("ASPI_Adapter","ASPI",0,InitDir2);
mySRBEIO.SRB_Cmd =SC_EXEC_SCSI_CMD;
mySRBEIO.SRB_Status =0;
mySRBEIO.SRB_HaId =ASPI_Host_Adapter_ID1;
mySRBEIO.SRB_Flags =SRB_DIR_SCSI;
mySRBEIO.SRB_Hdr_Rsvd =0;
mySRBEIO.SRB_Target =6;
mySRBEIO.SRB_Lun =0;
mySRBEIO.SRB_Rsvd1 =0;
mySRBEIO.SRB_BufLen =0;
mySRBEIO.SRB_BufPointer =0;
mySRBEIO.SRB_SenseLen =SENSE_LEN;
mySRBEIO.SRB_CDBLen =10;
mySRBEIO.SRB_HaStat =0;
mySRBEIO.SRB_TargStat =0;
mySRBEIO.SRB_Rsvd2 =0;
mySRBEIO.CDBByte[0] =0x31;
mySRBEIO.CDBByte[1] =0x02;
mySRBEIO.CDBByte[2] =m_MoveF;
mySRBEIO.CDBByte[3] =0;
mySRBEIO.CDBByte[4] =0;
mySRBEIO.CDBByte[5] =FIRSTBYTEOFDWORD(move);
mySRBEIO.CDBByte[6] =SECONDBYTEOFDWORD(move);
mySRBEIO.CDBByte[7] =THIRDBYTEOFDWORD(move);
mySRBEIO.CDBByte[8] =LASTBYTEOFDWORD(move);
mySRBEIO.CDBByte[9] =0;
CString TSH_Bak=m_MovTSH;
m_MovTSH="正在进行扫描头移动定位!";
UpdateData(false); //导出
mySRBEIO.SRB_PostProc =0;
ASPI32Status =SendASPI32Command( (LPSRB) &mySRBEIO);
while(mySRBEIO.SRB_Status==SS_PENDING);
if(mySRBEIO.SRB_TargStat==0x02) //约定GOOD为00H,检查出错为02H
{
pSetScanner->SCSI_CHECK();
}
m_MovTSH=TSH_Bak;
UpdateData(false); //导出
}
void CMOVE2::OnCancel()
{
CDialog::OnCancel();
}
void CMOVE2::OnClose()
{
//((CSetScanner*)m_pParent)->BoxDone(IDC_MOVE);
CDialog::OnOK();
}
///////////////////////////////////////////////////////////////////////
//产生移动窗口对话框//
///////////////////////////////////////////////////////////////////////
BOOL CMOVE2::Create(void)
{
CDialog::Create(m_nID,m_pParent);
move=GetPrivateProfileInt("move","move",100,InitDir2);
m_MoveF=GetPrivateProfileInt("move","m_MoveF",0,InitDir2);
switch (m_MoveF)
{
case 0:
m_Edit.EnableWindow(true);
m_MovTSH="请输入移动定位的目标位置";
break;
case 1:
m_Edit.EnableWindow(false);
m_MovTSH="移动定位到零点位置";
break;
case 2:
m_Edit.EnableWindow(false);
m_MovTSH="移动定位到中间位置";
break;
case 3:
m_Edit.EnableWindow(false);
m_MovTSH="移动定位到最大位置";
break;
default:
m_Edit.EnableWindow(true);
m_MovTSH="请输入移动定位的目标位置";
break;
}
UpdateData(false);
ShowWindow(SW_SHOW);
return true;
}
void CMOVE2::OnSelchangeComboMovef()
{
UpdateData(true);
switch (m_MoveF)
{
case 0:
m_Edit.EnableWindow(true);
m_MovTSH="请输入移动定位的目标位置";
break;
case 1:
m_Edit.EnableWindow(false);
m_MovTSH="移动定位到零点位置";
break;
case 2:
m_Edit.EnableWindow(false);
m_MovTSH="移动定位到中间位置";
break;
case 3:
m_Edit.EnableWindow(false);
m_MovTSH="移动定位到最大位置";
break;
default:
m_Edit.EnableWindow(true);
m_MovTSH="请输入移动定位的目标位置";
break;
}
UpdateData(false); //导出
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -