📄 testdlg.cpp
字号:
}
sTmp=sRecord.Left(m);
SSBINFO.RexINFO[n].nBtsRex=atoi(sTmp);
sRecord=sRecord.Right(sRecord.GetLength()-m-1);
}
SSBINFOContainer.insert(SSBINFO_MAP::value_type("",SSBINFO));
return 0;
}
int CTestDlg::WriteConnent(STRUCT_MSG_DELIVER* pDeliver,CString sCmd)
{
int n;
BYTE nCount=0;
CString szTmp;
szTmp.Format("%s0000000000",sCmd);
memcpy(pDeliver->szMsgConnent,szTmp,12); //$+CMDID,USERID,PSW
nCount+=12;
szTmp.Format("%03d%02d%02d",INFOPointer->second.nMCC,
INFOPointer->second.nMNC,
INFOPointer->second.nTa);
memcpy(pDeliver->szMsgConnent+nCount,szTmp,7);
nCount+=7;
for (n=0;n<BTSBASE; n++)
{
if (INFOPointer->second.RexINFO[n].nBtsRex<=0 ||
INFOPointer->second.RexINFO[n].nBtsRex>63)
break;
szTmp.Format("%04X%04X%03d%02d",INFOPointer->second.RexINFO[n].tBss.lLocId,
INFOPointer->second.RexINFO[n].tBss.lCellId,
INFOPointer->second.RexINFO[n].tBss.lBsicId,
INFOPointer->second.RexINFO[n].nBtsRex);
memcpy(pDeliver->szMsgConnent+nCount,szTmp,13);
nCount+=13;
}
//校验和
pDeliver->szMsgConnent[nCount]='$';
for(n=1; n<nCount; n++)
pDeliver->szMsgConnent[nCount] ^= pDeliver->szMsgConnent[n];
nCount++;
pDeliver->nMsgLen=nCount;
if (INFOPointer++==SSBINFOContainer.end())
SSBINFOContainer.begin();
return 0;
}
int CTestDlg::HexString(char* szSourceConnent,int nLength,CString& szConnect)
{
CString szTmp;
szConnect="";
for (int n=0; n<nLength; n++)
{
szTmp.Format("%02X",szSourceConnent[n]);
szConnect+=szTmp;
}
return 0;
}
void CTestDlg::ReadRegister()
{
/*HKEY hKey;
DWORD dwDisposition;
unsigned char ucTemp[30];
unsigned long nType,nLen;
char chTemp[30];
DWORD dwType,dwLen;
DWORD dwTemp;
dwLen=sizeof(dwTemp);
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\CTK\\SSBTest",
0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,
NULL,&hKey,&dwDisposition);
nLen=sizeof(m_IP_ADDR);
if (RegQueryValueEx(hKey,"IPAddress",NULL,&nType,ucTemp,&nLen)!=ERROR_SUCCESS)
{
strcpy(chTemp,"192.168.0.180");
RegSetValueEx(hKey,"IPAddress",0,REG_SZ,(unsigned char*)chTemp,strlen(chTemp));
strcpy(m_IP_ADDR,chTemp);
}
else
strcpy(m_IP_ADDR,(char *)ucTemp);
strcpy(chTemp,"192.168.0.180");
strcpy(m_IP_ADDR,chTemp);
if (RegQueryValueEx(hKey,"IpPort",NULL,&dwType,(LPBYTE)&dwTemp,&dwLen)!=ERROR_SUCCESS)
{
dwTemp=8888;
RegSetValueEx(hKey,"IpPort",0,REG_DWORD,(BYTE*)&dwTemp,dwLen);
m_PORT=8888;
}
else
m_PORT=dwTemp;)*/
m_PORT=GetPrivateProfileInt("SYSINFO","SMCPORT",8888,INIFILE);
GetPrivateProfileString("SYSINFO","SERVERIP ","127.0.0.1",m_IP_ADDR,sizeof(m_IP_ADDR),INIFILE);
}
CString CTestDlg::TimeToStr(CTime tNow)
{
CString sNow;
sNow.Format("%4d-%02d-%02d %02d:%02d:%02d",
tNow.GetYear(),tNow.GetMonth(),tNow.GetDay(),
tNow.GetHour(),tNow.GetMinute(),tNow.GetSecond());
return sNow;
}
void CTestDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch (nIDEvent)
{
case 1:
// m_wndStatusBar.SetPaneText(1,"状态:"+m_state,TRUE);
// m_wndStatusBar.SetPaneText(2,"时间:"+TimeToStr(CTime::GetCurrentTime()),TRUE);
/*
char buffer[20];
memset(buffer,0,sizeof(buffer));
_itoa(command_count_send, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(0,"指令发送数:"+m_state,TRUE);
_itoa(command_count_rec, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(1,"指令接收数:"+m_state,TRUE);
_itoa(lt_count_send, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(2,"聊天发送数:"+m_state,TRUE);
_itoa(lt_count_rec, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(3,"聊天接收数:"+m_state,TRUE);
*/
break;
}
CDialog::OnTimer(nIDEvent);
}
void CTestDlg::OnSend()
{
BOOL bLogin = FALSE;
UpdateData();
//校验
if(m_SimNo.IsEmpty() || (m_SimNo.GetLength()!=11))
{
AfxMessageBox("用户手机号输入有误!");
return;
}
for(int k=0 ; k<g_arrstrPhone.GetSize() ; k++)
if(g_arrstrPhone.GetAt(k) == m_SimNo) bLogin = TRUE;
if(!bLogin)
{
AfxMessageBox("请先登录!");
return;
}
if(m_csDesNum.IsEmpty())
{
AfxMessageBox("目的ID输入有误!");
return;
}
if(m_nAmount<1 || m_nAmount>100)
{
AfxMessageBox("数量在1--100之间,请重新输入!");
return;
}
if(CountMixStrLen(m_Msg.GetBuffer(m_Msg.GetLength())) <= 0)
{
AfxMessageBox("发送信息内容为空,请重新编辑!");
return;
}
if(CountMixStrLen(m_Msg.GetBuffer(m_Msg.GetLength()))>70)
{
AfxMessageBox("发送信息内容超长,应小于70字,请重新编辑!");
return;
}
for(int i=0 ; i<m_nAmount ; i++)
{
STRUCT_MSG_DELIVER sDelivery;
sDelivery.sHeader.dwCommandId = DEV_DELIVER;
sDelivery.sHeader.dwSeqNo = m_dwSequenceID++;
sDelivery.nMsgLen = m_Msg.GetLength();
memcpy(sDelivery.szSimNumber,m_SimNo.GetBuffer(21),21);
memcpy(sDelivery.szDesNum,m_csDesNum.GetBuffer(21),21);
memcpy(sDelivery.szMsgConnent,m_Msg.GetBuffer(100),sDelivery.nMsgLen+1);
sDelivery.sHeader.dwTotalLen = 60+sDelivery.nMsgLen+1;
if(pWSocket == NULL)
{
AfxMessageBox("请先登录!");
return;
}
pWSocket->Send((char*)&sDelivery,sDelivery.sHeader.dwTotalLen);
//显示信息
// m_list_ctl.AddString(CString("发送:") + (LPCTSTR)m_Msg);
// m_list_ctl.SetCurSel(m_list_ctl.GetCount()-1);
int count;
char p[20];
memset(p,0,sizeof(p));
count=m_list_new.GetItemCount() ;
m_list_new.InsertItem(count,"");
m_list_new.SetItemText(count,0,"发送");
m_list_new.SetItemText(count,1,TimeToStr(CTime::GetCurrentTime()));
m_list_new.SetItemText(count,2,m_SimNo);
m_list_new.SetItemText(count,3,m_csDesNum);
m_list_new.SetItemText(count,4,(LPCTSTR)m_Msg);
memcpy(p,m_csDesNum,sizeof(p));
//m_list_new.
//记录发送日志
EnterCriticalSection(&g_CriticalWriteLog);
//m_cs.Lock();
g_WriteLog(m_Msg.GetBuffer(m_Msg.GetLength()) , 1);
//m_cs.Unlock();
WriteStatusbar(1,p);
LeaveCriticalSection(&g_CriticalWriteLog);
Sleep(20);
}
//记忆目的ID
//UpdateData();
if(m_ctrlDesNum.FindString(0 , m_csDesNum) == CB_ERR)
m_ctrlDesNum.AddString(m_csDesNum);
}
void CTestDlg::OnClearlist()
{
/// m_list_ctl.ResetContent();
m_list_new.DeleteAllItems();
}
void CTestDlg::OnDblclkList1()
{
char szMsg[5000];
// m_list_ctl.GetText(m_list_ctl.GetCurSel(),szMsg);
// MessageBox(szMsg,"信息内容",MB_ICONINFORMATION);
}
void CTestDlg::OnPhonebook()
{
CPhoneBookDlg m_dlgPhoneBook(this , 1);
m_dlgPhoneBook.DoModal();
}
void CTestDlg::OnWhPhoneBook()
{
CPhoneBookDlg m_dlgPhoneBook(NULL , 2);
m_dlgPhoneBook.DoModal();
}
void CTestDlg::OnCommUse()
{
UpdateData();
CCommUseDlg CommUseDlg(this);
CommUseDlg.DoModal();
}
void CTestDlg::OnLookLogin()
{
CString str;
for(int i=0 ; i<g_arrstrPhone.GetSize() ; i++)
{
str = str + g_arrstrPhone.GetAt(i) + "\r\n";
}
AfxMessageBox((LPCTSTR)str);
}
void CTestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
LRESULT CTestDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
return CDialog::WindowProc(message, wParam, lParam);
}
//处理热键消息
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
switch(pMsg->wParam)
{
case 1001:
AfxMessageBox("Process will be closed !");
::ExitProcess(0);
break;
case 1002:
OnSend();
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
void CTestDlg::OnDblclkList4(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
POSITION Pos = m_list_new.GetFirstSelectedItemPosition();
int nIndex = m_list_new.GetNextSelectedItem(Pos);
if (nIndex>=0)
{
CString str_flag;
str_flag=m_list_new.GetItemText(nIndex , 0);
if (str_flag.Find("接收")>=0)
{
m_SimNo = m_list_new.GetItemText(nIndex , 3);
m_csDesNum=m_list_new.GetItemText(nIndex , 2);
}
else
{
m_SimNo = m_list_new.GetItemText(nIndex , 2);
m_csDesNum=m_list_new.GetItemText(nIndex , 3);
}
m_Msg=m_list_new.GetItemText(nIndex , 4);
UpdateData(FALSE);
}
}
void CTestDlg::WriteStatusbar(int type,char* Tefuhao)
{
char buffer[20];
memset(buffer,0,sizeof(buffer));
if(type==1)//发送短信
{
if(strlen(Tefuhao)>6)//聊天
{
lt_count_send+=1;
_itoa(lt_count_send, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(2,"聊天发送数:"+m_state,TRUE);
}
else
{
command_count_send+=1;
_itoa(command_count_send, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(0,"命令发送数:"+m_state,TRUE);
}
}
else//接收短信
{
if(strlen(Tefuhao)>6)//聊天
{
lt_count_rec+=1;
_itoa(lt_count_rec, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(3,"聊天接收数:"+m_state,TRUE);
}
else
{
command_count_rec+=1;
_itoa(command_count_rec, buffer, 10 );
m_state=buffer;
m_wndStatusBar.SetPaneText(1,"指令接收数:"+m_state,TRUE);
}
}
m_wndStatusBar.Invalidate();
}
void CTestDlg::OnButton3()
{
CString str;
//GetProcesses(str);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -