📄 dxmangerview.cpp
字号:
// CString t;
// t.Format("%d",relaynumber);
// AfxMessageBox(relay8address);
}
void CDxMangerView::SaveIni()
{
CString temp;
//////////////////////////////取当前应用程序路径//////////
TCHAR apppath[MAX_PATH];
TCHAR sdrive[_MAX_DRIVE];
TCHAR sdir[_MAX_DIR];
TCHAR sext[_MAX_EXT];
TCHAR sname[MAX_PATH];
::GetModuleFileName(NULL,apppath,MAX_PATH);
::_tsplitpath(apppath,sdrive,sdir,sname,sext);
CString inifilename;
inifilename=CString(sdrive)+CString(sdir)+CString(sname)+".INI";
//AfxMessageBox(inifilename);// to debug
///////////////////////////////////////////////////////////
/////////////////////////////////
//CFileDialog dlg(FALSE,"INI",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"默认文件类型(*.ini)|*.ini|所有文件类型|*.*|",NULL);
// if(dlg.DoModal()==IDOK)
// {
// inifilename=dlg.GetPathName();
// }
//////////////////////////////
UpdateData(TRUE);
// temp.Format("%06d",000000);
CString temp1;
// "2400,e,8,1"
temp1.Format("%d",relaynumber);
temp.Format("%d",relayfalg);
WritePrivateProfileString("DB305","biaohao", m_targetaddress,inifilename);
WritePrivateProfileString("DB305","com", cominfo,inifilename);
WritePrivateProfileString("DB305","relayf", temp,inifilename);
WritePrivateProfileString("DB305","relayn", temp1,inifilename);
WritePrivateProfileString("DB305","relay1", relay1address,inifilename);
WritePrivateProfileString("DB305","relay2", relay2address,inifilename);
WritePrivateProfileString("DB305","relay3", relay3address,inifilename);
WritePrivateProfileString("DB305","relay4", relay4address,inifilename);
WritePrivateProfileString("DB305","relay5", relay5address,inifilename);
WritePrivateProfileString("DB305","relay6", relay6address,inifilename);
WritePrivateProfileString("DB305","relay7", relay7address,inifilename);
WritePrivateProfileString("DB305","relay8", relay8address,inifilename);
}
void CDxMangerView::initcomm(int commer)
{
CString COMSetings;
COMSetings="2400,e,8,1";
// AfxMessageBox(cominfo);
if(m_comm.GetPortOpen())m_comm.SetPortOpen(FALSE);
m_comm.SetCommPort(com);//设置端口
m_comm.SetSettings(cominfo);//设置波特率等参数
m_comm.SetRThreshold(1);// 触发接收事件
m_comm.SetSThreshold(0);//不触发发送事件
m_comm.SetInputLen(1);//每次读取一个字符
m_comm.SetInputMode(1);//设置输入为二进制方式
if(!m_comm.GetPortOpen())m_comm.SetPortOpen(TRUE);//打开
SaveIni();
}
void CDxMangerView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CFormView::OnTimer(nIDEvent);
if(nIDEvent==2) //即添加定时时间到的处理操作
{
// AfxMessageBox("timer2!");
UpdateData(TRUE);
if(m_chk_cur)
{
CDateTimeCtrl *htimectr;
htimectr=(CDateTimeCtrl *)this->GetDlgItem(IDC_DATETIMEPICKER1);
htimectr->SetTime(COleDateTime::GetCurrentTime());
htimectr=(CDateTimeCtrl *)this->GetDlgItem(IDC_DATETIMEPICKER3);
htimectr->SetTime(COleDateTime::GetCurrentTime());
}
//处理操作
}
if(nIDEvent==3)
{
SaveIni();
}
}
void CDxMangerView::OnSetrelay()
{
// TODO: Add your command handler code here
relay dlg;
dlg.m_needrelay=relayfalg;
dlg.m_relaynumber=relaynumber;
{
dlg.m_relay1=relay1address;
dlg.m_relay2=relay2address;
dlg.m_relay3=relay3address;
dlg.m_relay4=relay4address;
dlg.m_relay5=relay5address;
dlg.m_relay6=relay6address;
dlg.m_relay7=relay7address;
dlg.m_relay8=relay8address;
}
dlg.DoModal();
if(dlg.m_needrelay)
{
dlg.m_needrelay=TRUE;
relayfalg=1;
relaynumber=dlg.m_relaynumber;
relay1address=dlg.m_relay1;
relay2address=dlg.m_relay2;
relay3address=dlg.m_relay3;
relay4address=dlg.m_relay4;
relay5address=dlg.m_relay5;
relay6address=dlg.m_relay6;
relay7address=dlg.m_relay7;
relay8address=dlg.m_relay8;
}
else
{
relayfalg=0;
relaynumber=1;
}
//AfxMessageBox(relay8address);
}
void CDxMangerView::OnSelectall()
{
// TODO: Add your control notification handler code here
m_chk_energy = TRUE;
m_chk_sevenday = TRUE;
m_chk_address = TRUE;
m_chk_const = TRUE;
m_chk_date = TRUE;
m_chk_protol = TRUE;
m_chk_relay = TRUE;
m_chk_time = TRUE;
for(unsigned char i=0;i<4;i++)
m_listmonth.SetCheck(i,TRUE);
UpdateData(FALSE);
}
void CDxMangerView::OnCancelall()
{
// TODO: Add your control notification handler code here
m_chk_energy = FALSE;
m_chk_sevenday = FALSE;
m_chk_address = FALSE;
m_chk_const = FALSE;
m_chk_date = FALSE;
m_chk_protol = FALSE;
m_chk_relay = FALSE;
m_chk_time = FALSE;
m_chk_eight=FALSE;
m_chk_twofour=FALSE;
m_chk_block1=FALSE;
m_chk_block2=FALSE;
for(unsigned char i=0;i<4;i++)
m_listmonth.SetCheck(i,FALSE);
for(i=0;i<16;i++)
m_listhour.SetCheck(i,FALSE);
UpdateData(FALSE);
}
void CDxMangerView::OnClean()
{
// TODO: Add your control notification handler code here
m_edit_address.Empty();
m_edit_const.Empty();
m_edit_date.Empty();
m_edit_relay.Empty();
m_edit_protol.Empty();
m_edit_time.Empty();
m_status_count=0;
m_prograss_status.SetPos(0);
m_lst_readstatus.DeleteAllItems();
int i,low=0;
for(low=0;low<4;low++)
{
for(i=1;i<=4;i++)
m_listmonth.SetItemText(low, i,"");
}
///////////////////////////////
for(low=0;low<8;low++)
{
for(i=1;i<=2;i++)
m_listday.SetItemText(low, i,"");
}
for(low=0;low<16;low++)
{
for(i=1;i<=10;i++)
m_listhour.SetItemText(low, i,"");
}
UpdateData(FALSE);
}
void CDxMangerView::OnChkTwofour()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_chk_twofour)
{ for(unsigned char i=0;i<8;i++)
m_listhour.SetCheck(i,TRUE);}
else
{
for(unsigned char i=0;i<8;i++)
m_listhour.SetCheck(i,FALSE);
}
UpdateData(FALSE);
}
void CDxMangerView::OnChkFoureighy()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_chk_eight)
{ for(unsigned char i=8;i<16;i++)
m_listhour.SetCheck(i,TRUE);}
else
{
for(unsigned char i=8;i<16;i++)
m_listhour.SetCheck(i,FALSE);
}
UpdateData(FALSE);
}
void CDxMangerView::OnCollect()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CEdit *hedit;
m_prograss_status.SetRange(0,200);
unsigned char i=0,j=0;
m_ongoing="采集...";
//{
if(m_chk_address)
{
SendData(m_targetaddress, 1, "32c0");
if(Receive645Data())
AddReadStatusItem("read address","finsihed");
else
{
SendData(m_targetaddress, 1, "32c0");
if(Receive645Data())
AddReadStatusItem("read address","finsihed");
else
{
AddReadStatusItem("read address","failed");
m_edit_address.Empty();
}
}
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_ADDRESS);
hedit->RedrawWindow();
m_prograss_status.SetPos(1);
Sleep(100);
j++;
}
else
{
m_edit_address.Empty();
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_ADDRESS);
hedit->RedrawWindow();
}
if(m_chk_date)
{
SendData(m_targetaddress, 1, "10c0");
if(Receive645Data())
AddReadStatusItem("read date","finsihed");
else
{
SendData(m_targetaddress, 1, "10c0");
if(Receive645Data())
AddReadStatusItem("read date","finsihed");
else
{
AddReadStatusItem("read date","failed");
m_edit_date.Empty();
}
}
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_DATE);
hedit->RedrawWindow();
m_prograss_status.SetPos(2);
Sleep(100);
j++;
}
else
{
m_edit_date.Empty();
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_DATE);
hedit->RedrawWindow();
}
if(m_chk_time)
{
SendData(m_targetaddress, 1, "11c0");
if(Receive645Data())
AddReadStatusItem("read time","finsihed");
else
{
SendData(m_targetaddress, 1, "11c0");
if(Receive645Data())
AddReadStatusItem("read time","finsihed");
else
{
AddReadStatusItem("read time","failed");
m_edit_time.Empty();
}
}
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_TIME);
hedit->RedrawWindow();
m_prograss_status.SetPos(3);
Sleep(100);
j++;
}
else
{
m_edit_time.Empty();
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_TIME);
hedit->RedrawWindow();
}
if(m_chk_const)
{
SendData(m_targetaddress, 1, "30c0");
if(Receive645Data())
AddReadStatusItem("read const","finsihed");
else
{
SendData(m_targetaddress, 1, "30c0");
if(Receive645Data())
AddReadStatusItem("read const","finsihed");
else
{
AddReadStatusItem("read const","failed");
m_edit_const.Empty();
}
}
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_CONST);
hedit->RedrawWindow();
m_prograss_status.SetPos(4);
Sleep(100);
j++;
}
else
{
m_edit_const.Empty();
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_CONST);
hedit->RedrawWindow();
}
if(m_chk_relay)
{
SendData(m_targetaddress, 1, "29c0");
if(Receive645Data())
AddReadStatusItem("read relay","finsihed");
else
{
SendData(m_targetaddress, 1, "29c0");
if(Receive645Data())
AddReadStatusItem("read relay","finsihed");
else
{
AddReadStatusItem("read relay","failed");
m_edit_relay.Empty();
}
}
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_RELAY);
hedit->RedrawWindow();
m_prograss_status.SetPos(5);
Sleep(100);
j++;
}
else
{
m_edit_relay.Empty();
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_RELAY);
hedit->RedrawWindow();
}
if(m_chk_protol)
{
SendData(m_targetaddress, 1, "a28e");
if(Receive645Data())
AddReadStatusItem("read protol","finsihed");
else
{
SendData(m_targetaddress, 1, "a28e");
if(Receive645Data())
AddReadStatusItem("read protol","finsihed");
else
{
AddReadStatusItem("read protol","failed");
m_edit_protol.Empty();
}
}
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_PROTOL);
hedit->RedrawWindow();
m_prograss_status.SetPos(6);
Sleep(100);
j++;
}
else
{
m_edit_protol.Empty();
UpdateData(FALSE);
hedit=(CEdit *)this->GetDlgItem(IDC_EDIT_PROTOL);
hedit->RedrawWindow();
}
if(m_listmonth.GetCheck(0))
{
SendData(m_targetaddress, 1, "1090");
if(Receive645Data())
AddReadStatusItem("read current energy","finsihed");
else
{
SendData(m_targetaddress, 1, "1090");
if(Receive645Data())
AddReadStatusItem("read current energy","finsihed");
else
AddReadStatusItem("read current energy","failed");
}
m_prograss_status.SetPos(7);
Sleep(100);
j++;
}
if(m_listmonth.GetCheck(1))
{
SendData(m_targetaddress, 1, "1094");
if(Receive645Data())
AddReadStatusItem("read last 1 energy","finsihed");
else
{
SendData(m_targetaddress, 1, "1094");
if(Receive645Data())
AddReadStatusItem("read last 1 energy","finsihed");
else
AddReadStatusItem("read last 1 energy","failed");
}
m_prograss_status.SetPos(8);
Sleep(100);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -