📄 verifyammterview.cpp
字号:
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 + -