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

📄 systemparam.cpp

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

#include "stdafx.h"
#include "alfa.h"
#include "SystemParam.h"
#include "Main.h"
#include "io.h"
#define SYSTEM_FILE _T("system.bkp")
#define DATAGLB_FILE _T("dataglb.bkp")
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSystemParam dialog


CSystemParam::CSystemParam(CWnd* pParent /*=NULL*/)
	: CDialog(CSystemParam::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSystemParam)
	m_edt1 = 0;
	m_edt10 = _T("");
	m_edt2 = _T("");
	m_edt6 = 0.0;
	m_edt7 = 0.0;
	m_edt8 = 0.0;
	m_edt9 = _T("");
	//}}AFX_DATA_INIT
	flagShow=0;
	minpos_mx=0.0;
	maxpos_mx=0.0;
	minpos_mz=0.0;
	maxpos_mz=0.0;
	minpos_y=0.0;
	maxpos_y=0.0;
	minpos_sx=0.0;
	maxpos_sx=0.0;
	minpos_sz=0.0;
	maxpos_sz=0.0;
}


void CSystemParam::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSystemParam)
	DDX_Control(pDX, IDC_EDIT8, m_edit8);
	DDX_Control(pDX, IDC_EDIT9, m_edit9);
	DDX_Control(pDX, IDC_EDIT7, m_edit7);
	DDX_Control(pDX, IDC_EDIT6, m_edit6);
	DDX_Control(pDX, IDC_EDIT2, m_edit2);
	DDX_Control(pDX, IDC_EDIT10, m_edit10);
	DDX_Control(pDX, IDC_EDIT1, m_edit1);
	DDX_Text(pDX, IDC_EDIT1, m_edt1);
	DDX_Text(pDX, IDC_EDIT10, m_edt10);
	DDX_Text(pDX, IDC_EDIT2, m_edt2);
	DDX_Text(pDX, IDC_EDIT6, m_edt6);
	DDX_Text(pDX, IDC_EDIT7, m_edt7);
	DDX_Text(pDX, IDC_EDIT8, m_edt8);
	DDX_Text(pDX, IDC_EDIT9, m_edt9);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSystemParam, CDialog)
	//{{AFX_MSG_MAP(CSystemParam)
	ON_WM_SHOWWINDOW()
	ON_BN_CLICKED(IDC_BUTTON1, OnBtnExit)
	ON_BN_CLICKED(IDC_BUTTON2, OnBtnSave)
	ON_BN_CLICKED(IDC_BUTTON6, OnBtnPos)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSystemParam message handlers

BOOL CSystemParam::CanSerialize()
{
//  return(0==_access(SYSTEM_FILE,10));
 	if(FileDataType==1) return(0==_access(DATAGLB_FILE, 6));
    else return(0==_access(SYSTEM_FILE, 6));
}


void CSystemParam::LoadRecords()
{
    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(SYSTEM_FILE,CFile::typeBinary|CFile::modeRead, &fe)) {
	        CArchive ar(&file,CArchive::load);
	        Serialize(ar);
		}
	}
}


void CSystemParam::Serialize(CArchive& ar) 
{
	if(FileDataType==1) glb.Serialize(ar);
    else  si.Serialize(ar);

}


void CSystemParam::SaveRecords()
{
    BOOL bCansave;
    int flag=CFile::typeBinary|CFile::modeWrite;

	if(FileDataType==1) {
        if(_access(DATAGLB_FILE, 0)) {
  	        flag|=CFile::modeCreate;
	        bCansave=TRUE;
		}
        else {
	        bCansave=CanSerialize();
		}
        if(bCansave) {
	        CFile file;
	        CFileException fe;
	        if(file.Open(DATAGLB_FILE, flag, &fe)) {
		        CArchive ar(&file, CArchive::store);
		        Serialize(ar);
			}
		}
    }
    else {
        if(_access(SYSTEM_FILE, 0)) {
  	        flag|=CFile::modeCreate;
	        bCansave=TRUE;
		}
        else {
	        bCansave=CanSerialize();
		}
        if(bCansave) {
	        CFile file;
	        CFileException fe;
	        if(file.Open(SYSTEM_FILE, flag, &fe)) {
		        CArchive ar(&file, CArchive::store);
		        Serialize(ar);
			}
		}
	}
}


BOOL CSystemParam::OnInitDialog() 
{
	CDialog::OnInitDialog();
	h_SkinDialog.SubClassDialog(m_hWnd);
	// TODO: Add extra initialization here
	FileDataType=0;
	if(CanSerialize())
	{
		LoadRecords();
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CSystemParam::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
    CString Temp_str; 
	// TODO: Add your message handler code here
	if(bShow==1) {
		CMain * main=(CMain *)GetParent();
		main->dlgcur=this;
		if(flagShow==1)	{
			flagShow=0;
			return;
		}
		if(CanSerialize()) {
			LoadRecords();
//			m_edt1=si.run_count;
	        m_edt1=MoldCountSet;
			m_edt2=si.produce_date;
			m_edt6=si.safepos_z;
			m_edt7=si.getsafe_y;
			m_edt8=si.putsafe_y;
			m_edt9=si.pwd_syspara;
			m_edt10=si.pwd_exitsys;
			UpdateData(FALSE);

	        Temp_str.Format("%6.2f", m_edt6);
            GetDlgItem(IDC_EDIT6)->SetWindowText(Temp_str);
	        Temp_str.Format("%6.2f", m_edt7);
            GetDlgItem(IDC_EDIT7)->SetWindowText(Temp_str);
	        Temp_str.Format("%6.2f", m_edt8);
            GetDlgItem(IDC_EDIT8)->SetWindowText(Temp_str);

			//			main->m_num=si.m_num;
			minpos_mx=si.minpos_mx ;
			maxpos_mx=si.maxpos_mx;
			minpos_mz=si.minpos_mz;
			maxpos_mz=si.maxpos_mz;
			minpos_y=si.minpos_y;
			maxpos_y=si.maxpos_y;
			minpos_sx=si.minpos_sx;
			maxpos_sx=si.maxpos_sx;
			minpos_sz=si.minpos_sz;
			maxpos_sz=si.maxpos_sz;
		}
	}
}


void CSystemParam::OnBtnExit() 
{
	// TODO: Add your control notification handler code here
	ShowWindow(FALSE);
	CMain * main=(CMain *)GetParent();
	main->dlgsystem->ShowWindow(TRUE);
}


void CSystemParam::OnBtnSave() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CMain * main=(CMain *)GetParent();
	si.run_count=m_edt1;
	MoldCountSet=m_edt1;
	si.produce_date=m_edt2;
	si.safepos_z=m_edt6;
	si.getsafe_y=m_edt7;
	si.putsafe_y=m_edt8;
	si.pwd_syspara=m_edt9;
	si.pwd_exitsys=m_edt10;
	si.minpos_mx=minpos_mx;
	si.maxpos_mx=maxpos_mx;
	si.minpos_mz=minpos_mz;
	si.maxpos_mz=maxpos_mz;
	si.minpos_y=minpos_y;
	si.maxpos_y=maxpos_y;
	si.minpos_sx=minpos_sx;
	si.maxpos_sx=maxpos_sx;
	si.minpos_sz=minpos_sz;
	si.maxpos_sz=maxpos_sz;
//	si.m_num="";
	si.m_num=main->m_num;
	msafepos=si.safepos_z;   // Z Pos.
	mytsafepos=si.getsafe_y; // Y Take Pos.
	mypsafepos=si.putsafe_y; // Y Put Pos.
//    AcrossZH=msafepos-20.0;     // Across Z Height
	if(si.minpos_sz>=si.safepos_z) AcrossZH=msafepos-50.0;
    else                           AcrossZH=si.minpos_sz;
    NG_XPos=si.minpos_mx;
    NG_ZPos=si.minpos_mz;
    NG_YPos=si.maxpos_mx;
    QC_XPos=si.maxpos_mz;
    QC_ZPos=si.minpos_y;
    QC_YPos=si.maxpos_y;
	QC_MoldSet=(int)si.minpos_sx;
    Side_Wait_Timer=si.maxpos_sz;
    Vac_Chk_Timer=si.maxpos_sx;
	MakerDate=si.produce_date;

    FileDataType=0;
	SaveRecords();

    glb.m_num=FileNameSys;
    glb.m_Valid=ModeSys;
    glb.m_MoldCount=MoldCountCur;
    glb.m_MoldTotal=MoldCountSet;
    glb.m_MoldSet=MoldSet;                
    glb.m_MoldStack1=MoldStack1;          
    glb.m_MoldStack2=MoldStack2;          
    glb.m_Reserved1=MoldReserv1;          
    glb.m_Reserved2=MoldReserv2;          
    glb.m_Reserved3=MoldReserv3; 
    glb.m_LogIndex=AlmLogIndex;  
    for(int i=0; i<50; i++) {
        glb.m_LogTime[i]=AlmLogTime[i];
        glb.m_LogID[i]=AlmLogID[i];
	} 

    FileDataType=1;
	SaveRecords();
    FileDataType=0;
	AfxMessageBox("癘拘Θ

⌨️ 快捷键说明

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