VOS_VOID uttest_SCM_RcvDataDispatch_case2(VOS_VOID) { OM_HDLC_STRU stHdlcCtrl; VOS_UINT8 ucDataType = SCM_DATA_TYPE_GU; g_astSCMDecoderCbFunc[SOCP_DECODER_DST_CB_GU_OM] = Stub_RcvData; SCM_RcvDataDispatch(&stHdlcCtrl, ucDataType); }
VOS_UINT32 SCM_SoftDecodeAcpuRcvData( OM_HDLC_STRU *pstHdlcCtrl, VOS_UINT8 *pucData, VOS_UINT32 ulLen) { VOS_UINT32 i; VOS_UINT32 ulResult; VOS_UINT8 ucGutlType; VOS_UINT8 ucChar; ulResult = VOS_ERR; for( i = 0; i < ulLen; i++ ) { ucChar = (VOS_UINT8)pucData[i]; ulResult = Om_HdlcDecap(pstHdlcCtrl, ucChar); if ( HDLC_SUCC == ulResult ) { g_stScmSoftDecodeInfo.stHdlcDecapData.ulDataLen += pstHdlcCtrl->ulInfoLen; g_stScmSoftDecodeInfo.stHdlcDecapData.ulNum++; ucGutlType = pstHdlcCtrl->pucDecapBuff[0]; diag_PTR(EN_DIAG_PTR_SCM_RCVDATA_SUCCESS); SCM_RcvDataDispatch(pstHdlcCtrl, ucGutlType); } else if (HDLC_NOT_HDLC_FRAME == ulResult) { /*不是完整分帧,继续HDLC解封装*/ } else { g_stScmSoftDecodeInfo.ulFrameDecapErr++; } } return VOS_OK; }