?? comdebugdlg.cpp
字號:
dwStart = GetTickCount();
while((GetTickCount() - dwStart) < m_dwSendInterval)
{
//循環語句中轉讓控制權
if(::PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
}
}while(m_bUninterrupted);
}
m_edtSendData.SetWindowText(_T(""));
*/
m_SerialPort.m_File00.Close();
}
void CComDebugDlg::OnBtnSetcom()
{
// TODO: Add your control notification handler code here
////////////////////////////////
m_SerialPort.m_File00.Close();
m_SerialPort.CloseCom();
if(IsDlgButtonChecked(IDC_CHECK3))
m_SerialPort.band_select=4;
else
m_SerialPort.band_select=1;
if(IsDlgButtonChecked(IDC_CHECK2))
m_SerialPort.bb=1;
else
m_SerialPort.bb=0;
///////////////////////////////////
int nComPort=1;
int nBaudRate=115200;
int nByteSize=8;
int nStopBits=1;
int nParity=0;
int nIndex,nCount;
m_SerialPort.stase=1;
m_SerialPort.zero=0;
//m_SerialPort.m_Stase=m_Stase;
///////***選型號
CString szText("");
m_SerialPort.type=m_Type.GetCurSel();
CString bb;
m_Type.GetLBText(m_SerialPort.type,bb);
////////////
if(bb.Compare(" PHILIPS 350")==0) //350
m_SerialPort.type=350;
else if(bb.Compare(" PHILIPS 162")==0)//9@98
m_SerialPort.type=162;
else if(bb.Compare(" PHILIPS 355")==0) //355
m_SerialPort.type=355;
else if(bb.Compare(" PHILIPS 530")==0) //530
m_SerialPort.type=530;
else if(bb.Compare(" PHILIPS 535")==0) //535
m_SerialPort.type=535;
else if(bb.Compare(" PHILIPS 639")==0) //639
m_SerialPort.type=639;
else if(bb.Compare(" PHILIPS 855")==0) //855
m_SerialPort.type=855;
else if(bb.Compare(" PHILIPS 859")==0) //859
m_SerialPort.type=859;
else if(bb.Compare(" PHILIPS 9@9c")==0) //9@9c
//AfxMessageBox("aa");
m_SerialPort.type=991;
else if(bb.Compare(" PHILIPS 9@9++")==0)//9@9++
m_SerialPort.type=990;
else if(bb.Compare(" PHILIPS 655")==0)//655
m_SerialPort.type=655;
else if(bb.Compare(" PHILIPS 755")==0)//655
m_SerialPort.type=755;
else if(bb.Compare(" PHILIPS 760")==0)//655
m_SerialPort.type=760;
else if(bb.Compare(" PHILIPS 9@98")==0)//9@98
m_SerialPort.type=998;
else if(bb.Compare(" PHILIPS 9@9I")==0)//9@98
m_SerialPort.type=992;
else if(bb.Compare(" PHILIPS 362")==0)//9@98
m_SerialPort.type=362;
else if(bb.Compare(" PHILIPS 9@9T")==0)//9@98
m_SerialPort.type=997;
else if(bb.Compare(" PHILIPS 9@9S")==0)//9@98
m_SerialPort.type=999;
///////***選型號 型號保存到:m_SerialPort.type
/**************************************************************
**************************************************************/
CString TempEditText;
char sjj_mj;
long m;
int add;
UCHAR TempData1[1024];
UCHAR TempData[1024];
m_Imei.GetWindowText(TempEditText);
if(!m_SerialPort.m_File00.Open("noname.DUM",CFile::modeReadWrite|CFile::shareDenyRead) )
{ //530-535:859
MessageBox("文件沒找到!","PHILIPS",MB_OK);
m_SerialPort.m_File00.Close();
exit(0);
//return ;
//m_Com.SetPortOpen(FALSE);
}
/*/
if(TempEditText=="")
{
MessageBox("請輸入序列號","PHILIPS",MB_OK);
//return 0;
m_SerialPort.m_File00.Close();
exit(0);
}
if(TempEditText.GetLength()<15)
{
MessageBox("序列號長度不夠","PHILIPS",MB_OK);
//return 0;
m_SerialPort.m_File00.Close();
exit(0);
}
*/
for(int i=0;i<8;i++)
{
sjj_mj=(TempEditText[2*i]*16)+(TempEditText[2*i+1]&0x0f);
sjj_mj=sjj_mj^0xcb;
TempData1[i]=sjj_mj;
TempData[i]=( (sjj_mj<<4)&0xf0) +( (sjj_mj>>4)&0x0f );
} ///序列號異或 保存到——TempData1
sjj_mj=0xf0+(TempEditText[14]&0x0f);
sjj_mj=sjj_mj^0xee;
//TempData1[7]=sjj;
TempData[7]=( (sjj_mj<<4)&0xf0) +( (sjj_mj>>4)&0x0f );
TempData1[8]=0x00;
for(int j=0;j<8;j++)
{
TempData1[8]=TempData1[8]+TempData[j];
}
TempData1[7]=0xcb;
if(m_SerialPort.type==355 ||m_SerialPort.type==999 ||m_SerialPort.type==992 ||m_SerialPort.type==760 ||m_SerialPort.type==362){
if(m_SerialPort.type==355)
{
TempData[0] = 0x9a;
TempData[1] = 0x98;
TempData[2] = 0xa9;
TempData[3] = 0x89;
}
if(m_SerialPort.type==760)
{
TempData[0] = 0xf7;
TempData[1] = 0x60;
TempData[2] = 0x7f;
TempData[3] = 0x06;
}
if(m_SerialPort.type==362)
{
TempData[0] = 0x9a;
TempData[1] = 0x98;
TempData[2] = 0xa9;
TempData[3] = 0x89;
}
for(int i=0;i<8;i++)
{
sjj_mj=(TempEditText[2*i]*16)+(TempEditText[2*i+1]&0x0f);
if(i==0||i==4){
TempData1[i] = ( sjj_mj & 0xff )^TempData[0];
}
if(i==1||i==5){
TempData1[i] = ( sjj_mj & 0xff )^TempData[1];
}
if(i==2||i==6){
TempData1[i] = ( sjj_mj & 0xff )^TempData[2];
}
if(i==3||i==7){
TempData1[i] = ( sjj_mj & 0xff )^TempData[3];
}
} ///序列號異或 保存到——TempData1
m_SerialPort.m_File00.Seek(0x1514,CFile::begin);
m_SerialPort.m_File00.Write(TempData1,4) ;
m_SerialPort.m_File00.Seek(0x1518,CFile::begin);
m_SerialPort.m_File00.Write(TempData1+4,1) ;
m_SerialPort.m_File00.Seek(0x1524,CFile::begin);
m_SerialPort.m_File00.Write(TempData1+5,1) ;
m_SerialPort.m_File00.Seek(0x1530,CFile::begin);
m_SerialPort.m_File00.Write(TempData1+6,1) ;
////////擾碼
}
/////////////////////IMEI :
/*************************************************************************************
*************************************************************************************/
//串口號
nIndex = m_comboComPort.GetCurSel();
nCount = m_comboComPort.GetCount();
if((nIndex != LB_ERR) && (nCount > 1))
{
m_comboComPort.GetLBText(nIndex, szText);
if(!szText.IsEmpty())
{
nComPort = ::atoi(szText.Right(szText.GetLength() - 3));
}
else
{
nComPort = 1;
}
}
//波特率
nIndex = m_comboBaudRate.GetCurSel();
nCount = m_comboBaudRate.GetCount();
if((nIndex != LB_ERR) && (nCount > 1))
{
m_comboBaudRate.GetLBText(nIndex, szText);
if(!szText.IsEmpty())
{
nBaudRate = ::atoi(szText);
}
else
{
nBaudRate = 9600;
}
}
//數據位
nIndex = m_comboByteSize.GetCurSel();
nCount = m_comboByteSize.GetCount();
if((nIndex != LB_ERR) && (nCount > 1))
{
m_comboByteSize.GetLBText(nIndex, szText);
if(!szText.IsEmpty())
{
nByteSize = ::atoi(szText);
}
else
{
nByteSize = 8;
}
}
//停止位
nIndex = m_comboStopBits.GetCurSel();
nCount = m_comboStopBits.GetCount();
if((nIndex != LB_ERR) && (nCount > 1))
{
m_comboStopBits.GetLBText(nIndex, szText);
if(!szText.IsEmpty())
{
if(szText == "1.5")
{
nStopBits = 15;
}
else
{
nStopBits = ::atoi(szText);
}
}
else
{
nStopBits = 1;
}
}
//校驗方式
nIndex = m_comboParity.GetCurSel();
nCount = m_comboParity.GetCount();
if((nIndex != LB_ERR) && (nCount > 1))
{
nParity = nIndex;
}
KillTimer(1);
m_bInitComOk = FALSE;
((CButton *)GetDlgItem(IDC_BTN_SEND))->EnableWindow(FALSE);
if(m_SerialPort.InitComPort(nComPort, nBaudRate, nByteSize, nStopBits, nParity))
{
//監視取值
//UCHAR stase[30]="串口以打開." ;
//m_Stase.SetWindowText((char*)stase);
// m_comboComPort.EnableWindow(0);
// m_Type.EnableWindow(0);
// m_Imei.EnableWindow(0);
m_SerialPort.StartMonitor();
SetTimer(1, 10, NULL);
((CButton *)GetDlgItem(IDC_BTN_SEND))->EnableWindow(TRUE);
m_bInitComOk = TRUE;
m_dwSendInterval = 0;
m_bUninterrupted = FALSE;
for(int n=1;n<5;n++)
{
// MessageBox(NULL,"串口","PHILIPS",MB_OK);
for(int x=10;x<50;x++){
UCHAR yayam[20] ={(char)0x3c,(char)0x69} ;
m_SerialPort.WriteCom((char*)yayam,1);
m_SerialPort.WriteCom((char*)yayam+1 ,1);
char * chIn;
m_SerialPort.RecvChar();
//
//if(n>100000)
// n=2;
for(int m=1;m<8000000;m++)
{
for(int j=1;j<4000000;j++)
{
j=j+1;
j=j-1;
}
}
}
}
}
}
void CComDebugDlg::LoadCmdFile(CString szFileName)
{
CString szSection(""),szKey("");
CString szCmd("");
char szValue[255];
szSection = "Text";
szKey = "Cmd";
::GetPrivateProfileString(szSection, szKey, "", szValue, 255, szFileName);
szCmd.Format(_T("%s"), szValue);
m_edtSendData.SetWindowText(szCmd);
}
void CComDebugDlg::OnChk16()
{
// TODO: Add your control notification handler code here
CString sz16Text(""),szCh("");
int nLen;
if(IsDlgButtonChecked(IDC_CHK_16))
{
nLen = m_szReceivedText.GetLength();
for(int i=0; i<nLen; i++)
{
szCh.Format(_T("0x%x,"), m_szReceivedText[i]);
sz16Text += szCh;
}
m_edtReceivedData.SetWindowText(sz16Text);
}
else
{
m_edtReceivedData.SetWindowText(m_szReceivedText);
}
}
void CComDebugDlg::SendData(CString szData)
{
if(!m_bInitComOk)
{
return;
}
int i,nCount;
int nTime = 0;
int nType = 0;
CString szCmd("");
char ch = 0;
WORD wValue = 0;
nCount = GetTextCountFromStringEx(szData, ",");
for(i=1; i<=nCount; i++)
{
szCmd = GetTextFromStringEx(szData, ",", i);
szCmd.TrimRight();
nTime = 0;
if(szCmd.IsEmpty())
{
continue;
}
if(IsSleepTime(szCmd, nTime))
{
Sleep(nTime);
}
else if(GetCharFromHexString(szCmd, ch, wValue, nType))
{
if(nType == 0)
{
m_SerialPort.WriteCom(ch);
}
else if(nType == 1)
{
m_SerialPort.WriteCom(wValue);
}
}
else if(IsASCII(szCmd, ch))
{
m_SerialPort.WriteCom(ch);
}
else if(IsString(szCmd))
{
szCmd = szCmd.Mid(1, szCmd.GetLength() - 2);
m_SerialPort.WriteCom(szCmd.GetBuffer(szCmd.GetLength()), szCmd.GetLength());
szCmd.ReleaseBuffer();
}
else
{
ch = (char)::atoi(szCmd);
m_SerialPort.WriteCom(ch);
}
}
}
BOOL CComDebugDlg::IsASCII(CString szCmd, char &ch)
{
if(szCmd.GetLength() != 3)
{
return FALSE;
}
if((szCmd.Left(1) == "'") && (szCmd.Right(1) == "'"))
{
ch = szCmd[1];
return TRUE;
}
return FALSE;
}
BOOL CComDebugDlg::IsString(CString szCmd)
{
CString szText("");
szText = szCmd;
szText.TrimLeft();
szText.TrimRight();
if(szText.IsEmpty())
{
return FALSE;
}
else if((szCmd.Left(1) == "\"") && ((szCmd.Right(1) == "\"") || (szCmd.Right(2) == "\" ")))
{
return TRUE;
}
return FALSE;
}
void CComDebugDlg::OnBtnSave()
{
// TODO: Add your control notification handler code here
CString szSection(""),szKey(""),szValue("");
CString szPathName("");
char szFilters[] = "發送內容 (*.txt)|*.txt||";
CFileDialog fileDlg (FALSE, "txt", "Cmd.txt",
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
if(fileDlg.DoModal() ==IDOK )
{
szPathName = fileDlg.GetPathName();
szSection = "Text";
szKey = "Cmd";
m_edtSendData.GetWindowText(szValue);
if(szValue.Right(1) != ",")
{
szValue += ",";
}
::WritePrivateProfileString(szSection, szKey, szValue, szPathName);
}
}
void CComDebugDlg::InitPara()
{
m_bUninterrupted = FALSE;
m_szReceivedText = "";
m_bInitComOk = FALSE;
m_dwSendInterval = 0;
}
void CComDebugDlg::OnChkUninterrupted()
{
// TODO: Add your control notification handler code here
m_bUninterrupted = (BOOL)IsDlgButtonChecked(IDC_CHK_UNINTERRUPTED);
}
void CComDebugDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
m_dwSendInterval = 0;
m_bUninterrupted = FALSE;
Sleep(300);
CDialog::OnClose();
}
void CComDebugDlg::OnChangeEditSendinterval()
{
m_dwSendInterval = 0;
}
BOOL CComDebugDlg::IsSleepTime(CString szText, int &nTime)
{
int nLeftPos = -1;
int nRightPos = -1;
CString szUpCaseText(""),szKeyWord(""),szTime("");
BOOL bRet = FALSE;
szUpCaseText = szText;
szUpCaseText.MakeUpper();
szUpCaseText.Replace(" ", "");
nLeftPos = szUpCaseText.Find("(", 0);
nRightPos = szUpCaseText.Find(")", 0);
if((nLeftPos != -1) && (nRightPos != -1)
&& (nRightPos == (szUpCaseText.GetLength() - 1)))
{
szKeyWord = szUpCaseText.Left(nLeftPos);
if(szKeyWord == "SLEEP")
{
szTime = szUpCaseText.Mid(nLeftPos + 1, szUpCaseText.GetLength() - 7);
nTime = ::atoi(szTime);
bRet = TRUE;
}
}
return bRet;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -