|
通过支持AT指令集的手机发送短消息(源代码)(9) int n = 0; while( 1 ) { if( WriteComm( m_pSPool[dwWaitRet].pData, m_pSPool[dwWaitRet].dwSize ) ) break; if( (n ++) == 5 ) break; Sleep( 1000 ); } delete [] m_pSPool[dwWaitRet].pData; SetEvent( m_pSPool[dwWaitRet].hSPIDLE ); Sleep( 200 ); } catch( ... ) { break; } } } void CGSMPhone::DeliverThread() { while( 1 ) { try { char szBuffer[1024] = {0}; DWORD dwReadRet = ReadStringFromComm( szBuffer, 1024 ); if( dwReadRet > 0 ) { char* pFirst; char* pNext; if( strstr( szBuffer, "+CMTI:" ) != NULL ) { pFirst = strchr( szBuffer, ',' ); pFirst ++; if( pFirst != NULL ) { pNext = strchr( pFirst, '\r' ); if( pNext != NULL ) { int len = pNext - pFirst; if( len <= 0 ) continue; char szCmd[30] = {0}; memcpy( szCmd, "AT+CMGR=", 8 ); memcpy( szCmd + 8, pFirst, len ); szCmd[8+len] = '\r'; Submit( szCmd, len + 9 ); } } } else if( strstr( szBuffer, "AT+CMGR" ) != NULL ) { pFirst = strchr( szBuffer, '=' ); pFirst ++;
|