commwizarddlg.cpp
字号:
//清除接收缓冲区准备接收应答信息
for(i=0;i<512;i++)
{
byTemp[i] = 0xAA;//
}
///////
st.Format("%s",strTp);
if(!m_bSerialSet)
SendCmd(st);//发送命令
else
{
m_bSerSendFlag = 1;//置位发送命令,开始发送
//AfxMessageBox(st);
AfxBeginThread(Serial_WriteThead,&SocketPr);//
}
/*
CString ssy,sk=_T("");
for(i=0;i<99;i++)
{
ssy.Format("%02x ",SendSerData[i]);
sk=sk+ssy;
}
AfxMessageBox(sk);
*/
//进度指示
m_ctPsupdown.SetRange(1,40);
m_ctPsupdown.SetPos(count_d + 1);
#endif
}
void CCommWizardDlg::SendCmd(CString cmd)
{
CString strSend;
if(m_nInputMode > 1)
{
CByteArray hexdata;
int len=String2Hex(cmd ,hexdata);
m_Com.SetOutput(COleVariant(hexdata));
}
else
m_Com.SetOutput(COleVariant(cmd));//发送数据
}
//通道选择
void CCommWizardDlg::OnSelchangeChannelsel()
{
CString str;
m_nChannelNum = m_ctrlChannelSel.GetCurSel();
str.Format("%d",m_nChannelNum);
::WritePrivateProfileString("AIR_CHANNEL","CHANNEL_NUM", str, ".\\irda.ini");
}
void CCommWizardDlg::OnCheckDownen()
{
UpdateData(true);
if(m_bDownOneEn)
{
GetDlgItem(IDC_DATADOWN)->EnableWindow(true);
}
else
{
GetDlgItem(IDC_DATADOWN)->EnableWindow(false);
}
}
//开始查徇
void CCommWizardDlg::OnStartlook()
{
bLook = !bLook;
if(bLook)
{
m_ctrStartLook.SetWindowText(_T("停止查徇"));
SetTimer(4,1000,NULL);//时间为1000毫秒
//SetTimer(6,100,NULL);
}
else
{
m_ctrStartLook.SetWindowText(_T("循环查徇"));
KillTimer(4); //取消定时
//KillTimer(6); //取消定时
//timers = 0;
}
//StartLook();
}
//查徇
void CCommWizardDlg::StartLook()
{
CString strcmd,stAA,str,strDown,strTp,st,stx;
unsigned int CRC = 0;
unsigned int nCRC=0;
unsigned char CRCL = 0;
unsigned char CRCH = 0;
char hexdata[512];
short H1,H2,L1,L2;
float D1,D2,U1,U2;
//unsigned char relen;
//unsigned char tm;
int i,j,k=0;
int nx,ny,nz;
strTp.Empty();
strcmd.Empty();
stAA.Empty();
str.Empty();
strDown.Empty();
st.Empty();
stx.Empty();
for(i=0;i<512;i++)
{
hexdata[i] = 0x00;
byTemp[i] = 0X00;
}
for(i=0;i<150;i++)
{
SendSerData[i] = 0;
}
switch(m_ctrHisChannel.GetCurSel())
{
case 0:
nx = 1;
ny = 1;
break;
case 1:
nx = 2;
ny = 2;
break;
case 2:
nx = 4;
ny = 3;
break;
case 3:
nx = 8;
ny = 4;
break;
default:
break;
}
switch(m_ctrDataType.GetCurSel())
{
case 0:
nz = 0x00;
break;
case 1:
nz = 0x02;
break;
case 2:
nz = 0x03;
break;
case 3:
nz = 0x08;//设置参数
break;
case 4:
nz = 0x09;////查询告警参数
break;
default:
break;
}
hexdata[0] = 0x7e;
hexdata[1] = 0x7e;
hexdata[2] = atoi(m_sAirModelAddr);//0x01;//空调模块地址
hexdata[3] = 0x00;//PC机地址
nx = nx<<4;
hexdata[4] = (unsigned char)nx;//通道号
hexdata[5] = 0x01;
hexdata[6] = nz; //0x02;//查徇命令
if(nz == 0x08)
{
UpdateData(true);
hexdata[5] = 0x11;
hexdata[7] = atoi(m_sMAUp) >>8;
hexdata[8] = atoi(m_sMAUp) & 0x00ff;
hexdata[9] = atoi(m_sMADown) >> 8;
hexdata[10] = atoi(m_sMADown) & 0x00ff;
hexdata[11] = atoi(m_sMBUp) >> 8;
hexdata[12] = atoi(m_sMBUp) & 0x00ff;
hexdata[13] = atoi(m_sMBDown) >> 8;
hexdata[14] = atoi(m_sMBDown) & 0x00ff;
hexdata[15] = atoi(m_sAlarmAUp) >> 8;
hexdata[16] = atoi(m_sAlarmAUp) & 0x00ff;
hexdata[17] = atoi(m_sAlarmBUp) >> 8;
hexdata[18] = atoi(m_sAlarmBUp) & 0x00ff;
hexdata[19] = atoi(m_sAlarmADown) >> 8;
hexdata[20] = atoi(m_sAlarmADown) & 0x00ff;
hexdata[21] = atoi(m_sAlarmBDown) >> 8;
hexdata[22] = atoi(m_sAlarmBDown) & 0x00ff;
//告警
::WritePrivateProfileString("ALARM_A_UP","A_UP", m_sAlarmAUp, ".\\irda.ini");
::WritePrivateProfileString("ALARM_A_DOWN","A_DOWN", m_sAlarmADown, ".\\irda.ini");
::WritePrivateProfileString("ALARM_B_UP","B_UP", m_sAlarmBUp, ".\\irda.ini");
::WritePrivateProfileString("ALARM_B_DOWN","B_DOWN", m_sAlarmBDown, ".\\irda.ini");
//测量
::WritePrivateProfileString("ME_A_UP","A_UP", m_sMAUp, ".\\irda.ini");
::WritePrivateProfileString("ME_A_DOWN","A_DOWN", m_sMADown, ".\\irda.ini");
::WritePrivateProfileString("ME_B_UP","B_UP", m_sMBUp, ".\\irda.ini");
::WritePrivateProfileString("ME_B_DOWN","B_DOWN", m_sMBDown, ".\\irda.ini");
for(int i = 2;i<23;i++)
{
nCRC = nCRC + (unsigned char)hexdata[i];
}
}
if(nz == 0x09)
{
UpdateData(true);
// U2 = m_nBu = atoi(m_sMBUp);
// D2 = m_nBd = atoi(m_sMBDown);
// U1 = m_nAu = atoi(m_sMAUp);
// D1 = m_nAd = atoi(m_sMADown);
H2 = atoi(m_sMBUp);
L2 = atoi(m_sMBDown);
H1 = atoi(m_sMAUp);
L1 = atoi(m_sMADown);
D1 = (48*H1+202*L1)/250;
U1 = (24*H1+L1)/25;
D2 = (48*H2+202*L2)/250;
U2 = (24*H2+L2)/25;
m_nBu =U2 ;
m_nBd =D2 ;
m_nAu =U1 ;
m_nAd =D1 ;
UpdateData(false);
}
if(nz == 0x00 || nz == 0x02 ||nz == 0x03 || nz == 0x09)
{
nCRC = (unsigned char)hexdata[2] + (unsigned char)hexdata[3] + (unsigned char)hexdata[4] + (unsigned char)hexdata[5] + (unsigned char)hexdata[6];
}
CRCL = nCRC&0x00ff;
CRC = nCRC >> 8;
CRCH = CRC&0x00ff;
if(nz == 0x08)
{
for(j=0;j<23;j++)
{
strDown.Format("%02x ",(unsigned char)hexdata[j]);
strTp = strTp + strDown;
strDown= _T("");
SendSerData[j+1] = (unsigned char)hexdata[j]; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
}
}
else
{
for(j=0;j<7;j++)
{
strDown.Format("%02x ",(unsigned char)hexdata[j]);
strTp = strTp + strDown;
strDown= _T("");
SendSerData[j+1] =( unsigned char)hexdata[j]; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
}
}
//校验
strDown.Format("%02x ",CRCH);
strTp = strTp + strDown;
SendSerData[SendSerData[0] + 1] =CRCH; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
if(strDown == _T("7e "))
{
strTp = strTp + _T("81 ");
SendSerData[SendSerData[0] + 1] = 0x81; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
}
strDown= _T("");
strDown.Format("%02x ",CRCL);
strTp = strTp + strDown;
SendSerData[SendSerData[0] + 1] =CRCL; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
if(strDown == _T("7e "))
{
strTp = strTp + _T("81 ");
SendSerData[SendSerData[0] + 1] = 0x81; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
}
strDown= _T("");
//贞尾 7e 7e
strDown.Format("%02x ",(unsigned char)hexdata[0]);
strTp = strTp + strDown;
strDown= _T("");
SendSerData[SendSerData[0] + 1] = (unsigned char)hexdata[0]; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
strDown.Format("%02x ",(unsigned char)hexdata[0]);
strTp = strTp + strDown;
strDown= _T("");
SendSerData[SendSerData[0] + 1] = (unsigned char)hexdata[0]; //格式化网络数据命令 2008.06.23 ZQL
SendSerData[0] ++;
st.Format("%s",strTp);
if(!m_bSerialSet)
SendCmd(st);//发送命令
else
{
m_bSerSendFlag = 1; //置位发送命令标志
AfxBeginThread(Serial_WriteThead,&SocketPr);//
}
//CString ss;
//ss.Format("%d",SendSerData[0]);
//AfxMessageBox(ss);
SetTimer(5,350,NULL);
timers = 0;
}
void CCommWizardDlg::OnSelchangeHischannel()
{
CString str;
str.Format("%d",m_ctrHisChannel.GetCurSel());
::WritePrivateProfileString("AIR_LOOK_CHANNEL","CH_NUM", str, ".\\irda.ini");
}
void CCommWizardDlg::OnSelchangeHistorydata()
{
CString str;
str.Format("%d",m_ctrDataType.GetCurSel());
::WritePrivateProfileString("AIR_LOOK_CHANNEL","DATATYPE", str, ".\\irda.ini");
switch(m_ctrDataType.GetCurSel())
{
case 0:
{
GetDlgItem(IDC_SET_ALARM_AUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_ADOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_BUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_BDOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_AUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_ADOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_BUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_BDOWN)->ShowWindow(false);
GetDlgItem(IDC_STATIC1)->ShowWindow(true);
GetDlgItem(IDC_STATIC2)->ShowWindow(true);
GetDlgItem(IDC_STATIC3)->ShowWindow(true);
GetDlgItem(IDC_STATIC4)->ShowWindow(true);
GetDlgItem(IDC_STATIC5)->ShowWindow(true);
GetDlgItem(IDC_STATIC6)->ShowWindow(true);
GetDlgItem(IDC_STATIC7)->ShowWindow(true);
GetDlgItem(IDC_STATIC8)->ShowWindow(true);
GetDlgItem(IDC_STATIC9)->ShowWindow(true);
GetDlgItem(IDC_STATIC10)->ShowWindow(true);
//GetDlgItem(IDC_STATIC11)->ShowWindow(true);
}
break;
case 1:
{
GetDlgItem(IDC_SET_ALARM_AUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_ADOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_BUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_BDOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_AUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_ADOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_BUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_BDOWN)->ShowWindow(false);
GetDlgItem(IDC_STATIC1)->ShowWindow(true);
GetDlgItem(IDC_STATIC2)->ShowWindow(true);
GetDlgItem(IDC_STATIC3)->ShowWindow(true);
GetDlgItem(IDC_STATIC4)->ShowWindow(true);
GetDlgItem(IDC_STATIC5)->ShowWindow(true);
GetDlgItem(IDC_STATIC6)->ShowWindow(true);
GetDlgItem(IDC_STATIC7)->ShowWindow(true);
GetDlgItem(IDC_STATIC8)->ShowWindow(true);
GetDlgItem(IDC_STATIC9)->ShowWindow(true);
GetDlgItem(IDC_STATIC10)->ShowWindow(true);
//GetDlgItem(IDC_STATIC11)->ShowWindow(true);
}
break;
case 2:
{
GetDlgItem(IDC_SET_ALARM_AUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_ADOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_BUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ALARM_BDOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_AUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_ADOWN)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_BUP)->ShowWindow(false);
GetDlgItem(IDC_SET_ME_BDOWN)->ShowWindow(false);
GetDlgItem(IDC_STATIC1)->ShowWindow(true);
GetDlgItem(IDC_STATIC2)->ShowWindow(true);
GetDlgItem(IDC_STATIC3)->ShowWindow(true);
GetDlgItem(IDC_STATIC4)->ShowWindow(true);
GetDlgItem(IDC_STATIC5)->ShowWindow(true);
GetDlgItem(IDC_STATIC6)->ShowWindow(true);
GetDlgItem(IDC_STATIC7)->ShowWindow(true);
GetDlgItem(IDC_STATIC8)->ShowWindow(true);
GetDlgItem(IDC_STATIC9)->ShowWindow(true);
GetDlgItem(IDC_STATIC10)->ShowWindow(true);
//GetDlgItem(IDC_STATIC11)->ShowWindow(true);
}
break;
case 3:
{
GetDlgItem(IDC_SET_ALARM_AUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ALARM_ADOWN)->ShowWindow(true);
GetDlgItem(IDC_SET_ALARM_BUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ALARM_BDOWN)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_AUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_ADOWN)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_BUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_BDOWN)->ShowWindow(true);
GetDlgItem(IDC_STATIC1)->ShowWindow(true);
GetDlgItem(IDC_STATIC2)->ShowWindow(true);
GetDlgItem(IDC_STATIC3)->ShowWindow(true);
GetDlgItem(IDC_STATIC4)->ShowWindow(true);
GetDlgItem(IDC_STATIC5)->ShowWindow(true);
GetDlgItem(IDC_STATIC6)->ShowWindow(true);
GetDlgItem(IDC_STATIC7)->ShowWindow(true);
GetDlgItem(IDC_STATIC8)->ShowWindow(true);
GetDlgItem(IDC_STATIC9)->ShowWindow(true);
GetDlgItem(IDC_STATIC10)->ShowWindow(true);
//GetDlgItem(IDC_STATIC11)->ShowWindow(false);
}
break;
case 4:
{
GetDlgItem(IDC_SET_ALARM_AUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ALARM_ADOWN)->ShowWindow(true);
GetDlgItem(IDC_SET_ALARM_BUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ALARM_BDOWN)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_AUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_ADOWN)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_BUP)->ShowWindow(true);
GetDlgItem(IDC_SET_ME_BDOWN)->ShowWindow(true);
GetDlgItem(IDC_STATIC1)->ShowWindow(true);
GetDlgItem(IDC_STATIC2)->ShowWindow(true);
GetDlgItem(IDC_STATIC3)->ShowWindow(true);
GetDlgItem(IDC_STATIC4)->ShowWindow(true);
GetDlgItem(IDC_STATIC5)->ShowWindow(true);
GetDlgItem(IDC_STATIC6)->ShowWindow(true);
GetDlgItem(IDC_STATIC7)->ShowWindow(true);
GetDlgItem(IDC_STATIC8)->ShowWindow(true);
GetDlgItem(IDC_STATIC9)->ShowWindow(true);
GetDlgItem(IDC_STATIC10)->ShowWindow(true);
//GetDlgItem(IDC_STATIC11)->ShowWindow(false);
}
break;
}
}
void CCommWizardDlg::OnStartlookSig()
{
StartLook();
}
HBRUSH CCommWizardDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch(nCtlColor)
{
case CTLCOLOR_EDIT:// IDC_EDIT_RECEIVE:
{
pDC->SetBkMode(TRANSPARENT);
static HBRUSH B = ::CreateSolidBrush(RGB(136,191,255));
return (HBRUSH) B;
}
break;
case CTLCOLOR_STATIC:// IDC_EDIT_RECEIVE:
{
pDC->SetBkMode(TRANSPARENT);
HBRUSH B = CreateSolidBrush(RGB(210,213,132));
return (HBRUSH) B;
}
break;
default:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -