⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phonepcdlg.cpp

📁 手机串口通信设置程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
}
void CPhonePCDlg::OnCbnSelChange()
{
	// 得到当前选中条目的索引
//	 int Index = m_ComboWay.GetCurSel();
// 得到此条目的内容
//		 char Text[20];
//	m_ComboWay.GetLBText(Index, Text);
//	 以信息框报告得到的内容
//		 AfxMessageBox(CString(Text));
	
}
CReciveDialog *pDialog = NULL;

void CPhonePCDlg::OnWritePhone() 
{
	// TODO: Add your control notification handler code here
//	pDialog =new CReciveDialog;
	
//	CSerial AtCom;
//	BOOL bResult = pDialog->Create(IDD_DIALOG_SENDWAITING,this);
//	pDialog->ShowWindow(SW_SHOW);
	
	::PostMessage(m_hWnd,WM_USER_SEND_PHONE,(WPARAM)1,(LPARAM)0);	
	
}

void CPhonePCDlg::OnAddzero() 
{
	// TODO: Add your control notification handler code here
	
}
void CPhonePCDlg::OnAutoLock()
{
	int nLockPin,nUseRandom;
	
	UpdateData(TRUE);
	
	nLockPin = m_RadioButtonAutoPin1.GetCheck();
	nUseRandom = m_RandomButton1.GetCheck();
	
	if(nLockPin == 0)
	{
		m_InitPinEdit.EnableWindow(FALSE);
		m_RandomButton1.EnableWindow(FALSE);
		m_RandomButton2.EnableWindow(FALSE);
		m_ComboPinLen.EnableWindow(FALSE);
		m_FixPinEdit.EnableWindow(FALSE);
	}
	else
	{
		m_InitPinEdit.EnableWindow(TRUE);
		m_RandomButton1.EnableWindow(TRUE);
		m_RandomButton2.EnableWindow(TRUE);
		
		if(nUseRandom == 0)
		{
			m_ComboPinLen.EnableWindow(FALSE);
			m_FixPinEdit.EnableWindow(TRUE);
		}
		else
		{
			m_ComboPinLen.EnableWindow(TRUE);
			m_FixPinEdit.EnableWindow(FALSE);			
		}
	}
}

void CPhonePCDlg::OnUseRandom()
{
	int nUseRandom;

	nUseRandom = m_RandomButton1.GetCheck();
	
	if(nUseRandom == 0)
	{
		m_ComboPinLen.EnableWindow(FALSE);
		m_FixPinEdit.EnableWindow(TRUE);
	}
	else
	{
		m_ComboPinLen.EnableWindow(TRUE);
		m_FixPinEdit.EnableWindow(FALSE);			
	}
	
}

void CPhonePCDlg::OnLockSim()
{
	int nLockSim;

	nLockSim = m_PhoneSimButton1.GetCheck();
	if(nLockSim)
	{
		m_LockSimNumEdit.EnableWindow(TRUE);
	}
	else
		m_LockSimNumEdit.EnableWindow(FALSE);
}

void CPhonePCDlg::OnLockProvider()
{
	int nLockProvider;

	UpdateData(TRUE);
	
	nLockProvider = m_RadioLockOperator1.GetCheck();
	
	if(nLockProvider)
		m_ComboOperator.EnableWindow(TRUE);
	else
		m_ComboOperator.EnableWindow(FALSE);
	
}

void CPhonePCDlg::OnLockCell()
{
	int nLockRegion;

	UpdateData(TRUE);
	
	nLockRegion = m_RadioLockCell1.GetCheck();
	if(nLockRegion)
	{
		m_ComboOperatorNum.EnableWindow(TRUE);
		m_RadioAutoLockCell1.EnableWindow(TRUE);
		m_RadioAutoLockCell2.EnableWindow(TRUE);
	}
	else
	{
		m_ComboOperatorNum.EnableWindow(FALSE);
		m_RadioAutoLockCell1.EnableWindow(FALSE);
		m_RadioAutoLockCell2.EnableWindow(FALSE);
	}
	
}

void CPhonePCDlg::Parse_data(char *sRead, int *ret_val)
{
	int length;
	char strTemp[100];
	int Pos = -1;
	int strTempPos = 0;
	int retPos = 0;
	
	length = strlen(sRead);
	memset(strTemp, 0, sizeof(strTemp));
	
	for(int i = 0; i <= length; i++)
	{
		if((sRead[i] != ',') && (sRead[i] != '\0'))
		{
			strTemp[strTempPos] = sRead[i];
			strTempPos++;
		}
		else
		{
			if((i - Pos) > 1)
			{
				ret_val[retPos] = atoi(strTemp);
				memset(strTemp, 0, sizeof(strTemp));
				strTempPos = 0;
				retPos++;
			}
			Pos = i;
		}
	}
}

void CPhonePCDlg::SendToPhone()
{
	pDialog->OnCloseDlg();	
}
#if 0
UINT CPhonePCDlg::CommThread(LPVOID pParam)
{
	
	CString strTmp;
	char bufTmp[100];
	int len,i;

	char bufat[] = {0x61, 0x74, 0x0D, 0x0A,0};
	/*
	if(!AtCom.Open(nComPort,nBaudrate))		//打开串口
	{
		char temp[100];
		wsprintf(temp,"不能打开串口,串口号:%d 波特率:%d",nComPort,nBaudrate);
//		MessageBox(temp,"不能打开串口");
		AfxMessageBox(temp);
		return 1;
	}	
	*/

//	pDlg->SendToPhone();
//	pDialog->OnTestResultDlgClose();
	
//	pDialog->OnCloseDlg();
	
	//		if(AtCom.ReadDataWaiting())
//			len = ;
//	strTmp = "AT\n";
/*
	sprintf(bufTmp,"AT");
	AtCom.SendData(bufat,strlen(bufat));
//	sprintf(bufTmp,"\n");
//	AtCom.SendData(bufTmp,strlen(bufTmp));
	
	

//	len = 5;
//	AtCom.ReadData(bufTmp,len);
	for(i=0;i<100;i++)
	{
		AtCom.ReadData(bufTmp,len);
		
//		len = 10;
		len = AtCom.ReadDataWaiting();
		if(len)
		{
			AtCom.ReadData(bufTmp,len);
			break;
		}
		//			if(m_nRet)
		//				return 0;			
		Sleep(100);
	}
	
	return 1;*/
	if(m_nSysinfoCom)
	{
		strTmp.Format("AT#W0,%d\n",m_strSYS_0002_nAutoDely,
			m_strSYS_0004_sSMSCenter,
			m_strSYS_4000_bNotLocalAddZero,
			m_strSYS_0005_bForbidLongDistanceCall,
			m_strSYS_0006_sLCDContrast);
		AtCom.SendData(strTmp,strTmp.GetLength());
	}

	
		i=0;
		for(i=0;i<100;i++)
		{
			len = AtCom.ReadDataWaiting();
			if(len)
			{
				AtCom.ReadData(bufTmp,len);
				break;
			}
//			if(m_nRet)
//				return 0;			
			Sleep(100);
		}
//		if(m_nRet)
//			return 0;
		if(strcmp(bufTmp,"OK") == 0)
		{
		}		
		if(m_nLocalCom)
		{
			strTmp.Format("AT#W1,%s,%s\n",m_strLOCAL_1000_strLocalZone,
				m_strLOCAL_0003_nLocalMethod);
			len = strTmp.GetLength();
			AtCom.SendData(strTmp,len);		//向终端写入控制数据
			m_nLocalCom = FALSE;
		}
		for(i=0;i<100;i++)
		{
			len = AtCom.ReadDataWaiting();
			if(len)
			{
				AtCom.ReadData(bufTmp,len);
				break;
			}
			if(m_nRet)
				return 0;
			
			Sleep(100);
		}
		if(m_nRet)
			return 0;
		
		if(strcmp(bufTmp,"OK") == 0)
		{
		}
		
		if(m_nPinSimCom)
		{
//		strTmp.Format("AT#W2,%d,%d,%d,%d,%d,%d,%s\n",nAutoLockPin,nOriginalPin,nUseRandomPin,nPinLength,nFixedPin,
//					nLockSim,m_strPINSIM_7001_strLockSimNum);
//			m_strPINSIM_6000_bAutoLockPin
		strTmp.Format("AT#W2,%s,%s,%s,%s,%s,%s,%s\n",m_strPINSIM_6000_bAutoLockPin,
		m_strPINSIM_6002_strOriginalPin,
		m_strPINSIM_6005_bUseRandomPin,
		m_strPINSIM_6001_nPinLength,
		m_strPINSIM_6004_strFixedPin,
		m_strPINSIM_7000_bLockSim,
		m_strPINSIM_7001_strLockSimNum);
				
			len = strTmp.GetLength();
			AtCom.SendData(strTmp,len);		//向终端写入控制数据
			m_nPinSimCom = FALSE;
		}

		for(i=0;i<100;i++)
		{
			len = AtCom.ReadDataWaiting();
			if(len)
			{
				AtCom.ReadData(bufTmp,len);
				break;
			}
			if(m_nRet)
				return 0;			
			Sleep(100);
		}
		if(m_nRet)
			return 0;
		
		if(strcmp(bufTmp,"OK") == 0)
		{
		}
		
		nSendComplete = 1;
		if(AtCom.IsOpened())
			AtCom.Close();
		return 1;
		
	
	return 1;
}
#endif

void CPhonePCDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(nIDEvent == TIMER_CHECK_DIALOG)
	{
		KillTimer(TIMER_CHECK_DIALOG);
//		KillTimer(TIMER_CHECKING);		
		pDialog->OnCloseDlg();
		m_nRet = 1;

//		if(AtCom.IsOpened())
//			AtCom.Close();
		AfxMessageBox("写入参数超时!");
		
	}
	else if(nIDEvent ==TIMER_CHECKING)
	{
		if(nSendComplete)
		{
           KillTimer(TIMER_CHECKING);
			KillTimer(TIMER_CHECK_DIALOG);			
			pDialog->OnCloseDlg();
			nSendComplete = 0;
			AfxMessageBox("写入参数成功!");
			
		}
		
	}
	
	CDialog::OnTimer(nIDEvent);
}

void CPhonePCDlg::OnSendPhone(WPARAM wp, LPARAM lp)
{
	//		ASSERT_VALID (pDialog);
	int nAutoDelay;
	int nLocalZone,nLocalMethod;
	
	UpdateData(TRUE);
/*	
	char sTestplan[300];
	
	GetPrivateProfileString("ComSetting","com","ERROR",sTestplan,sizeof(sTestplan),strConfigfile);
	if(strcmp(sTestplan,"ERROR") == 0)
	{
		AfxMessageBox("读取串口设置信息失败!");
		return;
	}
	nComPort = atoi(sTestplan);
	GetPrivateProfileString("ComSetting","Baudrate","ERROR",sTestplan,sizeof(sTestplan),strConfigfile);
	if(strcmp(sTestplan,"ERROR") == 0)
	{
		AfxMessageBox("读取串口设置信息失败!");
		return;
	}
	nBaudrate = atoi(sTestplan);*/

	//	m_LongDistance
//	nComPort = 1;
//	nBaudrate = 115200;
/*	if(!AtCom.Open(nComPort,nBaudrate))		//打开串口
	{
		char temp[100];
		wsprintf(temp,"不能打开串口,串口号:%d 波特率:%d",nComPort,nBaudrate);
		MessageBox(temp,"不能打开串口");
		return;
	}*/

//	AtCom.Close();
	

//	GetPrivateProfileString("ComSetting","com","ERROR",sTestplan,sizeof(sTestplan),strConfigfile);

//	char sTestplan[300];
//	sprintf(sTestplan,"%d",nComPort);
//	WritePrivateProfileString("ComSetting", "com", sTestplan, strConfigfile);
//	
//	sprintf(sTestplan,"%d",nBaudrate);
//	WritePrivateProfileString("ComSetting", "Baudrate", sTestplan, strConfigfile);

/*	hThread=CreateThread(NULL,
		0,
//		(LPTHREAD_START_ROUTINE)SendToPhone,
		SendToPhone,
		NULL,
		0,
		&ThreadID);*/
	
//	CString strTmp;
	char strBufTmp[300];
//	char bufTmp[100];
//	int len;

//	CString strOut;

//	strOut = m_list.GetItemText(1,1);
	if(wp)
	{
		pDialog =new CReciveDialog;
	
	   BOOL bResult = pDialog->Create(IDD_DIALOG_SENDWAITING,this);
	   pDialog->ShowWindow(SW_SHOW);
	   //	   nSendComplete = 0;		
	    SetTimer(TIMER_CHECK_DIALOG,5000,NULL);
	   //	   SetTimer(TIMER_CHECKING,100,NULL);
	   //	   m_nRet = 0;
	   //	   m_Thread = AfxBeginThread(CommThread, this);
	   }
	   
	m_bCanSend = TRUE;		
	if(m_nSysinfo != CONTROL_NO)
	{

		nAutoDelay = m_ComboDelay.GetCurSel();
		m_strSYS_0002_nAutoDely.Format("%d",nAutoDelay);
//		srpintf(sTest

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -