VOS_VOID Ss_RcvFacility( VOS_VOID *pMsg, VOS_UINT32 ulMsgLen, VOS_UINT8 ucTi ) { ST_SSP_MSG stSsmsg; /* SS解码生成的消息 */ switch( g_SsEntity[ucTi].ucState ) { /* 根据实体状态分别进行处理 */ case SS_S_CONNECTED: /* S2 */ Ss_MemSet( &stSsmsg, 0, sizeof( ST_SSP_MSG )); /* 将消息空间清零 */ if( WUEPS_TRUE == Ss_Decode( pMsg, &(stSsmsg.SspmsgCore), ulMsgLen )) { /* 解码成功 */ stSsmsg.ucCr = g_SsEntity[ucTi].ucCr; /* 设置CR */ if (stSsmsg.ucCr >= TAF_MT_MIN_CR) { stSsmsg.ucCr -= 120; /*Cr范围为128-134时,需要转换成TI:8-14*/ } SSA_DealMsgFromSS(&stSsmsg); } break; default: /* 其他状态 */ SS_WARN_LOG( "\n [Error]SsEntity State Error! \r" ); break; } }
VOS_VOID Ss_TaskInit( VOS_VOID ) { VOS_UINT8 i; /* 用于循环 */ for( i = 0 ; i < SS_MAX_ENTITY_NUM ; i++ ) { /* 初始化SS实体信息 */ g_SsEntity[i].ucState = SS_S_NULL; SS_NORM_LOG( "\n SS state = SS_S_NULL \r" ); g_SsEntity[i].ucCr = SS_NONE_CR; } for( i = 0 ; i < SS_MO_ENTITY_NUM ; i++ ) { /* 初始化消息缓存BUFFER */ g_SsSaveMsg[i].ulMsgLen = 0; g_SsSaveMsg[i].pucMsg = VOS_NULL_PTR; } SSA_GetUssdMode(); /*=>A32D07063*/ #if 0 for( i = 0 ; i < SS_MAX_ENTITY_NUM ; i++ ) { /* 初始化TIMER管理信息 */ Ss_MemSet(&g_SsTimerMng[i].SsTimerId,0,sizeof(HTIMER)); g_SsTimerMng[i].ucTimerState = SS_TIMER_IDLE; } #endif /*<=A32D07063*/ }
VOS_VOID Ss_RcvUnknownAirMsg( VOS_UINT8 ucTi ) { ST_SSP_MSG stSsMsg; Ss_MemSet( &stSsMsg, 0, sizeof( ST_SSP_MSG )); /* 将消息空间清零 */ if( SS_S_NULL != g_SsEntity[ucTi].ucState ) { stSsMsg.ucCr = g_SsEntity[ucTi].ucCr; /* 设置CR */ if (stSsMsg.ucCr >= TAF_MT_MIN_CR) { stSsMsg.ucCr -= 120; /*Cr范围为128-134时,需要转换成TI:8-14*/ } stSsMsg.SspmsgCore.ucChoice = D_SMC_END_IND; /* 设置消息选择 */ Ss_MemSet( &(stSsMsg.SspmsgCore.u.EndInd), 0, sizeof( ST_END_IND )); /* 将消息空间清零 */ SSA_DealMsgFromSS(&stSsMsg); } Ss_SndRelCmpl( VOS_NULL_PTR, ucTi, SS_CAUSE_MSG_TYPE_ERR_OR_NOT_IMPLEMENT ); /* 发送DR(RELEASE COMPLETE #97) */ Ss_SndMmssRelReq( ucTi ); /* 向MM发送MMSS_REL_REQ原语,释放MM连接 */ Ss_EntityClear( ucTi ); /* 释放对应的SS实体 */ }