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

📄 procsm.cpp

📁 用VC写的监控中心后台程序。 代码全
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		{
			return false;
		}
		TmpStr1 = GetString(ReceData,&DataPos);	//获取GPS接收状态
		
		TmpStr1 = GetString(ReceData,&DataPos);	//获取GPS接收纬度
		
		if(!TmpStr1.IsEmpty()) 
		{
			*strLatitude = TmpStr1;
		}
		else 
		{
			return false;
		}

		TmpStr1 = GetString(ReceData,&DataPos);				//获取GPS接收 南北方向
	
		TmpStr1 = GetString(ReceData,&DataPos);				//获取GPS接收经度
		if(!TmpStr1.IsEmpty()) 
		{
			if(TmpStr1.GetLength() >9)
			*strLongitude = TmpStr1;
		}
		else 
		{
			return false;
		}
	}
	return true;
}


///get string 
CString CProcSM::GetString(char *pData, int *pos)
{
	BYTE i = 0;
	char ArrStr[20];
	CString RetStr;

	RetStr = "";
	while (pData[*pos] != ',') {
		ArrStr[i] = pData[*pos];
		i++; (*pos)++;
		if(i == 20){
			return RetStr;
		}
	}
	ArrStr[i] = 0;
	(*pos)++;
	RetStr = ArrStr;

	return RetStr;
}


//congstruct the message whitch to be send to the vehicle and then send it to the vehicle;
void CProcSM::SetMessageType(CString strVehicleNumber, CString strSMConttent)
{

	CString str2Send("");
	if(!m_bWaveComInite)
	{
		AfxMessageBox("电话系统没有初始化,请初始化电话系统!");
		return;
	}

	str2Send = ConstructSendstr("AT+CMGS=",strVehicleNumber,strSMConttent);
	
	if(str2Send != "")
	{
		strToBeWriteToComm = str2Send ;
	}
	str2Send = "";
}

//begin the thread
void CProcSM::BeginThread()
{
	::AfxBeginThread(WriteThread,this);
	::AfxBeginThread(ProcessThread,this);
}

//set the doc prointer
void CProcSM::SetDocPointer(CGpsSCDoc *pDoc)
{
	m_pDoc = pDoc;
}

void CProcSM::WriteToFile(CString FileName,CString sInfo)
{
	CFile		f;
	
	if(!f.Open(FileName,CFile::modeReadWrite,NULL)) {
		if(!f.Open(FileName,CFile::modeCreate | CFile::modeReadWrite,NULL)) {
			AfxMessageBox("open file error!");
			return;
		}
	}		
	f.SeekToEnd();

	CString		s;

	s.Format("%s%c%c",sInfo,'\r','\n');
	f.Write(s,s.GetLength());

	f.Close();
}

//simulater the driver
void CProcSM::SimulatorDriver()
{
	CDiverNumberDlg numberdlg;
	CString		strToSend("");
	numberdlg.m_strDriverNumber = m_strDriverNumber;
	if(numberdlg.DoModal() == IDOK)
	{
		int a =AfxMessageBox("确实要设定车主电话吗?",MB_YESNO);
		if(a = IDYES)
		{
			m_strDriverNumber.Empty();
			m_strDriverNumber = numberdlg.m_strDriverNumber;
			strToSend = SETHOSTTELNO;
			strToSend += m_strDriverNumber;
			strToSend += "#";
			SetMessageType(m_sVehicleNumber,strToSend);
		} 
		

	}	
}
//change the la and lt
void CProcSM::ChangLGAndLt(CString &strLongitude,CString &strLatitude,CString &strVehicleNO,CString &strTelNumber)
{
	((CGpsSCView *)m_pView)->SendGXGY(strLongitude, strLatitude,strVehicleNO,strTelNumber);
}

//systerm inite
BOOL CProcSM::SystermInite(void * pView)
{
	CRect		rect;
	m_pView = (CGpsSCView *)pView;
	
	CSysIniteDlg *pdlg = new CSysIniteDlg();
	pdlg->Create(IDD_SYSINITEDLG,NULL);
	pdlg->ShowWindow(SW_SHOW);
	pdlg->CenterWindow(NULL);
	pdlg->m_strIniteText = "正在初始化系统,可能需要较长时间,请等待......";

	pdlg->UpdateData(FALSE);

	SetStr2Send(WAVECOMINITETEXT);
	SleepEx(1000,TRUE);	

	SetStr2Send("AT+CMGD=1\r");
	pdlg->m_strIniteText = "还剩余12秒......";
	pdlg->UpdateData(FALSE);
	
  	SleepEx(1000,TRUE);	
		
	SetStr2Send("AT+CMGD=2\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余11秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=3\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余10秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=4\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余9秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=5\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余8秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=6\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余7秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=7\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余6秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=8\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余5秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=9\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余4秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=10\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余3秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=11\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余2秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=12\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余1秒......";
	pdlg->UpdateData(FALSE);

	SetStr2Send("AT+CMGD=13\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余1秒......";
	pdlg->UpdateData(FALSE);
	SetStr2Send("AT+CMGD=14\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余1秒......";
	pdlg->UpdateData(FALSE);
	SetStr2Send("AT+CMGD=15\r");
	SleepEx(1000,TRUE);
	pdlg->m_strIniteText = "还剩余1秒......";
	pdlg->UpdateData(FALSE);

	
  	pdlg->ShowWindow(SW_HIDE);
	pdlg->CloseWindow();
	pdlg->DestroyWindow();

	m_bSysTemInit = TRUE;

	return TRUE;
}

void CProcSM::OnGetvehicleposition(CString strItemText)
{
	CMainFrame			*pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; 
	CDlgAsCenterDlg		dlg;
	bool				Flag;

	if(pMainFrame == NULL)	return;

	Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();

	if(m_nUserType == 0)
	{
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);
				SetMessageType(m_sVehicleNumber,GETPOSITION);
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
				SetMessageType(m_sVehicleNumber,GETPOSITION);
				m_sGetPositionCar = m_sVehicleNumber;
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
			SetMessageType(m_sVehicleNumber,GETPOSITION);
			m_sGetPositionCar = m_sVehicleNumber;
		}
	}
	else
	{
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;
				CClientinfoSet		cSet;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);

				m_strPassWord	 = cSet.GetPassword(m_sVehicleNumber);
				m_strPassWord	+= GETPOSITION;
				SetMessageType(m_sVehicleNumber,m_strPassWord);
				m_sGetPositionCar = m_sVehicleNumber;
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
				m_strPassWord    = pMainFrame->m_wndTree1.m_strPassWord;
				m_strPassWord	+= GETPOSITION;
				SetMessageType(m_sVehicleNumber,m_strPassWord);
				m_sGetPositionCar = m_sVehicleNumber;
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
			m_strPassWord	+= GETPOSITION;
			SetMessageType(m_sVehicleNumber,m_strPassWord);
			m_sGetPositionCar = m_sVehicleNumber;
		}
	}
}

//set the lock
void CProcSM::OnSetlock(CString strItemText)
{
	CMainFrame			*pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; 
	CDlgAsCenterDlg		dlg;
	bool				Flag;

	if(pMainFrame == NULL)	return;

	Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();

	if(m_nUserType == 0)
	{
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);
				SetMessageType(m_sVehicleNumber,SETLOCK);
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
				SetMessageType(m_sVehicleNumber,SETLOCK);
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
			SetMessageType(m_sVehicleNumber,SETLOCK);
		}
	}
	else
	{
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;
				CClientinfoSet		cSet;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);

				m_strPassWord	 = cSet.GetPassword(m_sVehicleNumber);
				m_strPassWord	+= SETLOCK;
				SetMessageType(m_sVehicleNumber,m_strPassWord);
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
				m_strPassWord    = pMainFrame->m_wndTree1.m_strPassWord;
				m_strPassWord	+= SETLOCK;
				SetMessageType(m_sVehicleNumber,m_strPassWord);
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
			m_strPassWord	+= SETLOCK;
			SetMessageType(m_sVehicleNumber,m_strPassWord);
		}
	}
}

//shut down oil
void CProcSM::OnShutoil(CString strItemText)
{
	CMainFrame			*pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; 
	CDlgAsCenterDlg		dlg;
	bool				Flag;

	if(pMainFrame == NULL)	return;

	Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();

	if(m_nUserType == 0)
	{
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);
				SetMessageType(m_sVehicleNumber,SHUTOIL);
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
				SetMessageType(m_sVehicleNumber,SHUTOIL);
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
			SetMessageType(m_sVehicleNumber,SHUTOIL);
		}
	}
	else
	{
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;
				CClientinfoSet		cSet;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);

				m_strPassWord	 = cSet.GetPassword(m_sVehicleNumber);
				m_strPassWord	+= SHUTOIL;
				SetMessageType(m_sVehicleNumber,m_strPassWord);
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
				m_strPassWord    = pMainFrame->m_wndTree1.m_strPassWord;
				m_strPassWord	+= SHUTOIL;
				SetMessageType(m_sVehicleNumber,m_strPassWord);
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
			m_strPassWord	+= SHUTOIL;
			SetMessageType(m_sVehicleNumber,m_strPassWord);
		}
	}
}

//open the lock
void CProcSM::OnOpenlock(CString strItemText)
{
	CMainFrame			*pMainFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; 
	CDlgAsCenterDlg		dlg;
	CString				Str;
	bool				Flag;

	if(pMainFrame == NULL)	return;

	Flag = pMainFrame->m_wndTree1.GetCarPhoneAndPassword();

	if(m_nUserType == 0) {
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);

				Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
				if(AfxMessageBox(Str,MB_YESNO) == IDNO)	return;

				SetMessageType(m_sVehicleNumber,OPENLOCK);
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;

				Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
				if(AfxMessageBox(Str,MB_YESNO) == IDNO)	return;

				SetMessageType(m_sVehicleNumber,OPENLOCK);
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);

			Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
			if(AfxMessageBox(Str,MB_YESNO) == IDNO)	return;

			SetMessageType(m_sVehicleNumber,OPENLOCK);
		}
	}
	else
	{
		if(strItemText.IsEmpty()) {
			if(!Flag) {
				if(dlg.DoModal() == IDCANCEL)	return;
				CClientinfoSet		cSet;

				m_sVehicleNumber = dlg.m_strVehicleNo;
				m_sVehicleNumber = m_sVehicleNumber.Right(11);

				m_strPassWord	 = cSet.GetPassword(m_sVehicleNumber);
				m_strPassWord	+= OPENLOCK;

				Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
				if(AfxMessageBox(Str,MB_YESNO) == IDNO)	return;

				SetMessageType(m_sVehicleNumber,m_strPassWord);
			}
			else {
				m_sVehicleNumber = pMainFrame->m_wndTree1.m_strCarPhone;
				m_strPassWord    = pMainFrame->m_wndTree1.m_strPassWord;
				m_strPassWord	+= OPENLOCK;

				Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
				if(AfxMessageBox(Str,MB_YESNO) == IDNO)	return;

				SetMessageType(m_sVehicleNumber,m_strPassWord);
			}
		}
		else {
			CClientinfoSet		cSet;

			cSet.FindCarPswAndNO(strItemText,m_sVehicleNumber,m_strPassWord);
			m_strPassWord	+= OPENLOCK;

			Str.Format("确定要对 % s解锁吗?",m_sVehicleNumber);
			if(AfxMessageBox(Str,MB_YESNO) == IDNO)	return;

			SetMessageType(m_sVehicleNumber,m_strPassWord);
		}
	}
}

//as normal user change the normal user password

⌨️ 快捷键说明

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