⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fixedmode.cpp

📁 机械手IPC控制器伺服运动程序
💻 CPP
字号:
// FixedMode.cpp : implementation file
//

#include "stdafx.h"
#include "alfa.h"
#include "FixedMode.h"
#include "Main.h"
#include "Math.h"
#include "io.h"
#include "mccl.h"
#include "sys.h"
#define DATA_FILE _T("mode.bkp")
#define DATAGLB_FILE _T("dataglb.bkp")
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFixedMode dialog
int	flaginit;

CFixedMode::CFixedMode(CWnd* pParent /*=NULL*/)
	: CDialog(CFixedMode::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFixedMode)
	m_wait_main = 0.0;
	m_wait_ass = 0.0;
	m_waitz_main = 0.0;
	m_waitz_ass = 0.0;
	m_puty_main = 0.0;
	m_putz_main = 0.0;
	m_puty_ass = 0.0;
	m_putz_ass = 0.0;
	m_put2y_main = 0.0;
	m_put2z_main = 0.0;
	m_run_main = 0;
	m_run_ass = 0;
	m_waity = 0.0;
	m_num = _T("Mod01");
	//}}AFX_DATA_INIT
	moveparam.speed_adv_ass=10;
	moveparam.speed_back_ass=10;
	moveparam.speed_up_ass=10;
	moveparam.speed_down_ass=10;
	moveparam.distance_x_ass=0;
	moveparam.distance_z_ass=0;
	moveparam.speed_adv_main=10;
	moveparam.speed_back_main=10;
	moveparam.speed_up_main=10;
	moveparam.speed_down_main=10;
	moveparam.distance_x_main=0;
	moveparam.distance_z_main=0;
	flagShow=0;
//	DataTypeFix=0;
}


void CFixedMode::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFixedMode)
	DDX_Control(pDX, IDC_STATIC21, m_prompt2);
	DDX_Control(pDX, IDC_STATIC20, m_prompt1);
	DDX_Control(pDX, IDC_EDIT20, m_edt20);
	DDX_Control(pDX, IDC_EDIT19, m_edt19);
	DDX_Control(pDX, IDC_EDIT17, m_edt17);
	DDX_Control(pDX, IDC_EDIT14, m_edt14);
	DDX_Control(pDX, IDC_EDIT13, m_edt13);
	DDX_Control(pDX, IDC_EDIT12, m_edt12);
	DDX_Control(pDX, IDC_EDIT11, m_edt11);
	DDX_Control(pDX, IDC_EDIT9, m_edt9);
	DDX_Control(pDX, IDC_EDIT8, m_edt8);
	DDX_Control(pDX, IDC_EDIT5, m_edt5);
	DDX_Control(pDX, IDC_EDIT2, m_edt2);
	DDX_Control(pDX, IDC_LIST5, m_list5);
	DDX_Text(pDX, IDC_EDIT2, m_wait_main);
	DDX_Text(pDX, IDC_EDIT5, m_wait_ass);
	DDX_Text(pDX, IDC_EDIT9, m_waitz_main);
	DDX_Text(pDX, IDC_EDIT11, m_waitz_ass);
	DDX_Text(pDX, IDC_EDIT12, m_puty_main);
	DDX_Text(pDX, IDC_EDIT13, m_putz_main);
	DDX_Text(pDX, IDC_EDIT14, m_puty_ass);
	DDX_Text(pDX, IDC_EDIT17, m_putz_ass);
	DDX_Text(pDX, IDC_EDIT19, m_put2y_main);
	DDX_Text(pDX, IDC_EDIT20, m_put2z_main);
	DDX_Text(pDX, IDC_EDIT8, m_waity);
	DDX_CBIndex(pDX, IDC_COMBO1, m_run_main);
	DDX_CBIndex(pDX, IDC_COMBO2, m_run_ass);
	DDX_CBString(pDX, IDC_COMBO3, m_num);
