📄 pg1dlg.cpp
字号:
flash=!flash;
}
else
{
m_disp="命令执行失败 ####";
flash=!flash;
}
UpdateData(FALSE);
}//if1
}//if2
if ((m_strRad.GetLength()==12) && (m_strRad.Mid(0,2) =="AA"))
{
if(((rxdata[0]+rxdata[1]+rxdata[2]+rxdata[3]+rxdata[4]+rxdata[5])&0xff)==0)
{
int voltage,current;
voltage=rxdata[1];
voltage=voltage<<8;
voltage=voltage+rxdata[2];//当前电压
current=rxdata[3];
current=current<<8;
current=current+rxdata[4];//当前电流
CString v,c;
v.Format("%d",voltage);
c.Format("%d",current);
m_v_limit=v+"mV";
m_c_limit=c+"mA";
if(flash)
{
m_disp="命令执行成功 ****";
flash=!flash;
}
else
{
m_disp="命令执行成功 ####";
flash=!flash;
}
UpdateData(FALSE);
}
else
{
if(flash)
{
m_disp="命令执行失败 ****";
flash=!flash;
}
else
{
m_disp="命令执行失败 ####";
flash=!flash;
}
UpdateData(FALSE);
}
}
else if (m_strRad.GetLength()==2 && m_strReceive==" 5A" )
{
if(flash)
{
m_disp="命令执行成功 ****";
}
else
{
m_disp="命令执行成功 ####";
}
UpdateData(FALSE);
flash=!flash;
}
else if (m_strRad.GetLength()==2 && m_strReceive==" A5" )
{
if(flash)
{
m_disp="命令执行失败(串口) ****";
}
else
{
m_disp="命令执行失败(串口) ####";
}
UpdateData(FALSE);
flash=!flash;
MessageBox("命令执行失败(串口)");
}
else if (m_strRad.GetLength()==2 && m_strReceive==" A6" )
{
if(flash)
{
m_disp="命令执行失败(并口) ****";
}
else
{
m_disp="命令执行失败(并口) ####";
}
UpdateData(FALSE);
flash=!flash;
}
else if (m_strRad.GetLength()==4 && m_strReceive==" 80 80" )
{
m_working_staus="过流硬件保护";
UpdateData(FALSE);
}
else if (m_strRad.GetLength()==4 && m_strReceive==" 81 7F" )
{
m_working_staus="过流恒流保护";
UpdateData(FALSE);
}
else if (m_strRad.GetLength()==4 && m_strReceive==" 90 70" )
{
m_working_staus="过压硬件保护";
UpdateData(FALSE);
}
else if (m_strRad.GetLength()==4 && m_strReceive==" 91 6F" )
{
m_working_staus="过压软件保护";
UpdateData(FALSE);
}
else if (m_strRad.GetLength()==4 && m_strReceive==" 82 7E")
{
m_working_staus="Power Supply Working OK";
UpdateData(FALSE);
}
}
}
UpdateData(FALSE); //更新编辑框内容
}
void CPG1Dlg::OnSend_frame()
{
int number;
if(num<=(len/64))
{
CByteArray senddata;
//senddata.SetSize(67);
//senddata[66]=0; //校验和补码
senddata.SetSize(68);
senddata[67]=0; //校验和补码
for (int i=2;i<66;i++)
{
if((num*64+i)<len)
senddata[i+1]=SEND_BYTE[num*64+i];
else
senddata[i+1]=0xff;
senddata[67]=senddata[67]+senddata[i+1];
}
number=num+1;
if (number>255)
{
int i=number/256;
int j=number-i*256;
senddata[1]=j;
senddata[2]=i;
}
else
{
senddata[1]=number;
senddata[2]=0;
}
// if(senddata[1]==0) senddata[1]++;
senddata[0]=0x83;
senddata[67]=senddata[67]+senddata[0]+senddata[1]+senddata[2];
senddata[67]=senddata[67] & 0xff;
senddata[67]=0-senddata[67];
senddata[67]=senddata[67] & 0xff;
m_jc.SetRange(0,len/64);
m_jc.SetStep(1);
m_jc.SetPos(num);
double bai=len/64;
bai=num/bai;
bai=bai*100;
int bai2=int(bai);
CString bai1;
bai1.Format("%ld",bai2);
m_bai=bai1;
UpdateData(FALSE);
m_Com.SetOutput(COleVariant(senddata));//发送数据
num++;
}
else
{
if (!(fmod(num,2)==0))
{
CByteArray senddata;
senddata.SetSize(68);
senddata[67]=0; //校验和补码
for (int i=3;i<67;i++)
{
senddata[i]=0x0ff;
senddata[67]=senddata[67]+senddata[i];
}
number=num+1;
if (number>255)
{
int i=number/256;
int j=number-i*256;
senddata[1]=j;
senddata[2]=i;
}
else
{
senddata[1]=number;
senddata[2]=0;
}
senddata[0]=0x83;
senddata[67]=senddata[67]+senddata[0]+senddata[1]+senddata[2];
senddata[67]=senddata[67] & 0xff;
senddata[67]=0-senddata[67];
senddata[67]=senddata[67] & 0xff;
m_jc.SetRange(0,len/64);
m_jc.SetStep(1);
m_jc.SetPos(num);
double bai=len/64;
bai=num/bai;
bai=bai*100;
bai=100;
int bai2=int(bai);
CString bai1;
bai1.Format("%ld",bai2);
m_bai=bai1;
UpdateData(FALSE);
m_Com.SetOutput(COleVariant(senddata));//发送数据
num++;
}
else
{
CByteArray senddata;
senddata.SetSize(2);
senddata[0]=0xA1; //数据发送结束
senddata[1]=0x5F;
m_Com.SetOutput(COleVariant(senddata));//发送数据
}
}
}
void CPG1Dlg::OnCancel()
{
CDialog::OnCancel();
}
void CPG1Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CByteArray senddata;
senddata.SetSize(2);
senddata[0]=0x8A;
senddata[1]=(~senddata[0])+1;
m_Com.SetOutput(COleVariant(senddata));//发送数据
SetTimer(1,200,NULL);
CDialog::OnTimer(nIDEvent);
}
void CPG1Dlg::OnRelay1()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy1)
senddata[0]=0x40; //数据发送结束
else
senddata[0]=0x41;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy1=!realy1;
}
void CPG1Dlg::OnRelay2()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy2)
senddata[0]=0x20; //数据发送结束
else
senddata[0]=0x21;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy2=!realy2;
}
void CPG1Dlg::OnRelay3()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy3)
senddata[0]=0x30; //数据发送结束
else
senddata[0]=0x31;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy3=!realy3;
}
void CPG1Dlg::OnRelay4()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy4)
senddata[0]=0x40; //数据发送结束
else
senddata[0]=0x41;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy4=!realy4;
}
void CPG1Dlg::OnRelay5()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy5)
senddata[0]=0x50; //数据发送结束
else
senddata[0]=0x51;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy5=!realy5;
}
void CPG1Dlg::OnRelay6()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy6)
senddata[0]=0x60; //数据发送结束
else
senddata[0]=0x61;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy6=!realy6;
}
void CPG1Dlg::OnRelay7()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy7)
senddata[0]=0x70; //数据发送结束
else
senddata[0]=0x71;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy7=!realy7;
}
void CPG1Dlg::OnRelay8()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy8)
senddata[0]=0x80; //数据发送结束
else
senddata[0]=0x81;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy8=!realy8;
}
void CPG1Dlg::OnRelay9()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy9)
senddata[0]=0x90; //数据发送结束
else
senddata[0]=0x91;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy9=!realy9;
}
void CPG1Dlg::OnRelay10()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy10)
senddata[0]=0xa0; //数据发送结束
else
senddata[0]=0xa1;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy10=!realy10;
}
void CPG1Dlg::OnRelay11()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy11)
senddata[0]=0xb0; //数据发送结束
else
senddata[0]=0xb1;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy11=!realy11;
}
void CPG1Dlg::OnRelay12()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(1);
if(realy12)
senddata[0]=0xc0; //数据发送结束
else
senddata[0]=0xc1;
m_Com.SetOutput(COleVariant(senddata));//发送数据
realy12=!realy12;
}
void CPG1Dlg::OnRightGo()
{
// TODO: Add your control notification handler code here
CByteArray senddata;
senddata.SetSize(12);
senddata[0]=0x10; //数据发送结束
senddata[1]=0x20; //数据发送结束
senddata[2]=0x30; //数据发送结束
senddata[3]=0x40; //数据发送结束
senddata[4]=0x50; //数据发送结束
senddata[5]=0x60; //数据发送结束
senddata[6]=0x70; //数据发送结束
senddata[7]=0x80; //数据发送结束
senddata[8]=0x90; //数据发送结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -