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

📄 operateserial.cpp

📁 wince中 我自己的流驱动实现 注册表和bib文件 修改在QZSerialServerARMV4IRel目录下
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		List_strReceiveInfo.AddHead(temp) ;
	}
	if(RetInfo.Find(_T("NO DIALTONE")) != -1)
	{
		temp_left = RetInfo.Left(RetInfo.Find(TEXT("NO DIALTONE"))) ;
		temp = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("NO DIALTONE"))) ;
		temp = temp.Left(temp.Find(TEXT("\r"))) ;

		temp_right = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("NO DIALTON")) - temp.GetLength()) ;
		temp_left.Remove('\r') ;
		temp_left.Remove('\n') ;
		temp_right.Remove('\r') ;
		temp_right.Remove('\n') ;
		if((temp_left.Compare(TEXT("")) == 0)&&(temp_right.Compare(TEXT("")) == 0))
			return ;
		List_strReceiveInfo.AddHead(temp) ;
	}
	if(RetInfo.Find(_T("NO ANSWER")) != -1) 
	{
		temp_left = RetInfo.Left(RetInfo.Find(TEXT("NO ANSWER"))) ;
		temp = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("NO ANSWER"))) ;
		temp = temp.Left(temp.Find(TEXT("\r"))) ;

		temp_right = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("NO ANSWER")) - temp.GetLength()) ;
		temp_left.Remove('\r') ;
		temp_left.Remove('\n') ;
		temp_right.Remove('\r') ;
		temp_right.Remove('\n') ;
		if((temp_left.Compare(TEXT("")) == 0)&&(temp_right.Compare(TEXT("")) == 0))
			return ;
		List_strReceiveInfo.AddHead(temp) ;
	}
	if(RetInfo.Find(TEXT("Call Ready")) != -1)
	{
		temp_left = RetInfo.Left(RetInfo.Find(TEXT("Call Ready"))) ;
		temp = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("Call Ready"))) ;
		temp = temp.Left(temp.Find(TEXT("\r"))) ;

		temp_right = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("Call Ready")) - temp.GetLength()) ;
		temp_left.Remove('\r') ;
		temp_left.Remove('\n') ;
		temp_right.Remove('\r') ;
		temp_right.Remove('\n') ;
		if((temp_left.Compare(TEXT("")) == 0)&&(temp_right.Compare(TEXT("")) == 0))
			return ;
		List_strReceiveInfo.AddHead(temp) ;
	}
	if(RetInfo.Find(TEXT("+COLP:")) != -1)
	{
		temp_left = RetInfo.Left(RetInfo.Find(TEXT("+COLP:"))) ;
		temp = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("+COLP:"))) ;
		temp = temp.Left(temp.Find(TEXT("\r"))) ;

		temp_right = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("+COLP:")) - temp.GetLength()) ;
		temp_left.Remove('\r') ;
		temp_left.Remove('\n') ;
		temp_right.Remove('\r') ;
		temp_right.Remove('\n') ;
		if((temp_left.Compare(TEXT("")) == 0)&&(temp_right.Compare(TEXT("")) == 0))
			return ;
		List_strReceiveInfo.AddHead(temp) ;
	}
	if(RetInfo.Find(TEXT("POWER LOW WARNNING")) != -1)
	{
		temp_left = RetInfo.Left(RetInfo.Find(TEXT("POWER LOW WARNNING"))) ;
		temp = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("POWER LOW WARNNING"))) ;
		temp = temp.Left(temp.Find(TEXT("\r"))) ;

		temp_right = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("POWER LOW WARNNING")) - temp.GetLength()) ;
		temp_left.Remove('\r') ;
		temp_left.Remove('\n') ;
		temp_right.Remove('\r') ;
		temp_right.Remove('\n') ;
		if((temp_left.Compare(TEXT("")) == 0)&&(temp_right.Compare(TEXT("")) == 0))
			return ;
		List_strReceiveInfo.AddHead(temp) ;
	}
	if(RetInfo.Find(TEXT("+CMGS:")) != -1)
	{
		temp_left = RetInfo.Left(RetInfo.Find(TEXT("+CMGS:"))) ;
		temp = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("+CMGS:"))) ;
		temp = temp.Left(temp.Find(TEXT("\r"))) ;

		temp_right = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("+CMGS:")) - temp.GetLength()) ;
		temp_left.Remove('\r') ;
		temp_left.Remove('\n') ;
		temp_right.Remove('\r') ;
		temp_right.Remove('\n') ;
		if((temp_left.Compare(TEXT("")) == 0)&&(temp_right.Compare(TEXT("")) == 0))
			return ;
		List_strReceiveInfo.AddHead(temp) ;
	}
	//if(m_CopyPhoneBook && RetInfo.Find(TEXT("RING")) != -1)
	if(RetInfo.Find(TEXT("RING")) != -1)
	{
		temp_left = RetInfo.Left(RetInfo.Find(TEXT("RING"))) ;
		temp = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("RING"))) ;
		CString str_temp = temp.Left(temp.Find(TEXT("+CLIP:"))) ;
		temp = temp.Right(temp.GetLength() - temp.Find(_T("+CLIP:"))) ;
		temp = temp.Left(temp.Find(TEXT("\r"))) ;
		temp = str_temp + temp ;

		temp_right = RetInfo.Right(RetInfo.GetLength() - RetInfo.Find(TEXT("+CMGS:")) - temp.GetLength()) ;
		temp_left.Remove('\r') ;
		temp_left.Remove('\n') ;
		temp_right.Remove('\r') ;
		temp_right.Remove('\n') ;
		if((temp_left.Compare(TEXT("")) == 0)&&(temp_right.Compare(TEXT("")) == 0))
			return ;
		List_strReceiveInfo.AddHead(temp) ;
	}
}

DWORD WINAPI ProcessRecieveDataInfoThread(LPVOID lpvoid)
{
	INT nGoCode ;
	while(true)
	{
		nGoCode = WaitForSingleObject(hAnaRecieveDateEvent,INFINITE);
		if(nGoCode == WAIT_OBJECT_0)
		{
			while(List_strReceiveInfo.GetCount()>0)
			{
				//analyse the string return from comm
				AnalyseReceieveDataInfo(List_strReceiveInfo.GetTail()) ;
				List_strReceiveInfo.RemoveTail() ;
			}
			analyseReceiveDataMutex = TRUE;
		}
	}
	return 1 ;
}

BOOL AnalyseReceieveDataInfo(CString RetInfo)
{
	int Info_Int = 0 ;
	CString Message_Info("") ;
	int strlen = 0 ;
	UINT id = 0 ;
	DWORD RCNK = 0 ;
	DWORD dwSize = 0;

	if(0)
	{
	}
	else if(RetInfo.Find(_T("AT+CMGR")) != -1)
	{
	}
	else if(RetInfo.Find(TEXT("+CSQ:")) != -1)// if(m_AtCommand.Find(L"AT+CSQ") != -1)
	{
	}
	else if(RetInfo.Find(TEXT("+CPMS:")) != -1)
	{
	}
	else
	{
		Info_Int = AnalyseUnsolicitedInfoFromCom(RetInfo) ;
		switch(Info_Int)
		{
		case Ret_SMS:
			break ;
		case Ret_Ring:
			break ;
		case Ret_Busy:
			break ;
		case Ret_NoCarrier:
			break ;
		case Ret_NoDialTone:
			break ;
		case Ret_OK:
			break ;
		case Ret_NoAnswer:
			break ;
		case Ret_SentSms:
			break ;
		case Ret_SendFailSms:
			break ;
		case Ret_InitOk:
			break ;
		case Ret_InitErr:
			break ;
		case Ret_CallCovnert:
			break ;
		case Ret_CallReady:
			break ;
		case Ret_GetCSCANum:
			break ;
		case Ret_CSCAOK:
			break ;
		case Ret_CSCAErr:
			break ;
		case Ret_GetModuleTime:
			break ;
		case Ret_LowPower:
			break ;
		default:
			break ;
		}
	}
	return TRUE ;
}

int AnalyseUnsolicitedInfoFromCom(CString RetInfo)
{
	int Info_ID = 0 ;
	if(RetInfo.Find(_T("+CMTI:")) != -1)
	{//received new sms
		Info_ID = Ret_SMS ;
	}
	//bing 2007.09.06
	else if(RetInfo.Find(_T("SM")) != -1)
	{
		Info_ID = Ret_SMS ;
	}
	else if(RetInfo.Find(_T("+CMS: ERROR")) != -1)
	{
		Info_ID = Ret_SendFailSms ;
	}
	else if(RetInfo.Find(TEXT("AT+CCFC")) != -1)//RetInfo.Find(TEXT("+CCFC:")) != -1)
	{
		Info_ID = Ret_CallCovnert ;
	}
	else if(RetInfo.Find(TEXT("AT+CSCA?")) != -1)
	{//Query Sms Center Number
		Info_ID = Ret_GetCSCANum ;
	}
	else if(RetInfo.Find(_T("AT+CSCA")) != -1)
	{//Set CSCA Succ
		if(RetInfo.Find(TEXT("OK")) != -1)
		{
			Info_ID = Ret_CSCAOK ;
		}
		else if(RetInfo.Find(TEXT("ERROR")) != -1)
		{
			Info_ID = Ret_CSCAErr ;
		}
	}
	else if(RetInfo.Find(_T("+CMGS:")) != -1)
	{
		Info_ID = Ret_SentSms ;
	}
	else if(RetInfo.Find(_T("RING")) != -1)
	{
		Info_ID = Ret_Ring ;
	}
	else if(RetInfo.Find(_T("BUSY")) != -1)
	{
		Info_ID = Ret_Busy ;
	}
	else if(RetInfo.Find(_T("NO CARRIER")) != -1)
	{
		Info_ID = Ret_NoCarrier ;
	}
	else if(RetInfo.Find(_T("NO DIALTONE")) != -1)
	{
		Info_ID = Ret_NoDialTone ;
	}
	else if(RetInfo.Find(_T("NO ANSWER")) != -1) 
	{
		Info_ID = Ret_NoAnswer ;
	}
	else if(RetInfo.Find(TEXT("+CCLK:")) != -1)
	{//Get module time
		Info_ID = Ret_GetModuleTime ;
	}
	else if(RetInfo.Find(TEXT("+COLP:")) != -1)
	{
		Info_ID = Ret_OK ;
	}
	else if(RetInfo.Find(TEXT("POWER LOW WARNNING")) != -1)
	{
		Info_ID = Ret_LowPower ;
	}
	else if(RetInfo.Find(_T("OK")) != -1)
	{
		if(m_AtCommand.Find(TEXT("AT+CIMI")) != -1)
		{
			HKEY hkey ;
			if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_USERS,TEXT("\\Adbon\\AdPhoneSet\\Scene\\SimState"),0,0,&hkey))
			{//Set Module Sound Volumn
				DWORD value = 1;
				DWORD dwSize = sizeof(DWORD) ;
				LONG m_hkey ;
				m_hkey = RegSetValueEx(hkey,_T("SimState"), 0, REG_DWORD, (LPBYTE)&value, dwSize);
				if(m_hkey == ERROR_SUCCESS)
				{
				}
			}
			RegCloseKey(hkey) ;
		}
		Info_ID = Ret_InitOk ;
	}
	else if(RetInfo.Find(TEXT("ERROR")) != -1)
	{
		if(m_AtCommand.Find(TEXT("AT+CIMI")) != -1)
		{
			HKEY hkey ;
			if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_USERS,TEXT("\\Adbon\\AdPhoneSet\\Scene\\SimState"),0,0,&hkey))
			{//Set Module Sound Volumn
				DWORD value = 0;
				DWORD dwSize = sizeof(DWORD) ;
				LONG m_hkey ;
				m_hkey = RegSetValueEx(hkey,_T("SimState"), 0, REG_DWORD, (LPBYTE)&value, dwSize);
				if(m_hkey == ERROR_SUCCESS)
				{
				}
			}
			RegCloseKey(hkey) ;
		}
		Info_ID = Ret_InitErr ;
	}
	else if(RetInfo.Find(TEXT("Call Ready")) != -1)
	{
		Info_ID = Ret_CallReady ;
	}
	return Info_ID ;
}

⌨️ 快捷键说明

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