/***************************************************************************** 函 数 名 : CPM_ConnectPorts 功能描述 : 将物理通道和逻辑通道连接上 输入参数 : enPhyPort: 物理通道号 enLogicPort: 逻辑通道号 输出参数 : 无 返 回 值 : 无 *****************************************************************************/ VOS_VOID CPM_ConnectPorts(CPM_PHY_PORT_ENUM_UINT32 enPhyPort, CPM_LOGIC_PORT_ENUM_UINT32 enLogicPort) { if ((CPM_PORT_BUTT <= enPhyPort) || (CPM_COMM_BUTT <= enLogicPort)) { return; } if (CPM_APP_PORT > enPhyPort) { /* 从AT获得发送数据的函数指针 */ CPM_LOGIC_SEND_FUNC(enLogicPort) = AT_QuerySndFunc(enPhyPort); /* 将逻辑通道的接收函数给AT模块 */ AT_RcvFuncReg(enPhyPort, CPM_LOGIC_RCV_FUNC(enLogicPort)); } else { /* 连接发送通道 */ CPM_LOGIC_SEND_FUNC(enLogicPort)= CPM_PHY_SEND_FUNC(enPhyPort - CPM_APP_PORT); /* 连接接收通道 */ CPM_PHY_RCV_FUNC(enPhyPort - CPM_APP_PORT) = CPM_LOGIC_RCV_FUNC(enLogicPort); } /* 将物理发送函数注册给逻辑通道 */ CPM_LOGIC_PHY_PORT(enLogicPort) = enPhyPort; return; }
VOS_UINT32 CBTCPM_NotifyChangePort(AT_PHY_PORT_ENUM_UINT32 enPhyPort) { /* NAS走UART口做校准 */ if (CPM_IND_PORT > enPhyPort) { /* 从AT获得发送数据的函数指针 */ CBTCPM_PortSndReg(AT_QuerySndFunc(enPhyPort)); /* 用AT的端口做校准,不从USB或VCOM上收数据 */ CBTCPM_PortRcvReg(VOS_NULL_PTR); /* 将校准通道的接收函数给AT模块 */ AT_RcvFuncReg(enPhyPort, CBTSCM_SoftDecodeDataRcv); return VOS_OK; } return VOS_ERR; }