📄 dlgconfig.cpp
字号:
CString Temp;
m_CtrAim2.GetText(aryListBoxSel[i], Temp);//获得每项的文字保存在Temp
if(Temp.Find("ATS")!=-1)
{
m_CtrSourceA.AddString(Temp);
}
else if(Temp.Find("BTS")!=-1)
{
m_CtrSourceB.AddString(Temp);
}
else if(Temp.Find("CTS")!=-1)
{
m_CtrSourceC.AddString(Temp);
}
else if(Temp.Find("DTS")!=-1)
{
m_CtrSourceD.AddString(Temp);
}
}
for(int j=0; j<nCount;j++)
{
int idSel;
idSel=m_CtrAim2.GetCurSel();
if(idSel>=0)
{
m_CtrAim2.DeleteString((UINT)idSel);
}
}
UpdateData(false);
}
}
void CDlgConfig::OnBtn3left()
{
// TODO: Add your control notification handler code here
CStringArray straSels;
int nCount = m_CtrAim3.GetSelCount();
if(nCount>0)
{
CArray<int,int> aryListBoxSel;
aryListBoxSel.SetSize(nCount);
m_CtrAim3.GetSelItems(nCount,aryListBoxSel.GetData());
for(int i=0; i<nCount;i++)
{
CString Temp;
m_CtrAim3.GetText(aryListBoxSel[i], Temp);//获得每项的文字保存在Temp
if(Temp.Find("ATS")!=-1)
{
m_CtrSourceA.AddString(Temp);
}
else if(Temp.Find("BTS")!=-1)
{
m_CtrSourceB.AddString(Temp);
}
else if(Temp.Find("CTS")!=-1)
{
m_CtrSourceC.AddString(Temp);
}
else if(Temp.Find("DTS")!=-1)
{
m_CtrSourceD.AddString(Temp);
}
}
for(int j=0; j<nCount;j++)
{
int idSel;
idSel=m_CtrAim3.GetCurSel();
if(idSel>=0)
{
m_CtrAim3.DeleteString((UINT)idSel);
}
}
UpdateData(false);
}
}
void CDlgConfig::OnBtn4left()
{
// TODO: Add your control notification handler code here
CStringArray straSels;
int nCount = m_CtrAim4.GetSelCount();
if(nCount>0)
{
CArray<int,int> aryListBoxSel;
aryListBoxSel.SetSize(nCount);
m_CtrAim4.GetSelItems(nCount,aryListBoxSel.GetData());
for(int i=0; i<nCount;i++)
{
CString Temp;
m_CtrAim4.GetText(aryListBoxSel[i], Temp);//获得每项的文字保存在Temp
if(Temp.Find("ATS")!=-1)
{
m_CtrSourceA.AddString(Temp);
}
else if(Temp.Find("BTS")!=-1)
{
m_CtrSourceB.AddString(Temp);
}
else if(Temp.Find("CTS")!=-1)
{
m_CtrSourceC.AddString(Temp);
}
else if(Temp.Find("DTS")!=-1)
{
m_CtrSourceD.AddString(Temp);
}
}
for(int j=0; j<nCount;j++)
{
int idSel;
idSel=m_CtrAim4.GetCurSel();
if(idSel>=0)
{
m_CtrAim4.DeleteString((UINT)idSel);
}
}
UpdateData(false);
}
}
int iPos;
void CDlgConfig::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent) {
case 1:
KillTimer(1);
//if(!CCheckState::strRecive.IsEmpty() &&CCheckState::iState==2 &&CCheckState::iTime==2)
iPos =m_strRXData.Find ("7E 7E");
if(iPos!=-1)
{
CString strAnser;
int istdLen=sizeof("7E 7E 81 01 01 02 00 80 ");
int nLen=m_strRXData.GetLength()-iPos-istdLen;
strAnser=m_strRXData.Right(nLen+1);
strPage+=" ";
/* CStdioFile file;
file.Open("1",CFile::modeCreate|CFile::modeWrite);
file.WriteString(strAnser);
file.WriteString(strPage);
file.Close();
*/
// AfxMessageBox(strAnser+"\n"+strPage);
if(strAnser.Compare(strPage)==0)
{
AfxMessageBox("交叉连接设置成功");
// iState=1;
m_Port.ClosePort();
// CDlgConfig::iState=0;
return;
}
else
{
// strSent.Format("7E 81 %s %s 00 00 00",strGetAim,strGetAim);;//再发一次十六进制查询数据
// iState=2;
// SetTimer(1,1000,NULL);
// UpdateData(false);//取界面的返回结果串;
nLen=m_strRXData.GetLength()-istdLen;
strAnser=m_strRXData.Right(nLen+1);
if(strAnser.Compare(strPage)==0)
{
AfxMessageBox("交叉连接设置成功");
//iState=1;
m_Port.ClosePort();
// CDlgConfig::iState=0;
return;
}
else
{
AfxMessageBox("交叉连接设置未成功");
//iState=1;
m_Port.ClosePort();
// CDlgConfig::iState=0;
return;
}
}
}
else
{
AfxMessageBox("返回的报文结构不正确,请核查");
}
break;
case 2:
if(!CCheckState::strRecive.IsEmpty()&&CCheckState::iState==2)
{
m_strRXData=CCheckState::strRecive;
UpdateData(false);
KillTimer(2);
CDlgConfig::iState=1;
}
break;
case 3:
KillTimer(3);
ReSetAim();
break;
}
CDialog::OnTimer(nIDEvent);
}
void CDlgConfig::ReSetAim()
{
int iPos7e7e=m_strRXData.Find("7E 7E");
if(iPos7e7e<0)
{
return;
}
CString strUporDown;
CString StrRXRight;
int nLRX=m_strRXData.GetLength();
StrRXRight=m_strRXData.Right(nLRX-iPos7e7e-24);
strUporDown=m_strRXData.Mid(nLRX-iPos7e7e-18,2);
if(strUporDown=="00")
{
m_iCmd=0;
UpdateData(false);
}
if(strUporDown=="01")
{
m_iCmd=1;
UpdateData(false);
}
// AfxMessageBox(StrRXRight);
//////////////////////////////////////////////////////////////////////////
int icnAim1=m_CtrSourceA.GetCount();
if(icnAim1>0)
{
for(int i=0;i<icnAim1;i++)
{
m_CtrSourceA.DeleteString(0);
}
}
int icnAim2=m_CtrSourceB.GetCount();
if(icnAim2>0)
{
for(int i=0;i<icnAim2;i++)
{
m_CtrSourceB.DeleteString(0);
}
}
int icnAim3=m_CtrSourceC.GetCount();
if(icnAim3>0)
{
for(int i=0;i<icnAim3;i++)
{
m_CtrSourceC.DeleteString(0);
}
}
int icnAim4=m_CtrSourceD.GetCount();
if(icnAim4>0)
{
for(int i=0;i<icnAim4;i++)
{
m_CtrSourceD.DeleteString(0);
}
}
InitListBox();//删除目的,初始化源
//////////////////////////////向目的中添加数据////////////////////////////////////////////
int iLenPlan =StrRXRight.GetLength();
iLenPlan=iLenPlan/3;
int iIdx=0;
while(iIdx<iLenPlan)
{
CString strGetTs;
strGetTs=StrRXRight.Mid(0,2);
for(int its=0;its<128;its++)
{
CString strTemp;
strTemp=staTsBin.GetAt(its);
CString strTSTemp;
strTSTemp=staTsStr.GetAt(its);
if(strGetTs==strTemp)
{
its=128;
if(iIdx<32)
{
m_CtrAim1.InsertString(iIdx,strTSTemp,RED);
}
else if(iIdx>=32 &&iIdx<64)
{
m_CtrAim2.InsertString(iIdx-32,strTSTemp,RED);
}
else if(iIdx>=64 &&iIdx<96)
{
m_CtrAim3.InsertString(iIdx-64,strTSTemp,RED);
}
else if(iIdx>=96 &&iIdx<128)
{
m_CtrAim4.InsertString(iIdx-96,strTSTemp,RED);
}
strTemp+=" ";
StrRXRight.Replace(strTemp,"");
iIdx++;
///////////////删除目的中的源的值///////////////////////////////////////////////////////////
if(strTSTemp.Find("ATS")!=-1)
{
// int iFindIdx;
CString strGetText;
for(int iDx=0;iDx<m_CtrSourceA.GetCount();iDx++)
{
m_CtrSourceA.GetText(iDx,strGetText);
if(strGetText==strTSTemp)
{
m_CtrSourceA.DeleteString(iDx);
iDx=m_CtrSourceA.GetCount();
}
}
}
else if(strTSTemp.Find("BTS")!=-1)
{
// int iFindIdx;
CString strGetText;
for(int iDx=0;iDx<m_CtrSourceB.GetCount();iDx++)
{
m_CtrSourceB.GetText(iDx,strGetText);
if(strGetText==strTSTemp)
{
m_CtrSourceB.DeleteString(iDx);
iDx=m_CtrSourceB.GetCount();
}
}
}
else if(strTSTemp.Find("CTS")!=-1)
{
// int iFindIdx;
CString strGetText;
for(int iDx=0;iDx<m_CtrSourceC.GetCount();iDx++)
{
m_CtrSourceC.GetText(iDx,strGetText);
if(strGetText==strTSTemp)
{
m_CtrSourceC.DeleteString(iDx);
iDx=m_CtrSourceC.GetCount();
}
}
}
else if(strTSTemp.Find("DTS")!=-1)
{
// int iFindIdx;
CString strGetText;
for(int iDx=0;iDx<m_CtrSourceD.GetCount();iDx++)
{
m_CtrSourceD.GetText(iDx,strGetText);
if(strGetText==strTSTemp)
{
m_CtrSourceD.DeleteString(iDx);
iDx=m_CtrSourceD.GetCount();
}
}
}
strGetTs=StrRXRight.Mid(0,2);
}
}
}
UpdateData(false);
}
void CDlgConfig::OnClose()
{
// TODO: Add your message handler code here and/or call default
//CDlgConfig::iState=0;
if(m_Port.m_hComm!=NULL)
{
m_Port.ClosePort();
CDlgConfig::iState=0;
}
CDlgConfig::iState=0;
CDialog::OnClose();
}
int CDlgConfig::Str2Hex(CString str, char* data)
{
int t,t1;
int rlen=0,len=str.GetLength();
//data.SetSize(len/2);
for(int i=0;i<len;)
{
char l,h=str[i];
if(h==' ')
{
i++;
continue;
}
i++;
if(i>=len)
break;
l=str[i];
t=HexChar(h);
t1=HexChar(l);
if((t==16)||(t1==16))
break;
else
t=t*16+t1;
i++;
data[rlen]=(char)t;
rlen++;
}
return rlen;
}
char CDlgConfig::HexChar(char c)
{
if((c>='0')&&(c<='9'))
return c-0x30;
else if((c>='A')&&(c<='F'))
return c-'A'+10;
else if((c>='a')&&(c<='f'))
return c-'a'+10;
else
return 0x10;
}
LONG CDlgConfig::OnCommunication(WPARAM ch,LPARAM port)
{
if (port <= 0 || port > 4)
return -1;
CString str;
str.Format("%02X ",ch);
m_strRXData+=str;
UpdateData(false);
return 0;
}
void CDlgConfig::OnButtonClearReciArea()
{
// TODO: Add your control notification handler code here
m_strRXData.Empty();
UpdateData(FALSE);
}
void CDlgConfig::OnButtonOpenport(UINT uiCom)
{
// TODO: Add your control notification handler code here
/* ////////////////////////读串口信息//////////////////////////////////////////////////
CDlgAllStaSet dlgalstaset;
CString strPath;
char Get[255];
dlgalstaset.GetModulePath(strPath,NULL);
strPath+="config.ini";
GetPrivateProfileString("General","COM","1",Get,255,strPath);
UINT uiCom=(UINT)atoi(Get);
//////////////////////////////////////////////////////////////////////////
CString strStatus; */
if (m_Port.InitPort(this, uiCom, 2400,'o',8,1,EV_RXFLAG | EV_RXCHAR,2048))
{
m_Port.StartMonitoring();
}
else
{
AfxMessageBox("没有发现此串口或被占用");
}
}
void CDlgConfig::GetLogPath()
{
SYSTEMTIME mySystemTime;
GetLocalTime(&mySystemTime);
CString filetime;
strCurTime.Format("%d:%d:%d",mySystemTime.wHour,mySystemTime.wMinute,mySystemTime.wSecond);
// filetime.Format ("%d-%d-%d %s%d %d:%d:%d",mySystemTime.wYear,mySystemTime.wMonth,mySystemTime.wDay,"星期",mySystemTime.wDayOfWeek,mySystemTime.wHour,mySystemTime.wMinute,mySystemTime.wSecond);
filetime.Format("%d-%d-%d.ini",mySystemTime.wYear,mySystemTime.wMonth,mySystemTime.wDay);
CDlgAllStaSet dlgalstaset;
dlgalstaset.GetModulePath(strLogPath,NULL);
strLogPath=strLogPath+"log\\"+filetime;
}
void CDlgConfig::OnDblclkListAim1()
{
// TODO: Add your control notification handler code here
m_CtrAim1.SetSel(-1,false);
nSel1=-1;
}
void CDlgConfig::OnSelchangeListAim1()
{
// TODO: Add your control notification handler code here
CDlgConfig::nSel1=0;
}
void CDlgConfig::OnSelchangeListAim2()
{
// TODO: Add your control notification handler code here
CDlgConfig::nSel2=0;
}
void CDlgConfig::OnSelchangeListAim3()
{
// TODO: Add your control notification handler code here
CDlgConfig::nSel3=0;
}
void CDlgConfig::OnSelchangeListAim4()
{
// TODO: Add your control notification handler code here
CDlgConfig::nSel4=0;
}
void CDlgConfig::OnDblclkListAim2()
{
// TODO: Add your control notification handler code here
m_CtrAim2.SetSel(-1,false);
CDlgConfig::nSel2=-1;
}
void CDlgConfig::OnDblclkListAim3()
{
// TODO: Add your control notification handler code here
m_CtrAim3.SetSel(-1,false);
CDlgConfig::nSel3=-1;
}
void CDlgConfig::OnDblclkListAim4()
{
// TODO: Add your control notification handler code here
m_CtrAim4.SetSel(-1,false);
CDlgConfig::nSel4=-1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -