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

📄 iplfunctest.cpp

📁 一个很好的VC++程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
{
	m_LspdEn = ! m_LspdEn;
}

void CIPLFuncTest::OnLspd2axis() 
{
	m_LspdType = 1;
}

void CIPLFuncTest::OnLspd3axis() 
{
	m_LspdType = 3;
}

void CIPLFuncTest::OnCheckBpiplIntEn() 
{
	m_BpiplIEn = ! m_BpiplIEn;
}

void CIPLFuncTest::OnCheckCiplIntEn() 
{
	m_CiplIEn = ! m_CiplIEn;
}


void CIPLFuncTest::OnButtonClear() 
{
	delete m_bp1_pArray2;
	delete m_bp1_pArray1;
	delete m_bp2_pArray2;
	delete m_bp2_pArray1;
	delete m_bp3_pArray2;
	delete m_bp3_pArray1;
	delete m_bp4_pArray2;
	delete m_bp4_pArray1;

	m_bp1_pArray2 = new m_BP1Array;
	m_bp1_pArray1 = new m_BP1Array;
	m_bp2_pArray2 = new m_BP2Array;
	m_bp2_pArray1 = new m_BP2Array;
	m_bp1_pArray1 = m_bp1_pArray2;
	m_bp2_pArray1 = m_bp2_pArray2;
	if (m_Ax3En)
	{
		m_bp3_pArray2 = new m_BP3Array;
		m_bp3_pArray1 = new m_BP3Array;
		m_bp3_pArray1 = m_bp3_pArray2;
	}
	if (m_Ax4En)
	{
		m_bp4_pArray2 = new m_BP4Array;
		m_bp4_pArray1 = new m_BP4Array;
		m_bp4_pArray1 = m_bp4_pArray2;
	}
}


void CIPLFuncTest::OnButtonAx5() 
{
	int m_Array1,m_Array2,m_Array3,m_Array4,m_Array12,m_Array22,m_Array32,m_Array42;
	m_Array1 = m_Array2 = m_Array3 = m_Array4 = m_Array12 = m_Array22 = m_Array32 = m_Array42 =0;
	UpdateData();

	m_Array1 = m_strBP1;
	m_Array2 = m_strBP2;
	m_Array3 = m_strBP3;
	m_Array4 = m_strBP4;
	m_Array12 = m_strBP12;
	m_Array22 = m_strBP22;
	m_Array32 = m_strBP32;
	m_Array42 = m_strBP42;

	m_BP1Array* m_p1Array;
	m_BP2Array* m_p2Array;
	m_BP3Array* m_p3Array;
	m_BP4Array* m_p4Array;
	
	m_p1Array = new m_BP1Array;
	m_p2Array = new m_BP2Array;
	m_p3Array = new m_BP3Array;
	m_p4Array = new m_BP4Array;
	
	m_p1Array->m_number1 = m_Array1;
	m_p1Array->m_number2 = m_Array12;
	m_p2Array->m_number1 = m_Array2;
	m_p2Array->m_number2 = m_Array22;
	
	if (m_number == 0)
	{
		m_bp1_pArray2 = m_p1Array;
		m_bp2_pArray2 = m_p2Array;
		m_bp1_pArray2->next = NULL;
		m_bp2_pArray2->next = NULL;
		m_bp1_pArray1 = m_bp1_pArray2;
		m_bp2_pArray1 = m_bp2_pArray2;
		if (m_Ax3En)
		{
			m_p3Array->m_number1 = m_Array3;
			m_p3Array->m_number2 = m_Array32;
			m_bp3_pArray2 = m_p3Array;
			m_bp3_pArray2->next = NULL;
			m_bp3_pArray1 = m_bp3_pArray2;
		}

		if (m_Ax4En)
		{
			m_p4Array->m_number1 = m_Array4;
			m_p4Array->m_number2 = m_Array42;
			m_bp4_pArray2 = m_p4Array;
			m_bp4_pArray2->next = NULL;
			m_bp4_pArray1 = m_bp4_pArray2;
		}	
	}
	else
	{	
		m_bp1_pArray2->next = m_p1Array;
		m_bp2_pArray2->next = m_p2Array;	
		m_bp1_pArray2 = m_p1Array;
		m_bp2_pArray2 = m_p2Array;
		m_bp1_pArray2->next = NULL;
		m_bp2_pArray2->next = NULL;

		if (m_Ax3En)
		{
			m_p3Array->m_number1 = m_Array3;
			m_p3Array->m_number2 = m_Array32;
			m_bp3_pArray2->next = m_p3Array;
			m_bp3_pArray2 = m_p3Array;
			m_bp3_pArray2->next = NULL;
		}

		if (m_Ax4En)
		{
			m_p4Array->m_number1 = m_Array4;
			m_p4Array->m_number2 = m_Array42;
			m_bp4_pArray2->next = m_p4Array;
			m_bp4_pArray2 = m_p4Array;
			m_bp4_pArray2->next = NULL;
		}	
	}
	m_number++;
	
	delete m_p1Array;
	delete m_p2Array;
	delete m_p3Array;
	delete m_p4Array;
}

void CIPLFuncTest::OnButtonStart() 
{
	CString str;
	CString str2;
	int i;
	int m_WR5_LowByte;

	int NewVsacc;
	int m_WR5;

	m_CiplCurrentSeg = 1;

	m_strTXDataCOM1.Empty();

	int m_Lspd = m_LspdEn? m_LspdType : 0;

	if(ChipSel==2)
	{
		m_WR5_LowByte = chip.GetWR5() & 0x00ff;
		m_WR5 = 
			(m_BpiplIEn	 <<15) + 
			(m_CiplIEn	 <<14) + 
			(m_CmdStepEn <<13) + 
			(m_PlsStepEn <<12) + 
			(m_Lspd      << 8) +
			m_WR5_LowByte; 
	}
	else
	{
		m_WR5 = 
			(m_BpiplIEn	 <<15) + 
			(m_CiplIEn	 <<14) + 
			(m_Ax4En	 <<13) + 
			(m_CmdStepEn <<12) + 
			(m_PlsStepEn <<11) + 
			(m_Lspd      << 8) + 
			(m_AxisSel[3]<< 6) + 
			(m_AxisSel[2]<< 4) + 
			(m_AxisSel[1]<< 2) + 
			 m_AxisSel[0]      ; 
	}


	WriteReg( 5, m_WR5 );

	// LP,EP,CP,CM
	for(i=0;i<4;i++)
	{
		if(m_LP_EN[i])
		{
			WriteParam ( LP_ADDR,  m_LP[i]		,m_AxisSel[i]);
			WriteParam ( EP_ADDR,  m_LP[i]		,m_AxisSel[i]);
		}
	
		SetSLMTP( m_CP_EN[i], m_AxisSel[i] );
		if(m_CP_EN[i])	
		{
			WriteParam ( CP_ADDR,  m_CP[i]	,m_AxisSel[i]);
		}
	
		SetSLMTM( m_CM_EN[i], m_AxisSel[i] );
		if(m_CM_EN[i])
		{
			WriteParam ( CM_ADDR,  m_CM[i]	,m_AxisSel[i]);
		}
	}
	
	WriteParam ( AO_ADDR,  m_AO    ,m_AxisSel[0] );

	SendDriveCommand( 0x3C, 0, 0, 0, 0 );	// DS_Disable
	if(m_CiplCurrentSeg==m_CiplSegCount)		// Last segment
	{
		SendDriveCommand( 0x3B, 0, 0, 0, 0 );	// DS_Enable
	}

	if(m_AccType==ACC_TYPE_FULL_S)
	{
		NewVsacc = 0;
	}
	else if(m_Vsacc<((m_SV+m_V)/2))
	{
		NewVsacc = m_Vsacc;
	}
	else
	{
		NewVsacc = 0;
	}

	if(m_IplType==IPL_TYPE_LINE)
	{
		if(m_AccType==ACC_TYPE_FULL_S || m_AccType==ACC_TYPE_PART_S)
		{
			if(m_Ax4En)
			{
				start_sr_line4(m_AxisSel, m_P1, m_P2, m_P3, m_P4, m_SV, m_V, m_AccTime, m_DecTime, NewVsacc, m_Vsdec );
			}
			else if(m_Ax3En)
			{
				start_sr_line3(m_AxisSel, m_P1, m_P2, m_P3, m_SV, m_V, m_AccTime, m_DecTime, NewVsacc, m_Vsdec );
			}
			else
			{
				start_sr_line2(m_AxisSel, m_P1, m_P2, m_SV, m_V, m_AccTime, m_DecTime, NewVsacc, m_Vsdec );
			}
		}
		else if(m_AccType==ACC_TYPE_T)
		{
			if(m_Ax4En)
			{
				start_tr_line4(m_AxisSel, m_P1, m_P2, m_P3, m_P4, m_SV, m_V, m_AccTime, m_DecTime);
			}
			else if(m_Ax3En)
			{
				start_tr_line3(m_AxisSel, m_P1, m_P2, m_P3, m_SV, m_V, m_AccTime, m_DecTime);
			}
			else
			{
				start_tr_line2(m_AxisSel, m_P1, m_P2, m_SV, m_V, m_AccTime, m_DecTime);
			}
		}
		else if(m_AccType==ACC_TYPE_CV)
		{
			if(m_Ax4En)
			{
				start_tr_line4(m_AxisSel, m_P1, m_P2, m_P3, m_P4, m_V, m_V, m_AccTime, m_DecTime);
			}
			else if(m_Ax3En)
			{
				start_tr_line3(m_AxisSel, m_P1, m_P2, m_P3, m_V, m_V, m_AccTime, m_DecTime);
			}
			else
			{
				start_tr_line2(m_AxisSel, m_P1, m_P2, m_V, m_V, m_AccTime, m_DecTime);
			}
		}
	}
	else if(m_IplType==IPL_TYPE_ARC)
	{
		if(m_AccType==ACC_TYPE_FULL_S || m_AccType==ACC_TYPE_PART_S)
		{
			start_sr_arc2( m_AxisSel, m_C1, m_C2, m_P1, m_P2, m_ArcType, m_SV, m_V, m_AccTime, m_DecTime, NewVsacc, m_Vsdec );
		}
		else if(m_AccType==ACC_TYPE_T)
		{
			start_tr_arc2( m_AxisSel, m_C1, m_C2, m_P1, m_P2, m_ArcType, m_SV, m_V, m_AccTime, m_DecTime);
		}
		else if(m_AccType==ACC_TYPE_CV)
		{
			start_tr_arc2( m_AxisSel, m_C1, m_C2, m_P1, m_P2, m_ArcType, m_V, m_V, m_AccTime, m_DecTime);
		}
	}
	else if(m_IplType==IPL_TYPE_BP)
	{
		if(m_AccType==ACC_TYPE_FULL_S || m_AccType==ACC_TYPE_PART_S)
		{
		}
		else if(m_AccType==ACC_TYPE_T)
		{
		}
		else if(m_AccType==ACC_TYPE_CV)
		{
			if(m_Ax4En)
			{
				start_c1r_bit4(m_AxisSel, m_bp1_pArray1, m_bp2_pArray1, m_bp3_pArray1, m_bp4_pArray1, m_V);
			}
			else if(m_Ax3En)
			{
				start_c1r_bit3(m_AxisSel, m_bp1_pArray1, m_bp2_pArray1, m_bp3_pArray1,m_V);
			}
			else
			{
				start_c1r_bit2(m_AxisSel,m_bp1_pArray1,m_bp2_pArray1,m_number);
			}
		}
	}

	m_ComPort.WriteToPort((LPCTSTR)m_strTXDataCOM1);
}

void CIPLFuncTest::OnKillfocusEditPAx1() 
{
	m_P1 = GetDlgItemInt(IDC_EDIT_P_AX1);	
}

void CIPLFuncTest::OnKillfocusEditPAx2() 
{
	m_P2 = GetDlgItemInt(IDC_EDIT_P_AX2);	
}

void CIPLFuncTest::OnKillfocusEditPAx3() 
{
	m_P3 = GetDlgItemInt(IDC_EDIT_P_AX3);	
}

void CIPLFuncTest::OnKillfocusEditPAx4() 
{
	m_P4 = GetDlgItemInt(IDC_EDIT_P_AX4);	
}

void CIPLFuncTest::OnKillfocusEditCAx1() 
{
	m_C1 = GetDlgItemInt(IDC_EDIT_C_AX1);	
}

void CIPLFuncTest::OnKillfocusEditCAx2() 
{
	m_C2 = GetDlgItemInt(IDC_EDIT_C_AX2);	
}

void CIPLFuncTest::OnIpltypeLn() 
{
	m_IplType = IPL_TYPE_LINE;

	GetDlgItem(IDC_EDIT_P_AX1)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_P_AX2)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_P1)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_P2)->ShowWindow(SW_SHOW);

	GetDlgItem(IDC_CHECK_AX3)->EnableWindow(TRUE);
	GetDlgItem(IDC_CHECK_AX4)->EnableWindow(TRUE);

	if(m_Ax3En)
	{
		GetDlgItem(IDC_EDIT_P_AX3)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_P3 )->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_BUTTON_AX3)->ShowWindow(SW_SHOW);
	}
	else
	{
		GetDlgItem(IDC_EDIT_P_AX3)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_P3 )->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTTON_AX3)->ShowWindow(SW_HIDE);
	}

	if(m_Ax4En)
	{
		GetDlgItem(IDC_EDIT_P_AX4)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_P4 )->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_BUTTON_AX4)->ShowWindow(SW_SHOW);
	}
	else
	{
		GetDlgItem(IDC_EDIT_P_AX4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_P4 )->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTTON_AX4)->ShowWindow(SW_HIDE);
	}

	// ARC
	GetDlgItem(IDC_BUTTON_AX5  )->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_C1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_C2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_C_AX1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_C_AX2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_ARCTYPE_CW)->EnableWindow(FALSE);
	GetDlgItem(IDC_ARCTYPE_CCW)->EnableWindow(FALSE);

	// BP
	GetDlgItem(IDC_STATIC_BP1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_BP2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_BP3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_BP4)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_BP1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_BP2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_BP3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_BP4)->ShowWindow(SW_HIDE);

	// ACC
	GetDlgItem(IDC_ACCTYPE_T)->EnableWindow(TRUE);
	GetDlgItem(IDC_ACCTYPE_S)->EnableWindow(TRUE);
	GetDlgItem(IDC_ACCTYPE_S2)->EnableWindow(TRUE);

	GetDlgItem(IDC_CHECK_AUTO_DEC)->EnableWindow(TRUE);
}

void CIPLFuncTest::OnIpltypeArc() 
{
	m_IplType = IPL_TYPE_ARC;

	GetDlgItem(IDC_BUTTON_AX5  )->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_P_AX1)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_P_AX2)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_P_AX3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_P_AX4)->ShowWindow(SW_HIDE);

	GetDlgItem(IDC_STATIC_P1)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_P2)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_P3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_P4)->ShowWindow(SW_HIDE);

	GetDlgItem(IDC_STATIC_C1)-> ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_C2)-> ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_C_AX1)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_C_AX2)->ShowWindow(SW_SHOW);

	GetDlgItem(IDC_STATIC_BP1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_BP2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_BP3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_BP4)->ShowWindow(SW_HIDE);

	GetDlgItem(IDC_EDIT_BP1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_BP2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_BP3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_BP4)->ShowWindow(SW_HIDE);

	GetDlgItem(IDC_CHECK_AX3)->EnableWindow(FALSE);
	GetDlgItem(IDC_CHECK_AX4)->EnableWindow(FALSE);

	GetDlgItem(IDC_BUTTON_AX3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_BUTTON_AX4)->ShowWindow(SW_HIDE);

	GetDlgItem(IDC_ARCTYPE_CW)->EnableWindow(TRUE);
	GetDlgItem(IDC_ARCTYPE_CCW)->EnableWindow(TRUE);

	GetDlgItem(IDC_ACCTYPE_T)->EnableWindow(TRUE);
	GetDlgItem(IDC_ACCTYPE_S)->EnableWindow(TRUE);
	GetDlgItem(IDC_ACCTYPE_S2)->EnableWindow(TRUE);

	CheckDlgButton(IDC_CHECK_AUTO_DEC, BST_UNCHECKED); 
	OnCheckAutoDec();
	GetDlgItem(IDC_CHECK_AUTO_DEC)->EnableWindow(FALSE);
}

void CIPLFuncTest::OnIpltypeBp() 
{
	m_IplType = IPL_TYPE_BP;

	// LN
	GetDlgItem(IDC_EDIT_P_AX1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_P_AX2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_P_AX3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_P_AX4)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_P1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_P2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_P3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_P4)->ShowWindow(SW_HIDE);

	// ARC
	GetDlgItem(IDC_STATIC_C1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_C2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_C_AX1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_EDIT_C_AX2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_ARCTYPE_CW)->EnableWindow(FALSE);
	GetDlgItem(IDC_ARCTYPE_CCW)->EnableWindow(FALSE);

	// BP
//	GetDlgItem(IDC_STATIC_BP1)->ShowWindow(SW_SHOW);
//	GetDlgItem(IDC_STATIC_BP2)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_BP1)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_BP2)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_BP5)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_EDIT_BP6)->ShowWindow(SW_SHOW);

	GetDlgItem(IDC_CHECK_AX3)->EnableWindow(TRUE);
	GetDlgItem(IDC_CHECK_AX4)->EnableWindow(TRUE);

	if(m_Ax3En)
	{
		GetDlgItem(IDC_EDIT_BP7  )->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_EDIT_BP3  )->ShowWindow(SW_SHOW);
//		GetDlgItem(IDC_STATIC_BP3)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_BUTTON_AX3)->ShowWindow(SW_SHOW);
	}
	else
	{
		GetDlgItem(IDC_EDIT_BP7  )->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT_BP3  )->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_BP3)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTTON_AX3)->ShowWindow(SW_HIDE);
	}

	if(m_Ax4En)
	{
		GetDlgItem(IDC_EDIT_BP8  )->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_EDIT_BP4  )->ShowWindow(SW_SHOW);
//		GetDlgItem(IDC_STATIC_BP4)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_BUTTON_AX4)->ShowWindow(SW_SHOW);
	}
	else
	{
		GetDlgItem(IDC_EDIT_BP8  )->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT_BP4  )->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_BP4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTTON_AX4)->ShowWindow(SW_HIDE);
	}

	GetDlgItem(IDC_BUTTON_AX5  )->ShowWindow(SW_SHOW);

	// Only allow constant velocity

	CheckDlgButton(IDC_ACCTYPE_CV, BST_CHECKED); 
	CheckDlgButton(IDC_ACCTYPE_T,  BST_UNCHECKED); 
	CheckDlgButton(IDC_ACCTYPE_S,  BST_UNCHECKED); 
	CheckDlgButton(IDC_ACCTYPE_S2, BST_UNCHECKED); 
	OnAcctypeCv();

	GetDlgItem(IDC_ACCTYPE_T)->EnableWindow(FALSE);
	GetDlgItem(IDC_ACCTYPE_S)->EnableWindow(FALSE);
	GetDlgItem(IDC_ACCTYPE_S2)->EnableWindow(FALSE);

⌨️ 快捷键说明

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