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

📄 phonepcdlg.cpp

📁 一使用AT命令设置手机功能的程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//	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();	
}

UINT CPhonePCDlg::CommThread(LPVOID pParam)
{
	
	CString strTmp;
	char bufTmp[100];
	int len,i;

/*
	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";
	AtCom.SendData(strTmp,strTmp.GetLength());
	

	len = 5;
	AtCom.ReadData(bufTmp,len);
	
	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;
}
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 bufTmp[100];
	int len;
	
	if(m_nSysinfo != CONTROL_NO)
	{

		nAutoDelay = m_ComboDelay.GetCurSel();
		m_strSYS_0002_nAutoDely.Format("%d",nAutoDelay);
//		srpintf(sTestplan,"%d",nBaudrate);
		WritePrivateProfileString("SYSinfo","DelayTime",m_strSYS_0002_nAutoDely, strConfigfile);
		
		m_NetPhoneNumber.GetWindowText(m_strSYS_0004_sSMSCenter);
		WritePrivateProfileString("SYSinfo","NetNumber",m_strSYS_0004_sSMSCenter, strConfigfile);
		
		m_strSYS_4000_bNotLocalAddZero.Format("%d",m_nRadioValue);
		WritePrivateProfileString("SYSinfo","OutZero",m_strSYS_4000_bNotLocalAddZero, strConfigfile);
		

		m_strSYS_0005_bForbidLongDistanceCall.Format("%d",m_LongDistance);
		WritePrivateProfileString("SYSinfo","ForBiden",m_strSYS_0005_bForbidLongDistanceCall, strConfigfile);
		

		m_LCDCon.GetWindowText(m_strSYS_0006_sLCDContrast);
		WritePrivateProfileString("SYSinfo","LCDConTrast",m_strSYS_0006_sLCDContrast, strConfigfile);
		
		m_nSysinfoCom = TRUE;
/*
		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());
		
		
//		dlg.Create(IDD_DIALOG_SENDWAITING,this);
//		if(AtCom.ReadDataWaiting())
//		len = AtCom.ReadDataWaiting();
//		{
//			AtCom.ReadData(bufTmp,len);
//		}
	}
	if(m_nLocal != CONTROL_NO)
	{
		m_MyEdit.GetWindowText(m_strLOCAL_1000_strLocalZone);
		WritePrivateProfileString("LocalCell","LocalZone",m_strLOCAL_1000_strLocalZone, strConfigfile);
		nLocalZone = atoi(m_strLOCAL_1000_strLocalZone);

		nLocalMethod = m_ComboWay.GetCurSel();
		m_strLOCAL_0003_nLocalMethod.Format("%d",nLocalMethod);
		WritePrivateProfileString("LocalCell","LocalMethod",m_strLOCAL_0003_nLocalMethod, strConfigfile);
		

/*
		strTmp.Format("AT#W1,%s,%s\n",m_strLOCAL_1000_strLocalZone,
			m_strLOCAL_0003_nLocalMethod);
		len = strTmp.GetLength();
		AtCom.SendData(strTmp,len);		//向终端写入控制数据*/
		m_n

⌨️ 快捷键说明

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