//	DDX_Text(pDX, IDC_EDIT1, m_mnumx_str);
//	DDX_Text(pDX, IDC_EDIT26, m_mnumz_str);
//	DDX_Text(pDX, IDC_EDIT28, m_mnumsy_str);
//	DDX_Text(pDX, IDC_EDIT3, m_mnusx_str);
//	DDX_Text(pDX, IDC_EDIT27, m_mnusz_str);

	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFixedMode, CDialog)
	//{{AFX_MSG_MAP(CFixedMode)
	ON_WM_LBUTTONDOWN()
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTONRUN, OnButtonRUN)
	ON_BN_CLICKED(IDC_BUTTONRESET, OnButtonRESET)
	ON_BN_CLICKED(IDC_BUTTONMX, OnButtonMX)
	ON_BN_CLICKED(IDC_BUTTONMZ1, OnButtonMZ1)
	ON_BN_CLICKED(IDC_BUTTONMZ2, OnButtonMZ2)
	ON_BN_CLICKED(IDC_BUTTONMZ3, OnButtonMZ3)
	ON_BN_CLICKED(IDC_BUTTONSX, OnButtonSX)
	ON_BN_CLICKED(IDC_BUTTONSZ1, OnButtonSZ1)
	ON_BN_CLICKED(IDC_BUTTONSZ2, OnButtonSZ2)
	ON_BN_CLICKED(IDC_BUTTONY1, OnButtonY1)
	ON_BN_CLICKED(IDC_BUTTONY2, OnButtonY2)
	ON_BN_CLICKED(IDC_BUTTONY3, OnButtonY3)
	ON_BN_CLICKED(IDC_BUTTONY4, OnButtonY4)

	ON_WM_SHOWWINDOW()
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
	ON_WM_PAINT()
	ON_CBN_SELCHANGE(IDC_COMBO3, OnSelchangeCombo3)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFixedMode message handlers
BOOL CFixedMode::OnInitDialog() 
{
	CDialog::OnInitDialog();
	h_SkinDialog.SubClassDialog(m_hWnd);
	// TODO: Add extra initialization here
	CFont font;
	font.CreatePointFont(200, "Arial");
	GetDlgItem(IDC_COMBO1)->SetFont(&font);
	GetDlgItem(IDC_COMBO2)->SetFont(&font);
	FileDataType=0;
	LoadRecords();
	POSITION pos;
	CModes * pmode;
	CString key;
	CMain * main=(CMain *)GetParent();
	pos=m_Contacts.GetStartPosition();
	while(pos) {
		m_Contacts.GetNextAssoc(pos,key,pmode);
		main->m_mode.SetAt(key,"fix");
	}
	pos=m_Contacts.GetStartPosition();
	if(pos) {
		m_Contacts.GetNextAssoc(pos,key,pmode);
		if(pmode) LoadParam(pmode);
	}
	else Initialise();
	DisplayMainGram();
	DisplayAssGram();
	flagShow=0;
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CFixedMode::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	UpdateData();
	int g1=m_run_main;
	CMain * main=(CMain *)GetParent();
	if(point.y<270)	{
		if(g1==0) return;
		switch(g1) {
		case 1:
			if(PtInRect(CRect(95,65,130,92),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdown->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(65,150,100,178),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadv->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(115,205,145,235),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbacks->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(195,110,225,140),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgups->ShowWindow(TRUE);
			}
			break;
		case 2:
			if(PtInRect(CRect(28,55,58,85),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdown->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(110,100,140,130),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgback->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(165,200,198,230),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvs->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(105,160,135,190),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgups->ShowWindow(TRUE);
			}
			break;
		case 3:
			if(PtInRect(CRect(27,122,57,152),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdown->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(114,200,147,235),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgback->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(170,103,203,139),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgups->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(114,50,146,82),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvs->ShowWindow(TRUE);
			}
			break;
		case 4:
			if(PtInRect(CRect(175,92,211,127),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdown->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(87,205,123,240),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadv->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(32,124,67,158),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgups->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(80,20,114,55),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbacks->ShowWindow(TRUE);
			}
			break;
		}
	}
	else {
		if(m_run_ass<1) return;
		int g2=m_run_ass+10;
		switch(g2) {
		case 12:
			if(PtInRect(CRect(95,322,130,356),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(64,408,98,444),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(110,465,145,498),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbacksass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(190,370,225,405),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			break;
		case 11:
			if(PtInRect(CRect(20,312,55,350),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(105,360,140,394),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbackass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(163,455,197,490),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvsass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(100,415,135,450),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			break;
		case 14:
            if(PtInRect(CRect(25,380,57,415),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(110,460,145,494),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbackass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(165,365,202,398),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			break;
		case 13:
			if(PtInRect(CRect(170,353,208,388),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(85,465,120,500),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(30,385,65,420),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(80,280,113,315),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbacksass->ShowWindow(TRUE);
			}
			break;
		case 16:
			if(PtInRect(CRect(95,325,130,358),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(63,410,100,445),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(112,465,146,500),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbacksass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(200,347,233,390),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			break;
		case 15:
			if(PtInRect(CRect(60,320,97,358),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(70,370,103,404),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbackass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(182,410,216,444),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvsass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(126,393,160,428),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			break;
		case 17:
			if(PtInRect(CRect(25,370,60,405),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(112,450,145,485),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbackass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(175,330,210,365),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			break;
		case 18:
			if(PtInRect(CRect(204,353,240,388),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgdownass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(118,465,154,500),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgadvass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(63,400,97,435),point)) {
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgupsass->ShowWindow(TRUE);
			}
			else if(PtInRect(CRect(110,320,145,364),point))	{
				flagShow=FALSE;
				ShowWindow(FALSE);
				main->dlgbacksass->ShowWindow(TRUE);
			}
			break;
		}
	}
	CDialog::OnLButtonDown(nFlags, point);
}

//Exit
void CFixedMode::OnButton3() 
{
	// TODO: Add your control notification handler code here
	if(m_CycleSt>0) {
		if(MessageBox("祘Α刚笲锣い !  絋﹚瞒秨 ?", "alfa",
			           MB_OKCANCEL|MB_ICONEXCLAMATION)==IDCANCEL) return;
        else {
            m_CycleSt=0;
//	        MCC_AbortMotion(0);
//	        MCC_AbortMotion(1);
//	        MCC_AbortMotion(2);
            MCC_AbortMotionEx(MX_DecTime*0.1, GROUP_INDEX0);
            MCC_AbortMotionEx(SX_DecTime*0.1, GROUP_INDEX1);
            MCC_AbortMotionEx(Y_DecTime*0.1, GROUP_INDEX2);
	        if((wInput0 & 0x0001)>0) OUTPUT0=OUTPUT0 & ~0xD100;
            else if((wInput0 & 0x4000)>0) OUTPUT0=OUTPUT0 & ~0x4000;
        }			          
    }
    else if(MessageBox("絋﹚瞒秨 ? ", "alfa", MB_OKCANCEL|MB_ICONEXCLAMATION)==IDCANCEL)
		return;

	OUTPUT0=OUTPUT0 | 0x0200;
    MCC_SetRIOOutputValue(OUTPUT0, RIO_SET1, RIO_PORT0, CARD_INDEX);
	KillTimer(56);
	DiagID=0;

	ShowWindow(FALSE);
	CMain * main=(CMain *)GetParent();
	ShowWindow(FALSE);
	main->dlgmainfrm->ShowWindow(TRUE);
}

//Setting
void CFixedMode::OnButton2() 
{
	// TODO: Add your control notification handler code here
	flagShow=0;
	ShowWindow(FALSE);
	CMain * main=(CMain *)GetParent();
	main->dlgmode->ShowWindow(TRUE);
}


BOOL CFixedMode::CanSerialize()
{
    if(FileDataType==1) return (0==_access(DATAGLB_FILE, 10));
    else return (0==_access(DATA_FILE, 10));
}


void CFixedMode::Serialize(CArchive& ar) 
{
    if(FileDataType==1) glb.Serialize(ar);
	else m_Contacts.Serialize(ar);
}


void CFixedMode::LoadRecords()
{
    if(CanSerialize()) {
	    CFile file;
	    CFileException fe;
	    if(FileDataType==1) {
	        if(file.Open(DATAGLB_FILE, CFile::typeBinary|CFile::modeRead, &fe)) {
		        CArchive ar(&file, CArchive::load);
		        Serialize(ar);
			}
        }
		else {
	        if(file.Open(DATA_FILE, CFile::typeBinary|CFile::modeRead, &fe)) {
		        CArchive ar(&file, CArchive::load);
		        Serialize(ar);
			}
        }
	}
}


void CFixedMode::SaveRecords()
{
     BOOL bCanSave=FALSE;
	 UINT flag=CFile::typeBinary|CFile::modeWrite;
	 if(FileDataType==1) {
	     if(_access(DATAGLB_FILE, 0)) {
		     flag |=CFile::modeCreate;
		     bCanSave=TRUE;
		 }
	     else bCanSave=CanSerialize();
     }
	 else {
	     if(_access(DATA_FILE, 0)) {
		     flag |=CFile::modeCreate;
		     bCanSave=TRUE;
		 }
	     else bCanSave=CanSerialize();
     }		
	 if(bCanSave) {
		 CFile file;
		 CFileException fe;
	     if(FileDataType==1) {
		     if(file.Open(DATAGLB_FILE, flag, &fe)) {
			     CArchive ar(&file, CArchive::store);
			     Serialize(ar);
			 }
         }
		 else {
		     if(file.Open(DATA_FILE, flag, &fe)) {
			     CArchive ar(&file, CArchive::store);
			     Serialize(ar);
			 }
		 }
	 }
}

// Record
void CFixedMode::OnButton1() 
{
	// TODO: Add your control notification handler code here
	CMain * main=(CMain *)GetParent();
	if(UpdateData(TRUE)) {
		CModes * pmode=NULL;
		if(!m_Contacts.Lookup(m_num, pmode)) {
			CString str;
			if(main->m_mode.Lookup(m_num, str) && str=="teach") {
				AfxMessageBox("ぃ

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -