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

📄 verifyammterview.cpp

📁 校表程序源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				cs+=SendBuffer3[k];
			}
			SendBuffer3[8]=cs;
			CByteArray array;
			array.RemoveAll();
			array.SetSize(10);

//	BYTE rxdata[32];
			for(int i=0;i<10;i++){
			array.SetAt(i,SendBuffer3[i]);
			}
			m_ctrlcomm.SetOutput(COleVariant(array));
		}
	
	}	
}

void CVerifyAmmterView::OnCloseupList1Power() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	sel1=m_list1.GetCurSel();

	m_error1=error_power[sel1];

	m_power.Format("%.6x",(DWORD)power[sel1]);
	UpdateData(FALSE);
	
}

void CVerifyAmmterView::OnCloseupList1Phase() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	sel2=m_list2.GetCurSel();

	

	m_phase.Format("%.6x",(DWORD)phase[sel2]);
	m_error2=error_phase[sel2];
	UpdateData(FALSE);	
}
void CVerifyAmmterView::OnCloseupList1Voltage() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	sel4=m_list4.GetCurSel();

	

	m_voltage.Format("%.2f",disp_voltage[sel4]);
	m_transfer1.Format("%.6x",(DWORD)voltage[sel4]);
	UpdateData(FALSE);		
}
void CVerifyAmmterView::OnCloseupList1Current() 
{
	// TODO: Add your control notification handler code here
			UpdateData(TRUE);
	sel3=m_list3.GetCurSel();

	

	m_current.Format("%.2f",disp_current[sel3]);
	m_transfer2.Format("%.6x",(DWORD)current[sel3]);
	UpdateData(FALSE);	
}

void CVerifyAmmterView::OnPower1VerifyButton() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE);

	 error_power[sel1]=m_error1;
	double result=pow(2,23);
	double error_power1=error_power[sel1]/100;
	double pgain=(0-error_power1)/(1+error_power1);
	
		if(m_error1<0.00)
		power[sel1]=pgain*result;
		else if(m_error1>0.00)
		power[sel1]=pow(2,24)+pgain*result;
//		BYTE power[32];
//		power[0]=0xfe;
//		power[1]=0xfe;
//		power[2]=0x68;

//	DWORD dwPower = (DWORD)power[sel1];
//	BYTE temp = dwPower >> 8;
//	CString msg;
//	msg.Format("%x",dwPower);
//	AfxMessageBox(msg);
//	power[sel1]=((DWORD)power[sel1])&((DWORD)0x0FF0000);
	
	
		BYTE SendBuffer[50];
		BYTE cs=0;
		SendBuffer[0]=0xfe;
		SendBuffer[1]=0xfe;
		SendBuffer[2]=0x68;
		SendBuffer[3]=01;
		SendBuffer[4]='C';
		SendBuffer[5]='h';
		SendBuffer[6]='e';
		SendBuffer[7]='c';
		SendBuffer[8]='k';
		SendBuffer[9]='o';
		SendBuffer[10]='u';
		SendBuffer[11]='t';
		SendBuffer[12]='P';
		SendBuffer[13]='G';
		SendBuffer[14]=sel1+1;		
		SendBuffer[15]=(BYTE)(((DWORD)power[sel1])>>16);
		SendBuffer[16]=(BYTE)(((DWORD)power[sel1])>>8);
		SendBuffer[17]=(BYTE)((DWORD)power[sel1]);
		for(int i=2;i<18;i++){
			cs+=SendBuffer[i];
		}
		SendBuffer[18]=cs;
		SendBuffer[19]=0x16;
	m_power.Format("%.6x",(DWORD)power[sel1]);
	if(sel1==0)
		power11=m_power;
	else if(sel1==1)
		power12=m_power;
	else if(sel1==2)
		power13=m_power;
	else if(sel1==3)
		power14=m_power;
	CByteArray array;
	array.RemoveAll();
	array.SetSize(20);
	
	for(i=0;i<20;i++){
		array.SetAt(i,SendBuffer[i]);
	}
	
		m_ctrlcomm.SetOutput(COleVariant(array));

		UpdateData(FALSE);	
}

void CVerifyAmmterView::OnPhase1VerifyButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	 error_phase[sel2]=m_error2;
	double result=pow(2,23);
	double error_phase1=error_phase[sel2]/100;
	double cita=acos((1+error_phase1)*0.5)-3.1415926/3;
//	double pgain=(0-error_phase1)/(1+error_phase1);
	
		if(m_error2<0.00)
		phase[sel2]=cita*result;
		else if(m_error2>0.00)
		phase[sel2]=pow(2,24)+cita*result;
	
		BYTE SendBuffer1[50];
		BYTE cs=0;
		SendBuffer1[0]=0xfe;
		SendBuffer1[1]=0xfe;
		SendBuffer1[2]=0x68;
		SendBuffer1[3]=01;
		SendBuffer1[4]='C';
		SendBuffer1[5]='h';
		SendBuffer1[6]='e';
		SendBuffer1[7]='c';
		SendBuffer1[8]='k';
		SendBuffer1[9]='o';
		SendBuffer1[10]='u';
		SendBuffer1[11]='t';
		SendBuffer1[12]='P';
//		SendBuffer1[12]='G';
		SendBuffer1[13]=sel2+1;		
		SendBuffer1[14]=(BYTE)(((DWORD)phase[sel2])>>16);
		SendBuffer1[15]=(BYTE)(((DWORD)phase[sel2])>>8);
		SendBuffer1[16]=(BYTE)((DWORD)phase[sel2]);
		for(int i=2;i<17;i++){
			cs+=SendBuffer1[i];
		}
		SendBuffer1[17]=cs;
		SendBuffer1[18]=0x16;

	CByteArray array;
	array.RemoveAll();
	array.SetSize(19);
	for(i=0;i<19;i++){
		array.SetAt(i,SendBuffer1[i]);
	}
	
		m_ctrlcomm.SetOutput(COleVariant(array));
	
//	CString msg;
//	msg.Format("%f",sel);
//	AfxMessageBox(msg);
	m_phase.Format("%.6x",(DWORD)phase[sel2]);
	if(sel2==0)
		phase11=m_phase;
	else if(sel2==1)
		phase12=m_phase;
	else if(sel2==2)
		phase13=m_phase;
	else if(sel2==3)
		phase14=m_phase;

//	power=((DWORD)power)&((DWORD)0x0FF);
//	m_strPowerEdit.Format("%.6x",(DWORD)power);
		UpdateData(FALSE);	
}

void CVerifyAmmterView::OnVoltage1VerifyButton() 
{
	// TODO: Add your control notification handler code here
//	double urms=transfer1/pow(2,13);
//	disp_voltage[sel4]=urms;
	double ugain1=(double)220/disp_voltage[sel4] -1;
//	CString msg;
//	msg.Format("%f",ugain1);
//	AfxMessageBox(msg);
	
		if(ugain1<0)
		voltage[sel4]=pow(2,24)+ugain1*pow(2,23);
		else if(ugain1>0)
		voltage[sel4]=ugain1*pow(2,23);
		
		
		BYTE SendBuffer2[50];
		BYTE cs=0;
		SendBuffer2[0]=0xfe;
		SendBuffer2[1]=0xfe;
		SendBuffer2[2]=0x68;
		SendBuffer2[3]=01;
		SendBuffer2[4]='C';
		SendBuffer2[5]='h';
		SendBuffer2[6]='e';
		SendBuffer2[7]='c';
		SendBuffer2[8]='k';
		SendBuffer2[9]='o';
		SendBuffer2[10]='u';
		SendBuffer2[11]='t';
		SendBuffer2[12]='V';
		SendBuffer2[13]=sel4+1;
//		SendBuffer1[12]='G';
//		SendBuffer2[12]=sel2;		
		SendBuffer2[14]=(BYTE)(((DWORD)voltage[sel4])>>16);
		SendBuffer2[15]=(BYTE)(((DWORD)voltage[sel4])>>8);
		SendBuffer2[16]=(BYTE)((DWORD)voltage[sel4]);
		for(int i=2;i<17;i++){
			cs+=SendBuffer2[i];
		}

		SendBuffer2[17]=cs;
		SendBuffer2[18]=0x16;

	CByteArray array;
	array.RemoveAll();
	array.SetSize(19);
	for(i=0;i<19;i++){
		array.SetAt(i,SendBuffer2[i]);
	}

		m_ctrlcomm.SetOutput(COleVariant(array));
	

	m_voltage.Format("%.2f",disp_voltage[sel4]);
	
	m_transfer1.Format("%.6x",(DWORD)voltage[sel4]);
	if(sel4==0)
		voltage11=m_transfer1;
	else if(sel4==1)
		voltage12=m_transfer1;
	else if(sel4==2)
		voltage13=m_transfer1;
	else if(sel4==3)
		voltage14=m_transfer1;
	UpdateData(FALSE);	
}

void CVerifyAmmterView::OnCurrent1VerifyButton() 
{
	// TODO: Add your control notification handler code here
//	current[sel3]=transfer2;
//	disp_current[sel3]=current[sel3]/pow(2,13);

//	double igain1=(double)1.5/irms -1;
//disp_current[sel3]=0.04;
double igain1=(double)1.5/disp_current[sel3] -1;

//	CString msg;
//	msg.Format("%f",ugain1);
//	AfxMessageBox(msg);
//	int igain;
		if(igain1<0)
		current[sel3]=pow(2,24)+igain1*pow(2,23);
		else if(igain1>0)
		current[sel3]=igain1*pow(2,23);


		BYTE SendBuffer3[50];
		BYTE cs=0;
		SendBuffer3[0]=0xfe;
		SendBuffer3[1]=0xfe;
		SendBuffer3[2]=0x68;
		SendBuffer3[3]=01;
		SendBuffer3[4]='C';
		SendBuffer3[5]='h';
		SendBuffer3[6]='e';
		SendBuffer3[7]='c';
		SendBuffer3[8]='k';
		SendBuffer3[9]='o';
		SendBuffer3[10]='u';
		SendBuffer3[11]='t';
		SendBuffer3[12]='C';
//		SendBuffer1[12]='G';
		SendBuffer3[13]=sel3+1;		
		SendBuffer3[14]=(BYTE)(((DWORD)current[sel3])>>16);
		SendBuffer3[15]=(BYTE)(((DWORD)current[sel3])>>8);
		SendBuffer3[16]=(BYTE)((DWORD)current[sel3]);
		for(int i=2;i<17;i++){
			cs+=SendBuffer3[i];
		}
		SendBuffer3[17]=cs;
		SendBuffer3[18]=0x16;

	CByteArray array;
	array.RemoveAll();
	array.SetSize(19);
	for(i=0;i<19;i++){
		array.SetAt(i,SendBuffer3[i]);
	}

		m_ctrlcomm.SetOutput(COleVariant(array));

	m_current.Format("%.2f",disp_current[sel3]);
	m_transfer2.Format("%.6x",(DWORD)current[sel3]);
	if(sel3==0)
		current11=m_transfer2;
	else if(sel3==1)
		current12=m_transfer2;
	else if(sel3==2)
		current13=m_transfer2;
	else if(sel3==3)
		current14=m_transfer2;
	
	UpdateData(FALSE);	
}

void CVerifyAmmterView::OnPower1ManButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

	BYTE key_power[10];
	BYTE SendBuffer_man[50];
	BYTE cs_man=0;
	if(m_power.GetLength()!=6){
			AfxMessageBox("系统无效");
			return;
	}
	
	for(int i=0;i<6;i++){
	
		if((m_power.GetAt(i)<='9')&&(m_power.GetAt(i)>='0'))
			key_power[i]=m_power.GetAt(i)-'0';
		else if(m_power.GetAt(i)<='f'&&m_power.GetAt(i)>='a')
			key_power[i]=m_power.GetAt(i)-'a'+10;
		else if(m_power.GetAt(i)<='F'&&m_power.GetAt(i)>='A')
			key_power[i]=m_power.GetAt(i)-'A'+10;
		else 
		{	AfxMessageBox("系统无效");
			return;
		
		}
	}
	key_power[0]<<=4;
	SendBuffer_man[15]=key_power[0]|key_power[1];
	key_power[2]<<=4;
	SendBuffer_man[16]=key_power[2]|key_power[3];
	key_power[4]<<=4;
	SendBuffer_man[17]=key_power[4]|key_power[5];

		SendBuffer_man[0]=0xfe;
		SendBuffer_man[1]=0xfe;
		SendBuffer_man[2]=0x68;
		SendBuffer_man[3]=01;
		SendBuffer_man[4]='C';
		SendBuffer_man[5]='h';
		SendBuffer_man[6]='e';
		SendBuffer_man[7]='c';
		SendBuffer_man[8]='k';
		SendBuffer_man[9]='o';
		SendBuffer_man[10]='u';
		SendBuffer_man[11]='t';
		SendBuffer_man[12]='P';
		SendBuffer_man[13]='G';
		SendBuffer_man[14]=sel1+1;
		for(int k=2;k<18;k++){
			cs_man+=SendBuffer_man[k];
		}
		SendBuffer_man[18]=cs_man;
		SendBuffer_man[19]=0x16;
//	m_power.Format("%.6x",(DWORD)power[sel1]);
		CByteArray array;
		array.RemoveAll();
		array.SetSize(20);
		for(i=0;i<20;i++){
			array.SetAt(i,SendBuffer_man[i]);
		}

		m_ctrlcomm.SetOutput(COleVariant(array));
	
}

void CVerifyAmmterView::OnPhase1ManButton() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE);

	BYTE key_phase[10];
	BYTE SendBuffer1_man[50];
	BYTE cs_man=0;
	if(m_phase.GetLength()!=6){
			AfxMessageBox("系统无效");
			return;
	}
	
	for(int i=0;i<6;i++){
	
		if((m_phase.GetAt(i)<='9')&&(m_phase.GetAt(i)>='0'))
			key_phase[i]=m_phase.GetAt(i)-'0';
		else if(m_phase.GetAt(i)<='f'&&m_phase.GetAt(i)>='a')
			key_phase[i]=m_phase.GetAt(i)-'a'+10;
		else if(m_phase.GetAt(i)<='F'&&m_phase.GetAt(i)>='A')
			key_phase[i]=m_phase.GetAt(i)-'A'+10;
		else 
		{	AfxMessageBox("系统无效");
			return;
		
		}
	}
	key_phase[0]<<=4;
	SendBuffer1_man[14]=key_phase[0]|key_phase[1];
	key_phase[2]<<=4;
	SendBuffer1_man[15]=key_phase[2]|key_phase[3];
	key_phase[4]<<=4;
	SendBuffer1_man[16]=key_phase[4]|key_phase[5];

		SendBuffer1_man[0]=0xfe;
		SendBuffer1_man[1]=0xfe;
		SendBuffer1_man[2]=0x68;
		SendBuffer1_man[3]=01;
		SendBuffer1_man[4]='C';
		SendBuffer1_man[5]='h';
		SendBuffer1_man[6]='e';
		SendBuffer1_man[7]='c';
		SendBuffer1_man[8]='k';
		SendBuffer1_man[9]='o';
		SendBuffer1_man[10]='u';
		SendBuffer1_man[11]='t';
		SendBuffer1_man[12]='P';
//		SendBuffer1_man[12]='G';
		SendBuffer1_man[13]=sel2+1;
		for(int k=2;k<17;k++){
			cs_man+=SendBuffer1_man[k];
		}
		SendBuffer1_man[17]=cs_man;
		SendBuffer1_man[18]=0x16;
//	m_power.Format("%.6x",(DWORD)power[sel1]);
		CByteArray array;
		array.RemoveAll();
		array.SetSize(19);
		for(i=0;i<19;i++){
			array.SetAt(i,SendBuffer1_man[i]);
		}

		m_ctrlcomm.SetOutput(COleVariant(array));
	
}

void CVerifyAmmterView::OnVolatge1ManButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

	BYTE key_voltage[10];
	BYTE SendBuffer2_man[50];
	BYTE cs_man=0;
	if(m_transfer1.GetLength()!=6){
			AfxMessageBox("系统无效");
			return;
	}
	
	for(int i=0;i<6;i++){
	
		if((m_transfer1.GetAt(i)<='9')&&(m_transfer1.GetAt(i)>='0'))
			key_voltage[i]=m_transfer1.GetAt(i)-'0';
		else if(m_transfer1.GetAt(i)<='f'&&m_transfer1.GetAt(i)>='a')
			key_voltage[i]=m_transfer1.GetAt(i)-'a'+10;
		else if(m_transfer1.GetAt(i)<='F'&&m_transfer1.GetAt(i)>='A')
			key_voltage[i]=m_transfer1.GetAt(i)-'A'+10;
		else 
		{	AfxMessageBox("系统无效");
			return;
		
		}

⌨️ 快捷键说明

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