📄 operateserial.cpp
字号:
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 + -