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_RcvRegister( VOS_VOID *pMsg, VOS_UINT32 ulMsgLen, VOS_UINT8 ucTi ) { ST_SSP_MSG stSsmsg; /* SS解码生成的消息 */ switch( g_SsEntity[ucTi].ucState ) { /* 根据实体状态分别进行处理 */ case SS_S_NULL: /* S0 */ 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*/ } g_SsEntity[ucTi].ucState = SS_S_CONNECTED; /* 状态迁移 */ SS_NORM_LOG("\n SS state: SS_S_NULL ==> SS_S_CONNECTED \r" ); SSA_DealMsgFromSS(&stSsmsg); } break; case SS_S_CONNECT_PEND: /* S1 */ case SS_S_CONNECTED: /* S2 */ break; default: /* 其他状态 */ SS_WARN_LOG( "\n [Error]SsEntity State Error! \r" ); break; } }