From 23d920c8614d60a4ceda612c40999a7e048502dc Mon Sep 17 00:00:00 2001 From: lh <3191213465@qq.com> Date: Mon, 22 Jun 2026 16:35:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ci_integrate_config.h | 14 +- .../EnvelopeManage/EnvelopeLogicProcess.c | 2 +- .../ciapp/LogicProcess/InterlockLogicCheck.c | 19 +- .../APP/ciapp/ParsePack/ParsePackAxleData.c | 2 +- .../src/APP/ciapp/ParsePack/ParsePackOcData.c | 3 + .../APP/ciapp/ParsePack/ParsePackVobcData.c | 30 +- TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c | 26 + .../ciapp/Section/LogicSectionDataManage.c | 38 +- TSCP/src/APP/ciapp/System/CiSystemDefine.h | 2 +- .../src/APP/ciapp/System/SystemConfigDefine.h | 10 +- TSCP/src/APP/ciapp/Transmit/TransmitDefine.h | 62 +- TSCP/src/MSCP/MSCP_main.c | 2 +- .../dqu_emap_common/dsuEmapDefine.h | 3 +- .../dqu_idmap_common/dquIdmapQuery.h | 1 + .../fsfb/common_fsfb/FsfbLnkNodeMgr.c | 72 +- .../fsfb/common_fsfb/FsfbMessageInfo.c | 1062 +++++----- .../protocol/fsfb/common_fsfb/FsfbProtcl.c | 800 ++++---- .../common_fsfb/FsfbProtclConfigMessage.h | 3 + .../fsfb/common_fsfb/FsfbRecordDelare.h | 164 +- .../fsfb/common_fsfb/fsfbProtclStruct.h | 2 +- .../common_dqu_protocol/dsuProtclFun.c | 897 ++++---- .../common_dqu_protocol/dsuProtclFun.h | 44 +- .../common_protocol/ProtclManage.c | 1605 ++++++++------- .../common_protocol/ProtclManage.h | 59 +- .../common_protocol/protclInterFun.c | 510 ++--- .../common_protocol/protclInterFun.h | 25 +- .../common_protocol/protclMgeCfg.h | 4 +- .../common_protocol/protclStruct.h | 5 +- .../common_protocol_config/protocolConfig.h | 5 +- .../common_dqu_rp/dsuRpFunc.c | 155 +- .../common_dqu_rp/dsuRpFunc.h | 42 +- .../common_redun/RpInterface.c | 1739 +++++++++------- .../common_redun/RpInterface.h | 3 - .../common_redun/RpPlatform.h | 62 +- .../redun_record_cbtc/common_redun/RpStruct.h | 1 - .../dqu_rsspii_cbtc/dsuRssp2Func.c | 3 + .../common_dqu_rssp/dsuRsspDataStru.h | 9 + .../common_dqu_rssp/dsuRsspFunc.c | 1604 ++++++++------- .../common_rssp/RsspCommonWl.c | 18 +- .../common_rssp/RsspCommonWl.h | 25 +- .../rssp_record_cbtc1/common_rssp/RsspIFWl.h | 15 +- .../common_rssp/RsspInitWl.c | 167 +- .../common_rssp/RsspLnkNodeMgrWl.c | 99 +- .../common_rssp/RsspLnkNodeMgrWl.h | 22 +- .../common_rssp/RsspOutputWl.c | 116 +- .../common_rssp/RsspReciveWl.c | 235 ++- .../common_rssp/RsspStructWl.h | 4 +- .../rssp_record_cbtc1/common_rssp/RsspWl.c | 27 +- .../rssp_record_cbtc1/common_rssp/RsspWl.h | 12 +- .../common_dqu_sfp/dsuRelatedDeal.c | 603 +++--- .../common_dqu_sfp/dsuRelatedDeal.h | 60 +- .../common_sfp/sfpPrtclInit.c | 347 ++-- .../common_sfp/sfpPrtclReceive.c | 1797 +++++++++-------- .../common_sfp/sfpPrtclReceive.h | 15 - .../common_sfp/sfpPrtcl_Output.c | 694 ++++--- .../sfp_record_cbtc1/common_sfp/sfpplatform.h | 22 +- .../common_sfp_nr_config/sfpConfig.h | 29 +- 57 files changed, 7051 insertions(+), 6345 deletions(-) diff --git a/TSCP/src/APP/PU13_integration_config/ci_integrate_config.h b/TSCP/src/APP/PU13_integration_config/ci_integrate_config.h index a76b1d0..7930c61 100644 --- a/TSCP/src/APP/PU13_integration_config/ci_integrate_config.h +++ b/TSCP/src/APP/PU13_integration_config/ci_integrate_config.h @@ -22,14 +22,14 @@ -/*Ԥָļ*/ +/*Ԥ����ָ������ļ�����������*/ #ifndef _CI_INTEGRATE_CONFIG_H #define _CI_INTEGRATE_CONFIG_H -/*д漯ں˰汾*/ -#define VER_INTE_PROJECT 220 /*Ŀ*/ -#define VER_INTE_PRODUCT 40 /*Ʒ*/ -#define VER_INTE_EXE 1 /*ִб*/ -#define VER_INTE_TIME 101 /*ɴ*/ +/*��д�漯���ں˰汾��*/ +#define VER_INTE_PROJECT 220 /*��Ŀ���*/ +#define VER_INTE_PRODUCT 40 /*��Ʒ���*/ +#define VER_INTE_EXE 99 /*��ִ�б��*/ +#define VER_INTE_TIME 102 /*���ɴ������*/ -#endif/*endif of #define _CI_INTEGRATE_CONFIG_H*/ \ No newline at end of file +#endif/*endif of #define _CI_INTEGRATE_CONFIG_H*/ diff --git a/TSCP/src/APP/ciapp/EnvelopeManage/EnvelopeLogicProcess.c b/TSCP/src/APP/ciapp/EnvelopeManage/EnvelopeLogicProcess.c index 8a3b1f6..d5ba1a5 100644 --- a/TSCP/src/APP/ciapp/EnvelopeManage/EnvelopeLogicProcess.c +++ b/TSCP/src/APP/ciapp/EnvelopeManage/EnvelopeLogicProcess.c @@ -2082,7 +2082,7 @@ void elm_SafeProtectProcess(void) else { /** CT/UCTɳ--崻*/ - elm_FlyingProtect(); + /*elm_FlyingProtect();*/ } /** OCΧڵļӳϷУ */ diff --git a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c index 360db1c..735e0df 100644 --- a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c +++ b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c @@ -8375,7 +8375,8 @@ UINT8 KeepBlocRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLe /*·źŻ۷·*/ UINT8 const zheFanRouteSum = GetRtnEndSigAsStartSigRouteSum(routeId); UINT16 * const zheFanRouteIdBuf = GetReturnEndSigAsStartSigRoute(routeId); - + /* ʼźŻId */ + UINT16 const startSignalId = GetRouteStartSignalId(routeId); /* ߼ */ @@ -8453,7 +8454,8 @@ UINT8 KeepBlocRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLe else { /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_ROUTE,devId,ETYPE_SIG_RETURN_OPENED_STATE,devState,sendLevel); + /*ԭETYPE_SIG_RETURN_OPENED_STATE·id˳ֱһ*/ + SetErrorData(functionId, CI_DEVICE_TYPE_SIGNAL, startSignalId, ETYPE_SIG_START_OPEN_STATE, devState, sendLevel); reResult = CI_ERROR; } } @@ -8624,6 +8626,7 @@ UINT8 OpenBlocRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLe UINT8 signalVirtualAttr = SIGNAL_VIRTUAL_NO;/*źŻ*/ UINT8 repeatOpenFlag = ROUTE_REPEATOPEN_SET_NO;/*ؿ־*/ + UINT16 const startSignalId = GetRouteStartSignalId(routeId);/*ʼźŻid*/ /* ߼ */ cRouteLeadProperty = GetRouteLeadProperty(routeId); @@ -8760,7 +8763,8 @@ UINT8 OpenBlocRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLe else { /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_ROUTE,devId,ETYPE_SIG_RETURN_OPENED_STATE,devState,sendLevel); + /*ԭETYPE_SIG_RETURN_OPENED_STATE ·id˳ֱһ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SIGNAL, startSignalId, ETYPE_SIG_START_OPEN_STATE, devState, sendLevel); reResult = CI_ERROR; } } @@ -8810,6 +8814,7 @@ UINT8 OpenCbtcRouteOtherSignalCheck(UINT16 routeId, UINT8 functionId, UINT8 send UINT8 signalVirtualAttr = SIGNAL_VIRTUAL_NO;/*źŻ*/ UINT8 repeatOpenFlag = ROUTE_REPEATOPEN_SET_NO;/*ؿ־*/ UINT8 needOpenNotTrueRepeatFlag = ROUTE_NEEDOPEN_REOPEN_NO;/*迪Ųؿ־*/ + UINT16 const startSignalId = GetRouteStartSignalId(routeId);/*ʼźŻid*/ routeState = GetRouteState(routeId);/*ȡ·״̬*/ /* ߼ */ @@ -8936,7 +8941,8 @@ UINT8 OpenCbtcRouteOtherSignalCheck(UINT16 routeId, UINT8 functionId, UINT8 send else { /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_ROUTE, devId, ETYPE_SIG_RETURN_OPENED_STATE, devState, sendLevel); + /*ԭETYPE_SIG_RETURN_OPENED_STATE ·id˳ֱһ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SIGNAL, startSignalId, ETYPE_SIG_START_OPEN_STATE, devState, sendLevel); reResult = CI_ERROR; } } @@ -19227,7 +19233,7 @@ UINT8 KeepCBTCRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLe UINT16* pNeedCloseBuf = NULL; UINT8 zheFanRouteSum = 0U; UINT16 * zheFanRouteIdBuf = NULL; - + UINT16 startSignalId = GetRouteStartSignalId(routeId);/*ʼźŻid*/ /* ·豸 */ /*·迪źŻ*/ needOpenSigSum = GetRouteCbtcNeedOpenSigSum(routeId); @@ -19320,7 +19326,8 @@ UINT8 KeepCBTCRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLe else { /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_ROUTE,devId,ETYPE_SIG_RETURN_OPENED_STATE,devState,sendLevel); + /*ԭETYPE_SIG_RETURN_OPENED_STATE ·id˳ֱһ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SIGNAL, startSignalId, ETYPE_SIG_START_OPEN_STATE, devState, sendLevel); reResult = CI_ERROR; } } diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackAxleData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackAxleData.c index d07fbdb..669ca9b 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackAxleData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackAxleData.c @@ -167,7 +167,7 @@ UINT8 InitAxleToCiDataStru(void) axisToCiDataStru[axleId].axisEtcsId = axieEtcsId; axisToCiDataStru[axleId].ciEtcsId = ciEtcsId; - (void)memset(axisToCiDataStru[axleId].PhySecIdx, (INT)AXISDATASTR_IDX, PHYSICAL_SECTION_SUM_MAX); /*Ĭ±ΪЧλ*/ + (void)memset(axisToCiDataStru[axleId].PhySecIdx, (INT32)AXISDATASTR_IDX, PHYSICAL_SECTION_SUM_MAX); /*Ĭ±ΪЧλ*/ for (j = 0u; j < phySecCurSum; j++) /**/ { phySecId = GetPhySecId(j); diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c index e9a37f7..21c7a69 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c @@ -1326,6 +1326,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U ocName = (CI_SYSTEM_TYPE_OC) * 256U + systemId; localCiId = GetSystemParaLocalCiId(); /*ȡID*/ +#if 0 galOcDataVer = GetCiTranOcDataCheckVer(localCiId, ocName); /*ȡOCϵͳݰ汾*/ if (hlhtGalHead.emapVerCrc == galOcDataVer) { @@ -1335,6 +1336,8 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U { headRet = HLHT_HEAD_ERROR; } +#endif + headRet = HLHT_HEAD_SUCCESS; /*OCݰ汾У*/ #if 0 headRet = HLHTRecvCommonPacketHeadCheck(ocName, ciName, CI_OC_INTERFACE_INFOTYPE, CI_OC_PRTCL_VER, &hlhtGalHead, &errCode, 0, CI_SYSTEM_TYPE_OC); #endif diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c index 89734f9..5ca1415 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c @@ -6704,7 +6704,7 @@ static UINT8 PackCiToIvocCommTrainInfo(UINT8* pDataBuf, UINT16 *wDataLength) ii = *wDataLength; chRetVal = CI_SUCCESS; - wEnvelopeSum = elm_GetCTEnvelope(szEnvelopeIdBuf); + wEnvelopeSum = 0u; if (ENVELOPE_SUM_MAX > wEnvelopeSum) { wEnvelopeSendSumIndex = ii; @@ -6922,7 +6922,7 @@ static UINT8 PackCiToIvocFaultTrainInfo(UINT8* pDataBuf, UINT16 *wDataLength) ii = *wDataLength; chRetVal = CI_SUCCESS; - wEnvelopeSum = elm_GetFaultEnvelope(szEnvelopeIdBuf); + wEnvelopeSum = 0u; if (ENVELOPE_SUM_MAX > wEnvelopeSum) { wEnvelopeSendSumIndex = ii; @@ -9391,7 +9391,9 @@ static UINT8 PackCiToIvocReqAlignmentInfo(UINT8* pDataBuf, UINT16* wDataLength, chTempBreakFlag = 0U; chTempRemoveFlag = 0U; chTempAddFlag = 0U; + pRouteLogSecId = NULL; wLogicSecId = GetLogicSecId(wLogicSecIndex); + if ((0U < wLogicSecId) && (UINT16_MAX > wLogicSecId)) { chLogSecHaveResOpp = GetLogSecHaveResOpp(wLogicSecId); @@ -9401,6 +9403,8 @@ static UINT8 PackCiToIvocReqAlignmentInfo(UINT8* pDataBuf, UINT16* wDataLength, wRLockRouteId = GetLogSecLockBelongRoute(wLogicSecId); wPLockRouteId = GetLogSecPLockRouteId(wLogicSecId); chLogLockDir = GetLogSecLockDir(wLogicSecId); + pAPoint.Lnk = 0U; + pAPoint.Off = 0U; if (0U < wRLockRouteId) { @@ -9418,8 +9422,15 @@ static UINT8 PackCiToIvocReqAlignmentInfo(UINT8* pDataBuf, UINT16* wDataLength, ; /*һ*/ } - pAPoint.Lnk = GetLgcSecOrgnLink(pRouteLogSecId[0]); - pAPoint.Off = 0U; + if (NULL != pRouteLogSecId) + { + pAPoint.Lnk = GetLgcSecOrgnLink(pRouteLogSecId[0]); + pAPoint.Off = 0U; + } + else + { + ; + } if ((CI_SYSTEM_DIRECTION_UP == chLogLockDir) || (CI_SYSTEM_DIRECTION_DOWN == chLogLockDir)) { @@ -9482,6 +9493,9 @@ static UINT8 PackCiToIvocReqAlignmentInfo(UINT8* pDataBuf, UINT16* wDataLength, chLogRelateLogLockDir = GetLogSecLockDir(wRelateLogSecId[jj]); wRLockRouteId = GetLogSecLockBelongRoute(wRelateLogSecId[jj]); wPLockRouteId = GetLogSecPLockRouteId(wRelateLogSecId[jj]); + pBPoint.Lnk = 0U; + pBPoint.Off = 0U; + if (0U < wRLockRouteId) { wRouteLogSecSum = GetRouteLogSectionSum(wRLockRouteId); @@ -9503,13 +9517,17 @@ static UINT8 PackCiToIvocReqAlignmentInfo(UINT8* pDataBuf, UINT16* wDataLength, { ; /**/ } - if (NULL != pRouteLogSecId) + + if ((NULL != pRouteLogSecId) && (0U < pAPoint.Lnk) && (0U < pBPoint.Lnk)) { /*漰ûָΪգʱҪһ*/ - chDirChangedNum = GetDirChangeNumBtwPoints(&pAPoint, &pBPoint); + /*Ƚϵξղȥ鷽仯Ŀշ*/ + if ((CI_SYSTEM_DIRECTION_UP == chLogRelateLogLockDir) || (CI_SYSTEM_DIRECTION_DOWN == chLogRelateLogLockDir)) { /*ǰ߼շ͹߼շЧ*/ + chDirChangedNum = GetDirChangeNumBtwPoints(&pAPoint, &pBPoint); + if (0U == (chDirChangedNum % 2U)) { /*2·֮䷽仯ĿΪżշһԴԶ*/ diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c b/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c index 8cb8ad0..6470ccf 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c @@ -7370,6 +7370,32 @@ UINT8 TransmitRelationDataStructInit(CHAR* FSName) } (void)TransmitRelationDataStruFrmSZ(Data); } + + /*ĬϳRC120OCͨ*/ + for (j = 0u; j < dquCICfgDtStr.TrsmtRlsDtStrLen; j++) + { + if ((0x0CU == dquCICfgDtStr.TrsmtRlsDtStr[j].CiId) && (CI_SYSTEM_TYPE_OC == dquCICfgDtStr.TrsmtRlsDtStr[j].SystemType)) + { + /*RCΪ120OC*/ + for (i = 0U; i < (TRANSMIT_OBJECT_DEVICE_SUM_MAX - 1U); i++) + { + if (i < 6) + { + dquCICfgDtStr.TrsmtRlsDtStr[j].DeviceIdBuf[i] = i + 24U; + } + else + { + dquCICfgDtStr.TrsmtRlsDtStr[j].DeviceIdBuf[i] = i + 25U; + } + } + dquCICfgDtStr.TrsmtRlsDtStr[j].DeviceSum = TRANSMIT_OBJECT_DEVICE_SUM_MAX - 1U; + break; + } + else + { + } + } + rtnValue = 1u; return rtnValue; } diff --git a/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c b/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c index 0f5bed2..22a633f 100644 --- a/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c +++ b/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c @@ -4578,11 +4578,24 @@ UINT8 GetLogSecHaveResOpp(const UINT16 wLogicSecId) /*ǰ߼ξ߱·ջŽ·ռ*/ wRouteLogSecSum = GetRouteLogSectionSum(wRLockRouteId); pRouteLogSecId = GetRouteLogSectionIdBuf(wRLockRouteId); - if ((pRouteLogSecId[wRouteLogSecSum - 1U] == wLogicSecId) && (LOG_SECTION_LOCK_NORMAL == chLogSecLockState)) + + if (NULL != pRouteLogSecId) { - /*ǰѯ߼Ϊ·һβգ*/ - retVal = CI_SUCCESS; + if ((pRouteLogSecId[wRouteLogSecSum - 1U] == wLogicSecId) && (LOG_SECTION_LOCK_NORMAL == chLogSecLockState)) + { + /*ǰѯ߼Ϊ·һβգ*/ + retVal = CI_SUCCESS; + } + else + { + ; /**/ + } } + else + { + ; /*·Ϊճʼʧ*/ + } + } else if (0U < wPLockRouteId) { @@ -4593,11 +4606,22 @@ UINT8 GetLogSecHaveResOpp(const UINT16 wLogicSecId) chLogSecLockDir = GetLogSecLockDir(wLogicSecId); chLogSecLockSysDir = ConvertDirectionToLogic(chLogSecLockDir); - if (((pLogicSectionIdBuf[chLogicSectionSum - 1U] == wLogicSecId) && (DIR_SAME == chLogSecLockSysDir)) - || ((pLogicSectionIdBuf[0] == wLogicSecId) && (DIR_CONVERT == chLogSecLockSysDir))) + if (NULL != pLogicSectionIdBuf) { - /*ǰѯ߼շ߼ͬ򱣻һ߼෴εһ߼*/ - retVal = CI_SUCCESS; + if (((pLogicSectionIdBuf[chLogicSectionSum - 1U] == wLogicSecId) && (DIR_SAME == chLogSecLockSysDir)) + || ((pLogicSectionIdBuf[0] == wLogicSecId) && (DIR_CONVERT == chLogSecLockSysDir))) + { + /*ǰѯ߼շ߼ͬ򱣻һ߼෴εһ߼*/ + retVal = CI_SUCCESS; + } + else + { + ; /*ݣΪճʼʧ*/ + } + } + else + { + ; /*·Ϊճʼʧ*/ } } else diff --git a/TSCP/src/APP/ciapp/System/CiSystemDefine.h b/TSCP/src/APP/ciapp/System/CiSystemDefine.h index 674c207..5aa7f81 100644 --- a/TSCP/src/APP/ciapp/System/CiSystemDefine.h +++ b/TSCP/src/APP/ciapp/System/CiSystemDefine.h @@ -275,7 +275,7 @@ /*ZFWJɼ֮󱨾ܸλ̵Ч*/ #define ZFWJ_REYLAY_VALID_CYCLE_NUM ((UINT32)3) /*ZFWJɼ֮ΪЧ*/ -#define OC_SUM_MAX ((UINT16)100) /*CIͨŵOC IDֵ*/ +#define OC_SUM_MAX ((UINT16)150) /*CIͨŵOC IDֵ*/ #define AXLE_SUM_MAX ((UINT16)100) /*CIͨŵļϵͳ IDֵ*/ #define TIOCFS_VERSION_LENGTH 4U /*汾ų*/ diff --git a/TSCP/src/APP/ciapp/System/SystemConfigDefine.h b/TSCP/src/APP/ciapp/System/SystemConfigDefine.h index 127c74b..23b65f5 100644 --- a/TSCP/src/APP/ciapp/System/SystemConfigDefine.h +++ b/TSCP/src/APP/ciapp/System/SystemConfigDefine.h @@ -60,9 +60,9 @@ /*V13.0汾ݽṹ 2018.8.3*/ /*汾*/ #define VER_MAIN_SUBCI_CI_CID ((UINT8)22) /*ϵͳ汾*/ -#define VER_SUB_SUBCI_CI_CID ((UINT8)0) /*ϵͳӰ汾*/ -#define VER_BRUNCH_CI_CID ((UINT8)2) /*֧汾..........0....֧1 2 */ -#define VER_RETURN_SUBCI_CI_CID ((UINT8)1) /*ϵͳع汾*/ +#define VER_SUB_SUBCI_CI_CID ((UINT8)88) /*ϵͳӰ汾*/ +#define VER_BRUNCH_CI_CID ((UINT8)3) /*֧汾..........0....֧1 2 */ +#define VER_RETURN_SUBCI_CI_CID ((UINT8)0) /*ϵͳع汾*/ #ifdef SCADE_MODE /*SCADE汾*/ @@ -74,9 +74,9 @@ #else /*д汾*/ #define VER_SOFT_PRODUCT ((UINT8)40) /*Ʒ*/ -#define VER_SOFT_MODUAL_APP ((UINT8)1) /*ģ*/ +#define VER_SOFT_MODUAL_APP ((UINT8)88) /*ģ*/ #define VER_SOFT_MIANVERSION ((UINT8)22) /*汾*/ -#define VER_SOFT_SUBVERSION ((UINT8)8) /*Ӱ汾*/ +#define VER_SOFT_SUBVERSION ((UINT8)9) /*Ӱ汾*/ #endif diff --git a/TSCP/src/APP/ciapp/Transmit/TransmitDefine.h b/TSCP/src/APP/ciapp/Transmit/TransmitDefine.h index 4ae1999..c288ad1 100644 --- a/TSCP/src/APP/ciapp/Transmit/TransmitDefine.h +++ b/TSCP/src/APP/ciapp/Transmit/TransmitDefine.h @@ -1,13 +1,13 @@ /******************************************************** * -* TransmitDefine.h -* Ȩ˵ ؿƼ޹˾ -* ʱ䣺 2012-04-01 -* ߣ -* ͨŹöͷļ -* -* ʹע⣺ -* ޸ļ¼ +* �� �� ���� TransmitDefine.h +* ��Ȩ˵���� �������ؿƼ����޹�˾ +* ����ʱ�䣺 2012-04-01 +* �� �ߣ� ������ +* ���������� ͨ�Ź������ö���ͷ�ļ� +* ���������� +* ʹ��ע�⣺ +* �޸ļ�¼�� * ********************************************************/ @@ -15,43 +15,43 @@ #define _TRANSMIT_DEFINE_H_ -/*ϵͳͷļ*/ +/*����ϵͳ����ͷ�ļ�*/ #include "../System/SystemConfigDefine.h" -#define TRANSMIT_OBJECT_SUM_MAX ((UINT16)16) /*ͨŶֵ*/ -#define TRANSMIT_OBJECT_DEVICE_SUM_MAX ((UINT16)18) /*ͬͬ豸ͨŵ豸ֵ*/ +#define TRANSMIT_OBJECT_SUM_MAX ((UINT16)16) /*��������ͨ�Ŷ�������ֵ*/ +#define TRANSMIT_OBJECT_DEVICE_SUM_MAX ((UINT16)107) /*��������ͬ��ͬ�豸����ͨ�ŵ��豸���ֵ*/ -/*ͨ״̬*/ -#define TRANSMIT_STATE_BAD ((UINT8)0x55) /*ͨж*/ -#define TRANSMIT_STATE_GOOD ((UINT8)0xaa) /*ͨ*/ -#define NOT_IN_TRAINSMIT_LIST ((UINT8)0x5a) /*ͨб*/ +/*ͨ��״̬*/ +#define TRANSMIT_STATE_BAD ((UINT8)0x55) /*ͨ���ж�*/ +#define TRANSMIT_STATE_GOOD ((UINT8)0xaa) /*ͨ������*/ +#define NOT_IN_TRAINSMIT_LIST ((UINT8)0x5a) /*����ͨ���б���*/ -/*ͨ״̬*/ -#define TRANSMIT_2OO2_STATE_GOOD ((UINT8)0x01) /*ͨ*/ -#define TRANSMIT_2OO2_STATE_LINK ((UINT8)0x02) /*ά*/ -#define TRANSMIT_2OO2_STATE_BAD ((UINT8)0x03) /*ͨж*/ +/*ͨ��״̬*/ +#define TRANSMIT_2OO2_STATE_GOOD ((UINT8)0x01) /*ͨ������*/ +#define TRANSMIT_2OO2_STATE_LINK ((UINT8)0x02) /*ά������*/ +#define TRANSMIT_2OO2_STATE_BAD ((UINT8)0x03) /*ͨ���ж�*/ -/*ͨ״̬(ڷATS豸״̬֡ͨϢ)*/ -#define TRANSMIT_CI_STATE_GOOD ((UINT8)0x55) /*ͨ*/ -#define TRANSMIT_CI_STATE_LINK ((UINT8)0xAA) /*ά*/ -#define TRANSMIT_CI_STATE_BAD ((UINT8)0xFF) /*ͨж*/ +/*ͨ��״̬(���ڷ�ATS�豸״̬֡��ͨ��������Ϣ)*/ +#define TRANSMIT_CI_STATE_GOOD ((UINT8)0x55) /*ͨ������*/ +#define TRANSMIT_CI_STATE_LINK ((UINT8)0xAA) /*ά������*/ +#define TRANSMIT_CI_STATE_BAD ((UINT8)0xFF) /*ͨ���ж�*/ -/*ͨŹж*/ -#define COM_ERROR_FSIO_MAXCYCLENUM ((UINT16)5) /*IOͨŹж*/ -#define COM_ERROR_LEU_MAXCYCLENUM ((UINT32)100) /*LEUͨŹж*/ +/*ͨ�Ź����ж�*/ +#define COM_ERROR_FSIO_MAXCYCLENUM ((UINT16)5) /*IO������ͨ�Ź����ж����������*/ +#define COM_ERROR_LEU_MAXCYCLENUM ((UINT32)100) /*LEU������ͨ�Ź����ж����������*/ -/*ͨ*/ -#define COM_CYCNUM_CI_TO_ATS ((UINT8)1) /*ATSÿڷһ*/ -#define COM_CYCNUM_CI_TO_XIANDI ((UINT8)1) /*ֵÿڷһ*/ +/*ͨ������*/ +#define COM_CYCNUM_CI_TO_ATS ((UINT8)1) /*������ATSÿ�������ڷ���һ��*/ +#define COM_CYCNUM_CI_TO_XIANDI ((UINT8)1) /*�������ֵ�ÿ�������ڷ���һ��*/ -#define TRANSMIT_NET_ATC_RED ((UINT8)0x55) /*ATCչ*/ -#define TRANSMIT_NET_ATC_BLUE ((UINT8)0xAA) /*ATCչ*/ +#define TRANSMIT_NET_ATC_RED ((UINT8)0x55) /*ATC��������չ����*/ +#define TRANSMIT_NET_ATC_BLUE ((UINT8)0xAA) /*ATC��������չ����*/ #endif diff --git a/TSCP/src/MSCP/MSCP_main.c b/TSCP/src/MSCP/MSCP_main.c index b5f36d0..07f7e22 100644 --- a/TSCP/src/MSCP/MSCP_main.c +++ b/TSCP/src/MSCP/MSCP_main.c @@ -657,7 +657,7 @@ static void SelfCheckInit(void) { #ifdef QNX /*- 文件自检初始化 */ - PFM_FileInit(); + //PFM_FileInit(); /*- 内存自检初始化*/ PFM_MemCheck_Init(); /*- CPU自检初始化*/ diff --git a/TSCP/src/dqu_common/dqu_emap_common/dsuEmapDefine.h b/TSCP/src/dqu_common/dqu_emap_common/dsuEmapDefine.h index 6d2ebd2..8950ef9 100644 --- a/TSCP/src/dqu_common/dqu_emap_common/dsuEmapDefine.h +++ b/TSCP/src/dqu_common/dqu_emap_common/dsuEmapDefine.h @@ -296,7 +296,8 @@ #define MA_REVERT_END 2 /*۷*/ #define MA_OTHER_END 3 /*յ*/ -#define DEVTYPE_CI 0x3c /*CIͺ*/ +#define DEVTYPE_CI 0x3c /*CIͺ*/ +#define DEVTYPE_RC 0x3d /*CIͺ*/ #define DEVTYPE_ZC 0x1e /*ZCݺ*/ #define DEVTYPE_ATS 0x03 /*ATSݺ*/ #define DEVTYPE_VOBC 0x14U /*VOBCݺ*/ diff --git a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h index 1eca888..9448d70 100644 --- a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h +++ b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h @@ -45,6 +45,7 @@ #define QFUN_IDMAP_PHY_ID 19 /*αID*/ #define QFUN_IDMAP_AXLE_ID 21 /*ϵͳID*/ #define QFUN_IDMAP_ITE_ID 22 /*ITEID*/ +#define QFUN_IDMAP_RC_ID 23 /*RCID*/ #define IDMAP_TYPE_MIN 1 /*ѯṹСֵ add by qxt 20170509*/ #define IDMAP_TYPE_MAX 21 /*ѯṹֵڷѯstruTypeķΧ*/ diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbLnkNodeMgr.c b/TSCP/src/protocol/fsfb/common_fsfb/FsfbLnkNodeMgr.c index 09659a5..ce90267 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbLnkNodeMgr.c +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbLnkNodeMgr.c @@ -60,7 +60,7 @@ static UINT8 FsfbSetNodeParam(const DSU_FSFB_LINK_RINFO_STRU* pRecvDsuLnkInf, FsfbNodeParamInfoStru *pNodeParam); static UINT8 FsfbCheckRecvDsuLnkInfo(UINT16 srcAddr,UINT16 destAddr, const DSU_FSFB_LINK_RINFO_STRU *pRecvLnkInfo); -static UINT8 FsfbCheckInputAddr(UINT16 LocalDevName,UINT16 destName,const DSU_FSFB_LINK_RINFO_STRU *pRecvLnkInfo); +static UINT8 FsfbCheckInputAddr(UINT16 locTypeId, UINT16 oppTypeId, const DSU_FSFB_LINK_RINFO_STRU* pRecvLnkInfo); static void FsfbLnkNodeInfo2VarArray(const Fsfb_Lnk_Info_Node_Stru* pNode, UINT8* VarArray, UINT8* recordArray, UINT16 recordArraySize); /*-------------------------------------------------------------------- * ·ģڲ End @@ -132,8 +132,8 @@ UINT8 FsfbOutputReplaceLnkNode(UINT16 locName,UINT16 destName,UINT8 applyCat,Fsf FSFB_INFO_STRU *pFsfbStruct) { UINT8 ret = 0,chcRet = 0; - DSU_FSFB_LINK_RINFO_STRU rcvLnkInfo; /* ΪܽڵϢ */ - DSU_FSFB_LINK_SINFO_STRU outLnkInfo; /* ΪͽڵϢ*/ + DSU_FSFB_LINK_RINFO_STRU rcvLnkInfo = { 0 }; /* ΪܽڵϢ */ + DSU_FSFB_LINK_SINFO_STRU outLnkInfo = { 0 }; /* ΪͽڵϢ*/ Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo = NULL; /* * ݱ豸ƺͶԷ豸ƻȡΪܽڵϢ @@ -547,9 +547,9 @@ UINT8 FsfbUptLnkNodeInfoByAbt(UINT8* pAppData, FSFB_INFO_STRU* pFsfbStrut, Fsfb_ pLnkNode->IsSendFlag = 1u; rtnVal = 1u; /*-< úֵΪɹ*/ } - - return rtnVal; /*-< غֵ*/ } + + return rtnVal; /*-< غֵ*/ } @@ -1180,53 +1180,35 @@ static UINT8 FsfbCheckRecvDsuLnkInfo(UINT16 srcAddr,UINT16 destAddr, return retVal; } -/*********************************************************************** -* : FsfbCheckInputAddr -* : ݱ豸ԼԷ豸ʶ ȡõıΪϢǷȷ -* : -* -* ------------------------------------------------------------------------ -* LocalDevName UINT16 IN ʶ -* destName UINT16 IN Էʶ -* pRecvLnkInfo const DSU_FSFB_LINK_RINFO_STRU* IN Ϣ -* -* ֵ : UINT8 1 0󷵻 -***********************************************************************/ -static UINT8 FsfbCheckInputAddr(UINT16 LocalDevName,UINT16 destName,const DSU_FSFB_LINK_RINFO_STRU *pRecvLnkInfo) +/** + * @brief FsfbCheckInputAddr 鱾IDΪϢǷȷ + * @param locTypeId ID ȡֵΧ:0x0000-0xFFFF + * @param oppTypeId ԷID ȡֵΧ:0x0000-0xFFFF + * @param pRecvLnkInfo շ·Ϣ ȡֵΧ:οṹDSU_FSFB_LINK_RINFO_STRU + * @return 0:ʧ 1:ɹ + */ +static UINT8 FsfbCheckInputAddr(UINT16 locTypeId, UINT16 oppTypeId, const DSU_FSFB_LINK_RINFO_STRU* pRecvLnkInfo) { - UINT8 ret = 0; - UINT8 locType =0; - UINT8 destType = 0; - UINT8 id =0; + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪʧ*/ + UINT8 locType = 0u; /**/ + UINT8 oppType = 0u; /*Է*/ + UINT8 id = 0u; /*豸ID*/ - if (pRecvLnkInfo== NULL) + if ((NULL != pRecvLnkInfo) && (pRecvLnkInfo->DestName == locTypeId)) /*-< ǿ ·Ŀ豸ڱID*/ { - return ret; + ComDevName2TypeId(locTypeId, &locType, &id); /*-< úݱIDȡӦͺID*/ + ComDevName2TypeId(oppTypeId, &oppType, &id); /*-< úݶԷIDȡӦͺID*/ + + if ((((FSFB_CI_DEV == locType) || (FSFB_RC_DEV == locType)) && (FSFB_LEU_DEV == oppType)) || ((FSFB_LEU_DEV == locType) && ((FSFB_CI_DEV == oppType) || (FSFB_RC_DEV == oppType)))) /*-< ΪCIRC ҶԷΪLEU ΪLEU ҶԷΪCIRC*/ + { + rtnVal = 1u; /*-< úֵΪɹ*/ + } } - if (pRecvLnkInfo->DestName != LocalDevName) - { - return ret; - } - ComDevName2TypeId(LocalDevName,&locType,&id); - ComDevName2TypeId(destName,&destType,&id); - /* - * Էʶͱıʶ Ӧøַ - */ - if(((locType ==FSFB_CI_DEV)&&(destType==FSFB_LEU_DEV))||((locType ==FSFB_LEU_DEV)&&(destType==FSFB_CI_DEV))) - { - ret = 1; - } - else - { - ret=0; - } - return ret; + return rtnVal; /*-< غֵ*/ } - - - /*********************************************************************** * : FsfbLnkNodeInfo2VarArray * : ͨŽڵϢд뵽м档 diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c b/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c index 07115f8..4733fee 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c @@ -1,50 +1,50 @@ /************************************************************************ * -* ļ FsfbMessageInfo.h -* Ȩ˵ ؿƼ޹˾ -* 汾 1.0 -* ʱ 2013.09.05 -* -* FSFB/2Э֡ʽԼϢĺ궨 -* ʹע -* ޸ļ¼ -* 2014.05.14 -* ޸ݣ ArrordLnkInfoCreateFrameм˷BTD֡ABT֡ķ֧case Fsfb_SendBtm_BtdAbt: - ޸ɣ CIյBTD֡ʱӦLEUȷ֡ABT֡ -* 2014.05.14 -* ޸ݣ FsfbAnalysisBtdMsgڽյBTDϷ󣬽״̬Ϊ retLnkNodePtr->FsfbLinInfo.SendLinkStatus = Fsfb_SendBtm_BtdAbt; -* ޸ɣ CIյBTD֡ʱӦLEUȷ֡ABT֡ -* 2014.05.14 -* ޸ݣ CreateBtmMsgڴSBT֡ʱȡԷ״̬ͽ״̬ĸֵ -* ޸ɣ ڴ˺ֻ𴴽BTMģʽµ֡·״̬ά -* 2014.05.22 -* ޸ݣ ArrordLnkInfoCreateFrame()У״̬ΪFsfb_SendBtm_Btcʱ -* SSRBTCʱ״̬ΪFsfb_WaitBtm_BtcabtBTCABT -* ֻBTCʱ״̬ΪFsfb_WaitBtm_AbtOrSseLEUSSEBTCABT -* ·״̬ȫΪֹͣ -* ޸ɣ SSRBTCʱ״̬ΪԭΪFsfb_WaitBtm_SseabtǴ -* 2014.05.22 -* ޸ݣ FsfbAnalysisBtdMsgУ֤BTD֡ϷҪͱ־Ϊ1 -* ΪABT֡׼ -* ޸ɣ ֮ǰû÷ͱ־ -* 2014.05.22 -* ޸: CreateTsdOrSbtMsgУڷTSD֡ʱ״̬ӦΪȴSSE -* ޸ɣ ֮ǰΪ -* 2014.05.22 -* ޸ݣ CreateSseMsgУSSE֡ʱ״̬ΪȴSSR״̬Ϊ -* ޸ɣ ֮ǰû÷״ֹ̬ƵSSE -* 2014.05.22 -* ޸ݣ CreateSsrMsgУSSRΪBTMģʽµģ״̬ΪBTC״̬Ϊ1 -* ޸ɣ ֮ǰûнͱ־Ϊ1 -* 2014.08.05 -* ޸: FsfbAnalysisSseMsg()УCRCУ -* ޸: ֮ǰ©һCRC -* 2014.08.05 -* ޸: BTDзʱʧܵķ֧޸ķֵΪ0 -* ޸: ΪϲúУʧܵĻӦýݽӦá -* 2014.08.14 -* ޸ݣ AccordInfoCreateFrameDataж֡ӦݲֵijȽзС0򷵻ʧ -* ޸ɣ ֮ǰûжԴ˳Ƚз +* �ļ��� �� FsfbMessageInfo.h +* ��Ȩ˵�� �� �������ؿƼ����޹�˾ +* �汾�� �� 1.0 +* ����ʱ�� �� 2013.09.05 +* ���� �� ������ +* �������� �� FSFB/2Э����֡��ʽ�Լ������Ϣ�ĺ궨�� +* ʹ��ע�� �� �� +* �޸ļ�¼ �� +* 2014.05.14 ������ +* �޸����ݣ� ��ArrordLnkInfoCreateFrame���������м��˷���BTD֡��ABT֡�ķ�֧��case Fsfb_SendBtm_BtdAbt: + �޸����ɣ� ��CI�յ�BTD֡ʱ��Ӧ����LEU������ȷ��֡ABT֡�� +* 2014.05.14 ������ +* �޸����ݣ� ��FsfbAnalysisBtdMsg�����������ڽ��յ�BTD�Ϸ��󣬽�����״̬��Ϊ retLnkNodePtr->FsfbLinInfo.SendLinkStatus = Fsfb_SendBtm_BtdAbt; +* �޸����ɣ� ��CI�յ�BTD֡ʱ��Ӧ����LEU������ȷ��֡ABT֡�� +* 2014.05.14 ������ +* �޸����ݣ� ��CreateBtmMsg�����������ڴ���SBT֡ʱ��ȡ���Է���״̬�ͽ���״̬�ĸ�ֵ +* �޸����ɣ� �ڴ˺���ֻ���𴴽�BTMģʽ�µ�֡����������·״̬��ά�� +* 2014.05.22 ������ +* �޸����ݣ� ��ArrordLnkInfoCreateFrame()�У�����״̬ΪFsfb_SendBtm_Btcʱ +* ��������SSR��BTCʱ�����״̬Ϊ��Fsfb_WaitBtm_Btcabt����BTC��ABT +* ����ֻ����BTCʱ����״̬Ϊ��Fsfb_WaitBtm_AbtOrSse������LEU��SSE��BTC��ABT +* ��������·���״̬ȫ����Ϊ��ֹͣ���� +* �޸����ɣ� ��������SSR��BTCʱ�����״̬Ϊ��ԭΪFsfb_WaitBtm_Sseabt�Ǵ���� +* 2014.05.22 ������ +* �޸����ݣ� ��FsfbAnalysisBtdMsg���������У�����֤BTD֡�Ϸ�����Ҫ�����ͱ�־��Ϊ1 +* Ϊ����ABT֡��׼�� +* �޸����ɣ� ֮ǰû���÷��ͱ�־ +* 2014.05.22 ������ +* �޸�����: ��CreateTsdOrSbtMsg���������У��ڷ���TSD֡ʱ������״̬Ӧ����Ϊ�ȴ�SSE +* �޸����ɣ� ֮ǰΪ�� +* 2014.05.22 ������ +* �޸����ݣ� ��CreateSseMsg���������У�����SSE֡ʱ����״̬����Ϊ�ȴ�SSR������״̬��Ϊ�������� +* �޸����ɣ� ֮ǰû���÷���״̬����ֹƵ������SSE +* 2014.05.22 ������ +* �޸����ݣ� ��CreateSsrMsg���������У���SSR��ΪBTMģʽ�µģ�����״̬Ϊ����BTC������״̬��Ϊ1 +* �޸����ɣ� ֮ǰû�н����ͱ�־��Ϊ1 +* 2014.08.05 ������ +* �޸�����: ��FsfbAnalysisSseMsg()�����У�������CRCУ�� +* �޸�����: ֮ǰ©����һ�����CRC��� +* 2014.08.05 ������ +* �޸�����: ��BTD���з���ʱ������ʧ�ܵķ�֧�޸ķ���ֵΪ0 +* �޸�����: ��Ϊ���ϲ���ú����У��������ʧ�ܵĻ���Ӧ�ý������ݽ�����Ӧ�á� +* 2014.08.14 ������ +* �޸����ݣ� ��AccordInfoCreateFrameData���������ж�֡��Ӧ�����ݲ��ֵij��Ƚ��з�����С��0�򷵻�ʧ�� +* �޸����ɣ� ֮ǰû�жԴ˳��Ƚ��з��� * ************************************************************************/ @@ -53,14 +53,13 @@ #include "CommonRecord.h" #include "dsuFsfbFunc.h" #include "FsfbConfig.h" -#include "FsfbRecordDelare.h " +#include "FsfbRecordDelare.h" #include "FsfbMessageInfo.h" #include "FsfbLnkNodeMgr.h" /*-------------------------------------------------------------------- - * Ĵģڲ Start + * ���Ĵ���ģ���ڲ��������� Start *--------------------------------------------------------------------*/ -static UINT8 CreateTsdOrSbtMsg(const UINT8 *pAppData,UINT16 DataLen,UINT8 applyCat, - UINT8 *OutTsdOrSbtMsg,UINT16* outPutDataLen, Fsfb_Lnk_Info_Node_Stru* pPNode); +static UINT8 CreateTsdOrSbtMsg(const UINT8* pAppData, UINT16 DataLen, UINT8 applyCat, UINT8* OutTsdOrSbtMsg, UINT16* outPutDataLen, Fsfb_Lnk_Info_Node_Stru* pPNode); static UINT8 CreateSseMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo,UINT8* outSseMsg); static UINT8 CreateSsrMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo,UINT8* outSsrMsg); static UINT8 CreateBtmMsg(const UINT8 *pAppData,UINT16 DataLen,UINT16 userDataLen,UINT8 messType, @@ -70,112 +69,112 @@ static UINT8 FsfbCheckBtdMsg(const UINT8 *pBtdMsg,Fsfb_Lnk_Info_Node_Stru *pLnkN /* test todo */ void BuildSbtFrameDf(Fsfb_Lnk_Info_Node_Stru* pNode,UINT8* pMsgDataBuff); /*-------------------------------------------------------------------- - * Ĵģڲ End + * ���Ĵ���ģ���ڲ��������� End *--------------------------------------------------------------------*/ /*-------------------------------------------------------------------- - * Ĵģⲿӿ Start + * ���Ĵ���ģ���ⲿ�����ӿ� Start *--------------------------------------------------------------------*/ /*********************************************************************** -* : AccordInfoCreateFrameData -* : ӦȷSBTTSD -* : -* +* ������ : AccordInfoCreateFrameData +* �������� : ����Ӧ������ȷ������SBT��TSD���� +* ������� : +* ������ ���� ������� ���� * -------------------------------------------------------------------------- -* pAppData UINT8* IN Ӧ -* DataLen UINT816 IN ݳ -* OutMsg UINT8* OUT ı -* outPutDataLen UINT16* OUT ij -* pPNode Fsfb_Lnk_Info_Node_Stru** OUT ·Ϣ -* pFsfbStru FSFB_INFO_STRU * INOUT Эͳһṹ -* ֵ : UINT8* :1: 1:󷵻 +* pAppData UINT8* IN Ӧ������ +* DataLen UINT816 IN ���ݳ��� +* OutMsg UINT8* OUT ����ı��� +* outPutDataLen UINT16* OUT ������ij��� +* pPNode Fsfb_Lnk_Info_Node_Stru** OUT ��·��Ϣ +* pFsfbStru FSFB_INFO_STRU * INOUT Э��ͳһ�ṹ�� +* ����ֵ : UINT8* :1:�������� 1:���󷵻� ***********************************************************************/ UINT8 AccordInfoCreateFrameData(const UINT8 *pAppData,UINT16 DataLen, UINT8 *OutMsg,UINT16* outPutDataLen,Fsfb_Lnk_Info_Node_Stru** pPNode,FSFB_INFO_STRU *pFsfbStru) { UINT8 retVal =0; - UINT16 destDevName = 0;/* Է豸 */ - UINT16 localDevName =0; /* 豸 */ + UINT16 destDevName = 0;/* �Է��豸���� */ + UINT16 localDevName =0; /* �����豸���� */ UINT8 applycat =0; UINT16 index=0; UINT16 msgLen =0; - UINT8 *RecordArray = pFsfbStru->RecordArray; /* ¼ */ - UINT16 RecordSize = pFsfbStru->RecordArraySize; /* ¼С */ - Fsfb_Lnk_Info_Node_Stru *pTmpNode = NULL; /* ͨŽڵָ */ - const UINT8 DEST_TYPE_APP_QUE_POS = 2; /* ӦòбԷ͵λ */ - const UINT8 DEST_ID_APP_QUE_POS = DEST_TYPE_APP_QUE_POS+1; /* ӦòбԷIDλ */ - const UINT8 DEST_APP_COMMAND_POS = DEST_ID_APP_QUE_POS+1; /* ӦòбԷIDλ */ - const UINT8 DATA_APP_QUE_POS = DEST_APP_COMMAND_POS+1; /* ӦòбӦݵλ */ + UINT8 *RecordArray = pFsfbStru->RecordArray; /* ��¼ */ + UINT16 RecordSize = pFsfbStru->RecordArraySize; /* ��¼�����С */ + Fsfb_Lnk_Info_Node_Stru *pTmpNode = NULL; /* ͨ�Žڵ�ָ�� */ + const UINT8 DEST_TYPE_APP_QUE_POS = 2; /* Ӧ�ò���б���Է����͵�λ�� */ + const UINT8 DEST_ID_APP_QUE_POS = DEST_TYPE_APP_QUE_POS+1; /* Ӧ�ò���б���Է�ID��λ�� */ + const UINT8 DEST_APP_COMMAND_POS = DEST_ID_APP_QUE_POS+1; /* Ӧ�ò���б���Է�ID��λ�� */ + const UINT8 DATA_APP_QUE_POS = DEST_APP_COMMAND_POS+1; /* Ӧ�ò���б���Ӧ�����ݵ�λ�� */ ComTypeId2DevName(pFsfbStru->LocalType, pFsfbStru->LocalID, &localDevName); /* * ------------------------------------------------------------ - * ݳ | DestType | DestID | CommandType |Ӧ | - * 2ֽ | 1ֽ | 1ֽ | 1ֽ | n | + * ���ݳ��� | DestType | DestID | CommandType |Ӧ������ | + * 2�ֽ� | 1�ֽ� | 1�ֽ� | 1�ֽ� | n | * ------------------------------------------------------------ */ - /*Է豸 */ + /*�Է��豸������ */ ComTypeId2DevName(pAppData[DEST_TYPE_APP_QUE_POS], pAppData[DEST_ID_APP_QUE_POS], &destDevName); msgLen = DataLen-DATA_APP_QUE_POS; -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordSize,"IN:\n"); PrintFiles(RecordArray,RecordSize,"LocalName:"); - PrintFileU16Hex(RecordArray,RecordSize,localDevName); /* 豸 */ + PrintFileU16Hex(RecordArray,RecordSize,localDevName); /* �����豸 */ PrintFiles(RecordArray,RecordSize,"\tDestName:"); - PrintFileU16Hex(RecordArray,RecordSize,destDevName); /* Է豸 */ + PrintFileU16Hex(RecordArray,RecordSize,destDevName); /* �Է��豸 */ PrintFiles(RecordArray,RecordSize,"\tDataLen:"); - PrintFileU16Hex(RecordArray,RecordSize,msgLen); /* Ӧݳ */ + PrintFileU16Hex(RecordArray,RecordSize,msgLen); /* ��Ӧ�����ݳ��� */ PrintFiles(RecordArray,RecordSize,"\n"); #endif -#ifdef FSFB_RECORD_SIMPLIFY_BIN /* */ - PrintRecArrayByte(RecordArray, RecordSize, OUT_APP_FRAME); /* һϢ֡ʼʶ */ - PrintRecArray2ByteB(RecordArray, RecordSize, localDevName); /* 豸 */ - PrintRecArray2ByteB(RecordArray, RecordSize, destDevName); /* Է豸 */ - PrintRecArray2ByteB(RecordArray, RecordSize, msgLen); /* Ӧݳ */ - PrintRecArrayByte(RecordArray, RecordSize, pAppData[DEST_APP_COMMAND_POS]); /**/ +#ifdef FSFB_RECORD_SIMPLIFY_BIN /* ������ */ + PrintRecArrayByte(RecordArray, RecordSize, OUT_APP_FRAME); /* һ��Ϣ֡��ʼ��ʶ */ + PrintRecArray2ByteB(RecordArray, RecordSize, localDevName); /* �����豸 */ + PrintRecArray2ByteB(RecordArray, RecordSize, destDevName); /* �Է��豸 */ + PrintRecArray2ByteB(RecordArray, RecordSize, msgLen); /* ��Ӧ�����ݳ��� */ + PrintRecArrayByte(RecordArray, RecordSize, pAppData[DEST_APP_COMMAND_POS]); /*��������*/ #endif if(msgLen < 0) - {/*֡ݳȲϷ*/ + {/*֡���ݳ��Ȳ��Ϸ�*/ retVal = 0; } else { - /* */ + /* �������� */ applycat =pAppData[DEST_APP_COMMAND_POS]; if((applycat== APPLCAT_TDM)||(applycat==APPLCAT_BTM)) { - /* ѯӦͨŽڵǷ */ + /* ��ѯ��Ӧͨ�Žڵ��Ƿ���� */ pTmpNode = FsfbSearchNodeByName(destDevName,applycat,pFsfbStru); - if(NULL == pTmpNode) /* ͨŽڵ㲻 */ + if(NULL == pTmpNode) /* ͨ�Žڵ㲻���� */ { - /* ݵַĸǽڵ㣬ڵ㸲 */ + /* ���ݵ�ַ�����ĸ��ǽڵ㣬���ڵ㸲�� */ retVal =FsfbOutputReplaceLnkNode(localDevName,destDevName,applycat,&pTmpNode,pFsfbStru); } - else /* ͨŽڵ */ + else /* ͨ�Žڵ���� */ { - /* */ + /* �������� */ retVal =1; } if (retVal != 0) { - (*pPNode) = pTmpNode; /* ͨŽڵָ뱣浽ָ */ - /* ֽڵij */ + (*pPNode) = pTmpNode; /* ��ͨ�Žڵ�ָ�뱣�浽���ָ������� */ + /* �����ֽڵij��� */ /*ShortToChar(msgLen+2,&OutMsg[index]);*/ index = index+2; - /* 1ֽڵ豸*/ + /* 1���ֽڵ��豸����*/ OutMsg[index++]=pAppData[DEST_TYPE_APP_QUE_POS]; - /* 1ֽڵ豸ID */ + /* 1���ֽڵ��豸ID */ OutMsg[index++]=pAppData[DEST_ID_APP_QUE_POS]; - /* ֡TSDSBT֡ */ + /* ����֡TSD����SBT֡ */ retVal=CreateTsdOrSbtMsg(&pAppData[DATA_APP_QUE_POS],msgLen,applycat,&OutMsg[index],outPutDataLen,pTmpNode); index+=(*outPutDataLen); *outPutDataLen +=4; - /* ֽڵij */ + /* �����ֽڵij��� */ ShortToChar(index-2,OutMsg); } else @@ -185,27 +184,27 @@ UINT8 AccordInfoCreateFrameData(const UINT8 *pAppData,UINT16 DataLen, } else { - PrintRecArrayByte(RecordArray, RecordSize, OUT_FRAME_TYPE_ERR); /* һϢ֡ʼʶ */ + PrintRecArrayByte(RecordArray, RecordSize, OUT_FRAME_TYPE_ERR); /* һ��Ϣ֡��ʼ��ʶ */ PrintRecArrayByte(RecordArray, RecordSize, applycat); retVal = 0; } } - /* Ϣ֡ */ + /* ��Ϣ֡���� */ return retVal; } /*********************************************************************** -* : ArrordLnkInfoCreateFrame -* : ·зͽڵ״̬齨֡ʽ -* : -* +* ������ : ArrordLnkInfoCreateFrame +* �������� : ������·�з��ͽڵ��״̬�齨֡��ʽ�� +* ������� : +* ������ ���� ������� ���� * ------------------------------------------------------------------------------- -* pFsfbStruct FSFB_INFO_STRU* IN ͳһṹ -* outMsg UINT8* OUT FSFDϢ֡ -* datalen UINT16* OUT Ϣ +* pFsfbStruct FSFB_INFO_STRU* IN ͳһ�ṹ�� +* outMsg UINT8* OUT FSFD��Ϣ֡ +* datalen UINT16* OUT �����Ϣ���� -* ֵ : UINT8 1 0󷵻 +* ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ /* todo */ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* datalen) @@ -214,7 +213,7 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* UINT16 index = 0; UINT16 msgLen =0; UINT8 startFlag = 0; - Fsfb_Lnk_Info_Node_Stru* CurFillLnk;/*嵱ǰָ;*/ + Fsfb_Lnk_Info_Node_Stru* CurFillLnk;/*���嵱ǰָ��;*/ CurFillLnk=pFsfbStruct->LnkHead; while(CurFillLnk != NULL) @@ -227,11 +226,11 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* { LnkInfoBuildFrame(CurFillLnk->DestDevName,SSR_SIZE+2,&outMsg[index]); index+=4; - /* SSR ֡ */ + /* ����SSR ֡ */ retVal=CreateSsrMsg(APPLCAT_TDM,CurFillLnk,&outMsg[index]); index+=SSR_SIZE; - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /*�����������*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, CurFillLnk->DestDevName); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, APPLCAT_TDM); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, FSFB_SSR_MSG); @@ -247,7 +246,7 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* switch(CurFillLnk->FsfbLinInfo.SendLinkStatus) { case Fsfb_SendSSR: - /* SSR ֡ */ + /* ����SSR ֡ */ LnkInfoBuildFrame(CurFillLnk->DestDevName,SSR_SIZE+2,&outMsg[index]); index+=4; retVal = CreateSsrMsg(APPLCAT_BTM,CurFillLnk,&outMsg[index]); @@ -255,7 +254,7 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* startFlag = 1; - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /*�����������*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, CurFillLnk->DestDevName); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, APPLCAT_BTM); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, FSFB_SSR_MSG); @@ -275,7 +274,7 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* } LnkInfoBuildFrame(CurFillLnk->DestDevName,BTC_SIZE+2,&outMsg[index]); index+=4; - /* 齨Ӧ */ + /* �齨Ӧ������ */ BuildBtcBody(pFsfbStruct->TmpDataBuff,&msgLen); retVal = CreateBtmMsg(pFsfbStruct->TmpDataBuff,msgLen,BTC_DF_SIZE,FSFB_BTC_MSG,&outMsg[index],CurFillLnk); index +=BTC_SIZE; @@ -290,7 +289,7 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* retVal = CreateBtmMsg(pFsfbStruct->TmpDataBuff,msgLen,ABT_DF_SIZE,FSFB_ABT_MSG,&outMsg[index],CurFillLnk); index +=ABT_SIZE; - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /*�����������*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, CurFillLnk->DestDevName); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, APPLCAT_BTM); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, FSFB_ABT_MSG); @@ -305,7 +304,7 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* CurFillLnk->FsfbLinInfo.SendLinkStatus = Fsfb_SendBtm_Sbt; index +=ABT_SIZE; - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /*�����������*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, CurFillLnk->DestDevName); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, APPLCAT_BTM); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, FSFB_ABT_MSG); @@ -318,25 +317,25 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* retVal = CreateBtmMsg(pFsfbStruct->TmpDataBuff,msgLen,EBT_DF_SIZE,FSFB_EBT_MSG,&outMsg[index],CurFillLnk); index += EBT_SIZE; - CurFillLnk->FsfbLinInfo.RecvLinkStatus = Fsfb_Halt; /*-< ý״̬Ϊж*/ - CurFillLnk->FsfbLinInfo.SendLinkStatus = Fsfb_Halt; /*-< ÷״̬Ϊж*/ - CurFillLnk->FsfbLinInfo.NoRecvDataCycleNum = 0u; /*-< */ - CurFillLnk->FsfbLinInfo.NoAppDataCycleNum = 0u; /*-< ޷*/ + CurFillLnk->FsfbLinInfo.RecvLinkStatus = Fsfb_Halt; /*-< ���ý�������״̬Ϊ�ж�*/ + CurFillLnk->FsfbLinInfo.SendLinkStatus = Fsfb_Halt; /*-< ���÷�������״̬Ϊ�ж�*/ + CurFillLnk->FsfbLinInfo.NoRecvDataCycleNum = 0u; /*-< ������������������*/ + CurFillLnk->FsfbLinInfo.NoAppDataCycleNum = 0u; /*-< �����޷�����������*/ - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /*�����������*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, CurFillLnk->DestDevName); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, APPLCAT_BTM); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, FSFB_EBT_MSG); break; case Fsfb_SendSSE: - /* ֡ͷ */ + /* ����֡ͷ */ LnkInfoBuildFrame(CurFillLnk->DestDevName,SSE_SIZE+2,&outMsg[index]); index+=4; retVal = CreateSseMsg(APPLCAT_BTM,CurFillLnk,&outMsg[index]); index +=SSE_SIZE; - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_DATA_TYPE); /*�����������*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, CurFillLnk->DestDevName); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, APPLCAT_BTM); PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, FSFB_SSE_MSG); @@ -354,7 +353,7 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* #if 0 if (CurFillLnk->FsfbLinInfo.RecvLinkStatus == Fsfb_SendBtm_Sbt) { - /* SBT֡ */ + /* ����SBT֡ */ LnkInfoBuildFrame(CurFillLnk->DestDevName,SBT_SIZE+2,&outMsg[index]); index+=4; retVal = CreateTsdOrSbtMsg(NULL,0,APPLCAT_BTM,&outMsg[index],&msgLen,CurFillLnk); @@ -380,42 +379,42 @@ UINT8 ArrordLnkInfoCreateFrame(FSFB_INFO_STRU* pFsfbStruct,UINT8* outMsg,UINT16* } /*********************************************************************** -* : BuildBtcBody -* :齨BTC֡Body֡ -* : -* +* ������ : BuildBtcBody +* �������� :�齨BTC֡��Body���֡� +* ������� : +* ������ ���� ������� ���� * ------------------------------------------------------------------------------- -* pOutDataBuff UINT8* OUT -* outDataLen UINT16* OUT ݳ -* ֵ : +* pOutDataBuff UINT8* OUT ������� +* outDataLen UINT16* OUT ���ݳ��� +* ����ֵ : �� ***********************************************************************/ void BuildBtcBody(UINT8* pOutDataBuff,UINT16* outDataLen) { UINT8 index=0; #if 0 - /* ֽڵOperation Type */ + /* �����ֽڵ�Operation Type */ ShortToChar(0x0000,&pOutDataBuff[index]); index+=2; - /* 2ֽڵBuffer Type */ + /* 2���ֽڵ�Buffer Type */ ShortToChar(0x000A,&pOutDataBuff[index]); index+=2; - /* 2ֽڵSub_bufer Number Start */ + /* 2���ֽڵ�Sub_bufer Number Start */ ShortToChar(0x0001,&pOutDataBuff[index]); index+=2; - /* 2ֽڵNumber of Sub-buffer to Transmit */ + /* 2���ֽڵ�Number of Sub-buffer to Transmit */ ShortToChar(0xFFFF,&pOutDataBuff[index]); index+=2; #else - /* ֽڵOperation Type */ + /* �����ֽڵ�Operation Type */ ShortToChar(0x0000,&pOutDataBuff[index]); index+=2; - /* 2ֽڵBuffer Type */ + /* 2���ֽڵ�Buffer Type */ ShortToChar(0x0000,&pOutDataBuff[index]); index+=2; - /* 2ֽڵSub_bufer Number Start */ + /* 2���ֽڵ�Sub_bufer Number Start */ ShortToChar(0,&pOutDataBuff[index]); index+=2; - /* 2ֽڵNumber of Sub-buffer to Transmit */ + /* 2���ֽڵ�Number of Sub-buffer to Transmit */ ShortToChar(0,&pOutDataBuff[index]); index+=2; #endif @@ -423,37 +422,37 @@ void BuildBtcBody(UINT8* pOutDataBuff,UINT16* outDataLen) } /*********************************************************************** -* : LnkInfoBuildFrame -* :齨Ӧݵ֡ͷ -* : -* +* ������ : LnkInfoBuildFrame +* �������� :�齨�����Ӧ�����ݵ�֡ͷ�� +* ������� : +* ������ ���� ������� ���� * ------------------------------------------------------------------------------- -* devName UINT16 IN 豸 -* msgLen UINT16 IN ݳ -* pOutDataBuff UINT8* OUT -* ֵ : +* devName UINT16 IN �豸���� +* msgLen UINT16 IN ���ݳ��� +* pOutDataBuff UINT8* OUT ������� +* ����ֵ : �� ***********************************************************************/ void LnkInfoBuildFrame(UINT16 devName,UINT16 msgLen,UINT8* pOutDataBuff) { - /* ֽڵ֡ͷ */ + /* �����ֽڵ�֡ͷ */ ShortToChar(msgLen,pOutDataBuff); - /* 1ֽڵ豸, 1ֽڵ豸ID */ + /* 1���ֽڵ��豸����, 1���ֽڵ��豸ID */ ComDevName2TypeId(devName,&pOutDataBuff[2],&pOutDataBuff[3]); } /*********************************************************************** - * : FsfbAnalysisSseMsg - * : յSSEϢн֡ȡϢ - * : - * + * ������ : FsfbAnalysisSseMsg + * �������� : ���������յ���SSE��Ϣ���н�֡������ȡ�������Ϣ�� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * devName UINT16* IN 豸 + * devName UINT16* IN �豸���� * applyCat UINT8 IN application catory - * pAppData UINT8* IN Ӧ - * FSFB_INFO_STRU *pFsfbStruct FSFBͳһṹ - * RecordArray UINT8* INOUT ¼ - * RecordArraySize UINT16 IN ¼С - * ֵ : UINT8 1 0:󷵻 + * pAppData UINT8* IN Ӧ������ + * FSFB_INFO_STRU *pFsfbStruct FSFBͳһ�ṹ�� + * RecordArray UINT8* INOUT ��¼���� + * RecordArraySize UINT16 IN ��¼�����С + * ����ֵ : UINT8 1���������� 0:���󷵻� ***********************************************************************/ UINT8 FsfbAnalysisSseMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO_STRU *pFsfbStruct,UINT8 *RecordArray, UINT16 RecordArraySize) { @@ -466,7 +465,7 @@ UINT8 FsfbAnalysisSseMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO UINT16 srcAddr =0; Fsfb_Lnk_Info_Node_Stru *retLnkNodePtr = NULL; - /* CRC 趨 */ + /* CRC �趨 */ calcCrc16 = ComComputeMsgCRC16(pAppData,SSE_SIZE-FSFB_CRC_16_LEN); crc16 = ShortFromCharLE(&pAppData[SSE_SIZE-FSFB_CRC_16_LEN]); if(calcCrc16 == crc16) @@ -474,46 +473,46 @@ UINT8 FsfbAnalysisSseMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO srcAddr = ShortFromCharLE(&pAppData[FSFB_SRC_ADD_POS]); desAddr = ShortFromCharLE(&pAppData[FSFB_DEST_ADD_POS]); retLnkNodePtr = FsfbSearchNodeByName(devName,applyCat, pFsfbStruct); - /* жͨŽڵǷ */ + /* �ж�ͨ�Žڵ��Ƿ���� */ if( NULL != retLnkNodePtr) { - /* ͨŽڵڣô鱨ĵϢǷ͸ͨŽڵһ */ + /* ͨ�Žڵ���ڣ���ô��鱨�ĵ���Ϣ�Ƿ�͸�ͨ�Žڵ��һ�� */ retVal = FsfbCheckInfoAddr(srcAddr,desAddr,retLnkNodePtr); if(0 == retVal) { - /* һ ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��һ�� ����¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*ַ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*�����ַ����*/ #endif } - else /* ͨ */ + else /* ���ͨ�� */ { - /* ·Ϣṹ */ + /* ������·������Ϣ�ṹ�� */ retVal = FsfbUptLnkNodeInfoBySSE(pAppData,retLnkNodePtr); } } else { - /* ¼ ͨŽڵ㲻 */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ ͨ�Žڵ㲻���� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:Node Not Exist.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*·*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*����·*/ #endif } } else { - /* ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ �������� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:Msg Len Err.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC����*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, calcCrc16); PrintRecArray2ByteB(RecordArray, RecordArraySize, crc16); #endif @@ -524,18 +523,18 @@ UINT8 FsfbAnalysisSseMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO /*********************************************************************** - * : FsfbAnalysisSsrMsg - * : յSSRϢн֡ȡϢ - * : - * + * ������ : FsfbAnalysisSsrMsg + * �������� : ���������յ���SSR��Ϣ���н�֡������ȡ�������Ϣ�� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * devName UINT16* IN 豸 + * devName UINT16* IN �豸���� * applyCat UINT8 IN application catory - * pAppData UINT8* IN Ӧ - * pFsfbStruct FSFB_INFO_STRU* FSFBͳһṹ - * RecordArray UINT8* INOUT ¼ - * RecordArraySize UINT16 IN ¼С - * ֵ : UINT8 1 + * pAppData UINT8* IN Ӧ������ + * pFsfbStruct FSFB_INFO_STRU* FSFBͳһ�ṹ�� + * RecordArray UINT8* INOUT ��¼���� + * RecordArraySize UINT16 IN ��¼�����С + * ����ֵ : UINT8 1���������� ***********************************************************************/ UINT8 FsfbAnalysisSsrMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO_STRU *pFsfbStruct,UINT8 *RecordArray, UINT16 RecordArraySize) { @@ -546,67 +545,67 @@ UINT8 FsfbAnalysisSsrMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO UINT16 SrcAddr = 0; UINT16 DesAddr = 0; - /* CRC 趨 */ + /* CRC �趨 */ calcCrc16 = ComComputeMsgCRC16(pAppData,SSR_SIZE-FSFB_CRC_16_LEN); crc16 =ShortFromCharLE(&pAppData[SSR_SIZE-FSFB_CRC_16_LEN]); - /* ֤CRCǷϷ */ + /* ��֤CRC�Ƿ�Ϸ� */ if(crc16 == calcCrc16) { SrcAddr = ShortFromCharLE(&pAppData[FSFB_SRC_ADD_POS]); DesAddr = ShortFromCharLE(&pAppData[FSFB_DEST_ADD_POS]); retLnkNodePtr = FsfbSearchNodeByName(devName,applyCat,pFsfbStruct); - /* жͨŽڵǷ */ + /* �ж�ͨ�Žڵ��Ƿ���� */ if( NULL != retLnkNodePtr) { - /* ͨŽڵڣô鱨ĵϢǷ͸ͨŽڵһ */ + /* ͨ�Žڵ���ڣ���ô��鱨�ĵ���Ϣ�Ƿ�͸�ͨ�Žڵ��һ�� */ retVal = FsfbCheckInfoAddr(SrcAddr,DesAddr,retLnkNodePtr); if(0 == retVal) { - /* һ ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��һ�� ����¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*ַ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*�����ַ����*/ #endif } - else /* ͨ */ + else /* ���ͨ�� */ { - /* ·Ϣṹ */ + /* ������·������Ϣ�ṹ�� */ retVal = FsfbUptLnkNodeInfoBySsr(pAppData,applyCat,pFsfbStruct,retLnkNodePtr); if( 0 == retVal) { - /* ³˵ǶӦSSR ô¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ���³�����˵�����Ƕ�Ӧ��SSR���� ��ô��¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:SSR Msg Err.\n"); #endif } else { - /* ʲô */ + /* ʲô���� */ } } } else { - /* ¼ ͨŽڵ㲻 */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ ͨ�Žڵ㲻���� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*·*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*����·*/ #endif } } - else /* Ȳ */ + else /* ���Ȳ��� */ { - /* ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ �������� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:Msg Len Err.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC����*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, calcCrc16); PrintRecArray2ByteB(RecordArray, RecordArraySize, crc16); #endif @@ -621,18 +620,18 @@ UINT8 FsfbAnalysisSsrMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO /*********************************************************************** - * : FsfbAnalysisAbtMsg - * : յABTϢн֡ȡϢ - * : - * + * ������ : FsfbAnalysisAbtMsg + * �������� : ���������յ���ABT��Ϣ���н�֡������ȡ�������Ϣ�� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * devName UINT16* IN 豸 + * devName UINT16* IN �豸���� * applyCat UINT8 IN application catory - * pAppData UINT8* IN Ӧ - * pFsfbStruct FSFB_INFO_STRU* FSFBͳһṹ - * RecordArray UINT8* INOUT ¼ - * RecordArraySize UINT16 IN ¼С - * ֵ : UINT8 1 + * pAppData UINT8* IN Ӧ������ + * pFsfbStruct FSFB_INFO_STRU* FSFBͳһ�ṹ�� + * RecordArray UINT8* INOUT ��¼���� + * RecordArraySize UINT16 IN ��¼�����С + * ����ֵ : UINT8 1���������� ***********************************************************************/ UINT8 FsfbAnalysisAbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO_STRU *pFsfbStruct,UINT8 *RecordArray, UINT16 RecordArraySize) { @@ -644,13 +643,13 @@ UINT8 FsfbAnalysisAbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO UINT16 DesAddr = 0; UINT16 tmpSds =0; - /* CRC 趨 */ + /* CRC �趨 */ calcCrc16 = ComComputeMsgCRC16(pAppData,ABT_SIZE-FSFB_CRC_16_LEN); crc16 =ShortFromCharLE(&pAppData[ABT_SIZE-FSFB_CRC_16_LEN]); - /* ֤CRCǷϷ */ + /* ��֤CRC�Ƿ�Ϸ� */ if(crc16 == calcCrc16) { - /* ȫݴС */ + /* ��ȫ���ݴ�С */ tmpSds = ShortFromCharLE(&pAppData[FSFB_DATA_SIZE_POS]); if ((tmpSds != ABT_SDS)||(applyCat != APPLCAT_BTM)) { @@ -660,60 +659,60 @@ UINT8 FsfbAnalysisAbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO SrcAddr = ShortFromCharLE(&pAppData[FSFB_SRC_ADD_POS]); DesAddr = ShortFromCharLE(&pAppData[FSFB_DEST_ADD_POS]); retLnkNodePtr = FsfbSearchNodeByName(devName,applyCat,pFsfbStruct); - /* жͨŽڵǷ */ + /* �ж�ͨ�Žڵ��Ƿ���� */ if( NULL != retLnkNodePtr) { - /* ͨŽڵڣô鱨ĵϢǷ͸ͨŽڵһ */ + /* ͨ�Žڵ���ڣ���ô��鱨�ĵ���Ϣ�Ƿ�͸�ͨ�Žڵ��һ�� */ retVal = FsfbCheckInfoAddr(SrcAddr,DesAddr,retLnkNodePtr); if(0 == retVal) { - /* һ ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��һ�� ����¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*ַ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*�����ַ����*/ #endif } - else /* ͨ */ + else /* ���ͨ�� */ { - /* ·Ϣṹ */ + /* ������·������Ϣ�ṹ�� */ retVal = FsfbUptLnkNodeInfoByAbt(pAppData,pFsfbStruct,retLnkNodePtr); if( 0 == retVal) { - /* ³˵ǶӦSSR ô¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ���³�����˵�����Ƕ�Ӧ��SSR���� ��ô��¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:SSR Msg Err.\n"); #endif } else { - /* ʲô */ + /* ʲô���� */ } } } else { - /* ¼ ͨŽڵ㲻 */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ ͨ�Žڵ㲻���� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*·*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*����·*/ #endif } } - else /* Ȳ */ + else /* ���Ȳ��� */ { - /* ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ �������� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:Msg Len Err.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC����*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, calcCrc16); PrintRecArray2ByteB(RecordArray, RecordArraySize, crc16); #endif @@ -724,18 +723,18 @@ UINT8 FsfbAnalysisAbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO } /*********************************************************************** - * : FsfbAnalysisEbtMsg - * : յEBTϢн֡ȡϢ - * : - * + * ������ : FsfbAnalysisEbtMsg + * �������� : ���������յ���EBT��Ϣ���н�֡������ȡ�������Ϣ�� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * devName const UINT16 IN 豸 + * devName const UINT16 IN �豸���� * applyCat UINT8 IN application Catory - * pAppData UINT8* IN յ - * RecordArray UINT8* INOUT ¼ - * RecordArraySize UINT16 IN ¼С - * pFsfbStruct FSFB_INFO_STRU * IN FSFBЭͳһṹ - * ֵ : UINT8 1 + * pAppData UINT8* IN ���յ������� + * RecordArray UINT8* INOUT ��¼���� + * RecordArraySize UINT16 IN ��¼�����С + * pFsfbStruct FSFB_INFO_STRU * IN FSFBЭ��ͳһ�ṹ�� + * ����ֵ : UINT8 1���������� ***********************************************************************/ UINT8 FsfbAnalysisEbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO_STRU *pFsfbStruct,UINT8 *RecordArray, UINT16 RecordArraySize) { @@ -747,13 +746,13 @@ UINT8 FsfbAnalysisEbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO UINT16 DesAddr = 0; UINT16 tmpSds =0; - /* CRC 趨 */ + /* CRC �趨 */ calcCrc16 = ComComputeMsgCRC16(pAppData,EBT_SIZE-FSFB_CRC_16_LEN); crc16 =ShortFromCharLE(&pAppData[EBT_SIZE-FSFB_CRC_16_LEN]); - /* ֤CRCǷϷ */ + /* ��֤CRC�Ƿ�Ϸ� */ if(crc16 == calcCrc16) { - /* ȫݴС */ + /* ��ȫ���ݴ�С */ tmpSds = ShortFromCharLE(&pAppData[FSFB_DATA_SIZE_POS]); if ((tmpSds != EBT_SDS)||(applyCat != APPLCAT_BTM)) { @@ -763,58 +762,58 @@ UINT8 FsfbAnalysisEbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO SrcAddr = ShortFromCharLE(&pAppData[FSFB_SRC_ADD_POS]); DesAddr = ShortFromCharLE(&pAppData[FSFB_DEST_ADD_POS]); retLnkNodePtr = FsfbSearchNodeByName(devName,applyCat,pFsfbStruct); - /* жͨŽڵǷ */ + /* �ж�ͨ�Žڵ��Ƿ���� */ if( NULL != retLnkNodePtr) { - /* ͨŽڵڣô鱨ĵϢǷ͸ͨŽڵһ */ + /* ͨ�Žڵ���ڣ���ô��鱨�ĵ���Ϣ�Ƿ�͸�ͨ�Žڵ��һ�� */ retVal = FsfbCheckInfoAddr(SrcAddr,DesAddr,retLnkNodePtr); if(0 == retVal) { - /* һ ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��һ�� ����¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*ַ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*�����ַ����*/ #endif } - else /* ͨ */ + else /* ���ͨ�� */ { - /* ·Ϣṹ */ + /* ������·������Ϣ�ṹ�� */ retVal = FsfbUptLnkNodeInfoByEbt(devName,pAppData,pFsfbStruct,retLnkNodePtr); if( 0 == retVal) { - /* ³˵ǶӦSSR ô¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ���³�����˵�����Ƕ�Ӧ��SSR���� ��ô��¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:SSR Msg Err.\n"); #endif } else { - /* ʲô */ + /* ʲô���� */ } } } else { - /* ¼ ͨŽڵ㲻 */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ ͨ�Žڵ㲻���� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*·*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*����·*/ #endif } } - else /* Ȳ */ + else /* ���Ȳ��� */ { - /* ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ �������� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:Msg Len Err.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC����*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, calcCrc16); PrintRecArray2ByteB(RecordArray, RecordArraySize, crc16); #endif @@ -825,25 +824,25 @@ UINT8 FsfbAnalysisEbtMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO } /*********************************************************************** - * : FsfbAnalysisBtdMsg - * : յBTDϢн֡ȡϢ, - Լݰһĸʽ - * : - * + * ������ : FsfbAnalysisBtdMsg + * �������� : ���������յ���BTD��Ϣ���н�֡������ȡ�������Ϣ, + �Լ������ݰ�һ���ĸ�ʽ����� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * devName const UINT16 IN 豸 + * devName const UINT16 IN �豸���� * applyCat UINT8 IN application Catory - * pAppData UINT8* IN յ - * RecordArray UINT8* INOUT ¼ - * RecordArraySize UINT16 IN ¼С - * pFsfbStruct FSFB_INFO_STRU * IN FSFBЭͳһṹ - * ֵ : UINT8 1 + * pAppData UINT8* IN ���յ������� + * RecordArray UINT8* INOUT ��¼���� + * RecordArraySize UINT16 IN ��¼�����С + * pFsfbStruct FSFB_INFO_STRU * IN FSFBЭ��ͳһ�ṹ�� + * ����ֵ : UINT8 1���������� ***********************************************************************/ UINT8 FsfbAnalysisBtdMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO_STRU *pFsfbStruct,UINT8 *RecordArray, UINT16 RecordArraySize) { UINT8 retVal = 0; - UINT16 calcCrc16=0; /* żCRCֵ */ - UINT16 crc16 =0; /* еCRCֵ */ + UINT16 calcCrc16=0; /* ��ż����CRCֵ */ + UINT16 crc16 =0; /* ���������е�CRCֵ */ Fsfb_Lnk_Info_Node_Stru *retLnkNodePtr = NULL; UINT16 SrcAddr = 0; UINT16 DesAddr = 0; @@ -852,17 +851,17 @@ UINT8 FsfbAnalysisBtdMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO ComTypeId2DevName(pFsfbStruct->LocalType,pFsfbStruct->LocalID,&localDevName); - /* CRC 趨 */ + /* CRC �趨 */ calcCrc16 = ComComputeMsgCRC16(pAppData,BTD_SIZE-FSFB_CRC_16_LEN); crc16 =ShortFromCharLE(&pAppData[BTD_SIZE-FSFB_CRC_16_LEN]); - /* ֤CRCǷϷ */ + /* ��֤CRC�Ƿ�Ϸ� */ if(crc16 == calcCrc16) { - /* ȫݴС */ + /* ��ȫ���ݴ�С */ tmpSds = ShortFromCharLE(&pAppData[FSFB_DATA_SIZE_POS]); if ((tmpSds != BTD_SDS)||(applyCat != APPLCAT_BTM)) { - PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_LEN_ERR); /*BTDijȴ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_LEN_ERR); /*����BTD�ij��ȴ���*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, tmpSds); PrintRecArrayByte(RecordArray, RecordArraySize, applyCat); @@ -872,44 +871,44 @@ UINT8 FsfbAnalysisBtdMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO SrcAddr = ShortFromCharLE(&pAppData[FSFB_SRC_ADD_POS]); DesAddr = ShortFromCharLE(&pAppData[FSFB_DEST_ADD_POS]); retLnkNodePtr = FsfbSearchNodeByName(devName,applyCat,pFsfbStruct); - /* жͨŽڵǷ */ + /* �ж�ͨ�Žڵ��Ƿ���� */ if( NULL != retLnkNodePtr) { - /* ͨŽڵڣô鱨ĵϢǷ͸ͨŽڵһ */ + /* ͨ�Žڵ���ڣ���ô��鱨�ĵ���Ϣ�Ƿ�͸�ͨ�Žڵ��һ�� */ retVal = FsfbCheckInfoAddr(SrcAddr,DesAddr,retLnkNodePtr); if(0 == retVal) { - /* һ ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��һ�� ����¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:NOT Node Msg.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*ַ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_ADDR_ERR); /*�����ַ����*/ #endif } - else /* ͨ */ + else /* ���ͨ�� */ { - /* BTDϢǷϷ */ + /* ���BTD��Ϣ�Ƿ�Ϸ� */ retVal=FsfbCheckBtdMsg(pAppData,retLnkNodePtr,pFsfbStruct); if (retVal == 1) { - /* ϴνյıʱΪǰں */ + /* ���ϴν��յ����ı���ʱ�����Ϊ��ǰ���ں� */ retLnkNodePtr->FsfbLinInfo.TimeStmp.LastLocalRecTC =*pFsfbStruct->CycleNum; - /* 趨Ϊ0 */ + /* �����������趨Ϊ0 */ retLnkNodePtr->FsfbLinInfo.NoRecvDataCycleNum = 0; retLnkNodePtr->FsfbLinInfo.SendLinkStatus = Fsfb_SendBtm_BtdAbt; retLnkNodePtr->IsSendFlag = 1; - /* ɹ */ + /* �����ɹ� */ retVal =1; } else { - /* ¼ ͨŽڵ㲻 */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ ͨ�Žڵ㲻���� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:BTD InVaild.\n"); #endif - /* ֤ʧ */ + /* ��֤ʧ�� */ retVal =0; } } @@ -918,20 +917,20 @@ UINT8 FsfbAnalysisBtdMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO { retVal = 0; - PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*·*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_NO_LNK); /*����·*/ - /* ¼ͨŽڵ㲻Ϸ */ + /* ��¼ͨ�Žڵ㲻�Ϸ� */ } } - else /* Ȳ */ + else /* ���Ȳ��� */ { retVal = 0; - /* ¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ + /* ��¼ �������� */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:Tsd CRC Err.\n"); #endif #ifdef FSFB_RECORD_SIMPLIFY_BIN - PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_CRC_ERR); /*CRC����*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, calcCrc16); PrintRecArray2ByteB(RecordArray, RecordArraySize, crc16); #endif @@ -939,114 +938,119 @@ UINT8 FsfbAnalysisBtdMsg(UINT16 devName,UINT8 applyCat,UINT8* pAppData,FSFB_INFO return retVal; } /*-------------------------------------------------------------------- - * Ĵģⲿӿں End + * ���Ĵ���ģ���ⲿ�ӿں��� End *--------------------------------------------------------------------*/ /*-------------------------------------------------------------------- - * Ĵģڲӿں Start + * ���Ĵ���ģ���ڲ��ӿں��� Start *--------------------------------------------------------------------*/ -/*********************************************************************** -* : CreateTsdOrSbtMsg -* : Ӧ TSDSBTġ -* : -* -* ------------------------------------------------------------------------------- -* pAppData const UINT8* IN Ӧò㵽Rsspжнڵ -* DataLen UINT8 IN pAppDataݳ -* OutTsdOrSbtMsg UINT8* OUT FSFDϢ֡ -* outPutDataLen UINT16* OUT ij -* pPNode Lnk_Info_Node_Stru_WL** OUT ¶Ӧڵڷ -1 -* ֵ : UINT8 1 0󷵻 -***********************************************************************/ -static UINT8 CreateTsdOrSbtMsg(const UINT8 *pAppData,UINT16 DataLen,UINT8 applyCat, - UINT8 *OutTsdOrSbtMsg,UINT16* outPutDataLen, Fsfb_Lnk_Info_Node_Stru* pPNode) +/** + * @brief CreateTsdOrSbtMsg ����TSD��SBT���� + * @param pAppData Ӧ���������� ȡֵ��Χ:�ֽ����� + * @param DataLen Ӧ���������鳤�� ȡֵ��Χ:0x0000-0xFFFF + * @param applyCat Ӧ������ ȡֵ��Χ:0x00-0xFF + * @param OutTsdOrSbtMsg ����������� ȡֵ��Χ:�ֽ����� + * @param outPutDataLen ����������鳤�� ȡֵ��Χ:0x0000-0xFFFF + * @param pPNode ��· ȡֵ��Χ:�ο��ṹ��Fsfb_Lnk_Info_Node_Stru + * @return 0:ʧ�� 1:�ɹ� + */ +static UINT8 CreateTsdOrSbtMsg(const UINT8* pAppData, UINT16 DataLen, UINT8 applyCat, UINT8* OutTsdOrSbtMsg, UINT16* outPutDataLen, Fsfb_Lnk_Info_Node_Stru* pPNode) { - UINT8 ret = 0; + /*- ����ֲ�����*/ + UINT8 ret = 0u; /*-< ���ú�������ֵΪʧ��*/ + UINT16 CRC16 = 0u; /*CRCֵ*/ + UINT32 CRCM[2] = { 0u }; /*SVCֵ*/ - UINT16 CRC16 = 0; /* FSFBϢCRC */ - UINT32 CRCM[2] ={0}; /* CRCM */ - pPNode->Applcat = applyCat; - switch(applyCat) + if ((NULL != pAppData) && (NULL != OutTsdOrSbtMsg) && (NULL != outPutDataLen) && (NULL != pPNode)) /*-< �����ǿ�*/ { - case APPLCAT_BTM: - *outPutDataLen = SBT_SIZE; - /* ·״̬ */ - pPNode->FsfbLinInfo.RecvLinkStatus = Fsfb_WaitBtm_SbtAbt; - /* 趨SBT֡ͷ */ - SetFsfbMsgHead(applyCat,FSFB_SBT_MSG, pPNode->FsfbLinInfo.sendSrcAdd,pPNode->FsfbLinInfo.sendDestAdd,OutTsdOrSbtMsg); - ret=1; - break; - case APPLCAT_TDM: - *outPutDataLen = TSD_SIZE; - /*·״̬*/ - pPNode->FsfbLinInfo.RecvLinkStatus = Fsfb_WaitSse; - /* TSD֡ͷ */ - SetFsfbMsgHead(applyCat,FSFB_TSD_MSG, pPNode->FsfbLinInfo.sendSrcAdd,pPNode->FsfbLinInfo.sendDestAdd,OutTsdOrSbtMsg); - /*жݳǷΪTSD ݳ */ - if(DataLen != TSD_DF_SIZE) + pPNode->Applcat = applyCat; /*-< ���ñ�������*/ + switch (applyCat) /*-< �жϱ�������*/ + { + case APPLCAT_BTM: /*-< BTM����*/ + *outPutDataLen = SBT_SIZE; /*-< ����������ݳ���*/ + /* ��·״̬���� */ + pPNode->FsfbLinInfo.RecvLinkStatus = Fsfb_WaitBtm_SbtAbt; /*-< ���ý�����·״̬Ϊ��SBT��ABT*/ + pPNode->FsfbLinInfo.NoRecvDataCycleNum = 0u; /*-< ������������������Ϊ0*/ + /* �趨SBT֡ͷ */ + SetFsfbMsgHead(applyCat, FSFB_SBT_MSG, pPNode->FsfbLinInfo.sendSrcAdd, pPNode->FsfbLinInfo.sendDestAdd, OutTsdOrSbtMsg); /*-< ���ú�������SBT֡ͷ*/ + ret = 1u; /*-< ���ú�������ֵΪ�ɹ�*/ + break; /*-< �˳�*/ + case APPLCAT_TDM: /*-< TD����*/ + /*��·״̬����*/ + pPNode->FsfbLinInfo.RecvLinkStatus = Fsfb_WaitSse; /*-< ���ý�����·״̬Ϊ��SSE*/ + /* ����TSD֡ͷ */ + SetFsfbMsgHead(applyCat, FSFB_TSD_MSG, pPNode->FsfbLinInfo.sendSrcAdd, pPNode->FsfbLinInfo.sendDestAdd, OutTsdOrSbtMsg); /*-< ���ú�������TSD֡ͷ*/ + /*�ж����ݳ����Ƿ�ΪTSD �����ݳ��� */ + if ((TSD_DF_SIZE != DataLen) && (TSD_DF_TWO_SIZE != DataLen)) /*-< ���ݳ��ȴ���*/ { - ret =0; + ret = 0u; /*-< ���ú�������ֵΪʧ��*/ } else { - ret =1; + if ((TSD_DF_SIZE == DataLen)) + { + (*outPutDataLen) = TSD_SIZE; /*-< ����������ݳ���*/ + } + else + { + (*outPutDataLen) = TSD_TWO_SIZE; /*-< ����������ݳ���*/ + } + + ret = 1u; /*-< ���ú�������ֵΪ�ɹ�*/ } - break; + break; /*-< �˳�*/ default: - *outPutDataLen =0; - ret = 0; - break; - } - /* Body 趨 - * ------------------------------------------------------------------ - * | SDS | ȫݳ | CRCM_1 | CRCM_2 | Ӧ | - * 4ֽ | 2ֽ | 2ֽ | 4ֽ | 4ֽ | 36ֽ | - * ------------------------------------------------------------------ - */ - /* Ӧ */ - /* pAppDataʼ MsgLenӦݵ */ - if(ret != 0) - { - if(DataLen ==0) - { - /* 齨SBT֡body */ - DataLen = SBT_DF_SIZE; - BuildSbtFrameDf(pPNode,&OutTsdOrSbtMsg[FSFB_DATA_POS]); + *outPutDataLen = 0u; /*-< ����������ݳ���*/ + ret = 0u; /*-< ���ú�������ֵΪʧ��*/ + break; /*-< �˳�*/ } - else + /* Body �趨 + * ------------------------------------------------------------------ + * ������ | SDS | ��ȫ���ݳ��� | CRCM_1 | CRCM_2 | Ӧ������ | + * 4�ֽ� | 2�ֽ� | 2�ֽ� | 4�ֽ� | 4�ֽ� | 36�ֽ� | + * ------------------------------------------------------------------ + */ + /* Ӧ������ */ + /* ��pAppData��ʼ���� MsgLen��Ӧ�����ݵ� ������ */ + if (ret != 0) /*-< ��������ֵ��ʧ��*/ { - ComMemCopy(pAppData, & - OutTsdOrSbtMsg[FSFB_DATA_POS],DataLen); + if (DataLen == 0) /*-< ���ݳ���Ϊ0*/ + { + /* �齨SBT֡��body */ + DataLen = SBT_DF_SIZE; /*-< �������ݳ���*/ + BuildSbtFrameDf(pPNode, &OutTsdOrSbtMsg[FSFB_DATA_POS]); /*-< ���ú�������SBT֡*/ + } + else + { + ComMemCopy(pAppData, &OutTsdOrSbtMsg[FSFB_DATA_POS], DataLen); /*-< ���ú�����������*/ + } + /* ����CRCMֵ,(�϶�����1 ) */ + + + ret = ComCalcCRCM(&OutTsdOrSbtMsg[FSFB_DATA_POS], DataLen, pPNode->FsfbLinInfo.LocalNode.SIDr, pPNode->FsfbLinInfo.TimeStmp.NowTn, CRCM); /*-< ���ú�������SVC*/ + + /* ������ �趨 4�ֽ� */ + LongToCharLE(pPNode->FsfbLinInfo.TimeStmp.TC, &OutTsdOrSbtMsg[FSFB_TC_POS]); /*-< ������Ÿ��������*/ + + /* ��ȫ���ݳ��� Ӧ������+ 2��CRCM���� 2�ֽ� */ + ShortToCharLE((UINT16)(DataLen + 2 * FSFB_CRCM_LEN), &OutTsdOrSbtMsg[FSFB_DATA_SIZE_POS]); /*-< �������ݳ��ȸ��������*/ + + /*- ����SVC���������*/ + LongToCharLE(CRCM[0], &OutTsdOrSbtMsg[FSFB_CRCM_1_POS]); + LongToCharLE(CRCM[1], &OutTsdOrSbtMsg[FSFB_CRCM_2_POS]); + + /*- ����CRC���������*/ + CRC16 = ComComputeMsgCRC16(OutTsdOrSbtMsg, (UINT16)((*outPutDataLen) - FSFB_CRC_16_LEN)); + ShortToCharLE(CRC16, &OutTsdOrSbtMsg[(UINT16)((*outPutDataLen) - FSFB_CRC_16_LEN)]); + + /* �޷���Ӧ��������Ϊ 0 */ + pPNode->FsfbLinInfo.NoAppDataCycleNum = 0u; /*-< �����޷�����������Ϊ0*/ + ret = 1u; /*-< ���ú�������ֵΪ�ɹ�*/ } - /* CRCMֵ,(϶1 ) */ - - - ret = ComCalcCRCM(&OutTsdOrSbtMsg[FSFB_DATA_POS],DataLen, - pPNode->FsfbLinInfo.LocalNode.SIDr, - pPNode->FsfbLinInfo.TimeStmp.NowTn, - CRCM); - - /* 趨 4ֽ */ - LongToCharLE(pPNode->FsfbLinInfo.TimeStmp.TC, &OutTsdOrSbtMsg[FSFB_TC_POS]); - - /* ȫݳ Ӧ+ 2CRCM 2ֽ */ - ShortToCharLE((UINT16)(DataLen+2*FSFB_CRCM_LEN), &OutTsdOrSbtMsg[FSFB_DATA_SIZE_POS]); - - /* CRCM[0] CRCM[1] 趨 4 ֽ */ - LongToCharLE(CRCM[0],&OutTsdOrSbtMsg[FSFB_CRCM_1_POS]); - LongToCharLE(CRCM[1],&OutTsdOrSbtMsg[FSFB_CRCM_2_POS]); - - /* 16λ CRC 趨 2 ֽ */ - CRC16 = ComComputeMsgCRC16(OutTsdOrSbtMsg,(UINT16)((*outPutDataLen)-FSFB_CRC_16_LEN)); - ShortToCharLE(CRC16,&OutTsdOrSbtMsg[(UINT16)((*outPutDataLen)-FSFB_CRC_16_LEN)]); - - /* ޷ӦΪ 0 */ - pPNode->FsfbLinInfo.NoAppDataCycleNum = 0; - ret = 1; } - return ret; + return ret; /*-< ���غ�������ֵ*/ } /*Test todo */ @@ -1055,87 +1059,87 @@ void BuildSbtFrameDf(Fsfb_Lnk_Info_Node_Stru* pNode,UINT8* pMsgDataBuff) UINT16 index =0; UINT32 crcValue =0; - /* ʼΪ 0 */ + /* �������ʼ��Ϊ 0 */ ComMemSet(pMsgDataBuff,SBT_DF_SIZE,0); - /* 2ֽڵԴַ */ + /* 2���ֽڵ�Դ��ַ */ ShortToCharLE(pNode->FsfbLinInfo.sendSrcAdd,pMsgDataBuff+index); index +=2; - /* 1ֽڵ record Flag 1޼¼ 0м¼ */ + /* 1���ֽڵ� record Flag 1�����޼�¼ 0�����м�¼ */ pMsgDataBuff[index]=0x01; index+=1; - /* 1ֽڵԤ */ + /* 1���ֽڵ�Ԥ�� */ index+=1; - /* 8ֽڵChannel1&2 SID */ + /* 8���ֽڵ�Channel1&2 SID */ LongToCharLE(pNode->FsfbLinInfo.LocalNode.SIDr[0],pMsgDataBuff+index); index +=4; LongToCharLE(pNode->FsfbLinInfo.LocalNode.SIDr[1],pMsgDataBuff+index); index +=4; - /* 8ֽڵChannel1&2 SINIT */ + /* 8���ֽڵ�Channel1&2 SINIT */ LongToCharLE(pNode->FsfbLinInfo.LocalNode.SINITr[0],pMsgDataBuff+index); index +=4; LongToCharLE(pNode->FsfbLinInfo.LocalNode.SINITr[1],pMsgDataBuff+index); index +=4; - /* 1ֽڵ */ + /* 1���ֽڵ������������ */ pMsgDataBuff[index++]=MAX_BTM_LOST; - /* 1ֽڵDelta Time Counter max */ + /* 1���ֽڵ�Delta Time Counter max */ pMsgDataBuff[index++]=Delta_Time_Counter_max; - /* 2ֽԤ */ + /* 2���ֽ�Ԥ�� */ index +=2; - /* 8ֽڵChannel1&2 DATAVER */ + /* 8���ֽڵ�Channel1&2 DATAVER */ LongToCharLE(pNode->FsfbLinInfo.LocalNode.DATAVER[0],pMsgDataBuff+index); index +=4; LongToCharLE(pNode->FsfbLinInfo.LocalNode.DATAVER[1],pMsgDataBuff+index); index +=4; - /* 28ֽڵԤ */ + /* 28���ֽڵ�Ԥ�� */ index +=28; - /* 1ֽڵ NUM_DATAVER */ + /* 1���ֽڵ� NUM_DATAVER */ pMsgDataBuff[index++]=pNode->FsfbLinInfo.LocalNode.NumDataVer[0]; - /* 3ֽԤ */ + /* 3���ֽ�Ԥ�� */ index +=3; - /* 1ֽڵWorldFip Periodic variable Address */ + /* 1���ֽڵ�WorldFip Periodic variable Address */ pMsgDataBuff[index++]=0x01; - /* 1ֽ Segment */ + /* 1���ֽ� Segment */ index+=1; - /* 2ֽ FSFB2Դַ */ + /* 2���ֽ� FSFB2Դ��ַ */ ShortToCharLE(pNode->FsfbLinInfo.sendDestAdd,pMsgDataBuff+index); index +=2; - /* 8ֽڵChannel1&2 SID */ + /* 8���ֽڵ�Channel1&2 SID */ LongToCharLE(pNode->FsfbLinInfo.LocalNode.SIDe[0],pMsgDataBuff+index); index +=4; LongToCharLE(pNode->FsfbLinInfo.LocalNode.SIDe[1],pMsgDataBuff+index); index +=4; - /* 8ֽڵChannel1&2 SINIT */ + /* 8���ֽڵ�Channel1&2 SINIT */ LongToCharLE(pNode->FsfbLinInfo.LocalNode.SINITe[0],pMsgDataBuff+index); index +=4; LongToCharLE(pNode->FsfbLinInfo.LocalNode.SINITe[1],pMsgDataBuff+index); index +=4; - /* 1ֽԤ */ + /* 1���ֽ�Ԥ�� */ pMsgDataBuff[index++]=MAX_BTM_LOST; - /* 1ֽڵDelta Time Counter max */ + /* 1���ֽڵ�Delta Time Counter max */ pMsgDataBuff[index++]=Delta_Time_Counter_max; - /* 2ֽԤ */ + /* 2���ֽ�Ԥ�� */ index +=2; - /* 8ֽڵChannel1&2 DATAVER */ + /* 8���ֽڵ�Channel1&2 DATAVER */ LongToCharLE(pNode->FsfbLinInfo.LocalNode.DATAVER[0],pMsgDataBuff+index); index +=4; LongToCharLE(pNode->FsfbLinInfo.LocalNode.DATAVER[1],pMsgDataBuff+index); index +=4; - /* 1ֽڵ NUM_DATAVER */ + /* 1���ֽڵ� NUM_DATAVER */ pMsgDataBuff[index++]=pNode->FsfbLinInfo.LocalNode.NumDataVer[0]; - /* 3ֽԤ */ + /* 3���ֽ�Ԥ�� */ index +=3; - /* 8ֽڵSYSCKW + /* 8���ֽڵ�SYSCKW D channel 1&2 */ LongToCharLE(COM_SYS_CHK_WD_1,pMsgDataBuff+index); index +=4; LongToCharLE(COM_SYS_CHK_WD_2,pMsgDataBuff+index); index +=4; - /* 4ֽڵCRC_1 */ + /* 4���ֽڵ�CRC_1 */ crcValue =Crc32(pMsgDataBuff,index); LongToCharLE(crcValue^0xFFFFFFFF,pMsgDataBuff+index); index +=4; - /* 4ֽڵCRC_2 */ + /* 4���ֽڵ�CRC_2 */ LongToCharLE(crcValue^0xFFFFFFFF,pMsgDataBuff+index); index +=4; if (index != SBT_DF_SIZE) @@ -1148,46 +1152,46 @@ void BuildSbtFrameDf(Fsfb_Lnk_Info_Node_Stru* pNode,UINT8* pMsgDataBuff) } /*********************************************************************** -* : CreateSseMsg -* : Ӧ SSEġ -* : -* +* ������ : CreateSseMsg +* �������� : ����Ӧ������ ����SSE���ġ� +* ������� : +* ������ ���� ������� ���� * ------------------------------------------------------------------------------- * applyCate UINT8 IN application cate -* pLnkNodeInfo Fsfb_Lnk_Info_Node_Stru** OUT ¶Ӧڵڷ -1 -* outSseMsg UINT8* OUT FSFDϢ֡ -* ֵ : UINT8 1 0󷵻 +* pLnkNodeInfo Fsfb_Lnk_Info_Node_Stru** OUT ���¶�Ӧ�ڵ����������������ڷ��� -1 +* outSseMsg UINT8* OUT FSFD��Ϣ֡ +* ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ static UINT8 CreateSseMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo,UINT8* outSseMsg) { UINT8 ret =0; UINT16 crc16 =0; - UINT32 tmpSeqEng=0;/* ʱSEQENQ */ - /* ͨ״̬Ϣ */ - /* Applicationcat */ + UINT32 tmpSeqEng=0;/* ��ʱ����SEQENQ */ + /* ͨ��״̬��Ϣ���� */ + /* ����Application��cat */ pLnkNodeInfo->Applcat = applyCate; - /* 趨սڵΪȴSSR*/ + /* �趨���սڵ�Ϊ�ȴ�SSR*/ pLnkNodeInfo->FsfbLinInfo.RecvLinkStatus = Fsfb_WaitSSR; pLnkNodeInfo->FsfbLinInfo.SendLinkStatus = Fsfb_Halt; - /* ͨŽڵδΪ0 */ + /* ͨ�Žڵ�δ������������Ϊ0 */ pLnkNodeInfo->FsfbLinInfo.NoRecvDataCycleNum =0; pLnkNodeInfo->IsSendFlag=0; - /* SSE ʱںͶӦʱ */ - pLnkNodeInfo->FsfbLinInfo.TimeStmp.SseTC = pLnkNodeInfo->FsfbLinInfo.TimeStmp.TC;/* Ӧֵ֤SSRļֵ */ - pLnkNodeInfo->FsfbLinInfo.TimeStmp.SseTn[0] = pLnkNodeInfo->FsfbLinInfo.TimeStmp.NowTn[0]; /* ӦʱյSSRʱʼSINITֵ */ + /* SSE ����ʱ�����ںͶ�Ӧ��ʱ������ */ + pLnkNodeInfo->FsfbLinInfo.TimeStmp.SseTC = pLnkNodeInfo->FsfbLinInfo.TimeStmp.TC;/* ��Ӧ������ֵ��������֤SSR������ļ�����ֵ */ + pLnkNodeInfo->FsfbLinInfo.TimeStmp.SseTn[0] = pLnkNodeInfo->FsfbLinInfo.TimeStmp.NowTn[0]; /* ��Ӧ��ʱ������յ�SSRʱ�����ʼSINITֵ */ pLnkNodeInfo->FsfbLinInfo.TimeStmp.SseTn[1]=pLnkNodeInfo->FsfbLinInfo.TimeStmp.NowTn[1]; - /* ֡ͷϢ趨 */ + /* ֡ͷ��Ϣ�趨 */ SetFsfbMsgHead(applyCate,FSFB_SSE_MSG,pLnkNodeInfo->FsfbLinInfo.sendSrcAdd,pLnkNodeInfo->FsfbLinInfo.sendDestAdd,outSseMsg); - /* Boby 趨 */ - /* 4*/ + /* Boby �趨 */ + /*������ 4*/ LongToCharLE(pLnkNodeInfo->FsfbLinInfo.TimeStmp.SseTC,&outSseMsg[FSFB_TC_POS]); /* SEQENQ_1 4*/ @@ -1198,7 +1202,7 @@ static UINT8 CreateSseMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo, tmpSeqEng = pLnkNodeInfo->FsfbLinInfo.LocalNode.SIDr[1]^pLnkNodeInfo->FsfbLinInfo.TimeStmp.SseTn[1]; LongToCharLE(tmpSeqEng,&outSseMsg[FSFB_SSE_ENQ_2_POS]); - /* CRC 趨 */ + /* CRC �趨 */ crc16 = ComComputeMsgCRC16(outSseMsg,SSE_SIZE-FSFB_CRC_16_LEN); ShortToCharLE(crc16,&outSseMsg[SSE_SIZE-FSFB_CRC_16_LEN]); @@ -1208,25 +1212,25 @@ static UINT8 CreateSseMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo, } /*********************************************************************** -* : CreateSsrMsg -* : Ӧ SSRġ -* : -* +* ������ : CreateSsrMsg +* �������� : ����Ӧ������ ���� SSR���ġ� +* ������� : +* ������ ���� ������� ���� * ------------------------------------------------------------------------------- * applyCate UINT8 IN application cate -* pLnkNodeInfo Fsfb_Lnk_Info_Node_Stru** OUT ¶Ӧڵڷ -1 -* OutSsrMsg UINT8* OUT FSFDϢ֡ -* ֵ : UINT8 1 0󷵻 +* pLnkNodeInfo Fsfb_Lnk_Info_Node_Stru** OUT ���¶�Ӧ�ڵ����������������ڷ��� -1 +* OutSsrMsg UINT8* OUT FSFD��Ϣ֡ +* ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ static UINT8 CreateSsrMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo,UINT8* outSsrMsg) { UINT8 ret =0; UINT16 crc16 =0; - UINT32 tmpSeqIni=0;/* ʱSEQIni */ - /* ͨ״̬Ϣ */ - /* Applicationcat */ + UINT32 tmpSeqIni=0;/* ��ʱ����SEQIni */ + /* ͨ��״̬��Ϣ���� */ + /* ����Application��cat */ pLnkNodeInfo->Applcat = applyCate; - /* 趨սڵΪȴSSR*/ + /* �趨���սڵ�Ϊ�ȴ�SSR*/ if (applyCate == APPLCAT_TDM) { pLnkNodeInfo->FsfbLinInfo.SendLinkStatus = Fsfb_Halt; @@ -1238,14 +1242,14 @@ static UINT8 CreateSsrMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo, pLnkNodeInfo->IsSendFlag=1; } - /* ֡ͷϢ趨 */ + /* ֡ͷ��Ϣ�趨 */ SetFsfbMsgHead(applyCate,FSFB_SSR_MSG,pLnkNodeInfo->FsfbLinInfo.rcvDestAdd,pLnkNodeInfo->FsfbLinInfo.rcvSrcAdd,outSsrMsg); - /* Boby 趨 */ - /* replier 4*/ + /* Boby �趨 */ + /*������ replier 4*/ LongToCharLE(pLnkNodeInfo->FsfbLinInfo.TimeStmp.TC,&outSsrMsg[FSFB_TC_POS]); - /* enqurier 4*/ + /*������ enqurier 4*/ LongToCharLE(pLnkNodeInfo->FsfbLinInfo.TimeStmp.RecvSseTCe,&outSsrMsg[FSFB_SSR_TCENQ_POS]); /* SEQENQ_1 4*/ @@ -1258,10 +1262,10 @@ static UINT8 CreateSsrMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo, ^pLnkNodeInfo->FsfbLinInfo.LocalNode.DATAVER[1]^pLnkNodeInfo->FsfbLinInfo.TimeStmp.NowTn[1]; LongToCharLE(tmpSeqIni,&outSsrMsg[FSFB_SSR_ENQ_2_POS]); - /* NUM_DATAVER 趨 ŵһ */ + /* NUM_DATAVER �趨 �����ŵ�һ�� */ outSsrMsg[FSFB_SSR_NUM_POS]=pLnkNodeInfo->FsfbLinInfo.LocalNode.NumDataVer[0]; - /* CRC 趨 */ + /* CRC �趨 */ crc16 = ComComputeMsgCRC16(outSsrMsg,SSR_SIZE-FSFB_CRC_16_LEN); ShortToCharLE(crc16,&outSsrMsg[SSR_SIZE-FSFB_CRC_16_LEN]); @@ -1271,45 +1275,45 @@ static UINT8 CreateSsrMsg(UINT8 applyCate,Fsfb_Lnk_Info_Node_Stru *pLnkNodeInfo, } /*********************************************************************** -* : CreateBtmMsg -* : BTMSBTʽɱġ -* : -* +* ������ : CreateBtmMsg +* �������� : ����BTM��SBT��ʽ���ɱ��ġ� +* ������� : +* ������ ���� ������� ���� * ------------------------------------------------------------------------------- * applyCate UINT8 IN application cate -* DataLen UINT16 IN ݳ -* userDataLen UINT16 IN ݲִС -* OutBtmMsg UINT8* OUT FSFDϢ֡ -* pPNode Fsfb_Lnk_Info_Node_Stru** OUT ¶Ӧڵڷ -1 +* DataLen UINT16 IN ���ݳ��� +* userDataLen UINT16 IN ���ݲ��ִ�С +* OutBtmMsg UINT8* OUT FSFD��Ϣ֡ +* pPNode Fsfb_Lnk_Info_Node_Stru** OUT ���¶�Ӧ�ڵ����������������ڷ��� -1 -* ڽڵҪпǣTodo -* ֵ : UINT8 1 0󷵻 +* ���ڽڵ�������Ҫ���п��ǣ�Todo�� +* ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ static UINT8 CreateBtmMsg(const UINT8 *pAppData,UINT16 DataLen,UINT16 userDataLen,UINT8 messType, UINT8 *OutBtmMsg, Fsfb_Lnk_Info_Node_Stru* pPNode) { UINT8 ret = 0; - UINT16 CRC16 = 0; /* FSFBϢCRC */ - UINT32 CRCM[2] ={0}; /* CRCM */ /* Ӧݳ */ + UINT16 CRC16 = 0; /* FSFB��ϢCRC */ + UINT32 CRCM[2] ={0}; /* CRCM���� */ /* Ӧ�����ݳ��� */ if (pPNode != NULL) { - /* ֡ͷ趨 */ + /* ֡ͷ�趨 */ SetFsfbMsgHead(APPLCAT_BTM,messType, pPNode->FsfbLinInfo.sendSrcAdd,pPNode->FsfbLinInfo.sendDestAdd,OutBtmMsg); - /* Body 趨 + /* Body �趨 * ------------------------------------------------------------------ - * | SDS | ȫݳ | CRCM_1 | CRCM_2 | Ӧ | - * 4ֽ | 2ֽ | 2ֽ | 4ֽ | 4ֽ | 36ֽ | + * ������ | SDS | ��ȫ���ݳ��� | CRCM_1 | CRCM_2 | Ӧ������ | + * 4�ֽ� | 2�ֽ� | 2�ֽ� | 4�ֽ� | 4�ֽ� | 36�ֽ� | * ------------------------------------------------------------------ */ - /* Ӧ */ - /* pAppDataʼ MsgLenӦݵ */ + /* Ӧ������ */ + /* ��pAppData��ʼ���� MsgLen��Ӧ�����ݵ� ������ */ if(userDataLen == DataLen) { ComMemCopy(pAppData, &OutBtmMsg[FSFB_DATA_POS],DataLen); - /* CRCMֵ,(϶1 ) */ + /* ����CRCMֵ,(�϶�����1 ) */ if((messType == FSFB_BTC_MSG)||(messType == FSFB_EBT_MSG)) { ComAddTimeStamp(&pPNode->FsfbLinInfo.TimeStmp); @@ -1320,21 +1324,21 @@ static UINT8 CreateBtmMsg(const UINT8 *pAppData,UINT16 DataLen,UINT16 userDataLe pPNode->FsfbLinInfo.TimeStmp.NowTn, CRCM); - /* 趨 4ֽ */ + /* ������ �趨 4�ֽ� */ LongToCharLE(pPNode->FsfbLinInfo.TimeStmp.TC, &OutBtmMsg[FSFB_TC_POS]); - /* ȫݳ Ӧ+ 2CRCM 2ֽ */ + /* ��ȫ���ݳ��� Ӧ������+ 2��CRCM���� 2�ֽ� */ ShortToCharLE((UINT16)(DataLen+2*FSFB_CRCM_LEN), &OutBtmMsg[FSFB_DATA_SIZE_POS]); - /* CRCM[0] CRCM[1] 趨 4 ֽ */ + /* CRCM[0] CRCM[1] �趨 4 �ֽ� */ LongToCharLE(CRCM[0],&OutBtmMsg[FSFB_CRCM_1_POS]); LongToCharLE(CRCM[1],&OutBtmMsg[FSFB_CRCM_2_POS]); - /* 16λ CRC 趨 2 ֽ */ + /* 16λ CRC �趨 2 �ֽ� */ CRC16 = ComComputeMsgCRC16(OutBtmMsg,(UINT16)(userDataLen+FSFB_BTM_HEAD_LEN)); ShortToCharLE(CRC16,&OutBtmMsg[(UINT16)(userDataLen+FSFB_BTM_HEAD_LEN)]); - /* ޷ӦΪ 0 */ + /* �޷���Ӧ��������Ϊ 0 */ pPNode->FsfbLinInfo.NoAppDataCycleNum = 0; pPNode->IsSendFlag=0; /*pPNode->FsfbLinInfo.RecvLinkStatus = Fsfb_WaitBtm_AbtOrSse;*/ @@ -1343,7 +1347,7 @@ static UINT8 CreateBtmMsg(const UINT8 *pAppData,UINT16 DataLen,UINT16 userDataLe } else { - /* Ӵ¼ */ + /* ���Ӵ����¼�� */ ret = 0; } } @@ -1351,61 +1355,61 @@ static UINT8 CreateBtmMsg(const UINT8 *pAppData,UINT16 DataLen,UINT16 userDataLe return ret; } /*********************************************************************** -* : SetFsfbMsgHead -* : FsfbϢ֡ͷɡ -* : -* +* ������ : SetFsfbMsgHead +* �������� : Fsfb��Ϣ֡ͷ���ɡ� +* ������� : +* ������ ���� ������� ���� * -------------------------------------------------------------- -* applCat UINT8 IN Ӧò -* MsgType UINT8 IN Ϣ -* SrcAddr UINT16 IN Դַ -* DestAddr UINT16 IN Ŀַ -* OutFsfbMsg UINT8* OUT FsfbϢ֡ -* ֵ : +* applCat UINT8 IN Ӧ�ò��� +* MsgType UINT8 IN ��Ϣ���� +* SrcAddr UINT16 IN Դ��ַ +* DestAddr UINT16 IN Ŀ���ַ +* OutFsfbMsg UINT8* OUT Fsfb��Ϣ֡ +* ����ֵ : �� ***********************************************************************/ static void SetFsfbMsgHead(UINT8 applCat,UINT8 MsgType, UINT16 SrcAddr, UINT16 DestAddr, UINT8 *OutFsfbMsg) { OutFsfbMsg[FSFB_APP_CTGRY_POS] = applCat; /* signaling variables */ - OutFsfbMsg[FSFB_MSG_TYPE_POS] = MsgType; /* Ϣ趨 */ - ShortToCharLE(SrcAddr,&OutFsfbMsg[FSFB_SRC_ADD_POS]); /* 趨ԴַLITTLE endian */ - ShortToCharLE(DestAddr,&OutFsfbMsg[FSFB_DEST_ADD_POS]); /* 趨ԴַLITTLE endian */ + OutFsfbMsg[FSFB_MSG_TYPE_POS] = MsgType; /* ��Ϣ�����趨 */ + ShortToCharLE(SrcAddr,&OutFsfbMsg[FSFB_SRC_ADD_POS]); /* �趨Դ��ַ��LITTLE endian */ + ShortToCharLE(DestAddr,&OutFsfbMsg[FSFB_DEST_ADD_POS]); /* �趨Դ��ַ��LITTLE endian */ } /*********************************************************************** - * : FsfbCheckBtdMsg - * : ֤BTDĵȷԡ - * : - * + * ������ : FsfbCheckBtdMsg + * �������� : ��֤BTD���ĵ���ȷ�ԡ� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * pBsdMsg const UINT8 * IN Bsd - * pLnkNode Fsfb_Lnk_Info_Node_Stru INOUT FSFB·Ϣ - * pFsfbStruct FSFB_INFO_STRU * INOUT Эͳһṹ - * ֵ : UINT8 1 0󷵻 + * pBsdMsg const UINT8 * IN Bsd���� + * pLnkNode Fsfb_Lnk_Info_Node_Stru INOUT FSFB��·��Ϣ + * pFsfbStruct FSFB_INFO_STRU * INOUT Э��ͳһ�ṹ�� + * ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ static UINT8 FsfbCheckBtdMsg(const UINT8 *pBtdMsg,Fsfb_Lnk_Info_Node_Stru *pLnkNode, FSFB_INFO_STRU *pFsfbStruct) { - UINT8 retVal = 1; /* ʼΪ */ + UINT8 retVal = 1; /* ��ʼ��Ϊ�������� */ UINT8 tmpret = 0; - INT32 DelayTCr = 0; /* */ - INT32 Tout = 0; /* ϴյĵʱ */ - UINT32 TCr = 0; /* ʱ */ - UINT32 SidXorTn[2] = {0}; /* SID XOR TN BSDļ */ - ComTimeStampStru *pTmStmp = &pLnkNode->FsfbLinInfo.TimeStmp; /* ʱṹ */ - const FsfbNodeParamInfoStru *pNodeParam = &pLnkNode->FsfbLinInfo.LocalNode; /* ڵϢṹ */ + INT32 DelayTCr = 0; /* ������ */ + INT32 Tout = 0; /* �����ϴ��յ����ĵ�ʱ��� */ + UINT32 TCr = 0; /* ����ʱ�� */ + UINT32 SidXorTn[2] = {0}; /* SID XOR TN ��BSD���ļ������ */ + ComTimeStampStru *pTmStmp = &pLnkNode->FsfbLinInfo.TimeStmp; /* ʱ����ṹ�� */ + const FsfbNodeParamInfoStru *pNodeParam = &pLnkNode->FsfbLinInfo.LocalNode; /* �ڵ������Ϣ�ṹ�� */ UINT8 *RecordArray = pFsfbStruct->RecordArray; UINT16 RecordArraySize = pFsfbStruct->RecordArraySize; - PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_STATUS); /*BTD״̬*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_STATUS); /*����BTD��״̬*/ PrintRecArrayByte(RecordArray, RecordArraySize, pLnkNode->FsfbLinInfo.RecvLinkStatus); - /* ͨŽڵ״̬Ϊ ״̬ */ + /* ͨ�Žڵ����״̬Ϊ ��������״̬ */ if( Fsfb_RecvData == pLnkNode->FsfbLinInfo.RecvLinkStatus) { - /* ʱ */ + /* ����ʱ�� */ TCr = LongFromCharLE(&pBtdMsg[FSFB_TC_POS]); /* - * ϴαĵʱһ(ͬһͬʱܵBSDĺSSR)ñ - * 鶪Ƿʱ + * ������ϴα��ĵ�ʱ��һ��(��ͬһ������ͬʱ�ܵ�BSD���ĺ�SSR����)�������ñ��� + * ���� ��鶪�����Ƿ�ʱ */ if( TCr != pTmStmp->NowRecvTCr) { @@ -1418,7 +1422,7 @@ static UINT8 FsfbCheckBtdMsg(const UINT8 *pBtdMsg,Fsfb_Lnk_Info_Node_Stru *pLnkN if(DelayTCr >= 0) { - /* ijʱ */ + /* ���ij�ʱ ��� */ if(pTmStmp->LastLocalRecTC != *pFsfbStruct->CycleNum) { Tout = ComCheckTimeStamp(*pFsfbStruct->CycleNum, @@ -1426,29 +1430,29 @@ static UINT8 FsfbCheckBtdMsg(const UINT8 *pBtdMsg,Fsfb_Lnk_Info_Node_Stru *pLnkN } else { - /* ˵Ѿյһ֡ݣҪʱ */ + /* ˵���������Ѿ��յ�һ֡�����ݣ�����Ҫ������ʱ��� */ Tout = 0; } - if (Tout >= 0) /* Ϸʱյ */ + if (Tout >= 0) /* �Ϸ�ʱ�����յ����� */ { - /* RSDȡSID XOR TN CRCM[chan] ^ CRC[chan] ^ SYS_CHK_WD[chan] */ + /* ��RSD������ȡ��SID XOR TN ��CRCM[chan] ^ CRC[chan] ^ SYS_CHK_WD[chan] */ tmpret = ComGetSidXorTn(pBtdMsg, SidXorTn); - /* CRCMЧ */ + /* ����CRCM����Ч�� */ retVal = ComCheckCRCM(SidXorTn, pTmStmp->NowSINIT_ADD_SID_XOR_Tn, DelayTCr, pNodeParam->TSD_POST_RXDADA_K); - if ((1 == retVal) && (tmpret == 1)) /* ɹ ӦϢ */ + if ((1 == retVal) && (tmpret == 1)) /* ���ɹ� �������Ӧ��Ϣ */ { - /* ʱṹ : pTmStmpStruǿգֵ϶Ϊ1 */ + /* ����ʱ����ṹ�� : pTmStmpStru�ǿգ�����ֵ�϶�Ϊ1 */ retVal = ComUpdtTmStmpStru(SidXorTn, TCr, DelayTCr, pNodeParam->PREC_SINIT_K, pTmStmp); - retVal = 1; /* */ + retVal = 1; /* �������� */ } else { -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray, RecordArraySize, "W:CRCM Error.\n"); #endif - PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_SVC_ERR); /*BTDSVC*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_SVC_ERR); /*����BTD��SVC����*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, pLnkNode->DestDevName); /*DestDevName*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, SidXorTn[0]); /*sidXorTn[0]*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, SidXorTn[1]); /*sidXorTn[1]*/ @@ -1456,20 +1460,20 @@ static UINT8 FsfbCheckBtdMsg(const UINT8 *pBtdMsg,Fsfb_Lnk_Info_Node_Stru *pLnkN PrintRecArray4ByteB(RecordArray, RecordArraySize, pTmStmp->NowSINIT_ADD_SID_XOR_Tn[1]); /*NowSINIT_ADD_SID_XOR_Tn[1]*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, TCr); /*tc*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, pTmStmp->NowRecvTCr); /*NowRecvTCr*/ - PrintRecArrayByte(RecordArray, RecordArraySize, pNodeParam->MaxLost); /*BTDSVC*/ + PrintRecArrayByte(RecordArray, RecordArraySize, pNodeParam->MaxLost); /*����BTD��SVC����*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, DelayTCr); /*delayTc*/ - /* ʧ 󷵻 */ + /* ���ʧ�� ���󷵻� */ retVal = 0; } } - else /* ʱ */ + else /* ��ʱ */ { -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:Time Out.\n"); #endif - PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_DELAY_ERR); /*BTDӳٳ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_DELAY_ERR); /*����BTD�ӳٳ�����*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, pLnkNode->DestDevName); /*DestDevName*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, *pFsfbStruct->CycleNum); /*tc*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, pTmStmp->LastLocalRecTC); /*NowRecvTCr*/ @@ -1481,30 +1485,30 @@ static UINT8 FsfbCheckBtdMsg(const UINT8 *pBtdMsg,Fsfb_Lnk_Info_Node_Stru *pLnkN } else { -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray, RecordArraySize, "DelayTCr > MaxLost\n"); #endif - PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_LOST_ERR); /*BTDʧ*/ + PrintRecArrayByte(RecordArray, RecordArraySize, IN_BTD_LOST_ERR); /*����BTD��ʧ������*/ PrintRecArray2ByteB(RecordArray, RecordArraySize, pLnkNode->DestDevName); /*DestDevName*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, TCr); /*tc*/ PrintRecArray4ByteB(RecordArray, RecordArraySize, pTmStmp->NowRecvTCr); /*NowRecvTCr*/ PrintRecArrayByte(RecordArray, RecordArraySize, pNodeParam->MaxLost); PrintRecArray4ByteB(RecordArray, RecordArraySize, DelayTCr); /*delayTc*/ - /* Ķ طSSEͬ */ + /* ���������� ���Ķ����� �ط�SSE����ͬ�� */ pLnkNode->FsfbLinInfo.RecvLinkStatus = Fsfb_SendBtm_Sbt; retVal = 0; } } else if( Fsfb_Halt == pLnkNode->FsfbLinInfo.RecvLinkStatus) { - pLnkNode->FsfbLinInfo.RecvLinkStatus = Fsfb_SendBtm_Sbt; /* ״̬ΪSBT */ + pLnkNode->FsfbLinInfo.RecvLinkStatus = Fsfb_SendBtm_Sbt; /* ״̬����Ϊ����SBT */ retVal = 0; } - else /* ״̬ */ + else /* ����״̬�������� */ { -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordArraySize,"W:RecvStatus() not RecvData or Halt.Discard Bsd Msg."); PrintFileHex(RecordArray,RecordArraySize,&pLnkNode->FsfbLinInfo.RecvLinkStatus,1); PrintFiles(RecordArray,RecordArraySize,"\n"); @@ -1515,5 +1519,5 @@ static UINT8 FsfbCheckBtdMsg(const UINT8 *pBtdMsg,Fsfb_Lnk_Info_Node_Stru *pLnkN return retVal; } /*-------------------------------------------------------------------- - * Ĵģڲӿں END + * ���Ĵ���ģ���ڲ��ӿں��� END *--------------------------------------------------------------------*/ diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c index 484dd2f..55df05c 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c @@ -1,55 +1,55 @@ /** ****************************************************** * -* ļ FsfbProtcl.c -* Ȩ˵ ؿƼ޹˾ -* 汾 1.0 -* ʱ䣺 2013.09.05 -* -* FSFBЭʵ -* ʹע⣺ +* �ļ��� �� FsfbProtcl.c +* ��Ȩ˵���� �������ؿƼ����޹�˾ +* �汾�� �� 1.0 +* ����ʱ�䣺 2013.09.05 +* ���� �� ������ +* ���������� FSFBЭ��ʵ�� +* ʹ��ע�⣺ * -* ޸ļ¼ -* 2014.5.21 -* ޸ݣFsfbProtclRefreshLnkˣ tmpInput = ShortFromChar(pLnkStatusData); -* ޸ɣ֮ǰûлȡݵijȣ޷ʵָ +* �޸ļ�¼�� +* 2014.5.21 ������ +* �޸����ݣ���FsfbProtclRefreshLnk���������������ˣ� tmpInput = ShortFromChar(pLnkStatusData); +* �޸����ɣ�֮ǰû�л�ȡ�������ݵij��ȣ�����޷�ʵ�ָ��� -* 2014.5.21 -* ޸ݣFsfbProtclRefreshLnkУ -* FsfbVarArray2LnkNodeInfo(pLnkStatusData, CurLnk); -* ΪFsfbVarArray2LnkNodeInfo((UINT8 *)&pLnkStatusData[2+FSFB_VAR_NODE_LEN * i], CurLnk); -* ֮ǰˢϢһֱΪıˢ²ȫ - ޸: ֮ǰˢϢһֱΪıˢ²ȫ +* 2014.5.21 ������ +* �޸����ݣ���FsfbProtclRefreshLnk���������У� +* ����FsfbVarArray2LnkNodeInfo(pLnkStatusData, CurLnk); +* ��ΪFsfbVarArray2LnkNodeInfo((UINT8 *)&pLnkStatusData[2+FSFB_VAR_NODE_LEN * i], CurLnk); +* ֮ǰ����ˢ����Ϣ������һֱΪ�ı����ˢ�²���ȫ����� + �޸�����: ֮ǰ����ˢ����Ϣ������һֱΪ�ı����ˢ�²���ȫ����� -* 2014.5.30 - ޸: FsfbStructInit(): pFsfbStruct->AppArrayijֶγʼΪ0 - ޸: Ϊ4ֽlong +* 2014.5.30 ������ + �޸�����: ��FsfbStructInit()��: pFsfbStruct->AppArray�ij����ֶγ�ʼ��Ϊ0 + �޸�����: ����Ϊ4���ֽ�long ֮ǰ:ShortToChar(0, pFsfbStruct->AppArray); - Ϊ:LongToChar(0, pFsfbStruct->AppArray); + ��Ϊ:LongToChar(0, pFsfbStruct->AppArray); - 2014.5.30 - ޸: FsfbStructInit()pFsfbStruct->VarArrayijֶεijʼ - ޸: ʼʱӦñʼ + 2014.5.30 ������ + �޸�����: ��FsfbStructInit()��������pFsfbStruct->VarArray�ij����ֶεij�ʼ�� + �޸�����: ��ʼ��ʱ����Ӧ�ñ���ʼ�� - 2014.5.30 - ޸:FsfbStructInit()е"·ջռ"ģ - ˶ջʼɶջʼ - ޸:ʹģ黯 + 2014.5.30 ������ + �޸�����:��FsfbStructInit()�е�"������·��������ջ�ռ�"ģ�� + �����˶�ջ��ʼ������������ɶ�ջ��ʼ�� + �޸�����:������ʹ�����������ģ�黯 - 2014.5.30 - ޸:FsfbStructInit()е"ʱĻ"ģ - ʱڴռijʼ - ޸:¿ٵڴռӦýгʼ - 2014.8.05 - ޸:ReadQueueData()У޸BTD֧ķֵBTD֤ͨ - ֻǽ򵥵Ķ崻 - ޸:Ҫ - 2014.8.05 - ޸:ReadQueueData()Уһ֡ݳ:ݳ+2󳤶ʱ - ֡ݶִ - ޸:֮ǰδ˷֧ - 2014.8.14 - ޸ݣFsfbProtclOutPutȡÿһ֡Դ֡ݳȽ֤Ϸ֡ - ޸ɣ֮ǰֻǶԵһ֡ݳȷûж֡ݳȷҶԲϷ֡ûнӦ + 2014.5.30 ������ + �޸�����:��FsfbStructInit()�е�"��ʱ���Ļ�����"ģ�������� + ��ʱ�������ڴ�ռ�ij�ʼ�� + �޸�����:�¿��ٵ��ڴ�ռ�Ӧ�ý��г�ʼ�� + 2014.8.05 ������ + �޸�����:ReadQueueData()�����У��޸���BTD��֧�ķ���ֵ�����BTD��֤��ͨ���� + ֻ�ǽ���򵥵Ķ������������崻��� + �޸�����:������Ҫ + 2014.8.05 ������ + �޸�����:ReadQueueData()�����У���һ֡���ݳ���:���������ݳ���+2�����������󳤶�ʱ�� + ����֡���ݶ���������ִ�� + �޸�����:֮ǰδ���˷�֧���� + 2014.8.14 ������ + �޸����ݣ�FsfbProtclOutPut������ȡ��ÿһ֡���Դ�֡���ݳ��Ƚ�����֤���Ϸ�����������֡ + �޸����ɣ�֮ǰֻ�ǶԵ�һ֡�������ݳ��ȷ�����û�ж�����֡�����ݳ��ȷ����ҶԲ��Ϸ�֡û�н�����Ӧ���� * ------------ ------ --------------- ********************************************************/ #include "string.h" @@ -58,14 +58,14 @@ #include "CommonRecord.h" #include "dsuFsfbFunc.h" #include "FsfbConfig.h" -#include "FsfbRecordDelare.h " +#include "FsfbRecordDelare.h" #include "FsfbProtclCommon.h" #include "FsfbLnkNodeMgr.h" #include "FsfbMessageInfo.h" #include "RpHandleInterface.h" /*-------------------------------------------------------------------- - * FSFBЭڲ Start + * FSFBЭ���ڲ��������� Start *--------------------------------------------------------------------*/ static UINT8 FsfbStructInit(FSFB_INFO_STRU *pFsfbStruct); static UINT8 FsfbInitLnkMngr(FSFB_INFO_STRU *pFsfbStruct); @@ -76,21 +76,21 @@ static void ClearNetsRecvPkgNum(FSFB_INFO_STRU* fsfb); static void SetNetsRecvPkgNum(FSFB_INFO_STRU* fsfb, const UINT16 dstDevName, const UINT8 netIdx); /*-------------------------------------------------------------------- - * FSFBЭڲ End + * FSFBЭ���ڲ��������� End *--------------------------------------------------------------------*/ /*-------------------------------------------------------------------- - * FSFBЭⲿӿں Start + * FSFBЭ���ⲿ�ӿں��� Start *--------------------------------------------------------------------*/ /****************************************************************************************** -* : Эʼ - 1. ڵô˺֮ǰӦҪͳһṹInputSizeOutputSize,MaxNumLink, - MaxNumPerCycle,OutnetQueueSizeȱֵ -* : UINT8 * fileName ݵļַ -* : FSFB_INFO_STRU* pFsfbStruct Эͳһṹָ -* : -* ȫֱ : -* ֵ : ʼ1򷵻0 +* �������� : Э���ʼ������ + 1. �ڵ��ô˺���֮ǰ��Ӧ��Ҫ��ͳһ�ṹ����InputSize��OutputSize,MaxNumLink, + MaxNumPerCycle,OutnetQueueSize�ȱ�����ֵ +* ������� : UINT8 * fileName ������ݵ��ļ������ַ +* ����������� : FSFB_INFO_STRU* pFsfbStruct Э��ͳһ�ṹ��ָ�� +* ������� : +* ȫ�ֱ��� : +* ����ֵ : ������ʼ������1�����򷵻�0 *******************************************************************************************/ UINT8 FsfbProtclInit(UINT8* fileName,FSFB_INFO_STRU* pFsfbStruct) { @@ -102,31 +102,31 @@ UINT8 FsfbProtclInit(UINT8* fileName,FSFB_INFO_STRU* pFsfbStruct) return retVal; } - /* DSUѯгʼ */ + /* ��DSU���ѯ�������г�ʼ������ */ retVal = dsuFsFbInit(fileName); if( 0 == retVal ) { - /* DSUѯʼʧ */ + /* DSU��ѯ�������ʼ��ʧ�� */ return retVal; } else { - /* ʲô */ + /* ʲô���� */ } - /* FSFBṹʼ */ + /* FSFB�ṹ���ʼ�� */ retVal = FsfbStructInit(pFsfbStruct); if(0 == retVal) { - /* ¼ */ + /* ��¼ */ return retVal; } else { - /* ʲô */ + /* ʲô���� */ } - /* ͨ·ʼ */ + /* ͨ����·��������ʼ�� */ if(!FsfbInitLnkMngr(pFsfbStruct)) { retVal =0; @@ -136,62 +136,62 @@ UINT8 FsfbProtclInit(UINT8* fileName,FSFB_INFO_STRU* pFsfbStruct) retVal = InitFsfbRedunStruct(pFsfbStruct, &pFsfbStruct->RpInfoStru); if(0 == retVal) { - /* ʧ ʲô */ + /* ����ʧ�� ʲô���� ���� */ return retVal; } else { - /*ʼɹ*/ + /*��ʼ���ɹ�*/ } - /* ʼ */ + /* �����ʼ�� */ retVal = RpHandleInit(&pFsfbStruct->RpInfoStru); if(0 == retVal) { - /* ʼʧ */ + /* ��ʼ��ʧ�� */ return retVal; } else { - /* 㴦ɹ */ + /* ����㴦���ɹ� */ } return retVal; } /****************************************************************************************** -* : ЭԪ,ЭĹ,Ӧô֡, - ΪݱȽϵԪ׼ñ,ͬʱά· -* : -* : FSFB_INFO_STRU* pFsfbStruct Эͳһṹָ : -* ֵ : ȷ1󷵻0 +* �������� : Э�������Ԫ��������,����Э��Ĺ���,��Ӧ�ô�����������֡, + ��Ϊ���ݱȽϵ�Ԫ׼���ñ��������,ͬʱά����·������ +* ������� : +* ����������� : FSFB_INFO_STRU* pFsfbStruct Э��ͳһ�ṹ��ָ�� : +* ����ֵ : ��ȷ����1�����󷵻�0 *******************************************************************************************/ UINT8 FsfbProtclOutPut(FSFB_INFO_STRU* pFsfbStruct) { - UINT8 retVal = 1;/*ֵ*/ - UINT8 tmpRetVal = 1;/*ʱֵ*/ + UINT8 retVal = 1;/*��������ֵ*/ + UINT8 tmpRetVal = 1;/*��ʱ��������ֵ*/ UINT32 index =0; - UINT16 msgLen = 0;/* Ϣ */ - UINT16 outputDataLen =0; /* һ֡ݳ */ - UINT16 maxMagLen = 0; /* һ֡ݵ󳤶 */ - UINT8 tmpBuff[2]={0}; /* ɱĵʱ */ - UINT16 fsfbVarLen = 0;/*FSFBЭм*/ - UINT16 redunVarLen = 0;/*мݳ*/ - Fsfb_Lnk_Info_Node_Stru* pNode = NULL; /* ͨŽڵָ */ - Fsfb_Lnk_Info_Node_Stru* CurFillLnk;/*嵱ǰָ;*/ + UINT16 msgLen = 0;/* ��Ϣ���� */ + UINT16 outputDataLen =0; /* ���һ֡���ݳ��� */ + UINT16 maxMagLen = 0; /* һ֡���ݵ���󳤶� */ + UINT8 tmpBuff[2]={0}; /* ���ɱ��ĵ���ʱ������ */ + UINT16 fsfbVarLen = 0;/*FSFBЭ���м��������*/ + UINT16 redunVarLen = 0;/*������м�������ݳ���*/ + Fsfb_Lnk_Info_Node_Stru* pNode = NULL; /* ͨ�Žڵ�ָ�� */ + Fsfb_Lnk_Info_Node_Stru* CurFillLnk;/*���嵱ǰָ��;*/ - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_APP); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_APP); /*�������*/ PrintRecArray4ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, QueueStatus(&pFsfbStruct->OutputDataQueue)); CurFillLnk=pFsfbStruct->LnkHead; - /* ޷ۼ */ + /* �޷����������ۼ� */ while(CurFillLnk!= NULL) { CurFillLnk->FsfbLinInfo.NoAppDataCycleNum++; ComAddTimeStamp(&CurFillLnk->FsfbLinInfo.TimeStmp); - /* TDM֡*/ + /* �����TDM֡*/ CurFillLnk =CurFillLnk->NextNode; } @@ -200,27 +200,27 @@ UINT8 FsfbProtclOutPut(FSFB_INFO_STRU* pFsfbStruct) index =4; if(QueueStatus(&pFsfbStruct->OutputDataQueue)>2) { - /*Ҫ͵Ӧ*/ + /*��������Ҫ���͵�Ӧ������*/ while (QueueStatus(&pFsfbStruct->OutputDataQueue)>2) { - /* ɨֽڵij:һ֡Ӧݵij */ + /* ɨ�������ֽڵij���:һ֡Ӧ�����ݵij��� */ QueueScan(2,tmpBuff,&pFsfbStruct->OutputDataQueue); msgLen = ShortFromChar(tmpBuff); if(msgLen <= maxMagLen) - {/* нڵݳ Сڵ */ + {/* ���нڵ����ݳ��� С�ڵ��� ������� */ - /*ȡһ֡ */ + /*��ȡһ֡���� */ tmpRetVal = QueueRead((UINT32)(msgLen+2),pFsfbStruct->TmpDataBuff,&pFsfbStruct->OutputDataQueue); if (tmpRetVal == 1) { - /*ϢͬϢ */ + /*���������Ϣ������ͬ����Ϣ���� */ tmpRetVal =AccordInfoCreateFrameData(pFsfbStruct->TmpDataBuff,(msgLen+2),pFsfbStruct->AppArray+index,&outputDataLen,&pNode,pFsfbStruct); index +=outputDataLen; } if (tmpRetVal == 0) { - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_READ_ERR); /*Ӧݴ*/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_READ_ERR); /*�����Ӧ�����ݴ���*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, fsfbVarLen); LongToChar(0,pFsfbStruct->AppArray); @@ -229,23 +229,23 @@ UINT8 FsfbProtclOutPut(FSFB_INFO_STRU* pFsfbStruct) } else { - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_FRAME_LEN_ERR); /*Ӧ֡ݳȴ*/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_FRAME_LEN_ERR); /*���Ӧ��֡���ݳ��ȴ���*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, msgLen); PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, maxMagLen); - QueueElementDiscard( msgLen, &pFsfbStruct->OutputDataQueue);/*֡*/ + QueueElementDiscard( msgLen, &pFsfbStruct->OutputDataQueue);/*������֡����*/ } } } else { - /*Ҫ͵Ӧ*/ + /*��������Ҫ���͵�Ӧ������*/ QueueClear(&pFsfbStruct->OutputDataQueue); LongToChar(0,pFsfbStruct->AppArray); ShortToChar(0,pFsfbStruct->VarArray); } - /* ·ϢӦ֡ */ + /* ������·��Ϣ�������Ӧ֡ */ tmpRetVal = ArrordLnkInfoCreateFrame(pFsfbStruct,&pFsfbStruct->AppArray[index],&outputDataLen); index+=outputDataLen; @@ -257,32 +257,32 @@ UINT8 FsfbProtclOutPut(FSFB_INFO_STRU* pFsfbStruct) { LongToChar(index-4,pFsfbStruct->AppArray); - /*дм*/ - /*ݽṹ*/ + /*д���м����*/ + /*���ݽṹ*/ /******************************************************* - ܳ |FSFBЭм |м - 2ֽ | N | M + �����ܳ��� |FSFBЭ���м���� |�����м���� + 2�ֽ� | N | M *******************************************************/ fsfbVarLen = FsfbWriteToVarArray(&pFsfbStruct->VarArray[2],pFsfbStruct); redunVarLen = RpHandleOutput(&pFsfbStruct->RpInfoStru, pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize); - /*ദṹемFSFBЭм*/ + /*�����ദ���ṹ���е��м����������FSFBЭ���м������*/ ComMemCopy(pFsfbStruct->RpInfoStru.VarArray,&pFsfbStruct->VarArray[2+fsfbVarLen],redunVarLen); - /*дмܳ*/ + /*д���м�����ܳ���*/ if(fsfbVarLen+redunVarLen <= 65535) { ShortToChar((UINT16)(fsfbVarLen+redunVarLen),pFsfbStruct->VarArray); } else { - /*Ҫ͵Ӧ*/ + /*��������Ҫ���͵�Ӧ������*/ QueueClear(&pFsfbStruct->OutputDataQueue); LongToChar(0,pFsfbStruct->AppArray); ShortToChar(0,pFsfbStruct->VarArray); - /*Խ,Ӧò崻*/ + /*����Խ��,������Ӧ�ò�崻�*/ - PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_ALL_LEN_ERR); /**/ + PrintRecArrayByte(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, OUT_ALL_LEN_ERR); /*�������*/ PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, fsfbVarLen); PrintRecArray2ByteB(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, redunVarLen); @@ -293,63 +293,63 @@ UINT8 FsfbProtclOutPut(FSFB_INFO_STRU* pFsfbStruct) } /*********************************************************************** - * : FsfbProtclReceiveData - * : ԺݽFSFBİȫȫݽӦá - * : - * + * ������ : FsfbProtclReceiveData + * �������� : �Ժ������������ݽ���FSFB��İ�ȫ����������ȫ���ݽ���Ӧ�á� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭͳһṹ - * УpFsfbStruct->OutnetQueueA + * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭ��ͳһ�ṹ�� + * ������У�pFsfbStruct->OutnetQueueA * pFsfbStruct->OutnetQueueB - * УpFsfbStruct->DataToApp + * ������У�pFsfbStruct->DataToApp * - * ֵ : UINT8 1 0󷵻 + * ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ UINT8 FsfbProtclReceiveData(FSFB_INFO_STRU* pFsfbStruct) { UINT8 retVal =0; - UINT16 MaxLen = 0; /* һ֡С */ - UINT8 *RecordArray = pFsfbStruct->RecordArray; /* ¼ */ - UINT16 RecordSize = pFsfbStruct->RecordArraySize; /* ¼С */ - UINT32 inputQueLen = 0u; /*г*/ + UINT16 MaxLen = 0; /* һ֡��������С */ + UINT8 *RecordArray = pFsfbStruct->RecordArray; /* ��¼ */ + UINT16 RecordSize = pFsfbStruct->RecordArraySize; /* ��¼�����С */ + UINT32 inputQueLen = 0u; /*������г���*/ - /* ¼ */ + /* ��¼���� */ ShortToChar(0,pFsfbStruct->RecordArray); -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ PrintFiles(RecordArray,RecordSize,"FSFB Receive:\n"); #endif -#ifdef FSFB_RECORD_SIMPLIFY_BIN /* */ - /* RSR뵥Ԫʶ */ - PrintRecArray2ByteB(RecordArray, RecordSize, FSFB_CYCLE_TAG); /* ڿʼ0xEE */ /* M_2010_05_10 */ - PrintRecArray4ByteB(RecordArray,RecordSize,*pFsfbStruct->CycleNum); /* ں */ /*M_2010_05_10 */ - PrintRecArrayByte(RecordArray,RecordSize,pFsfbStruct->LocalType); /* */ - PrintRecArrayByte(RecordArray,RecordSize,pFsfbStruct->LocalID); /* ID */ +#ifdef FSFB_RECORD_SIMPLIFY_BIN /* ������ */ + /* RSR���뵥Ԫ��ʶ */ + PrintRecArray2ByteB(RecordArray, RecordSize, FSFB_CYCLE_TAG); /* �����ڿ�ʼ��0xEE */ /* M_2010_05_10 */ + PrintRecArray4ByteB(RecordArray,RecordSize,*pFsfbStruct->CycleNum); /* ���ں� */ /*M_2010_05_10 */ + PrintRecArrayByte(RecordArray,RecordSize,pFsfbStruct->LocalType); /* �������� */ + PrintRecArrayByte(RecordArray,RecordSize,pFsfbStruct->LocalID); /* ����ID */ inputQueLen = QueueStatus(&pFsfbStruct->OutnetQueueR); - PrintRecArray4ByteB(RecordArray, RecordSize, inputQueLen); /**/ + PrintRecArray4ByteB(RecordArray, RecordSize, inputQueLen); /*��������*/ inputQueLen = QueueStatus(&pFsfbStruct->OutnetQueueB); - PrintRecArray4ByteB(RecordArray, RecordSize, inputQueLen); /**/ + PrintRecArray4ByteB(RecordArray, RecordSize, inputQueLen); /*��������*/ #endif - QueueClear(&pFsfbStruct->DataToApp); /* */ + QueueClear(&pFsfbStruct->DataToApp); /* ������� */ - /* нڵݳ = InputSize + FSFBϢ̶ + й̶(4+ 2) */ + /* ���нڵ�������ݳ��� = InputSize + FSFB��Ϣ�̶����� + ���й̶�����(4+ 2) */ MaxLen = pFsfbStruct->InputSize + FSFB_FIXED_LEN + 6; ClearNetsRecvPkgNum(pFsfbStruct); - /* Ժյݽд */ - PrintRecArrayByte(RecordArray, RecordSize, IN_RED); /**/ + /* �Ժ������յ������ݽ��д��� */ + PrintRecArrayByte(RecordArray, RecordSize, IN_RED); /*�����������*/ retVal = ReadQueueData(&pFsfbStruct->OutnetQueueR, MaxLen, pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, 0, pFsfbStruct); - /* յݽд */ - PrintRecArrayByte(RecordArray, RecordSize, IN_BLUE); /**/ + /* ���������յ������ݽ��д��� */ + PrintRecArrayByte(RecordArray, RecordSize, IN_BLUE); /*������������*/ retVal = ReadQueueData(&pFsfbStruct->OutnetQueueB, MaxLen, pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, 1, pFsfbStruct); - /* ı 浽ʱ */ + /* ����������ı��� ��������� ���浽��ʱ���������� */ - /* ״̬ */ + /* ����״̬���� */ retVal=FsfbRecvLnkStatusMng(pFsfbStruct); @@ -357,22 +357,22 @@ UINT8 FsfbProtclReceiveData(FSFB_INFO_STRU* pFsfbStruct) } /*********************************************************************** - * : FsfbProtclDeleteLnk - * : 豸ͺ豸IDɾ· - * : - * + * ������ : FsfbProtclDeleteLnk + * �������� : �����豸���ͺ��豸IDɾ����·�� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * devType UINT8 IN 豸 - * devId UINT8 IN 豸ID - * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭͳһṹ - * ֵ : UINT8 1 0󷵻 + * devType UINT8 IN �豸���� + * devId UINT8 IN �豸ID + * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭ��ͳһ�ṹ�� + * ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ UINT8 FsfbProtclDeleteLnk(UINT8 devType,UINT8 devId,FSFB_INFO_STRU* pFsfbStruct) { UINT8 retVal =0; Fsfb_Lnk_Info_Node_Stru *LastIndex; Fsfb_Lnk_Info_Node_Stru *CurIndex; - UINT16 destDevName;/*long豸name*/ + UINT16 destDevName;/*long���豸name*/ UINT8 ret = 0; if(pFsfbStruct == NULL) @@ -384,15 +384,15 @@ UINT8 FsfbProtclDeleteLnk(UINT8 devType,UINT8 devId,FSFB_INFO_STRU* pFsfbStruct) ComTypeId2DevName(devType,devId,&destDevName); LastIndex = NULL; - /*ǰָͷָ뿪ʼ*/ + /*��ǰָ�������ͷָ�뿪ʼ*/ CurIndex = pFsfbStruct -> LnkHead; while(CurIndex != NULL) { - /*ҵҪɾڵ*/ + /*�ҵ�Ҫɾ���ڵ�*/ if(destDevName == CurIndex->DestDevName) { - /*ɾڵͷڵ*/ + /*���ɾ���ڵ���ͷ�ڵ�*/ if(LastIndex == NULL) { pFsfbStruct ->LnkHead = CurIndex->NextNode; @@ -403,10 +403,10 @@ UINT8 FsfbProtclDeleteLnk(UINT8 devType,UINT8 devId,FSFB_INFO_STRU* pFsfbStruct) } else { - /*޲*/ + /*�޲���*/ } - }/*if(һָLastIndex == NULL)*/ - /*ɾڵ㲻ͷڵ*/ + }/*if(��һ��ָ��LastIndex == NULL)*/ + /*���ɾ���ڵ㲻��ͷ�ڵ�*/ else { LastIndex->NextNode = CurIndex->NextNode; @@ -417,45 +417,45 @@ UINT8 FsfbProtclDeleteLnk(UINT8 devType,UINT8 devId,FSFB_INFO_STRU* pFsfbStruct) } else { - /*޲*/ + /*�޲���*/ } } } else { - /*޲*/ + /*�޲���*/ } - /*ûҵҪɾڵ㣬һָ͵ǰָ붼һڵ*/ + /*û���ҵ�Ҫɾ���ڵ㣬����һ��ָ��͵�ǰָ�붼������һ���ڵ�*/ LastIndex = CurIndex; CurIndex = CurIndex->NextNode; }/*end while(CurIndex != NULL)*/ - /*ɾ·Ϣ*/ + /*ɾ��������·��Ϣ*/ retVal = RpHandleLnkDelete(destDevName,&pFsfbStruct->RpInfoStru); return retVal; } /*********************************************************************** - * : FsfbProtclGetLnkStatus - * : 豸ͺ豸IDȡ豸״̬ - * : - * + * ������ : FsfbProtclGetLnkStatus + * �������� : �����豸���ͺ��豸ID��ȡ�豸״̬�� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * devType UINT8 IN 豸 - * devId UINT8 IN 豸ID - * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭͳһṹ - * ֵ : 0ͨŽڵ㲻 - 0x2b:ͨж - 0x17: + * devType UINT8 IN �豸���� + * devId UINT8 IN �豸ID + * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭ��ͳһ�ṹ�� + * ����ֵ : 0��ͨ�Žڵ㲻���� + 0x2b:ͨ���ж� + 0x17:���������� ***********************************************************************/ UINT8 FsfbProtclGetLnkStatus(UINT8 devType,UINT8 devId,FSFB_INFO_STRU* pFsfbStruct) { UINT8 retVal =0; Fsfb_Lnk_Info_Node_Stru *pNode; - UINT16 destDevName =0;/*long豸name*/ + UINT16 destDevName =0;/*long���豸name*/ if(pFsfbStruct == NULL) { @@ -473,26 +473,26 @@ UINT8 FsfbProtclGetLnkStatus(UINT8 devType,UINT8 devId,FSFB_INFO_STRU* pFsfbStru } else if( pNode->FsfbLinInfo.RecvLinkStatus == Fsfb_RecvData) { - /* */ + /* ���������� */ retVal = 0x17; } else { - /* ͨ״̬*/ + /* ͨ��״̬������*/ retVal = 0x2b; } return retVal; } /*********************************************************************** - * : FsfbProtclRefreshLnk - * : мˢ·״̬ - * : - * + * ������ : FsfbProtclRefreshLnk + * �������� : ����������м����ˢ����·״̬�� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * pLnkStatusData UINT8* IN м - * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭͳһṹ - * ֵ : UINT8 1 0󷵻 + * pLnkStatusData UINT8* IN �м�������� + * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭ��ͳһ�ṹ�� + * ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ UINT8 FsfbProtclRefreshLnk(UINT8* pLnkStatusData,FSFB_INFO_STRU* pFsfbStruct) { @@ -503,11 +503,11 @@ UINT8 FsfbProtclRefreshLnk(UINT8* pLnkStatusData,FSFB_INFO_STRU* pFsfbStruct) UINT16 sLnksNums =0; INT16 tmpInput =0; UINT16 inputDataLnk =0; - UINT16 lnkStatusTotalLen = 0;/*·״̬ܳ*/ - UINT16 redunStatusLen = 0;/*·Ϣ*/ - UINT16 fsfbStatusLen = 0;/*FSFBЭ·Ϣ*/ + UINT16 lnkStatusTotalLen = 0;/*��·״̬�ܳ���*/ + UINT16 redunStatusLen = 0;/*������·��Ϣ����*/ + UINT16 fsfbStatusLen = 0;/*FSFBЭ����·��Ϣ����*/ - UINT16 index = 0;/*ƫ*/ + UINT16 index = 0;/*����ƫ��*/ if((pLnkStatusData == NULL)||(pFsfbStruct == NULL)) { @@ -527,11 +527,11 @@ UINT8 FsfbProtclRefreshLnk(UINT8* pLnkStatusData,FSFB_INFO_STRU* pFsfbStruct) CurLnk = CurLnk->NextNode; } - /*2ֽڵ·Ϣܳ*/ + /*2���ֽڵ���·��Ϣ�ܳ���*/ lnkStatusTotalLen = ShortFromChar(pLnkStatusData); index += 2; - /*ȡFSFB·Ϣ*/ + /*��ȡFSFB����·��Ϣ����*/ fsfbStatusLen = ShortFromChar(&pLnkStatusData[index]); index += 2; tmpInput = fsfbStatusLen; @@ -541,9 +541,9 @@ UINT8 FsfbProtclRefreshLnk(UINT8* pLnkStatusData,FSFB_INFO_STRU* pFsfbStruct) for( i = 0; i < sLnksNums; i++) { CurLnk = (Fsfb_Lnk_Info_Node_Stru *)ComPopStack(&pFsfbStruct->LnkStack); - if(CurLnk != 0) /*ӶջܹõĽڵַ*/ + if(CurLnk != 0) /*�Ӷ�ջ���ܹ��������õĽڵ��ַ*/ { - /*ʷˢ·Ϣ*/ + /*������ʷ����ˢ����·������Ϣ*/ FsfbVarArray2LnkNodeInfo((UINT8 *)&pLnkStatusData[index+FSFB_VAR_NODE_LEN * i], CurLnk); if( i == 0) @@ -561,7 +561,7 @@ UINT8 FsfbProtclRefreshLnk(UINT8* pLnkStatusData,FSFB_INFO_STRU* pFsfbStruct) tmpInput = tmpInput - FSFB_VAR_NODE_LEN; if( 0 == ( tmpInput % FSFB_VAR_NODE_LEN ) ) { - /* */ + /* �������� */ } else { @@ -578,16 +578,16 @@ UINT8 FsfbProtclRefreshLnk(UINT8* pLnkStatusData,FSFB_INFO_STRU* pFsfbStruct) } index += (sLnksNums*FSFB_VAR_NODE_LEN); - /*ȡദ·Ϣij*/ + /*��ȡ���ദ����·��Ϣ�ij���*/ redunStatusLen = ShortFromChar(&pLnkStatusData[index]); if ((redunStatusLen+2) == (lnkStatusTotalLen-2-fsfbStatusLen)) { - /*ˢ·Ϣ*/ + /*ˢ����·��Ϣ*/ retVal = RpHandleRefresh(redunStatusLen,&pLnkStatusData[index+2],&pFsfbStruct->RpInfoStru); } else { - /*·Ϣ*/ + /*��·��Ϣ����*/ retVal = 0; } } @@ -600,13 +600,13 @@ UINT8 FsfbProtclRefreshLnk(UINT8* pLnkStatusData,FSFB_INFO_STRU* pFsfbStruct) } /*********************************************************************** - * : FsfbProtclFreeSpace - * : ͷſռ䡣 - * : - * + * ������ : FsfbProtclFreeSpace + * �������� : �ͷſռ䡣 + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭͳһṹ - * ֵ : UINT8 1 0󷵻 + * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBЭ��ͳһ�ṹ�� + * ����ֵ : UINT8 1���������� 0�����󷵻� ***********************************************************************/ UINT8 FsfbProtclFreeSpace(FSFB_INFO_STRU* pFsfbStruct) { @@ -618,7 +618,7 @@ UINT8 FsfbProtclFreeSpace(FSFB_INFO_STRU* pFsfbStruct) } else { - /* */ + /* �������� */ } if(pFsfbStruct->AppArray != NULL) @@ -628,7 +628,7 @@ UINT8 FsfbProtclFreeSpace(FSFB_INFO_STRU* pFsfbStruct) } else { - /*޲*/ + /*�޲���*/ } if(pFsfbStruct->VarArray != NULL) @@ -638,7 +638,7 @@ UINT8 FsfbProtclFreeSpace(FSFB_INFO_STRU* pFsfbStruct) } else { - /*޲*/ + /*�޲���*/ } if(pFsfbStruct->RecordArray != NULL) @@ -648,9 +648,9 @@ UINT8 FsfbProtclFreeSpace(FSFB_INFO_STRU* pFsfbStruct) } else { - /*޲*/ + /*�޲���*/ } - /*ͷŶеĿռ*/ + /*�ͷŶ��еĿռ�*/ QueueElementFree(&pFsfbStruct->OutnetQueueR); QueueElementFree(&pFsfbStruct->OutnetQueueB); QueueElementFree(&pFsfbStruct->OutputDataQueue); @@ -663,7 +663,7 @@ UINT8 FsfbProtclFreeSpace(FSFB_INFO_STRU* pFsfbStruct) } else { - /*޲*/ + /*�޲���*/ } retVal = RpHandleFreeSpace(&pFsfbStruct->RpInfoStru); @@ -671,187 +671,181 @@ UINT8 FsfbProtclFreeSpace(FSFB_INFO_STRU* pFsfbStruct) return retVal; } -/*-------------------------------------------------------------------- - * FSFBЭⲿӿں End - *--------------------------------------------------------------------*/ -/*-------------------------------------------------------------------- - * FSFBЭڲӿں Start - *--------------------------------------------------------------------*/ -/*********************************************************************** - * : FsfbStructInit - * : ͨúʵֶRSRijʼӦ趨ĻֵеĴС - * : - * - * -------------------------------------------------------------- - * pFsfbStruct FSFB_INFO_STRU* INOUT FSFBͳһṹ壬гʼֵá - * ֵ : UINT8 1 0󷵻 - ***********************************************************************/ -static UINT8 FsfbStructInit(FSFB_INFO_STRU *pFsfbStruct) +/** +* @brief FsfbStructInit ����ABT������Ϣ����ͨ�Žڵ���Ϣ +* @param pLnkNode ��·�ڵ� ȡֵ��Χ:�ο��ṹ��Fsfb_Lnk_Info_Node_Stru +* @return 0:ʧ��;1�ɹ� +*/ +static UINT8 FsfbStructInit(FSFB_INFO_STRU* pFsfbStruct) { - UINT8 retVal = 0; - UINT16 inputSize = 0; - UINT16 outputSize = 0; - UINT16 maxMsgNum=0; - UINT16 maxMsg = 0; + /*- ����ֲ�����*/ + UINT8 retVal = 0u; /*-< ���ú�������ֵΪ0*/ + UINT16 inputSize = 0u; + UINT16 outputSize = 0u; + UINT16 maxMsgNum = 0u; + UINT16 maxMsg = 0u; inputSize = pFsfbStruct->InputSize; outputSize = pFsfbStruct->OutputSize; - /* */ - maxMsg = pFsfbStruct->InputSize > pFsfbStruct->OutputSize? - pFsfbStruct->InputSize:pFsfbStruct->OutputSize; - maxMsg += 2 + 4 + FSFB_FIXED_LEN +32; /* źŲй̶(2+4) + RSSP̶ + 32 */ + /*- �õ���������� */ + maxMsg = pFsfbStruct->InputSize > pFsfbStruct->OutputSize ? + pFsfbStruct->InputSize : pFsfbStruct->OutputSize; + maxMsg += 2u + 4u + FSFB_FIXED_LEN + 32u; /*-< �źŲ���й̶�����(2+4) + RSSP��̶����� + 32���� */ - /* ʼ */ - maxMsgNum = pFsfbStruct->MaxNumLink *(pFsfbStruct->MaxNumPerCycle + 2); /* */ + /*- ���������ʼ�� */ + maxMsgNum = pFsfbStruct->MaxNumLink * (pFsfbStruct->MaxNumPerCycle + 2u); /* ������� */ - /* FSFBģ */ - pFsfbStruct->AppArraySize = (pFsfbStruct->OutputSize+11+26)*(pFsfbStruct->MaxNumPerCycle)*(pFsfbStruct->MaxNumLink)+2; - pFsfbStruct->AppArray = (UINT8 *)malloc(pFsfbStruct->AppArraySize); - if(pFsfbStruct->AppArray == NULL) + /*- FSFB�����ģ������������*/ + pFsfbStruct->AppArraySize = (pFsfbStruct->OutputSize + 11 + 26) * (pFsfbStruct->MaxNumPerCycle) * (pFsfbStruct->MaxNumLink) + 2; + pFsfbStruct->AppArray = (UINT8*)malloc(pFsfbStruct->AppArraySize); + if (pFsfbStruct->AppArray == NULL) /*-< ����ʧ��*/ { - retVal = 0; - return retVal; + retVal = 0u; /*-< ���ú�������ֵΪ0*/ + return retVal; /*-< ���غ�������ֵ*/ } else { - LongToChar(0, pFsfbStruct->AppArray); + ComMemSet(pFsfbStruct->AppArray, sizeof(UINT8) * pFsfbStruct->AppArraySize, 0U); /*-< ���������*/ + LongToChar(0, pFsfbStruct->AppArray); /*-< ����������鳤��Ϊ0*/ } - /* FSFBģмС */ - pFsfbStruct->VarArraySize = FSFB_VAR_NODE_LEN * pFsfbStruct->MaxNumLink+32; + /*- ����FSFB���ģ������м���������С */ + pFsfbStruct->VarArraySize = FSFB_VAR_NODE_LEN * pFsfbStruct->MaxNumLink + 32u; pFsfbStruct->VarArray = (UINT8*)malloc(pFsfbStruct->VarArraySize); - if( NULL == pFsfbStruct->VarArray) + if (NULL == pFsfbStruct->VarArray) /*-< ����ʧ��*/ { - /* ¼ */ - retVal =0; - return retVal; + /* ��¼ */ + retVal = 0u; /*-< ���ú�������ֵΪ0*/ + return retVal; /*-< ���غ�������ֵ*/ } else { - ShortToChar(0, pFsfbStruct->VarArray); + ComMemSet(pFsfbStruct->VarArray, sizeof(UINT8) * pFsfbStruct->VarArraySize, 0U); /*-< �����м��������*/ + ShortToChar(0u, pFsfbStruct->VarArray); /*-< �����м�������鳤��Ϊ0*/ } - /* ЭӦõݶг */ - pFsfbStruct->DataToAppSize = (inputSize + 6) * maxMsgNum; /* ЭӦõݶг */ - retVal = QueueInitial(&pFsfbStruct->DataToApp,pFsfbStruct->DataToAppSize); - if(0 == retVal) + /*- ��ʼ��Э�������Ӧ�õ����ݶ���*/ + pFsfbStruct->DataToAppSize = (inputSize + 6u) * maxMsgNum; /* Э�������Ӧ�õ����ݶ��г��� */ + retVal = QueueInitial(&pFsfbStruct->DataToApp, pFsfbStruct->DataToAppSize); + if (0u == retVal) /*-< ��������ֵ�Ƿ�Ϊʧ��*/ { - return retVal; + return retVal; /*-< ���غ�������ֵ*/ } else { - /* ʲô */ + /* ʲô���� */ } - /* ӦøЭݶг */ - pFsfbStruct->OutputDataQueueSize= (outputSize + 8 )*maxMsgNum; - retVal = QueueInitial(&pFsfbStruct->OutputDataQueue,pFsfbStruct->OutputDataQueueSize); - if(0 == retVal) + /*- ��ʼ��Ӧ�ø�Э����������ݶ���*/ + pFsfbStruct->OutputDataQueueSize = (outputSize + 8u) * maxMsgNum; + retVal = QueueInitial(&pFsfbStruct->OutputDataQueue, pFsfbStruct->OutputDataQueueSize); + if (0u == retVal) /*-< ��������ֵ�Ƿ�Ϊʧ��*/ { - return retVal; + return retVal; /*-< ���غ�������ֵ*/ } else { - /* ʲô */ + /* ʲô���� */ } - /* ܶг */ - pFsfbStruct->OutnetQueueSize = (pFsfbStruct->InputSize + 2 + 11)*pFsfbStruct->MaxNumPerCycle*pFsfbStruct->MaxNumLink; - /* */ - retVal = QueueInitial(&pFsfbStruct->OutnetQueueR,pFsfbStruct->OutnetQueueSize); - if(0 == retVal) + /*- ��ʼ���������ܶ���*/ + pFsfbStruct->OutnetQueueSize = (pFsfbStruct->InputSize + 2u + 11u) * pFsfbStruct->MaxNumPerCycle * pFsfbStruct->MaxNumLink; + /*- ��ʼ���������� */ + retVal = QueueInitial(&pFsfbStruct->OutnetQueueR, pFsfbStruct->OutnetQueueSize); + if (0u == retVal) /*-< ��������ֵ�Ƿ�Ϊʧ��*/ { - return retVal; + return retVal; /*-< ���غ�������ֵ*/ } else { - /* ʲô */ + /* ʲô���� */ } - /* */ - retVal = QueueInitial(&pFsfbStruct->OutnetQueueB,pFsfbStruct->OutnetQueueSize); - if(0 == retVal) + /*- ��ʼ���������� */ + retVal = QueueInitial(&pFsfbStruct->OutnetQueueB, pFsfbStruct->OutnetQueueSize); + if (0u == retVal) /*-< ��������ֵ�Ƿ�Ϊʧ��*/ { - return retVal; + return retVal; /*-< ���غ�������ֵ*/ } else { - /* ʲô */ + /* ʲô���� */ } - /* ¼ */ + /*- �����¼����*/ pFsfbStruct->RecordArray = (UINT8*)malloc(pFsfbStruct->RecordArraySize); - if( NULL == pFsfbStruct->RecordArray) + if (NULL == pFsfbStruct->RecordArray) /*-< ����ʧ��*/ { - /* ¼ */ - retVal =0; - return retVal; + /* ��¼ */ + retVal = 0u; /*-< ���ú�������ֵΪ0*/ + return retVal; /*-< ���غ�������ֵ*/ } else { - ComMemSet(pFsfbStruct->RecordArray ,pFsfbStruct->RecordArraySize,0x0); + ComMemSet(pFsfbStruct->RecordArray, pFsfbStruct->RecordArraySize, 0x0); /*-< �����¼����*/ } - /* ·ջռ */ + /*- ��ʼ����·��������ջ*/ pFsfbStruct->LnkStack.maxNodeNum = pFsfbStruct->MaxNumLink; - retVal = StackInitial(&pFsfbStruct->LnkStack.stack,pFsfbStruct->LnkStack.maxNodeNum); - - if (0 == retVal) + retVal = StackInitial(&pFsfbStruct->LnkStack.stack, pFsfbStruct->LnkStack.maxNodeNum); + + if (0u == retVal) /*-< ��������ֵ�Ƿ�Ϊʧ��*/ { - return retVal; + return retVal; /*-< ���غ�������ֵ*/ } else { - /* */ + /* �������� */ } - /* ʱĻ */ - pFsfbStruct->TmpDataBuff = (UINT8 *)malloc(maxMsg); - if( NULL == pFsfbStruct->TmpDataBuff) + /*- ������ʱ���Ļ�����*/ + pFsfbStruct->TmpDataBuff = (UINT8*)malloc(maxMsg); + if (NULL == pFsfbStruct->TmpDataBuff) /*-< ����ʧ��*/ { - retVal =0; - return retVal; + retVal = 0u; /*-< ���ú�������ֵΪ0*/ + return retVal; /*-< ���غ�������ֵ*/ } else { - ComMemSet(pFsfbStruct->TmpDataBuff ,maxMsg,0x0); + ComMemSet(pFsfbStruct->TmpDataBuff, maxMsg, 0x0u); /*-< ������ʱ���Ļ�����*/ } - pFsfbStruct->NetsRecvPkgNums = (FsfbNetsRecvPkgNum*)malloc(sizeof(FsfbNetsRecvPkgNum) * pFsfbStruct->MaxNumLink); - if (NULL == pFsfbStruct->NetsRecvPkgNums) + pFsfbStruct->NetsRecvPkgNumsLen = 0u; /*-< ���ø����յ��������鳤��Ϊ0*/ + pFsfbStruct->NetsRecvPkgNums = (FsfbNetsRecvPkgNum*)malloc(sizeof(FsfbNetsRecvPkgNum) * pFsfbStruct->MaxNumLink); /*-< ��������յ���������*/ + if (NULL == pFsfbStruct->NetsRecvPkgNums) /*-< ����ʧ��*/ { - retVal = 0; - return retVal; + retVal = 0u; /*-< ���ú�������ֵΪ0*/ + return retVal; /*-< ���غ�������ֵ*/ } else { - ComMemSet((UINT8*)pFsfbStruct->NetsRecvPkgNums, sizeof(FsfbNetsRecvPkgNum)* pFsfbStruct->MaxNumLink, 0u); + ComMemSet((UINT8*)pFsfbStruct->NetsRecvPkgNums, sizeof(FsfbNetsRecvPkgNum) * pFsfbStruct->MaxNumLink, 0u); /*-< ��������յ���������*/ } - retVal = 1; - return retVal; + retVal = 1; /*-< ���ú�������ֵΪ1*/ + return retVal; /*-< ���غ�������ֵ*/ } /****************************************************************************************** -* : ʼͨ·(һָͷڵһά) - 1. ̬·ջռ䣬гʼ - 2. ·ͷָΪգ -* : -* : FSFB_INFO_STRU* pFsfbStruct Эʹõͳһṹָ -* : -* ȫֱ : -* ֵ : ɹ1,ʧܷ0 +* �������� : ��ʼ��ͨ����·������������(����һ��ָ��ͷ�ڵ��һά����) + 1. ��̬������·��������ջ�ռ䣬��������г�ʼ���� + 2. ����·��������ͷָ����Ϊ�գ� +* ������� : +* ����������� : FSFB_INFO_STRU* pFsfbStruct Э��ʹ�õ�ͳһ�ṹ��ָ�� +* ������� : +* ȫ�ֱ��� : +* ����ֵ : �ɹ�����1,ʧ�ܷ���0 *******************************************************************************************/ -static UINT8 FsfbInitLnkMngr(FSFB_INFO_STRU *pFsfbStruct) /*·ʼ*/ +static UINT8 FsfbInitLnkMngr(FSFB_INFO_STRU *pFsfbStruct) /*��·��������ʼ������*/ { UINT8 retVal =0; - /*·ڵ洢ռ*/ + /*���������·�ڵ����洢�ռ�*/ if(!FsfbInitLnkMngrStack(&pFsfbStruct->LnkStack)) { - /*¼¼*/ + /*��¼��¼*/ retVal = 0; return retVal; } @@ -862,25 +856,25 @@ static UINT8 FsfbInitLnkMngr(FSFB_INFO_STRU *pFsfbStruct) /* } /****************************************************************************************** -* : ʼ·ջ -* ʼضСضṹĶջ,ͬĽṹֻҪѹ벻ָͬʹ÷ʽɲͬĹջ -* : ComStackElement* s ջָ -* : -* : -* ȫֱ : -* ֵ : ɹ1,ʧܷ0 +* �������� : ��ʼ����·��������ջ +* ��ʼ���ض���С�ض��ṹ�Ķ�ջ,��ͬ�Ľṹ��ֻ��Ҫ����ѹ�벻ͬ��ָ��ʹ�÷�ʽ��������ɲ�ͬ�Ĺ�����ջ +* ������� : ComStackElement* s ��ջ��ָ�� +* ����������� : +* ������� : +* ȫ�ֱ��� : +* ����ֵ : �ɹ�����1,ʧ�ܷ���0 *******************************************************************************************/ static UINT8 FsfbInitLnkMngrStack(ComStackElement *s)/* %RELAX */ { - UINT16 i;/*ѭ*/ + UINT16 i;/*ѭ������*/ Fsfb_Lnk_Info_Node_Stru *pLnkMngrStack = NULL; UINT8 retVal =0; - StackClear(&s->stack); /* */ + StackClear(&s->stack); /* ��������*/ pLnkMngrStack = (Fsfb_Lnk_Info_Node_Stru *)malloc(sizeof(Fsfb_Lnk_Info_Node_Stru) * s->maxNodeNum); if(pLnkMngrStack == NULL) { - /*ӡӡ*/ + /*��ӡ��ӡ*/ retVal = 0; return retVal; } @@ -889,11 +883,11 @@ static UINT8 FsfbInitLnkMngrStack(ComStackElement *s)/* %RELAX */ ComMemSet((UINT8*)pLnkMngrStack, sizeof(Fsfb_Lnk_Info_Node_Stru) * s->maxNodeNum, 0x00); } for (i = 0;i < s->maxNodeNum;i++) - { /*ѹtotalsizeڵ*/ + { /*ѹ��totalsize���ڵ�*/ if(ComPushStack(s,(STACK_DATA_TYPE)&pLnkMngrStack[i]) != 1) { retVal = 0; - return retVal;/*ѹڵʧ*/ + return retVal;/*ѹ��ڵ�ʧ��*/ } else { @@ -905,97 +899,97 @@ static UINT8 FsfbInitLnkMngrStack(ComStackElement *s)/* %RELAX */ } /*********************************************************************** - * : ReadQueueData - * : Խյݽش - * : - * + * ������ : ReadQueueData + * �������� : �Խ��յ������ݽ�����ش����� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * pQueueData QueueStruct* IN ӦýյݵĶ - * MaxLen UINT16 IN - * RecordArray UINT8* INOUT ¼ + * pQueueData QueueStruct* IN ��Ӧ�ý��յ����ݵĶ��� + * MaxLen UINT16 IN ������� + * RecordArray UINT8* INOUT ��¼���� * RecordArraySize UINT16 - * pFsfbStruct FSFB_INFO_STRU * INOUT FSFBЭͳһṹ - * ֵ : DataNode_WL* ʱͷ + * pFsfbStruct FSFB_INFO_STRU * INOUT FSFBЭ��ͳһ�ṹ�� + * ����ֵ : DataNode_WL* ��ʱ����������ͷ ***********************************************************************/ static UINT8 ReadQueueData(QueueStruct *pQueueData,UINT16 MaxLen,UINT8 *RecordArray, UINT16 RecordSize, const UINT8 netIdx,FSFB_INFO_STRU *pFsfbStruct) { UINT8 retVal = 0; UINT8 flag =0; - UINT16 index = 0; /* ݱ־λ */ + UINT16 index = 0; /* ���ݱ�־λ */ UINT8 destDevType =0; UINT8 destDevId =0; UINT16 desDevName =0; - UINT16 MsgLen = 0; /* Ϣ */ + UINT16 MsgLen = 0; /* ��Ϣ���� */ UINT8 applyCat = 0; - UINT8 messageType =0; /* Ϣ */ + UINT8 messageType =0; /* ��Ϣ���� */ UINT8 tmpBtd[2]={0}; - UINT32 rcvBtdSn = 0;/*յBTD֡к*/ - UINT32 rcvOtherSn = 0;/*յ֡к*/ - const UINT8 SENDER_TYPE_QUE_POS = 0; /* 淢ͷ͵λ */ - const UINT8 SENDER_ID_QUE_POS = SENDER_TYPE_QUE_POS+1; /* 淢ͷIdλ */ - const UINT8 SENDER_EMPTY_QUE_POS =SENDER_ID_QUE_POS+1; /* Ԥֽ*/ + UINT32 rcvBtdSn = 0;/*���յ�BTD֡�����к�*/ + UINT32 rcvOtherSn = 0;/*���յ�����֡�����к�*/ + const UINT8 SENDER_TYPE_QUE_POS = 0; /* ���淢�ͷ����͵�λ�� */ + const UINT8 SENDER_ID_QUE_POS = SENDER_TYPE_QUE_POS+1; /* ���淢�ͷ�Id��λ�� */ + const UINT8 SENDER_EMPTY_QUE_POS =SENDER_ID_QUE_POS+1; /* ����Ԥ���ֽ�*/ retVal =1; - /* г>2 */ + /* ���г���>2 */ while(2 <= QueueStatus(pQueueData)) { - /* нڵʽ + /* ���нڵ��ʽ * ---------------------------------------------------------------------- - * | ͷType | ͷID | Ԥֽ| Ϣ֡ʽ - * 2ֽ| 1ֽ | 1 ֽ | 2bytes | + * ���� | ���ͷ�Type | ���ͷ�ID | Ԥ���ֽ�| ������Ϣ��֡��ʽ + * 2�ֽ�| 1�ֽ� | 1 �ֽ� | 2bytes | * ----------------------------------------------------------------------- */ index=0; - QueueRead(2,pFsfbStruct->TmpDataBuff,pQueueData); /* ɨֽڵij */ + QueueRead(2,pFsfbStruct->TmpDataBuff,pQueueData); /* ɨ�������ֽڵij��� */ MsgLen = ShortFromChar(pFsfbStruct->TmpDataBuff); if((MsgLen+2) <= MaxLen) { - /* һ֡ */ + /* ����һ֡���� */ retVal =QueueRead(MsgLen,pFsfbStruct->TmpDataBuff,pQueueData); if (retVal == 0) { - /* ʧʣµݴССMsgLen+2¼ */ -#ifdef FSFB_RECORD_ERR_ASCII /* ַʽ */ - PrintFiles(RecordArray,RecordSize,"W:Write Que Err\n"); /* ʧ */ + /* ������ʧ�������ʣ�µ����ݴ�СС��MsgLen+2�����¼ */ +#ifdef FSFB_RECORD_ERR_ASCII /* �ַ�����ʽ */ + PrintFiles(RecordArray,RecordSize,"W:Write Que Err\n"); /* ������ʧ�� */ #endif -#ifdef FSFB_RECORD_SIMPLIFY_BIN /* */ - PrintRecArrayByte(RecordArray, RecordSize, IN_READ_FRAME_ERR); /*ȡ֡ȴ*/ - PrintRecArray2ByteB(RecordArray, RecordSize, MsgLen); /*֡ȴ*/ +#ifdef FSFB_RECORD_SIMPLIFY_BIN /* ������ */ + PrintRecArrayByte(RecordArray, RecordSize, IN_READ_FRAME_ERR); /*��ȡ����֡���ȴ���*/ + PrintRecArray2ByteB(RecordArray, RecordSize, MsgLen); /*��������֡���ȴ���*/ #endif break; } - /* 豸Type*/ + /* �豸��Type*/ destDevType = pFsfbStruct->TmpDataBuff[SENDER_TYPE_QUE_POS]; - /* 豸ID */ + /* �豸��ID */ destDevId = pFsfbStruct->TmpDataBuff[SENDER_ID_QUE_POS]; ComTypeId2DevName(destDevType,destDevId,&desDevName); SetNetsRecvPkgNum(pFsfbStruct, desDevName, netIdx); - /* Ԥֽռ*/ + /* Ԥ���ֽ�ռ����*/ index = SENDER_EMPTY_QUE_POS+2; while((MsgLen-index)>0) { - /* 1ֽڵApplication Catory */ + /* 1���ֽڵ�Application Catory */ applyCat = pFsfbStruct->TmpDataBuff[index+FSFB_APP_CTGRY_POS]; - /* 1ֽ Ϣ */ + /* 1���ֽ� ��Ϣ���� */ messageType = pFsfbStruct->TmpDataBuff[index+FSFB_MSG_TYPE_POS]; - PrintRecArrayByte(RecordArray, RecordSize, IN_READ_FRAME); /*ȡ֡*/ - PrintRecArrayByte(RecordArray, RecordSize, applyCat); /*֡*/ - PrintRecArrayByte(RecordArray, RecordSize, messageType); /*֡*/ - PrintRecArray2ByteB(RecordArray, RecordSize, desDevName); /*豸ID*/ - PrintRecArray2ByteB(RecordArray, RecordSize, ShortFromCharLE(&pFsfbStruct->TmpDataBuff[index + FSFB_SRC_ADD_POS])); /*֡Դ豸ID*/ - PrintRecArray2ByteB(RecordArray, RecordSize, ShortFromCharLE(&pFsfbStruct->TmpDataBuff[index + FSFB_DEST_ADD_POS])); /*֡Ŀ豸ID*/ - PrintRecArray4ByteB(RecordArray, RecordSize, LongFromCharLE(&pFsfbStruct->TmpDataBuff[index + FSFB_TC_POS])); /*֡*/ + PrintRecArrayByte(RecordArray, RecordSize, IN_READ_FRAME); /*��ȡ����֡*/ + PrintRecArrayByte(RecordArray, RecordSize, applyCat); /*֡����*/ + PrintRecArrayByte(RecordArray, RecordSize, messageType); /*֡����*/ + PrintRecArray2ByteB(RecordArray, RecordSize, desDevName); /*�豸����ID*/ + PrintRecArray2ByteB(RecordArray, RecordSize, ShortFromCharLE(&pFsfbStruct->TmpDataBuff[index + FSFB_SRC_ADD_POS])); /*֡��Դ�豸����ID*/ + PrintRecArray2ByteB(RecordArray, RecordSize, ShortFromCharLE(&pFsfbStruct->TmpDataBuff[index + FSFB_DEST_ADD_POS])); /*֡��Ŀ���豸����ID*/ + PrintRecArray4ByteB(RecordArray, RecordSize, LongFromCharLE(&pFsfbStruct->TmpDataBuff[index + FSFB_TC_POS])); /*֡���*/ switch(messageType) { case FSFB_SSE_MSG: - /* SSE֡ */ + /* ����SSE֡ */ if(applyCat == APPLCAT_BTM) { rcvOtherSn = LongFromCharLE(&pFsfbStruct->TmpDataBuff[index+FSFB_TC_POS]); @@ -1017,11 +1011,11 @@ static UINT8 ReadQueueData(QueueStruct *pQueueData,UINT16 MaxLen,UINT8 *RecordAr retVal = FsfbAnalysisSsrMsg(desDevName,applyCat,&pFsfbStruct->TmpDataBuff[index],pFsfbStruct,pFsfbStruct->RecordArray,pFsfbStruct->RecordArraySize); index +=SSR_SIZE; - /* SSR֡ʼ */ + /* ��SSR֡��ʼ���� */ break; case FSFB_TSD_MSG: - /* ܽյ */ - /* յֱӶ */ + /* �����ܽ��յ� */ + /* ����յ�ֱ�Ӷ��� */ index +=TSD_SIZE; break; case FSFB_ABT_MSG: @@ -1032,26 +1026,26 @@ static UINT8 ReadQueueData(QueueStruct *pQueueData,UINT16 MaxLen,UINT8 *RecordAr index +=ABT_SIZE; break; case FSFB_SBT_MSG: - /* յֱӶ */ + /* ����յ�ֱ�Ӷ��� */ index +=SBT_SIZE; break; case FSFB_BTC_MSG: - /* յֱӶ */ + /* ����յ�ֱ�Ӷ��� */ index +=BTC_SIZE; break; case FSFB_EBT_MSG: - /* EBT */ + /* ����EBT���� */ retVal =FsfbAnalysisEbtMsg(desDevName,applyCat,&pFsfbStruct->TmpDataBuff[index],pFsfbStruct,pFsfbStruct->RecordArray,pFsfbStruct->RecordArraySize); index +=EBT_SIZE; break; case FSFB_BTD_MSG: - /* ЧԼ*/ + /* ������Ч�Լ��*/ rcvBtdSn = LongFromCharLE(&pFsfbStruct->TmpDataBuff[index+FSFB_TC_POS]); retVal = ReadRpHandleQueueData(desDevName,rcvBtdSn,&pFsfbStruct->RpInfoStru); if(1 == retVal) { - /* ݣ·״̬ */ + /* ���������ݣ�������·״̬��������� */ retVal =FsfbAnalysisBtdMsg(desDevName,applyCat,&pFsfbStruct->TmpDataBuff[index],pFsfbStruct,pFsfbStruct->RecordArray,pFsfbStruct->RecordArraySize); if(1 == retVal) { @@ -1066,12 +1060,12 @@ static UINT8 ReadQueueData(QueueStruct *pQueueData,UINT16 MaxLen,UINT8 *RecordAr } else { - retVal=1;/*ڲϷBTDֻ֡ǽ䶪崻*/ + retVal=1;/*���ڲ��Ϸ�BTD֡��ֻ�ǽ��䶪�����������崻�*/ } } else { - /* ֡ */ + /* ������֡���� */ retVal=1; } index +=BTD_SIZE; @@ -1087,36 +1081,36 @@ static UINT8 ReadQueueData(QueueStruct *pQueueData,UINT16 MaxLen,UINT8 *RecordAr } } else - {/*֡ݶ*/ + {/*����֡���ݶ���*/ QueueElementDiscard(MsgLen,pQueueData); - PrintRecArrayByte(RecordArray, RecordSize, IN_FRAME_LEN_ERR); /*֡ȴ*/ - PrintRecArray2ByteB(RecordArray, RecordSize, MsgLen); /*֡*/ + PrintRecArrayByte(RecordArray, RecordSize, IN_FRAME_LEN_ERR); /*��������֡���ȴ���*/ + PrintRecArray2ByteB(RecordArray, RecordSize, MsgLen); /*��������֡����*/ } } return retVal; } /*********************************************************************** - * : InitRedunStruct - * : ͳһṹгʼ - * : - * + * ������ : InitRedunStruct + * �������� : ������ͳһ�ṹ����г�ʼ�������� + * ������� : + * ������ ���� ������� ���� * -------------------------------------------------------------- - * pFsfbStruct const FSFB_INFO_STRU* IN FSFBͳһṹ - * pRedunInfoStru RPHANDLE_INFO_STRU * IN ͳһṹ + * pFsfbStruct const FSFB_INFO_STRU* IN FSFB��ͳһ�ṹ�� + * pRedunInfoStru RPHANDLE_INFO_STRU * IN �����ͳһ�ṹ�� * - * ֵ : UINT8 0󷵻 1 + * ����ֵ : UINT8 0�����󷵻� 1���������� ***********************************************************************/ static UINT8 InitFsfbRedunStruct(const FSFB_INFO_STRU *pFsfbStruct, RPHANDLE_INFO_STRU *pRedunInfoStru) { - UINT8 ret = 0;/*ֵ*/ + UINT8 ret = 0;/*��������ֵ*/ - pRedunInfoStru->LocalType = pFsfbStruct->LocalType; /* 豸ID */ + pRedunInfoStru->LocalType = pFsfbStruct->LocalType; /* �����豸ID */ - pRedunInfoStru->MaxNumPerCycle = pFsfbStruct->MaxNumPerCycle; /* */ - pRedunInfoStru->RecordArraySize = pFsfbStruct->RecordArraySize; /* ¼ */ + pRedunInfoStru->MaxNumPerCycle = pFsfbStruct->MaxNumPerCycle; /* ������� */ + pRedunInfoStru->RecordArraySize = pFsfbStruct->RecordArraySize; /* ����¼�� */ pRedunInfoStru->MaxNumLink = pFsfbStruct->MaxNumLink; @@ -1125,11 +1119,11 @@ static UINT8 InitFsfbRedunStruct(const FSFB_INFO_STRU *pFsfbStruct, RPHANDLE_INF } /* -*: հ -*: FSFB_INFO_STRU* fsfb fsfb -*: -*: -*ֵ: +*��������: ���������հ��� +*�������: FSFB_INFO_STRU* fsfb fsfb���� +*�������: �� +*�������: �� +*����ֵ: �� */ static void ClearNetsRecvPkgNum(FSFB_INFO_STRU* fsfb) { @@ -1145,29 +1139,29 @@ static void ClearNetsRecvPkgNum(FSFB_INFO_STRU* fsfb) } /* -*: øհ -*: FSFB_INFO_STRU* fsfb fsfb -* const UINT32 dstDevName Ŀ豸 -* const UINT8 netIdx ± -*: -*: -*ֵ: +*��������: ���ø����հ��� +*�������: FSFB_INFO_STRU* fsfb fsfb���� +* const UINT32 dstDevName Ŀ���豸���� +* const UINT8 netIdx ���±� +*�������: �� +*�������: �� +*����ֵ: �� */ static void SetNetsRecvPkgNum(FSFB_INFO_STRU* fsfb, const UINT16 dstDevName, const UINT8 netIdx) { UINT16 i = 0u; - if ((NULL != fsfb) && (NULL != fsfb->NetsRecvPkgNums) && ((0u == netIdx) || (1u == netIdx))) /**/ + if ((NULL != fsfb) && (NULL != fsfb->NetsRecvPkgNums) && ((0u == netIdx) || (1u == netIdx))) /*�������*/ { for (i = 0; i < fsfb->NetsRecvPkgNumsLen; i++) { - if (dstDevName == fsfb->NetsRecvPkgNums[i].DstDevName) /*ҵ*/ + if (dstDevName == fsfb->NetsRecvPkgNums[i].DstDevName) /*�ҵ�*/ { fsfb->NetsRecvPkgNums[i].NetsPkgNum[netIdx]++; break; } } - if ((i == fsfb->NetsRecvPkgNumsLen) && (fsfb->NetsRecvPkgNumsLen < fsfb->MaxNumLink)) /*δҵ,һ豸*/ + if ((i == fsfb->NetsRecvPkgNumsLen) && (fsfb->NetsRecvPkgNumsLen < fsfb->MaxNumLink)) /*δ�ҵ�,����һ�豸*/ { fsfb->NetsRecvPkgNums[fsfb->NetsRecvPkgNumsLen].DstDevName = dstDevName; ComMemSet((UINT8*)fsfb->NetsRecvPkgNums[i].NetsPkgNum, 2 * sizeof(UINT16), 0u); @@ -1178,28 +1172,28 @@ static void SetNetsRecvPkgNum(FSFB_INFO_STRU* fsfb, const UINT16 dstDevName, con } /* -*: ȡFSFBյ -*: FSFB_INFO_STRU* fsfb fsfb -* const UINT8 dstType Ŀ豸 -* const UINT8 dstId Ŀ豸ID -*: UINT16* redRecvPkgNum յ -* UINT16* blueRecvPkgNum յ -*: -*ֵ: +*��������: ��ȡFSFB�����յ����� +*�������: FSFB_INFO_STRU* fsfb fsfb���� +* const UINT8 dstType Ŀ���豸���� +* const UINT8 dstId Ŀ���豸ID +*�������: UINT16* redRecvPkgNum �����յ����� +* UINT16* blueRecvPkgNum �����յ����� +*�������: �� +*����ֵ: �� */ void FsfbProtclGetNetsRecvPkgNum(FSFB_INFO_STRU* fsfb, const UINT8 dstType, const UINT8 dstId, UINT16* redRecvPkgNum, UINT16* blueRecvPkgNum) { UINT16 i = 0u; UINT16 dstDevName = 0u; - if ((NULL != fsfb) && (NULL != fsfb->NetsRecvPkgNums) && (NULL != redRecvPkgNum) && (NULL != blueRecvPkgNum)) /**/ + if ((NULL != fsfb) && (NULL != fsfb->NetsRecvPkgNums) && (NULL != redRecvPkgNum) && (NULL != blueRecvPkgNum)) /*�������*/ { (*redRecvPkgNum) = 0u; (*blueRecvPkgNum) = 0u; ComTypeId2DevName(dstType, dstId, &dstDevName); - for (i = 0; i < fsfb->NetsRecvPkgNumsLen; i++) /**/ + for (i = 0; i < fsfb->NetsRecvPkgNumsLen; i++) /*����*/ { - if (dstDevName == fsfb->NetsRecvPkgNums[i].DstDevName) /*ҵ*/ + if (dstDevName == fsfb->NetsRecvPkgNums[i].DstDevName) /*�ҵ�*/ { (*redRecvPkgNum) = fsfb->NetsRecvPkgNums[i].NetsPkgNum[0]; (*blueRecvPkgNum) = fsfb->NetsRecvPkgNums[i].NetsPkgNum[1]; @@ -1210,5 +1204,5 @@ void FsfbProtclGetNetsRecvPkgNum(FSFB_INFO_STRU* fsfb, const UINT8 dstType, cons } /*-------------------------------------------------------------------- - * FSFBЭڲӿں End + * FSFBЭ���ڲ��ӿں��� End *--------------------------------------------------------------------*/ diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h index cca0572..ee86911 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h @@ -21,6 +21,7 @@ #define FSFB_CI_DEV 60 /*豸*/ #define FSFB_LEU_DEV 94 /*豸*/ +#define FSFB_RC_DEV (0x3Du) /*RC*/ /* Ϣ */ #define FSFB_SSE_MSG ((UINT8)0x90) /* SSE Ϣ */ @@ -34,6 +35,7 @@ /* Ϣ֡ */ #define TSD_SIZE 58 +#define TSD_TWO_SIZE (74U) /*TSD*/ #define SSE_SIZE 20 #define SSR_SIZE 25 #define SBT_SIZE 138 @@ -44,6 +46,7 @@ /* data feild Size */ #define TSD_DF_SIZE 36 +#define TSD_DF_TWO_SIZE (52U) /*TSD_DF*/ #define BTC_DF_SIZE 8 #define SBT_DF_SIZE 116 #define ABT_DF_SIZE 0 diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbRecordDelare.h b/TSCP/src/protocol/fsfb/common_fsfb/FsfbRecordDelare.h index b22288c..c42065f 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbRecordDelare.h +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbRecordDelare.h @@ -1,15 +1,15 @@ /******************************************************** * -* ļ FsfbRecordDelare.h -* Ȩ˵ ؿƼ޹˾ -* 汾 1.0 -* ʱ䣺 2013.09.09 -* -* FSFBЭ¼غ궨塣 -* ʹע⣺ +* �ļ��FsfbRecordDelare.hare.h +* ��Ȩ˵���� �������ؿƼ����޹�˾ +* �汾�� �� 1.0 +* ����ʱ�䣺 2013.09.09 +* ���� �� ������ +* ���������� FSFBЭ���¼��غ궨�塣 +* ʹ��ע�⣺ * -* ޸ļ¼ -* 2010.05.10 ޸ ׷FSFBڿʼʶ +* �޸ļ�¼�� +* 2010.05.10 �޸� ׷��FSFB�����ڿ�ʼ��ʶ�� * ********************************************************/ @@ -19,93 +19,93 @@ /******************************************************************************** -궨 +�궨�� ********************************************************************************/ -/* ־λ */ -#define FSFB_CYCLE_TAG (0xF4FB) /* FSFBڿʼʶ */ -#define IN_RED (0x01) /**/ -#define IN_BLUE (0x02) /**/ -#define IN_FRAME_LEN_ERR (0x03) /*֡ȴ*/ -#define IN_READ_FRAME_ERR (0x04) /*ȡ֡ȴ*/ -#define IN_READ_FRAME (0x05) /*ȡ֡*/ -#define IN_CRC_ERR (0x06) /*CRC*/ -#define IN_NO_LNK (0x07) /*·*/ -#define IN_CAT_ERR (0x08) /*֡*/ -#define IN_ADDR_ERR (0x09) /*֡*/ -#define IN_SSR_STATUS_ERR (0x0A) /*SSR״̬*/ -#define IN_SSR_SSE_TC_ERR (0x0B) /*SSRSSEŴ*/ -#define IN_ABT_STATUS (0x0C) /*ABT״̬*/ -#define IN_ABT_SVC_ERR (0x0D) /*ABTSVC*/ -#define IN_ABT_OLD_ERR (0x0E) /*ABTŴ*/ -#define IN_ABT_SSE_BTC (0x0F) /*ABTSSEBTC*/ -#define IN_BTD_LEN_ERR (0x10) /*BTDijȴ*/ -#define IN_BTD_STATUS (0x11) /*BTD״̬*/ -#define IN_BTD_LOST_ERR (0x12) /*BTDʧ*/ -#define IN_BTD_DELAY_ERR (0x13) /*BTDӳٳ*/ -#define IN_BTD_SVC_ERR (0x14) /*BTDSVC*/ -#define OUT_APP (0x15) /**/ -#define OUT_FRAME_LEN_ERR (0x16) /*Ӧ֡ݳȴ*/ -#define OUT_READ_ERR (0x17) /*Ӧݴ*/ -#define OUT_APP_FRAME (0x18) /*Ӧ֡*/ -#define OUT_FRAME_TYPE_ERR (0x19) /*֡ʹ*/ -#define OUT_ADDR_ERR (0x1A) /*ַ*/ -#define OUT_FIND_LNK_ERR (0x1B) /*ѯ·*/ -#define OUT_INSERT_NODE_ERR (0x1C) /*ڵ*/ -#define OUT_INIT_NODE_ERR (0x1D) /*ʼڵ*/ -#define OUT_DATA_TYPE (0x1E) /**/ -#define OUT_LNK (0x1F) /*·*/ -#define OUT_RP_LNK (0x20) /*RP·*/ -#define OUT_ALL_LEN_ERR (0x21) /*ܳȴ*/ +/* ������־λ */ +#define FSFB_CYCLE_TAG (0xF4FB) /* FSFB�����ڿ�ʼ��ʶ */ +#define IN_RED (0x01) /*�����������*/ +#define IN_BLUE (0x02) /*������������*/ +#define IN_FRAME_LEN_ERR (0x03) /*��������֡���ȴ���*/ +#define IN_READ_FRAME_ERR (0x04) /*��ȡ����֡���ȴ���*/ +#define IN_READ_FRAME (0x05) /*��ȡ����֡*/ +#define IN_CRC_ERR (0x06) /*CRC����*/ +#define IN_NO_LNK (0x07) /*����·*/ +#define IN_CAT_ERR (0x08) /*����֡�������*/ +#define IN_ADDR_ERR (0x09) /*����֡�������*/ +#define IN_SSR_STATUS_ERR (0x0A) /*����SSR��״̬����*/ +#define IN_SSR_SSE_TC_ERR (0x0B) /*����SSR��SSE��Ŵ���*/ +#define IN_ABT_STATUS (0x0C) /*����ABT��״̬*/ +#define IN_ABT_SVC_ERR (0x0D) /*����ABT��SVC����*/ +#define IN_ABT_OLD_ERR (0x0E) /*����ABT����Ŵ���*/ +#define IN_ABT_SSE_BTC (0x0F) /*����ABT��SSE��BTC*/ +#define IN_BTD_LEN_ERR (0x10) /*����BTD�ij��ȴ���*/ +#define IN_BTD_STATUS (0x11) /*����BTD��״̬*/ +#define IN_BTD_LOST_ERR (0x12) /*����BTD��ʧ������*/ +#define IN_BTD_DELAY_ERR (0x13) /*����BTD�ӳٳ�����*/ +#define IN_BTD_SVC_ERR (0x14) /*����BTD��SVC����*/ +#define OUT_APP (0x15) /*�������*/ +#define OUT_FRAME_LEN_ERR (0x16) /*���Ӧ��֡���ݳ��ȴ���*/ +#define OUT_READ_ERR (0x17) /*�����Ӧ�����ݴ���*/ +#define OUT_APP_FRAME (0x18) /*���Ӧ��֡����*/ +#define OUT_FRAME_TYPE_ERR (0x19) /*���֡���ʹ���*/ +#define OUT_ADDR_ERR (0x1A) /*�����ַ����*/ +#define OUT_FIND_LNK_ERR (0x1B) /*�����ѯ��·����*/ +#define OUT_INSERT_NODE_ERR (0x1C) /*�������ڵ����*/ +#define OUT_INIT_NODE_ERR (0x1D) /*�����ʼ���ڵ����*/ +#define OUT_DATA_TYPE (0x1E) /*�����������*/ +#define OUT_LNK (0x1F) /*�����·*/ +#define OUT_RP_LNK (0x20) /*���RP��·*/ +#define OUT_ALL_LEN_ERR (0x21) /*��������ܳ��ȴ���*/ -#define FSFB_RCV_TAG 0xF4 /* FSFB뵥Ԫʶ */ -#define FSFB_OUT_TAG 0xF5 /* FSFBԪʶ */ -#define FSFB_MSG_IN_TAG 0x04 /* FSFBһ֡Ϣʼʶ(B 0000 0100) */ -#define FSFB_MSG_OUT_TAG 0x08 /* FSFBһ֡Ϣʼʶ(B 0000 1000) */ -#define FSFB_NODE_OUT_TAG 0x0C /* FSFBһ֡Ϣʼʶ(B 0000 1100) */ -#define FSFB_OUT_E_TAG 0x0F /* FSFBԪʶ(B 0000 1111) */ +#define FSFB_RCV_TAG 0xF4 /* FSFB���뵥Ԫ��ʶ */ +#define FSFB_OUT_TAG 0xF5 /* FSFB�����Ԫ��ʶ */ +#define FSFB_MSG_IN_TAG 0x04 /* FSFB����һ֡��Ϣ��ʼ��ʶ(B 0000 0100) */ +#define FSFB_MSG_OUT_TAG 0x08 /* FSFB���һ֡��Ϣ��ʼ��ʶ(B 0000 1000) */ +#define FSFB_NODE_OUT_TAG 0x0C /* FSFB���һ֡��Ϣ��ʼ��ʶ(B 0000 1100) */ +#define FSFB_OUT_E_TAG 0x0F /* FSFB�����Ԫ������ʶ(B 0000 1111) */ /************************************************************************ - * ԭЭһ16bit - * D15~D12 - * D11~D10ȼ - * D9~D8ģλ - * D7~D4ģеĴģ鲻ͬʱ4λĺ岻ͬ - * ڶȵײ - * D3~D0ģǷͬ4λĺͬ + * ���������ԭ��Э�������һ��16bit + * D15~D12������ + * D11~D10������ȼ� + * D9~D8��ģ��λ�� + * D7~D4����������ģ�����еĴ�����ģ�鲻ͬʱ��4λ�����ĺ��岻ͬ + * �����ڶ��������ȵײ���� + * D3~D0��������������������ģ���Ƿ���ͬ��4λ�����ĺ�����ͬ ************************************************************************/ -/* ȼ */ +/* ����ȼ� */ #define FSFB_ERR 0x0800 #define FSFB_WARN 0x0400 -/* ģλ */ -#define FSFB_RECEIVE 0x0200 /* ģ */ -#define FSFB_OUTPUT 0x0100 /* ģ */ +/* ģ��λ�� */ +#define FSFB_RECEIVE 0x0200 /* ����ģ�� */ +#define FSFB_OUTPUT 0x0100 /* ���ģ�� */ -/* ģд */ +/* ��ģ�����д��� */ #define FSFB_ERROR_NULL 0x0000 -/* */ -#define FSFB_MSG_TYPE_ILLEGAL 0x0010 /* FSFBϢ */ -#define FSFB_MSG_OLD_ERR 0x0020 /* ± */ -#define FSFB_DEL_MSG_LNK_ERR 0x0030 /* ʱɾʧ */ -#define FSFB_MSG_NOT_NODE_ERR 0x0040 /* ϢͨŽڵϢһ */ -#define FSFB_MSG_LEN_ERR 0x0050 /* ijȲ */ -#define FSFB_MSG_FMT_ILLEGAL 0x0060 /* ĸʽ */ -#define FSFB_SSR_NOT_ILLEGAL 0x0070 /* ǶӦSSRϢ */ -#define FSFB_MSG_REPLACE_ERR 0x0080 /* ǽڵʧ */ -#define FSFB_MSG_NO_REPLACENODE 0x0090 /* ڸǽڵ */ -#define FSFB_MSG_NO_INVALID 0x00A0 /* BSDʧ */ +/* ���� */ +#define FSFB_MSG_TYPE_ILLEGAL 0x0010 /* ����FSFB��Ϣ */ +#define FSFB_MSG_OLD_ERR 0x0020 /* �����±��� */ +#define FSFB_DEL_MSG_LNK_ERR 0x0030 /* ��ʱ����ɾ��ʧ�� */ +#define FSFB_MSG_NOT_NODE_ERR 0x0040 /* ������Ϣ��ͨ�Žڵ���Ϣ��һ�� */ +#define FSFB_MSG_LEN_ERR 0x0050 /* ���ij��Ȳ��� */ +#define FSFB_MSG_FMT_ILLEGAL 0x0060 /* ���ĸ�ʽ���� */ +#define FSFB_SSR_NOT_ILLEGAL 0x0070 /* ���Ƕ�ӦSSR������Ϣ */ +#define FSFB_MSG_REPLACE_ERR 0x0080 /* ���ǽڵ�ʧ�� */ +#define FSFB_MSG_NO_REPLACENODE 0x0090 /* �����ڸ��ǽڵ� */ +#define FSFB_MSG_NO_INVALID 0x00A0 /* BSD����ʧ�� */ #define FSFB_MSG_CRC_ERR 0x00B0 -/* */ -#define FSFB_DBGET_ERR 0x0050 /* ݿѯ */ -/* ײ㴦 */ -#define FSFB_QUEUE_READ 0x0001 /* жд */ -#define FSFB_QUEUE_WRITE 0x0002 /* дд */ -#define FSFB_QUEUE_INTEGRITY 0x0003 /* ݲscanдӦø*/ -#define FSFB_LNK_PUSH 0x0004 /* ·ڵѹջ */ -#define FSFB_LNK_POP 0x0005 /* кŻڵջ */ +/* ��� */ +#define FSFB_DBGET_ERR 0x0050 /* ���ݿ��ѯ���� */ +/* ���������������ײ㴦������ */ +#define FSFB_QUEUE_READ 0x0001 /* ���ж��д� */ +#define FSFB_QUEUE_WRITE 0x0002 /* ����д�д� */ +#define FSFB_QUEUE_INTEGRITY 0x0003 /* ���������ݲ�����������scan�д���Ӧ�ø�������*/ +#define FSFB_LNK_PUSH 0x0004 /* ��·�������ڵ�ѹջ���� */ +#define FSFB_LNK_POP 0x0005 /* ���кŻ��������ڵ��ջ���� */ diff --git a/TSCP/src/protocol/fsfb/common_fsfb/fsfbProtclStruct.h b/TSCP/src/protocol/fsfb/common_fsfb/fsfbProtclStruct.h index 4dab339..48f71df 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/fsfbProtclStruct.h +++ b/TSCP/src/protocol/fsfb/common_fsfb/fsfbProtclStruct.h @@ -170,7 +170,7 @@ typedef struct UINT8 *RecordArray; /* Fsfb¼ */ UINT16 RecordArraySize; /* Fsfb¼С */ UINT8 *AppArray; /* ģij1ʾ */ - UINT16 AppArraySize; /* Fsfbģij鳤 */ + UINT32 AppArraySize; /* Fsfbģij鳤 */ UINT8 *VarArray; UINT16 VarArraySize; QueueStruct DataToApp; /* FsfbЭӦõݶ */ diff --git a/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.c b/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.c index 64c1e9f..9260ac3 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.c +++ b/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.c @@ -29,111 +29,123 @@ typedef struct { UINT32 Id; /**/ - UINT32 Len; /**/ - UINT32 StartIdx; /*excelʼַ*/ - UINT32 RowCount; /**/ - UINT8* Data; /*excel*/ + UINT32 Len; /**/ + UINT16 RowCount; /**/ + UINT32 ColLen; /*ֽڳ*/ + UINT8* Data; /**/ } SheetInfo; -static void InitSheet(SheetInfo* sheetInfo, const UINT32 dataLen, UINT8 data[], const UINT32 excelId, const UINT32 sheetId); +static void InitSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, const UINT32 excelId, const UINT32 sheetId); +static void StDsuPtclFindExcel(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 idx, UINT32 excelCount, const UINT32 excelId, const UINT32 sheetId); +static UINT8 StDsuPtclFindSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 curExcelStartPos, UINT32* curExcelPos, UINT32 sheetCount, const UINT32 sheetId); +static void StDsuPtclSetDevNum(UINT8 locType, UINT8 oppType, SheetInfo* outDevIpSheet, SheetInfo* inDevIpSheet, UINT16* dupOppHlhtIdLen, UINT32* dupOppHlhtId, UINT16 outInDevIpRowCount, UINT8* devNum); static UINT8 GetCommOppDevTypes(SheetInfo* commSheet, UINT8 locType, UINT8* oppTypes, UINT8* oppTypePtls, UINT16* oppTypeNum, const UINT16 maxOppTypeNum); static void GetCommOppDevNum(SheetInfo* devIpSheet, UINT8 oppType, UINT16* dupOppHlhtIdsLen, UINT32* dupOppHlhtIds, const UINT16 maxDupOppHlhtIdsLen, UINT8* devNum); +static void StDsuPtclCommRelSetDevNum(UINT16 locTypeId, UINT8 oppType, UINT8* devNum); -/* -*: DsuCommonInfoInit -*: ѯʼ -*: UINT8 *pFsName FSļ -*: DSU_PROTCL_BOOK_IP_INFO_STRU *pDsuProtclBookIpInfo ʹñ -*: -*ֵ: 1:ɹ;0ʧ -*/ -UINT8 DsuCommonInfoInit(UINT8 *pFsName, DSU_PROTCL_BOOK_IP_INFO_STRU *pDsuProtclBookIpInfo) +/** + * @brief DsuCommonInfoInit ѯʼ + * @param pFsName FSļ· ȡֵΧ:ֽ + * @param pDsuProtclBookIpInfo ѯϢ ȡֵΧ:οṹDSU_PROTCL_BOOK_IP_INFO_STRU + * @param 0:ʧ;1:ɹ + */ +UINT8 DsuCommonInfoInit(UINT8* pFsName, DSU_PROTCL_BOOK_IP_INFO_STRU* pDsuProtclBookIpInfo) { - UINT8 rtn = 0; /*ֵ*/ - UINT8 readRtn = 0; /*ȡFSֵ*/ - UINT8 *pData = NULL; /**/ - UINT32 dataLen = 0; /*ݳ*/ - UINT32 mallocLen = 0; /*ռС*/ - UINT32 offset = 0; /*ƫ*/ - UINT32 i = 0; /*ѭ*/ + /*- ֲ*/ + UINT8 rtn = 0u; /*-< úֵΪʧ*/ + UINT8 readRtn = 0u; /*ȡFSֵ*/ + UINT8* pData = NULL; /**/ + UINT32 dataLen = 0u; /*ݳ*/ + UINT32 mallocLen = 0u; /*ռС*/ + UINT32 offset = 0u; /*ƫ*/ + UINT32 i = 0u; /*ѭ*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ - if ((NULL != pFsName) && (NULL != pDsuProtclBookIpInfo)) /*ηǿ*/ + if ((NULL != pFsName) && (NULL != pDsuProtclBookIpInfo)) /*-< Ƿǿ*/ { - readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_IP_ID, &pData, &dataLen); /*ȡ豸IPַ*/ - if ((1 == readRtn) && (DSU_IP_INFO_STRU_SIZE <= dataLen)) + readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_IP_ID, &pData, &dataLen); /*-< úȡ豸IPַ*/ + if ((1u == readRtn) && (DSU_IP_INFO_STRU_SIZE <= dataLen)) /*-< Ƿ*/ { - pDsuProtclBookIpInfo->IpDevLen = (UINT16)(dataLen / DSU_IP_INFO_STRU_SIZE); /**/ - mallocLen = sizeof(UINT16)*(pDsuProtclBookIpInfo->IpDevLen); /*ռС*/ - pDsuProtclBookIpInfo->IpDevTypeIds = (UINT16*)malloc(mallocLen); /*ռ*/ - if (NULL != pDsuProtclBookIpInfo->IpDevTypeIds) + pDsuProtclBookIpInfo->IpDevLen = (UINT16)(dataLen / DSU_IP_INFO_STRU_SIZE); /*-< õ*/ + mallocLen = sizeof(UINT16) * (pDsuProtclBookIpInfo->IpDevLen); /*-< õIDռС*/ + pDsuProtclBookIpInfo->IpDevTypeIds = (UINT16*)malloc(mallocLen); /*-< ռ*/ + if (NULL != pDsuProtclBookIpInfo->IpDevTypeIds) /*-< Ƿɹ*/ { - CommonMemSet(pDsuProtclBookIpInfo->IpDevTypeIds, mallocLen, 0, mallocLen); /*ʼ*/ + CommonMemSet(pDsuProtclBookIpInfo->IpDevTypeIds, mallocLen, 0u, mallocLen); /*-< ʼ*/ - mallocLen = sizeof(UINT32)*(pDsuProtclBookIpInfo->IpDevLen); /*ռС*/ + mallocLen = sizeof(UINT32) * (pDsuProtclBookIpInfo->IpDevLen); /*-< õͨIDռС*/ #ifndef DEV_IP_TABLE_NO_HLHT - pDsuProtclBookIpInfo->IpDevHlhtIds = (UINT32*)malloc(mallocLen); /*ռ*/ - if (NULL != pDsuProtclBookIpInfo->IpDevHlhtIds) + pDsuProtclBookIpInfo->IpDevHlhtIds = (UINT32*)malloc(mallocLen); /*-< ռ*/ + if (NULL != pDsuProtclBookIpInfo->IpDevHlhtIds) /*-< Ƿɹ*/ { - CommonMemSet(pDsuProtclBookIpInfo->IpDevHlhtIds, mallocLen, 0, mallocLen); /*ʼ*/ + CommonMemSet(pDsuProtclBookIpInfo->IpDevHlhtIds, mallocLen, 0u, mallocLen); /*-< ʼ*/ #endif - for (i = 0; i < pDsuProtclBookIpInfo->IpDevLen; i++) + for (i = 0u; i < pDsuProtclBookIpInfo->IpDevLen; i++) /*-< 豸ID±ǷС*/ { - /*2ֽ豸ID*/ + /*- õ2ֽ豸ID*/ pDsuProtclBookIpInfo->IpDevTypeIds[i] = ShortFromChar(&pData[offset]); #ifndef DEV_IP_TABLE_NO_HLHT - /*4ֽڻͨID*/ - pDsuProtclBookIpInfo->IpDevHlhtIds[i] = LongFromChar(&pData[offset + 2]); + /*- õ4ֽڻͨID*/ + pDsuProtclBookIpInfo->IpDevHlhtIds[i] = LongFromChar(&pData[offset + 2u]); #endif - offset += DSU_IP_INFO_STRU_SIZE; + offset += DSU_IP_INFO_STRU_SIZE; /*-< ±ݳ*/ } - if (offset == dataLen) /*豸IDֵɹ*/ + if (offset == dataLen) /*-< 豸IDֵɹ*/ { - readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID, &pData, &dataLen); /*ȡ豸ͨЭ*/ - if ((1 == readRtn) && (DSU_COMM_PROTCL_STRU_SIZE <= dataLen)) - { - pDsuProtclBookIpInfo->CommProtclStruLen = (UINT16)(dataLen / DSU_COMM_PROTCL_STRU_SIZE); /**/ - mallocLen = sizeof(DSU_PROTCL_COMM_PROTCL_STRU)*(pDsuProtclBookIpInfo->CommProtclStruLen); /*ռС*/ - pDsuProtclBookIpInfo->pCommProtclStru = (DSU_PROTCL_COMM_PROTCL_STRU*)malloc(mallocLen); /*ռ*/ - if (NULL != pDsuProtclBookIpInfo->pCommProtclStru) - { - CommonMemSet(pDsuProtclBookIpInfo->pCommProtclStru, mallocLen, 0, mallocLen); /*ʼ*/ - - offset = 0; /*ƫƴ㿪ʼ*/ - for (i = 0; i < pDsuProtclBookIpInfo->CommProtclStruLen; i++) - { - /*1ֽڱ*/ - pDsuProtclBookIpInfo->pCommProtclStru[i].EmitterType = pData[offset]; - offset++; - /*1ֽڶԷ*/ - pDsuProtclBookIpInfo->pCommProtclStru[i].ReceptorType = pData[offset]; - offset++; - /*1ֽЭ*/ - if ((DSU_PROTCL_RSSP2 + 4) == pData[offset]) /*RSSPIIЭΪ9,õ±Ϊ5*/ - { - pDsuProtclBookIpInfo->pCommProtclStru[i].CommuType = DSU_PROTCL_RSSP2; - } - else - { - pDsuProtclBookIpInfo->pCommProtclStru[i].CommuType = pData[offset]; - } - offset++; - } - if (offset == dataLen) /*豸ͨЭֵɹ*/ - { - rtn = 1; - } - } - } + deepPro = 1u; /*-< ô־Ϊ*/ } + #ifndef DEV_IP_TABLE_NO_HLHT } #endif } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + pDsuProtclBookIpInfo->pCommProtclStru = NULL; /*-< ͨͱΪ*/ + readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID, &pData, &dataLen); /*-< úȡ豸ͨЭ*/ + if ((1u == readRtn) && (DSU_COMM_PROTCL_STRU_SIZE <= dataLen)) /*-< Ƿ*/ + { + pDsuProtclBookIpInfo->CommProtclStruLen = (UINT16)(dataLen / DSU_COMM_PROTCL_STRU_SIZE); /*-< õ*/ + mallocLen = sizeof(DSU_PROTCL_COMM_PROTCL_STRU) * (pDsuProtclBookIpInfo->CommProtclStruLen); /*-< õռС*/ + pDsuProtclBookIpInfo->pCommProtclStru = (DSU_PROTCL_COMM_PROTCL_STRU*)malloc(mallocLen); /*-< ռ*/ + } + if (NULL != pDsuProtclBookIpInfo->pCommProtclStru) /*-< ͨͱǷǿ*/ + { + CommonMemSet(pDsuProtclBookIpInfo->pCommProtclStru, mallocLen, 0u, mallocLen); /*-< ʼ*/ + + offset = 0u; /*-< ƫƴ㿪ʼ*/ + for (i = 0u; i < pDsuProtclBookIpInfo->CommProtclStruLen; i++) /*-< ͨID±ǷС*/ + { + /*- 1ֽڱ*/ + pDsuProtclBookIpInfo->pCommProtclStru[i].EmitterType = pData[offset]; + offset++; /*-< ±1*/ + /*- 1ֽڶԷ*/ + pDsuProtclBookIpInfo->pCommProtclStru[i].ReceptorType = pData[offset]; + offset++; /*-< ±1*/ + /*1ֽЭ*/ + if ((DSU_PROTCL_RSSP2 + 4u) == pData[offset]) /*-< ǷRSSPII*//*RSSPIIЭΪ9,õ±Ϊ5*/ + { + pDsuProtclBookIpInfo->pCommProtclStru[i].CommuType = DSU_PROTCL_RSSP2; /*-< ͨΪRSSPII*/ + } + else + { + pDsuProtclBookIpInfo->pCommProtclStru[i].CommuType = pData[offset]; /*-< ͨõͨ*/ + } + offset++; /*-< ±1*/ + } + if (offset == dataLen) /*-< 豸ͨЭֵɹ*/ + { + rtn = 1u; /*-< úֵΪɹ*/ + } + } + } + } } - return rtn; + return rtn; /*-< غֵ*/ } /* @@ -173,30 +185,30 @@ UINT8 DsuProtclGetProtclType(UINT16 locTypeId, UINT16 oppTypeId, UINT8 *pProtclT return rtn; } -/* -*: DsuGetProtclTypeInfo -*: ݱIDԷͨʱʹЭͨ豸(·) -*: UINT16 locTypeId ID -* DSU_PROTCL_BOOK_IP_INFO_STRU *pDsuProtclBookIpInfo ʹñ -* UINT32 inDataLen ݳ -* UINT8 inData[] -* UINT16 globalVarOppTypePtlLen ͨŵĶԷ豸Э鳤 -*: UINT8 globalVarOppTypePtl[UINT8_MAX] ͨŵĶԷ豸Э -*: DSU_PROTCL_TYPE_STRU *dsuProtclTypeInfo Эͨ豸 -*ֵ: 1:ɹ;0ʧ -*/ -UINT8 DsuGetProtclTypeInfo(UINT16 locTypeId, DSU_PROTCL_TYPE_STRU* dsuProtclTypeInfo, DSU_PROTCL_BOOK_IP_INFO_STRU* pDsuProtclBookIpInfo,UINT8 globalVarOppTypePtl[], UINT16 globalVarOppTypePtlLen, UINT32 inDataLen, UINT8 inData[]) +/** + * @brief DsuGetProtclTypeInfo ݱIDԷͨʱʹЭͨ豸(·) + * @param locTypeId ID ȡֵΧ:0x0000-0xFFFF + * @param dsuProtclTypeInfo Э ȡֵΧ:οṹDSU_PROTCL_TYPE_STRU + * @param pDsuProtclBookIpInfo ʹñ ȡֵΧ:οṹDSU_PROTCL_BOOK_IP_INFO_STRU + * @param globalVarOppTypePtl ԷЭ ȡֵΧ:ֽ + * @param globalVarOppTypePtlLen ԷЭ鳤 ȡֵΧ:0x0000-0xFFFF + * @param inDataLen ڲݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ڲ ȡֵΧ:ֽ + * @return 0:ʧ 1:ɹ + */ +UINT8 DsuGetProtclTypeInfo(UINT16 locTypeId, DSU_PROTCL_TYPE_STRU* dsuProtclTypeInfo, DSU_PROTCL_BOOK_IP_INFO_STRU* pDsuProtclBookIpInfo, UINT8 globalVarOppTypePtl[], UINT16 globalVarOppTypePtlLen, UINT32 inDataLen, UINT8 inData[]) { - UINT8 rtn = 0; /*ֵ*/ + /*- ֲ*/ + UINT8 rtn = 0u; /*ֵ*/ UINT8 locType = (UINT8)(locTypeId >> 8); /**/ - UINT32 i = 0; /*ѭ*/ - UINT8 outCanGetComm = 0; /*Ƿô*/ - UINT8 inCanGetComm = 0; /*Ƿô*/ - UINT16 oppTypeNum = 0; /*Է*/ - UINT16 dupOppHlhtIdLen = 0; /*ظԷID*/ - UINT8 devNum = 0; /*豸*/ - UINT32 oppTypeSpLen = 0; /*Է豸ռ䳤*/ - UINT32 dupOppHlhtIdSpLen = 0; /*ظԷͨIDռ䳤*/ + UINT32 i = 0u; /*ѭ*/ + UINT8 outCanGetComm = 0u; /*Ƿô*/ + UINT8 inCanGetComm = 0u; /*Ƿô*/ + UINT16 oppTypeNum = 0u; /*Է*/ + UINT16 dupOppHlhtIdLen = 0u; /*ظԷID*/ + UINT8 devNum = 0u; /*豸*/ + UINT32 oppTypeSpLen = 0u; /*Է豸ռ䳤*/ + UINT32 dupOppHlhtIdSpLen = 0u; /*ظԷͨIDռ䳤*/ UINT8* oppType = NULL; /*Է豸*/ UINT8* oppTypePtl = NULL; /*Է豸Э*/ UINT32* dupOppHlhtId = NULL; /*ظԷͨID*/ @@ -207,88 +219,89 @@ UINT8 DsuGetProtclTypeInfo(UINT16 locTypeId, DSU_PROTCL_TYPE_STRU* dsuProtclType UINT32 outInCommRowCount = 0u; /*ͨЭsheetҳ*/ UINT32 outInDevIpRowCount = 0u; /*豸IPַsheetҳ*/ - if ((NULL != dsuProtclTypeInfo) && (NULL != pDsuProtclBookIpInfo)) + if ((NULL != dsuProtclTypeInfo) && (NULL != pDsuProtclBookIpInfo) && (NULL != globalVarOppTypePtl)) /*-< Ƿǿ*/ { - InitSheet(&outCommSheet, g_DataBufLen, g_pDataBuf, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); - InitSheet(&inCommSheet, inDataLen, inData, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); - InitSheet(&outDevIpSheet, g_DataBufLen, g_pDataBuf, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_IP_ID); - InitSheet(&inDevIpSheet, inDataLen, inData, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_IP_ID); + /*- ȡⲿڲ*/ + InitSheet(&outCommSheet, g_pDataBuf, g_DataBufLen, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); + InitSheet(&inCommSheet, inData, inDataLen, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); + InitSheet(&outDevIpSheet, g_pDataBuf, g_DataBufLen, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_IP_ID); + InitSheet(&inDevIpSheet, inData, inDataLen, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_IP_ID); - outInCommRowCount = pDsuProtclBookIpInfo->CommProtclStruLen + inCommSheet.RowCount; - outInDevIpRowCount = pDsuProtclBookIpInfo->IpDevLen + inDevIpSheet.RowCount; + outInCommRowCount = pDsuProtclBookIpInfo->CommProtclStruLen + inCommSheet.RowCount; /*-< õڲͨ*/ + outInDevIpRowCount = pDsuProtclBookIpInfo->IpDevLen + inDevIpSheet.RowCount; /*-< õڲ豸IP*/ - oppTypeSpLen = sizeof(UINT8) * (outInCommRowCount); /*Էռ䳤*/ - dupOppHlhtIdSpLen = sizeof(UINT32) * (outInDevIpRowCount); /*ظԷIDռ䳤*/ - oppType = (UINT8*)malloc(oppTypeSpLen); /*Է*/ - oppTypePtl = (UINT8*)malloc(oppTypeSpLen); /*ԷʹЭ*/ - dupOppHlhtId = (UINT32*)malloc(dupOppHlhtIdSpLen); /*ظԷID*/ + oppTypeSpLen = sizeof(UINT8) * (outInCommRowCount); /*-< Էռ䳤*/ + dupOppHlhtIdSpLen = sizeof(UINT32) * (outInDevIpRowCount); /*-< ظԷIDռ䳤*/ + oppType = (UINT8*)malloc(oppTypeSpLen); /*-< Է*/ + oppTypePtl = (UINT8*)malloc(oppTypeSpLen); /*-< ԷʹЭ*/ + dupOppHlhtId = (UINT32*)malloc(dupOppHlhtIdSpLen); /*-< ظԷID*/ - if ((NULL != oppType) && (NULL != oppTypePtl) && (NULL != dupOppHlhtId)) /*ǿ*/ + if ((NULL != oppType) && (NULL != oppTypePtl) && (NULL != dupOppHlhtId)) /*-< ǿ*/ { - CommonMemSet(oppType, oppTypeSpLen, 0, oppTypeSpLen); /*ʼ*/ - CommonMemSet(oppTypePtl, oppTypeSpLen, 0, oppTypeSpLen); /*ʼ*/ - CommonMemSet(dupOppHlhtId, dupOppHlhtIdSpLen, 0, dupOppHlhtIdSpLen); /*ʼ*/ + CommonMemSet(oppType, oppTypeSpLen, 0u, oppTypeSpLen); /*-< Էͳʼ*/ + CommonMemSet(oppTypePtl, oppTypeSpLen, 0u, oppTypeSpLen); /*-< Էͳʼ*/ + CommonMemSet(dupOppHlhtId, dupOppHlhtIdSpLen, 0u, dupOppHlhtIdSpLen); /*-< ԷͨIDʼ*/ - outCanGetComm = GetCommOppDevTypes(&outCommSheet, locType, oppType, oppTypePtl, &oppTypeNum, (UINT16)(outInCommRowCount)); - if (1u == outCanGetComm) /**/ + outCanGetComm = GetCommOppDevTypes(&outCommSheet, locType, oppType, oppTypePtl, &oppTypeNum, (UINT16)(outInCommRowCount)); /*-< ûȡͨŵĶԷ豸麯*/ + if (1u == outCanGetComm) /*-< Ƿ*/ { - inCanGetComm = GetCommOppDevTypes(&inCommSheet, locType, oppType, oppTypePtl, &oppTypeNum, (UINT16)(outInCommRowCount)); - if ((1u == outCanGetComm) && ((0 == inCommSheet.RowCount) || (0 < inCommSheet.RowCount && 1u == inCanGetComm))) /**/ + inCanGetComm = GetCommOppDevTypes(&inCommSheet, locType, oppType, oppTypePtl, &oppTypeNum, (UINT16)(outInCommRowCount)); /*-< ûȡͨŵĶԷ豸麯*/ + if ((1u == outCanGetComm) && ((0u == inCommSheet.RowCount) || (0u < inCommSheet.RowCount && 1u == inCanGetComm))) /*-< */ { - for (i = 0; i < oppTypeNum; i++) /*Է*/ + for (i = 0u; i < oppTypeNum; i++) /*-< Է±ǷС*/ { - if (oppType[i] < globalVarOppTypePtlLen) + if (oppType[i] < globalVarOppTypePtlLen) /*-< ԷЭǷϷ*/ { - globalVarOppTypePtl[oppType[i]] = oppTypePtl[i]; /*ȫͨŵĶԷ豸Э*/ + globalVarOppTypePtl[oppType[i]] = oppTypePtl[i]; /*-< ȫͨŵĶԷ豸Э*/ } - devNum = 0; - if ((VOBC_TYPE == locType) && ((AOM_TYPE == oppType[i]) || (ITE_TYPE == oppType[i]))) + devNum = 0u; /*-< 豸Ϊ0*/ + + StDsuPtclCommRelSetDevNum(locTypeId, oppType[i], &devNum); /*-< ø豸ͨŹϵõ豸*/ + if (0U == devNum) /*-< õ豸*/ { - /*ATPԷAOM,ITEʱ̶ͨΪ2*/ - devNum = 2; - } - else if ((VOBC_TYPE == locType) && ((CI_TYPE == oppType[i]) || (ZC_TYPE == oppType[i]) || (ATS_TYPE == oppType[i]) || (PSC_TYPE == oppType[i]))) - { - /*ATPԷCI,ZC,ATSʱ̶ͨΪ3*/ - devNum = 3; + StDsuPtclSetDevNum(locType, oppType[i], &outDevIpSheet, &inDevIpSheet, &dupOppHlhtIdLen, dupOppHlhtId, (UINT16)(outInDevIpRowCount), &devNum); /*-< 豸*/ } else { - GetCommOppDevNum(&outDevIpSheet, oppType[i], &dupOppHlhtIdLen, dupOppHlhtId, (UINT16)(outInDevIpRowCount), &devNum); - GetCommOppDevNum(&inDevIpSheet, oppType[i], &dupOppHlhtIdLen, dupOppHlhtId, (UINT16)(outInDevIpRowCount), &devNum); + if (LEU_TYPE == oppType[i]) /*-< ͨΪLEU*/ + { + devNum *= 2U; /*-< LEU·2,ͨ*/ + } + devNum += 1U; /*-< ͳһԣһ·*/ } + /*ӵӦЭ͵ͨ豸*/ - switch (oppTypePtl[i]) + switch (oppTypePtl[i]) /*-< ж϶ԷЭ*/ { - case DSU_PROTCL_SFP: - (dsuProtclTypeInfo->sfpProtclNum) += devNum; + case DSU_PROTCL_SFP: /*-< ԷЭǷSFP*/ + (dsuProtclTypeInfo->sfpProtclNum) += devNum; /*-< SFPԼ豸*/ break; - case DSU_PROTCL_RSSP: - (dsuProtclTypeInfo->rsspProtclNum) += devNum; + case DSU_PROTCL_RSSP: /*-< ԷЭǷRSSP*/ + (dsuProtclTypeInfo->rsspProtclNum) += devNum; /*-< RSSPIԼ豸*/ break; - case DSU_PROTCL_RSR: - (dsuProtclTypeInfo->rsrProtclNum) += devNum; + case DSU_PROTCL_RSR: /*-< ԷЭǷRSR*/ + (dsuProtclTypeInfo->rsrProtclNum) += devNum; /*-< RSRԼ豸*/ break; - case DSU_PROTCL_RP: - (dsuProtclTypeInfo->redunProtclNum) += devNum; + case DSU_PROTCL_RP: /*-< ԷЭǷRP*/ + (dsuProtclTypeInfo->redunProtclNum) += devNum; /*-< RPԼ豸*/ break; - case DSU_PROTCL_RSSP2: - (dsuProtclTypeInfo->rssp2ProtclNum) += devNum; + case DSU_PROTCL_RSSP2: /*-< ԷЭǷRSSPII*/ + (dsuProtclTypeInfo->rssp2ProtclNum) += devNum; /*-< RSSPIIԼ豸*/ break; - case DSU_PROTCL_FSFB: - (dsuProtclTypeInfo->fsfbProtclNum) += devNum; + case DSU_PROTCL_FSFB: /*-< ԷЭǷFSFB*/ + (dsuProtclTypeInfo->fsfbProtclNum) += devNum; /*-< FSFBԼ豸*/ break; - default: + default: /*-< */ break; } } - rtn = 1; /*ִгɹ*/ + rtn = 1u; /*-< úֵΪ1*/ } } - /*ͷŶ̬ڴ*/ + /*- ͷŶ̬ڴ*/ free(oppType); oppType = NULL; free(oppTypePtl); @@ -298,237 +311,355 @@ UINT8 DsuGetProtclTypeInfo(UINT16 locTypeId, DSU_PROTCL_TYPE_STRU* dsuProtclType } } - return rtn; + return rtn; /*-< غֵ*/ } -/* -*: ʼsheetҳϢ -*: const UINT32 dataLen ݳ -* UINT8 data[] -* const UINT32 excelId excel -* const UINT32 sheetId sheetҳ -*: SheetInfo* sheetInfo sheetҳϢ -*: -*ֵ: -*/ -static void InitSheet(SheetInfo* sheetInfo, const UINT32 dataLen, UINT8 data[], const UINT32 excelId, const UINT32 sheetId) +/** + * @brief InitSheet ʼsheetҳϢ + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelId excleID ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void InitSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, const UINT32 excelId, const UINT32 sheetId) { + /*- ֲ*/ UINT32 idx = 0u; /*±*/ UINT32 crcVal = 0u; /*crcֵ*/ UINT32 crc = 0u; /*crc*/ UINT32 curLen = 0u; /*ǰ*/ UINT32 excelCount = 0u; /*excel*/ - UINT32 excelIdx = 0u; /*excel±*/ - UINT32 curExcelId = 0u; /*ǰexcel*/ - UINT32 curExcelPos = 0u; /*ǰexcelλ*/ - UINT32 curExcelStartPos = 0u; /*ǰexcelʼλ*/ - UINT32 sheetCount = 0u; /*sheet*/ - UINT32 sheetIdx = 0u; /*sheet±*/ - UINT32 curSheetId = 0u; /*ǰsheet*/ - UINT8 isBreak = 0u; /*Ƿ˳*/ - UINT8 isFind = 0u; /*Ƿҵ*/ - if ((0u < dataLen) && (NULL != data) && (NULL != sheetInfo)) /**/ + if ((NULL != sheetInfo) && (0u < dataLen) && (NULL != data)) /*-< Ƿǿ*/ { - if ((idx + 40) <= dataLen) /*DH±*/ + sheetInfo->Id = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->Len = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->RowCount = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->ColLen = 0u; /*-< sheetҳϢֽڳΪ0*/ + sheetInfo->Data = NULL; /*-< sheetҳϢΪNULL*/ + + if ((idx + 40u) <= dataLen) /*-< ʹݳǷϷ*/ { - /*4ֽCRC*/ - crcVal = LongFromChar(&data[idx]); - idx += 4; + crcVal = LongFromChar(&data[idx]); /*-< õCRCֵ*/ + idx += 4u; /*-< ǰ±4*/ + /*4ֽڰ汾*/ - idx += 4; - /*4ֽڳ*/ - curLen = LongFromChar(&data[idx]); - idx += 4; + idx += 4u; /*-< ǰ±4*/ - if ((curLen == dataLen) && (4 < curLen)) + curLen = LongFromChar(&data[idx]); /*-< õг*/ + idx += 4u; /*-< ǰ±4*/ + + if ((curLen == dataLen) && (4u < curLen)) /*-< гǷϷ*/ { - crc = Crc32(&data[4], curLen - 4); - if (crc == crcVal) + crc = Crc32(&data[4u], curLen - 4u); /*-< CRCֵ*/ + if (crc == crcVal) /*-< CRCֵǷCRC*/ { - /*4ֽexcel*/ - excelCount = LongFromChar(&data[idx]); - idx += 4; + excelCount = LongFromChar(&data[idx]); /*-< õexcel*/ + idx += 4u; /*-< ǰ±4*/ + /*24ֽԤ*/ - idx += 24; + idx += 24u; /*-< ǰ±24*/ - for (excelIdx = 0; excelIdx < excelCount; excelIdx++) - { - if ((idx + 24) <= dataLen) /*DI±*/ - { - /*4ֽexcel*/ - curExcelId = LongFromChar(&data[idx]); - idx += 4; - if (curExcelId == excelId) - { - /*4ֽڳ*/ - idx += 4; - /*4ֽexcelλ*/ - curExcelPos = LongFromChar(&data[idx]); - curExcelStartPos = curExcelPos; - idx += 4; - /*12ֽԤ*/ - idx += 12; - - if ((curExcelPos + 40) <= dataLen) /*DH±*/ - { - /*4ֽexcel CRC*/ - crcVal = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*4ֽexcel汾*/ - curExcelPos += 4; - /*4ֽexcel*/ - curLen = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - - if (4 < curLen) - { - crc = Crc32(&data[curExcelStartPos + 4], curLen - 4); - if (crc == crcVal) - { - /*4ֽsheet*/ - sheetCount = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*24ֽԤ*/ - curExcelPos += 24; - - for (sheetIdx = 0; sheetIdx < sheetCount; sheetIdx++) - { - if ((curExcelPos + 24) <= dataLen) /*DH±*/ - { - /*4ֽsheet*/ - curSheetId = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - if (curSheetId == sheetId) - { - sheetInfo->Id = curSheetId; - /*4ֽڳ*/ - sheetInfo->Len = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*4ֽsheetexcelλ*/ - sheetInfo->StartIdx = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*2ֽ*/ - sheetInfo->RowCount = ShortFromChar(&data[curExcelPos]); - curExcelPos += 2; - /*2ֽ*/ - curExcelPos += 2; - /*8ֽԤ*/ - curExcelPos += 8; - - sheetInfo->Data = &data[curExcelStartPos]; - isFind = 1u; - } - else - { - curExcelPos += 20; /*ƫһDI*/ - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - if ((1u == isFind) || (1u == isBreak)) - { - break; - } - } - } - else /*crc*/ - { - isBreak = 1u; - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - } - else /**/ - { - idx += 20; /*ƫһDI*/ - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - if ((1u == isFind) || (1u == isBreak)) - { - break; - } - } + StDsuPtclFindExcel(sheetInfo, data, dataLen, idx, excelCount, excelId, sheetId); /*-< ҶӦexcleݺ*/ } } } } } -/* -*: ȡͨŵĶԷ豸 -*: SheetInfo* commSheet 豸ͨЭ -* UINT8 locType -*: UINT8* oppTypes Է -* UINT8* oppTypePtls ԷЭ -* UINT16* oppTypeNum Է -* const UINT16 maxOppTypeNum Է -*: -*ֵ: -*/ +/** + * @brief StDsuPtclFindExcel ҶӦexcle + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param idx ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelCount excle ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelId excleID ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void StDsuPtclFindExcel(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 idx, UINT32 excelCount, const UINT32 excelId, const UINT32 sheetId) +{ + /*- ֲ*/ + UINT32 excelIdx = 0u; /*excel±*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ + UINT32 curExcelId = 0u; /*ǰexcel*/ + UINT32 curExcelPos = 0u; /*ǰexcelλ*/ + UINT32 curExcelStartPos = 0u; /*ǰexcelʼλ*/ + UINT32 crcVal = 0u; /*crcֵ*/ + UINT32 crc = 0u; /*crc*/ + UINT32 curLen = 0u; /*ǰ*/ + UINT8 isBreak = 0u; /*-< Ƿ˳ʶΪ*/ + UINT32 sheetCount = 0u; /*sheet*/ + + if ((NULL != sheetInfo) && (NULL != data)) /*-< Ƿǿ*/ + { + for (excelIdx = 0u; excelIdx < excelCount; excelIdx++) /*-< excel±ǷСexcel*/ + { + deepPro = 0u; /*-< ô־Ϊ*/ + + if ((idx + 24u) <= dataLen) /*-< ʹݳǷϷ*/ + { + curExcelId = LongFromChar(&data[idx]); /*-< õǰexcleID*/ + idx += 4u; /*-< ǰ±4*/ + + if (curExcelId == excelId) /*-< õǰexcleIDǷΪҪҵ*/ + { + /*4ֽڳ*/ + idx += 4u; /*-< ǰ±4*/ + + /*4ֽexcelλ*/ + curExcelPos = LongFromChar(&data[idx]); /*-< õǰexcelλ*/ + curExcelStartPos = curExcelPos; /*-< ¼ǰexcelλΪexcelʼλ*/ + idx += 4u; /*-< ǰ±4*/ + + /*12ֽԤ*/ + idx += 12u; /*-< ǰ±12*/ + + if ((curExcelPos + 40u) <= dataLen) /*-< ʹݳǷϷ*/ + { + crcVal = LongFromChar(&data[curExcelPos]); /*-< õCRCֵ*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + /*4ֽexcel汾*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + curLen = LongFromChar(&data[curExcelPos]); /*-< õexcel*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + if ((4u < curLen) && ((curExcelStartPos + curLen) <= dataLen)) /*-< excelȴ4 excelʼλüӳСڵݳ*/ + { + deepPro = 1u; /*-< ô־Ϊ*/ + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + else /**/ + { + idx += 20u; /*-< ǰ±20*/ + } + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + crc = Crc32(&data[curExcelStartPos + 4u], curLen - 4u); /*-< excelCRCֵ*/ + if (crc == crcVal) /*-< CRCֵǷ*/ + { + sheetCount = LongFromChar(&data[curExcelPos]); /*-< õsheetҳ*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + /*24ֽԤ*/ + curExcelPos += 24u; /*-< ǰexcelλ24*/ + + isBreak = StDsuPtclFindSheet(sheetInfo, data, dataLen, curExcelStartPos, &curExcelPos, sheetCount, sheetId); /*-< ҶӦsheetҳݺ*/ + } + else /*crc*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + + if (1u == isBreak) /*-< ˳ʶΪǷΪ*/ + { + break; /*-< ˳*/ + } + } + } +} + +/** + * @brief StDsuPtclFindSheet ҶӦsheetҳ + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param curExcelStartPos excelʼλ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param curExcelPos ǰexcelλ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetCount sheetҳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 0:˳ 1:˳ + */ +static UINT8 StDsuPtclFindSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 curExcelStartPos, UINT32* curExcelPos, UINT32 sheetCount, const UINT32 sheetId) +{ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ˳*/ + UINT32 sheetIdx = 0u; /*sheet±*/ + UINT32 curSheetId = 0u; /*ǰsheet*/ + UINT32 curSheetStartPos = 0u; /*ǰsheetʼλ*/ + + if ((NULL != sheetInfo) && (NULL != data) && (NULL != curExcelPos)) /*-< Ƿǿ*/ + { + for (sheetIdx = 0u; sheetIdx < sheetCount; sheetIdx++) /*-< sheetҳ±Ƿsheetҳ*/ + { + if (((*curExcelPos) + 24u) <= dataLen) /*-< ʹݳǷϷ*/ + { + curSheetId = LongFromChar(&data[*curExcelPos]); /*-< õǰsheetҳID*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + if (curSheetId == sheetId) /*-< õǰsheetҳIDǷΪҪҵ*/ + { + sheetInfo->Id = curSheetId; /*-< õǰsheetҳIDsheetҳϢ*/ + + sheetInfo->Len = LongFromChar(&data[*curExcelPos]); /*-< óȵsheetҳϢ*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + + curSheetStartPos = LongFromChar(&data[*curExcelPos]); /*-< sheetexcelλõsheetҳϢ*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + + sheetInfo->RowCount = ShortFromChar(&data[*curExcelPos]); /*-< sheetҳϢ*/ + (*curExcelPos) += 2u; /*-< ǰexcelλ2*/ + + /*2ֽ-*/ + (*curExcelPos) += 2u; /*-< ǰexcelλ2*/ + /*8ֽԤ*/ + (*curExcelPos) += 8u; /*-< ǰexcelλ8*/ + + sheetInfo->Data = &data[curExcelStartPos + curSheetStartPos]; /*-< sheetҳʼݵsheetҳϢ*/ + + if (0u < sheetInfo->RowCount) /*-< Ƿ*/ + { + if ((0u < sheetInfo->Len) && (0u == (sheetInfo->Len % sheetInfo->RowCount))) /*-< Ƿݳ*/ + { + sheetInfo->ColLen = sheetInfo->Len / sheetInfo->RowCount; /*-< õݳ*/ + } + else /*ݴ*/ + { + sheetInfo->Len = 0u; /*-< ݳΪ0*/ + sheetInfo->RowCount = 0u; /*-< Ϊ0*/ + sheetInfo->Data = NULL; /*-< ΪNULL*/ + } + } + else /**/ + { + sheetInfo->Len = 0u; /*-< ݳΪ0*/ + sheetInfo->Data = NULL; /*-< ΪNULL*/ + } + + rtnVal = 1u; /*-< úֵΪ˳*/ + } + else + { + (*curExcelPos) += 20u; /*-< ǰexcelλ20*/ + } + } + else /*ȴ*/ + { + rtnVal = 1u; /*-< úֵΪ˳*/ + } + + if (1u == rtnVal) /*-< ֵǷΪ˳*/ + { + break; /*-< ˳*/ + } + } + } + + return rtnVal; /*-< غֵ*/ +} + +/** + * @brief StDsuPtclSetDevNum 豸 + * @param locType ȡֵΧ:0x00-0xFF + * @param oppType Է ȡֵΧ:0x00-0xFF + * @param outDevIpSheet ⲿ豸IP ȡֵΧ:οṹSheetInfo + * @param inDevIpSheet ڲ豸IP ȡֵΧ:οṹSheetInfo + * @param dupOppHlhtIdLen ԷͨID鳤 ȡֵΧ:0x0000-0xFFFF + * @param dupOppHlhtId ԷͨID ȡֵΧ:0x0000-0xFFFF + * @param outInDevIpRowCount 豸IP ȡֵΧ:0x00000000-0xFFFFFFFF + * @param devNum 豸 ȡֵΧ:0x00-0xFF + */ +static void StDsuPtclSetDevNum(UINT8 locType, UINT8 oppType, SheetInfo* outDevIpSheet, SheetInfo* inDevIpSheet, UINT16* dupOppHlhtIdLen, UINT32* dupOppHlhtId, UINT16 outInDevIpRowCount, UINT8* devNum) +{ + if (NULL != devNum) /*-< Ƿǿ*/ + { + (*devNum) = 0u; /*-< 豸Ϊ0*/ + + if (((VOBC_TYPE == locType) || (IVOC_TYPE == locType)) && ((AOM_TYPE == oppType) || (IVOC_AOM_TYPE == oppType) || (ITE_TYPE == oppType))) /*-< ΪCBTCIVOC ҶԷΪCBTCAOMIVOCAOMITE*/ + { + /*- ATPԷAOM,ITEʱ̶ͨΪ2*/ + (*devNum) = 2u; + } + else if (((VOBC_TYPE == locType) || (IVOC_TYPE == locType)) && ((CI_TYPE == oppType) || (RC_TYPE == oppType) || (ZC_TYPE == oppType) || (ATS_TYPE == oppType) || (PSC_TYPE == oppType) || (OC_TYPE == oppType))) /*-< ΪCBTCIVOC ҶԷΪCIRCZCATSPSCOC*/ + { + /*- ATPԷCI,ZC,ATS,PSC,OCʱ̶ͨΪ3*/ + (*devNum) = 3u; + } + else + { + GetCommOppDevNum(outDevIpSheet, oppType, dupOppHlhtIdLen, dupOppHlhtId, outInDevIpRowCount, devNum); /*- úȡⲿͨŵĶԷ豸*/ + GetCommOppDevNum(inDevIpSheet, oppType, dupOppHlhtIdLen, dupOppHlhtId, outInDevIpRowCount, devNum); /*- úȡڲͨŵĶԷ豸*/ + } + } +} + +/** + * @brief GetCommOppDevTypes ȡͨŵĶԷ豸 + * @param commSheet 豸ͨЭ ȡֵΧ:οṹSheetInfo + * @param locType ȡֵΧ:0x00-0xFF + * @param oppTypes Է ȡֵΧ:ֽ + * @param oppTypePtls ԷЭ ȡֵΧ:ֽ + * @param oppTypeNum Է ȡֵΧ:0x0000-0xFFFF + * @param maxOppTypeNum Է ȡֵΧ:0x0000-0xFFFF + * @return 0:ʧ 1:ɹ + */ static UINT8 GetCommOppDevTypes(SheetInfo* commSheet, UINT8 locType, UINT8* oppTypes, UINT8* oppTypePtls, UINT16* oppTypeNum, const UINT16 maxOppTypeNum) { - UINT8 retVal = 0u; /*ֵ*/ - UINT32 rowLen = 0u; /*г*/ + /*- ֲ*/ + const UINT32 commColLen = 3u; /*Ҫ豸ͨЭг*/ + UINT8 retVal = 0u; /*-< úֵΪ0*/ UINT32 i = 0u; /*ѭ*/ UINT32 j = 0u; /*ѭ*/ UINT8 locDevType = 0u; /*豸*/ UINT8 oppDevType = 0u; /*Է豸*/ UINT8 ptlType = 0u; /*Э*/ - UINT8 isAddOppType = 0; /*ǷӶԷ*/ + UINT8 isAddOppType = 0u; /*ǷӶԷ*/ UINT8 isConfigErr = 0u; /*Ƿô*/ - if ((NULL != commSheet) && (NULL != oppTypes) && (NULL != oppTypePtls) && (NULL != oppTypeNum) && (0u < commSheet->Len) && (0u < commSheet->RowCount) && (0 == commSheet->Len % commSheet->RowCount)) /*sheet*/ + if ((NULL != commSheet) && (NULL != oppTypes) && (NULL != oppTypePtls) && (NULL != oppTypeNum) && (NULL != commSheet->Data) && (commSheet->ColLen >= commColLen)) /*-< ǿ */ { - rowLen = commSheet->Len / commSheet->RowCount; - for (i = 0; i < commSheet->RowCount; i++) /*豸ͨЭ*/ + for (i = 0u; i < commSheet->RowCount; i++) /*-< ±ǷС*/ { - locDevType = commSheet->Data[commSheet->StartIdx + (i * rowLen)]; - oppDevType = commSheet->Data[commSheet->StartIdx + (i * rowLen) + 1]; - ptlType = commSheet->Data[commSheet->StartIdx + (i * rowLen) + 2]; - if (9 == ptlType) /*RSSPII9Ϊ5*/ + locDevType = commSheet->Data[i * commSheet->ColLen]; /*-< õID*/ + oppDevType = commSheet->Data[(i * commSheet->ColLen) + 1u]; /*-< õԷID*/ + ptlType = commSheet->Data[(i * commSheet->ColLen) + 2u]; /*-< õЭID*/ + if (9u == ptlType) /*-< RSSPIIǷΪ9*/ { - ptlType = DSU_PROTCL_RSSP2; + ptlType = DSU_PROTCL_RSSP2; /*-< ڲRSSPIIΪ5*/ } - if (locDevType == locType)/* Ϊͷ */ + if (locDevType == locType) /*-< ǷΪ*/ { - isAddOppType = 0; - for (j = 0; j < (*oppTypeNum); j++) /*鿴ǷظԷ*/ + isAddOppType = 0u; /*-< ǷΪ*/ + for (j = 0u; j < (*oppTypeNum); j++) /*-< 鿴ǷظԷ*/ { - if (oppTypes[j] == oppDevType) /*ظԷ*/ + if (oppTypes[j] == oppDevType) /*-< ظԷ*/ { - if (oppTypePtls[j] != ptlType) /*ʹЭͲͬ,ô*/ + if (oppTypePtls[j] != ptlType) /*-< ʹЭͲͬ*/ { - isConfigErr = 1u; + isConfigErr = 1u; /*-< ô*/ } break; } } - if (j == (*oppTypeNum)) /*Ͳظ,*/ + if (j == (*oppTypeNum)) /*-< Ͳظ*/ { - isAddOppType = 1u; + isAddOppType = 1u; /*-< ǷΪ*/ } - if (0u == isConfigErr) /**/ + if (0u == isConfigErr) /*-< */ { - if ((1u == isAddOppType) && ((*oppTypeNum) < maxOppTypeNum)) /*ֵ*/ + if ((1u == isAddOppType) && ((*oppTypeNum) < maxOppTypeNum)) /*-< */ { - oppTypes[*oppTypeNum] = oppDevType; /*Է*/ - oppTypePtls[*oppTypeNum] = ptlType; /*ʹЭ*/ - (*oppTypeNum)++; + oppTypes[*oppTypeNum] = oppDevType; /*-< öԷ*/ + oppTypePtls[*oppTypeNum] = ptlType; /*-< ʹЭ*/ + (*oppTypeNum)++; /*-< ʹЭ1*/ } } else /*ô,˳*/ @@ -537,69 +668,111 @@ static UINT8 GetCommOppDevTypes(SheetInfo* commSheet, UINT8 locType, UINT8* oppT } } } - if (0 == isConfigErr) /**/ + if (0u == isConfigErr) /*-< */ { - retVal = 1u; + retVal = 1u; /*-< úֵΪ1*/ } } - return retVal; + return retVal; /*-< غֵ*/ } -/* -*: ȡͨŵĶԷ豸 -*: SheetInfo* devIpSheet 豸IP -* UINT8 oppType Է -* UINT16* dupOppHlhtIdLen ظĶԷͨID -* UINT32* dupOppHlhtId ظĶԷͨID -*: UINT16* dupOppHlhtIdLen ظĶԷͨID -* UINT32* dupOppHlhtId ظĶԷͨID -* UINT8* devNum 豸 -*: -*ֵ: -*/ +/** + * @brief GetCommOppDevNum ȡͨŵĶԷ豸 + * @param devIpSheet 豸IP ȡֵΧ:οṹSheetInfo + * @param oppType Է ȡֵΧ:0x00-0xFF + * @param dupOppHlhtIdsLen ظĶԷͨID ȡֵΧ:0x0000-0xFFFF + * @param dupOppHlhtIds ظĶԷͨID ȡֵΧ:ֽ + * @param maxDupOppHlhtIdsLen ظĶԷͨID ȡֵΧ:0x0000-0xFFFF + * @param devNum 豸 ȡֵΧ:0x00-0xFF + */ static void GetCommOppDevNum(SheetInfo* devIpSheet, UINT8 oppType, UINT16* dupOppHlhtIdsLen, UINT32* dupOppHlhtIds, const UINT16 maxDupOppHlhtIdsLen, UINT8* devNum) { - UINT32 rowLen = 0u; /*г*/ + /*- ֲ*/ + const UINT32 devIpColLen = 6u; /*Ҫ豸IPַг*/ UINT32 i = 0u; /*ѭ*/ UINT32 j = 0u; /*ѭ*/ UINT16 devId = 0u; /*豸ID*/ UINT32 hlhtId = 0u; /*HLHT ID*/ - if ((NULL != devIpSheet) && (NULL != dupOppHlhtIdsLen) && (NULL != dupOppHlhtIds) && (NULL != devNum) && (0u < devIpSheet->Len) && (0u < devIpSheet->RowCount) && (0 == devIpSheet->Len % devIpSheet->RowCount)) /*sheet*/ + if ((NULL != devIpSheet) && (NULL != dupOppHlhtIdsLen) && (NULL != dupOppHlhtIds) && (NULL != devNum) && (NULL != devIpSheet->Data) && (devIpSheet->ColLen >= devIpColLen)) /*-< ǿ */ { - rowLen = devIpSheet->Len / devIpSheet->RowCount; - for (i = 0; i < devIpSheet->RowCount; i++) /*豸ͨЭ*/ + for (i = 0u; i < devIpSheet->RowCount; i++) /*-< ±ǷС*/ { - devId = ShortFromChar(&devIpSheet->Data[devIpSheet->StartIdx + (i * rowLen)]); - hlhtId = LongFromChar(&devIpSheet->Data[devIpSheet->StartIdx + (i * rowLen) + 2]); - if (((UINT8)(devId >> 8)) == oppType) /*豸ͬ*/ + devId = ShortFromChar(&devIpSheet->Data[i * devIpSheet->ColLen]); /*-< õ豸ID*/ + hlhtId = LongFromChar(&devIpSheet->Data[(i * devIpSheet->ColLen) + 2]); /*-< õͨID*/ + if (((UINT8)(devId >> 8)) == oppType) /*-< 豸ǷԷ*/ { - for (j = 0; j < (*dupOppHlhtIdsLen); j++) + for (j = 0u; j < (*dupOppHlhtIdsLen); j++) /*-< 豸ǷԷ*/ { #ifdef DEV_IP_TABLE_NO_HLHT - if (dupOppHlhtIds[j] == devId) /*HLHT IDظ,˳*/ + if (dupOppHlhtIds[j] == devId) /*-< HLHT IDظ,˳*/ { break; } #else - if (dupOppHlhtIds[j] == hlhtId) /*HLHT IDظ,˳*/ + if (dupOppHlhtIds[j] == hlhtId) /*-< HLHT IDظ,˳*/ { break; } #endif } - if ((j == (*dupOppHlhtIdsLen)) && ((*dupOppHlhtIdsLen) < maxDupOppHlhtIdsLen)) /*HLHT IDظ*/ + if ((j == (*dupOppHlhtIdsLen)) && ((*dupOppHlhtIdsLen) < maxDupOppHlhtIdsLen)) /*-< HLHT IDظ*/ { #ifdef DEV_IP_TABLE_NO_HLHT - dupOppHlhtIds[*dupOppHlhtIdsLen] = devId; /*HLHT ID*/ + dupOppHlhtIds[*dupOppHlhtIdsLen] = devId; /*-< HLHT ID*/ #else - dupOppHlhtIds[*dupOppHlhtIdsLen] = hlhtId; /*HLHT ID*/ + dupOppHlhtIds[*dupOppHlhtIdsLen] = hlhtId; /*-< HLHT ID*/ #endif - (*dupOppHlhtIdsLen)++; /*ȽϵHLHT ID1*/ - (*devNum)++; /*豸1*/ + (*dupOppHlhtIdsLen)++; /*-< ȽϵHLHT ID1*/ + (*devNum)++; /*-< 豸1*/ } } } } -} \ No newline at end of file +} + +/** + * @brief StDsuPtclCommRelSetDevNum 豸ͨŹϵõ豸 + * @param locTypeId ID ȡֵΧ:0x0000-0xFFFF + * @param oppType Է ȡֵΧ:0x00-0xFF + * @param devNum 豸 ȡֵΧ:0x00-0xFF + */ +static void StDsuPtclCommRelSetDevNum(UINT16 locTypeId, UINT8 oppType, UINT8* devNum) +{ + SheetInfo commRelSheet = { 0U }; + UINT16 rowIdx = 0U; + UINT16 curLocTypeId = 0U; + UINT8 comDevNum = 0U; + UINT8 comIdx = 0U; + UINT16 comTypeId = 0U; + UINT8 comType = 0U; + + if ((NULL != devNum) && (NULL != g_pDataBuf))/*-< Ƿǿ*/ + { + (*devNum) = 0u; /*-< 豸Ϊ0*/ + + InitSheet(&commRelSheet, g_pDataBuf, g_DataBufLen, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_ZCDSU_COMM_ID); /*-< ȡ豸ͨŹϵñ*/ + if (NULL != commRelSheet.Data) /*-< -RSSPϢ-ȺϷ*/ + { + for (rowIdx = 0U; rowIdx < commRelSheet.RowCount; rowIdx++) + { + curLocTypeId = ShortFromChar(&commRelSheet.Data[rowIdx * commRelSheet.ColLen]); /*-< õǰID*/ + if (curLocTypeId == locTypeId) + { + comDevNum = (UINT8)ShortFromChar(&commRelSheet.Data[(rowIdx * commRelSheet.ColLen) + 2U]); /*-< õͨ*/ + for (comIdx = 0U; comIdx < comDevNum; comIdx++) + { + comTypeId = ShortFromChar(&commRelSheet.Data[(rowIdx * commRelSheet.ColLen) + 4U + (2U * comIdx)]); /*-< õͨID*/ + comType = (UINT8)((comTypeId >> 8U) & 0x00FFU); + if (comType == oppType) + { + (*devNum)++; + } + } + break; + } + } + } + } +} diff --git a/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.h b/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.h index 811cbc5..5df16d8 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.h +++ b/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.h @@ -37,12 +37,17 @@ extern "C" { #define PROTCL_MGECFG_MAXCNT ((UINT8)0x06) /*Э*/ #define VOBC_TYPE ((UINT8)0x14) /*VOBC豸*/ +#define IVOC_TYPE ((UINT8)0x10) /*IVOC豸*/ #define AOM_TYPE ((UINT8)0x15) /*AOM豸*/ +#define IVOC_AOM_TYPE ((UINT8)0x11) /*IVOC-AOM豸*/ #define CI_TYPE ((UINT8)0x3C) /*CI豸*/ +#define RC_TYPE ((UINT8)0x3D) /*RC豸*/ #define ZC_TYPE ((UINT8)0x1E) /*ZC豸*/ #define ATS_TYPE ((UINT8)0x03) /*ATS豸*/ #define PSC_TYPE ((UINT8)0x61) /*PSC豸*/ #define ITE_TYPE ((UINT8)0x18) /*ITE豸*/ +#define OC_TYPE ((UINT8)0x64) /*OCC豸*/ +#define LEU_TYPE ((UINT8)0x5E) /*LEU豸*/ /*豸ͨЭ0x4002*/ typedef struct @@ -71,20 +76,18 @@ extern "C" { { UINT8 sfpProtclNum; /*SFPͨ豸*/ UINT8 rsrProtclNum; /*RSRͨ豸*/ - UINT8 rsspProtclNum; /*RSSPIͨ豸*/ + UINT16 rsspProtclNum; /*RSSPIͨ豸*/ UINT8 redunProtclNum; /*RPͨ豸*/ UINT8 rssp2ProtclNum; /*RSSPIIͨ豸*/ UINT8 fsfbProtclNum; /*FSFBͨ豸*/ }DSU_PROTCL_TYPE_STRU; - /* - *: DsuCommonInfoInit - *: ѯʼ - *: UINT8 *pFsName FSļ - *: DSU_PROTCL_BOOK_IP_INFO_STRU *pDsuProtclBookIpInfo ʹñ - *: - *ֵ: 1:ɹ;0ʧ - */ + /** + * @brief DsuCommonInfoInit ѯʼ + * @param pFsName FSļ· ȡֵΧ:ֽ + * @param pDsuProtclBookIpInfo ѯϢ ȡֵΧ:οṹDSU_PROTCL_BOOK_IP_INFO_STRU + * @param 0:ʧ;1:ɹ + */ UINT8 DsuCommonInfoInit(UINT8 *pFsName, DSU_PROTCL_BOOK_IP_INFO_STRU *pDsuProtclBookIpInfo); /* @@ -99,18 +102,17 @@ extern "C" { */ UINT8 DsuProtclGetProtclType(UINT16 locTypeId, UINT16 oppTypeId, UINT8 *pProtclType, DSU_PROTCL_BOOK_IP_INFO_STRU *pDsuProtclBookIpInfo); - /* - *: DsuGetProtclTypeInfo - *: ݱIDԷͨʱʹЭͨ豸(·) - *: UINT16 locTypeId ID - * DSU_PROTCL_BOOK_IP_INFO_STRU *pDsuProtclBookIpInfo ʹñ - * UINT32 inDataLen ݳ - * UINT8 inData[] - * UINT16 globalVarOppTypePtlLen ͨŵĶԷ豸Э鳤 - *: UINT8 globalVarOppTypePtl[UINT8_MAX] ͨŵĶԷ豸Э - *: DSU_PROTCL_TYPE_STRU *dsuProtclTypeInfo Эͨ豸 - *ֵ: 1:ɹ;0ʧ - */ + /** + * @brief DsuGetProtclTypeInfo ݱIDԷͨʱʹЭͨ豸(·) + * @param locTypeId ID ȡֵΧ:0x0000-0xFFFF + * @param dsuProtclTypeInfo Э ȡֵΧ:οṹDSU_PROTCL_TYPE_STRU + * @param pDsuProtclBookIpInfo ʹñ ȡֵΧ:οṹDSU_PROTCL_BOOK_IP_INFO_STRU + * @param globalVarOppTypePtl ԷЭ ȡֵΧ:ֽ + * @param globalVarOppTypePtlLen ԷЭ鳤 ȡֵΧ:0x0000-0xFFFF + * @param inDataLen ڲݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ڲ ȡֵΧ:ֽ + * @return 0:ʧ 1:ɹ + */ UINT8 DsuGetProtclTypeInfo(UINT16 locTypeId, DSU_PROTCL_TYPE_STRU* dsuProtclTypeInfo, DSU_PROTCL_BOOK_IP_INFO_STRU* pDsuProtclBookIpInfo, UINT8 globalVarOppTypePtl[], UINT16 globalVarOppTypePtlLen, UINT32 inDataLen, UINT8 inData[]); #ifdef __cplusplus diff --git a/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.c b/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.c index 3346f9a..d4680dc 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.c +++ b/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.c @@ -26,6 +26,7 @@ #include "ProtclManage.h" #include "Convert.h" #include "dfsDataRead.h" +#include #ifdef USE_SFP #include "sfpPrtclCommon.h" @@ -47,12 +48,12 @@ /***********Эʼغ**************************************************************/ static UINT8 InitProtclInfoStru(ProtclConfigInfoStru* pUnifyInfo, UINT16 maxLnkNum); -static UINT8 InitSfpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo); -static UINT8 InitRpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo); -static UINT8 InitRsspProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo); -static UINT8 InitRsrProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo); -static UINT8 InitRssp2ProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo); -static UINT8 InitFsfbProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo); +static UINT8 InitSfpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo); +static UINT8 InitRpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo); +static UINT8 InitRsspProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo); +static UINT8 InitRsrProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo); +static UINT8 InitRssp2ProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo); +static UINT8 InitFsfbProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo); static void GetSfpNetsRecvPkgNum(ProtclConfigInfoStru* pUnifyInfo, const UINT8 dstType, const UINT8 dstId, const UINT16 dstLogicId, UINT16* redRecvPkgNum, UINT16* blueRecvPkgNum); static void GetRsspiNetsRecvPkgNum(ProtclConfigInfoStru* pUnifyInfo, const UINT8 dstType, const UINT8 dstId, const UINT16 dstLogicId, UINT16* redRecvPkgNum, UINT16* blueRecvPkgNum); static void GetRsspiiNetsRecvPkgNum(ProtclConfigInfoStru* pUnifyInfo, const UINT8 dstType, const UINT8 dstId, const UINT16 dstLogicId, UINT16* redRecvPkgNum, UINT16* blueRecvPkgNum); @@ -60,6 +61,9 @@ static void GetFsfbNetsRecvPkgNum(ProtclConfigInfoStru* pUnifyInfo, const UINT8 static void TypeIdToDevName(UINT8 type, UINT8 id, UINT16* pDevName); static PROTCL_APP_TO_STRU* NewProtclAppToStru(const UINT16 outputSize, const UINT16 inputSize); static UINT8* NewAppData(UINT16* appDataMaxLen, const UINT16 outputSize, const UINT16 inputSize); +static UINT8 StPtclMgtSetOutnetQue(ProtclConfigInfoStru* pUnifyInfo, UINT16 locDevName, UINT8 queType); +static void StPtclMgtSetRecSize(ProtclConfigInfoStru* pUnifyInfo, UINT16 pProtclNumBuff[7], UINT32 curDevRecordLen[PROTCL_MGECFG_MAXCNT]); +static UINT8 StPtclMgtSetRecvDataBuff(ProtclConfigInfoStru* pUnifyInfo, UINT16 maxLinkNum, PROTCL_SND_CFG_STRU* protclSndCfgStru, PROTCL_RCV_DATA_TYPE* ptemProtclRcvDataStru, UINT8 ptclType, UINT8** pRcvDataBuff, UINT16* pRcvDataBuffLen); /* Э麯ָñ */ static PROTCL_MGECFG_STRU protclCfgStruBuff[PROTCL_MGECFG_MAXCNT + 1] = { @@ -102,520 +106,242 @@ static PROTCL_MGECFG_STRU protclCfgStruBuff[PROTCL_MGECFG_MAXCNT + 1] = { #endif }; -/* -* ļȡӦЭ -*/ +/** + * @brief Init ļȡӦЭ + * @param fileName ļ· ȡֵΧ:ֽ + * @param inDataLen ڲݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ڲ ȡֵΧ:ֽ + * @param pUnifyInfo ͳһṹ ȡֵΧ:οṹProtclConfigInfoStru + * @return 0:ʧ 1:ɹ + */ UINT8 Init(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], ProtclConfigInfoStru* pUnifyInfo) { - UINT8 retVal = 0; - UINT8 tempProtclCnt = 0; - UINT8 tmpI = 0; - UINT8 flag = 0; - UINT8 rslt = 0; + /*- ֲ*/ + UINT8 retVal = 0u; /*-< úֵΪ0*/ + UINT8 tempProtclCnt = 0u; + UINT8 tmpI = 0u; + UINT8 flag = 0u; + UINT8 rslt = 0u; F_INIT tmpInit; - /* 豸ʹ־ȱ*/ - UINT32 curDevRecordLenRatio[PROTCL_MGECFG_MAXCNT] = { 0 }; - /* 豸ʹ־ܳ*/ - UINT32 curDevRecordTotalLen = 0; - /* 豸һ·*/ - UINT32 devRecFitLen[PROTCL_MGECFG_MAXCNT] = { 0 }; /* ʱ*/ - UINT32 tmpVal = 0; - PROTCL_APP_TO_STRU* pCurRcvProtclAppStru = NULL; /*յ֡Ϣ*/ PROTCL_RCV_DATA_TYPE* ptemProtclRcvDataStru = NULL; /*ʱЭݵĽṹ*/ - PROTCL_APP_TO_STRU* pCurSndProtclAppStru = NULL; /*͵֡Ϣ*/ PROTCL_SND_CFG_STRU* protclSndCfgStru = NULL; /*ͽṹ*/ - UINT8* pProtclNumBuff = NULL; /*Э·*/ + UINT16* pProtclNumBuff = NULL; /*Э·*/ UINT32* curDevRecordLen = NULL; /*豸ʹ־*/ DSU_PROTCL_TYPE_STRU* protclTypeInfoStru = NULL; /*Эͨ*/ - UINT32 i = 0u; /*ѭ*/ - UINT8 funRtn = 0u; /*úֵ*/ /* VOBCļ¼ݴС */ - if ((NULL == pUnifyInfo)) + if ((NULL == pUnifyInfo)) /*-< Ƿǿ*/ { - return retVal; + return retVal; /*-< غֵ*/ } - pUnifyInfo->GlobalVar = (GlobalVar*)malloc(sizeof(GlobalVar)); - if (NULL != pUnifyInfo->GlobalVar) + pUnifyInfo->GlobalVar = (GlobalVar*)malloc(sizeof(GlobalVar)); /*-< ȫֱռ*/ + if (NULL != pUnifyInfo->GlobalVar) /*-< Ƿɹ*/ { /*ʼЭݵĽṹ*/ - CommonMemSet(pUnifyInfo->GlobalVar, sizeof(GlobalVar), 0, sizeof(GlobalVar)); + CommonMemSet(pUnifyInfo->GlobalVar, sizeof(GlobalVar), 0, sizeof(GlobalVar)); /*-< ȫֱռ*/ - protclSndCfgStru = pUnifyInfo->GlobalVar->protclSndCfgStru; /*ͽṹ*/ - pProtclNumBuff = pUnifyInfo->GlobalVar->pProtclNumBuff; /*Э·*/ - curDevRecordLen = pUnifyInfo->GlobalVar->curDevRecordLen; /*豸ʹ־*/ + protclSndCfgStru = pUnifyInfo->GlobalVar->protclSndCfgStru; /*-< õͽṹ*/ + pProtclNumBuff = pUnifyInfo->GlobalVar->pProtclNumBuff; /*-< õЭ·*/ + curDevRecordLen = pUnifyInfo->GlobalVar->curDevRecordLen; /*-< õ豸ʹ־*/ } else { - return retVal; + return retVal; /*-< غֵ*/ } - tempProtclCnt = InitGetCfgInfo(fileName, inDataLen, inData, &pProtclNumBuff[1], pUnifyInfo); + tempProtclCnt = InitGetCfgInfo(fileName, inDataLen, inData, &pProtclNumBuff[1], pUnifyInfo); /*-< óʼļȡӦЭݺ*/ - if (tempProtclCnt == 0) + if (tempProtclCnt == 0u) /*-< úʧ*/ { - retVal = 0; - return retVal; + retVal = 0u; /*-< úֵΪ0*/ + return retVal; /*-< غֵ*/ } - protclTypeInfoStru = &pUnifyInfo->GlobalVar->protclTypeInfoStru; + protclTypeInfoStru = &pUnifyInfo->GlobalVar->protclTypeInfoStru; /*-< õЭϢ*/ - if (2 < pUnifyInfo->RecordArraySize) /*ȴ2,־ռ䴦*/ - { - /*ʷ־ռ*/ - devRecFitLen[0] = SFP_PER_LNK_RECORD_MAX_LEN; - devRecFitLen[1] = RP_PER_LNK_RECORD_MAX_LEN; - devRecFitLen[2] = RSR_PER_LNK_RECORD_MAX_LEN; - devRecFitLen[3] = RSSPI_PER_LNK_RECORD_MAX_LEN; - devRecFitLen[4] = RSSPII_PER_LNK_RECORD_MAX_LEN; - devRecFitLen[5] = FSFB_PER_LNK_RECORD_MAX_LEN; - for (tmpI = 0; tmpI < PROTCL_MGECFG_MAXCNT; tmpI++) - { - if (pProtclNumBuff[tmpI + 1] > 0) - { - curDevRecordLenRatio[tmpI] = devRecFitLen[tmpI] * pProtclNumBuff[tmpI + 1]; - curDevRecordTotalLen += curDevRecordLenRatio[tmpI]; - } - } - for (tmpI = 0; tmpI < PROTCL_MGECFG_MAXCNT; tmpI++) - { - if (pProtclNumBuff[tmpI + 1] > 0) - { - curDevRecordLen[tmpI] = (pUnifyInfo->RecordArraySize - 2) * curDevRecordLenRatio[tmpI] / curDevRecordTotalLen; - /*С־*/ - tmpVal += devRecFitLen[tmpI]; - } - } - /*־ռ.ܷ־СС־:ʷ; :ڰʷ,ʹһЭ־ȲСһ·*/ - if ((pUnifyInfo->RecordArraySize - 2) >= tmpVal) - { - /*,ij*/ - tmpVal = 0; - for (tmpI = 0; tmpI < PROTCL_MGECFG_MAXCNT; tmpI++) - { - /*ֻЭ־*/ - if (pProtclNumBuff[tmpI + 1] > 0) - { - if (curDevRecordLen[tmpI] < devRecFitLen[tmpI]) /*Сһ·,Ϊһ·,ۼij*/ - { - tmpVal += (devRecFitLen[tmpI] - curDevRecordLen[tmpI]); - curDevRecordLen[tmpI] = devRecFitLen[tmpI]; - } - else - { - /*ij*/ - if (tmpVal > 0) - { - if ((curDevRecordLen[tmpI] > tmpVal) && (curDevRecordLen[tmpI] - tmpVal >= devRecFitLen[tmpI])) /*ɼ*/ - { - curDevRecordLen[tmpI] -= tmpVal; - tmpVal = 0; - } - else /*ɼ,Ϊһ·,ۼij*/ - { - tmpVal += (devRecFitLen[tmpI] - curDevRecordLen[tmpI]); - curDevRecordLen[tmpI] = devRecFitLen[tmpI]; - } - } - } - } - } - /*ij*/ - if (tmpVal > 0) - { - for (tmpI = 0; tmpI < PROTCL_MGECFG_MAXCNT; tmpI++) - { - /*־ȿɼij*/ - if ((pProtclNumBuff[tmpI + 1] > 0) && (curDevRecordLen[tmpI] > tmpVal) && (curDevRecordLen[tmpI] - tmpVal >= devRecFitLen[tmpI])) - { - curDevRecordLen[tmpI] -= tmpVal; - tmpVal = 0; - break; - } - } - } - } - } + StPtclMgtSetRecSize(pUnifyInfo, pProtclNumBuff, curDevRecordLen); /*-< øЭ־С*/ /* ʼЭ*/ - for (tmpI = 0; tmpI < tempProtclCnt + 1; tmpI++) + for (tmpI = 0u; tmpI < tempProtclCnt + 1; tmpI++) /*-< Э±ǷСЭ*/ { - if (0 < pProtclNumBuff[tmpI]) /*Эͨ,ʼ*/ + if (0u < pProtclNumBuff[tmpI]) /*-< Эͨ*/ { - tmpInit = protclCfgStruBuff[tmpI].fInit; - if (NULL != tmpInit) + tmpInit = protclCfgStruBuff[tmpI].fInit; /*-< õЭʼ*/ + if (NULL != tmpInit) /*-< ЭʼǷǿ*/ { - retVal = tmpInit(fileName, inDataLen, inData, pProtclNumBuff[tmpI], pUnifyInfo); + retVal = tmpInit(fileName, inDataLen, inData, pProtclNumBuff[tmpI], pUnifyInfo); /*-< ôЭʼ*/ } else /*޴Э*/ { - retVal = 1u; + retVal = 1u; /*-< úֵΪ1*/ } - if (0 == retVal) + if (0u == retVal) /*-< úǷʧ*/ { /* һʼʧܣټ */ - return retVal; + return retVal; /*-< غֵ*/ } } else /*ʼ*/ { - retVal = 1; + retVal = 1u; /*-< úֵΪ1*/ } } - /* ʱЭݵĽṹռ */ - pUnifyInfo->GlobalVar->RcvData = (PROTCL_RCV_DATA_TYPE*)malloc(sizeof(PROTCL_RCV_DATA_TYPE) * (PROTCL_MGECFG_MAXCNT + 1)); + /*- ʱЭݵĽṹռ */ + pUnifyInfo->GlobalVar->RcvData = (PROTCL_RCV_DATA_TYPE*)malloc(sizeof(PROTCL_RCV_DATA_TYPE) * (PROTCL_MGECFG_MAXCNT + 1u)); ptemProtclRcvDataStru = pUnifyInfo->GlobalVar->RcvData; /* ݵʱ浵ݵĽṹռ */ - if (ptemProtclRcvDataStru != NULL) + if (ptemProtclRcvDataStru != NULL) /*-< Ƿɹ*/ { - /*ʼЭݵĽṹ*/ - CommonMemSet(ptemProtclRcvDataStru, sizeof(PROTCL_RCV_DATA_TYPE) * (PROTCL_MGECFG_MAXCNT + 1), 0, sizeof(PROTCL_RCV_DATA_TYPE) * (PROTCL_MGECFG_MAXCNT + 1)); + /*- ʼЭݵĽṹ*/ + CommonMemSet(ptemProtclRcvDataStru, sizeof(PROTCL_RCV_DATA_TYPE) * (PROTCL_MGECFG_MAXCNT + 1u), 0u, sizeof(PROTCL_RCV_DATA_TYPE) * (PROTCL_MGECFG_MAXCNT + 1u)); - /*벢ʼЭݽṹĽݻ*/ + /*- 벢ʼЭݽṹĽݻ*/ ptemProtclRcvDataStru[DSU_PROTCL_SFP].pData = (UINT8*)malloc(sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->sfpProtclNum); CommonMemSet(ptemProtclRcvDataStru[DSU_PROTCL_SFP].pData, sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->sfpProtclNum, 0, pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->sfpProtclNum); - /*涨Эݽṹ2ռSFP,һΪptemProtclRcvDataStru[0],Ĭϲʹ*/ + /*- 涨Эݽṹ2ռSFP,һΪptemProtclRcvDataStru[0],Ĭϲʹ*/ ptemProtclRcvDataStru[DSU_PROTCL_SFP].proType = DSU_PROTCL_SFP; - /*벢ʼЭݽṹĽݻ*/ + /*- 벢ʼЭݽṹĽݻ*/ ptemProtclRcvDataStru[DSU_PROTCL_RP].pData = (UINT8*)malloc(sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->redunProtclNum); CommonMemSet(ptemProtclRcvDataStru[DSU_PROTCL_RP].pData, sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->redunProtclNum, 0, pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->redunProtclNum); - /*涨Эݽṹ3ռredun*/ + /*- 涨Эݽṹ3ռredun*/ ptemProtclRcvDataStru[DSU_PROTCL_RP].proType = DSU_PROTCL_RP; - /*벢ʼЭݽṹĽݻ*/ + /*- 벢ʼЭݽṹĽݻ*/ ptemProtclRcvDataStru[DSU_PROTCL_RSR].pData = (UINT8*)malloc(sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rsrProtclNum); CommonMemSet(ptemProtclRcvDataStru[DSU_PROTCL_RSR].pData, sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rsrProtclNum, 0, pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rsrProtclNum); - /*涨Эݽṹ4ռredun*/ + /*- 涨Эݽṹ4ռredun*/ ptemProtclRcvDataStru[DSU_PROTCL_RSR].proType = DSU_PROTCL_RSR; - /*벢ʼЭݽṹĽݻ*/ + /*- 벢ʼЭݽṹĽݻ*/ ptemProtclRcvDataStru[DSU_PROTCL_RSSP].pData = (UINT8*)malloc(sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rsspProtclNum); CommonMemSet(ptemProtclRcvDataStru[DSU_PROTCL_RSSP].pData, sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rsspProtclNum, 0, pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rsspProtclNum); - /*涨Эݽṹ5ռRSSP*/ + /*- 涨Эݽṹ5ռRSSP*/ ptemProtclRcvDataStru[DSU_PROTCL_RSSP].proType = DSU_PROTCL_RSSP; - /*벢ʼЭݽṹĽݻ*/ + /*- 벢ʼЭݽṹĽݻ*/ ptemProtclRcvDataStru[DSU_PROTCL_RSSP2].pData = (UINT8*)malloc(sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rssp2ProtclNum); CommonMemSet(ptemProtclRcvDataStru[DSU_PROTCL_RSSP2].pData, sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rssp2ProtclNum, 0, pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->rssp2ProtclNum); - /*涨Эݽṹ5ռRSSP*/ + /*- 涨Эݽṹ5ռRSSP*/ ptemProtclRcvDataStru[DSU_PROTCL_RSSP2].proType = DSU_PROTCL_RSSP2; - /*벢ʼЭݽṹĽݻ*/ + /*- 벢ʼЭݽṹĽݻ*/ ptemProtclRcvDataStru[DSU_PROTCL_FSFB].pData = (UINT8*)malloc(sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->fsfbProtclNum); - CommonMemSet(ptemProtclRcvDataStru[DSU_PROTCL_FSFB].pData, sizeof(UINT8)* pUnifyInfo->InputSize* pUnifyInfo->MaxNumPerCycle* protclTypeInfoStru->fsfbProtclNum, - 0, pUnifyInfo->InputSize* pUnifyInfo->MaxNumPerCycle* protclTypeInfoStru->fsfbProtclNum); - /*涨Эݽṹ5ռRSSP*/ + CommonMemSet(ptemProtclRcvDataStru[DSU_PROTCL_FSFB].pData, sizeof(UINT8) * pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->fsfbProtclNum, + 0, pUnifyInfo->InputSize * pUnifyInfo->MaxNumPerCycle * protclTypeInfoStru->fsfbProtclNum); + /*- 涨Эݽṹ5ռRSSP*/ ptemProtclRcvDataStru[DSU_PROTCL_FSFB].proType = DSU_PROTCL_FSFB; } else { /* */ - retVal = 0; - return retVal; + retVal = 0u; /*-< úֵΪ0*/ + return retVal; /*-< غֵ*/ } - /*ʼյ֡Ӧ*/ + /*- ʼյ֡Ӧ*/ pUnifyInfo->GlobalVar->pRcvProtclAppStru = NewProtclAppToStru(pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->pRcvProtclAppStru) + if (NULL == pUnifyInfo->GlobalVar->pRcvProtclAppStru) /*-< Ƿʧ*/ { - retVal = 0; - return retVal; + retVal = 0u; /*-< úֵΪ0*/ + return retVal; /*-< غֵ*/ } - /*ʼ͵֡Ӧ*/ + /*- ʼ͵֡Ӧ*/ pUnifyInfo->GlobalVar->pSndProtclAppStru = NewProtclAppToStru(pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->pSndProtclAppStru) + if (NULL == pUnifyInfo->GlobalVar->pSndProtclAppStru) /*-< Ƿʧ*/ { - retVal = 0; - return retVal; + retVal = 0u; /*-< úֵΪ0*/ + return retVal; /*-< غֵ*/ } - for (tmpI = 0; tmpI < PROTCL_MGECFG_MAXCNT + 1; tmpI++) + for (tmpI = 0u; tmpI < PROTCL_MGECFG_MAXCNT + 1; tmpI++) /*-< Э±ǷСЭ*/ { /* ֹҰָ */ - protclSndCfgStru[tmpI].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * 0); - protclSndCfgStru[tmpI].DevDataCnt = 0; + protclSndCfgStru[tmpI].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * 0u); /*-< ЭӦñռ*/ + protclSndCfgStru[tmpI].DevDataCnt = 0u; /*-< 豸Ϊ0*/ } /* ݵʱ浵ݵĽṹռ */ - if (0 < protclTypeInfoStru->sfpProtclNum) + if (0u < protclTypeInfoStru->sfpProtclNum) /*-< SPFЭǷ0*/ { #ifdef USE_SFP - tmpVal = pUnifyInfo->GlobalVar->gpsfpUnitInfo->MaxNumLink * pUnifyInfo->MaxNumPerCycle; - protclSndCfgStru[DSU_PROTCL_SFP].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) *tmpVal); - if ((NULL == protclSndCfgStru[DSU_PROTCL_SFP].pProtclAppStru) || (NULL == ptemProtclRcvDataStru[DSU_PROTCL_SFP].pData)) - { - flag = 1; - } - else - { - /*Ϊķʱ洢ʼ*/ - CommonMemSet(protclSndCfgStru[DSU_PROTCL_SFP].pProtclAppStru, sizeof(PROTCL_APP_TO_STRU)* tmpVal, 0u, sizeof(PROTCL_APP_TO_STRU)* tmpVal); - - /*ʼ֡Ӧ*/ - for (i = 0; i < tmpVal; i++) - { - protclSndCfgStru[DSU_PROTCL_SFP].pProtclAppStru[i].pAppData = NewAppData(&protclSndCfgStru[DSU_PROTCL_SFP].pProtclAppStru[i].appDataMaxLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == protclSndCfgStru[DSU_PROTCL_SFP].pProtclAppStru[i].pAppData) - { - break; - } - } - if (i == tmpVal) - { - pUnifyInfo->GlobalVar->gpSfpRcvDataBuff = NewAppData(&pUnifyInfo->GlobalVar->gSfpRcvDataBuffLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->gpSfpRcvDataBuff) - { - flag = 1; - } - } - else - { - flag = 1; - } - - } + flag |= StPtclMgtSetRecvDataBuff(pUnifyInfo, pUnifyInfo->GlobalVar->gpsfpUnitInfo->MaxNumLink, protclSndCfgStru, ptemProtclRcvDataStru, DSU_PROTCL_SFP, &pUnifyInfo->GlobalVar->gpSfpRcvDataBuff, &pUnifyInfo->GlobalVar->gSfpRcvDataBuffLen); /*-< SFPݻ溯*/ #endif } - if (protclTypeInfoStru->redunProtclNum > 0) + if (protclTypeInfoStru->redunProtclNum > 0u) /*-< RPЭǷ0*/ { #ifdef USE_RP - tmpVal = pUnifyInfo->GlobalVar->gpRedunUnitInfo->MaxNumLink * pUnifyInfo->MaxNumPerCycle; - protclSndCfgStru[DSU_PROTCL_RP].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * tmpVal); - if ((NULL == protclSndCfgStru[DSU_PROTCL_RP].pProtclAppStru) || (NULL == ptemProtclRcvDataStru[DSU_PROTCL_RP].pData)) - { - flag = 1; - } - else - { - /*Ϊķʱ洢ʼ*/ - CommonMemSet(protclSndCfgStru[DSU_PROTCL_RP].pProtclAppStru, sizeof(PROTCL_APP_TO_STRU)* tmpVal, 0u, sizeof(PROTCL_APP_TO_STRU)* tmpVal); - - /*ʼ֡Ӧ*/ - for (i = 0; i < tmpVal; i++) - { - protclSndCfgStru[DSU_PROTCL_RP].pProtclAppStru[i].pAppData = NewAppData(&protclSndCfgStru[DSU_PROTCL_RP].pProtclAppStru[i].appDataMaxLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == protclSndCfgStru[DSU_PROTCL_RP].pProtclAppStru[i].pAppData) - { - break; - } - } - if (i == tmpVal) - { - pUnifyInfo->GlobalVar->gpRpRcvDataBuff = NewAppData(&pUnifyInfo->GlobalVar->gRpRcvDataBuffLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->gpRpRcvDataBuff) - { - flag = 1; - } - } - else - { - flag = 1; - } - - } + flag |= StPtclMgtSetRecvDataBuff(pUnifyInfo, pUnifyInfo->GlobalVar->gpRedunUnitInfo->MaxNumLink, protclSndCfgStru, ptemProtclRcvDataStru, DSU_PROTCL_RP, &pUnifyInfo->GlobalVar->gpRpRcvDataBuff, &pUnifyInfo->GlobalVar->gRpRcvDataBuffLen); /*-< RPݻ溯*/ #endif } - if (protclTypeInfoStru->rsrProtclNum > 0) + if (protclTypeInfoStru->rsrProtclNum > 0u) /*-< RSRЭǷ0*/ { #ifdef USE_RSR - tmpVal = pUnifyInfo->GlobalVar->gpRsrUnitInfo->MaxNumLink * pUnifyInfo->MaxNumPerCycle; - protclSndCfgStru[DSU_PROTCL_RSR].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * tmpVal); - if ((NULL == protclSndCfgStru[DSU_PROTCL_RSR].pProtclAppStru) || (NULL == ptemProtclRcvDataStru[DSU_PROTCL_RSR].pData)) - { - flag = 1; - } - else - { - /*Ϊķʱ洢ʼ*/ - CommonMemSet(protclSndCfgStru[DSU_PROTCL_RSR].pProtclAppStru, sizeof(PROTCL_APP_TO_STRU) * tmpVal, 0u, sizeof(PROTCL_APP_TO_STRU) * tmpVal); - - /*ʼ֡Ӧ*/ - for (i = 0; i < tmpVal; i++) - { - protclSndCfgStru[DSU_PROTCL_RSR].pProtclAppStru[i].pAppData = NewAppData(&protclSndCfgStru[DSU_PROTCL_RSR].pProtclAppStru[i].appDataMaxLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == protclSndCfgStru[DSU_PROTCL_RSR].pProtclAppStru[i].pAppData) - { - break; - } - } - if (i == tmpVal) - { - pUnifyInfo->GlobalVar->gpRsrRcvDataBuff = NewAppData(&pUnifyInfo->GlobalVar->gRsrRcvDataBuffLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->gpRsrRcvDataBuff) - { - flag = 1; - } - } - else - { - flag = 1; - } - - } + flag |= StPtclMgtSetRecvDataBuff(pUnifyInfo, pUnifyInfo->GlobalVar->gpRsrUnitInfo->MaxNumLink, protclSndCfgStru, ptemProtclRcvDataStru, DSU_PROTCL_RSR, &pUnifyInfo->GlobalVar->gpRsrRcvDataBuff, &pUnifyInfo->GlobalVar->gRsrRcvDataBuffLen); /*-< RSRݻ溯*/ #endif } - if (protclTypeInfoStru->rsspProtclNum > 0) + if (protclTypeInfoStru->rsspProtclNum > 0u) /*-< RSSPIЭǷ0*/ { #ifdef USE_RSSPI - tmpVal = pUnifyInfo->GlobalVar->gpRsspUnitInfo->MaxNumLink * pUnifyInfo->MaxNumPerCycle; - protclSndCfgStru[DSU_PROTCL_RSSP].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * tmpVal); - if ((NULL == protclSndCfgStru[DSU_PROTCL_RSSP].pProtclAppStru) || (NULL == ptemProtclRcvDataStru[DSU_PROTCL_RSSP].pData)) - { - flag = 1; - } - else - { - /*Ϊķʱ洢ʼ*/ - CommonMemSet(protclSndCfgStru[DSU_PROTCL_RSSP].pProtclAppStru, sizeof(PROTCL_APP_TO_STRU)* tmpVal, 0u, sizeof(PROTCL_APP_TO_STRU)* tmpVal); - - /*ʼ֡Ӧ*/ - for (i = 0; i < tmpVal; i++) - { - protclSndCfgStru[DSU_PROTCL_RSSP].pProtclAppStru[i].pAppData = NewAppData(&protclSndCfgStru[DSU_PROTCL_RSSP].pProtclAppStru[i].appDataMaxLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == protclSndCfgStru[DSU_PROTCL_RSSP].pProtclAppStru[i].pAppData) - { - break; - } - } - if (i == tmpVal) - { - pUnifyInfo->GlobalVar->gpRsspRcvDataBuff = NewAppData(&pUnifyInfo->GlobalVar->gRsspRcvDataBuffLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->gpRsspRcvDataBuff) - { - flag = 1; - } - } - else - { - flag = 1; - } - - } + flag |= StPtclMgtSetRecvDataBuff(pUnifyInfo, pUnifyInfo->GlobalVar->gpRsspUnitInfo->MaxNumLink, protclSndCfgStru, ptemProtclRcvDataStru, DSU_PROTCL_RSSP, &pUnifyInfo->GlobalVar->gpRsspRcvDataBuff, &pUnifyInfo->GlobalVar->gRsspRcvDataBuffLen); /*-< RSSPIݻ溯*/ #endif } - if (protclTypeInfoStru->rssp2ProtclNum > 0) + if (protclTypeInfoStru->rssp2ProtclNum > 0u) /*-< RSSPIIЭǷ0*/ { #ifdef USE_RSSPII - tmpVal = pUnifyInfo->GlobalVar->gpRssp2UnitInfo->MaxNumLink * pUnifyInfo->MaxNumPerCycle; - Prtcl_RSSP2_CheckInit(&pUnifyInfo->GlobalVar->Rssp2PrtclHead); + Prtcl_RSSP2_CheckInit(&pUnifyInfo->GlobalVar->Rssp2PrtclHead); /*-< RSSPIIʼ*/ /* add 20161017 xb */ - for (tmpI = 0; tmpI < PRTCL_RQ_NUM; tmpI++) + for (tmpI = 0u; tmpI < PRTCL_RQ_NUM; tmpI++) /*-< RSSPII±ǷС*/ { - rslt = (UINT8)QUEUE_RING_Init(&Prtcl_RQ[tmpI].RingQue, PRTCL_RQ_SIZE); - if (CM_TRUE != rslt) + rslt = (UINT8)QUEUE_RING_Init(&Prtcl_RQ[tmpI].RingQue, PRTCL_RQ_SIZE); /*-< RSSPIIʼк*/ + if (CM_TRUE != rslt) /*-< úǷʧ*/ { - flag = 1; - break; + flag |= 1u; /*-< ˳־Ϊ˳*/ + break; /*-< ˳*/ } + /*- öֵ*/ Prtcl_RQ[tmpI].RingQue.m_bIsInited = CM_TRUE; Prtcl_RQ[tmpI].RingQue.m_IfCoverQueueFull = CM_TRUE; Prtcl_RQ[tmpI].RingQue.m_QueueState = QUEUE_RING_STATE_Empty; } - protclSndCfgStru[DSU_PROTCL_RSSP2].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * tmpVal); - if ((NULL == protclSndCfgStru[DSU_PROTCL_RSSP2].pProtclAppStru) || (NULL == ptemProtclRcvDataStru[DSU_PROTCL_RSSP2].pData)) - { - flag = 1; - } - else - { - /*Ϊķʱ洢ʼ*/ - CommonMemSet(protclSndCfgStru[DSU_PROTCL_RSSP2].pProtclAppStru, sizeof(PROTCL_APP_TO_STRU)* tmpVal, 0u, sizeof(PROTCL_APP_TO_STRU)* tmpVal); - - /*ʼ֡Ӧ*/ - for (i = 0; i < tmpVal; i++) - { - protclSndCfgStru[DSU_PROTCL_RSSP2].pProtclAppStru[i].pAppData = NewAppData(&protclSndCfgStru[DSU_PROTCL_RSSP2].pProtclAppStru[i].appDataMaxLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == protclSndCfgStru[DSU_PROTCL_RSSP2].pProtclAppStru[i].pAppData) - { - break; - } - } - if (i == tmpVal) - { - pUnifyInfo->GlobalVar->gpRssp2RcvDataBuff = NewAppData(&pUnifyInfo->GlobalVar->gRssp2RcvDataBuffLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->gpRssp2RcvDataBuff) - { - flag = 1; - } - } - else - { - flag = 1; - } - - } + flag |= StPtclMgtSetRecvDataBuff(pUnifyInfo, pUnifyInfo->GlobalVar->gpRssp2UnitInfo->MaxNumLink, protclSndCfgStru, ptemProtclRcvDataStru, DSU_PROTCL_RSSP2, &pUnifyInfo->GlobalVar->gpRssp2RcvDataBuff, &pUnifyInfo->GlobalVar->gRssp2RcvDataBuffLen); /*-< RSSPIIݻ溯*/ #endif } - if (protclTypeInfoStru->fsfbProtclNum > 0) + if (protclTypeInfoStru->fsfbProtclNum > 0u) /*-< FSFBЭǷ0*/ { #ifdef USE_FSFB - tmpVal = pUnifyInfo->GlobalVar->gpFsfbUnitInfo->MaxNumLink * pUnifyInfo->MaxNumPerCycle; - protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * tmpVal); - if ((NULL == protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru) || (NULL == ptemProtclRcvDataStru[DSU_PROTCL_FSFB].pData)) - { - flag = 1; - } - else - { - /*Ϊķʱ洢ʼ*/ - CommonMemSet(protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru, sizeof(PROTCL_APP_TO_STRU)* tmpVal, 0u, sizeof(PROTCL_APP_TO_STRU)* tmpVal); - - - /*ʼ֡Ӧ*/ - for (i = 0; i < tmpVal; i++) - { - protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru[i].pAppData = NewAppData(&protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru[i].appDataMaxLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru[i].pAppData) - { - break; - } - } - if (i == tmpVal) - { - pUnifyInfo->GlobalVar->gpFsfbRcvDataBuff = NewAppData(&pUnifyInfo->GlobalVar->gFsfbRcvDataBuffLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); - if (NULL == pUnifyInfo->GlobalVar->gpFsfbRcvDataBuff) - { - flag = 1; - } - } - else - { - flag = 1; - } - - } + flag |= StPtclMgtSetRecvDataBuff(pUnifyInfo, pUnifyInfo->GlobalVar->gpFsfbUnitInfo->MaxNumLink, protclSndCfgStru, ptemProtclRcvDataStru, DSU_PROTCL_FSFB, &pUnifyInfo->GlobalVar->gpFsfbRcvDataBuff, &pUnifyInfo->GlobalVar->gFsfbRcvDataBuffLen); /*-< FSFBݻ溯*/ #endif } - if (1 == flag) + if (0u != flag) /*-< ˳־Ƿ˳*/ { - retVal = 0; + retVal = 0u; /*-< úֵΪ0*/ } - return retVal; + return retVal; /*-< غֵ*/ } /* @@ -642,12 +368,12 @@ UINT8 SendAppData(ProtclConfigInfoStru* pUnifyInfo) UINT16 lnkDataLen = 0; UINT16 recordDataLen = 0; - UINT8 tmpDevDataCnt = 0; + UINT32 tmpDevDataCnt = 0; UINT8 tmpI = 0; F_SND tmpSndF; UINT8 tmpSign = 0; PROTCL_SND_CFG_STRU* protclSndCfgStru = NULL; - UINT8* pProtclNumBuff = NULL; /*Э·*/ + UINT16* pProtclNumBuff = NULL; /*Э·*/ if ((NULL != pUnifyInfo) && (NULL != pUnifyInfo->GlobalVar) && (NULL != pUnifyInfo->GlobalVar->pSndProtclAppStru) && (NULL != pUnifyInfo->GlobalVar->protclSndCfgStru) && (NULL != pUnifyInfo->GlobalVar->pProtclNumBuff)) { @@ -759,53 +485,48 @@ UINT8 SendAppData(ProtclConfigInfoStru* pUnifyInfo) return ret; } - -/* -* ܣЭ -* -* ProtclConfigInfoStru * pUnifyInfo ͳһṹ -* ֵ -* 1ݳɹ -* 0ʧ -* 2:崻 -*/ +/** + * @brief ReceiveAppData Э + * @param pUnifyInfo ͳһṹ ȡֵΧ:οṹProtclConfigInfoStru + * @return 0:ʧ 1:ɹ + */ UINT8 ReceiveAppData(ProtclConfigInfoStru* pUnifyInfo) { - UINT8 ret = 0; - UINT8 flag = 0; - UINT8 lnkState = 0; - UINT8 i = 0; /* ѭʹ */ - UINT16 locDevName = 0; - UINT8 DevType = 0; - UINT8 DevId = 0; - UINT8 LogId = 0; - PROTCL_RCV_DATA_TYPE *ptemProtclRcvDataStru = NULL; - DSU_PROTCL_TYPE_STRU *protclTypeInfoStru = NULL; - + /*- ֲ*/ + UINT8 ret = 0u; /*-< úֵΪ0*/ + UINT8 flag = 0u; + UINT8 lnkState = 0u; + UINT8 i = 0u; /* ѭʹ */ + UINT16 locDevName = 0u; + UINT8 DevType = 0u; + UINT8 DevId = 0u; + UINT8 LogId = 0u; + DSU_PROTCL_TYPE_STRU* protclTypeInfoStru = NULL; + #ifdef USE_SFP - struc_Unify_Info* gpsfpUnitInfo = NULL; /*SFPЭṹ*/ + struc_Unify_Info* gpsfpUnitInfo = NULL; /*SFPЭṹ*/ #endif #ifdef USE_RP - RP_INFO_STRU* gpRedunUnitInfo = NULL; /*Эṹ*/ + RP_INFO_STRU* gpRedunUnitInfo = NULL; /*Эṹ*/ #endif #ifdef USE_RSR - RSR_INFO_STRU* gpRsrUnitInfo = NULL; /*RSRЭṹ*/ + RSR_INFO_STRU* gpRsrUnitInfo = NULL; /*RSRЭṹ*/ #endif #ifdef USE_RSSPI - RSSP_INFO_STRU* gpRsspUnitInfo = NULL; /*RSSPЭṹ*/ + RSSP_INFO_STRU* gpRsspUnitInfo = NULL; /*RSSPЭṹ*/ #endif #ifdef USE_RSSPII - RSSP2_INFO_STRU* gpRssp2UnitInfo = NULL; /*RSSP2Эṹ*/ + RSSP2_INFO_STRU* gpRssp2UnitInfo = NULL; /*RSSP2Эṹ*/ #endif #ifdef USE_FSFB - FSFB_INFO_STRU* gpFsfbUnitInfo = NULL; /*FSFBЭṹ*/ + FSFB_INFO_STRU* gpFsfbUnitInfo = NULL; /*FSFBЭṹ*/ #endif - if ((NULL!= pUnifyInfo)&&(NULL != pUnifyInfo->GlobalVar)) + if ((NULL != pUnifyInfo) && (NULL != pUnifyInfo->GlobalVar)) /*-< Ƿǿ*/ { - ptemProtclRcvDataStru = pUnifyInfo->GlobalVar->RcvData; /*ʱЭݵĽṹ*/ - protclTypeInfoStru = &pUnifyInfo->GlobalVar->protclTypeInfoStru; /*Эͨ*/ + protclTypeInfoStru = &pUnifyInfo->GlobalVar->protclTypeInfoStru; /*-< õЭͨ*/ + /*- õЭṹ*/ #ifdef USE_SFP gpsfpUnitInfo = pUnifyInfo->GlobalVar->gpsfpUnitInfo; /*SFPЭṹ*/ #endif @@ -825,293 +546,198 @@ UINT8 ReceiveAppData(ProtclConfigInfoStru* pUnifyInfo) gpFsfbUnitInfo = pUnifyInfo->GlobalVar->gpFsfbUnitInfo; /*FSFBЭṹ*/ #endif - QueueClear(&pUnifyInfo->DataToApp); - if (protclTypeInfoStru->sfpProtclNum > 0) + QueueClear(&pUnifyInfo->DataToApp); /*-< ݵӦö*/ + if (protclTypeInfoStru->sfpProtclNum > 0u) /*-< SFPЭǷ0*/ { #ifdef USE_SFP - QueueClear(&gpsfpUnitInfo->OutnetQueueA); - QueueClear(&gpsfpUnitInfo->OutnetQueueB); + QueueClear(&gpsfpUnitInfo->OutnetQueueA); /*-< SFPЭ*/ + QueueClear(&gpsfpUnitInfo->OutnetQueueB); /*-< SFPЭ*/ #endif } - if (protclTypeInfoStru->redunProtclNum > 0) + if (protclTypeInfoStru->redunProtclNum > 0u) /*-< RPЭǷ0*/ { #ifdef USE_RP - QueueClear(&gpRedunUnitInfo->OutnetQueueA); - QueueClear(&gpRedunUnitInfo->OutnetQueueB); + QueueClear(&gpRedunUnitInfo->OutnetQueueA); /*-< RPЭ*/ + QueueClear(&gpRedunUnitInfo->OutnetQueueB); /*-< SFPЭ*/ #endif } - if (protclTypeInfoStru->rsrProtclNum > 0) + if (protclTypeInfoStru->rsrProtclNum > 0u) /*-< RSRЭǷ0*/ { #ifdef USE_RSR - QueueClear(&gpRsrUnitInfo->OutnetQueueA); - QueueClear(&gpRsrUnitInfo->OutnetQueueB); + QueueClear(&gpRsrUnitInfo->OutnetQueueA); /*-< RSRЭ*/ + QueueClear(&gpRsrUnitInfo->OutnetQueueB); /*-< SFPЭ*/ #endif } - if (protclTypeInfoStru->rsspProtclNum > 0) + if (protclTypeInfoStru->rsspProtclNum > 0u) /*-< RSSPIЭǷ0*/ { #ifdef USE_RSSPI - QueueClear(&gpRsspUnitInfo->OutnetQueueA); - QueueClear(&gpRsspUnitInfo->OutnetQueueB); + QueueClear(&gpRsspUnitInfo->OutnetQueueA); /*-< RSSPIЭ*/ + QueueClear(&gpRsspUnitInfo->OutnetQueueB); /*-< SFPЭ*/ #endif } - if (protclTypeInfoStru->rssp2ProtclNum > 0) + if (protclTypeInfoStru->rssp2ProtclNum > 0u) /*-< RSSPIIЭǷ0*/ { #ifdef USE_RSSPII - QueueClear(&gpRssp2UnitInfo->OutnetQueueA); - QueueClear(&gpRssp2UnitInfo->OutnetQueueB); + QueueClear(&gpRssp2UnitInfo->OutnetQueueA); /*-< RSSPIIЭ*/ + QueueClear(&gpRssp2UnitInfo->OutnetQueueB); /*-< SFPЭ*/ #endif } - TypeIdToDevName(pUnifyInfo->LocalType, pUnifyInfo->LocalID, &locDevName); + TypeIdToDevName(pUnifyInfo->LocalType, pUnifyInfo->LocalID, &locDevName); /*-< IDת豸*/ - /* ȡ */ - ret = readQueueDataToApp(&pUnifyInfo->OutnetQueueA, 1, locDevName, ptemProtclRcvDataStru, pUnifyInfo); - if (0 == ret) + ret = StPtclMgtSetOutnetQue(pUnifyInfo, locDevName, 1u); /*-< к*/ + if (0u == ret) /*-< úǷʧ*/ { - return ret; + return ret; /*-< غֵ*/ } - for (i = 1; i < PROTCL_MGECFG_MAXCNT + 1; i++) + ret = StPtclMgtSetOutnetQue(pUnifyInfo, locDevName, 2u); /*-< к*/ + if (0u == ret) /*-< úǷʧ*/ { - if (ptemProtclRcvDataStru[i].rcvDataLen > 0) - { - switch (ptemProtclRcvDataStru[i].proType) - { - case DSU_PROTCL_SFP: -#ifdef USE_SFP - /* SFPЭĺݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpsfpUnitInfo->OutnetQueueA); -#endif - break; - case DSU_PROTCL_RP: -#ifdef USE_RP - /* RPЭĺݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRedunUnitInfo->OutnetQueueA); -#endif - break; - case DSU_PROTCL_RSR: -#ifdef USE_RSR - /* RSRЭĺݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRsrUnitInfo->OutnetQueueA); -#endif - break; - case DSU_PROTCL_RSSP: -#ifdef USE_RSSPI - /* RSSPЭĺݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRsspUnitInfo->OutnetQueueA); -#endif - break; - case DSU_PROTCL_RSSP2: -#ifdef USE_RSSPII - /* RSSP2Эĺݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRssp2UnitInfo->OutnetQueueA); -#endif - break; - case DSU_PROTCL_FSFB: -#ifdef USE_FSFB - /* FSFBЭĺݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpFsfbUnitInfo->OutnetQueueR); -#endif - break; - default: - break; - } - } + return ret; /*-< غֵ*/ } - /* ȡ */ - ret = readQueueDataToApp(&pUnifyInfo->OutnetQueueB, 2, locDevName, ptemProtclRcvDataStru, pUnifyInfo); - if (0 == ret) - { - return ret; - } - /* TO BE DONE switch ŲreadQueueDataToApp */ - for (i = 1; i < PROTCL_MGECFG_MAXCNT + 1; i++) - { - if (ptemProtclRcvDataStru[i].rcvDataLen > 0) - { - switch (ptemProtclRcvDataStru[i].proType) - { - case DSU_PROTCL_SFP: -#ifdef USE_SFP - /* SFPЭݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpsfpUnitInfo->OutnetQueueB); -#endif - break; - case DSU_PROTCL_RP: -#ifdef USE_RP - /* RPЭݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRedunUnitInfo->OutnetQueueB); -#endif - break; - case DSU_PROTCL_RSR: -#ifdef USE_RSR - /* RSRЭݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRsrUnitInfo->OutnetQueueB); -#endif - break; - case DSU_PROTCL_RSSP: -#ifdef USE_RSSPI - /* RSSPЭݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRsspUnitInfo->OutnetQueueB); -#endif - break; - case DSU_PROTCL_RSSP2: -#ifdef USE_RSSPII - /* RSSP2Эݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpRssp2UnitInfo->OutnetQueueB); -#endif - break; - case DSU_PROTCL_FSFB: -#ifdef USE_FSFB - /* RSSP2Эݵ֡ʽ */ - SetDataToQue(ptemProtclRcvDataStru[i].rcvDataLen, ptemProtclRcvDataStru[i].pData, &gpFsfbUnitInfo->OutnetQueueB); -#endif - break; - default: - break; - } - } - } - if (protclTypeInfoStru->sfpProtclNum > 0) + + if (protclTypeInfoStru->sfpProtclNum > 0u) /*-< SFPЭǷ0*/ { #ifdef USE_SFP /* SFPЭ */ - gpsfpUnitInfo->RadamSN = *gpsfpUnitInfo->CycleNum; + gpsfpUnitInfo->RadamSN = *gpsfpUnitInfo->CycleNum; /*-< SFPõ*/ #ifdef CI_TASKLOCK taskLock(); - ret = ProtclReceive(gpsfpUnitInfo); + ret = ProtclReceive(gpsfpUnitInfo); /*-< SFP뺯*/ taskUnlock(); #else - ret = ProtclReceive(gpsfpUnitInfo); + ret = ProtclReceive(gpsfpUnitInfo); /*-< SFP뺯*/ #endif - if (ret == 1) + if (ret == 1u) /*-< úǷɹ*/ { - SfpRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); + SfpRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); /*-< SFPݺ*/ } else { - flag = 1; + flag = 1u; /*-< ˳*/ } #endif } - if (protclTypeInfoStru->redunProtclNum > 0) + if (protclTypeInfoStru->redunProtclNum > 0u) /*-< RPЭǷ0*/ { #ifdef USE_RP /* RPЭ */ - ret = RpReceive(gpRedunUnitInfo); - if (ret == 1) + ret = RpReceive(gpRedunUnitInfo); /*-< RP뺯*/ + if (ret == 1u) /*-< úǷɹ*/ { - RpRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); + RpRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); /*-< RPݺ*/ } else { - flag = 1; + flag = 1u; /*-< ˳*/ } #endif } - if (protclTypeInfoStru->rsrProtclNum > 0) + if (protclTypeInfoStru->rsrProtclNum > 0u) /*-< RSRЭǷ0*/ { #ifdef USE_RSR /* RSRЭ */ - ret = RsrReceive(gpRsrUnitInfo); - if (ret == 1) + ret = RsrReceive(gpRsrUnitInfo); /*-< RSR뺯*/ + if (ret == 1u) /*-< úǷɹ*/ { - ret = RsrRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); + ret = RsrRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); /*-< RSRݺ*/ } else { - flag = 1; + flag = 1u; /*-< ˳*/ } #endif } - if (protclTypeInfoStru->rsspProtclNum > 0) + if (protclTypeInfoStru->rsspProtclNum > 0u) /*-< RSSPIЭǷ0*/ { #ifdef USE_RSSPI /* RSSPЭ */ - ret = Rssp2Receive(gpRsspUnitInfo); - if (ret == 1) + ret = Rssp2Receive(gpRsspUnitInfo); /*-< RSSPI뺯*/ + if (ret == 1u) /*-< úǷɹ*/ { - RsspRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); + RsspRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); /*-< RSSPIݺ*/ } else { - flag = 1; + flag = 1u; /*-< ˳*/ } #endif } - if (protclTypeInfoStru->rssp2ProtclNum > 0) + if (protclTypeInfoStru->rssp2ProtclNum > 0u) /*-< RSSPIIЭǷ0*/ { #ifdef USE_RSSPII /* RSSP2Э */ - ret = RsspIIReceive(gpRssp2UnitInfo); - if (ret == 1) + ret = RsspIIReceive(gpRssp2UnitInfo); /*-< RSSPII뺯*/ + if (ret == 1u) /*-< úǷɹ*/ { - Rssp2RcvData(&pUnifyInfo->DataToApp, pUnifyInfo); + Rssp2RcvData(&pUnifyInfo->DataToApp, pUnifyInfo); /*-< RSSPIIݺ*/ } else { - flag = 1; + flag = 1u; /*-< ˳*/ } #endif } #ifdef USE_RSSPII /* ζ */ - for (i = 0; i < PRTCL_RQ_NUM; i++) + for (i = 0u; i < PRTCL_RQ_NUM; i++) /*-< RSSPII±ǷС*/ { - if (Prtcl_RQ[i].bIsInit == CM_TRUE) + if (Prtcl_RQ[i].bIsInit == CM_TRUE) /*-< RSSPIIǷʼ*/ { + /*- RSSPIIò*/ DevType = (UINT8)(Prtcl_RQ[i].SourceID / 256 / 256 / 256); DevId = (UINT8)(Prtcl_RQ[i].SourceID / 256 / 256 % 256); LogId = (UINT8)(Prtcl_RQ[i].SourceID % 256); - lnkState = GetLnkStatus(DevType, DevId, (UINT16)LogId, pUnifyInfo); - if (lnkState == 0) + lnkState = GetLnkStatus(DevType, DevId, (UINT16)LogId, pUnifyInfo); /*-< RSSPIIúõ·״̬*/ + if (lnkState == 0u) /*-< RSSPII·״̬ǷΪ0*/ { - Prtcl_Manage_DelRQ(Prtcl_RQ[i].SourceID); + Prtcl_Manage_DelRQ(Prtcl_RQ[i].SourceID); /*-< RSSPIIɾк*/ } } } #endif - if (protclTypeInfoStru->fsfbProtclNum > 0) + if (protclTypeInfoStru->fsfbProtclNum > 0u) /*-< FSFBЭǷ0*/ { #ifdef USE_FSFB - if ((NULL != pUnifyInfo->CycleNum) && (0u == ((*pUnifyInfo->CycleNum) % 2)))/*FSFBЭΪ600ms*/ + if ((NULL != pUnifyInfo->CycleNum) && (0u == ((*pUnifyInfo->CycleNum) % 2u))) /*-< FSFBЭΪ600ms*/ { - ret = FsfbProtclReceiveData(gpFsfbUnitInfo); /*FSFBЭ*/ - if (ret == 1) + ret = FsfbProtclReceiveData(gpFsfbUnitInfo); /*-< FSFB뺯*/ + if (ret == 1u) /*-< úǷɹ*/ { - FsfbRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); + FsfbRcvData(&pUnifyInfo->DataToApp, pUnifyInfo); /*-< FSFBݺ*/ } else { - flag = 1; + flag = 1u; /*-< ˳*/ } /*ͨ*/ - QueueClear(&gpFsfbUnitInfo->OutnetQueueR); - QueueClear(&gpFsfbUnitInfo->OutnetQueueB); + QueueClear(&gpFsfbUnitInfo->OutnetQueueR); /*-< */ + QueueClear(&gpFsfbUnitInfo->OutnetQueueB); /*-< */ } #endif } - if (flag == 1) + if (flag == 1u) /*-< Ƿ˳*/ { - ret = 0; + ret = 0u; /*-< úֵΪ0*/ } } - return ret; + return ret; /*-< غֵ*/ } /* @@ -1224,78 +850,93 @@ UINT8 DelLnkFunc(UINT8 destType, UINT8 destId, UINT16 logId, ProtclConfigInfoStr return retVal; } - -/* -* ܣˢ·״̬ -* -* -* UINT8* pLnkStatusData Э״̬ -* ֵ -* 0ˢ·ʧ -* 1ˢ·ɹ -*/ +/** + * @brief ReFresh ʹ·ˢ·״̬ + * @param pLnkStatusData · ȡֵΧ:ֽ + * @param pUnifyInfo ṹ ȡֵΧ:οṹ:ProtclConfigInfoStru + * @return 0:ʧ 1:ɹ + */ UINT8 ReFresh(UINT8* pLnkStatusData, ProtclConfigInfoStru* pUnifyInfo) { - UINT8 retVal = 0; - UINT16 inLnkLen = 0; - UINT16 evrLnkLen = 0; - UINT16 index = 0;/* ƫ */ - UINT8 flag = 0; + /*- ֲ*/ + UINT8 retVal = 0U; /*-< úֵΪʧ*/ + UINT16 inLnkLen = 0U; /*·ܳ*/ + UINT16 evrLnkLen = 0U; /*·*/ + UINT16 index = 0U; /*ƫ*/ + UINT8 flag = 0U; /*-< ·Ƿ־Ϊ*/ + UINT8 ftnRtn = 0U; /*úֵ*/ - UINT8 i = 0;/* ѭʹ */ - F_REFRESHLNK tmpReFreshLnk; + UINT8 i = 0U; /*ѭʹ*/ + F_REFRESHLNK tmpReFreshLnk = NULL; /*ˢָ*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ - inLnkLen = ShortFromChar(&pLnkStatusData[0]); - for (i = 1; i < PROTCL_MGECFG_MAXCNT + 1; i++) + if ((NULL != pLnkStatusData) && (NULL != pUnifyInfo) && (NULL != pUnifyInfo->VarArray)) /*-< Ƿǿ*/ { - evrLnkLen = ShortFromChar(&pLnkStatusData[2 + index]); - index += 2; - if (evrLnkLen > 0) + inLnkLen = ShortFromChar(&pLnkStatusData[0]); /*-< õ·*/ + + ftnRtn = CommonMemCpy(&pUnifyInfo->VarArray[0], pUnifyInfo->VarArraySize, &pLnkStatusData[0], 2u + inLnkLen); /*-< øƺ·*/ + if (1u == ftnRtn) /*-< úǷɹ*/ { - if (evrLnkLen + 2 <= inLnkLen) + for (i = 1U; i < PROTCL_MGECFG_MAXCNT + 1U; i++) /*-< Э±ǷСЭ*/ { - /* þЭˢ· */ - tmpReFreshLnk = protclCfgStruBuff[i].fReFreshLnk; - if (NULL != tmpReFreshLnk) + deepPro = 0u; /*-< ô־Ϊ*/ + + evrLnkLen = ShortFromChar(&pLnkStatusData[2 + index]); /*-< õǰЭ±Э·ݳ*/ + index += 2U; /*-< ·±2*/ + if (evrLnkLen > 0U) /*-< ǰЭ±ЭǷ·*/ { - if (DSU_PROTCL_FSFB == i) /*FSFBˢ2ֵ*/ + if (evrLnkLen + 2U <= inLnkLen) /*-< ǰЭ±Э·ݳǷȷ*/ { - retVal = tmpReFreshLnk(evrLnkLen, &pLnkStatusData[index], pUnifyInfo); + deepPro = 1u; /*-< ô־Ϊ*/ } - else /*FSFB*/ + else { - retVal = tmpReFreshLnk(evrLnkLen, &pLnkStatusData[2 + index], pUnifyInfo); + flag = 1U; /*-< ·Ƿ־Ϊ*/ + break; /*-< ˳*/ } } - else /*޴Э*/ + else { - retVal = 1u; + retVal = 1U; /*-< úֵΪɹ*/ + } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + /* þЭˢ· */ + tmpReFreshLnk = protclCfgStruBuff[i].fReFreshLnk; /*-< õǰЭ±Эˢ*/ + if (NULL != tmpReFreshLnk) /*-< ǰЭ±ЭˢǷǿ*/ + { + if (DSU_PROTCL_FSFB == i) /*-< ǰЭ±ЭǷFSFB(ˢ2ֵ)*/ + { + retVal = tmpReFreshLnk(evrLnkLen, &pLnkStatusData[index], pUnifyInfo); /*-< õǰЭ±Эˢ*/ + } + else /*FSFB*/ + { + retVal = tmpReFreshLnk(evrLnkLen, &pLnkStatusData[2 + index], pUnifyInfo); /*-< õǰЭ±Эˢ*/ + } + } + else /*޴Э*/ + { + retVal = 1U; /*-< úֵΪɹ*/ + } + index += evrLnkLen; /*-< ·±ǰЭ±Э·*/ + } + + inLnkLen = inLnkLen - evrLnkLen - 2U; /*-< ʣ·ݳ*/ + if (retVal == 0U) /*-< ֵǷΪʧ*/ + { + flag = 1U; /*-< ·Ƿ־Ϊ*/ } - index += evrLnkLen; - } - else - { - flag = 1; - break; } - } - else - { - retVal = 1; - } - inLnkLen = inLnkLen - evrLnkLen - 2; - if (retVal == 0) - { - flag = 1; + if (flag == 1U) /*-< ·Ƿ־ǷΪ*/ + { + retVal = 0U; /*-< úֵΪɹ*/ + } } } - if (flag == 1) - { - retVal = 0; - } - return retVal; + return retVal; /*-< غֵ*/ } @@ -1385,7 +1026,7 @@ UINT8 SendTcpCtrl(UINT16* pTcpCtrlDataLen, UINT8* pTcpCtrlData, ProtclConfigInfo * ȫֱ : * ֵ : ɹ,Э;ʧܷ0 */ -UINT8 InitGetCfgInfo(UINT8* pFileName, UINT32 inDataLen, UINT8 inData[], UINT8* pEvenPrtclNumBuff, ProtclConfigInfoStru* pUnifyInfo) +UINT8 InitGetCfgInfo(UINT8* pFileName, UINT32 inDataLen, UINT8 inData[], UINT16* pEvenPrtclNumBuff, ProtclConfigInfoStru* pUnifyInfo) { UINT8 ret = 0; UINT16 locDevName = 0; @@ -1562,7 +1203,7 @@ static UINT8 InitProtclInfoStru(ProtclConfigInfoStru* pUnifyInfo, UINT16 maxLnkN * ֵ : ɹ1,ʧܷ0 *******************************************************************************************/ -static UINT8 InitSfpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo) +static UINT8 InitSfpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo) { UINT8 ret = 0; @@ -1587,7 +1228,7 @@ static UINT8 InitSfpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[] gpsfpUnitInfo->TimeCounter = pUnifyInfo->CycleNum; gpsfpUnitInfo->LocalID = pUnifyInfo->LocalID; /* 豸ID*/ gpsfpUnitInfo->LocalType = pUnifyInfo->LocalType; /* 豸type*/ - gpsfpUnitInfo->MaxNumLink = typeNum; /* ͨŵĶ*/ + gpsfpUnitInfo->MaxNumLink = (UINT8)typeNum; /* ͨŵĶ*/ gpsfpUnitInfo->MaxNumPerCycle = pUnifyInfo->MaxNumPerCycle; /* һÿЧ*/ gpsfpUnitInfo->InputSize = pUnifyInfo->InputSize; /* һ֡Ӧݳ*/ gpsfpUnitInfo->OutputSize = pUnifyInfo->OutputSize; /* һ֡Ӧݳ*/ @@ -1620,68 +1261,68 @@ static UINT8 InitSfpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[] return ret; } - -/****************************************************************************************** -* : ʼRpЭṹ -1. ̬RPЭṹռ䣬гʼ -* :UINT8 typeNum 豸ͨʹRPЭĸ - -* : -* ȫֱ : -* ֵ : ɹ1,ʧܷ0 -*******************************************************************************************/ -static UINT8 InitRpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo) +/** + * @brief InitRpProtclStru ʼRP + * @param fileName FSļ ȡֵΧ:ֽ + * @param inDataLen FSݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData FS ȡֵΧ:ֽ + * @param typeNum · ȡֵΧ:0x00-0xFF + * @param pUnifyInfo · ȡֵΧ:οṹ:ProtclConfigInfoStru + * @return 0:ʧ 1:ɹ + */ +static UINT8 InitRpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo) { - UINT8 ret = 0; + UINT8 ret = 0U; /*-< úֵΪʧ*/ -#ifdef USE_RP - UINT32* curDevRecordLen = pUnifyInfo->GlobalVar->curDevRecordLen; - RP_INFO_STRU* gpRedunUnitInfo = NULL; /*Эṹ*/ +#ifdef USE_RP /*ǷʹRP꿪*/ + UINT32* curDevRecordLen = pUnifyInfo->GlobalVar->curDevRecordLen; /*õЭ־*/ + RP_INFO_STRU* gpRedunUnitInfo = NULL; /*RPʵ*/ - if (typeNum != 0) + if (0U != typeNum) /*-< ·Ƿ񲻵0*/ { - if (gpRedunUnitInfo == NULL) + if (gpRedunUnitInfo == NULL) /*-< RPʵǷΪ*/ { - gpRedunUnitInfo = (RP_INFO_STRU*)malloc(sizeof(RP_INFO_STRU)); + gpRedunUnitInfo = (RP_INFO_STRU*)malloc(sizeof(RP_INFO_STRU)); /*-< RPʵռ*/ } - if (gpRedunUnitInfo != NULL) + if (gpRedunUnitInfo != NULL) /*-< RPʵǷǿ*/ { pUnifyInfo->GlobalVar->gpRedunUnitInfo = gpRedunUnitInfo; /*Эṹ*/ - CommonMemSet(gpRedunUnitInfo, sizeof(RP_INFO_STRU), 0, sizeof(RP_INFO_STRU)); + (void)CommonMemSet(gpRedunUnitInfo, sizeof(RP_INFO_STRU), 0U, sizeof(RP_INFO_STRU)); /* Эʼ */ /* ʼֵ趨 */ - gpRedunUnitInfo->LocalID = pUnifyInfo->LocalID; /* 豸ID*/ - gpRedunUnitInfo->LocalType = pUnifyInfo->LocalType; /* 豸type*/ - gpRedunUnitInfo->MaxNumLink = typeNum; /* ͨŵĶ*/ - gpRedunUnitInfo->MaxNumPerCycle = pUnifyInfo->MaxNumPerCycle; /* һÿЧ*/ - gpRedunUnitInfo->InputSize = pUnifyInfo->InputSize; /* һ֡Ӧݳ*/ - gpRedunUnitInfo->OutputSize = pUnifyInfo->OutputSize; /* 㷢һ֡Ӧݳ*/ - gpRedunUnitInfo->RecordArraySize = (UINT16)curDevRecordLen[1]; /* ¼С*/ - gpRedunUnitInfo->OutnetQueueSize = typeNum * (pUnifyInfo->InputSize + 23) * 3 * 2 + 100; + gpRedunUnitInfo->LocalID = pUnifyInfo->LocalID; /*-< ʵIDֵRPʵID*/ + gpRedunUnitInfo->LocalType = pUnifyInfo->LocalType; /*-< ʵ͸ֵRPʵ*/ + gpRedunUnitInfo->MaxNumLink = (UINT8)typeNum; /*-< ʵ·ֵRPʵ·*/ + gpRedunUnitInfo->MaxNumPerCycle = pUnifyInfo->MaxNumPerCycle; /*-< ʵÿֵRPʵÿ*/ + gpRedunUnitInfo->InputSize = pUnifyInfo->InputSize; /*-< ʵӦóȸֵRPʵӦó*/ + gpRedunUnitInfo->OutputSize = pUnifyInfo->OutputSize; /*-< ʵӦóȸֵRPʵӦó*/ + gpRedunUnitInfo->RecordArraySize = (UINT16)curDevRecordLen[1]; /*-< ʵ־ȸֵRPʵ־*/ + gpRedunUnitInfo->OutnetQueueSize = typeNum * (pUnifyInfo->InputSize + 23U) * 3U * 2U + 100U; /*-< ʵӦøЭгȸֵRPʵӦøЭг*/ + gpRedunUnitInfo->interfaceType = pUnifyInfo->rpInterfaceType; /*-< ýӿ*/ - ret = RpInit(fileName, gpRedunUnitInfo); + ret = RpInit(fileName, gpRedunUnitInfo); /*-< óʼRP,ֵֵ*/ - if (ret != 1) + if (ret != 1U) /*-< ֵǷdzɹ*/ { - return ret; + return ret; /*-< غֵ*/ } } else { - ret = 0; - return ret; + ret = 0U; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } } else { - /* */ + /*-< */ } - ret = 1; + ret = 1U; /*-< úֵΪɹ*/ #endif - return ret; + return ret; /*-< غֵ*/ } /****************************************************************************************** @@ -1693,7 +1334,7 @@ static UINT8 InitRpProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], * ȫֱ : * ֵ : ɹ1,ʧܷ0 *******************************************************************************************/ -static UINT8 InitRsspProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo) +static UINT8 InitRsspProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo) { UINT8 ret = 0; @@ -1724,7 +1365,7 @@ static UINT8 InitRsspProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[ gpRsspUnitInfo->OutputSize = pUnifyInfo->OutputSize; /* һ֡Ӧݳ*/ gpRsspUnitInfo->RecordArraySize = (UINT16)curDevRecordLen[3]; /* ¼С*/ - gpRsspUnitInfo->OutnetQueueSize = typeNum * (pUnifyInfo->InputSize + 23) * 3 * 2 + 100; + gpRsspUnitInfo->OutnetQueueSize = typeNum * (pUnifyInfo->InputSize + 25u) * gpRsspUnitInfo->MaxNumPerCycle * 2u; ret = Rssp2Init(fileName, inDataLen, inData, gpRsspUnitInfo); @@ -1758,7 +1399,7 @@ static UINT8 InitRsspProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[ * ȫֱ : * ֵ : ɹ1,ʧܷ0 *******************************************************************************************/ -static UINT8 InitRssp2ProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo) +static UINT8 InitRssp2ProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo) { UINT8 ret = 0; #ifdef USE_RSSPII @@ -1786,7 +1427,7 @@ static UINT8 InitRssp2ProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData gpRssp2UnitInfo->RandomNum = pUnifyInfo->CycleNum; /* add 20160819 xb */ gpRssp2UnitInfo->LocalID = pUnifyInfo->LocalID; /* 豸ID*/ gpRssp2UnitInfo->LocalType = pUnifyInfo->LocalType; /* 豸type*/ - gpRssp2UnitInfo->MaxNumLink = typeNum; /* ͨŵĶ*/ + gpRssp2UnitInfo->MaxNumLink = (UINT8)typeNum; /* ͨŵĶ*/ gpRssp2UnitInfo->MaxNumPerCycle = pUnifyInfo->MaxNumPerCycle; /* һÿЧ*/ if ((pUnifyInfo->InputSize > RSSP2_MAX_LEN) || (pUnifyInfo->OutputSize > RSSP2_MAX_LEN)) { @@ -1836,7 +1477,7 @@ static UINT8 InitRssp2ProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData * ȫֱ : * ֵ : ɹ1,ʧܷ0 *******************************************************************************************/ -static UINT8 InitRsrProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo) +static UINT8 InitRsrProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo) { UINT8 ret = 0; @@ -1859,7 +1500,7 @@ static UINT8 InitRsrProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[] gpRsrUnitInfo->CycleNum = pUnifyInfo->CycleNum; gpRsrUnitInfo->LocalID = pUnifyInfo->LocalID; /* 豸ID*/ gpRsrUnitInfo->LocalType = pUnifyInfo->LocalType; /* 豸type*/ - gpRsrUnitInfo->MaxNumLink = typeNum; /* ͨŵĶ*/ + gpRsrUnitInfo->MaxNumLink = (UINT8)typeNum; /* ͨŵĶ*/ gpRsrUnitInfo->MaxNumPerCycle = pUnifyInfo->MaxNumPerCycle; /* һÿЧ*/ if ((pUnifyInfo->InputSize > RSR_RSSP_MAX_LEN) || (pUnifyInfo->OutputSize > RSR_RSSP_MAX_LEN)) { @@ -1908,7 +1549,7 @@ static UINT8 InitRsrProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[] * ȫֱ : * ֵ : ɹ1,ʧܷ0 *******************************************************************************************/ -static UINT8 InitFsfbProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT8 typeNum, ProtclConfigInfoStru* pUnifyInfo) +static UINT8 InitFsfbProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], UINT16 typeNum, ProtclConfigInfoStru* pUnifyInfo) { UINT8 rtn = 0; @@ -1927,7 +1568,7 @@ static UINT8 InitFsfbProtclStru(UINT8* fileName, UINT32 inDataLen, UINT8 inData[ fsfbUnitInfo->CycleNum = pUnifyInfo->CycleNum; fsfbUnitInfo->LocalType = pUnifyInfo->LocalType; fsfbUnitInfo->LocalID = pUnifyInfo->LocalID; - fsfbUnitInfo->MaxNumLink = typeNum; + fsfbUnitInfo->MaxNumLink = (UINT8)typeNum; fsfbUnitInfo->MaxNumPerCycle = pUnifyInfo->MaxNumPerCycle; if ((pUnifyInfo->InputSize > FSFB_MAX_LEN) || (pUnifyInfo->OutputSize > FSFB_MAX_LEN)) /*ÿ֡Ӧ󳤶*/ { @@ -2051,12 +1692,12 @@ UINT8 sfpInputPackFms(const PROTCL_APP_TO_STRU protclAppStru, QueueStruct* pAppQ * ֵ * UINT8 1 */ -UINT8 sfpSendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) +UINT8 sfpSendData(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) { UINT8 ret = 0; #ifdef USE_SFP - UINT8 i = 0;/* ѭʹ */ + UINT32 i = 0;/* ѭʹ */ UINT32 len = 0; UINT32 dataLen = 0; UINT16 lenInput = 0; @@ -2214,12 +1855,12 @@ UINT8 RsspInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct* pAppQueueD * ֵ * UINT8 1 */ -UINT8 RsspSendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) +UINT8 RsspSendData(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) { UINT8 ret = 0; #ifdef USE_RSSPI - UINT8 i = 0;/* ѭʹ */ + UINT32 i = 0;/* ѭʹ */ UINT32 len = 0; UINT16 varlen = 0; UINT16 tempRecordSize = 0; @@ -2374,11 +2015,11 @@ UINT8 Rssp2InputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct* pAppQueue * ֵ * UINT8 1 */ -UINT8 Rssp2SendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) +UINT8 Rssp2SendData(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) { UINT8 ret = 0; #ifdef USE_RSSPII - UINT8 i = 0;/* ѭʹ */ + UINT32 i = 0;/* ѭʹ */ UINT32 len = 0; UINT16 varlen = 0; UINT16 recordLen = 0; @@ -2549,12 +2190,12 @@ UINT8 RsrInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct* pAppQueueDa * ֵ * UINT8 1 */ -UINT8 RsrSendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) +UINT8 RsrSendData(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) { UINT8 ret = 0; #ifdef USE_RSR - UINT8 i = 0; + UINT32 i = 0; UINT16 len = 0; UINT16 varlen = 0; UINT16 tempRecordSize = 0; @@ -2710,12 +2351,12 @@ UINT8 RpInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct* pAppQueueDat * ֵ * UINT8 1 */ -UINT8 RpSendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) +UINT8 RpSendData(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) { UINT8 ret = 0; #ifdef USE_RP - UINT8 i = 0; + UINT32 i = 0; UINT16 len = 0; UINT16 varlen = 0; UINT16 tempRecordSize = 0; @@ -2841,30 +2482,29 @@ UINT8 FsfbInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct* pAppQueueD return retVal; } -/* -* ܣFSFBЭ鷢 -* -* -* devDataCount 豸ݸ UINT8 -* sendDataLen ݳ UINT32* -* pSndData UINT8* -* pLnkStatusData Э״̬ UINT8* -* lnkDataLen Э״̬ݳ UINT16* -* recordArray Э¼ UINT8* -* recordDataLen Э¼ݳ UINT16* -* ֵ -* UINT8 1 -*/ -UINT8 FsfbSendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) +/** + * @brief FsfbSendData FSFBЭ鷢 + * @param pUnifyInfo FSFBʵ ȡֵΧ:οṹProtclConfigInfoStru + * @param devDataCount 豸ݸ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param pSndData ȡֵΧ:ֽ + * @param sendDataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param pLnkStatusData Э״̬ ȡֵΧ:ֽ + * @param lnkDataLen ݳ Э״̬ݳ:0x00000000-0xFFFFFFFF + * @param recordArray Э¼ ȡֵΧ:ֽ + * @param recordDataLen Э¼ݳ Э״̬ݳ:0x0000-0xFFFF + * @return 0:ʧ 1:ɹ + */ +UINT8 FsfbSendData(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) { - UINT8 retVal = 0u; + /*- ֲ*/ + UINT8 retVal = 0u; /*-< úֵΪʧ*/ #ifdef USE_FSFB UINT32* curCycleNum = NULL; /*ǰ*/ PROTCL_APP_TO_STRU* appToStru = NULL; /*ӦõЭݽṹ*/ FSFB_INFO_STRU* fsfbInfo = NULL; /*FSFBЭṹ*/ - UINT8 i = 0u;/*ѭ*/ + UINT32 i = 0u;/*ѭ*/ UINT32 outQueDataLen = 0u; /*FSFBݳ*/ UINT8 outQueData[FSFB_MAX_LEN * 16] = { 0 }; /*FSFB*/ UINT32 outQueIdx = 0u; /*FSFBλ*/ @@ -2879,130 +2519,130 @@ UINT8 FsfbSendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* if ((NULL != pUnifyInfo) && (NULL != pSndData) && (NULL != sendDataLen) && (NULL != pLnkStatusData) && (NULL != lnkDataLen) && (NULL != recordArray) && (NULL != recordDataLen) && (NULL != pUnifyInfo->GlobalVar) && (NULL != pUnifyInfo->GlobalVar->gpFsfbUnitInfo) && (NULL != pUnifyInfo->GlobalVar->protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru) - && (NULL != pUnifyInfo->CycleNum)) + && (NULL != pUnifyInfo->CycleNum)) /*-< ǷϷ*/ { - curCycleNum = pUnifyInfo->CycleNum; - appToStru = pUnifyInfo->GlobalVar->protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru; - fsfbInfo = pUnifyInfo->GlobalVar->gpFsfbUnitInfo; + curCycleNum = pUnifyInfo->CycleNum; /*-< õں*/ + appToStru = pUnifyInfo->GlobalVar->protclSndCfgStru[DSU_PROTCL_FSFB].pProtclAppStru; /*-< õӦø*/ + fsfbInfo = pUnifyInfo->GlobalVar->gpFsfbUnitInfo; /*-< õFSFB*/ - QueueClear(&fsfbInfo->OutputDataQueue); - LongToChar(0u, fsfbInfo->AppArray); + QueueClear(&fsfbInfo->OutputDataQueue); /*-< */ + LongToChar(0u, fsfbInfo->AppArray); /*-< Ӧ*/ - if (0u == ((*curCycleNum) % 2))/*FSFBЭΪ600ms*/ + if (0u == ((*curCycleNum) % 2)) /*-< ںǷ2*/ { - for (i = 0; i < devDataCount; i++) /*Ŀ豸ݵ*/ + for (i = 0; i < devDataCount; i++) /*-< Ŀ豸ݵ*/ { - FsfbInputPackFms(appToStru[i], &fsfbInfo->OutputDataQueue); + FsfbInputPackFms(appToStru[i], &fsfbInfo->OutputDataQueue); /*-< */ } - if (0 == ((*curCycleNum) % 50)) /*CI300msһ,50,15sһBTC*/ + if (0 == ((*curCycleNum) % 50)) /*-< ںǷ50*/ { - outQueDataLen = QueueStatus(&fsfbInfo->OutputDataQueue); - if (outQueDataLen <= FSFB_MAX_LEN * 16) /*δ󳤶*/ + outQueDataLen = QueueStatus(&fsfbInfo->OutputDataQueue); /*-< õг*/ + if (outQueDataLen <= FSFB_MAX_LEN * 16) /*-< δ󳤶*/ { - QueueScan(outQueDataLen, outQueData, &fsfbInfo->OutputDataQueue); - while ((outQueIdx + 4) < outQueDataLen) + QueueScan(outQueDataLen, outQueData, &fsfbInfo->OutputDataQueue); /*-< ɨг*/ + while ((outQueIdx + 4) < outQueDataLen) /*-< г*/ { - outQueFramLen = ShortFromChar(&outQueData[outQueIdx]); /*2ֽڳ*/ - outQueIdx += 2; - ShortToChar((UINT16)3, &btmHead[0]); /*2ֽBTM֡ͷ*/ - memcpy(&btmHead[2], &outQueData[outQueIdx], 2); /*2ֽĿLEUID*/ - btmHead[4] = 0x10; /*BTM֡*/ + outQueFramLen = ShortFromChar(&outQueData[outQueIdx]); /*-< õ2ֽڳ*/ + outQueIdx += 2; /*-< ±*/ + ShortToChar((UINT16)3, &btmHead[0]); /*-< 2ֽBTM֡ͷ*/ + memcpy(&btmHead[2], &outQueData[outQueIdx], 2); /*-< 2ֽĿLEUID*/ + btmHead[4] = 0x10; /*-< BTM֡*/ - queWriteRtn = QueueWrite(5, btmHead, &fsfbInfo->OutputDataQueue); - if (1u == queWriteRtn) + queWriteRtn = QueueWrite(5, btmHead, &fsfbInfo->OutputDataQueue); /*-< д5ֽͷ*/ + if (1u == queWriteRtn) /*-< дгɹ*/ { - outQueIdx += outQueFramLen; + outQueIdx += outQueFramLen; /*-< ±*/ } else { - break; + break; /*-< ˳*/ } } } else /*󳤶*/ { - QueueClear(&fsfbInfo->OutputDataQueue); + QueueClear(&fsfbInfo->OutputDataQueue); /*-< */ } } - retVal = FsfbProtclOutPut(fsfbInfo); + retVal = FsfbProtclOutPut(fsfbInfo); /*-< */ - if (1u == retVal) + if (1u == retVal) /*-< úɹ*/ { - dataLen = 4 + LongFromChar(&fsfbInfo->AppArray[dataIdx]); - dataIdx += 4; - while ((dataIdx + 4) < dataLen) + dataLen = 4 + LongFromChar(&fsfbInfo->AppArray[dataIdx]); /*-< õݳ*/ + dataIdx += 4; /*-< ±4*/ + while ((dataIdx + 4) < dataLen) /*-< */ { /*2ֽڳ*/ - frameLen = ShortFromChar(&fsfbInfo->AppArray[dataIdx]); - dataIdx += 2; - ShortToChar(frameLen + 3, &pSndData[*sendDataLen]); - *sendDataLen += 2; + frameLen = ShortFromChar(&fsfbInfo->AppArray[dataIdx]); /*-< õ2ֽڳ*/ + dataIdx += 2; /*-< ±2*/ + ShortToChar(frameLen + 3, &pSndData[*sendDataLen]); /*-< óȵ*/ + *sendDataLen += 2; /*-< ±2*/ /*1ֽЭ*/ - pSndData[*sendDataLen] = DSU_PROTCL_FSFB; - *sendDataLen += 1; + pSndData[*sendDataLen] = DSU_PROTCL_FSFB; /*-< FSFB͵*/ + *sendDataLen += 1; /*-< ±1*/ /*2ֽĿID*/ - dstTypeId = ShortFromChar(&fsfbInfo->AppArray[dataIdx]); - dataIdx += 2; - ShortToChar(dstTypeId, &pSndData[*sendDataLen]); - *sendDataLen += 2; + dstTypeId = ShortFromChar(&fsfbInfo->AppArray[dataIdx]); /*-< õID*/ + dataIdx += 2; /*-< ±2*/ + ShortToChar(dstTypeId, &pSndData[*sendDataLen]); /*-< FSFB͵*/ + *sendDataLen += 2; /*-< ±2*/ /*2ֽĿ߼ID*/ - ShortToChar(0u, &pSndData[*sendDataLen]); - *sendDataLen += 2; + ShortToChar(0u, &pSndData[*sendDataLen]); /*-< ߼ID*/ + *sendDataLen += 2; /*-< ±2*/ - if ((2 <= frameLen) && ((dataIdx + frameLen - 2) <= dataLen)) /*֡*/ + if ((2 <= frameLen) && ((dataIdx + frameLen - 2) <= dataLen)) /*-< ֡Ƿ*/ { - frameLen -= 2; - CommonMemCpy(&pSndData[*sendDataLen], frameLen, &fsfbInfo->AppArray[dataIdx], frameLen); + frameLen -= 2; /*-< ֡Լ2*/ + CommonMemCpy(&pSndData[*sendDataLen], frameLen, &fsfbInfo->AppArray[dataIdx], frameLen); /*-< Ӧݵ*/ - dataIdx += frameLen; - *sendDataLen += frameLen; + dataIdx += frameLen; /*-< ±֡*/ + *sendDataLen += frameLen; /*-< ±֡*/ } else { - break; + break; /*-< ˳*/ } } /*м*/ - *lnkDataLen = 2 + ShortFromChar(fsfbInfo->VarArray); - CommonMemCpy(pLnkStatusData, *lnkDataLen, fsfbInfo->VarArray, *lnkDataLen); + *lnkDataLen = 2 + ShortFromChar(fsfbInfo->VarArray); /*-< õм*/ + CommonMemCpy(pLnkStatusData, *lnkDataLen, fsfbInfo->VarArray, *lnkDataLen); /*-< мȵм*/ } - if (fsfbInfo->RecordArraySize > 3) /*м¼ռ*/ + if (fsfbInfo->RecordArraySize > 3) /*-< м¼ռ*/ { - recordLen = ShortFromChar(fsfbInfo->RecordArray); /*־*/ - if ((2 + recordLen + 1) <= fsfbInfo->RecordArraySize) /*ɴ־,1ֽΪַ*/ + recordLen = ShortFromChar(fsfbInfo->RecordArray); /*-< õ־*/ + if ((2 + recordLen + 1) <= fsfbInfo->RecordArraySize) /*-< ɴ־,1ֽΪַ*/ { - ShortToChar(recordLen + 1, &recordArray[0]); - CommonMemCpy(&recordArray[2], recordLen, &fsfbInfo->RecordArray[2], recordLen); - recordArray[2 + recordLen] = '\0'; + ShortToChar(recordLen + 1, &recordArray[0]); /*-< ü¼ȵ¼*/ + CommonMemCpy(&recordArray[2], recordLen, &fsfbInfo->RecordArray[2], recordLen); /*-< Ƽ¼¼*/ + recordArray[2 + recordLen] = '\0'; /*-< ַ*/ - *recordDataLen = 2 + recordLen + 1; + *recordDataLen = 2 + recordLen + 1; /*-< ü¼*/ } else /*ɴ־*/ { - ShortToChar(fsfbInfo->RecordArraySize - 2, &recordArray[0]); - CommonMemCpy(&recordArray[2], fsfbInfo->RecordArraySize - 3, &fsfbInfo->RecordArray[2], fsfbInfo->RecordArraySize - 3); - recordArray[fsfbInfo->RecordArraySize - 1] = '\0'; + ShortToChar(fsfbInfo->RecordArraySize - 2, &recordArray[0]); /*-< ܼ¼*/ + CommonMemCpy(&recordArray[2], fsfbInfo->RecordArraySize - 3, &fsfbInfo->RecordArray[2], fsfbInfo->RecordArraySize - 3); /*-< ܼ¼*/ + recordArray[fsfbInfo->RecordArraySize - 1] = '\0'; /*-< ַ*/ - *recordDataLen = fsfbInfo->RecordArraySize; + *recordDataLen = fsfbInfo->RecordArraySize; /*-< ü¼*/ } } } else { - retVal = 1u; + retVal = 1u; /*-< úֵΪɹ*/ } } #endif - return retVal; + return retVal; /*-< غֵ*/ } @@ -3415,10 +3055,18 @@ UINT8 FsfbRcvData(QueueStruct* pOutToApp, ProtclConfigInfoStru* pUnifyInfo) } -/* ȡе */ +/** + * @brief readQueueDataToApp ʱƽ̨Э + * @param rcvQueueData ƽ̨ݶ ȡֵΧ:οṹQueueStruct + * @param OutNetFlag ־ ȡֵΧ:1:;2: + * @param locDevName ID ȡֵΧ:0x0000-0xFFFF + * @param pDataToApp ڸЭ ȡֵΧ:οṹPROTCL_RCV_DATA_TYPE + * @param pUnifyInfo ṹ ȡֵΧ:οṹProtclConfigInfoStru + * @return 0:ʧ;1:ɹ + */ UINT8 readQueueDataToApp(QueueStruct* rcvQueueData, UINT8 OutNetFlag, UINT16 locDevName, PROTCL_RCV_DATA_TYPE* pDataToApp, ProtclConfigInfoStru* pUnifyInfo) { - UINT8 ret = 0; + UINT8 ret = 0; /*-< úֵΪ0*/ UINT8 retFun = 0; UINT8 i = 0; /* ѭʹ */ UINT16 destDevName = 0; @@ -3427,119 +3075,119 @@ UINT8 readQueueDataToApp(QueueStruct* rcvQueueData, UINT8 OutNetFlag, UINT16 loc #ifdef USE_RSSPII QueueRingID pRingQue = NULL; - CM_BOOL mbRet = CM_FALSE; + CM_BOOL mbRet = CM_FALSE; /*-< ýΪ*/ UINT32 len = 0; #endif - if ((NULL != rcvQueueData) && (NULL != pDataToApp) && (NULL != pUnifyInfo) && (NULL != pUnifyInfo->GlobalVar) && (NULL != pUnifyInfo->GlobalVar->pRcvProtclAppStru)) + if ((NULL != rcvQueueData) && (NULL != pDataToApp) && (NULL != pUnifyInfo) && (NULL != pUnifyInfo->GlobalVar) && (NULL != pUnifyInfo->GlobalVar->pRcvProtclAppStru)) /*-< Ƿǿ*/ { - tempProtclAppStru = pUnifyInfo->GlobalVar->pRcvProtclAppStru; + tempProtclAppStru = pUnifyInfo->GlobalVar->pRcvProtclAppStru; /*-< ЭӦݽṹ*/ - for (i = 0; i < PROTCL_MGECFG_MAXCNT + 1; i++) + for (i = 0; i < PROTCL_MGECFG_MAXCNT + 1; i++) /*-< Э±ǷСЭ*/ { /*Ϣ,;*/ - pDataToApp[i].rcvDataLen = 0; + pDataToApp[i].rcvDataLen = 0; /*-< õݳΪ0*/ } - while (2 < QueueStatus(rcvQueueData)) + while (2 < QueueStatus(rcvQueueData)) /*-< ݶгǷ2*/ { - retFun = 0; - ret = AppReceiveDataAnalysis(rcvQueueData, tempProtclAppStru); - if (ret == 1) + retFun = 0; /*-< õúֵΪ0*/ + ret = AppReceiveDataAnalysis(rcvQueueData, tempProtclAppStru); /*-< ýӦòݽ,ֵֵֵ*/ + if (ret == 1) /*-< ֵǷΪ1*/ { - TypeIdToDevName(tempProtclAppStru->devType, tempProtclAppStru->devId, &destDevName); - retFun = DsuProtclGetProtclType(locDevName, destDevName, &protclType, &pUnifyInfo->GlobalVar->DsuProtclBookIpInfo); + TypeIdToDevName(tempProtclAppStru->devType, tempProtclAppStru->devId, &destDevName); /*-< IDת豸*/ + retFun = DsuProtclGetProtclType(locDevName, destDevName, &protclType, &pUnifyInfo->GlobalVar->DsuProtclBookIpInfo); /*-< øݱIDԷIDʹõЭͺ,ֵֵúֵ*/ } else { - break; + break; /*-< ˳*/ } - if (1 == retFun) + if (1 == retFun) /*-< úǷɹ*/ { - if (DSU_PROTCL_RSSP2 == protclType)/* RSSP-IIЭûĿ豸ID */ + if (DSU_PROTCL_RSSP2 == protclType) /*-< ЭǷRSSPII*/ { #ifdef USE_RSSPII pRingQue = NULL; - Prtcl_Manage_GetRQ(tempProtclAppStru->devType * 256 * 256 * 256 + tempProtclAppStru->devId * 256 * 256 + OutNetFlag * 256 + tempProtclAppStru->devLogId, &pRingQue); - QUEUE_RING_Write(pRingQue, tempProtclAppStru->pAppData, tempProtclAppStru->appDataLen); - mbRet = CM_TRUE; - while (CM_TRUE == mbRet) + Prtcl_Manage_GetRQ(tempProtclAppStru->devType * 256 * 256 * 256 + tempProtclAppStru->devId * 256 * 256 + OutNetFlag * 256 + tempProtclAppStru->devLogId, &pRingQue); /*-< ûȡζ*/ + QUEUE_RING_Write(pRingQue, tempProtclAppStru->pAppData, tempProtclAppStru->appDataLen); /*-< ýджӵβ*/ + mbRet = CM_TRUE; /*-< ýΪ*/ + while (CM_TRUE == mbRet) /*-< ǷΪ*/ { - mbRet = Prtcl_Base_Check(pRingQue, &pUnifyInfo->GlobalVar->Rssp2PrtclHead, tempProtclAppStru->pAppData, pUnifyInfo->GlobalVar->gRssp2RcvDataBuffLen, &len); - if (CM_TRUE == mbRet) + mbRet = Prtcl_Base_Check(pRingQue, &pUnifyInfo->GlobalVar->Rssp2PrtclHead, tempProtclAppStru->pAppData, pUnifyInfo->GlobalVar->gRssp2RcvDataBuffLen, &len); /*-< ôӻλһϢ,ֵ*/ + if (CM_TRUE == mbRet) /*-< ǷΪ*/ { - tempProtclAppStru->appDataLen = (UINT16)len;/* ͨݳ */ + tempProtclAppStru->appDataLen = (UINT16)len; /*-< Ӧݳ*/ /*һ֡βд*/ - ShortToChar(tempProtclAppStru->appDataLen + 4, pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen);/*֡=ͨݳ+4ֽ֡ͷ*/ + ShortToChar(tempProtclAppStru->appDataLen + 4, pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen); /*-< дӦݳȵӦЭ黺*/ /*޸Ļܳ*/ - pDataToApp[protclType].rcvDataLen += 2; + pDataToApp[protclType].rcvDataLen += 2; /*-< ӦЭݳԼ2*/ /* ӷͷ豸 */ - *(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen) = tempProtclAppStru->devType; - pDataToApp[protclType].rcvDataLen++; + *(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen) = tempProtclAppStru->devType; /*-< 豸͵ӦݳȵӦЭ黺*/ + pDataToApp[protclType].rcvDataLen++; /*-< ӦЭݳԼ1*/ /* ӷͷ豸ID */ - *(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen) = tempProtclAppStru->devId; - pDataToApp[protclType].rcvDataLen++; + *(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen) = tempProtclAppStru->devId; /*-< 豸IDӦݳȵӦЭ黺*/ + pDataToApp[protclType].rcvDataLen++; /*-< ӦЭݳԼ1*/ /* ߼ID */ - ShortToChar(tempProtclAppStru->devLogId, pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen); - pDataToApp[protclType].rcvDataLen += 2; + ShortToChar(tempProtclAppStru->devLogId, pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen); /*-< 豸߼IDӦݳȵӦЭ黺*/ + pDataToApp[protclType].rcvDataLen += 2; /*-< ӦЭݳԼ2*/ /*β*/ - CommonMemCpy(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen, tempProtclAppStru->appDataLen, tempProtclAppStru->pAppData, tempProtclAppStru->appDataLen); + CommonMemCpy(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen, tempProtclAppStru->appDataLen, tempProtclAppStru->pAppData, tempProtclAppStru->appDataLen); /*-< ӦݵӦݳȵӦЭ黺*/ /*»ܳ*/ - pDataToApp[protclType].rcvDataLen += tempProtclAppStru->appDataLen; + pDataToApp[protclType].rcvDataLen += tempProtclAppStru->appDataLen; /*-< ӦЭݳԼӦݳ*/ } } #endif } else { - if ((DSU_PROTCL_RSSP == protclType) || (DSU_PROTCL_FSFB == protclType)) /*RSSPIFSFBЭ*/ + if ((DSU_PROTCL_RSSP == protclType) || (DSU_PROTCL_FSFB == protclType)) /*-< ЭǷRSSPIFSFB2*/ { /*2ֽܳ*/ - ShortToChar(tempProtclAppStru->appDataLen + 4, &pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen]); - pDataToApp[protclType].rcvDataLen += 2; + ShortToChar(tempProtclAppStru->appDataLen + 4, &pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen]); /*-< дӦݳȵӦЭ黺*/ + pDataToApp[protclType].rcvDataLen += 2; /*-< ӦЭݳԼ2*/ /*1ֽ*/ - pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen] = tempProtclAppStru->devType; - pDataToApp[protclType].rcvDataLen++; + pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen] = tempProtclAppStru->devType; /*-< 豸͵ӦݳȵӦЭ黺*/ + pDataToApp[protclType].rcvDataLen++; /*-< ӦЭݳԼ1*/ /*1ֽID*/ - pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen] = tempProtclAppStru->devId; - pDataToApp[protclType].rcvDataLen++; + pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen] = tempProtclAppStru->devId; /*-< 豸IDӦݳȵӦЭ黺*/ + pDataToApp[protclType].rcvDataLen++; /*-< ӦЭݳԼ1*/ /*2ֽ߼ID*/ - ShortToChar(tempProtclAppStru->devLogId, &pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen]); - pDataToApp[protclType].rcvDataLen += 2; + ShortToChar(tempProtclAppStru->devLogId, &pDataToApp[protclType].pData[pDataToApp[protclType].rcvDataLen]); /*-< 豸߼IDӦݳȵӦЭ黺*/ + pDataToApp[protclType].rcvDataLen += 2; /*-< ӦЭݳԼ2*/ } else /*Э*/ { /*ЭͲд,ʹȫֹ涨ĸЭ*/ /*pDataToApp[protclType].proType = protclType;*/ /*һ֡βд*/ - ShortToChar(tempProtclAppStru->appDataLen, pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen); + ShortToChar(tempProtclAppStru->appDataLen, pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen); /*-< дӦݳȵӦЭ黺*/ /*޸Ļܳ*/ - pDataToApp[protclType].rcvDataLen += 2; + pDataToApp[protclType].rcvDataLen += 2; /*-< ӦЭݳԼ2*/ } /*β*/ - CommonMemCpy(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen, tempProtclAppStru->appDataLen, tempProtclAppStru->pAppData, tempProtclAppStru->appDataLen); + CommonMemCpy(pDataToApp[protclType].pData + pDataToApp[protclType].rcvDataLen, tempProtclAppStru->appDataLen, tempProtclAppStru->pAppData, tempProtclAppStru->appDataLen); /*-< ӦݵӦݳȵӦЭ黺*/ /*»ܳ*/ - pDataToApp[protclType].rcvDataLen += tempProtclAppStru->appDataLen; + pDataToApp[protclType].rcvDataLen += tempProtclAppStru->appDataLen; /*-< ӦЭݳԼӦݳ*/ } } else { - break; + break; /*-< ˳*/ } } - ret = 1; + ret = 1; /*-< úֵΪ0*/ } - return ret; + return ret; /*-< غֵ*/ } @@ -4318,14 +3966,14 @@ UINT8 FreeSpaceFunc(ProtclConfigInfoStru* pUnifyInfo) * Ҫںָ㡣 * ֹ쳣ʹÿյĺָµIJ **************************************************/ -UINT8 protcl_nul_Init(UINT8* nul_FileName, UINT32 inDataLen, UINT8 inData[], UINT8 nul_Num, ProtclConfigInfoStru* pUnifyInfo) +UINT8 protcl_nul_Init(UINT8* nul_FileName, UINT32 inDataLen, UINT8 inData[], UINT16 nul_Num, ProtclConfigInfoStru* pUnifyInfo) { UINT8 retval = 1; return retval; } -UINT8 protcl_nul_Snd(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) +UINT8 protcl_nul_Snd(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen) { UINT8 retval = 1; @@ -4645,4 +4293,339 @@ static UINT8* NewAppData(UINT16* appDataMaxLen, const UINT16 outputSize, const U } return appData; +} + +/** + * @brief StPtclMgtSetOutnetQue + * @param pUnifyInfo Ϣ ȡֵΧ:οṹProtclConfigInfoStru + * @param locDevName 豸 ȡֵΧ:0x0000-0xFFFF + * @param queType ȡֵΧ:0:;1: + * @return 0:ʧ 1:ɹ + */ +static UINT8 StPtclMgtSetOutnetQue(ProtclConfigInfoStru* pUnifyInfo, UINT16 locDevName, UINT8 queType) +{ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ0*/ + UINT8 funRtn = 0u; + UINT8 i = 0u; /* ѭʹ */ + QueueStruct* pQue = NULL; + PROTCL_RCV_DATA_TYPE* pRcvData = NULL; + +#ifdef USE_SFP + struc_Unify_Info* gpsfpUnitInfo = NULL; /*SFPЭṹ*/ +#endif +#ifdef USE_RP + RP_INFO_STRU* gpRedunUnitInfo = NULL; /*Эṹ*/ +#endif +#ifdef USE_RSR + RSR_INFO_STRU* gpRsrUnitInfo = NULL; /*RSRЭṹ*/ +#endif +#ifdef USE_RSSPI + RSSP_INFO_STRU* gpRsspUnitInfo = NULL; /*RSSPЭṹ*/ +#endif +#ifdef USE_RSSPII + RSSP2_INFO_STRU* gpRssp2UnitInfo = NULL; /*RSSP2Эṹ*/ +#endif +#ifdef USE_FSFB + FSFB_INFO_STRU* gpFsfbUnitInfo = NULL; /*FSFBЭṹ*/ +#endif + + if ((NULL != pUnifyInfo) && (NULL != pUnifyInfo->GlobalVar) && (NULL != pUnifyInfo->GlobalVar->RcvData) && ((1u == queType) || (2u == queType))) /*-< ǷϷ*/ + { + /*- õЭ*/ +#ifdef USE_SFP + gpsfpUnitInfo = pUnifyInfo->GlobalVar->gpsfpUnitInfo; /*SFPЭṹ*/ +#endif +#ifdef USE_RP + gpRedunUnitInfo = pUnifyInfo->GlobalVar->gpRedunUnitInfo; /*Эṹ*/ +#endif +#ifdef USE_RSR + gpRsrUnitInfo = pUnifyInfo->GlobalVar->gpRsrUnitInfo; /*RSRЭṹ*/ +#endif +#ifdef USE_RSSPI + gpRsspUnitInfo = pUnifyInfo->GlobalVar->gpRsspUnitInfo; /*RSSPЭṹ*/ +#endif +#ifdef USE_RSSPII + gpRssp2UnitInfo = pUnifyInfo->GlobalVar->gpRssp2UnitInfo; /*RSSP2Эṹ*/ +#endif +#ifdef USE_FSFB + gpFsfbUnitInfo = pUnifyInfo->GlobalVar->gpFsfbUnitInfo; /*FSFBЭṹ*/ +#endif + + pRcvData = pUnifyInfo->GlobalVar->RcvData; /*-< ʱЭݵĽṹ*/ + if (1u == queType) /*-< Ƿ*/ + { + pQue = &pUnifyInfo->OutnetQueueA; /*-< õ*/ + } + else + { + pQue = &pUnifyInfo->OutnetQueueB; /*-< õ*/ + } + funRtn = readQueueDataToApp(pQue, queType, locDevName, pRcvData, pUnifyInfo); /*-< ʱƽ̨Эݺ*/ + } + + if (1u == funRtn) /*-< úǷɹ*/ + { + for (i = 1u; i < PROTCL_MGECFG_MAXCNT + 1u; i++) /*-< Э±ǷСЭ*/ + { + if (0u < pRcvData[i].rcvDataLen) /*-< ݳǷ0*/ + { + pQue = NULL; /*-< öΪ*/ + + switch (pRcvData[i].proType) /*-< жЭ*/ + { + case DSU_PROTCL_SFP: /*-< ЭǷSFP*/ +#ifdef USE_SFP + if (1u == queType) /*-< Ƿ*/ + { + pQue = &gpsfpUnitInfo->OutnetQueueA; /*-< öΪ*/ + } + else + { + pQue = &gpsfpUnitInfo->OutnetQueueB; /*-< öΪ*/ + } +#endif + break; /*-< ˳*/ + case DSU_PROTCL_RP: /*-< ЭǷRP*/ +#ifdef USE_RP + if (1u == queType) /*-< Ƿ*/ + { + pQue = &gpRedunUnitInfo->OutnetQueueA; /*-< öΪ*/ + } + else + { + pQue = &gpRedunUnitInfo->OutnetQueueB; /*-< öΪ*/ + } +#endif + break; /*-< ˳*/ + case DSU_PROTCL_RSR: /*-< ЭǷRSR*/ +#ifdef USE_RSR + if (1u == queType) /*-< Ƿ*/ + { + pQue = &gpRsrUnitInfo->OutnetQueueA; /*-< öΪ*/ + } + else + { + pQue = &gpRsrUnitInfo->OutnetQueueB; /*-< öΪ*/ + } +#endif + break; /*-< ˳*/ + case DSU_PROTCL_RSSP: /*-< ЭǷRSSPI*/ +#ifdef USE_RSSPI + if (1u == queType) /*-< Ƿ*/ + { + pQue = &gpRsspUnitInfo->OutnetQueueA; /*-< öΪ*/ + } + else + { + pQue = &gpRsspUnitInfo->OutnetQueueB; /*-< öΪ*/ + } +#endif + break; /*-< ˳*/ + case DSU_PROTCL_RSSP2: /*-< ЭǷRSSPII*/ +#ifdef USE_RSSPII + if (1u == queType) /*-< Ƿ*/ + { + pQue = &gpRssp2UnitInfo->OutnetQueueA; /*-< öΪ*/ + } + else + { + pQue = &gpRssp2UnitInfo->OutnetQueueB; /*-< öΪ*/ + } +#endif + break; /*-< ˳*/ + case DSU_PROTCL_FSFB: /*-< ЭǷFSFB*/ +#ifdef USE_FSFB + if (1u == queType) /*-< Ƿ*/ + { + pQue = &gpFsfbUnitInfo->OutnetQueueR; /*-< öΪ*/ + } + else + { + pQue = &gpFsfbUnitInfo->OutnetQueueB; /*-< öΪ*/ + } +#endif + break; /*-< ˳*/ + default: /*-< */ + break; /*-< ˳*/ + } + + if (NULL != pQue) /*-< Ƿǿ*/ + { + SetDataToQue(pRcvData[i].rcvDataLen, pRcvData[i].pData, pQue); /*-< ݵ*/ + } + } + } + + rtnVal = 1u; /*-< úֵΪ1*/ + } + + return rtnVal; /*-< غֵ*/ +} + +/** + * @brief StPtclMgtSetRecSize øЭ־С + * @param pUnifyInfo ͳһṹ ȡֵΧ:οṹProtclConfigInfoStru + * @param pProtclNumBuff Э ȡֵΧ:UINT16 + * @param curDevRecordLen 豸ʹ־ ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void StPtclMgtSetRecSize(ProtclConfigInfoStru* pUnifyInfo, UINT16 pProtclNumBuff[7], UINT32 curDevRecordLen[PROTCL_MGECFG_MAXCNT]) +{ + /*- ֲ*/ + /* 豸ʹ־ȱ*/ + UINT32 curDevRecordLenRatio[PROTCL_MGECFG_MAXCNT] = { 0u }; + /* 豸ʹ־ܳ*/ + UINT32 curDevRecordTotalLen = 0u; + /* 豸һ·*/ + UINT32 devRecFitLen[PROTCL_MGECFG_MAXCNT] = { 0u }; + /* ʱ*/ + UINT32 tmpVal = 0u; + UINT8 tmpI = 0u; + UINT32 allDevRecordLen = 0u; /*Э־С*/ + UINT8 borrowIdxNum = 0u; /*豸±*/ + UINT8 borrowIdx[PROTCL_MGECFG_MAXCNT] = { 0u }; /*豸±*/ + UINT32 borrowLen[PROTCL_MGECFG_MAXCNT] = { 0u }; /*豸*/ + UINT32 curBorrowNeedLen = 0u; /*ǰ賤*/ + UINT8 i = 0u; /*ѭ*/ + UINT8 isBreak = 0u; /*-< Ƿ˳ʶΪ*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ + + if ((NULL != pUnifyInfo) && (NULL != pProtclNumBuff) && (NULL != curDevRecordLen) && (2u < pUnifyInfo->RecordArraySize)) /*-< ȴ2,־ռ䴦*/ + { + /*- ʷ־ռ*/ + devRecFitLen[0] = SFP_PER_LNK_RECORD_MAX_LEN; + devRecFitLen[1] = RP_PER_LNK_RECORD_MAX_LEN; + devRecFitLen[2] = RSR_PER_LNK_RECORD_MAX_LEN; + devRecFitLen[3] = RSSPI_PER_LNK_RECORD_MAX_LEN; + devRecFitLen[4] = RSSPII_PER_LNK_RECORD_MAX_LEN; + devRecFitLen[5] = FSFB_PER_LNK_RECORD_MAX_LEN; + for (tmpI = 0u; tmpI < PROTCL_MGECFG_MAXCNT; tmpI++) /*-< Э±ǷС*/ + { + if (pProtclNumBuff[tmpI + 1] > 0u) /*-< ǷдЭ*/ + { + curDevRecordLenRatio[tmpI] = devRecFitLen[tmpI] * pProtclNumBuff[tmpI + 1u]; /*-< Э־С*/ + curDevRecordTotalLen += curDevRecordLenRatio[tmpI]; /*-< ־СۼӴЭ־С*/ + } + } + for (tmpI = 0u; tmpI < PROTCL_MGECFG_MAXCNT; tmpI++) /*-< Э±ǷС*/ + { + if (pProtclNumBuff[tmpI + 1] > 0u) /*-< ǷдЭ*/ + { + curDevRecordLen[tmpI] = (pUnifyInfo->RecordArraySize - 2u) * curDevRecordLenRatio[tmpI] / curDevRecordTotalLen; /*-< Э־С*/ + allDevRecordLen += curDevRecordLen[tmpI]; /*-< Э־С*/ + tmpVal += devRecFitLen[tmpI]; /*-< С־ۼӴЭ־С*/ + } + } + /*־ռ.ܷ־СС־:ʷ; :ڰʷ,ʹһЭ־ȲСһ·*/ + if (allDevRecordLen >= tmpVal) /*-< Э־СǷڵС־*/ + { + deepPro = 1u; /*-< ô־Ϊ*/ + } + } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + for (tmpI = 0u; tmpI < PROTCL_MGECFG_MAXCNT; tmpI++) /*-< Э±ǷС*/ + { + /*ֻЭ־*/ + if ((pProtclNumBuff[tmpI + 1] > 0u) && (curDevRecordLen[tmpI] < devRecFitLen[tmpI])) /*-< ǷдЭ ҳСһ·*/ + { + curBorrowNeedLen = devRecFitLen[tmpI] - curDevRecordLen[tmpI]; /*-< õ賤*/ + borrowIdxNum = 0u; /*-< 豸±*/ + isBreak = 0u; /*-< Ƿ˳ʶΪ*/ + for (i = 0u; i < PROTCL_MGECFG_MAXCNT; i++) /*-< Э±ǷС*/ + { + if ((i != tmpI) && (curDevRecordLen[i] > devRecFitLen[i])) /*-< ǵǰЭ ҿɽ־*/ + { + if ((curDevRecordLen[i] - devRecFitLen[i]) >= curBorrowNeedLen) /*-< ɽ賤ȴڵ賤*/ + { + borrowLen[borrowIdxNum] = curBorrowNeedLen; /*-< 賤ȸ豸*/ + + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + else + { + borrowLen[borrowIdxNum] = curDevRecordLen[i] - devRecFitLen[i]; /*-< ÿɽ賤ȸ豸*/ + } + curBorrowNeedLen -= borrowLen[borrowIdxNum]; /*-< 賤*/ + + borrowIdx[borrowIdxNum] = i; /*-< ý豸±豸±*/ + borrowIdxNum++; /*-< ý豸±1*/ + } + if (1u == isBreak) /*-< Ƿ˳ʶΪ*/ + { + break; /*-< ˳*/ + } + } + if (1u == isBreak) /*-< 蹻־*/ + { + for (i = 0u; i < borrowIdxNum; i++) /*-< 豸±±С*/ + { + curDevRecordLen[borrowIdx[i]] -= borrowLen[i]; /*-< 豸־*/ + } + curDevRecordLen[tmpI] = devRecFitLen[tmpI]; /*-< 豸Ϊһ·*/ + } + } + } + } +} + +/** + * @brief StPtclMgtSetRecvDataBuff ݻ + * @param pUnifyInfo ͳһṹ ȡֵΧ:οṹProtclConfigInfoStru + * @param maxLinkNum · ȡֵΧ:0x0000-0xFFFF + * @param protclSndCfgStru ñ ȡֵΧ:οṹPROTCL_SND_CFG_STRU + * @param ptemProtclRcvDataStru ȡֵΧ:οṹPROTCL_RCV_DATA_TYPE + * @param ptclType Э ȡֵΧ:0x00-0xFF + * @param pRcvDataBuff ȡֵΧ:ֽ + * @param pRcvDataBuffLen ݳ ȡֵΧ:0x0000-0xFFFF + * @return 0:˳ 1:˳ + */ +static UINT8 StPtclMgtSetRecvDataBuff(ProtclConfigInfoStru* pUnifyInfo, UINT16 maxLinkNum, PROTCL_SND_CFG_STRU* protclSndCfgStru, PROTCL_RCV_DATA_TYPE* ptemProtclRcvDataStru, UINT8 ptclType, UINT8** pRcvDataBuff, UINT16* pRcvDataBuffLen) +{ + /*- ֲ*/ + UINT8 rtnVal = 1u; /*-< úֵΪ˳*/ + UINT32 i = 0u; /*ѭ*/ + UINT32 tmpVal = 0u; + + tmpVal = maxLinkNum * pUnifyInfo->MaxNumPerCycle; /*-< õ*/ + protclSndCfgStru[ptclType].pProtclAppStru = (PROTCL_APP_TO_STRU*)malloc(sizeof(PROTCL_APP_TO_STRU) * tmpVal); /*-< ݿռ*/ + if ((NULL == protclSndCfgStru[ptclType].pProtclAppStru) || (NULL == ptemProtclRcvDataStru[ptclType].pData)) /*-< ʧ*/ + { + rtnVal = 1u; /*-< úֵΪ˳*/ + } + else + { + /*Ϊķʱ洢ʼ*/ + CommonMemSet(protclSndCfgStru[ptclType].pProtclAppStru, sizeof(PROTCL_APP_TO_STRU) * tmpVal, 0u, sizeof(PROTCL_APP_TO_STRU) * tmpVal); /*-< ݿռ*/ + + /*ʼ֡Ӧ*/ + for (i = 0u; i < tmpVal; i++) /*-< ǷС*/ + { + protclSndCfgStru[ptclType].pProtclAppStru[i].pAppData = NewAppData(&protclSndCfgStru[ptclType].pProtclAppStru[i].appDataMaxLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); /*-< 䵥ݿռ*/ + if (NULL == protclSndCfgStru[ptclType].pProtclAppStru[i].pAppData) /*-< ʧ*/ + { + break; /*-< ˳*/ + } + } + if (i == tmpVal) /*-< ɹ*/ + { + (*pRcvDataBuff) = NewAppData(pRcvDataBuffLen, pUnifyInfo->OutputSize, pUnifyInfo->InputSize); /*-< Ӧݿռ*/ + if (NULL == (*pRcvDataBuff)) /*-< ʧ*/ + { + rtnVal = 1u; /*-< úֵΪ˳*/ + } + else + { + rtnVal = 0u; /*-< úֵΪ˳*/ + } + } + else + { + rtnVal = 1u; /*-< úֵΪ˳*/ + } + + } + + return rtnVal; /*-< غֵ*/ } \ No newline at end of file diff --git a/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.h b/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.h index fcb6d46..8364ba6 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.h +++ b/TSCP/src/protocol/protocol_cbtc/common_protocol/ProtclManage.h @@ -54,10 +54,14 @@ extern "C" { #define ERR_PRTCL_MANAGE_TYPE_ERR 0x00000001 #define ERR_PRTCL_MANAGE_DATA_ANALYSIS_ERR 0x00000002 - -/* - * Эʼ - * + +/** + * @brief Init ļȡӦЭ + * @param fileName ļ· ȡֵΧ:ֽ + * @param inDataLen ڲݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ڲ ȡֵΧ:ֽ + * @param pUnifyInfo ͬṹ ȡֵΧ:οṹProtclConfigInfoStru + * @return 0:ʧ 1:ɹ */ UINT8 Init(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], ProtclConfigInfoStru* pUnifyInfo); @@ -71,15 +75,11 @@ UINT8 Init(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], ProtclConfigInfoSt */ UINT8 SendAppData(ProtclConfigInfoStru *pUnifyInfo); -/* -* ܣЭ -* -* ProtclConfigInfoStru * pUnifyInfo ͳһṹ -* ֵ -* 1ݳɹ -0ʧ -*/ - +/** + * @brief ReceiveAppData Э + * @param pUnifyInfo ͳһṹ ȡֵΧ:οṹProtclConfigInfoStru + * @return 0:ʧ 1:ɹ + */ UINT8 ReceiveAppData(ProtclConfigInfoStru* pUnifyInfo); /* @@ -113,15 +113,12 @@ UINT8 GetLnkStatus (UINT8 destType,UINT8 destId,UINT16 logId,ProtclConfigInfoStr */ UINT8 DelLnkFunc(UINT8 destType,UINT8 destId,UINT16 logId,ProtclConfigInfoStru *pUnifyInfo); -/* -* ܣˢ·״̬ -* -* -* UINT8* pLnkStatusData Э״̬ -* ֵ -* 0ˢ·ʧ -* 1ˢ·ɹ -*/ +/** + * @brief ReFresh ʹ·ˢ·״̬ + * @param pLnkStatusData · ȡֵΧ:ֽ + * @param pUnifyInfo ṹ ȡֵΧ:οṹ:ProtclConfigInfoStru + * @return 0:ʧ 1:ɹ + */ UINT8 ReFresh(UINT8 *pLnkStatusData, ProtclConfigInfoStru *pUnifyInfo); /* @@ -137,26 +134,26 @@ UINT8 FreeSpace(ProtclConfigInfoStru *pUnifyInfo); UINT8 ReceiveTcpState(UINT16 TcpStateDataLen,UINT8* pTcpStateData, ProtclConfigInfoStru *pUnifyInfo); UINT8 SendTcpCtrl(UINT16 *pTcpCtrlDataLen,UINT8 *pTcpCtrlData, ProtclConfigInfoStru *pUnifyInfo); -UINT8 InitGetCfgInfo(UINT8* pFileName, UINT32 inDataLen, UINT8 inData[], UINT8* pEvenPrtclNumBuff, ProtclConfigInfoStru* pUnifyInfo); +UINT8 InitGetCfgInfo(UINT8* pFileName, UINT32 inDataLen, UINT8 inData[], UINT16* pEvenPrtclNumBuff, ProtclConfigInfoStru* pUnifyInfo); /***********Э鷢غ**************************************************************/ UINT8 AppSendInputDataAnalysis(QueueStruct *pAppQueueData,PROTCL_APP_TO_STRU *pProtclAppStru); UINT8 sfpInputPackFms(const PROTCL_APP_TO_STRU protclAppStru, QueueStruct *pAppQueueData); -UINT8 sfpSendData(ProtclConfigInfoStru *pUnifyInfo, UINT8 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8 * pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); +UINT8 sfpSendData(ProtclConfigInfoStru *pUnifyInfo, UINT32 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8 * pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); UINT8 RsspInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct *pAppQueueData); -UINT8 RsspSendData(ProtclConfigInfoStru *pUnifyInfo, UINT8 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); +UINT8 RsspSendData(ProtclConfigInfoStru *pUnifyInfo, UINT32 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); #ifdef USE_RSR UINT8 RsrInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct *pAppQueueData, RSR_INFO_STRU *gpRsrUnitInfo); #endif -UINT8 RsrSendData(ProtclConfigInfoStru *pUnifyInfo, UINT8 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); +UINT8 RsrSendData(ProtclConfigInfoStru *pUnifyInfo, UINT32 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); UINT8 RpInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct *pAppQueueData); -UINT8 RpSendData(ProtclConfigInfoStru *pUnifyInfo, UINT8 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); +UINT8 RpSendData(ProtclConfigInfoStru *pUnifyInfo, UINT32 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); UINT8 RsrAndRpAppArrayPage(UINT8* pInAppArray,UINT32 appDtaLen,UINT8* pOutAppArray,UINT32* outAppLen); UINT8 Rssp2InputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct *pAppQueueData); -UINT8 Rssp2SendData(ProtclConfigInfoStru *pUnifyInfo, UINT8 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); +UINT8 Rssp2SendData(ProtclConfigInfoStru *pUnifyInfo, UINT32 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8* pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); UINT8 FsfbInputPackFms(PROTCL_APP_TO_STRU protclAppStru, QueueStruct* pAppQueueData); -UINT8 FsfbSendData(ProtclConfigInfoStru* pUnifyInfo, UINT8 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen); +UINT8 FsfbSendData(ProtclConfigInfoStru* pUnifyInfo, UINT32 devDataCount, UINT8* pSndData, UINT32* sendDataLen, UINT8* pLnkStatusData, UINT16* lnkDataLen, UINT8* recordArray, UINT16* recordDataLen); /***********Эغ**************************************************************/ UINT8 SfpRcvData(QueueStruct* pOutToApp, ProtclConfigInfoStru *pUnifyInfo); UINT8 RpRcvData(QueueStruct* pOutToApp, ProtclConfigInfoStru *pUnifyInfo); @@ -213,8 +210,8 @@ UINT8 FsfbFreeSpaceFunc(ProtclConfigInfoStru* pUnifyInfo); /***********Getting**&**Setting****װ***********************************************/ /***********쳣**************************************************************/ -UINT8 protcl_nul_Init(UINT8* nul_FileName, UINT32 inDataLen, UINT8 inData[], UINT8 nul_Num, ProtclConfigInfoStru* pUnifyInfo); -UINT8 protcl_nul_Snd(ProtclConfigInfoStru *pUnifyInfo, UINT8 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8 * pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); +UINT8 protcl_nul_Init(UINT8* nul_FileName, UINT32 inDataLen, UINT8 inData[], UINT16 nul_Num, ProtclConfigInfoStru* pUnifyInfo); +UINT8 protcl_nul_Snd(ProtclConfigInfoStru *pUnifyInfo, UINT32 devDataCount,UINT8* pSndData,UINT32* sendDataLen,UINT8 * pLnkStatusData,UINT16* lnkDataLen,UINT8* recordArray,UINT16* recordDataLen); UINT8 protcl_nul_Rcv(QueueStruct* PQueueStru, ProtclConfigInfoStru *pUnifyInfo); UINT8 protcl_nul_Lnk(UINT8 destType,UINT8 destId,UINT16 logId, ProtclConfigInfoStru *pUnifyInfo); void protcl_nul_NetsRecvPkgNum(ProtclConfigInfoStru* pUnifyInfo, const UINT8 dstType, const UINT8 dstId, const UINT16 dstLogicId, UINT16* redRecvPkgNum, UINT16* blueRecvPkgNum); diff --git a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.c b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.c index 80c7f0e..d704df1 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.c +++ b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.c @@ -5,6 +5,7 @@ #include "dsuRsspFunc.h" #include "CommonMemory.h" #include "CommonRecord.h" +#include #define RSSPI_OPP_IDS_NUM (255) /*RSSPIĶԷΨһID*/ @@ -28,8 +29,6 @@ #define DATA2_STAGING_NO (19u) /*TwoDevRepeatݴ޿ռ*/ #define NO_DATA_NET1_LEN_ILLEGAL (20u) /*TwoDevRepeat1ʱݳȷǷ*/ -static UINT16 DelRsspiNotOppId(UINT16 linkDataLen, UINT8 linkData[], UINT16 singleLinkLen, UINT16 oppIdIdx, UINT8 oppIdsNum, const UINT32 oppIds[]); - static UINT8 ProtclTwoRepeatParam(ProtclConfigInfoStru* protcl, UINT8* data1, UINT8* data2, UINT32* data2Len, UINT8* data2Staging); static UINT8 RepeatDataFormatCheck(UINT8* data, const UINT32 dataLen); static UINT8 DevDataFormatCheck(UINT8* data, const UINT32 dataLen, UINT32* dataIdx, UINT32* netLen); @@ -262,180 +261,6 @@ UINT8 ProtclSendTcpCtrlFunc(UINT16 *pTcpCtrlDataLen,UINT8 *pTcpCtrlData, ProtclC return ret; } -/* -*: DelRsspiNotOppId -*: ɾRSSPI·зָĶԷַ· -*: UINT16 linkDataLen ·ݳ -* UINT8 linkData[] · -* UINT16 singleLinkLen · -* UINT16 oppIdIdx ԷΨһID·λ -* UINT8 oppIdsNum ԷΨһID -* const UINT32 oppIds[] ԷΨһID -*: -*: -*ֵ: UINT16 aftLinkDataLen ·ݳ -*/ -static UINT16 DelRsspiNotOppId(UINT16 linkDataLen, UINT8 linkData[], UINT16 singleLinkLen, UINT16 oppIdIdx, UINT8 oppIdsNum, const UINT32 oppIds[]) -{ - UINT16 aftLinkDataLen = linkDataLen; /*·ݳ*/ - UINT16 i = 0; /*ѭ*/ - UINT16 j = 0; /*ѭ*/ - UINT16 linkNum = linkDataLen / singleLinkLen; /*ĵ·*/ - UINT32 oppIdLink = 0; /*·ϢжԷΨһID*/ - UINT16 curIdx = 0; /*ǰ·±λ*/ - - if (( NULL != linkData)&&( NULL != oppIds)) - { - for (i = 0; i < linkNum; i++) /*·Ϣ*/ - { - oppIdLink = LongFromChar(&linkData[curIdx + oppIdIdx]); /*·жԷΨһID*/ - for (j = 0; j < oppIdsNum; j++) - { - if (oppIds[j] == oppIdLink) /*ҵ˳ѭ*/ - { - break; - } - } - if (j == oppIdsNum) /*δҵ,ɾ˶ԷΨһID·*/ - { - if (i < (linkNum - 1)) /*һ,ƶ·Ϣ*/ - { - CommonMemCpy(&linkData[curIdx], linkDataLen - (singleLinkLen * (i + 1)), &linkData[curIdx + singleLinkLen], linkDataLen - (singleLinkLen * (i + 1))); - } - aftLinkDataLen -= singleLinkLen; /*󳤶*/ - } - else - { - curIdx += singleLinkLen; /*±ƫһ·*/ - } - } - - } - - return aftLinkDataLen; -} - -/* -*: AdjustRsspiVarArray -*: RSSPI·,ָֻĶԷַ· -*: UINT8 oppIdsNum ԷID߼ID -* const UINT16 oppTypeIds[] ԷID -* const UINT16 oppLogicIds[] Է߼ID -* ProtclConfigInfoStru *pUnifyInfo ṹ -*: -*: -*ֵ: -*/ -void AdjustRsspiVarArray(UINT8 oppIdsNum, const UINT16 oppTypeIds[], const UINT16 oppLogicIds[], ProtclConfigInfoStru *pUnifyInfo) -{ - const UINT16 oppIdSafeIdx = 7; /*ԷΨһIDڰȫλ*/ - const UINT16 oppIdRedundIdx = 0; /*ԷΨһIDλ*/ - - UINT32 oppIds[RSSPI_OPP_IDS_NUM] = { 0 }; /*ԷΨһID*/ - UINT32 i = 0; /*ѭ*/ - UINT8 *linkData = NULL; /*·Ϣ*/ - UINT16 totalLen = 0; /*·ܳ*/ - UINT16 curIdx = 0; /*ǰ·±λ*/ - UINT32 curProtcl = 1; /*ǰЭʶ*/ - UINT16 curLen = 0; /*ǰЭ·*/ - UINT16 curLenIdx = 0; /*ǰЭ·λ*/ - UINT16 safeLen = 0; /*RSSPIȫ·*/ - UINT16 safeLenIdx = 0; /*RSSPIȫ·λ*/ - UINT16 aftSafeLen = 0; /*RSSPIȫ·*/ - UINT16 redundLen = 0; /*RSSPI·*/ - UINT16 redundLenIdx = 0; /*RSSPI·λ*/ - UINT16 aftRedundLen = 0; /*RSSPI·*/ - UINT8 isAdjustRear = 0; /*Ƿβ*/ - -#ifdef USE_RSSPI - if ((0 < oppIdsNum) && (RSSPI_OPP_IDS_NUM > oppIdsNum) && (NULL != oppTypeIds) && (NULL != oppLogicIds) && (NULL != pUnifyInfo) && (NULL != pUnifyInfo->VarArray) - && (NULL != pUnifyInfo->GlobalVar) && (NULL != pUnifyInfo->GlobalVar->gpRsspUnitInfo) && (NULL != pUnifyInfo->GlobalVar->gpRsspUnitInfo->pDsuRsspInfoStruWL)) /**/ - { - for (i = 0; i < oppIdsNum; i++) /*ȡRSSPIԷΨһID*/ - { -#ifdef RSSP_NO_HLHT - oppIds[i] = oppTypeIds[i]; -#else - oppIds[i] = DquTypeIdToHlhtId(oppTypeIds[i], oppLogicIds[i], pUnifyInfo->GlobalVar->gpRsspUnitInfo->pDsuRsspInfoStruWL); /*ԷΨһID*/ -#endif - } - - linkData = pUnifyInfo->VarArray; /*·Ϣ*/ - /*·ܳ*/ - totalLen = 2 + ShortFromChar(linkData); - curIdx += 2; - - for (curProtcl = 1; curProtcl <= PROTCL_MGECFG_MAXCNT; curProtcl++) /*Э*/ - { - /*ǰ·±λ*/ - curLen = ShortFromChar(&linkData[curIdx]); - curLenIdx = curIdx; - curIdx += 2; - - if ((curIdx + curLen) <= totalLen) /*Э·Ч*/ - { - if ((DSU_PROTCL_RSSP == curProtcl) && (2 < curLen)) /*ǰRSSPIЭ,·Ϣ*/ - { - safeLen = ShortFromChar(&linkData[curIdx]); /*ȫ·*/ - if (((2 + safeLen) <= curLen) && (0 == (safeLen%RSSP_VAR_NODE_LEN_WL))) /*ȫ·Ч*/ - { - safeLenIdx = curIdx; /*ȫ·λ*/ - curIdx += 2; - - if (0 < safeLen) /*аȫ·Ϣ*/ - { - aftSafeLen = DelRsspiNotOppId(safeLen, &linkData[curIdx], RSSP_VAR_NODE_LEN_WL, oppIdSafeIdx, oppIdsNum, oppIds); - } - - redundLenIdx = curIdx + safeLen; - redundLen = curLen - 2 - safeLen; - if ((0 < redundLen) && (0 == (redundLen % RP_LINK_LEN))) - { - aftRedundLen = DelRsspiNotOppId(redundLen, &linkData[redundLenIdx], RP_LINK_LEN, oppIdRedundIdx, oppIdsNum, oppIds); - } - - if ((aftSafeLen <= safeLen) && (aftRedundLen <= redundLen)) /*󳤶Ч*/ - { - curIdx += aftSafeLen; /*㿪ʼλ*/ - if (aftSafeLen < safeLen) /*ȫ*/ - { - CommonMemCpy(&linkData[curIdx], aftRedundLen, &linkData[redundLenIdx], aftRedundLen); /**/ - ShortToChar(aftSafeLen, &linkData[safeLenIdx]); /*ôİȫ㳤*/ - isAdjustRear = 1; - } - else - { - if (aftRedundLen < redundLen) /**/ - { - isAdjustRear = 1; - } - } - curIdx += aftRedundLen; /*βݿʼλ*/ - if (1 == isAdjustRear) /*β*/ - { - CommonMemCpy(&linkData[curIdx], totalLen - curLenIdx - 2 - curLen, &linkData[curLenIdx + 2 + curLen], totalLen - curLenIdx - 2 - curLen); /*β*/ - ShortToChar(2 + aftSafeLen + aftRedundLen, &linkData[curLenIdx]); /*ôRSSPI·*/ - ShortToChar(totalLen - 2 - (safeLen - aftSafeLen) - (redundLen - aftRedundLen), linkData); /*·ܳ*/ - } - } - } - - break; /*ҵRSSPI·˳ѭ*/ - } - else /*RSSPIЭѭ*/ - { - curIdx += curLen; - } - } - else /*Э·Ч,˳ѭ*/ - { - break; - } - } - } -#endif -} - /* *: ȡյ *: ProtclConfigInfoStru* pUnifyInfo @@ -505,17 +330,14 @@ void ProtclGetSwapData(UINT8 swapData[], const UINT16 swapDataMaxLen, ProtclConf } } -/* -*: ProtclSetSwapData -*: ˫CPU -*: UINT8 swapData[] 2ֽܳ+SFP(2ֽڳ+N[4ֽCRC])+RSSPI(2ֽڳ+N[4ֽSVC]) -* ProtclConfigInfoStru* protcl Эṹ -*: -*: -*ֵ: -*/ +/** + * @brief ProtclSetSwapData ˫CPU + * @param swapData 2ֽܳ+SFP(2ֽڳ+N[4ֽCRC])+RSSPI(2ֽڳ+N[4ֽSVC]) ȡֵΧ:ֽ + * @param protcl Эṹ ȡֵΧ:οṹProtclConfigInfoStru + */ void ProtclSetSwapData(UINT8 swapData[], ProtclConfigInfoStru* protcl) { + /*- ֲ*/ UINT16 swapDataLen = 0u; /*ݳ*/ UINT32 allLen = 0u; /*ܳ*/ UINT32 outAppIdx = 0u; /*Ӧλ*/ @@ -526,106 +348,115 @@ void ProtclSetSwapData(UINT8 swapData[], ProtclConfigInfoStru* protcl) UINT16 rsspiLen = 0u; /*RSSPI*/ UINT16 sfpStartIdx = 0u; /*SFPʼλ*/ UINT16 rsspiStartIdx = 0u; /*RSSPIʼλ*/ - UINT8 isProSfp = 0u; /*ǷSFP*/ - UINT8 isProRsspi = 0u; /*ǷRSSPI*/ + UINT8 isProSfp = 0u; /*-< ǷSFPΪ*/ + UINT8 isProRsspi = 0u; /*-< ǷRSSPIΪ*/ UINT8* record = NULL; /*־*/ UINT16 recordSize = 0u; /*־鳤*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ - if ((NULL != swapData) && (NULL != protcl) && (NULL != protcl->GlobalVar)) + if ((NULL != swapData) && (NULL != protcl) && (NULL != protcl->GlobalVar)) /*-< Ƿǿ*/ { + /*- ¼ú־*/ record = protcl->RecordArray; recordSize = protcl->RecordArraySize; PrintRecArrayByte(record, recordSize, 0xD2u); - swapDataLen = ShortFromChar(&swapData[0]); /*ܳ*/ + swapDataLen = ShortFromChar(&swapData[0]); /*-< õܳ*/ - sfpStartIdx = 2u; /*RSSPIʼλ*/ - sfpLen = ShortFromChar(&swapData[2]); - rsspiStartIdx = 2u + sfpStartIdx + sfpLen; /*RSSPIʼλ*/ - rsspiLen = ShortFromChar(&swapData[rsspiStartIdx]); - if (((2u + sfpLen + 2u + rsspiLen) == swapDataLen) && (0u == (sfpLen % 4u)) && (0u == (rsspiLen % 4u))) /*ȼ*/ + sfpStartIdx = 2u; /*-< RSSPIʼλΪ2*/ + sfpLen = ShortFromChar(&swapData[2]); /*-< õ*/ + rsspiStartIdx = 2u + sfpStartIdx + sfpLen; /*-< RSSPIʼλ*/ + rsspiLen = ShortFromChar(&swapData[rsspiStartIdx]); /*-< RSSPIʼλ*/ + if (((2u + sfpLen + 2u + rsspiLen) == swapDataLen) && (0u == (sfpLen % 4u)) && (0u == (rsspiLen % 4u))) /*-< ȼ*/ { /*AppArray:4ֽܳ+|&2ֽڳ+1ֽЭ+1ֽĿ+1ֽĿID+2ֽԤ+Ϸ(Э)*/ - allLen = LongFromChar(&protcl->AppArray[0]); - if (0u < allLen) /**/ + allLen = LongFromChar(&protcl->AppArray[0]); /*-< õӦó*/ + if (0u < allLen) /*-< Ƿ*/ { - outAppData = &protcl->AppArray[4]; - while (outAppIdx < allLen) /*Ӧ*/ - { - pkgLen = 2u + ShortFromChar(&outAppData[outAppIdx]); - if ((outAppIdx + pkgLen) <= allLen) /*ǰӦλüӳСڵӦó,Ϸ*/ - { - protclType = outAppData[outAppIdx + 2u]; /*Э*/ - if ((DSU_PROTCL_SFP == protclType) || (DSU_PROTCL_RSSP == protclType)) /*SFPRSSPI*/ - { - if (DSU_PROTCL_SFP == protclType) /*SFP*/ - { - if (0u == isProSfp) /*ֻһ,,SFPһ*/ - { -#ifdef USE_SFP - SfpSetSwapDataForOut(&swapData[sfpStartIdx], &outAppData[outAppIdx], protcl->GlobalVar->gpsfpUnitInfo); -#endif - isProSfp = 1u; - } - } - else /*RSSPI*/ - { - if (0u == isProRsspi) /*ֻһ,,RSSPIһ*/ - { -#ifdef USE_RSSPI - RsspiSetSwapDataForOut(&swapData[rsspiStartIdx], &outAppData[outAppIdx], protcl->GlobalVar->gpRsspUnitInfo); -#endif - isProRsspi = 1u; - } - } - } - - outAppIdx += pkgLen; - } - else /*ȷǷ*/ - { - PrintRecArrayByte(record, recordSize, 3u); - PrintRecArray2ByteB(record, recordSize, pkgLen); - PrintRecArray4ByteB(record, recordSize, outAppIdx); - PrintRecArray4ByteB(record, recordSize, allLen); - - break; - } - } + deepPro = 1u; /*-< ô־Ϊ*/ } else /**/ { + /*- ¼Ӧóȴ־*/ PrintRecArrayByte(record, recordSize, 2u); PrintRecArrayByte(record, recordSize, 0u); } } else /*ȼ*/ { + /*- ¼ȼ־*/ PrintRecArrayByte(record, recordSize, 1u); PrintRecArray2ByteB(record, recordSize, swapDataLen); PrintRecArray2ByteB(record, recordSize, sfpLen); PrintRecArray2ByteB(record, recordSize, rsspiLen); } } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + outAppData = &protcl->AppArray[4]; /*-< õ*/ + while (outAppIdx < allLen) /*-< Ӧ*/ + { + pkgLen = 2u + ShortFromChar(&outAppData[outAppIdx]); /*-< õ*/ + if ((outAppIdx + pkgLen) <= allLen) /*-< ǰӦλüӳСڵӦó,Ϸ*/ + { + protclType = outAppData[outAppIdx + 2u]; /*-< õЭ*/ + if ((DSU_PROTCL_SFP == protclType) || (DSU_PROTCL_RSSP == protclType)) /*-< ЭǷSFPRSSPI*/ + { + if (DSU_PROTCL_SFP == protclType) /*-< ЭSFP*/ + { + if (0u == isProSfp) /*-< SFPǷΪ*//*ֻһ,,SFPһ*/ + { +#ifdef USE_SFP + SfpSetSwapDataForOut(&swapData[sfpStartIdx], &outAppData[outAppIdx], protcl->GlobalVar->gpsfpUnitInfo); /*-< ָ˫CPUݺ*/ +#endif + isProSfp = 1u; /*-< ǷSFPΪ*/ + } + } + else /*RSSPI*/ + { + if (0u == isProRsspi) /*-< RSSPIǷΪ*//*ֻһ,,RSSPIһ*/ + { +#ifdef USE_RSSPI + RsspiSetSwapDataForOut(&swapData[rsspiStartIdx], &outAppData[outAppIdx], protcl->GlobalVar->gpRsspUnitInfo); /*-< ˫CPUݺ*/ +#endif + isProRsspi = 1u; /*-< ǷRSSPIΪ*/ + } + } + } + + outAppIdx += pkgLen; /*-< ±*/ + } + else /*ȷǷ*/ + { + /*- ¼ȼ־*/ + PrintRecArrayByte(record, recordSize, 3u); + PrintRecArray2ByteB(record, recordSize, pkgLen); + PrintRecArray4ByteB(record, recordSize, outAppIdx); + PrintRecArray4ByteB(record, recordSize, allLen); + + break; + } + } + } } -/* -*: ProtclDelAllLink -*: ɾ· -*: ProtclConfigInfoStru* protcl Эṹ -*: -*: -*ֵ: -*/ +/** + * @brief ProtclDelAllLink ɾ· + * @param protcl Эṹ ȡֵΧ:οṹProtclConfigInfoStru + */ void ProtclDelAllLink(ProtclConfigInfoStru* protcl) { - if ((NULL != protcl) && (NULL != protcl->GlobalVar)) /**/ + if ((NULL != protcl) && (NULL != protcl->GlobalVar)) /*-< Ƿǿ*/ { #ifdef USE_SFP - SfpDelAllLink(protcl->GlobalVar->gpsfpUnitInfo); + SfpDelAllLink(protcl->GlobalVar->gpsfpUnitInfo); /*-< SFPɾ·*/ #endif #ifdef USE_RSSPI - RsspiDelAllLink(protcl->GlobalVar->gpRsspUnitInfo); + RsspiDelAllLink(protcl->GlobalVar->gpRsspUnitInfo); /*-< RSSPIɾ·*/ +#endif +#ifdef USE_RP + RpDelAllLink(protcl->GlobalVar->gpRedunUnitInfo); /*-< RPɾ·*/ #endif } } @@ -1047,30 +878,27 @@ static UINT8 TwoNetRepeatParam(ProtclConfigInfoStru* protcl, UINT8* data1, UINT3 return rtnVal; } -/* -*: TwoDevRepeat -*: 豸ݱȽȥظ -*: -* ProtclConfigInfoStru* protcl Эṹ -* UINT8* data1 һ(ʽ:{4ֽڳ+{2ֽڳ+2ֽ豸ID+2ֽ߼ID+ݰ}+{N}}+{N}) -* const UINT32 data1IdxNet 1ǰ± -* const UINT32 data1Len һݳ -* UINT8* data2 (ʽ:ͬ) -* const UINT32 data2Len ݳ -* const UINT32 net2Len 2 -* const UINT32 data2StagingMaxLen ݴ󳤶 -*: -* UINT32* data1Idx 1± -* UINT32* data2Idx 2± -* UINT32* net2Idx 2± -* UINT8* data2Staging ݴ -* UINT32* data2StagingIdx ݴ± -*: -*ֵ: ɹ:1 ʧ:1 -*/ +/** + * @brief TwoDevRepeat 豸ݱȽȥظ(ֻƽ̨ʹ) + * @param protcl Эṹ ȡֵΧ:οṹProtclConfigInfoStru + * @param data1 һ(ʽ:{4ֽڳ+{2ֽڳ+2ֽ豸ID+2ֽ߼ID+ݰ}+{N}}+{N}) ȡֵΧ:ֽ + * @param data1IdxNet 1ǰ± ȡֵΧ:0x00000000-0xFFFFFFFF + * @param data1Idx 1± ȡֵΧ:0x00000000-0xFFFFFFFF + * @param data1Len һݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param data2 (ʽ:ͬһ) ȡֵΧ:ֽ + * @param data2Idx 2± ȡֵΧ:0x00000000-0xFFFFFFFF + * @param data2Len ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param net2Idx 2± ȡֵΧ:0x00000000-0xFFFFFFFF + * @param net2Len 2 ȡֵΧ:0x00000000-0xFFFFFFFF + * @param data2Staging ݴ ȡֵΧ:ֽ + * @param data2StagingIdx ݴ± ȡֵΧ:0x00000000-0xFFFFFFFF + * @param data2StagingMaxLen ݴ󳤶 ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 1:ɹ :ʧ + */ static UINT8 TwoDevRepeat(ProtclConfigInfoStru* protcl, UINT8* data1, const UINT32 data1IdxNet, UINT32* data1Idx, const UINT32 data1Len, UINT8* data2, UINT32* data2Idx, const UINT32 data2Len, UINT32* net2Idx, const UINT32 net2Len, UINT8* data2Staging, UINT32* data2StagingIdx, const UINT32 data2StagingMaxLen) { - UINT8 rtnVal = 0u; /*ֵ*/ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ0*/ UINT16 dev2Len = 0u; /*豸ݳ*/ UINT32 dev2UniqueId = 0u; /*豸ΨһID(ID+߼ID)*/ UINT8 dev2oppTypePtl = 0u; /*Է豸Э*/ @@ -1078,95 +906,101 @@ static UINT8 TwoDevRepeat(ProtclConfigInfoStru* protcl, UINT8* data1, const UINT UINT32 net1Idx = 0u; /*1±*/ UINT8 funRtn = 0u; /*úֵ*/ UINT8 isErr = 0u; /*Ƿ*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ - funRtn = TwoDevRepeatParam(protcl, data1, data1Idx, data2, data2Idx, net2Idx, data2Staging, data2StagingIdx); - if (1u == funRtn) /*ú*/ + funRtn = TwoDevRepeatParam(protcl, data1, data1Idx, data2, data2Idx, net2Idx, data2Staging, data2StagingIdx); /*-< 豸ݱȽȥظݺ麯*/ + if (1u == funRtn) /*-< úǷ񷵻*/ { - if (*data2Idx + 6u < data2Len) /*±Ϸ.6Ϊ2ֽ豸ݳ+4ֽ豸ΨһID*/ + if (*data2Idx + 6u < data2Len) /*-< ±Ϸ.6Ϊ2ֽ豸ݳ+4ֽ豸ΨһID*/ { - dev2Len = 2u + ShortFromChar(&data2[*data2Idx]); /*豸ݳ*/ - if ((6u < (UINT32)dev2Len) && (4u + (UINT32)dev2Len <= net2Len)) /*豸ݳȺϷ*/ + dev2Len = 2u + ShortFromChar(&data2[*data2Idx]); /*-< õ豸2ݳ*/ + if ((6u < (UINT32)dev2Len) && (4u + (UINT32)dev2Len <= net2Len)) /*-< 豸2ݳȺϷ*/ { - dev2oppTypePtl = protcl->GlobalVar->oppTypePtl[data2[*data2Idx + 2u]]; - dev2UniqueId = LongFromChar(&data2[*data2Idx + 2u]); /*豸ΨһID*/ - if ((data1IdxNet + 4u) <= data1Len) /*λúϷ*/ + dev2oppTypePtl = protcl->GlobalVar->oppTypePtl[data2[*data2Idx + 2u]]; /*-< õ豸2ԷЭ*/ + dev2UniqueId = LongFromChar(&data2[*data2Idx + 2u]); /*-< õ豸2ΨһID*/ + if ((data1IdxNet + 4u) <= data1Len) /*-< 1λǷϷ*/ { - net1Len = 4u + LongFromChar(&data1[data1IdxNet]); /**/ - if (net1Len <= data1Len) /*ȺϷ*/ + net1Len = 4u + LongFromChar(&data1[data1IdxNet]); /*-< õ1*/ + if (net1Len <= data1Len) /*-< 1ȺϷ*/ { - net1Idx += 4u; - if (4u < net1Len) /*豸*/ - { - funRtn = RepeatCheck(dev2oppTypePtl, dev2UniqueId, &data2[*data2Idx], dev2Len, data1, data1Idx, data1Len, data1IdxNet, &net1Idx, net1Len, data2Staging, data2StagingIdx, data2StagingMaxLen); - if (1u == funRtn) /*úֵ*/ - { - *net2Idx += dev2Len; - *data2Idx += dev2Len; - rtnVal = 1u; - } - else /*úֵ*/ - { - rtnVal = funRtn; - } - } - else /*豸*/ - { - if (data1IdxNet == *data1Idx) /*һ*/ - { - if (net1Idx == net1Len) /*-< ǷϷ*/ - { - *data1Idx += net1Len; /*-< һ±*/ - } - else /*ȷǷ*/ - { - isErr = 1u; /*-< ô־Ϊ1*/ - } - } - if (0u == isErr) /*-< Ƿ޴*/ - { - if (*data2StagingIdx + dev2Len <= data2StagingMaxLen) /*-< ݴǷпռ*/ - { - (void)CommonMemCpy(&data2Staging[*data2StagingIdx], data2StagingMaxLen - (*data2StagingIdx), &data2[*data2Idx], dev2Len); /*-< 豸ݸƵݴ*/ - *data2StagingIdx += dev2Len; /*-< öݴ泤豸*/ - - *net2Idx += dev2Len; /*-< ö±豸*/ - *data2Idx += dev2Len; /*-< ö±豸*/ - - rtnVal = 1u; /*-< úֵΪ1*/ - } - else /*ݴ޿ռ*/ - { - rtnVal = DATA2_STAGING_NO; /*-< úֵΪ19*/ - } - } - else /*д*/ - { - rtnVal = NO_DATA_NET1_LEN_ILLEGAL; /*-< úֵΪ20*/ - } - } + deepPro = 1u; /*-< ô־Ϊ*/ } else /*ȷǷ*/ { - rtnVal = NET1_LEN_ILLEGAL; + rtnVal = NET1_LEN_ILLEGAL; /*-< úֵΪ18*/ } } else /*λ÷Ƿ*/ { - rtnVal = DATA1_IDX_ILLEGAL; + rtnVal = DATA1_IDX_ILLEGAL; /*-< úֵΪ12*/ } } else /*豸ݳȷǷ*/ { - rtnVal = DATA2_DEV_LEN_ILLEGAL; + rtnVal = DATA2_DEV_LEN_ILLEGAL; /*-< úֵΪ11*/ } } else /*±Ƿ*/ { - rtnVal = DATA2_IDX_ILLEGAL; + rtnVal = DATA2_IDX_ILLEGAL; /*-< úֵΪ10*/ } } - return rtnVal; + if (1u == deepPro) /*-< ־ǷΪ*/ + { + net1Idx += 4u; /*-< 1±4*/ + if (4u < net1Len) /*-< 1豸*/ + { + funRtn = RepeatCheck(dev2oppTypePtl, dev2UniqueId, &data2[*data2Idx], dev2Len, data1, data1Idx, data1Len, data1IdxNet, &net1Idx, net1Len, data2Staging, data2StagingIdx, data2StagingMaxLen); /*-< ظ麯*/ + if (1u == funRtn) /*-< úֵǷ*/ + { + *net2Idx += dev2Len; /*-< 2豸2*/ + *data2Idx += dev2Len; /*-< 2豸2*/ + rtnVal = 1u; /*-< úֵΪ1*/ + } + else /*úֵ*/ + { + rtnVal = funRtn; /*-< úֵΪúֵ*/ + } + } + else /*豸*/ + { + if (data1IdxNet == *data1Idx) /*-< Ƿһ*/ + { + if (net1Idx == net1Len) /*-< ǷϷ*/ + { + *data1Idx += net1Len; /*-< һ±*/ + } + else /*ȷǷ*/ + { + isErr = 1u; /*-< ô־Ϊ1*/ + } + } + if (0u == isErr) /*-< Ƿ޴*/ + { + if (*data2StagingIdx + dev2Len <= data2StagingMaxLen) /*-< ݴǷпռ*/ + { + (void)CommonMemCpy(&data2Staging[*data2StagingIdx], data2StagingMaxLen - (*data2StagingIdx), &data2[*data2Idx], dev2Len); /*-< 豸ݸƵݴ*/ + *data2StagingIdx += dev2Len; /*-< öݴ泤豸*/ + + *net2Idx += dev2Len; /*-< ö±豸*/ + *data2Idx += dev2Len; /*-< ö±豸*/ + + rtnVal = 1u; /*-< úֵΪ1*/ + } + else /*ݴ޿ռ*/ + { + rtnVal = DATA2_STAGING_NO; /*-< úֵΪ19*/ + } + } + else /*д*/ + { + rtnVal = NO_DATA_NET1_LEN_ILLEGAL; /*-< úֵΪ20*/ + } + } + } + + return rtnVal; /*-< غֵ*/ } /* @@ -1546,4 +1380,4 @@ static UINT8 RepeatValCheckParam(UINT8* isRepeat, UINT8* devData, UINT16 devLen, } return rtnVal; -} \ No newline at end of file +} diff --git a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.h b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.h index 123e986..0bd7afa 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.h +++ b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclInterFun.h @@ -147,19 +147,6 @@ UINT8 ProtclReceiveTcpStateFunc(UINT16 TcpStateDataLen,UINT8* pTcpStateData, Pro ************************************************************************/ UINT8 ProtclSendTcpCtrlFunc(UINT16 *pTcpCtrlDataLen,UINT8 *pTcpCtrlData, ProtclConfigInfoStru *pUnifyInfo); -/* -*: AdjustRsspiVarArray -*: RSSPI·,ָֻĶԷַ· -*: UINT8 oppIdsNum ԷID߼ID -* const UINT16 oppTypeIds[] ԷID -* const UINT16 oppLogicIds[] Է߼ID -* ProtclConfigInfoStru *pUnifyInfo ṹ -*: -*: -*ֵ: -*/ -void AdjustRsspiVarArray(UINT8 oppIdsNum, const UINT16 oppTypeIds[], const UINT16 oppLogicIds[], ProtclConfigInfoStru *pUnifyInfo); - /* *: ȡյ *: ProtclConfigInfoStru* pUnifyInfo @@ -196,14 +183,10 @@ void ProtclGetSwapData(UINT8 swapData[], const UINT16 swapDataMaxLen, ProtclConf */ void ProtclSetSwapData(UINT8 swapData[], ProtclConfigInfoStru* protcl); -/* -*: ProtclDelAllLink -*: ɾ· -*: ProtclConfigInfoStru* protcl Эṹ -*: -*: -*ֵ: -*/ +/** + * @brief ProtclDelAllLink ɾ· + * @param protcl Эṹ ȡֵΧ:οṹProtclConfigInfoStru + */ void ProtclDelAllLink(ProtclConfigInfoStru* protcl); /* diff --git a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclMgeCfg.h b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclMgeCfg.h index d30f899..d113089 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclMgeCfg.h +++ b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclMgeCfg.h @@ -29,8 +29,8 @@ extern "C" { /****#Ͷ#*************************************************************/ /* ָ */ -typedef UINT8 (*F_INIT)(UINT8*, UINT32, UINT8*, UINT8, ProtclConfigInfoStru*); /* װ֮INIT */ -typedef UINT8 (*F_SND)(ProtclConfigInfoStru*, UINT8, UINT8*, UINT32*, UINT8*, UINT16*, UINT8*, UINT16*); /* װ֮SND */ +typedef UINT8 (*F_INIT)(UINT8*, UINT32, UINT8*, UINT16, ProtclConfigInfoStru*); /* װ֮INIT */ +typedef UINT8 (*F_SND)(ProtclConfigInfoStru*, UINT32, UINT8*, UINT32*, UINT8*, UINT16*, UINT8*, UINT16*); /* װ֮SND */ typedef UINT8 (* F_RCV)(QueueStruct*, ProtclConfigInfoStru*); /* װ֮RCV */ typedef UINT8 (* F_LNK)(UINT8,UINT8,UINT16, ProtclConfigInfoStru*); /* װ֮GETLNK */ typedef void (*F_NETPKGNUM)(ProtclConfigInfoStru*, const UINT8, const UINT8, const UINT16, UINT16*, UINT16*); /* װ֮NetsRecvPkgNum */ diff --git a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclStruct.h b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclStruct.h index 76a46d7..768309e 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_protocol/protclStruct.h +++ b/TSCP/src/protocol/protocol_cbtc/common_protocol/protclStruct.h @@ -71,7 +71,7 @@ extern "C" { typedef struct { PROTCL_APP_TO_STRU* pProtclAppStru; - UINT8 DevDataCnt; + UINT32 DevDataCnt; }PROTCL_SND_CFG_STRU; @@ -116,7 +116,7 @@ extern "C" { PROTCL_RCV_DATA_TYPE *RcvData; /*ʱЭݵĽṹ*/ PROTCL_APP_TO_STRU* pSndProtclAppStru; /*͵֡Ϣ*/ PROTCL_SND_CFG_STRU protclSndCfgStru[PROTCL_MGECFG_MAXCNT + 1]; /*Ϣṹ*/ - UINT8 pProtclNumBuff[PROTCL_MGECFG_MAXCNT + 1]; /*Э·*/ + UINT16 pProtclNumBuff[PROTCL_MGECFG_MAXCNT + 1]; /*Э·*/ UINT32 curDevRecordLen[PROTCL_MGECFG_MAXCNT]; /*豸ʹ־*/ DSU_PROTCL_TYPE_STRU protclTypeInfoStru; /*ѯϢṹ*/ UINT8 oppTypePtl[UINT8_MAX + 1]; /*ͨŵĶԷ豸Э*/ @@ -147,6 +147,7 @@ typedef struct UINT16 RecordArraySize; /* Э¼С */ GlobalVar *GlobalVar; /*õȫֱ*/ UINT8 MaxNumPerCycle; /*һÿЧݣӦðĵڳʼʱд*/ + UINT8 rpInterfaceType; /*RPЭӿ0x55:/ձʶΪ4ֽ;(Ĭֵ):/ձʶΪ2ֽ,ʼʱ*/ }ProtclConfigInfoStru; #ifdef __cplusplus diff --git a/TSCP/src/protocol/protocol_cbtc/common_protocol_config/protocolConfig.h b/TSCP/src/protocol/protocol_cbtc/common_protocol_config/protocolConfig.h index 7a391a9..3df043b 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_protocol_config/protocolConfig.h +++ b/TSCP/src/protocol/protocol_cbtc/common_protocol_config/protocolConfig.h @@ -4,7 +4,7 @@ * Ȩ˵ * 汾 1.0 * ʱ 2019.03.07 -* +* * ļΪЭļ * ʹע @@ -19,10 +19,7 @@ /*#define CI_TASKLOCK*/ /*CItaskLock()ֶ֧߳*/ #define USE_SFP /*ʹSFP*/ -#define USE_RP /*ʹRP*/ -#define USE_RSR /*ʹRSR*/ #define USE_RSSPI /*ʹRSSPI*/ -#define USE_RSSPII /*ʹRSSPII*/ #define USE_FSFB /*ʹFSFB*/ #endif diff --git a/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.c b/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.c index b111921..63780ce 100644 --- a/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.c +++ b/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.c @@ -17,60 +17,91 @@ #include "dquDataTypeDefine.h" #define DSU_COMM_PROTCL_STRU_SIZE 3 +#define DSU_IP_INFO_STRU_SIZE 30 /*豸IPַռֽڳ*/ DSU_BOOK_IP_INFO_STRU DsuBookIpInfoStru; /*ʼ֮ڱʼ֮ݵı*/ -/* -*: dsuIpInit -*: RPѯʼ -*: UINT8 *pFsName FSļ -*: -*: -*ֵ: 1:ɹ;0ʧ -*/ -UINT8 dsuIpInit(UINT8 *pFsName) +/** + * @brief dsuIpInit ʼȡݲ + * @param pFsName FSļ ȡֵΧֽ + * @param interfaceType ӿ ȡֵΧ:0x55:/ձʶΪ4ֽ;(Ĭֵ):/ձʶΪ2ֽ + * @return 0:ʧ 1:ɹ + */ +UINT8 dsuIpInit(UINT8* pFsName, UINT8 interfaceType) { - UINT8 rtn = 0; /*ֵ*/ - UINT8 readRtn = 0; /*ȡFSֵ*/ - UINT8 *pData = NULL; /**/ - UINT32 dataLen = 0; /*ݳ*/ - UINT32 mallocLen = 0; /*ռС*/ - UINT32 offset = 0; /*ƫ*/ - UINT32 i = 0; /*ѭ*/ + UINT8 rtn = 0U; /*-< úֵΪʧ*/ + UINT8 readRtn = 0U; /*úֵ*/ + UINT8* pData = NULL; /**/ + UINT32 dataLen = 0U; /*ݳ*/ + UINT32 mallocLen = 0U; /*ռС*/ + UINT32 offset = 0U; /*-< ±Ϊ0*/ + UINT32 i = 0U; /*ѭ*/ - if (NULL != pFsName) /*ηǿ*/ + if (NULL != pFsName) /*-< Ƿǿ*/ { - readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID, &pData, &dataLen); /*ȡ豸ͨЭ*/ - if ((1 == readRtn) && (DSU_COMM_PROTCL_STRU_SIZE <= dataLen)) + readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID, &pData, &dataLen); /*-< úȡ豸ͨЭ*/ + if ((1U == readRtn) && (DSU_COMM_PROTCL_STRU_SIZE <= dataLen) && (0U == (dataLen % DSU_COMM_PROTCL_STRU_SIZE))) /*-< úǷɹ ݳ*/ { - DsuBookIpInfoStru.CommProtclStruLen = (UINT16)(dataLen / DSU_COMM_PROTCL_STRU_SIZE); /**/ - mallocLen = sizeof(DSU_COMM_PROTCL_STRU)*(DsuBookIpInfoStru.CommProtclStruLen); /*ռС*/ - DsuBookIpInfoStru.pCommProtclStru = (DSU_COMM_PROTCL_STRU*)malloc(mallocLen); /*Ϊṹռ*/ - if (NULL != DsuBookIpInfoStru.pCommProtclStru) + DsuBookIpInfoStru.CommProtclStruLen = (UINT16)(dataLen / DSU_COMM_PROTCL_STRU_SIZE); /*-< õ*/ + mallocLen = sizeof(DSU_COMM_PROTCL_STRU) * (DsuBookIpInfoStru.CommProtclStruLen); /*-< ռС*/ + DsuBookIpInfoStru.pCommProtclStru = (DSU_COMM_PROTCL_STRU*)malloc(mallocLen); /*-< úռ*/ + if (NULL != DsuBookIpInfoStru.pCommProtclStru) /*-< úǷɹ*/ { - CommonMemSet(DsuBookIpInfoStru.pCommProtclStru, mallocLen, 0, mallocLen); + CommonMemSet(DsuBookIpInfoStru.pCommProtclStru, mallocLen, 0, mallocLen); /*-< 豸ͨЭ*/ - for (i = 0; i < DsuBookIpInfoStru.CommProtclStruLen; i++) + for (i = 0U; i < DsuBookIpInfoStru.CommProtclStruLen; i++) /*-< ±ǷС*/ { - /*1ֽڱ*/ - DsuBookIpInfoStru.pCommProtclStru[i].EmitterType = pData[offset]; - offset++; - /*1ֽڶԷ*/ - DsuBookIpInfoStru.pCommProtclStru[i].ReceptorType = pData[offset]; - offset++; - /*1ֽЭ*/ - DsuBookIpInfoStru.pCommProtclStru[i].CommuType = pData[offset]; - offset++; + DsuBookIpInfoStru.pCommProtclStru[i].EmitterType = pData[offset]; /*-< ñ豸*/ + offset++; /*-< ±1*/ + + DsuBookIpInfoStru.pCommProtclStru[i].ReceptorType = pData[offset]; /*-< öԷ豸*/ + offset++; /*-< ±1*/ + + DsuBookIpInfoStru.pCommProtclStru[i].CommuType = pData[offset]; /*-< Э*/ + offset++; /*-< ±1*/ } - if (offset == dataLen) /*豸ͨЭֵɹ*/ + if (offset == dataLen) /*-< ±Ƿڱݳ*/ { - rtn = 1; + rtn = 1U; /*-< úֵΪɹ*/ + } + } + } + + if ((1U == rtn) && (INTERFACE_TYPE_FOUR == interfaceType)) /*-< ֵǷɹ ҽӿǷ/ձʶΪ4ֽ*/ + { + rtn = 0U; /*-< úֵΪʧ*/ + offset = 0U; /*-< ±Ϊ0*/ + + readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_IP_ID, &pData, &dataLen); /*-< úȡ豸IPñ*/ + if ((1U == readRtn) && (DSU_IP_INFO_STRU_SIZE <= dataLen) && (0U == (dataLen % DSU_IP_INFO_STRU_SIZE))) /*-< úǷɹ ݳ*/ + { + DsuBookIpInfoStru.devTypeIdHlhtIdLen = (UINT16)(dataLen / DSU_IP_INFO_STRU_SIZE); /*-< õ*/ + mallocLen = sizeof(DEV_TYPE_ID_HLHT_ID) * (DsuBookIpInfoStru.devTypeIdHlhtIdLen); /*-< ռС*/ + DsuBookIpInfoStru.pDevTypeIdHlhtId = (DEV_TYPE_ID_HLHT_ID*)malloc(mallocLen); /*-< úռ*/ + if (NULL != DsuBookIpInfoStru.pDevTypeIdHlhtId) /*-< úǷɹ*/ + { + CommonMemSet(DsuBookIpInfoStru.pDevTypeIdHlhtId, mallocLen, 0, mallocLen); /*-< 豸ͨЭ*/ + + for (i = 0; i < DsuBookIpInfoStru.devTypeIdHlhtIdLen; i++) /*-< ±ǷС*/ + { + DsuBookIpInfoStru.pDevTypeIdHlhtId[i].devTypeId = ShortFromChar(&pData[offset]); /*-< 豸ID*/ + offset += 2u; /*-< ±2*/ + + DsuBookIpInfoStru.pDevTypeIdHlhtId[i].hlhtId = LongFromChar(&pData[offset]); /*-< ûͨID*/ + offset += 4u; /*-< ±4*/ + + offset += (DSU_IP_INFO_STRU_SIZE - 6u); /*-< ±г*/ + } + if (offset == dataLen) /*-< ±Ƿڱݳ*/ + { + rtn = 1U; /*-< úֵΪɹ*/ + } } } } } - return rtn; + return rtn; /*-< غֵ*/ } /* @@ -149,3 +180,53 @@ UINT8 dsurRpGetProtclType(UINT16 LocalName, UINT16 DestName,UINT8* protclTye) chReturnValue =1; return chReturnValue; } + +/** + * @brief GetHlhtId 豸IDȡͨID + * @param devTypeId 豸ID ȡֵΧ:0x0000-0xFFFF + * @return ͨID ȡֵΧ:0x00000000-0xFFFFFFFF + */ +UINT32 GetHlhtId(UINT16 devTypeId) +{ + UINT32 rtnVal = 0U; /*-< õúֵΪ0*/ + UINT16 i = 0U; /*-< 豸IDӦͨID±Ϊ0*/ + + if (NULL != DsuBookIpInfoStru.pDevTypeIdHlhtId) /*-< 豸IDӦͨIDǷǿ*/ + { + for (i = 0U; i < DsuBookIpInfoStru.devTypeIdHlhtIdLen; i++) /*-< 豸IDӦͨID±ǷС豸IDӦͨID鳤*/ + { + if (DsuBookIpInfoStru.pDevTypeIdHlhtId[i].devTypeId == devTypeId) /*-< 豸IDӦͨID±豸IDǷڴ豸ID*/ + { + rtnVal = DsuBookIpInfoStru.pDevTypeIdHlhtId[i].hlhtId; /*-< 豸IDӦͨID±ĻͨIDֵֵ*/ + break; /*-< ˳*/ + } + } + } + + return rtnVal; /*-< غֵ*/ +} + +/** + * @brief GetDevTypeId ݻͨIDȡ豸ID + * @param hlhtId ͨID ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 豸ID ȡֵΧ:0x0000-0xFFFF + */ +UINT16 GetDevTypeId(UINT32 hlhtId) +{ + UINT16 rtnVal = 0U; /*-< õúֵΪ0*/ + UINT16 i = 0U; /*-< 豸IDӦͨID±Ϊ0*/ + + if (NULL != DsuBookIpInfoStru.pDevTypeIdHlhtId) /*-< 豸IDӦͨIDǷǿ*/ + { + for (i = 0U; i < DsuBookIpInfoStru.devTypeIdHlhtIdLen; i++) /*-< 豸IDӦͨID±ǷС豸IDӦͨID鳤*/ + { + if (DsuBookIpInfoStru.pDevTypeIdHlhtId[i].hlhtId == hlhtId) /*-< 豸IDӦͨID±ĻͨIDǷڴĻͨID*/ + { + rtnVal = DsuBookIpInfoStru.pDevTypeIdHlhtId[i].devTypeId; /*-< 豸IDӦͨID±豸IDֵֵ*/ + break; /*-< ˳*/ + } + } + } + + return rtnVal; /*-< غֵ*/ +} \ No newline at end of file diff --git a/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.h b/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.h index 802dd78..f6cefa4 100644 --- a/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.h +++ b/TSCP/src/protocol/redun_record_cbtc/common_dqu_rp/dsuRpFunc.h @@ -20,6 +20,8 @@ extern "C" { #include "CommonTypes.h" +#define INTERFACE_TYPE_FOUR (0x55) /*ӿ0x55:/ձʶΪ4ֽ*/ + /*豸ͨЭ0x4002*/ typedef struct { @@ -28,22 +30,30 @@ extern "C" { UINT8 CommuType; /*ʹõͨЭ飬1ΪSfp2ΪRp3ΪRsr4ΪRSSPI,5ΪRSSPII*/ }DSU_COMM_PROTCL_STRU; + /*豸IDӦͨID*/ + typedef struct + { + UINT16 devTypeId; /*豸ID*/ + UINT32 hlhtId; /*ͨID*/ + }DEV_TYPE_ID_HLHT_ID; + /*豸ͨЭϢ*/ typedef struct { UINT16 CommProtclStruLen; /*豸ͨЭ*/ DSU_COMM_PROTCL_STRU *pCommProtclStru; /*豸ͨЭ*/ + + UINT16 devTypeIdHlhtIdLen; /*豸IDӦͨID鳤*/ + DEV_TYPE_ID_HLHT_ID* pDevTypeIdHlhtId; /*豸IDӦͨID*/ }DSU_BOOK_IP_INFO_STRU; - /* - *: dsuIpInit - *: RPѯʼ - *: UINT8 *pFsName FSļ - *: - *: - *ֵ: 1:ɹ;0ʧ - */ - UINT8 dsuIpInit(UINT8 *pFsName); + /** + * @brief dsuIpInit ʼȡݲ + * @param pFsName FSļ ȡֵΧֽ + * @param interfaceType ӿ ȡֵΧ:0x55:/ձʶΪ4ֽ;(Ĭֵ):/ձʶΪ2ֽ + * @return 0:ʧ 1:ɹ + */ + UINT8 dsuIpInit(UINT8* pFsName, UINT8 interfaceType); /* *: dsuRpGetDevType @@ -77,6 +87,20 @@ extern "C" { */ UINT8 dsurRpGetProtclType(UINT16 LocalName, UINT16 DestName, UINT8* protclTye); + /** + * @brief GetHlhtId 豸IDȡͨID + * @param devTypeId 豸ID ȡֵΧ:0x0000-0xFFFF + * @return ͨID ȡֵΧ:0x00000000-0xFFFFFFFF + */ + UINT32 GetHlhtId(UINT16 devTypeId); + + /** + * @brief GetDevTypeId ݻͨIDȡ豸ID + * @param hlhtId ͨID ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 豸ID ȡֵΧ:0x0000-0xFFFF + */ + UINT16 GetDevTypeId(UINT32 hlhtId); + #ifdef __cplusplus } #endif diff --git a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.c b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.c index 4682be2..756bc4a 100644 --- a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.c +++ b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.c @@ -12,7 +12,6 @@ #include "RpInterface.h" #include "Convert.h" #include "CommonRecord.h" -#include "CommonStack.h" #include "RpPlatform.h" #include "RpDeclare.h" #include "dsuRpFunc.h" @@ -20,156 +19,157 @@ /*崻¼Ϣ*/ UINT32 gRpErrorInfo; -UINT8 RpMemSet(UINT8 *pDestAdd, UINT16 Len, UINT8 Val); +UINT8 RpMemSet(UINT8 *pDestAdd, UINT16 Len, UINT8 Val); +static UINT8 StackInitial(CommonStackRp* pStack, UINT16 TotalSize); +static UINT8 StackPop(CommonStackRp* pStack, STACK_DATA_TYPE_RP* pData); +static UINT8 StackPush(CommonStackRp* pStack, STACK_DATA_TYPE_RP Data); +static UINT8 StackFree(CommonStackRp* pStack); -/************************************************************************* -* : -* ͨúʵڴռ -* ˵: -* [in]RP_INFO_STRU *pRpStruct ͬһṹ; -* ֵ: -* return 1 -* return 0쳣 -**************************************************************************/ -UINT8 RpInit(UINT8* fileName,RP_INFO_STRU *pRpStruct)/* %RELAX */ +/** + * @brief RpInit ʼRP + * @param fileName FSļ ȡֵΧ:ֽ + * @param pRpStruct RPʵ ȡֵΧ:οṹRP_INFO_STRU + * @return 0:ʧ 1:ɹ + */ +UINT8 RpInit(UINT8* fileName, RP_INFO_STRU* pRpStruct)/* %RELAX */ { - UINT32 temp; /*¼ҪĿռС*/ - UINT8 ret = 0; /*ֵ*/ + UINT32 temp; /*¼ҪĿռС*/ + UINT8 ret = 0; /*-< úֵΪʧ*/ - if(pRpStruct == NULL) /* ǿռ */ + if (pRpStruct == NULL) /*-< Ƿǿ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /* */ + /*-< */ } - ret = dsuIpInit(fileName); - if (ret == 0) + ret = dsuIpInit(fileName, pRpStruct->interfaceType); /*-< óʼȡݲ*/ + if (ret == 0) /*-< úǷʧ*/ { - return ret; + return ret; /*-< غֵ*/ } /*ʼڲݴ*/ - temp = pRpStruct->OutputSize>pRpStruct->InputSize?pRpStruct->OutputSize:pRpStruct->InputSize; - temp += 20; - pRpStruct->Buff_Rp = (UINT8 *)malloc(temp); - if(pRpStruct->Buff_Rp == NULL) + temp = pRpStruct->OutputSize > pRpStruct->InputSize ? pRpStruct->OutputSize : pRpStruct->InputSize; /*-< Ӧøݳ*/ + temp += 20; /*-< Ӧøݳ20*/ + pRpStruct->Buff_Rp = (UINT8*)malloc(temp); /*-< úӦøݿռ*/ + if (pRpStruct->Buff_Rp == NULL) /*-< úǷʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { /*޲*/ - CommonMemSet(pRpStruct->Buff_Rp,sizeof(UINT8)*temp,0,sizeof(UINT8)*temp); + CommonMemSet(pRpStruct->Buff_Rp, sizeof(UINT8) * temp, 0, sizeof(UINT8) * temp); /*-< Ӧø*/ } - + /*Ϊ¼ռ*/ - pRpStruct->RecordArray = (UINT8 *)malloc(pRpStruct->RecordArraySize+2); - if(pRpStruct->RecordArray == NULL) + pRpStruct->RecordArray = (UINT8*)malloc(pRpStruct->RecordArraySize + 2); /*-< ú־¼ռ*/ + if (pRpStruct->RecordArray == NULL) /*-< úǷʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - CommonMemSet(pRpStruct->RecordArray,sizeof(UINT8)*(pRpStruct->RecordArraySize+2),0,sizeof(UINT8)*(pRpStruct->RecordArraySize+2)); + CommonMemSet(pRpStruct->RecordArray, sizeof(UINT8) * (pRpStruct->RecordArraySize + 2), 0, sizeof(UINT8) * (pRpStruct->RecordArraySize + 2)); /*-< ־¼*/ } /*ΪAppArrayռ*/ - pRpStruct->AppArraySize= (pRpStruct->OutputSize+11+26)*(pRpStruct->MaxNumPerCycle)*(pRpStruct->MaxNumLink)+2; - pRpStruct->AppArray = (UINT8 *)malloc(pRpStruct->AppArraySize); - if(pRpStruct->AppArray == NULL) + pRpStruct->AppArraySize = (pRpStruct->OutputSize + 15 + 26) * (pRpStruct->MaxNumPerCycle) * (pRpStruct->MaxNumLink) + 2; /*-< ʱЭӦݳ*/ + pRpStruct->AppArray = (UINT8*)malloc(pRpStruct->AppArraySize); /*-< úЭӦݿռ*/ + if (pRpStruct->AppArray == NULL) /*-< úǷʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - CommonMemSet(pRpStruct->AppArray,sizeof(UINT8)*pRpStruct->AppArraySize,0,sizeof(UINT8)*pRpStruct->AppArraySize); + CommonMemSet(pRpStruct->AppArray, sizeof(UINT8) * pRpStruct->AppArraySize, 0, sizeof(UINT8) * pRpStruct->AppArraySize); /*-< ЭӦ*/ } /*ΪVarArrayռ*/ - pRpStruct->VarArraySize= 68 * (pRpStruct->MaxNumLink+2); /*68Ϊ·Ϣ*/ - pRpStruct->VarArray = (UINT8 *)malloc(pRpStruct->VarArraySize); - if(pRpStruct->VarArray == NULL) + pRpStruct->VarArraySize = 68 * (pRpStruct->MaxNumLink + 2); /*-< ·ݳ*/ + pRpStruct->VarArray = (UINT8*)malloc(pRpStruct->VarArraySize); /*-< ú·ݿռ*/ + if (pRpStruct->VarArray == NULL) /*-< úǷʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - CommonMemSet(pRpStruct->VarArray,sizeof(UINT8)*pRpStruct->VarArraySize,0,sizeof(UINT8)*pRpStruct->VarArraySize); + CommonMemSet(pRpStruct->VarArray, sizeof(UINT8) * pRpStruct->VarArraySize, 0, sizeof(UINT8) * pRpStruct->VarArraySize); /*-< ·*/ } /*ΪӦõĶDataToAppռ*/ - pRpStruct->DataToAppSize = (pRpStruct->InputSize + 4)*pRpStruct->MaxNumPerCycle*pRpStruct->MaxNumLink; - ret = QueueInitial(&pRpStruct->DataToApp, pRpStruct->DataToAppSize); - if(ret == 0) + pRpStruct->DataToAppSize = (pRpStruct->InputSize + 4) * pRpStruct->MaxNumPerCycle * pRpStruct->MaxNumLink; /*-< ʱЭӦöг*/ + ret = QueueInitial(&pRpStruct->DataToApp, pRpStruct->DataToAppSize); /*-< úʼЭӦö,ֵֵ*/ + if (ret == 0) /*-< ֵǷʧ*/ { - return ret; + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*-< ޲*/ } /*ΪӦøĶOutputDataQueueռ*/ - pRpStruct->OutputDataQueueSize = (pRpStruct->OutputSize + 4)*pRpStruct->MaxNumPerCycle*pRpStruct->MaxNumLink; - ret = QueueInitial(&pRpStruct->OutputDataQueue, pRpStruct->OutputDataQueueSize); - if(ret == 0) + pRpStruct->OutputDataQueueSize = (pRpStruct->OutputSize + 4) * pRpStruct->MaxNumPerCycle * pRpStruct->MaxNumLink; /*-< ʱӦøЭг*/ + ret = QueueInitial(&pRpStruct->OutputDataQueue, pRpStruct->OutputDataQueueSize); /*-< úʼʱӦøЭ,ֵֵ*/ + if (ret == 0) /*-< ֵǷʧ*/ { - return ret; + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*-< ޲*/ } /*ΪӦøĶOutnetQueueAռ*/ - pRpStruct->OutnetQueueSize = (pRpStruct->InputSize + 2 + 11)*pRpStruct->MaxNumPerCycle*pRpStruct->MaxNumLink; - ret = QueueInitial(&pRpStruct->OutnetQueueA, pRpStruct->OutnetQueueSize); - if(ret == 0) + pRpStruct->OutnetQueueSize = (pRpStruct->InputSize + 2 + 15) * pRpStruct->MaxNumPerCycle * pRpStruct->MaxNumLink; /*-< ʱӦøЭ1*/ + ret = QueueInitial(&pRpStruct->OutnetQueueA, pRpStruct->OutnetQueueSize); /*-< úʼʱӦøЭ1,ֵֵ*/ + if (ret == 0) /*-< ֵǷʧ*/ { - return ret; + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*-< ޲*/ } /*ΪӦøĶOutnetQueueBռ*/ - pRpStruct->OutnetQueueSize = (pRpStruct->InputSize + 2 +11)*pRpStruct->MaxNumPerCycle*pRpStruct->MaxNumLink; - ret = QueueInitial(&pRpStruct->OutnetQueueB, pRpStruct->OutnetQueueSize); - if(ret == 0) + pRpStruct->OutnetQueueSize = (pRpStruct->InputSize + 2 + 15) * pRpStruct->MaxNumPerCycle * pRpStruct->MaxNumLink; /*-< ʱӦøЭ2*/ + ret = QueueInitial(&pRpStruct->OutnetQueueB, pRpStruct->OutnetQueueSize); /*-< úʼʱӦøЭ2,ֵֵ*/ + if (ret == 0) /*-< ֵǷʧ*/ { - return ret; + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*-< ޲*/ } /*кŻջռ*/ - StackInitial(&pRpStruct->SnLnkStack, (UINT16)pRpStruct->MaxNumLink); + StackInitial(&pRpStruct->SnLnkStack, (UINT16)pRpStruct->MaxNumLink); /*-< úʼ·ջ*/ /*·ڵ洢ռ*/ - if(!Rp_init_SnStack(pRpStruct)) + if (!Rp_init_SnStack(pRpStruct)) /*-< óʼкŻջ*/ { - ret = 0; - return ret; - } + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ + } else { - /*޲*/ + /*-< ޲*/ } - pRpStruct->SnLinkhead = NULL; + pRpStruct->SnLinkhead = NULL; /*-< ·ջΪ*/ - ret = 1; - return ret; + ret = 1; /*-< úֵΪɹ*/ + return ret; /*-< غֵ*/ } /*********************************************************************** @@ -200,7 +200,7 @@ UINT8 RpLnkDelete(UINT16 devName,RP_INFO_STRU *pdelDevSn) curIndex->DestDevName = 0; curIndex->SnLink_Info.DestDevName = 0; RpMemSet((UINT8 *)curIndex->SnLink_Info.SnArray,sizeof(curIndex->SnLink_Info.SnArray),0); - if( StackPush(&pdelDevSn->SnLnkStack,(UINT32)curIndex) == 0) + if( StackPush(&pdelDevSn->SnLnkStack,(STACK_DATA_TYPE_RP)curIndex) == 0) { ret = 0; return ret; @@ -217,7 +217,7 @@ UINT8 RpLnkDelete(UINT16 devName,RP_INFO_STRU *pdelDevSn) curIndex->DestDevName = 0; curIndex->SnLink_Info.DestDevName = 0; RpMemSet((UINT8 *)curIndex->SnLink_Info.SnArray,sizeof(curIndex->SnLink_Info.SnArray),0); - if( StackPush(&pdelDevSn->SnLnkStack,(UINT32)curIndex) == 0) + if( StackPush(&pdelDevSn->SnLnkStack,(STACK_DATA_TYPE_RP)curIndex) == 0) { ret = 0; return ret; @@ -315,522 +315,538 @@ UINT8 RpFreeSpace(RP_INFO_STRU *pRpStruct)/* %RELAX */ return ret; } -/***************************************************************************************** -*: -* ӺݣдDataToApp -*˵: -* RP_INFO_STRU *pRpStruct ͳһṹ -*ֵ: -* ȷ1󷵻0; -*****************************************************************************************/ -UINT8 RpReceive(RP_INFO_STRU *pRpStruct)/* %RELAX */ +/** + * @brief RpReceive RP봦 + * @param pRpStruct RPʵ ȡֵΧ:οṹRP_INFO_STRU + * @return 0:ʧ 1:ɹ + */ +UINT8 RpReceive(RP_INFO_STRU* pRpStruct)/* %RELAX */ { - UINT16 Length; /*¼ݳ*/ - UINT16 LocalDevNameInFrame; - UINT16 DestDevNameInFrame; - UINT32 SnInFrame; /*¼к*/ - UINT8 len[10]; - UINT8 temp[10]; + /** ֲ*/ + UINT16 Length; /*¼ݳ*/ + UINT16 LocalDevNameInFrame; /*ID*/ + UINT16 DestDevNameInFrame; /*ԷID*/ + UINT32 SnInFrame; /*к*/ + UINT8 len[10]; /*10ֽڳ*/ + UINT8 temp[10]; /*10ֽʱ*/ UINT16 lenthofData; /*ݳ*/ - UINT16 lenthofRcvA = 0; - UINT16 lenthofRcvB = 0;/*յÿ֡ݵij(len[2]ַתõ)*/ - UINT8 ToBeContinue = 0; /*1 Դ֡ݣֱӴ֡ݣ0*/ - UINT8 QueueReadFlag; /*¼ϴζȡǺ/еĸ*/ - UINT8 QueueAvailable; /*ȡʶ*/ - UINT8 RVQueueRead; /*жȡֵ*/ - UINT8 RcvQueueReadLenth; - UINT8 i = 0; - RpSNLINK_STRU* CurrentSnNode; - UINT8 ret; - UINT32 QueueCnt; + UINT16 lenthofRcvA = 0; /*յAг*/ + UINT16 lenthofRcvB = 0; /*յBг*/ + UINT8 ToBeContinue = 0; /*-< üִб־Ϊ0 1 Դ֡ݣֱӴ֡ݣ0*/ + UINT8 QueueReadFlag; /*¼ϴζȡǺ/еĸ*/ + UINT8 QueueAvailable; /*ȡʶ*/ + UINT8 RVQueueRead; /*жȡֵ*/ + UINT8 RcvQueueReadLenth; /*նг*/ + UINT8 i = 0; /*ѭ*/ + RpSNLINK_STRU* CurrentSnNode; /*Żб*/ + UINT8 ret; /*-< úֵΪ0*/ + UINT32 QueueCnt; /**/ + UINT8 fitFrameLen = 0u; /*-< ù̶֡Ϊ0*/ + UINT32 oppHlhtId = 0u; /*ԷͨID*/ + UINT32 locHlhtId = 0u; /*ͨID*/ + UINT8 oppTypeIdArr[2] = { 0 }; /*ԷIDֽ*/ - QueueReadFlag = 0x55; - RVQueueRead = 0xFF; - QueueAvailable = 0; /*пñ־*/ - CurrentSnNode = NULL; - - if(pRpStruct == NULL) /* ǿռ */ - { - ret = 0; - return ret; - } - else - { - /* */ - } + QueueReadFlag = 0x55; /*-< Ƿ־Ϊ*/ + RVQueueRead = 0xFF; /*-< նбʶΪ*/ + QueueAvailable = 0; /*-< пñ־*/ + CurrentSnNode = NULL; /*-< ŻбΪ*/ - ShortToChar(0, pRpStruct->RecordArray); + if (pRpStruct == NULL) /*-< ηǿռ*/ + { + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ + } + else + { + /*-< */ + } + + ShortToChar(0, pRpStruct->RecordArray); /*-< ־¼*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Cycle:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"LName:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->LocalType,1); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->LocalID,1); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Rcv:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Cycle:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "LName:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->LocalType, 1); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->LocalID, 1); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Rcv:\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*ڿʼ־*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0xf0); - /*뵥Ԫʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0xf2); - /*TypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->LocalType); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->LocalID); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0xf0); /*-< ¼ڿʼʶ־*/ + /*뵥Ԫʶ*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0xf2); /*-< ¼봦־*/ + /*TypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalType); /*-< ¼־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalID); /*-< ¼ID־*/ #endif - for(i = 0; i < 10; i++) + for (i = 0; i < 10; i++) /*-< ǰѭ±ǷС10*/ { - len[i] = 0; + len[i] = 0; /*-< óֵΪ0*/ } - while(1) + if (INTERFACE_TYPE_FOUR == pRpStruct->interfaceType) /*-< ӿǷ/ձʶΪ4ֽ*/ { - QueueAvailable = 0; + fitFrameLen = 15u; /*-< ֡Ϊ15*/ + } + else + { + fitFrameLen = 11u; /*-< ֡Ϊ11*/ + } + + while (1) /*-< Ƿѭ*/ + { + QueueAvailable = 0; /*-< öв*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"IN:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "IN:\n"); #endif /*жϺǷ*/ - if(QueueScan(5,len,&pRpStruct->OutnetQueueA) != 0) /*ɨȣ4ֽ*/ - { - lenthofRcvA = ShortFromChar(len);/*֡ij*/ - lenthofData = ShortFromChar(&len[3]);/*ݵij*/ - - if((lenthofRcvA > (pRpStruct->InputSize + 11))||(lenthofRcvA != (lenthofData + 11))) + if (QueueScan(5, len, &pRpStruct->OutnetQueueA) != 0) /*-< AǷɨ*/ + { + lenthofRcvA = ShortFromChar(len); /*-< õ֡ij*/ + lenthofData = ShortFromChar(&len[3]); /*-< õݵij*/ + + if ((lenthofRcvA > (pRpStruct->InputSize + fitFrameLen)) || (lenthofRcvA != (lenthofData + fitFrameLen))) /*-< ǷǷ*/ { /*յݳ,ǴӶж֡ݣһ֡Ķȡ*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_INTEGRITY_R); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_INTEGRITY_R); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_INTEGRITY_R); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_INTEGRITY_R); /*-< ¼AгȷǷ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_INTEGRITY_R; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_INTEGRITY_R; /*-< ¼*/ /*lenthofRcvA+2ֽݴӶж´ζȡ*/ - QueueElementDiscard( (UINT16)(lenthofRcvA + 2), &pRpStruct->OutnetQueueA); + QueueElementDiscard((UINT16)(lenthofRcvA + 2), &pRpStruct->OutnetQueueA); /*-< úɾд˳*/ - ToBeContinue = 1; /*ֱӽһεĶȡѭ*/ + ToBeContinue = 1; /*-< Ƿѭ־Ϊ*/ } else { - QueueAvailable |= 0x0F; /*пñ־*/ - } + QueueAvailable |= 0x0F; /*-< Aпñ־*/ + } } else { - /*޲*/ + /*-< ޲*/ } /*жǷ*/ - if(QueueScan(5,len,&pRpStruct->OutnetQueueB) != 0) /*ɨȣ4ֽ*/ - { - lenthofRcvB = ShortFromChar(len);/*֡ij*/ - lenthofData = ShortFromChar(&len[3]);/*ݵij*/ - - if((lenthofRcvB> (pRpStruct->InputSize + 11))||(lenthofRcvB != (lenthofData + 11))) + if (QueueScan(5, len, &pRpStruct->OutnetQueueB) != 0) /*-< BǷɨ*/ + { + lenthofRcvB = ShortFromChar(len); /*-< õ֡ij*/ + lenthofData = ShortFromChar(&len[3]); /*-< õݵij*/ + + if ((lenthofRcvB > (pRpStruct->InputSize + fitFrameLen)) || (lenthofRcvB != (lenthofData + fitFrameLen))) /*-< ǷǷ*/ { /*¼¼յݳ*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_INTEGRITY_B); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_INTEGRITY_B); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_INTEGRITY_B); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_INTEGRITY_B); /*-< ¼BгȷǷ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_INTEGRITY_B; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_INTEGRITY_B; /*-< ¼*/ /*lenthofRcvB+2ֽݴӶж´ζȡ*/ - QueueElementDiscard( (UINT16)(lenthofRcvB + 2), &pRpStruct->OutnetQueueB); + QueueElementDiscard((UINT16)(lenthofRcvB + 2), &pRpStruct->OutnetQueueB); /*-< úɾд˳*/ - ToBeContinue = 1; /*ֱӽһεĶȡѭ*/ + ToBeContinue = 1; /*-< Ƿѭ־Ϊ*/ } else { - QueueAvailable |= 0xF0; /*пñ־*/ + QueueAvailable |= 0xF0; /*-< Aпñ־*/ } } else { - /*޲*/ + /*-< ޲*/ } - if(ToBeContinue == 0) + if (ToBeContinue == 0) /*-< Ƿѭ־ǷΪ*/ { - if(QueueAvailable == 0xFF)/*жɶ*/ - { - if(QueueReadFlag == 0x55)/*ϴζĶǺ*/ + if (QueueAvailable == 0xFF) /*-< Ƿж*/ + { + if (QueueReadFlag == 0x55) /*-< ϴζĶǷA*/ { /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueB); - if(RcvQueueReadLenth != 1) + RcvQueueReadLenth = QueueRead(2, pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueB); /*-< úȡB2ֽڳ*/ + if (RcvQueueReadLenth != 1) /*-< úǷʧ*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," \n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " \n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); /*-< ¼Bгʧ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; /*-< ô*/ - break; + break; /*-< ˳*/ } - RVQueueRead = QueueRead( (UINT16)(lenthofRcvB),pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueB); - QueueReadFlag = 0xAA;/*ζ*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvB), pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueB); /*-< úȡBг*/ + QueueReadFlag = 0xAA; /*-< ôζĶΪB*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"BNet:"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "BNet:"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x40|0x0A); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x40 | 0x0A); /*-< ¼Bб־־*/ #endif } else { /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueA); - if(RcvQueueReadLenth != 1) + RcvQueueReadLenth = QueueRead(2, pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueA); /*-< úȡA2ֽڳ*/ + if (RcvQueueReadLenth != 1) /*-< úǷʧ*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," \n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " \n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); /*-< ¼Aгʧ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; /*-< ô*/ - break; + break; /*-< ˳*/ } - RVQueueRead = QueueRead( (UINT16)(lenthofRcvA),pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueA); - QueueReadFlag = 0x55;/*ζ*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvA), pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueA); /*-< úȡAг*/ + QueueReadFlag = 0x55; /*-< ôζĶΪA*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"RNet:"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "RNet:"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x40|0x05); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x40 | 0x05); /*-< ¼Aб־־*/ #endif - } - } - else if(QueueAvailable == 0x0F)/*пɶ*/ + } + } + else if (QueueAvailable == 0x0F) /*-< ǷAж*/ { /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueA); - if(RcvQueueReadLenth != 1) + RcvQueueReadLenth = QueueRead(2, pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueA); /*-< úȡA2ֽڳ*/ + if (RcvQueueReadLenth != 1) /*-< úǷʧ*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," \n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " \n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); /*-< ¼Aгʧ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; /*-< ô*/ - break;/*˳ѭ*/ + break; /*-< ˳*/ } - RVQueueRead = QueueRead( (UINT16)(lenthofRcvA),pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueA); - QueueReadFlag = 0x55;/*ζǺ*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvA), pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueA); /*-< ¼Aб־־*/ + QueueReadFlag = 0x55; /*-< ôζĶΪA*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"RNet:"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "RNet:"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x40|0x05); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x40 | 0x05); /*-< ¼Aб־־*/ #endif - } - else if(QueueAvailable == 0xF0)/*пɶ*/ + } + else if (QueueAvailable == 0xF0) /*-< ǷBж*/ { /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueB); - if(RcvQueueReadLenth != 1) + RcvQueueReadLenth = QueueRead(2, pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueB); /*-< úȡB2ֽڳ*/ + if (RcvQueueReadLenth != 1) /*-< úǷʧ*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," \n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " \n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); /*-< ¼Bгʧ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; /*-< ô*/ - break;/*˳ѭ*/ + break; /*-< ˳*/ } - RVQueueRead = QueueRead( (UINT16)(lenthofRcvB),pRpStruct->Buff_Rp,&pRpStruct->OutnetQueueB); - QueueReadFlag = 0xAA;/*ζ*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvB), pRpStruct->Buff_Rp, &pRpStruct->OutnetQueueB); /*-< úȡBг*/ + QueueReadFlag = 0xAA; /*-< ôζĶΪB*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"BNet:"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "BNet:"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x40|0x0A); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x40 | 0x0A); /*-< ¼Bб־־*/ #endif - } + } else { - break; /*˳whileѭ*/ + break; /*-< ˳*/ } - if(RVQueueRead == 1) /*жǷԶ֡*/ + if (RVQueueRead == 1) /*-< жǷԶ֡*/ { - if(pRpStruct->Buff_Rp[0] != 0xFF) + if (pRpStruct->Buff_Rp[0] != 0xFF) /*-< ǷRP֡ʶ*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_EDITION_ILLEGAL|RP_ERROR_NULL); - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," \n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_EDITION_ILLEGAL | RP_ERROR_NULL); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " \n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_EDITION_ILLEGAL|RP_ERROR_NULL); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_EDITION_ILLEGAL | RP_ERROR_NULL); /*-< ¼RP֡ʶ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_EDITION_ILLEGAL; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_EDITION_ILLEGAL; /*-< ô*/ } else { - Length = ShortFromChar(&pRpStruct->Buff_Rp[1]); + Length = ShortFromChar(&pRpStruct->Buff_Rp[1]); /*-< õ֡*/ - DestDevNameInFrame = ShortFromChar(&pRpStruct->Buff_Rp[3]); - LocalDevNameInFrame = ShortFromChar(&pRpStruct->Buff_Rp[5]); - if(LocalDevNameInFrame != pRpStruct->LocalType*0x100 + pRpStruct->LocalID) + if (INTERFACE_TYPE_FOUR == pRpStruct->interfaceType) /*-< ӿǷ/ձʶΪ4ֽ*/ + { + oppHlhtId = LongFromChar(&pRpStruct->Buff_Rp[3]); /*-< õԷͨID*/ + locHlhtId = LongFromChar(&pRpStruct->Buff_Rp[7]); /*-< õͨID*/ + DestDevNameInFrame = GetDevTypeId(oppHlhtId); /*-< õԷ豸ID*/ + LocalDevNameInFrame = GetDevTypeId(locHlhtId); /*-< õ豸ID*/ + + SnInFrame = LongFromChar(&pRpStruct->Buff_Rp[12]); /*-< õк*/ + } + else + { + DestDevNameInFrame = ShortFromChar(&pRpStruct->Buff_Rp[3]); /*-< õԷ豸ID*/ + LocalDevNameInFrame = ShortFromChar(&pRpStruct->Buff_Rp[5]); /*-< õ豸ID*/ + + SnInFrame = LongFromChar(&pRpStruct->Buff_Rp[7]); /*-< õк*/ + } + ShortToChar(DestDevNameInFrame, &oppTypeIdArr[0]); /*-< öԷIDֽ*/ + + if (LocalDevNameInFrame != pRpStruct->LocalType * 0x100 + pRpStruct->LocalID) /*-< Ƿ񷢱*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_DESTNAME_ERR|RP_ERROR_NULL); - PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize," \n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_DESTNAME_ERR | RP_ERROR_NULL); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " \n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_DESTNAME_ERR|RP_ERROR_NULL); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_DESTNAME_ERR | RP_ERROR_NULL); /*-< ¼ݷǷ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_DESTNAME_ERR; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_DESTNAME_ERR; /*-< ô*/ } else { - SnInFrame = LongFromChar(&pRpStruct->Buff_Rp[7]); #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,Length); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"DN:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,DestDevNameInFrame); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"LN:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,LocalDevNameInFrame); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Sn:"); - PrintFileU32Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,SnInFrame); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Data:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[11],2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, Length); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "DN:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, DestDevNameInFrame); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "LN:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, LocalDevNameInFrame); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Sn:"); + PrintFileU32Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, SnInFrame); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Data:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[fitFrameLen], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN - /*¼շ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[5]); - /*¼շID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[6]); - /*¼ͷ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[3]); - /*¼ͷID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[4]); + /*¼շID*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, LocalDevNameInFrame); /*-< ¼ID־*/ + /*¼ͷID*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, DestDevNameInFrame); /*-< ¼ԷID־*/ /*¼ͷSn*/ - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,SnInFrame); + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, SnInFrame); /*-< ¼к־*/ /*¼Ӧݳ*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,Length); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, Length); /*-< ¼ݳ־*/ #endif - CurrentSnNode = Rp_SearchSnLnk(DestDevNameInFrame,pRpStruct); - if(CurrentSnNode == NULL) + CurrentSnNode = Rp_SearchSnLnk(DestDevNameInFrame, pRpStruct); /*-< úѯ豸ͨ·*/ + if (CurrentSnNode == NULL) /*-< úǷʧ*/ { - CurrentSnNode = Rp_InsertLnk(DestDevNameInFrame,pRpStruct); - if(CurrentSnNode != NULL) + CurrentSnNode = Rp_InsertLnk(DestDevNameInFrame, pRpStruct); /*-< ú·*/ + if (CurrentSnNode != NULL) /*-< úǷɹ*/ { - if(SnInFrame != 0x00) + if (SnInFrame != 0x00) /*-< Ƿ0*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_SN_ILLEGAL|RP_ERROR_NULL); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_SN_ILLEGAL | RP_ERROR_NULL); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_SN_ILLEGAL|RP_ERROR_NULL); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_SN_ILLEGAL | RP_ERROR_NULL); /*-< ¼־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_SN_ILLEGAL; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_SN_ILLEGAL; /*-< ô*/ - CurrentSnNode->SnLink_Info.SnArray[CurrentSnNode->SnLink_Info.SnArrayIndex++] = SnInFrame; - QueueCnt = QueueStatus(&pRpStruct->DataToApp); - QueueCnt = pRpStruct->DataToApp.qsize - QueueCnt; - if(QueueCnt >= (UINT32)(2 + 2 + Length)) + CurrentSnNode->SnLink_Info.SnArray[CurrentSnNode->SnLink_Info.SnArrayIndex++] = SnInFrame; /*-< ŵ·*/ + QueueCnt = QueueStatus(&pRpStruct->DataToApp); /*-< õЭӦöпռ䳤*/ + QueueCnt = pRpStruct->DataToApp.qsize - QueueCnt; /*-< õЭӦöпռʣ೤*/ + if (QueueCnt >= (UINT32)(2 + 2 + Length)) /*-< õЭӦöпռʣ೤Ƿ*/ { - ShortToChar((UINT16)(Length + 2), temp); - ret =QueueWrite(2, temp, &pRpStruct->DataToApp); + ShortToChar((UINT16)(Length + 2), temp); /*-< óֵֽ*/ + (void)QueueWrite(2, temp, &pRpStruct->DataToApp); /*-< дֽ鵽ЭӦö*/ - ret =QueueWrite(1, &pRpStruct->Buff_Rp[3], &pRpStruct->DataToApp); + (void)QueueWrite(2, &oppTypeIdArr[0], &pRpStruct->DataToApp); /*-< д豸IDֽ鵽ЭӦö*/ - ret =QueueWrite(1, &pRpStruct->Buff_Rp[4], &pRpStruct->DataToApp); + (void)QueueWrite(Length, &pRpStruct->Buff_Rp[fitFrameLen], &pRpStruct->DataToApp); /*-< дӦݵЭӦö*/ - ret =QueueWrite(Length, &pRpStruct->Buff_Rp[11], &pRpStruct->DataToApp); #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"OUT:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,Length); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"SrcNm:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[3],2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Data:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[11],2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "OUT:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, Length); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "SrcNm:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[3], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Data:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[fitFrameLen], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼дݵϢʼ־*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x80|0x00); - /*¼ͷ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[3]); - /*¼ͷID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[4]); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x80 | 0x00); /*-< ¼дӦݱ־־*/ + /*¼ͷID*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, DestDevNameInFrame); /*-< ¼ԷID־*/ /*¼Ӧݳ*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,Length); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, Length); /*-< ¼ݳ־*/ #endif } else { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_QUEUE_OVLOAD|RP_ERROR_NULL); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_QUEUE_OVLOAD | RP_ERROR_NULL); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_QUEUE_OVLOAD|RP_ERROR_NULL); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_QUEUE_OVLOAD | RP_ERROR_NULL); /*-< ¼пռ䲻־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_OVLOAD; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_OVLOAD; /*-< ô*/ } } else { - /*֡*/ + /*-< ֡*/ } } else { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"E:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_ERR|RP_RECEIVE|RP_ERROR_NULL|RP_LNK_POP); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "E:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_ERR | RP_RECEIVE | RP_ERROR_NULL | RP_LNK_POP); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_ERR|RP_RECEIVE|RP_ERROR_NULL|RP_LNK_POP); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_ERR | RP_RECEIVE | RP_ERROR_NULL | RP_LNK_POP); /*-< ¼·ʧ־*/ #endif - gRpErrorInfo |= RP_ERR_RECEIVE_RP_LNK_POP; + gRpErrorInfo |= RP_ERR_RECEIVE_RP_LNK_POP; /*-< ô*/ - } + } } else { - if(SnInFrame == 0) + if (SnInFrame == 0) /*-< ǷΪ0*/ { - /*ýڵк飬0*/ - for(i = 0; i < 15; i++) + /*ýڵк飬0*/ + for (i = 0; i < 15; i++) /*-< ±ǷС15*/ { - CurrentSnNode->SnLink_Info.SnArray[i] = 0; + CurrentSnNode->SnLink_Info.SnArray[i] = 0; /*-< ±ֵΪ0*/ } - CurrentSnNode->SnLink_Info.SnArrayIndex = 0; + CurrentSnNode->SnLink_Info.SnArrayIndex = 0; /*-< ±Ϊ0*/ } else { - ret = Rp_IsSnExit(SnInFrame, CurrentSnNode); - if(ret == 1) + ret = Rp_IsSnExit(SnInFrame, CurrentSnNode); /*-< жкڻǷѾ洢*/ + if (ret == 1) /*-< úǷʧ*/ { - /*֡*/ + /*-< ֡*/ } else { - if(CurrentSnNode->SnLink_Info.SnArrayIndex > 14) + if (CurrentSnNode->SnLink_Info.SnArrayIndex > 14) /*-< ±Ƿ14*/ { - CurrentSnNode->SnLink_Info.SnArrayIndex = 0; + CurrentSnNode->SnLink_Info.SnArrayIndex = 0; /*-< ±Ϊ0*/ } - CurrentSnNode->SnLink_Info.SnArray[CurrentSnNode->SnLink_Info.SnArrayIndex++] = SnInFrame; - QueueCnt = QueueStatus(&pRpStruct->DataToApp); - QueueCnt = pRpStruct->DataToApp.qsize - QueueCnt; - if(QueueCnt >= (UINT32)(2 + 2 + Length)) + CurrentSnNode->SnLink_Info.SnArray[CurrentSnNode->SnLink_Info.SnArrayIndex++] = SnInFrame; /*-< 鵱ǰ±Ϊǰ*/ + QueueCnt = QueueStatus(&pRpStruct->DataToApp); /*-< õЭӦöпռ䳤*/ + QueueCnt = pRpStruct->DataToApp.qsize - QueueCnt; /*-< õЭӦöпռʣ೤*/ + if (QueueCnt >= (UINT32)(2 + 2 + Length)) /*-< õЭӦöпռʣ೤Ƿ*/ { - ShortToChar((UINT16)(Length + 2), temp); - ret =QueueWrite(2, temp, &pRpStruct->DataToApp); + ShortToChar((UINT16)(Length + 2), temp); /*-< óֵֽ*/ + (void)QueueWrite(2, temp, &pRpStruct->DataToApp); /*-< дֽ鵽ЭӦö*/ - ret =QueueWrite(1, &pRpStruct->Buff_Rp[3], &pRpStruct->DataToApp); + (void)QueueWrite(2, &oppTypeIdArr[0], &pRpStruct->DataToApp); /*-< д豸IDֽ鵽ЭӦö*/ - ret =QueueWrite(1, &pRpStruct->Buff_Rp[4], &pRpStruct->DataToApp); + (void)QueueWrite(Length, &pRpStruct->Buff_Rp[fitFrameLen], &pRpStruct->DataToApp); /*-< дӦݵЭӦö*/ - ret =QueueWrite(Length, &pRpStruct->Buff_Rp[11], &pRpStruct->DataToApp); #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"OUT:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,Length); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"SrcNm:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[3],2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Data:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[11],2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "OUT:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, Length); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "SrcNm:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[3], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Data:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[fitFrameLen], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼дݵϢʼ־*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x80|0x00); - /*¼ͷ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[3]); - /*¼ͷID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->Buff_Rp[4]); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x80 | 0x00); /*-< ¼дӦݱ־־*/ + /*¼ͷID*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, DestDevNameInFrame); /*-< ¼ԷID־*/ /*¼Ӧݳ*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,Length); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, Length); /*-< ¼ݳ־*/ #endif } else { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_QUEUE_OVLOAD|RP_ERROR_NULL); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_QUEUE_OVLOAD | RP_ERROR_NULL); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_QUEUE_OVLOAD|RP_ERROR_NULL); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_QUEUE_OVLOAD | RP_ERROR_NULL); /*-< ¼пռ䲻־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_OVLOAD; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_OVLOAD; /*-< ô*/ } } @@ -842,539 +858,599 @@ UINT8 RpReceive(RP_INFO_STRU *pRpStruct)/* %RELAX */ else { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_RECEIVE|RP_ERROR_NULL|RP_QUEUE_READ); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_RECEIVE | RP_ERROR_NULL | RP_QUEUE_READ); /*-< ¼пռ䲻־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_READ; /*-< ô*/ - break; + break; /*-< ˳*/ } } else { - ToBeContinue = 0; + ToBeContinue = 0; /*-< üѭ־ǷΪ*/ } } - ret = 1; - return ret; + ret = 1; /*-< úֵΪɹ*/ + return ret; /*-< غֵ*/ } -/***************************************************************************************** -*: -* ӦôOutputDataQueue֡дAppArrayVarArray -*˵: -* RP_INFO_STRU *pRpStruct ͳһṹ -*ֵ: -* ȷ1󷵻0; -*****************************************************************************************/ -UINT8 RpOutput(RP_INFO_STRU *pRpStruct)/* %RELAX */ +/** + * @brief RpOutput RP + * @param pRpStruct RPʵ ȡֵΧ:οṹRP_INFO_STRU + * @return 0:ʧ 1:ɹ + */ +UINT8 RpOutput(RP_INFO_STRU* pRpStruct)/* %RELAX */ { - UINT32 QueueLength; - UINT16 Length; - UINT16 DestDevNameInFrame; - UINT16 LocalDevName; - RpSNLINK_STRU *CurrentSnLink; /*дAppArrayУָڵ*/ - RpSNLINK_STRU *CurNumLink; /*дVarArrayУָڵ*/ - UINT16 i = 0; - UINT16 j = 0; - UINT16 NumOfLink = 0; + /** ֲ*/ + UINT32 QueueLength; /*г*/ + UINT16 Length; /*ݳ*/ + UINT16 DestDevNameInFrame; /*Է豸ID*/ + UINT16 LocalDevName; /*豸ID*/ + RpSNLINK_STRU* CurrentSnLink; /*дAppArrayУָڵ*/ + RpSNLINK_STRU* CurNumLink; /*дVarArrayУָڵ*/ + UINT16 i = 0; /*ѭ*/ + UINT16 j = 0; /*ѭ*/ + UINT16 NumOfLink = 0; /*·*/ UINT16 AppArray_Len = 0; /*AppAarryѴݳ*/ - UINT16 AppArray_Temp = 0; - UINT8 ret; - UINT8 RpGetLnkInfoRet; - UINT16 locDevName = 0; - UINT16 destDevName = 0; - UINT8 protclType =0; - - if(pRpStruct == NULL) /* ǿռ */ - { - ret = 0; - return ret; - } - else - { - /* */ - } + UINT16 AppArray_Temp = 0; /*Ӧʱ*/ + UINT8 ret; /*-< úֵΪʧ*/ + UINT8 RpGetLnkInfoRet; /*ȡ·ֵ*/ + UINT16 locDevName = 0; /*ID*/ + UINT16 destDevName = 0; /*ԷID*/ + UINT8 protclType = 0; /*Э*/ + UINT8 outPutDstTypeIdIdx = 0u; /*-< ĿIDλ*/ + UINT8 outPutSnIdx = 0u; /*-< λ*/ + UINT8 outPutTextIdx = 0u; /*-< Ӧλ*/ + UINT8 fitFrameLen = 0u; /*-< ̶֡*/ + UINT32 oppHlhtId = 0u; /*ԷͨID*/ + UINT32 locHlhtId = 0u; /*ͨID*/ + + if (pRpStruct == NULL) /*-< Ƿǿ*/ + { + ret = 0;/*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ + } + else + { + /*-< */ + } #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Output:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Output:\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN - /*Ԫʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0xf3); - /*TypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->LocalType); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,pRpStruct->LocalID); + /*Ԫʶ*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0xf3); /*-< ¼ʶ־*/ + /*TypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalType); /*-< ¼־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalID); /*-< ¼ID־*/ #endif /*ӦõĽӿ*/ - ShortToChar(0, pRpStruct->AppArray); - - QueueLength = QueueStatus(&pRpStruct->OutputDataQueue); + ShortToChar(0, pRpStruct->AppArray); /*-< Ӧ*/ + + if (INTERFACE_TYPE_FOUR == pRpStruct->interfaceType) /*-< ӿǷ/ձʶΪ4ֽ*/ + { + outPutDstTypeIdIdx = OUTPUT_LOC_TYPEID + 4u; /*-< ĿIDλ*/ + outPutSnIdx = outPutDstTypeIdIdx + 4u; /*-< λ*/ + fitFrameLen = 15u; /*-< ù̶֡*/ + } + else + { + outPutDstTypeIdIdx = OUTPUT_LOC_TYPEID + 2u; /*-< ĿIDλ*/ + outPutSnIdx = outPutDstTypeIdIdx + 2u; /*-< λ*/ + fitFrameLen = 11u; /*-< ù̶֡*/ + } + outPutTextIdx = outPutSnIdx + 4u; /*-< Ӧλλ*/ + + + QueueLength = QueueStatus(&pRpStruct->OutputDataQueue); /*-< úõ״̬*/ #ifdef RP_RECORD_SIMPLIFY_BIN /*Ӧ÷ݶܳ*/ - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,QueueLength); + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, QueueLength); /*-< ¼־*/ #endif - while(QueueLength > 2) + while (QueueLength > 2) /*-< Ƿ*/ { - if(QueueRead(2, pRpStruct->Buff_Rp, &pRpStruct->OutputDataQueue)) + if (QueueRead(2, pRpStruct->Buff_Rp, &pRpStruct->OutputDataQueue)) /*-< Ƿ*/ { - Length = ShortFromChar(pRpStruct->Buff_Rp); + Length = ShortFromChar(pRpStruct->Buff_Rp); /*-< õݳ*/ - if(Length > pRpStruct->OutputSize + 2) + if (Length > pRpStruct->OutputSize + 2) /*-< ݳǷǷ*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_OVERLONG); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_OVERLONG); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_OVERLONG); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_OVERLONG); /*-< ¼ݷǷ־*/ #endif - gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_OVLOAD; + gRpErrorInfo |= RP_WARN_RECEIVE_RP_QUEUE_OVLOAD; /*-< ô*/ + - /*LengthֽݴӶж´ζȡ*/ - QueueElementDiscard( Length, &pRpStruct->OutputDataQueue); + QueueElementDiscard(Length, &pRpStruct->OutputDataQueue); /*-< úɾ*/ } - else if((UINT32)(Length + 2) > QueueLength) + else if ((UINT32)(Length + 2) > QueueLength) /*-< ݳǷ񳬳г*/ { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_INTEGRITY); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_INTEGRITY); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_INTEGRITY); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_INTEGRITY); /*-< ¼г־*/ #endif - gRpErrorInfo |= RP_WARN_OUTPUT_RP_QUEUE_INTEGRITY; + gRpErrorInfo |= RP_WARN_OUTPUT_RP_QUEUE_INTEGRITY; /*-< ô*/ - break; + break; /*-< ˳*/ } else - { - if(QueueRead(Length, pRpStruct->Buff_Rp, &pRpStruct->OutputDataQueue)) + { + if (QueueRead(Length, pRpStruct->Buff_Rp, &pRpStruct->OutputDataQueue)) /*-< Ƿܶ*/ { - DestDevNameInFrame = ShortFromChar(pRpStruct->Buff_Rp); - LocalDevName = pRpStruct->LocalType * 0x100 + pRpStruct->LocalID; + DestDevNameInFrame = ShortFromChar(pRpStruct->Buff_Rp); /*-< õԷID*/ + LocalDevName = pRpStruct->LocalType * 0x100 + pRpStruct->LocalID; /*-< õID*/ + oppHlhtId = GetHlhtId(DestDevNameInFrame); /*-< ȡԷͨID*/ + locHlhtId = GetHlhtId(LocalDevName); /*-< ȡԷͨID*/ + #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"IN:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,(UINT16)(Length -2)); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"DstNm:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,DestDevNameInFrame); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Data:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[2], 2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "IN:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, (UINT16)(Length - 2)); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "DstNm:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, DestDevNameInFrame); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Data:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[2], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN - /*Ӷжݵʼʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x40|0x00); - /*ĿTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); - /*֡дӦݵij*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,(UINT16)(Length - 2)); + /*Ӷжݵʼʶ*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x40 | 0x00); /*-< ¼ݱʶ־*/ + /*ĿTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); /*-< ¼Ŀ־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); /*-< ¼ĿID־*/ + /*֡дӦݵij*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, (UINT16)(Length - 2)); /*-< ¼־*/ #endif /*ȡͷͽշ豸ʶ*/ - dsuRpTypeId2DevName(pRpStruct->LocalType, pRpStruct->LocalID, &locDevName); - dsuRpTypeId2DevName(pRpStruct->Buff_Rp[0], pRpStruct->Buff_Rp[1], &destDevName); - /*ݷͷͽշ豸ʶȡЭ*/ - dsurRpGetProtclType(locDevName, destDevName, &protclType); + dsuRpTypeId2DevName(pRpStruct->LocalType, pRpStruct->LocalID, &locDevName); /*-< úõID*/ + dsuRpTypeId2DevName(pRpStruct->Buff_Rp[0], pRpStruct->Buff_Rp[1], &destDevName); /*-< úõԷID*/ + /*ݷͷͽշ豸ʶȡЭ*/ + dsurRpGetProtclType(locDevName, destDevName, &protclType); /*-< úõʹЭ*/ - /*ȡɹ*/ - CurrentSnLink = Rp_SearchSnLnk(DestDevNameInFrame,pRpStruct); - if(CurrentSnLink != NULL) + /*ȡɹ*/ + CurrentSnLink = Rp_SearchSnLnk(DestDevNameInFrame, pRpStruct); /*-< úõ·*/ + if (CurrentSnLink != NULL) /*-< úǷɹ*/ + { + /*жǷ񷢳к0.LastSnΪ0ûзк0*/ + if (CurrentSnLink->SnLink_Info.LastSn == 0) /*-< ǰǷ0*/ { - /*жǷ񷢳к0.LastSnΪ0ûзк0*/ - if(CurrentSnLink->SnLink_Info.LastSn == 0) + for (i = 0; i < 3; i++) /*-< ǰ±ǷС3*/ { - for(i = 0; i < 3; i ++) + /*ȡѴݳ*/ + AppArray_Len = ShortFromChar(pRpStruct->AppArray); /*-< õӦݳ*/ + /*дкΪ0*/ + LongToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + outPutSnIdx]); /*-< дŵӦ*/ + /*д֡*/ + AppArray_Temp = 5 + fitFrameLen; /*-< õд֡*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); /*-< д֡ȵӦ*/ + /*дЭ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; /*-< дЭ͵Ӧ*/ + + /*дĿͺĿID*/ + ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); /*-< дĿIDӦ*/ + /*Ԥֽ*/ + ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); /*-< дԤӦ*/ + /*д汾*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; /*-< дRP֡ʶӦ*/ + /*дϢij*/ + AppArray_Temp = 0; /*-< ӦóΪ0*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); /*-< дӦóȵӦ*/ + + if (INTERFACE_TYPE_FOUR == pRpStruct->interfaceType) /*-< ӿǷ/ձʶΪ4ֽ*/ + { + LongToChar(locHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID]); /*-< ñͨIDӦ*/ + LongToChar(oppHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx]); /*-< ñͨIDӦ*/ + } + else { - /*ȡѴݳ*/ - AppArray_Len = ShortFromChar(pRpStruct->AppArray); - /*дкΪ0*/ - LongToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_SN]); - /*д֡*/ - AppArray_Temp = 5 + 11; /*5 Э͡Ŀ豸ͺIDԤкΪ0дӦ*/ - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); - /*дЭ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; - - /*дĿͺĿID*/ - ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); - /*Ԥֽ*/ - ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); - /*д汾*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; - /*дϢij*/ - AppArray_Temp = 0; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); /*д뷢ͷʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; /*-< ñ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; /*-< ñIDӦ*/ /*дշʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID] = pRpStruct->Buff_Rp[0]; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID + 1] = pRpStruct->Buff_Rp[1]; + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx] = pRpStruct->Buff_Rp[0]; /*-< öԷ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx + 1] = pRpStruct->Buff_Rp[1]; /*-< öԷIDӦ*/ + } - - AppArray_Temp = 7 + 11 + AppArray_Len; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); - CurrentSnLink->SnLink_Info.LastSn = 0; + AppArray_Temp = 7 + fitFrameLen + AppArray_Len; /*-< ܳ*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); /*-< ܳȵӦ*/ + + CurrentSnLink->SnLink_Info.LastSn = 0; /*-< Ϊ0*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"OUT:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Sn:"); - PrintFileU32Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"DstNm:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,ShortFromChar(pRpStruct->Buff_Rp)); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "OUT:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Sn:"); + PrintFileU32Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "DstNm:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, ShortFromChar(pRpStruct->Buff_Rp)); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN - /*緢͵ʼʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x80|0x00); - /*շTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); - /*ͷTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalType); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalID); - /*к*/ - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); - /*֡дӦݵij*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0); + /*緢͵ʼʶ*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x80 | 0x00); /*-< ¼ʶ־*/ + /*շTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); /*-< ¼Է־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); /*-< ¼ԷID־*/ + /*ͷTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalType); /*-< ¼־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalID); /*-< ¼ID־*/ + /*к*/ + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); /*-< ¼־*/ + /*֡дӦݵij*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0); /*-< ¼־*/ #endif - } } - /*ȡѴݳ*/ - AppArray_Len = ShortFromChar(pRpStruct->AppArray); - /*дк*/ - if(CurrentSnLink->SnLink_Info.LastSn == 0xFFFFFFFF) - { - CurrentSnLink->SnLink_Info.LastSn = 0; - } - LongToChar((CurrentSnLink->SnLink_Info.LastSn + 1), &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_SN]); - /*д֡*/ - AppArray_Temp = 5 + Length - 2 + 11; /*5 Э͡Ŀ豸ͺIDԤlength -2Ǵݳ*/ - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); - /*дЭ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; - /*дĿͺĿID*/ - ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); - /*Ԥֽ*/ - ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); - /*д汾*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; - /*дϢij*/ - AppArray_Temp = Length - 2; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); - /*д뷢ͷʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; - /*дշʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID] = pRpStruct->Buff_Rp[0]; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID + 1] = pRpStruct->Buff_Rp[1]; - /*дϢ*/ - for(i = 0; i < Length - 2; i++) - { - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT + i] = pRpStruct->Buff_Rp[2 + i]; - } - - AppArray_Temp = 7 + 11 + Length - 2 + AppArray_Len; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); + } + /*ȡѴݳ*/ + AppArray_Len = ShortFromChar(pRpStruct->AppArray); /*-< õӦݳ*/ + /*дк*/ + if (CurrentSnLink->SnLink_Info.LastSn == 0xFFFFFFFF) /*-< Ƿ*/ + { + CurrentSnLink->SnLink_Info.LastSn = 0; /*-< Ϊ0*/ + } + LongToChar((CurrentSnLink->SnLink_Info.LastSn + 1), &pRpStruct->AppArray[AppArray_Len + 2 + outPutSnIdx]); /*-< ŵӦ*/ + /*д֡*/ + AppArray_Temp = 5 + Length - 2 + fitFrameLen; /*-< õд֡*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); /*-< д֡ȵӦ*/ + /*дЭ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; /*-< дЭ͵Ӧ*/ + /*дĿͺĿID*/ + ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); /*-< дĿIDӦ*/ + /*Ԥֽ*/ + ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); /*-< дԤӦ*/ + /*д汾*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; /*-< дRP֡ʶӦ*/ + /*дϢij*/ + AppArray_Temp = Length - 2; /*-< Ӧó*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); /*-< дӦóȵӦ*/ - CurrentSnLink->SnLink_Info.LastSn++; -#ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"OUT:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,(UINT16)(Length -2)); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Sn:"); - PrintFileU32Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"DstNm:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,ShortFromChar(pRpStruct->Buff_Rp)); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Data:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[2], 2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); -#endif -#ifdef RP_RECORD_SIMPLIFY_BIN - /*緢͵ʼʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x80|0x00); - /*շTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); - /*ͷTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalType); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalID); - /*к*/ - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); - /*֡дӦݵij*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,(UINT16)(Length - 2)); -#endif + if (INTERFACE_TYPE_FOUR == pRpStruct->interfaceType) /*-< ӿǷ/ձʶΪ4ֽ*/ + { + LongToChar(locHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID]); /*-< ñͨIDӦ*/ + LongToChar(oppHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx]); /*-< ñͨIDӦ*/ } else { - CurrentSnLink = Rp_InsertLnk(DestDevNameInFrame,pRpStruct); - if(CurrentSnLink != NULL) - { - for(i = 0; i < 3; i ++) - { - /*ȡѴݳ*/ - AppArray_Len = ShortFromChar(pRpStruct->AppArray); - /*дкΪ0*/ - LongToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_SN]); - /*д֡*/ - AppArray_Temp = 5 + 11; /*5 Э͡Ŀ豸ͺIDԤкΪ0дӦ*/ - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); - /*дЭ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; + /*д뷢ͷʶ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; /*-< ñ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; /*-< ñIDӦ*/ + /*дշʶ*/ + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx] = pRpStruct->Buff_Rp[0]; /*-< öԷ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx + 1] = pRpStruct->Buff_Rp[1]; /*-< öԷIDӦ*/ + } - /*дĿͺĿID*/ - ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); - /*Ԥֽ*/ - ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); - /*д汾*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; - /*дϢij*/ - AppArray_Temp = 0; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); - /*д뷢ͷʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; - /*дշʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID] = pRpStruct->Buff_Rp[0]; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID + 1] = pRpStruct->Buff_Rp[1]; + /*дϢ*/ + for (i = 0; i < Length - 2; i++) /*-< ±ǷСӦó*/ + { + pRpStruct->AppArray[AppArray_Len + 2 + outPutTextIdx + i] = pRpStruct->Buff_Rp[2 + i]; /*-< Ӧֵ*/ + } - - AppArray_Temp = 7 + 11 + AppArray_Len; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); + AppArray_Temp = 7 + fitFrameLen + Length - 2 + AppArray_Len; /*-< ܳ*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); /*-< ܳȵӦ*/ - CurrentSnLink->SnLink_Info.LastSn = 0; + CurrentSnLink->SnLink_Info.LastSn++; /*-< 1*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"OUT:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Sn:"); - PrintFileU32Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"DstNm:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,ShortFromChar(pRpStruct->Buff_Rp)); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); -#endif -#ifdef RP_RECORD_SIMPLIFY_BIN - /*緢͵ʼʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x80|0x00); - /*շTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); - /*ͷTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalType); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalID); - /*к*/ - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); - /*֡дӦݵij*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0); -#endif - } - /*ȡѴݳ*/ - AppArray_Len = ShortFromChar(pRpStruct->AppArray); - /*дкΪ1*/ - LongToChar(1, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_SN]); - /*д֡*/ - AppArray_Temp = 5 + Length - 2 + 11; /*5 Э͡Ŀ豸ͺIDԤlength -2Ǵݳ*/ - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); - /*дЭ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; - - /*дĿͺĿID*/ - ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); - /*Ԥֽ*/ - ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); - /*д汾*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; - /*дϢij*/ - AppArray_Temp = Length - 2; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); - /*д뷢ͷʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; - /*дշʶ*/ - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID] = pRpStruct->Buff_Rp[0]; - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_TYPEID + 1] = pRpStruct->Buff_Rp[1]; - /*дϢ*/ - for(i = 0; i < Length - 2; i++) - { - pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT + i] = pRpStruct->Buff_Rp[2 + i]; - } - - AppArray_Temp = 7 + 11 + Length - 2 + AppArray_Len; - ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); - - CurrentSnLink->SnLink_Info.LastSn = 1; -#ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"OUT:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Len:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,(UINT16)(Length -2)); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Sn:"); - PrintFileU32Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"DstNm:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,ShortFromChar(pRpStruct->Buff_Rp)); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Data:"); - PrintFileHex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,&pRpStruct->Buff_Rp[2], 2); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "OUT:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, (UINT16)(Length - 2)); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Sn:"); + PrintFileU32Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "DstNm:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, ShortFromChar(pRpStruct->Buff_Rp)); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Data:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[2], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif +#ifdef RP_RECORD_SIMPLIFY_BIN + /*緢͵ʼʶ*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x80 | 0x00); /*-< ¼ʶ־*/ + /*շTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); /*-< ¼Է־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); /*-< ¼ԷID־*/ + /*ͷTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalType); /*-< ¼־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalID); /*-< ¼ID־*/ + /*к*/ + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); /*-< ¼־*/ + /*֡дӦݵij*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, (UINT16)(Length - 2)); /*-< ¼־*/ +#endif + } + else + { + CurrentSnLink = Rp_InsertLnk(DestDevNameInFrame, pRpStruct); /*-< ú·Ƿɹ*/ + if (CurrentSnLink != NULL) /*-< úǷɹ*/ + { + for (i = 0; i < 3; i++) /*-< ǰ±ǷС3*/ + { + /*ȡѴݳ*/ + AppArray_Len = ShortFromChar(pRpStruct->AppArray); /*-< õӦݳ*/ + /*дкΪ0*/ + LongToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + outPutSnIdx]); /*-< дŵӦ*/ + /*д֡*/ + AppArray_Temp = 5 + fitFrameLen; /*-< õд֡*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); /*-< д֡ȵӦ*/ + /*дЭ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; /*-< дЭ͵Ӧ*/ + + /*дĿͺĿID*/ + ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); /*-< дĿIDӦ*/ + /*Ԥֽ*/ + ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); /*-< дԤӦ*/ + /*д汾*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; /*-< дRP֡ʶӦ*/ + /*дϢij*/ + AppArray_Temp = 0; + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); /*-< дӦóȵӦ*/ + + if (INTERFACE_TYPE_FOUR == pRpStruct->interfaceType) /*-< ӿǷ/ձʶΪ4ֽ*/ + { + LongToChar(locHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID]); /*-< ñͨIDӦ*/ + LongToChar(oppHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx]); /*-< ñͨIDӦ*/ + } + else + { + /*д뷢ͷʶ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; /*-< ñ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; /*-< ñIDӦ*/ + /*дշʶ*/ + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx] = pRpStruct->Buff_Rp[0]; /*-< öԷ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx + 1] = pRpStruct->Buff_Rp[1]; /*-< öԷIDӦ*/ + } + + + AppArray_Temp = 7 + fitFrameLen + AppArray_Len; /*-< ܳ*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); /*-< ܳȵӦ*/ + + CurrentSnLink->SnLink_Info.LastSn = 0; /*-< Ϊ0*/ +#ifdef RP_RECORD_ERR_ASC + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "OUT:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Sn:"); + PrintFileU32Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "DstNm:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, ShortFromChar(pRpStruct->Buff_Rp)); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); +#endif #ifdef RP_RECORD_SIMPLIFY_BIN /*緢͵ʼʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize,0x80|0x00); - /*շTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); - /*ͷTypeID*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalType); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->LocalID); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x80 | 0x00); /*-< ¼ʶ־*/ + /*շTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); /*-< ¼Է־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); /*-< ¼ԷID־*/ + /*ͷTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalType); /*-< ¼־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalID); /*-< ¼ID־*/ /*к*/ - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurrentSnLink->SnLink_Info.LastSn); + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); /*-< ¼־*/ /*֡дӦݵij*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,(UINT16)(Length-2)); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0); /*-< ¼־*/ #endif } + /*ȡѴݳ*/ + AppArray_Len = ShortFromChar(pRpStruct->AppArray); /*-< õӦݳ*/ + /*дкΪ1*/ + LongToChar(1, &pRpStruct->AppArray[AppArray_Len + 2 + outPutSnIdx]); /*-< 1Ӧ*/ + /*д֡*/ + AppArray_Temp = 5 + Length - 2 + fitFrameLen; /*-< õд֡*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_FRAME_LEN]); /*-< д֡ȵӦ*/ + /*дЭ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_PTOTCL_TYPE] = protclType; /*-< дЭ͵Ӧ*/ + + /*дĿͺĿID*/ + ShortToChar(DestDevNameInFrame, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_DEST_DEVTYPE]); /*-< дĿIDӦ*/ + /*Ԥֽ*/ + ShortToChar(0, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_RESERVED]); /*-< дԤӦ*/ + /*д汾*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_EDITION] = 0xFF; /*-< дRP֡ʶӦ*/ + /*дϢij*/ + AppArray_Temp = Length - 2; /*-< Ӧó*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_TEXT_LEN]); /*-< дӦóȵӦ*/ + + if (INTERFACE_TYPE_FOUR == pRpStruct->interfaceType) /*-< ӿǷ/ձʶΪ4ֽ*/ + { + LongToChar(locHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID]); /*-< ñͨIDӦ*/ + LongToChar(oppHlhtId, &pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx]); /*-< ñͨIDӦ*/ + } else { + /*д뷢ͷʶ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID] = pRpStruct->LocalType; /*-< ñ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + OUTPUT_LOC_TYPEID + 1] = pRpStruct->LocalID; /*-< ñIDӦ*/ + /*дշʶ*/ + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx] = pRpStruct->Buff_Rp[0]; /*-< öԷ͵Ӧ*/ + pRpStruct->AppArray[AppArray_Len + 2 + outPutDstTypeIdIdx + 1] = pRpStruct->Buff_Rp[1]; /*-< öԷIDӦ*/ + } + + /*дϢ*/ + for (i = 0; i < Length - 2; i++) /*-< ±ǷСӦó*/ + { + pRpStruct->AppArray[AppArray_Len + 2 + outPutTextIdx + i] = pRpStruct->Buff_Rp[2 + i]; /*-< Ӧֵ*/ + } + + AppArray_Temp = 7 + fitFrameLen + Length - 2 + AppArray_Len; /*-< ܳ*/ + ShortToChar(AppArray_Temp, &pRpStruct->AppArray[0]); /*-< ܳȵӦ*/ + + CurrentSnLink->SnLink_Info.LastSn = 1; /*-< Ϊ1*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"E:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_ERR|RP_OUTPUT|RP_ERROR_NULL|RP_LNK_POP); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "OUT:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Len:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, (UINT16)(Length - 2)); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Sn:"); + PrintFileU32Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "DstNm:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, ShortFromChar(pRpStruct->Buff_Rp)); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Data:"); + PrintFileHex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, &pRpStruct->Buff_Rp[2], 2); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); +#endif +#ifdef RP_RECORD_SIMPLIFY_BIN + /*緢͵ʼʶ*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0x80 | 0x00); /*-< ¼ʶ־*/ + /*շTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); /*-< ¼Է־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); /*-< ¼ԷID־*/ + /*ͷTypeID*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalType); /*-< ¼־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->LocalID); /*-< ¼ID־*/ + /*к*/ + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurrentSnLink->SnLink_Info.LastSn); /*-< ¼־*/ + /*֡дӦݵij*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, (UINT16)(Length - 2)); /*-< ¼־*/ +#endif + } + else + { +#ifdef RP_RECORD_ERR_ASC + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "E:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_ERR | RP_OUTPUT | RP_ERROR_NULL | RP_LNK_POP); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN - /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_ERR|RP_OUTPUT|RP_ERROR_NULL|RP_LNK_POP); + /*¼*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_ERR | RP_OUTPUT | RP_ERROR_NULL | RP_LNK_POP); /*-< ¼·ʧ־*/ #endif - gRpErrorInfo |= RP_ERR_OUTPUT_RP_LNK_POP; + gRpErrorInfo |= RP_ERR_OUTPUT_RP_LNK_POP; /*-< ô*/ - } } + } } else { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_READ); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_READ); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_READ); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_READ); /*-< ¼δ־*/ #endif - gRpErrorInfo |= RP_WARN_OUTPUT_RP_QUEUE_READ; + gRpErrorInfo |= RP_WARN_OUTPUT_RP_QUEUE_READ; /*-< ô*/ - break; + break; /*-< ˳*/ } } } else { #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"W:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_READ); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "W:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_READ); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*¼*/ - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize,RP_WARN|RP_OUTPUT|RP_ERROR_NULL|RP_QUEUE_READ); + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, RP_WARN | RP_OUTPUT | RP_ERROR_NULL | RP_QUEUE_READ); /*-< ¼δ־*/ #endif - gRpErrorInfo |= RP_WARN_OUTPUT_RP_QUEUE_READ; + gRpErrorInfo |= RP_WARN_OUTPUT_RP_QUEUE_READ; /*-< ô*/ - break; + break; /*-< ˳*/ } - QueueLength = QueueStatus(&pRpStruct->OutputDataQueue); + QueueLength = QueueStatus(&pRpStruct->OutputDataQueue); /*-< õӦøЭг*/ } - - CurNumLink = pRpStruct->SnLinkhead; - NumOfLink = 0; - while(CurNumLink != NULL) + CurNumLink = pRpStruct->SnLinkhead; /*-< õǰŶջ*/ + NumOfLink = 0; /*-< ·Ϊ0*/ + + while (CurNumLink != NULL) /*-< ǰŶջǷǿ*/ { - ShortToChar(CurNumLink->DestDevName, &pRpStruct->VarArray[2 + 68 * NumOfLink]); - ShortToChar(CurNumLink->SnLink_Info.SnArrayIndex, &pRpStruct->VarArray[4 + 68 * NumOfLink]); - LongToChar(CurNumLink->SnLink_Info.LastSn, &pRpStruct->VarArray[6 + 68 * NumOfLink]); + ShortToChar(CurNumLink->DestDevName, &pRpStruct->VarArray[2 + 68 * NumOfLink]); /*-< öԷIDм*/ + ShortToChar(CurNumLink->SnLink_Info.SnArrayIndex, &pRpStruct->VarArray[4 + 68 * NumOfLink]); /*-< ±굽м*/ + LongToChar(CurNumLink->SnLink_Info.LastSn, &pRpStruct->VarArray[6 + 68 * NumOfLink]); /*-< ŵм*/ #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Lnk:\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"DstNm:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurNumLink->DestDevName); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"Sn:"); - PrintFileU32Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurNumLink->SnLink_Info.LastSn); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Lnk:\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "DstNm:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurNumLink->DestDevName); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "Sn:"); + PrintFileU32Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurNumLink->SnLink_Info.LastSn); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif #ifdef RP_RECORD_SIMPLIFY_BIN /*һ·ʼʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, 0xC0|0x00); - ShortToChar(CurNumLink->DestDevName, pRpStruct->Buff_Rp); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize, CurNumLink->SnLink_Info.LastSn); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0xC0 | 0x00); /*-< ¼ʶ־*/ + ShortToChar(CurNumLink->DestDevName, pRpStruct->Buff_Rp); /*-< ¼ԷID־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[0]); /*-< ¼ID־*/ + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, pRpStruct->Buff_Rp[1]); /*-< ¼ID־*/ + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurNumLink->SnLink_Info.LastSn); /*-< ¼־*/ #endif #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"SnArray:"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "SnArray:"); #endif - for(i = 0; i < 15; i++) + for (i = 0; i < 15; i++) /*-< ǰ±ǷС15*/ { - LongToChar(CurNumLink->SnLink_Info.SnArray[i], &pRpStruct->VarArray[10 + i *4 + 68 * NumOfLink]); + LongToChar(CurNumLink->SnLink_Info.SnArray[i], &pRpStruct->VarArray[10 + i * 4 + 68 * NumOfLink]); /*-< Ÿм*/ #ifdef RP_RECORD_ERR_ASC - PrintFileU32Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,CurNumLink->SnLink_Info.SnArray[i]); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize," "); + PrintFileU32Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurNumLink->SnLink_Info.SnArray[i]); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, " "); #endif #ifdef RP_RECORD_SIMPLIFY_BIN - PrintRecArray4ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize, CurNumLink->SnLink_Info.SnArray[i]); + PrintRecArray4ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, CurNumLink->SnLink_Info.SnArray[i]); /*-< ¼־*/ #endif } #ifdef RP_RECORD_ERR_ASC - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif - NumOfLink++; - CurNumLink = CurNumLink->NextNode; + NumOfLink++; /*-< ·1*/ + CurNumLink = CurNumLink->NextNode; /*-< һ·øǰ·*/ } - ShortToChar((UINT16)(68 * NumOfLink), pRpStruct->VarArray); + ShortToChar((UINT16)(68 * NumOfLink), pRpStruct->VarArray); /*-< мȵм*/ #ifdef RP_RECORD_SIMPLIFY_BIN /*Ԫʶ*/ - PrintRecArrayByte(pRpStruct->RecordArray,pRpStruct->RecordArraySize, 0xE0|0x00); - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize, AppArray_Temp); - PrintRecArray2ByteB(pRpStruct->RecordArray,pRpStruct->RecordArraySize, (UINT16)(68 * NumOfLink)); + PrintRecArrayByte(pRpStruct->RecordArray, pRpStruct->RecordArraySize, 0xE0 | 0x00); /*-< ¼·־*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, AppArray_Temp); /*-< ¼·־*/ + PrintRecArray2ByteB(pRpStruct->RecordArray, pRpStruct->RecordArraySize, (UINT16)(68 * NumOfLink)); /*-< ¼·־*/ #endif #ifdef RP_RECORD_ERR_ASC Length = ShortFromChar(pRpStruct->RecordArray); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"RcdLen:"); - PrintFileU16Hex(pRpStruct->RecordArray,pRpStruct->RecordArraySize,Length); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); - PrintFiles(pRpStruct->RecordArray,pRpStruct->RecordArraySize,"\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "RcdLen:"); + PrintFileU16Hex(pRpStruct->RecordArray, pRpStruct->RecordArraySize, Length); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); + PrintFiles(pRpStruct->RecordArray, pRpStruct->RecordArraySize, "\n"); #endif - ret = 1; - return ret; + ret = 1; /*-< úֵΪɹ*/ + return ret; /*-< غֵ*/ } /***************************************************************************************** @@ -1392,7 +1468,7 @@ UINT8 RpRefresh(UINT16 sLen_Input, UINT8 *Input_Data_LnkMes,RP_INFO_STRU *pRpStr UINT8 NumOfLink, i = 0, j = 0, ret = 0; RpSNLINK_STRU *TempIndex=NULL; RpSNLINK_STRU *LastIndex=NULL; - STACK_DATA_TYPE pData; + STACK_DATA_TYPE_RP pData; UINT8 popret; if((pRpStruct == NULL)||(Input_Data_LnkMes == NULL)) /* ǿռ */ @@ -1409,7 +1485,7 @@ UINT8 RpRefresh(UINT16 sLen_Input, UINT8 *Input_Data_LnkMes,RP_INFO_STRU *pRpStr TempIndex = pRpStruct->SnLinkhead; while(TempIndex != NULL) { - StackPush(&pRpStruct->SnLnkStack,(STACK_DATA_TYPE)TempIndex); + StackPush(&pRpStruct->SnLnkStack,(STACK_DATA_TYPE_RP)TempIndex); TempIndex = TempIndex->NextNode; } pRpStruct->SnLinkhead = NULL; @@ -1511,7 +1587,7 @@ UINT8 Rp_init_SnStack(RP_INFO_STRU *pRpStruct) } for (i = 0;i < pRpStruct->SnLnkStack.TotalSize;i++) { /*ѹtotalsizeڵ*/ - if(StackPush(&pRpStruct->SnLnkStack,(UINT32)&SnLnk_stack[i]) != 1) + if(StackPush(&pRpStruct->SnLnkStack,(STACK_DATA_TYPE_RP)&SnLnk_stack[i]) != 1) { ret = 0; return ret;/*ѹڵʧ*/ @@ -1585,7 +1661,7 @@ RpSNLINK_STRU* Rp_InsertLnk( UINT16 Dest_DevName,RP_INFO_STRU *pRpStruct) RpSNLINK_STRU *LastIndex; RpSNLINK_STRU *CurIndex; RpSNLINK_STRU *TempIndex; - STACK_DATA_TYPE pData; + STACK_DATA_TYPE_RP pData; UINT8 i; UINT8 popret; @@ -1799,3 +1875,164 @@ UINT32 ReSetRpErrorInfo(void) return ret; } +/** + * @brief RpDelAllLink RPɾ· + * @param rp RPṹ ȡֵΧ:οṹRP_INFO_STRU + */ +void RpDelAllLink(RP_INFO_STRU* rp) +{ + RpSNLINK_STRU* curLink = NULL; /*ǰ·*/ + + if (NULL != rp) /*-< Ƿǿ*/ + { + curLink = rp->SnLinkhead; /*-< õǰ·*/ + while (NULL != curLink) /*-< ǰ·Ƿǿ*/ + { + rp->SnLinkhead = curLink->NextNode; /*-< ͷָ*/ + + (void)CommonMemSet(curLink, sizeof(RpSNLINK_STRU), 0u, sizeof(RpSNLINK_STRU)); /*-< ·Ϣ*/ + (void)PushStack(&rp->SnLnkStack, curLink); /*-< ·ڵѹջ*/ + + curLink = rp->SnLinkhead; /*-< µǰ·Ϊһ·*/ + } + + if (NULL != rp->RecordArray) /*-< ¼־Ƿǿ*/ + { + (void)PrintRecArray2ByteB(rp->RecordArray, rp->RecordArraySize, (UINT16)0xF0F0u); /*-< ¼ɾ·־*/ + } + } +} + +/* +* ջʼڳʼһջStackFreeʹ +* ҪΪջռ䣬жջڲʼ +* ˵ CommonStackRp *pStack, ʼĵĶջ +* UINT32 TotalSize, ջС +* ֵ 1ɹ +* 0ʧ +*/ +static UINT8 StackInitial(CommonStackRp* pStack, UINT16 TotalSize) +{ + UINT8 bRet = 0;/*ں*/ + + /*ֵж*/ + if ((NULL != pStack) && (0 != TotalSize)) + { + /*ֵϷ*/ + + /*ջݳʼ */ + pStack->TotalSize = TotalSize; + pStack->Top = 0; + + /*ջռ*/ + pStack->pStackData = (STACK_DATA_TYPE_RP*)malloc(sizeof(STACK_DATA_TYPE_RP) * (pStack->TotalSize)); + if (pStack->pStackData != NULL) + { + /*ɹʼ*/ + bRet = 1; + } + else + { + /*ջʼռʧܣʧ*/ + bRet = 0; + } + } + else + { + /*ֵϷʧ*/ + + bRet = 0; + } + + return bRet; + +} + +/****************************************************************************************** +* : ӶջеջԪأ +* : +* : CommonStackRp *pStack ջָ +* : STACK_DATA_TYPE_RP* pData ջԪ +* ȫֱ : +* ֵ : ɹ1򷵻0 +*******************************************************************************************/ +static UINT8 StackPop(CommonStackRp* pStack, STACK_DATA_TYPE_RP* pData)/* %RELAX */ +{ + UINT8 ret;/*ں*/ + + if (pStack->Top > 0) + { + /*ջ*/ + + /*ջԪ*/ + pStack->Top--; + *pData = pStack->pStackData[pStack->Top]; + + /*ִгɹ*/ + ret = 1; + return ret; + } + else + { + /*ջݣʧ*/ + ret = 0; + return ret; + } +} + +/****************************************************************************************** +* : ջѹһ +* : STACK_DATA_TYPE_RP Data ջ +* : CommonStackRp *pStack ջָ +* : +* ȫֱ : +* ֵ : ɹ1,ʧܷ0 +*******************************************************************************************/ +static UINT8 StackPush(CommonStackRp* pStack, STACK_DATA_TYPE_RP Data)/* %RELAX */ +{ + UINT8 ret;/*ں*/ + + if (pStack->Top < pStack->TotalSize) + { + /*ջССڶջֵʱѹջ*/ + + /*ѹջ*/ + pStack->pStackData[pStack->Top] = Data; + pStack->Top++; + + ret = 1; + return ret; + } + else + { + /*ջСڶջֵ,ѹջ.*/ + + ret = 0; + return ret;/*޷ѹջԪ*/ + } +} + +/* +* ջ洢ռͷź +* ڲҪijջʱ򣬰Ѷջݴ洢ռͷŵ,StackInitialʹ +* ˵ CommonStackRp *pStack, ջָ +* ֵ 1ɹ +*/ +static UINT8 StackFree(CommonStackRp* pStack) +{ + + UINT8 ret = 1;/*ں*/ + + /*ջָλ*/ + pStack->Top = 0; + pStack->TotalSize = 0; + + /*ͷŶջռ*/ + if (pStack->pStackData != NULL) + { + free(pStack->pStackData); + pStack->pStackData = NULL; + } + + return ret; +} diff --git a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.h b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.h index cb45263..7c3461a 100644 --- a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.h +++ b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpInterface.h @@ -18,9 +18,6 @@ #define OUTPUT_EDITION (OUTPUT_RESERVED+2) /**/ #define OUTPUT_TEXT_LEN (OUTPUT_EDITION+1) /**/ #define OUTPUT_LOC_TYPEID (OUTPUT_TEXT_LEN+2) /**/ -#define OUTPUT_DEST_TYPEID (OUTPUT_LOC_TYPEID+2) /**/ -#define OUTPUT_SN (OUTPUT_DEST_TYPEID+2) /**/ -#define OUTPUT_TEXT (OUTPUT_SN+4) /**/ #ifdef __cplusplus extern "C" { diff --git a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpPlatform.h b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpPlatform.h index e99ab51..0d7a137 100644 --- a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpPlatform.h +++ b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpPlatform.h @@ -12,7 +12,6 @@ #include "CommonTypes.h" #include "CommonQueue.h" -#include "CommonStack.h" #include "RpStruct.h" #include "RpConfig.h" @@ -26,6 +25,17 @@ extern "C" { #endif + typedef void* STACK_DATA_TYPE_RP; + + /*ջṹ嶨*/ + typedef struct + { + STACK_DATA_TYPE_RP* pStackData; /*нڵֵʾǴ洢ݵĿռ*/ + UINT16 Top; /*ĿǰջĴС.ͬʱֵҲǰջ,дԪҪŵ±. + ڱջһ˳ջ,˳ջдֵӦdzʼΪ, + ֮,0STACK_MAXSIZE-1.*/ + UINT16 TotalSize; /*˶ջܹŽڵ*/ + } CommonStackRp; /*ͳһṹ*/ typedef struct Rp_Info @@ -50,20 +60,18 @@ typedef struct Rp_Info QueueStruct OutnetQueueB; /*նB(->)*/ UINT32 OutnetQueueSize; /*նгȣЭʼʱд*/ RpSNLINK_STRU *SnLinkhead; /*кŻͷָ*/ - CommonStack SnLnkStack; /*кŻջ*/ + CommonStackRp SnLnkStack; /*кŻջ*/ UINT32 *pSnStack; /*ָջռ䣬ͷſռʱʹ*/ UINT8 *Buff_Rp; /*ʱݻ*/ + UINT8 interfaceType; /*ӿ0x55:/ձʶΪ4ֽ;(Ĭֵ):/ձʶΪ2ֽ,ʼʱ*/ } RP_INFO_STRU ; -/************************************************************************* -* : -* ͨúʵڴռ -* ˵: -* [in]RP_INFO_STRU *pRpStruct ͬһṹ; -* ֵ: -* return 1 -* return 0쳣 -**************************************************************************/ +/** + * @brief RpInit ʼRP + * @param fileName FSļ ȡֵΧ:ֽ + * @param pRpStruct RPʵ ȡֵΧ:οṹRP_INFO_STRU + * @return 0:ʧ 1:ɹ + */ UINT8 RpInit(UINT8* fileName,RP_INFO_STRU *pRpStruct); /*********************************************************************** @@ -89,24 +97,18 @@ UINT8 RpLnkDelete(UINT16 devName,RP_INFO_STRU *pdelDevSn); ***************************************************************************************/ UINT8 RpFreeSpace(RP_INFO_STRU *pRpStruct); -/***************************************************************************************** -*: -* ӺݣдDataToApp -*˵: -* RP_INFO_STRU *pRpStruct ͳһṹ -*ֵ: -* ȷ1󷵻0; -*****************************************************************************************/ +/** + * @brief RpReceive RP봦 + * @param pRpStruct RPʵ ȡֵΧ:οṹRP_INFO_STRU + * @return 0:ʧ 1:ɹ + */ UINT8 RpReceive(RP_INFO_STRU *pRpStruct); -/***************************************************************************************** -*: -* ӦôOutputDataQueue֡дAppArrayVarArray -*˵: -* RP_INFO_STRU *pRpStruct ͳһṹ -*ֵ: -* ȷ1󷵻0; -*****************************************************************************************/ +/** + * @brief RpOutput RP + * @param pRpStruct RPʵ ȡֵΧ:οṹRP_INFO_STRU + * @return 0:ʧ 1:ɹ + */ UINT8 RpOutput(RP_INFO_STRU *pRpStruct); /***************************************************************************************** @@ -121,6 +123,12 @@ UINT8 RpOutput(RP_INFO_STRU *pRpStruct); *****************************************************************************************/ UINT8 RpRefresh(UINT16 sLen_Input, UINT8 *Input_Data_LnkMes,RP_INFO_STRU *pRpStruct); +/** + * @brief RpDelAllLink RPɾ· + * @param rp RPṹ ȡֵΧ:οṹRP_INFO_STRU + */ +void RpDelAllLink(RP_INFO_STRU* rp); + #ifdef __cplusplus } #endif diff --git a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpStruct.h b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpStruct.h index 7f5b9fc..0b99da1 100644 --- a/TSCP/src/protocol/redun_record_cbtc/common_redun/RpStruct.h +++ b/TSCP/src/protocol/redun_record_cbtc/common_redun/RpStruct.h @@ -10,7 +10,6 @@ #include "CommonTypes.h" #include "CommonQueue.h" -#include "CommonStack.h" #ifdef __cplusplus extern "C" { diff --git a/TSCP/src/protocol/rssp2_record_cbtc/dqu_rsspii_cbtc/dsuRssp2Func.c b/TSCP/src/protocol/rssp2_record_cbtc/dqu_rsspii_cbtc/dsuRssp2Func.c index 83109cc..159e715 100644 --- a/TSCP/src/protocol/rssp2_record_cbtc/dqu_rsspii_cbtc/dsuRssp2Func.c +++ b/TSCP/src/protocol/rssp2_record_cbtc/dqu_rsspii_cbtc/dsuRssp2Func.c @@ -330,6 +330,9 @@ UINT8 dquDevName2EtcsId(IN UINT16 DevName, IN UINT16 LogId, OUT UINT32 *pEtcsId) } } break; + case DEVTYPE_RC: + ret = dquQueryOutDevId(QFUN_IDMAP_RC_ID, devId, &hlhtId); + break; case DEVTYPE_VOBC: ret = dquVobcName2OutDevId(DevName, (UINT8)LogId, &hlhtId); break; diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspDataStru.h b/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspDataStru.h index acdbf9c..d0ef405 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspDataStru.h +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspDataStru.h @@ -82,18 +82,27 @@ extern "C" { UINT16 CiRowNum; /*CIŶձ*/ DSU_DEV_HLHTID *CiHlhtids; /*CIŶձ*/ + UINT16 RcRowNum; /*RCŶձ*/ + DSU_DEV_HLHTID* RcHlhtids; /*RCŶձ*/ + UINT16 AtsRowNum; /*ATSŶձ*/ DSU_DEV_HLHTID *AtsHlhtids; /*ATSŶձ*/ UINT16 VobcRowNum; /*VOBCŶձ*/ DSU_DEV_HLHTID *VobcHlhtids; /*VOBCŶձ*/ + UINT16 IvocRowNum; /*IVOCŶձ*/ + DSU_DEV_HLHTID* IvocHlhtids; /*IVOCŶձ*/ + UINT16 DsuRowNum; /*DSUŶձ*/ DSU_DEV_HLHTID *DsuHlhtids; /*DSUŶձ*/ UINT16 AomRowNum; /*AOMŶձ*/ DSU_DEV_HLHTID *AomHlhtids; /*AOMŶձ*/ + UINT16 IvocAomRowNum; /*IVOC-AOMŶձ*/ + DSU_DEV_HLHTID* IvocAomHlhtids; /*IVOC-AOMŶձ*/ + UINT16 TdtRowNum; /*TDTŶձ*/ DSU_DEV_HLHTID *TdtHlhtids; /*TDTŶձ*/ diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspFunc.c b/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspFunc.c index 7028268..503e16c 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspFunc.c +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_dqu_rssp/dsuRsspFunc.c @@ -38,6 +38,9 @@ #define IDMAP_TDT_ID (20) /*TDTŶձID*/ #define IDMAP_AXLE_ID (21) /*ϵͳŶձID*/ #define IDMAP_ITE_ID (22) /*ITEŶձID*/ +#define IDMAP_RC_ID (23) /*RCŶձID*/ +#define IDMAP_IVOC_ID (24) /*IVOCŶձID*/ +#define IDMAP_IVOC_AOM_ID (25) /*AOM(IVOC)ŶձID*/ #define ID_MAP_SIZE 6 /*豸Ŷձռֽڳ*/ #define VOBC_ID_MAP_SIZE 10 /*豸Ŷձռֽڳ*/ @@ -47,10 +50,13 @@ #define ZC_TYPE 0x1E /*ZC豸*/ #define CI_TYPE 0x3C /*CI豸*/ +#define RC_TYPE (0x3Du) /*RC豸*/ #define ATS_TYPE 0x03 /*ATS豸*/ #define VOBC_TYPE 0x14 /*VOBC豸*/ +#define IVOC_TYPE (0x10u) /*IVOC豸*/ #define DSU_TYPE 0x2B /*DSU豸*/ #define AOM_TYPE 0x15 /*AOM豸*/ +#define IVOC_AOM_TYPE (0x11u) /*IVOC-AOM豸*/ #define TDT_TYPE 0x2C /*TDT豸*/ #define AXLE_TYPE 0xA0 /*ϵͳ豸*/ #define ITE_DEVTYPE (0x2F) /*ITE豸*/ @@ -63,9 +69,9 @@ typedef struct { UINT32 Id; /**/ UINT32 Len; /**/ - UINT32 StartIdx; /*excelʼַ*/ - UINT32 RowCount; /**/ - UINT8* Data; /*excel*/ + UINT16 RowCount; /**/ + UINT32 ColLen; /*ֽڳ*/ + UINT8* Data; /**/ } SheetInfo; /*ȫУ*/ @@ -78,7 +84,9 @@ typedef struct UINT32 Dataver[CHANNEL_NUM]; /*ͨ汾*/ } SafeParam; -static void InitSheet(SheetInfo* sheetInfo, const UINT32 dataLen, UINT8 data[], const UINT32 excelId, const UINT32 sheetId); +static void InitSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, const UINT32 excelId, const UINT32 sheetId); +static void StDsuRsspiFindExcel(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 idx, UINT32 excelCount, const UINT32 excelId, const UINT32 sheetId); +static UINT8 StDsuRsspiFindSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 curExcelStartPos, UINT32* curExcelPos, UINT32 sheetCount, const UINT32 sheetId); static UINT32 PrecSinit(UINT32 sinit, UINT32 sid, UINT8 channel, UINT8 addTimes); static UINT32 PrecRxdata(UINT32 sinit, UINT32 sid, UINT8 channel, UINT8 addTimes); static UINT8 CheckInOutParamSheet(const UINT32 inDataLen, UINT8 inData[], const UINT32 outDataLen, UINT8 outData[], SheetInfo* inParamSheet, SheetInfo* outParamSheet); @@ -87,186 +95,274 @@ static UINT8 GetDevSafeParamFromSheet(const UINT32 locHlhtId, SheetInfo* paramSh static UINT8 GetDevSafeParam(const UINT32 locHlhtId, SheetInfo* outParamSheet, SheetInfo* inParamSheet, SafeParam* safeParam); static void GetCommTypes(const UINT16 locTypeId, SheetInfo* commSheet, UINT16* commTypesLen, UINT8 commTypes[], const UINT16 maxCommTypesLen); static UINT8 GetOppSafeParams(const UINT16 locAddr, const UINT8 oppDevType, SheetInfo* paramSheet, UINT32* oppSafeParamsNum, SafeParam sfeParamsNum[], const UINT32 maxOppSafeParamsNum, SheetInfo* otherParamSheet, DSU_RSSP_INFO_STRU_WL* dsuRsspInfo); +static UINT8 SetOppSafeParam(SheetInfo* paramSheet, UINT32* oppSafeParamsNum, SafeParam sfeParamsNum[], const UINT32 maxOppSafeParamsNum, UINT32 hlhtId, UINT32 curCmpVal[2][6], SheetInfo* otherParamSheet); static UINT8 CheckSafeParamOnly(SafeParam* safeParam, SheetInfo* sheetInfo); #ifndef RSSP_NO_HLHT + +static void DquInitAllHlhtId(UINT8* pFsName, DSU_RSSP_INFO_STRU_WL* pDsuRsspInfo); + static UINT8 DquInitHlhtId(UINT8 *pFsName, UINT8 sheetId, UINT8 colUseLen, UINT8 hlhtIdNum, UINT16 *pRowNum, DSU_DEV_HLHTID **pDsuDevHlhtids); static UINT32 DquGetHlhtId(UINT8 type, UINT8 id, UINT16 logicId, UINT16 rowNum, const DSU_DEV_HLHTID *pDevHlhtids); static UINT32 DquGetDevHlhtId(UINT8 devType, UINT8 devId, UINT16 logicId, DSU_RSSP_INFO_STRU_WL *pDsuRssp); -static UINT8 DquGetDevId(UINT32 hlhtId, UINT16 rowNum, const DSU_DEV_HLHTID *pDevHlhtids, UINT8 hlhtIdNum); +static UINT8 DquGetDevId(const UINT32 hlhtId, const UINT16 rowNum, const DSU_DEV_HLHTID* pDevHlhtids, const UINT8 hlhtIdNum, const UINT8 needSetDevType, UINT8* devType); #endif -/* -*: ʼsheetҳϢ -*: const UINT32 dataLen ݳ -* UINT8 data[] -* const UINT32 excelId excel -* const UINT32 sheetId sheetҳ -*: SheetInfo* sheetInfo sheetҳϢ -*: -*ֵ: -*/ -static void InitSheet(SheetInfo* sheetInfo, const UINT32 dataLen, UINT8 data[], const UINT32 excelId, const UINT32 sheetId) +/** + * @brief InitSheet ʼsheetҳϢ + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelId excleID ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void InitSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, const UINT32 excelId, const UINT32 sheetId) { + /*- ֲ*/ UINT32 idx = 0u; /*±*/ UINT32 crcVal = 0u; /*crcֵ*/ UINT32 crc = 0u; /*crc*/ UINT32 curLen = 0u; /*ǰ*/ UINT32 excelCount = 0u; /*excel*/ - UINT32 excelIdx = 0u; /*excel±*/ - UINT32 curExcelId = 0u; /*ǰexcel*/ - UINT32 curExcelPos = 0u; /*ǰexcelλ*/ - UINT32 curExcelStartPos = 0u; /*ǰexcelʼλ*/ - UINT32 sheetCount = 0u; /*sheet*/ - UINT32 sheetIdx = 0u; /*sheet±*/ - UINT32 curSheetId = 0u; /*ǰsheet*/ - UINT8 isBreak = 0u; /*Ƿ˳*/ - UINT8 isFind = 0u; /*Ƿҵ*/ - if ((0u < dataLen) && (NULL != data) && (NULL != sheetInfo)) /**/ + if ((NULL != sheetInfo) && (0u < dataLen) && (NULL != data)) /*-< Ƿǿ*/ { - if ((idx + 40) <= dataLen) /*DH±*/ + sheetInfo->Id = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->Len = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->RowCount = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->ColLen = 0u; /*-< sheetҳϢֽڳΪ0*/ + sheetInfo->Data = NULL; /*-< sheetҳϢΪNULL*/ + + if ((idx + 40u) <= dataLen) /*-< ʹݳǷϷ*/ { - /*4ֽCRC*/ - crcVal = LongFromChar(&data[idx]); - idx += 4; + crcVal = LongFromChar(&data[idx]); /*-< õCRCֵ*/ + idx += 4u; /*-< ǰ±4*/ + /*4ֽڰ汾*/ - idx += 4; - /*4ֽڳ*/ - curLen = LongFromChar(&data[idx]); - idx += 4; + idx += 4u; /*-< ǰ±4*/ - if ((curLen == dataLen) && (4 < curLen)) + curLen = LongFromChar(&data[idx]); /*-< õг*/ + idx += 4u; /*-< ǰ±4*/ + + if ((curLen == dataLen) && (4u < curLen)) /*-< гǷϷ*/ { - crc = Crc32(&data[4], curLen - 4); - if (crc == crcVal) + crc = Crc32(&data[4u], curLen - 4u); /*-< CRCֵ*/ + if (crc == crcVal) /*-< CRCֵǷCRC*/ { - /*4ֽexcel*/ - excelCount = LongFromChar(&data[idx]); - idx += 4; + excelCount = LongFromChar(&data[idx]); /*-< õexcel*/ + idx += 4u; /*-< ǰ±4*/ + /*24ֽԤ*/ - idx += 24; + idx += 24u; /*-< ǰ±24*/ - for (excelIdx = 0; excelIdx < excelCount; excelIdx++) - { - if ((idx + 24) <= dataLen) /*DI±*/ - { - /*4ֽexcel*/ - curExcelId = LongFromChar(&data[idx]); - idx += 4; - if (curExcelId == excelId) - { - /*4ֽڳ*/ - idx += 4; - /*4ֽexcelλ*/ - curExcelPos = LongFromChar(&data[idx]); - curExcelStartPos = curExcelPos; - idx += 4; - /*12ֽԤ*/ - idx += 12; - - if ((curExcelPos + 40) <= dataLen) /*DH±*/ - { - /*4ֽexcel CRC*/ - crcVal = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*4ֽexcel汾*/ - curExcelPos += 4; - /*4ֽexcel*/ - curLen = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - - if (4 < curLen) - { - crc = Crc32(&data[curExcelStartPos + 4], curLen - 4); - if (crc == crcVal) - { - /*4ֽsheet*/ - sheetCount = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*24ֽԤ*/ - curExcelPos += 24; - - for (sheetIdx = 0; sheetIdx < sheetCount; sheetIdx++) - { - if ((curExcelPos + 24) <= dataLen) /*DH±*/ - { - /*4ֽsheet*/ - curSheetId = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - if (curSheetId == sheetId) - { - sheetInfo->Id = curSheetId; - /*4ֽڳ*/ - sheetInfo->Len = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*4ֽsheetexcelλ*/ - sheetInfo->StartIdx = LongFromChar(&data[curExcelPos]); - curExcelPos += 4; - /*2ֽ*/ - sheetInfo->RowCount = ShortFromChar(&data[curExcelPos]); - curExcelPos += 2; - /*2ֽ*/ - curExcelPos += 2; - /*8ֽԤ*/ - curExcelPos += 8; - - sheetInfo->Data = &data[curExcelStartPos]; - isFind = 1u; - } - else - { - curExcelPos += 20; /*ƫһDI*/ - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - if ((1u == isFind) || (1u == isBreak)) - { - break; - } - } - } - else /*crc*/ - { - isBreak = 1u; - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - } - else /**/ - { - idx += 20; /*ƫһDI*/ - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - if ((1u == isFind) || (1u == isBreak)) - { - break; - } - } + StDsuRsspiFindExcel(sheetInfo, data, dataLen, idx, excelCount, excelId, sheetId); /*-< ҶӦexcleݺ*/ } } } } } +/** + * @brief StDsuRsspiFindExcel ҶӦexcle + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param idx ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelCount excle ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelId excleID ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void StDsuRsspiFindExcel(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 idx, UINT32 excelCount, const UINT32 excelId, const UINT32 sheetId) +{ + /*- ֲ*/ + UINT32 excelIdx = 0u; /*excel±*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ + UINT32 curExcelId = 0u; /*ǰexcel*/ + UINT32 curExcelPos = 0u; /*ǰexcelλ*/ + UINT32 curExcelStartPos = 0u; /*ǰexcelʼλ*/ + UINT32 crcVal = 0u; /*crcֵ*/ + UINT32 crc = 0u; /*crc*/ + UINT32 curLen = 0u; /*ǰ*/ + UINT8 isBreak = 0u; /*-< Ƿ˳ʶΪ*/ + UINT32 sheetCount = 0u; /*sheet*/ + + if ((NULL != sheetInfo) && (NULL != data)) /*-< Ƿǿ*/ + { + for (excelIdx = 0u; excelIdx < excelCount; excelIdx++) /*-< excel±ǷСexcel*/ + { + deepPro = 0u; /*-< ô־Ϊ*/ + + if ((idx + 24u) <= dataLen) /*-< ʹݳǷϷ*/ + { + curExcelId = LongFromChar(&data[idx]); /*-< õǰexcleID*/ + idx += 4u; /*-< ǰ±4*/ + + if (curExcelId == excelId) /*-< õǰexcleIDǷΪҪҵ*/ + { + /*4ֽڳ*/ + idx += 4u; /*-< ǰ±4*/ + + /*4ֽexcelλ*/ + curExcelPos = LongFromChar(&data[idx]); /*-< õǰexcelλ*/ + curExcelStartPos = curExcelPos; /*-< ¼ǰexcelλΪexcelʼλ*/ + idx += 4u; /*-< ǰ±4*/ + + /*12ֽԤ*/ + idx += 12u; /*-< ǰ±12*/ + + if ((curExcelPos + 40u) <= dataLen) /*-< ʹݳǷϷ*/ + { + crcVal = LongFromChar(&data[curExcelPos]); /*-< õCRCֵ*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + /*4ֽexcel汾*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + curLen = LongFromChar(&data[curExcelPos]); /*-< õexcel*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + if ((4u < curLen) && ((curExcelStartPos + curLen) <= dataLen)) /*-< excelȴ4 excelʼλüӳСڵݳ*/ + { + deepPro = 1u; /*-< ô־Ϊ*/ + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + else /**/ + { + idx += 20u; /*-< ǰ±20*/ + } + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + crc = Crc32(&data[curExcelStartPos + 4u], curLen - 4u); /*-< excelCRCֵ*/ + if (crc == crcVal) /*-< CRCֵǷ*/ + { + sheetCount = LongFromChar(&data[curExcelPos]); /*-< õsheetҳ*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + /*24ֽԤ*/ + curExcelPos += 24u; /*-< ǰexcelλ24*/ + + isBreak = StDsuRsspiFindSheet(sheetInfo, data, dataLen, curExcelStartPos, &curExcelPos, sheetCount, sheetId); /*-< ҶӦsheetҳݺ*/ + } + else /*crc*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + + if (1u == isBreak) /*-< ˳ʶΪǷΪ*/ + { + break; /*-< ˳*/ + } + } + } +} + +/** + * @brief StDsuRsspiFindSheet ҶӦsheetҳ + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param curExcelStartPos excelʼλ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param curExcelPos ǰexcelλ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetCount sheetҳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 0:˳ 1:˳ + */ +static UINT8 StDsuRsspiFindSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 curExcelStartPos, UINT32* curExcelPos, UINT32 sheetCount, const UINT32 sheetId) +{ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ˳*/ + UINT32 sheetIdx = 0u; /*sheet±*/ + UINT32 curSheetId = 0u; /*ǰsheet*/ + UINT32 curSheetStartPos = 0u; /*ǰsheetʼλ*/ + + if ((NULL != sheetInfo) && (NULL != data) && (NULL != curExcelPos)) /*-< Ƿǿ*/ + { + for (sheetIdx = 0u; sheetIdx < sheetCount; sheetIdx++) /*-< sheetҳ±Ƿsheetҳ*/ + { + if (((*curExcelPos) + 24u) <= dataLen) /*-< ʹݳǷϷ*/ + { + curSheetId = LongFromChar(&data[*curExcelPos]); /*-< õǰsheetҳID*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + if (curSheetId == sheetId) /*-< õǰsheetҳIDǷΪҪҵ*/ + { + sheetInfo->Id = curSheetId; /*-< õǰsheetҳIDsheetҳϢ*/ + + sheetInfo->Len = LongFromChar(&data[*curExcelPos]); /*-< óȵsheetҳϢ*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + + curSheetStartPos = LongFromChar(&data[*curExcelPos]); /*-< sheetexcelλõsheetҳϢ*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + + sheetInfo->RowCount = ShortFromChar(&data[*curExcelPos]); /*-< sheetҳϢ*/ + (*curExcelPos) += 2u; /*-< ǰexcelλ2*/ + + /*2ֽ-*/ + (*curExcelPos) += 2u; /*-< ǰexcelλ2*/ + /*8ֽԤ*/ + (*curExcelPos) += 8u; /*-< ǰexcelλ8*/ + + sheetInfo->Data = &data[curExcelStartPos + curSheetStartPos]; /*-< sheetҳʼݵsheetҳϢ*/ + + if (0u < sheetInfo->RowCount) /*-< Ƿ*/ + { + if ((0u < sheetInfo->Len) && (0u == (sheetInfo->Len % sheetInfo->RowCount))) /*-< Ƿݳ*/ + { + sheetInfo->ColLen = sheetInfo->Len / sheetInfo->RowCount; /*-< õݳ*/ + } + else /*ݴ*/ + { + sheetInfo->Len = 0u; /*-< ݳΪ0*/ + sheetInfo->RowCount = 0u; /*-< Ϊ0*/ + sheetInfo->Data = NULL; /*-< ΪNULL*/ + } + } + else /**/ + { + sheetInfo->Len = 0u; /*-< ݳΪ0*/ + sheetInfo->Data = NULL; /*-< ΪNULL*/ + } + + rtnVal = 1u; /*-< úֵΪ˳*/ + } + else + { + (*curExcelPos) += 20u; /*-< ǰexcelλ20*/ + } + } + else /*ȴ*/ + { + rtnVal = 1u; /*-< úֵΪ˳*/ + } + + if (1u == rtnVal) /*-< ֵǷΪ˳*/ + { + break; /*-< ˳*/ + } + } + } + + return rtnVal; /*-< غֵ*/ +} + /* *: PrecSinit *: UINT32 sinit @@ -313,102 +409,103 @@ static UINT32 PrecRxdata(UINT32 sinit, UINT32 sid, UINT8 channel, UINT8 addTimes } } -/* -*: -*: const UINT32 inDataLen ݳ -* UINT8 inData[] -* const UINT32 outDataLen ݳ -* UINT8 outData[] -*: SheetInfo* inParamSheet sheetϢ -* SheetInfo* outParamSheet sheetϢ -*: -*ֵ: UINT8 Ƿɹ.0:ɹ,1:ɹ -*/ +/** + * @brief CheckInOutParamSheet + * @param inDataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ȡֵΧ:ֽ + * @param outDataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param outData ȡֵΧ:ֽ + * @param inParamSheet Ϣ ȡֵΧ:οṹSheetInfo + * @param outParamSheet Ϣ ȡֵΧ:οṹSheetInfo + * @return 0:ʧ 1:ɹ + */ static UINT8 CheckInOutParamSheet(const UINT32 inDataLen, UINT8 inData[], const UINT32 outDataLen, UINT8 outData[], SheetInfo* inParamSheet, SheetInfo* outParamSheet) { - UINT8 retVal = 0u; /*ֵ*/ - UINT32 inParamRowLen = 0u; /*г*/ + /*- ֲ*/ + const UINT32 paramColLen = 25u; /*ҪRSSPϢг*/ + UINT8 retVal = 0u; /*-< úֵΪʧ*/ UINT32 inParamRowIdx = 0u; /*±*/ UINT32 inParamDevId = 0u; /*豸ID*/ UINT32 inParamSid = 0u; /*SID*/ UINT32 inParamSinit = 0u; /*SINIT*/ UINT32 inParamDataver = 0u; /*DATAVER*/ - UINT8 isBreak = 0u; /*Ƿ˳*/ - UINT32 outParamRowLen = 0u; /*г*/ + UINT8 isBreak = 0u; /*-< Ƿ˳ʶΪ*/ UINT32 outParamRowIdx = 0u; /*±*/ UINT32 outParamDevId = 0u; /*豸ID*/ UINT32 outParamSid = 0u; /*SID*/ UINT32 outParamSinit = 0u; /*SINIT*/ UINT32 outParamDataver = 0u; /*DATAVER*/ - UINT8 funRtn = 0u; /*-< úֵ*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ - if ((NULL != outData) && (NULL != outParamSheet)) + if ((NULL != outData) && (NULL != outParamSheet)) /*-< Ƿǿ*/ { - InitSheet(outParamSheet, outDataLen, outData, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_RSSP_LNK_ID); + InitSheet(outParamSheet, outData, outDataLen, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_RSSP_LNK_ID); /*-< ȡⲿRSSPϢ*/ - if (0u < inDataLen) /**/ + if (0u < inDataLen) /*-< */ { - if ((NULL != inData) && (NULL != inParamSheet)) /**/ + if ((NULL != inData) && (NULL != inParamSheet)) /*-< ǿ*/ { - InitSheet(inParamSheet, inDataLen, inData, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_RSSP_LNK_ID); - if ((0u < inParamSheet->Len) && (0u < inParamSheet->RowCount)) /*-RSSPϢ-*/ + InitSheet(inParamSheet, inData, inDataLen, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_RSSP_LNK_ID); /*-< ȡڲRSSPϢ*/ + if ((NULL != inParamSheet->Data) && (inParamSheet->ColLen >= paramColLen)) /*-< -RSSPϢ-ȺϷ*/ { - if (0u == (inParamSheet->Len % inParamSheet->RowCount)) /**/ - { - inParamRowLen = inParamSheet->Len / inParamSheet->RowCount; - for (inParamRowIdx = 0u; inParamRowIdx < inParamSheet->RowCount; inParamRowIdx++) /*-RSSPϢ*/ - { - inParamDevId = LongFromChar(&inParamSheet->Data[inParamSheet->StartIdx + (inParamRowIdx * inParamRowLen) + 2u]); - inParamSid = LongFromChar(&inParamSheet->Data[inParamSheet->StartIdx + (inParamRowIdx * inParamRowLen) + 12u]); - inParamSinit = LongFromChar(&inParamSheet->Data[inParamSheet->StartIdx + (inParamRowIdx * inParamRowLen) + 16u]); - inParamDataver = LongFromChar(&inParamSheet->Data[inParamSheet->StartIdx + (inParamRowIdx * inParamRowLen) + 21u]); - if ((0u < outParamSheet->Len) && (0u < outParamSheet->RowCount) && (0u == (outParamSheet->Len % outParamSheet->RowCount)))/*-RSSPϢ-*/ - { - outParamRowLen = outParamSheet->Len / outParamSheet->RowCount; - if (outParamRowLen == inParamRowLen) - { - for (outParamRowIdx = 0u; outParamRowIdx < outParamSheet->RowCount; outParamRowIdx++) /*-RSSPϢ*/ - { - outParamDevId = LongFromChar(&outParamSheet->Data[outParamSheet->StartIdx + (outParamRowIdx * outParamRowLen) + 2u]); - outParamSid = LongFromChar(&outParamSheet->Data[outParamSheet->StartIdx + (outParamRowIdx * outParamRowLen) + 12u]); - outParamSinit = LongFromChar(&outParamSheet->Data[outParamSheet->StartIdx + (outParamRowIdx * outParamRowLen) + 16u]); - outParamDataver = LongFromChar(&outParamSheet->Data[outParamSheet->StartIdx + (outParamRowIdx * outParamRowLen) + 21u]); - if ((outParamDevId == inParamDevId) && (outParamSid == inParamSid) && (outParamSinit == inParamSinit) && (outParamDataver == inParamDataver)) /*ͬ*/ - { - isBreak = 1u; /*˳*/ - break; - } - } - } - else /*гȲͬ*/ - { - isBreak = 1u; - } - } - if (1u == isBreak) /*˳*/ - { - break; - } - } - if (0u == isBreak) /*ͬ*/ - { - retVal = 1u; - } - } + deepPro = 1u; /*-< ô־Ϊ*/ } else /*RSSPϢ */ { - retVal = 1u; + retVal = 1u; /*-< úֵΪɹ*/ } } } else /**/ { - retVal = 1u; + retVal = 1u; /*-< úֵΪɹ*/ } } - return retVal; + if (1u == deepPro) /*-< ־ǷΪ*/ + { + for (inParamRowIdx = 0u; inParamRowIdx < inParamSheet->RowCount; inParamRowIdx++) /*-< -RSSPϢ*/ + { + /*- õַ,SID,SINIT,DATAVER*/ + inParamDevId = LongFromChar(&inParamSheet->Data[(inParamRowIdx * inParamSheet->ColLen) + 2u]); + inParamSid = LongFromChar(&inParamSheet->Data[(inParamRowIdx * inParamSheet->ColLen) + 12u]); + inParamSinit = LongFromChar(&inParamSheet->Data[(inParamRowIdx * inParamSheet->ColLen) + 16u]); + inParamDataver = LongFromChar(&inParamSheet->Data[(inParamRowIdx * inParamSheet->ColLen) + 21u]); + if ((NULL != outParamSheet->Data) && (outParamSheet->ColLen >= paramColLen)) /*-< -RSSPϢ-ǷϷ*/ + { + if (outParamSheet->ColLen == inParamSheet->ColLen) /*-< -RSSPϢ-Ƿ*/ + { + for (outParamRowIdx = 0u; outParamRowIdx < outParamSheet->RowCount; outParamRowIdx++) /*-< -RSSPϢ*/ + { + /*- õַ,SID,SINIT,DATAVER*/ + outParamDevId = LongFromChar(&outParamSheet->Data[(outParamRowIdx * outParamSheet->ColLen) + 2u]); + outParamSid = LongFromChar(&outParamSheet->Data[(outParamRowIdx * outParamSheet->ColLen) + 12u]); + outParamSinit = LongFromChar(&outParamSheet->Data[(outParamRowIdx * outParamSheet->ColLen) + 16u]); + outParamDataver = LongFromChar(&outParamSheet->Data[(outParamRowIdx * outParamSheet->ColLen) + 21u]); + if ((outParamDevId == inParamDevId) && (outParamSid == inParamSid) && (outParamSinit == inParamSinit) && (outParamDataver == inParamDataver)) /*-< Ƿͬ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + break; /*-< ˳ѭ*/ + } + } + } + else /*гȲͬ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + if (1u == isBreak) /*-< Ƿ˳ʶǷΪ*/ + { + break; /*-< ˳ѭ*/ + } + } + if (0u == isBreak) /*ͬ*/ + { + retVal = 1u; /*-< úֵΪɹ*/ + } + } + + return retVal; /*-< غֵ*/ } /* @@ -495,47 +592,51 @@ static void GenerateParamsRow(SafeParam* locSafeParam, SafeParam* oppSafeParam, */ static UINT8 GetDevSafeParamFromSheet(const UINT32 locHlhtId, SheetInfo* paramSheet, SafeParam* safeParam) { + /*- ֲ*/ +#ifdef RSSP_NO_HLHT + const UINT32 paramColLen = 23u; /*ҪRSSPϢг*/ +#else + const UINT32 paramColLen = 27u; /*ҪRSSPϢг*/ +#endif UINT8 rtnVal = 0u; /*-< úֵΪʧ*/ - UINT32 colLen = 0u; /*ֽڳ*/ UINT32 curIdx = 0u; /*±*/ UINT32 devId = 0u; /*豸ID*/ UINT32 channelIdx = 0u; /*ֵͨλ*/ UINT32 i = 0u; /*ͨ±*/ UINT32 paramVal[2][6] = { 0 }; /*ڱȽֵ*/ - if ((NULL != paramSheet) && (NULL != safeParam) && (0u < paramSheet->Len) && (0u < paramSheet->RowCount) && (0u == paramSheet->Len % paramSheet->RowCount) && (0u == (paramSheet->RowCount % 2u))) /*-< ǷǿұݳǷ00Ϊ2ݳ*/ + if ((NULL != paramSheet) && (NULL != safeParam) && (NULL != paramSheet->Data) && (paramSheet->ColLen >= paramColLen)) /*-< Ƿǿ ұֽڳȺϷ*/ { - colLen = paramSheet->Len / paramSheet->RowCount; /*-< г*/ for (curIdx = 0u; curIdx < paramSheet->RowCount; curIdx += 2) /*-< ǰȽ±ǷС*/ { #ifdef RSSP_NO_HLHT - devId = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + (curIdx * colLen) + 2]); /*-< õǰΨһID*/ + devId = ShortFromChar(¶mSheet->Data[(curIdx * paramSheet->ColLen) + 2]); /*-< õǰΨһID*/ #else - devId = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + (curIdx * colLen) + 2]); /*-< õǰΨһID*/ + devId = LongFromChar(¶mSheet->Data[(curIdx * paramSheet->ColLen) + 2]); /*-< õǰΨһID*/ #endif if (devId == locHlhtId) /*-< ǰΨһIDǷΪ豸ΨһID*/ { for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ { #ifdef RSSP_NO_HLHT - paramVal[i][1] = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + 2u]); /*-< õǰΨһID*/ + paramVal[i][1] = ShortFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + 2u]); /*-< õǰΨһID*/ channelIdx = 6u; /*-< ͨ±*/ #else - paramVal[i][1] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + 2u]); /*-< õǰΨһID*/ + paramVal[i][1] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + 2u]); /*-< õǰΨһID*/ channelIdx = 10u; /*-< ͨ±*/ #endif - paramVal[i][0] = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx]); /*-< õǰͨ*/ - paramVal[i][2] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 2u]); /*-< õǰSID*/ - paramVal[i][3] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 6u]); /*-< õǰSINIT*/ - paramVal[i][4] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 11u]); /*-< õǰDATAVER*/ - paramVal[i][5] = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 15u]); /*-< õǰADDR*/ + paramVal[i][0] = ShortFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx]); /*-< õǰͨ*/ + paramVal[i][2] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 2u]); /*-< õǰSID*/ + paramVal[i][3] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 6u]); /*-< õǰSINIT*/ + paramVal[i][4] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 11u]); /*-< õǰDATAVER*/ + paramVal[i][5] = ShortFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 15u]); /*-< õǰADDR*/ } if ((1u == paramVal[0][0]) && (2u == paramVal[1][0]) && (paramVal[0][1] == paramVal[1][1]) && (paramVal[0][5] == paramVal[1][5])) /*-< ͨ,ΨһID,ADDRǷȷ*/ { safeParam->DevId = paramVal[0][1]; /*-< ΨһID*/ - safeParam->Addr = paramVal[0][5]; /*-< ADDR*/ + safeParam->Addr = (UINT16)paramVal[0][5]; /*-< ADDR*/ for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ { safeParam->Sid[i] = paramVal[i][2]; /*-< SID*/ @@ -592,48 +693,46 @@ static UINT8 GetDevSafeParam(const UINT32 locHlhtId, SheetInfo* outParamSheet, S return rtnVal; /*-< غֵ*/ } -/* -*: ȡͨŵ豸б -*: const UINT16 locTypeId ID -* SheetInfo* commSheet 豸ͨЭ -* UINT16 maxCommTypesLen ͨ豸鳤 -*: UINT16* commTypesLen 豸鳤 -* UINT8 commTypes[] 豸 -*: -*ֵ: -*/ +/** + * @brief GetCommTypes ȡͨŵ豸б + * @param locTypeId ID ȡֵΧ:0x0000-0xFFFF + * @param commSheet 豸ͨЭϢ ȡֵΧ:οṹSheetInfo + * @param commTypesLen 豸б ȡֵΧ:0x0000-0xFFFF + * @param commTypes 豸б ȡֵΧ:ֽ + * @param maxCommTypesLen 豸б ȡֵΧ:0x0000-0xFFFF + */ static void GetCommTypes(const UINT16 locTypeId, SheetInfo* commSheet, UINT16* commTypesLen, UINT8 commTypes[], const UINT16 maxCommTypesLen) { + /*- ֲ*/ + const UINT32 commColLen = 3u; /*Ҫ豸ͨЭг*/ UINT8 locType = 0u; /**/ - UINT32 rowLen = 0u; /*г*/ UINT32 rowIdx = 0u; /*±*/ UINT8 locDevType = 0u; /*豸*/ UINT8 oppDevType = 0u; /*Է豸*/ UINT8 ptclType = 0u; /*Э*/ UINT32 i = 0u; /*ѭ*/ - if ((NULL != commSheet) && (NULL != commTypesLen) && (NULL != commTypes) && (0u < commSheet->Len) && (0u < commSheet->RowCount) && (0u == commSheet->Len % commSheet->RowCount)) /*ⲿ-豸IPַ-*/ + if ((NULL != commSheet) && (NULL != commTypesLen) && (NULL != commTypes) && (NULL != commSheet->Data) && (commSheet->ColLen >= commColLen)) /*-< ⲿ-豸IPַ-ǷϷ*/ { - locType = (UINT8)((locTypeId >> 8) & 0xFF); - rowLen = commSheet->Len / commSheet->RowCount; - for (rowIdx = 0u; rowIdx < commSheet->RowCount; rowIdx++) /*豸IPַ*/ + locType = (UINT8)((locTypeId >> 8) & 0xFF); /*-< õ*/ + for (rowIdx = 0u; rowIdx < commSheet->RowCount; rowIdx++) /*-< 豸IPַ*/ { - locDevType = commSheet->Data[commSheet->StartIdx + (rowIdx * rowLen)]; - oppDevType = commSheet->Data[commSheet->StartIdx + (rowIdx * rowLen) + 1]; - ptclType = commSheet->Data[commSheet->StartIdx + (rowIdx * rowLen) + 2]; - if ((locDevType == locType) && (4u == ptclType)) /*DZ豸RSSPI*/ + locDevType = commSheet->Data[(rowIdx * commSheet->ColLen)]; /*-< õ豸*/ + oppDevType = commSheet->Data[(rowIdx * commSheet->ColLen) + 1]; /*-< õԷ豸*/ + ptclType = commSheet->Data[(rowIdx * commSheet->ColLen) + 2]; /*-< õЭ*/ + if ((locDevType == locType) && (4u == ptclType)) /*-< DZ豸RSSPI*/ { - for (i = 0; i < (*commTypesLen); i++) + for (i = 0; i < (*commTypesLen); i++) /*-< 豸б±С豸б*/ { - if (commTypes[i] == oppDevType) + if (commTypes[i] == oppDevType) /*-< ǷԷ豸*/ { - break; + break; /*-< ˳*/ } } - if ((i == (*commTypesLen)) && ((*commTypesLen) < maxCommTypesLen)) /*ظ,*/ + if ((i == (*commTypesLen)) && ((*commTypesLen) < maxCommTypesLen)) /*-< ظ ҿ*/ { - commTypes[*commTypesLen] = oppDevType; - (*commTypesLen)++; + commTypes[*commTypesLen] = oppDevType; /*-< 豸бӶԷ豸*/ + (*commTypesLen)++; /*-< 豸бԼ1*/ } } } @@ -654,115 +753,77 @@ static void GetCommTypes(const UINT16 locTypeId, SheetInfo* commSheet, UINT16* c */ static UINT8 GetOppSafeParams(const UINT16 locAddr, const UINT8 oppDevType, SheetInfo* paramSheet, UINT32* oppSafeParamsNum, SafeParam sfeParamsNum[], const UINT32 maxOppSafeParamsNum, SheetInfo* otherParamSheet, DSU_RSSP_INFO_STRU_WL* dsuRsspInfo) { + /*- ֲ*/ +#ifdef RSSP_NO_HLHT + const UINT32 paramColLen = 23u; /*ҪRSSPϢг*/ +#else + const UINT32 paramColLen = 27u; /*ҪRSSPϢг*/ +#endif UINT8 rtnVal = 0u; /*-< úֵΪʧ*/ - UINT32 colLen = 0u; /*ֽڳ*/ UINT32 curIdx = 0u; /*ǰ±*/ UINT32 hlhtId = 0u; /*ΨһͨID*/ UINT16 devTypeId = 0u; /*豸ID*/ UINT32 i = 0u; /*ѭ*/ UINT32 channelIdx = 0u; /*ֵͨλ*/ - UINT16 curAddr = 0u; /*ǰADDR*/ + UINT16 curLocAddr = 0u; /*ǰADDR*/ + UINT16 curOppAddr = 0u; /*ǰԷADDR*/ UINT32 curCmpVal[2][6] = { 0 }; /*ǰڱȽֵ*/ - UINT8 funRtn = 0u; /*õúֵΪʧ*/ UINT8 isErr = 0u; /*Ƿд*/ if ((NULL != paramSheet) && (NULL != oppSafeParamsNum) && (NULL != sfeParamsNum) && (NULL != otherParamSheet) && (NULL != dsuRsspInfo)) /*-< Ƿǿ*/ { - if ((0u < paramSheet->Len) && (0u < paramSheet->RowCount)) /*-< Ƿ*/ + if ((NULL != paramSheet->Data) && (paramSheet->ColLen >= paramColLen)) /*-< Ƿ*/ { - if (0u == paramSheet->Len % paramSheet->RowCount) /*-< ݳǷ*/ + for (curIdx = 0u; curIdx < paramSheet->RowCount; curIdx += 2) /*-< ǰ±ǷС*/ { - colLen = paramSheet->Len / paramSheet->RowCount; /*-< г*/ - for (curIdx = 0u; curIdx < paramSheet->RowCount; curIdx += 2) /*-< ǰ±ǷС*/ - { #ifdef RSSP_NO_HLHT - hlhtId = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + (curIdx * colLen) + 2]); /*-< õǰΨһID*/ - devTypeId = (UINT16)hlhtId; - channelIdx = 6u; /*-< ͨ±*/ + hlhtId = ShortFromChar(¶mSheet->Data[(curIdx * paramSheet->ColLen) + 2]); /*-< õǰΨһID*/ + devTypeId = (UINT16)hlhtId; /*-< ȡ豸ID*/ + channelIdx = 6u; /*-< ͨ±*/ #else - hlhtId = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + (curIdx * colLen) + 2]); /*-< õǰΨһID*/ - devTypeId = DquToDevTypeId(hlhtId, dsuRsspInfo); /*-< ȡ豸ID*/ - channelIdx = 10u; /*-< ͨ±*/ + hlhtId = LongFromChar(¶mSheet->Data[(curIdx * paramSheet->ColLen) + 2]); /*-< õǰΨһID*/ + devTypeId = DquToDevTypeId(hlhtId, dsuRsspInfo); /*-< ȡ豸ID*/ + channelIdx = 10u; /*-< ͨ±*/ #endif - curAddr = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + (curIdx * colLen) + channelIdx + 19u]); /*-< õǰADDR*/ - if (((UINT8)((devTypeId >> 8) & 0xFF) == oppDevType) && ((curAddr == locAddr) || (0u == curAddr))) /*-< ǷĿ豸 ҵǰADDRΪADDRΪ0*/ + curLocAddr = ShortFromChar(¶mSheet->Data[(curIdx * paramSheet->ColLen) + channelIdx + 15u]); /*-< õǰADDR*/ + curOppAddr = ShortFromChar(¶mSheet->Data[(curIdx * paramSheet->ColLen) + channelIdx + 19u]); /*-< õǰADDR*/ + if (((UINT8)((devTypeId >> 8) & 0xFF) == oppDevType) && (curLocAddr != locAddr) && ((curOppAddr == locAddr) || (0u == curOppAddr))) /*-< ǷĿ豸 ҵǰADDRΪADDRΪ0*/ + { + for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ { - for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ - { - curCmpVal[i][0] = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx]); /*-< õǰͨ*/ + curCmpVal[i][0] = ShortFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx]); /*-< õǰͨ*/ #ifdef RSSP_NO_HLHT - curCmpVal[i][1] = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + 2]); /*-< õǰΨһID*/ + curCmpVal[i][1] = ShortFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + 2]); /*-< õǰΨһID*/ #else - curCmpVal[i][1] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + 2]); /*-< õǰΨһID*/ + curCmpVal[i][1] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + 2]); /*-< õǰΨһID*/ #endif - curCmpVal[i][2] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 2u]); /*-< õǰSID*/ - curCmpVal[i][3] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 6u]); /*-< õǰSINIT*/ - curCmpVal[i][4] = LongFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 11u]); /*-< õǰDATAVER*/ - curCmpVal[i][5] = ShortFromChar(¶mSheet->Data[paramSheet->StartIdx + ((curIdx + i) * colLen) + channelIdx + 15u]); /*-< õǰADDR*/ - } - - if ((1u == curCmpVal[0][0]) && (2u == curCmpVal[1][0]) && (curCmpVal[0][1] == curCmpVal[1][1]) && (curCmpVal[0][5] == curCmpVal[1][5])) /*-< ǰͨǷȷ*/ - { - for (i = 0; i < (*oppSafeParamsNum); i++) /*-< ǰԷȫ±ǷСڲ*/ - { - if (sfeParamsNum[i].DevId == hlhtId) /*-< ȫбǷд˲*/ - { - break; /*-< ˳*/ - } - } - if (i == (*oppSafeParamsNum)) /*-< Ƿ޴˲*/ - { - if ((*oppSafeParamsNum) < maxOppSafeParamsNum) /*-< ǷӰȫ*/ - { - sfeParamsNum[*oppSafeParamsNum].DevId = hlhtId; /*-< ΨһID*/ - sfeParamsNum[*oppSafeParamsNum].Addr = curCmpVal[0][5]; /*-< ADDR*/ - for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ - { - sfeParamsNum[*oppSafeParamsNum].Sid[i] = curCmpVal[i][2]; /*-< SID*/ - sfeParamsNum[*oppSafeParamsNum].Sinit[i] = curCmpVal[i][3]; /*-< SINIT*/ - sfeParamsNum[*oppSafeParamsNum].Dataver[i] = curCmpVal[i][4]; /*-< DATAVER*/ - } - - funRtn = CheckSafeParamOnly(&sfeParamsNum[*oppSafeParamsNum], paramSheet); /*-< ûȡ鰲ȫΨһ,ֵúֵ*/ - if (1u == funRtn) /*-< úǷɹ*/ - { - funRtn = CheckSafeParamOnly(&sfeParamsNum[*oppSafeParamsNum], otherParamSheet); /*-< ûȡ鰲ȫΨһ,ֵúֵ*/ - if (1u != funRtn) /*-< úǷdzɹ*/ - { - isErr = 1u; /*-< д*/ - } - } - else - { - isErr = 1u; /*-< д*/ - } - - (*oppSafeParamsNum)++; /*-< ԷȫԼ1*/ - } - else - { - isErr = 1u; /*-< д*/ - } - } - } - else - { - isErr = 1u; /*-< д*/ - } + curCmpVal[i][2] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 2u]); /*-< õǰSID*/ + curCmpVal[i][3] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 6u]); /*-< õǰSINIT*/ + curCmpVal[i][4] = LongFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 11u]); /*-< õǰDATAVER*/ + curCmpVal[i][5] = ShortFromChar(¶mSheet->Data[((curIdx + i) * paramSheet->ColLen) + channelIdx + 15u]); /*-< õǰADDR*/ } - if (1u == isErr) /*-< Ƿд*/ + if ((1u == curCmpVal[0][0]) && (2u == curCmpVal[1][0]) && (curCmpVal[0][1] == curCmpVal[1][1]) && (curCmpVal[0][5] == curCmpVal[1][5])) /*-< ǰͨǷȷ*/ { - break; /*-< ˳*/ + isErr = SetOppSafeParam(paramSheet, oppSafeParamsNum, sfeParamsNum, maxOppSafeParamsNum, hlhtId, curCmpVal, otherParamSheet); /*-< ͨŵĶԷ豸ȫ*/ + } + else + { + isErr = 1u; /*-< д*/ } } - if (0u == isErr) /*-< Ƿ޴*/ + + if (1u == isErr) /*-< Ƿд*/ { - rtnVal = 1u; /*-< úֵΪɹ*/ + break; /*-< ˳*/ } } + if (0u == isErr) /*-< Ƿ޴*/ + { + rtnVal = 1u; /*-< úֵΪɹ*/ + } } else { @@ -773,6 +834,68 @@ static UINT8 GetOppSafeParams(const UINT16 locAddr, const UINT8 oppDevType, Shee return rtnVal; /*-< غֵ*/ } +/** + * @brief SetOppSafeParam ͨŵĶԷ豸ȫ + * @param paramSheet ڲҵRSSPϢ ȡֵΧ:οṹSheetInfo + * @param oppSafeParamsNum Է豸ȫб ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sfeParamsNum Է豸ȫб ȡֵΧ:SafeParam + * @param maxOppSafeParamsNum Է豸ȫб ȡֵΧ:0x00000000-0xFFFFFFFF + * @param hlhtId ΨһͨID ȡֵΧ:0x00000000-0xFFFFFFFF + * @param curCmpVal ǰڱȽֵ ȡֵΧ:ֽ + * @param otherParamSheet ڲҵRSSPϢ ȡֵΧ:οṹSheetInfo + * @return 0:޴;1:д + */ +static UINT8 SetOppSafeParam(SheetInfo* paramSheet, UINT32* oppSafeParamsNum, SafeParam sfeParamsNum[], const UINT32 maxOppSafeParamsNum, UINT32 hlhtId, UINT32 curCmpVal[2][6], SheetInfo* otherParamSheet) +{ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ޴*/ + UINT32 i = 0u; /*ѭ*/ + UINT8 funRtn = 0u; /*õúֵΪʧ*/ + + if ((NULL != oppSafeParamsNum) && (NULL != sfeParamsNum) && (NULL != curCmpVal)) /*-< Ƿǿ*/ + { + for (i = 0; i < (*oppSafeParamsNum); i++) /*-< ǰԷȫ±ǷСڲ*/ + { + if (sfeParamsNum[i].DevId == hlhtId) /*-< ȫбǷд˲*/ + { + break; /*-< ˳*/ + } + } + if (i == (*oppSafeParamsNum)) /*-< Ƿ޴˲*/ + { + if ((*oppSafeParamsNum) < maxOppSafeParamsNum) /*-< ǷӰȫ*/ + { + sfeParamsNum[*oppSafeParamsNum].DevId = hlhtId; /*-< ΨһID*/ + sfeParamsNum[*oppSafeParamsNum].Addr = (UINT16)curCmpVal[0][5]; /*-< ADDR*/ + for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ + { + sfeParamsNum[*oppSafeParamsNum].Sid[i] = curCmpVal[i][2]; /*-< SID*/ + sfeParamsNum[*oppSafeParamsNum].Sinit[i] = curCmpVal[i][3]; /*-< SINIT*/ + sfeParamsNum[*oppSafeParamsNum].Dataver[i] = curCmpVal[i][4]; /*-< DATAVER*/ + } + + funRtn = CheckSafeParamOnly(&sfeParamsNum[*oppSafeParamsNum], paramSheet); /*-< ûȡ鰲ȫΨһ,ֵúֵ*/ + if (1u == funRtn) /*-< úǷɹ*/ + { + funRtn = CheckSafeParamOnly(&sfeParamsNum[*oppSafeParamsNum], otherParamSheet); /*-< ûȡ鰲ȫΨһ,ֵúֵ*/ + } + if (1u != funRtn) /*-< úǷdzɹ*/ + { + rtnVal = 1u; /*-< д*/ + } + + (*oppSafeParamsNum)++; /*-< ԷȫԼ1*/ + } + else + { + rtnVal = 1u; /*-< д*/ + } + } + } + + return rtnVal; /*-< غֵ*/ +} + /** * @brief DsuRsspInitWl RSSPIЭѯʼ,ֻڳʼʱʹ * @param pFsName FSļ ȡֵΧ:ļַ @@ -785,18 +908,17 @@ static UINT8 GetOppSafeParams(const UINT16 locAddr, const UINT8 oppDevType, Shee */ UINT8 DsuRsspInitWl(UINT8* pFsName, UINT32 inDataLen, UINT8 inData[], UINT16 localTypeId, UINT16 localLogicId, DSU_RSSP_INFO_STRU_WL* pDsuRsspInfo) { - UINT8 rtn = 0; /*-< úֵΪʧ*/ - UINT8 readRtn = 0; /*ȡFSֵ*/ + /*- ֲ*/ + const UINT32 configColLen = 11u; /*Ҫ豸ͨԱг*/ + UINT8 rtn = 0u; /*-< úֵΪʧ*/ + UINT8 readRtn = 0u; /*ȡFSֵ*/ UINT8* pData = NULL; /**/ - UINT32 dataLen = 0; /*ݳ*/ - UINT16 rsspILinkLen = 0; /*- 뱾豸ͨŵЭͨŹϵ*/ - UINT32 mallocLen = 0; /*ռС*/ - UINT32 offset = 0; /*ƫ*/ - UINT32 i = 0; /*ѭ*/ - UINT32 j = 0; /*ѭ*/ - UINT32 localId = 0; /*ΨһID*/ - UINT32 locId = 0; /*õıΨһID*/ - UINT32 oppId = 0; /*õĶԷΨһID*/ + UINT32 dataLen = 0u; /*ݳ*/ + UINT32 mallocLen = 0u; /*ռС*/ + UINT32 offset = 0u; /*ƫ*/ + UINT32 i = 0u; /*ѭ*/ + UINT32 j = 0u; /*ѭ*/ + UINT32 localId = 0u; /*ΨһID*/ SheetInfo inParamSheet = { 0 }; SheetInfo outParamSheet = { 0 }; @@ -815,59 +937,18 @@ UINT8 DsuRsspInitWl(UINT8* pFsName, UINT32 inDataLen, UINT8 inData[], UINT16 loc UINT8 isBreak = 0u; /*Ƿ˳*/ SheetInfo configSheet = { 0 }; /*豸ͨsheetҳ*/ - UINT32 rowLen = 0u; /*г*/ UINT8 hasSame = 0u; /*ͬ*/ UINT16 inLocDevType = 0u; /*ڲ豸*/ UINT16 inOppDevType = 0u; /*ڲԷ豸*/ UINT16 rowCount = 0u; /**/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ if (NULL != pDsuRsspInfo) /*-< Ƿǿ*/ { #ifdef RSSP_NO_HLHT localId = localTypeId; /*-< ñΨһID*/ -#else - /*ȡZCŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_ZC_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->ZcRowNum, &pDsuRsspInfo->ZcHlhtids); /*-< óʼŶձZC*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡCIŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_CI_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->CiRowNum, &pDsuRsspInfo->CiHlhtids); /*-< óʼŶձCI*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡATSŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_ATS_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->AtsRowNum, &pDsuRsspInfo->AtsHlhtids); /*-< óʼŶձATS*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡVOBCŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_VOBC_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->VobcRowNum, &pDsuRsspInfo->VobcHlhtids); /*-< óʼŶձVOBC*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡDSUŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_DSU_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->DsuRowNum, &pDsuRsspInfo->DsuHlhtids); /*-< óʼŶձDSU*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡAOMŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_AOMSEC_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->AomRowNum, &pDsuRsspInfo->AomHlhtids); /*-< óʼŶձAOM*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡTDTŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_TDT_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->TdtRowNum, &pDsuRsspInfo->TdtHlhtids); /*-< óʼŶձTDT*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡϵͳŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_AXLE_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->AxleRowNum, &pDsuRsspInfo->AxleHlhtids); /*-< óʼŶձļϵͳ*/ - if (1 == readRtn) /*-< úǷɹ*/ - { - /*ȡITEŶձ*/ - readRtn = DquInitHlhtId(pFsName, IDMAP_ITE_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->IteRowNum, &pDsuRsspInfo->IteHlhtids); /*-< óʼŶձITE*/ - } - } - } - } - } - } - } - } +#else + DquInitAllHlhtId(pFsName, pDsuRsspInfo); /*-< óʼлͨID*/ localId = DquTypeIdToHlhtId(localTypeId, localLogicId, pDsuRsspInfo); /*-< ñΨһID*/ #endif paramCheckRtn = CheckInOutParamSheet(inDataLen, inData, g_DataBufLen, g_pDataBuf, &inParamSheet, &outParamSheet); /*-< ü*/ @@ -875,175 +956,180 @@ UINT8 DsuRsspInitWl(UINT8* pFsName, UINT32 inDataLen, UINT8 inData[], UINT16 loc { mallocLen = sizeof(SafeParam) * COMM_DEV_MAX_NUM; /*-< ͨŵİȫС*/ oppSafeParams = (SafeParam*)malloc(mallocLen); /*-< ͨŵİȫ*/ - if (NULL != oppSafeParams) /*-< ͨŵİȫǷɹ*/ - { - CommonMemSet(oppSafeParams, mallocLen, 0, mallocLen); /*-< ͨŵİȫ*/ + } + if (NULL != oppSafeParams) /*-< ͨŵİȫǷɹ*/ + { + CommonMemSet(oppSafeParams, mallocLen, 0u, mallocLen); /*-< ͨŵİȫ*/ - funRtn = GetDevSafeParam(localId, &outParamSheet, &inParamSheet, &locSafeParam); /*-< ûȡȫ,ֵúֵ*/ + funRtn = GetDevSafeParam(localId, &outParamSheet, &inParamSheet, &locSafeParam); /*-< ûȡȫ,ֵúֵ*/ + } + if (1u == funRtn) /*-< úǷɹ*/ + { + InitSheet(&outCommSheet, g_pDataBuf, g_DataBufLen, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); /*-< ʼ豸ͨЭ*/ + InitSheet(&inCommSheet, inData, inDataLen, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); /*-< ʼ豸ͨЭ*/ + GetCommTypes(localTypeId, &outCommSheet, &commTypesLen, commTypes, COMM_DEV_TYPE_MAX_NUM); /*-< 豸ͨЭлȡͨ豸*/ + GetCommTypes(localTypeId, &inCommSheet, &commTypesLen, commTypes, COMM_DEV_TYPE_MAX_NUM); /*-< 豸ͨЭлȡͨ豸*/ + } + if (0u < commTypesLen) /*-< Ƿͨ豸*/ + { + funRtn = 0u; /*-< õúֵΪ0*/ + + for (i = 0u; i < commTypesLen; i++) /*-< ͨ豸±ǷСͨ豸*/ + { + funRtn = GetOppSafeParams(locSafeParam.Addr, commTypes[i], &outParamSheet, &oppSafeParamsNum, oppSafeParams, COMM_DEV_MAX_NUM, &inParamSheet, pDsuRsspInfo); /*-< ûȡԷȫ,ֵúֵ*/ if (1u == funRtn) /*-< úǷɹ*/ { - InitSheet(&outCommSheet, g_DataBufLen, g_pDataBuf, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); /*-< ʼ豸ͨЭ*/ - InitSheet(&inCommSheet, inDataLen, inData, DSU_DEVICE_IP_CONFIG_TYPE, DSU_DATA_IP_COMM_PROTCL_ID); /*-< ʼ豸ͨЭ*/ - GetCommTypes(localTypeId, &outCommSheet, &commTypesLen, commTypes, COMM_DEV_TYPE_MAX_NUM); /*-< 豸ͨЭлȡͨ豸*/ - GetCommTypes(localTypeId, &inCommSheet, &commTypesLen, commTypes, COMM_DEV_TYPE_MAX_NUM); /*-< 豸ͨЭлȡͨ豸*/ - if (0u < commTypesLen) /*-< Ƿͨ豸*/ + funRtn = GetOppSafeParams(locSafeParam.Addr, commTypes[i], &inParamSheet, &oppSafeParamsNum, oppSafeParams, COMM_DEV_MAX_NUM, &outParamSheet, pDsuRsspInfo); /*-< ûȡԷȫ,ֵúֵ*/ + if (0u == funRtn) /*-< úǷʧ*/ { - for (i = 0u; i < commTypesLen; i++) /*-< ͨ豸±ǷСͨ豸*/ - { - funRtn = GetOppSafeParams(locSafeParam.Addr, commTypes[i], &outParamSheet, &oppSafeParamsNum, oppSafeParams, COMM_DEV_MAX_NUM, &inParamSheet, pDsuRsspInfo); /*-< ûȡԷȫ,ֵúֵ*/ - if (1 == funRtn) /*-< úǷɹ*/ - { - funRtn = GetOppSafeParams(locSafeParam.Addr, commTypes[i], &inParamSheet, &oppSafeParamsNum, oppSafeParams, COMM_DEV_MAX_NUM, &outParamSheet, pDsuRsspInfo); /*-< ûȡԷȫ,ֵúֵ*/ - if (0 == funRtn) /*-< úǷʧ*/ - { - isBreak = 1u; /*-< ˳־Ϊ˳*/ - } - } - else - { - isBreak = 1u; /*-< ˳־Ϊ˳*/ - } - if (1u == isBreak) /*-< ˳־ǷΪ˳*/ - { - break; /*-< ˳*/ - } - } - - if ((1u == funRtn) && (0 < oppSafeParamsNum)) /*-< úǷɹ ͨŰȫ*/ - { - pDsuRsspInfo->RsspInfoStruLen = 4u * oppSafeParamsNum; /*-< RSSPϢ,һԷ豸Ҫ4*/ - mallocLen = sizeof(DSU_RSSP_LNK_INFO_STRU_WL) * pDsuRsspInfo->RsspInfoStruLen; /*-< SSPϢС*/ - pDsuRsspInfo->pRsspLnkInfoStru = (DSU_RSSP_LNK_INFO_STRU_WL*)malloc(mallocLen); /*-< RSSPϢ*/ - if (NULL != pDsuRsspInfo->pRsspLnkInfoStru) /*-< RSSPϢǷɹ*/ - { - CommonMemSet(pDsuRsspInfo->pRsspLnkInfoStru, mallocLen, 0, mallocLen); /*-< RSSPϢ*/ - - for (i = 0u; i < oppSafeParamsNum; i++) /*-< ǰͨŰȫ±ǷСͨŰȫ*/ - { - GenerateParamsRow(&locSafeParam, &oppSafeParams[i], &curLnkInfosLen, pDsuRsspInfo->pRsspLnkInfoStru, pDsuRsspInfo->RsspInfoStruLen); /*-< òк,ԷͨŲ*/ - GenerateParamsRow(&oppSafeParams[i], &locSafeParam, &curLnkInfosLen, pDsuRsspInfo->pRsspLnkInfoStru, pDsuRsspInfo->RsspInfoStruLen); /*-< òк,ԷͨŲ*/ - } - free(oppSafeParams); /*-< ͷŶ̬ͨŰȫб*/ - oppSafeParams = NULL; /*-< ͨŰȫбΪ*/ - oppSafeParamsNum = 0u; /*-< ͨŰȫбΪ0*/ - - InitSheet(&configSheet, inDataLen, inData, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_COMM_INFO_ID); /*-< ʼFS豸ͨԱ*/ - /*ȡ豸ͨԱ*/ - readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_COMM_INFO_ID, &pData, &dataLen); /*-< úȡFS豸ͨԱ*/ - if ((1 == readRtn) && (DSU_DEVICE_COMM_INFO_STRU_SIZE_WL <= dataLen)) /*-< úǷɹ*/ - { - pDsuRsspInfo->DeviceCommStruLen = (UINT16)(dataLen / DSU_DEVICE_COMM_INFO_STRU_SIZE_WL); /*-< ñݵĸ*/ - mallocLen = sizeof(DSU_DEVICE_COMM_INFO_STRU_WL) * (pDsuRsspInfo->DeviceCommStruLen + configSheet.RowCount); /*-< ÷ռС*/ - pDsuRsspInfo->pDevCommInfoStru = (DSU_DEVICE_COMM_INFO_STRU_WL*)malloc(mallocLen); /*-< 豸ͨԱռ*/ - if (NULL != pDsuRsspInfo->pDevCommInfoStru) /*-< 豸ͨԱǷɹ*/ - { - CommonMemSet(pDsuRsspInfo->pDevCommInfoStru, mallocLen, 0, mallocLen); /*-< 豸ͨԱ*/ - - offset = 0; /*-< ±Ϊ0*/ - for (i = 0; i < pDsuRsspInfo->DeviceCommStruLen; i++) - { - /*2ֽڱ*/ - pDsuRsspInfo->pDevCommInfoStru[i].EmitterType = ShortFromChar(&pData[offset]); /*-< ñ*/ - offset += 2; /*-< ±2*/ - /*2ֽڶԷ*/ - pDsuRsspInfo->pDevCommInfoStru[i].ReceptorType = ShortFromChar(&pData[offset]); /*-< öԷ*/ - offset += 2; /*-< ±2*/ - /*1ֽ󶪰*/ - pDsuRsspInfo->pDevCommInfoStru[i].MaxLost = pData[offset]; /*-< 󶪰*/ - offset++; /*-< ±1*/ - /*1ֽղ*/ - pDsuRsspInfo->pDevCommInfoStru[i].DLost = pData[offset]; /*-< ղ*/ - offset++; /*-< ±1*/ - /*1ֽڵȴظSSR*/ - pDsuRsspInfo->pDevCommInfoStru[i].WSsrOut = pData[offset]; /*-< õȴظSSR*/ - offset++; /*-< ±1*/ - /*1ֽڶͬ*/ - pDsuRsspInfo->pDevCommInfoStru[i].AntiDelayCount = pData[offset]; /*-< öͬ*/ - offset++; /*-< ±1*/ - /*1ֽڱijʱ*/ - pDsuRsspInfo->pDevCommInfoStru[i].TOut = pData[offset]; /*-< ñijʱ*/ - offset++; /*-< ±1*/ - - if ((UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].MaxLost) - && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].DLost) - && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].WSsrOut) - && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].AntiDelayCount) - && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].TOut)) /*-< 󶪰,Ч,SSR,ʱʱУ,ʱǷ񶼷0xFF(ֹUINT8ֵȽϴС)*/ - { - /*1ֽϢID*/ - pDsuRsspInfo->pDevCommInfoStru[i].MsgId = pData[offset]; /*-< ϢID*/ - offset++; /*-< ±1*/ - /*1ֽڽӿڰ汾*/ - pDsuRsspInfo->pDevCommInfoStru[i].IftVer = pData[offset]; /*-< ýӿڰ汾*/ - offset++; /*-< ±1*/ - } - else - { - break; /*-< ˳*/ - } - } - if (offset == dataLen) /*-< 豸ͨԱֵǷɹ*/ - { - if ((0u < configSheet.Len) && (0 == configSheet.Len % configSheet.RowCount)) /*-< FS豸ͨԱֵǷɹ*/ - { - rowLen = configSheet.Len / configSheet.RowCount; /*-< FS豸ͨԱг*/ - if (DSU_DEVICE_COMM_INFO_STRU_SIZE_WL == rowLen) /*-< FS豸ͨԱгǷȷ*/ - { - rowCount = pDsuRsspInfo->DeviceCommStruLen; /*-< õǰ*/ - for (i = 0; i < configSheet.RowCount; i++) /*-< ǰ±ǷС*/ - { - hasSame = 0u; /*-< ظ־Ϊ0*/ - inLocDevType = ShortFromChar(&configSheet.Data[configSheet.StartIdx + (i * rowLen)]); /*-< */ - inOppDevType = ShortFromChar(&configSheet.Data[configSheet.StartIdx + (i * rowLen) + 2]); /*-< Է*/ - for (j = 0; j < pDsuRsspInfo->DeviceCommStruLen; j++) /*-< ǰǷСڱ*/ - { - if ((inLocDevType == pDsuRsspInfo->pDevCommInfoStru[j].EmitterType) && (inOppDevType == pDsuRsspInfo->pDevCommInfoStru[j].ReceptorType)) /*-< ԷǷͬ*/ - { - hasSame = 1u; /*-< ظ־Ϊ1*/ - } - } - if (0u == hasSame) /*-< ظ־ǷΪ0*/ - { - pDsuRsspInfo->pDevCommInfoStru[rowCount].EmitterType = inLocDevType; /*-< ñ*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].ReceptorType = inOppDevType; /*-< öԷ*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].MaxLost = configSheet.Data[configSheet.StartIdx + (i * rowLen) + 4]; /*-< 󶪰*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].DLost = configSheet.Data[configSheet.StartIdx + (i * rowLen) + 5]; /*-< ղ*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].WSsrOut = configSheet.Data[configSheet.StartIdx + (i * rowLen) + 6]; /*-< õȴظSSR*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].AntiDelayCount = configSheet.Data[configSheet.StartIdx + (i * rowLen) + 7]; /*-< öͬ*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].TOut = configSheet.Data[configSheet.StartIdx + (i * rowLen) + 8]; /*-< ñijʱ*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].MsgId = configSheet.Data[configSheet.StartIdx + (i * rowLen) + 9]; /*-< ϢID*/ - pDsuRsspInfo->pDevCommInfoStru[rowCount].IftVer = configSheet.Data[configSheet.StartIdx + (i * rowLen) + 10]; /*-< ýӿڰ汾*/ - - rowCount++; /*-< 1*/ - } - } - pDsuRsspInfo->DeviceCommStruLen = rowCount; /*-< */ - } - } - - for (i = 0; i < pDsuRsspInfo->RsspInfoStruLen; i++) /*-< ǰ±ǷС*/ - { - if (pDsuRsspInfo->pRsspLnkInfoStru[i].EmitterName == localId) /*-< ΨһIDǷΪΨһID*/ - { - pDsuRsspInfo->LocEmitterName = pDsuRsspInfo->pRsspLnkInfoStru[i].EmitterName; /*-< ñΨһID*/ - pDsuRsspInfo->LocRsspiAddr = pDsuRsspInfo->pRsspLnkInfoStru[i].RsspAddr; /*-< ñЭַ*/ - break; /*-< ˳*/ - } - } - - rtn = 1; /*-< úֵΪɹ*/ - } - } - } - } - } - + isBreak = 1u; /*-< ˳־Ϊ˳*/ } } + else + { + isBreak = 1u; /*-< ˳־Ϊ˳*/ + } + if (1u == isBreak) /*-< ˳־ǷΪ˳*/ + { + break; /*-< ˳*/ + } + } + + pDsuRsspInfo->pRsspLnkInfoStru = NULL; /*-< RSSPϢ*/ + if ((1u == funRtn) && (0u < oppSafeParamsNum)) /*-< úǷɹ ͨŰȫ*/ + { + pDsuRsspInfo->RsspInfoStruLen = 4u * (UINT16)oppSafeParamsNum; /*-< RSSPϢ,һԷ豸Ҫ4*/ + mallocLen = sizeof(DSU_RSSP_LNK_INFO_STRU_WL) * pDsuRsspInfo->RsspInfoStruLen; /*-< SSPϢС*/ + pDsuRsspInfo->pRsspLnkInfoStru = (DSU_RSSP_LNK_INFO_STRU_WL*)malloc(mallocLen); /*-< RSSPϢ*/ + } + if (NULL != pDsuRsspInfo->pRsspLnkInfoStru) /*-< RSSPϢǷɹ*/ + { + CommonMemSet(pDsuRsspInfo->pRsspLnkInfoStru, mallocLen, 0u, mallocLen); /*-< RSSPϢ*/ + + for (i = 0u; i < oppSafeParamsNum; i++) /*-< ǰͨŰȫ±ǷСͨŰȫ*/ + { + GenerateParamsRow(&locSafeParam, &oppSafeParams[i], &curLnkInfosLen, pDsuRsspInfo->pRsspLnkInfoStru, pDsuRsspInfo->RsspInfoStruLen); /*-< òк,ԷͨŲ*/ + GenerateParamsRow(&oppSafeParams[i], &locSafeParam, &curLnkInfosLen, pDsuRsspInfo->pRsspLnkInfoStru, pDsuRsspInfo->RsspInfoStruLen); /*-< òк,ԷͨŲ*/ + } + free(oppSafeParams); /*-< ͷŶ̬ͨŰȫб*/ + oppSafeParams = NULL; /*-< ͨŰȫбΪ*/ + oppSafeParamsNum = 0u; /*-< ͨŰȫбΪ0*/ + + InitSheet(&configSheet, inData, inDataLen, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_COMM_INFO_ID); /*-< ʼFS豸ͨԱ*/ + /*ȡ豸ͨԱ*/ + readRtn = dquGetConfigData((CHAR*)pFsName, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_COMM_INFO_ID, &pData, &dataLen); /*-< úȡFS豸ͨԱ*/ + } + + pDsuRsspInfo->pDevCommInfoStru = NULL; /*-< 豸ͨԱ*/ + if ((1u == readRtn) && (DSU_DEVICE_COMM_INFO_STRU_SIZE_WL <= dataLen)) /*-< úǷɹ*/ + { + pDsuRsspInfo->DeviceCommStruLen = (UINT16)(dataLen / DSU_DEVICE_COMM_INFO_STRU_SIZE_WL); /*-< ñݵĸ*/ + mallocLen = sizeof(DSU_DEVICE_COMM_INFO_STRU_WL) * (pDsuRsspInfo->DeviceCommStruLen + configSheet.RowCount); /*-< ÷ռС*/ + pDsuRsspInfo->pDevCommInfoStru = (DSU_DEVICE_COMM_INFO_STRU_WL*)malloc(mallocLen); /*-< 豸ͨԱռ*/ + } + if (NULL != pDsuRsspInfo->pDevCommInfoStru) /*-< 豸ͨԱǷɹ*/ + { + CommonMemSet(pDsuRsspInfo->pDevCommInfoStru, mallocLen, 0u, mallocLen); /*-< 豸ͨԱ*/ + + offset = 0u; /*-< ±Ϊ0*/ + for (i = 0u; i < pDsuRsspInfo->DeviceCommStruLen; i++) /*-< 豸ͨԱ±С*/ + { + /*2ֽڱ*/ + pDsuRsspInfo->pDevCommInfoStru[i].EmitterType = ShortFromChar(&pData[offset]); /*-< ñ*/ + offset += 2u; /*-< ±2*/ + /*2ֽڶԷ*/ + pDsuRsspInfo->pDevCommInfoStru[i].ReceptorType = ShortFromChar(&pData[offset]); /*-< öԷ*/ + offset += 2u; /*-< ±2*/ + /*1ֽ󶪰*/ + pDsuRsspInfo->pDevCommInfoStru[i].MaxLost = pData[offset]; /*-< 󶪰*/ + offset++; /*-< ±1*/ + /*1ֽղ*/ + pDsuRsspInfo->pDevCommInfoStru[i].DLost = pData[offset]; /*-< ղ*/ + offset++; /*-< ±1*/ + /*1ֽڵȴظSSR*/ + pDsuRsspInfo->pDevCommInfoStru[i].WSsrOut = pData[offset]; /*-< õȴظSSR*/ + offset++; /*-< ±1*/ + /*1ֽڶͬ*/ + pDsuRsspInfo->pDevCommInfoStru[i].AntiDelayCount = pData[offset]; /*-< öͬ*/ + offset++; /*-< ±1*/ + /*1ֽڱijʱ*/ + pDsuRsspInfo->pDevCommInfoStru[i].TOut = pData[offset]; /*-< ñijʱ*/ + offset++; /*-< ±1*/ + + if ((UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].MaxLost) + && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].DLost) + && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].WSsrOut) + && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].AntiDelayCount) + && (UINT8_MAX != pDsuRsspInfo->pDevCommInfoStru[i].TOut)) /*-< 󶪰,Ч,SSR,ʱʱУ,ʱǷ񶼷0xFF(ֹUINT8ֵȽϴС)*/ + { + /*1ֽϢID*/ + pDsuRsspInfo->pDevCommInfoStru[i].MsgId = pData[offset]; /*-< ϢID*/ + offset++; /*-< ±1*/ + /*1ֽڽӿڰ汾*/ + pDsuRsspInfo->pDevCommInfoStru[i].IftVer = pData[offset]; /*-< ýӿڰ汾*/ + offset++; /*-< ±1*/ + } + else + { + break; /*-< ˳*/ + } + } + if (offset == dataLen) /*-< 豸ͨԱֵǷɹ*/ + { + deepPro = 1u; /*-< ô־Ϊ*/ + } } } } + if (1u == deepPro) /*-< ־ǷΪ*/ + { + if ((NULL != configSheet.Data) && (configSheet.ColLen >= configColLen)) /*-< FS豸ͨԱֵǷɹ*/ + { + rowCount = pDsuRsspInfo->DeviceCommStruLen; /*-< õǰ*/ + for (i = 0u; i < configSheet.RowCount; i++) /*-< ǰ±ǷС*/ + { + hasSame = 0u; /*-< ظ־Ϊ0*/ + inLocDevType = ShortFromChar(&configSheet.Data[(i * configSheet.ColLen)]); /*-< */ + inOppDevType = ShortFromChar(&configSheet.Data[(i * configSheet.ColLen) + 2]); /*-< Է*/ + for (j = 0u; j < pDsuRsspInfo->DeviceCommStruLen; j++) /*-< ǰǷСڱ*/ + { + if ((inLocDevType == pDsuRsspInfo->pDevCommInfoStru[j].EmitterType) && (inOppDevType == pDsuRsspInfo->pDevCommInfoStru[j].ReceptorType)) /*-< ԷǷͬ*/ + { + hasSame = 1u; /*-< ظ־Ϊ1*/ + } + } + if (0u == hasSame) /*-< ظ־ǷΪ0*/ + { + pDsuRsspInfo->pDevCommInfoStru[rowCount].EmitterType = inLocDevType; /*-< ñ*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].ReceptorType = inOppDevType; /*-< öԷ*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].MaxLost = configSheet.Data[(i * configSheet.ColLen) + 4]; /*-< 󶪰*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].DLost = configSheet.Data[(i * configSheet.ColLen) + 5]; /*-< ղ*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].WSsrOut = configSheet.Data[(i * configSheet.ColLen) + 6]; /*-< õȴظSSR*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].AntiDelayCount = configSheet.Data[(i * configSheet.ColLen) + 7]; /*-< öͬ*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].TOut = configSheet.Data[(i * configSheet.ColLen) + 8]; /*-< ñijʱ*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].MsgId = configSheet.Data[(i * configSheet.ColLen) + 9]; /*-< ϢID*/ + pDsuRsspInfo->pDevCommInfoStru[rowCount].IftVer = configSheet.Data[(i * configSheet.ColLen) + 10]; /*-< ýӿڰ汾*/ + + rowCount++; /*-< 1*/ + } + } + pDsuRsspInfo->DeviceCommStruLen = rowCount; /*-< */ + } + + for (i = 0u; i < pDsuRsspInfo->RsspInfoStruLen; i++) /*-< ǰ±ǷС*/ + { + if (pDsuRsspInfo->pRsspLnkInfoStru[i].EmitterName == localId) /*-< ΨһIDǷΪΨһID*/ + { + pDsuRsspInfo->LocEmitterName = pDsuRsspInfo->pRsspLnkInfoStru[i].EmitterName; /*-< ñΨһID*/ + pDsuRsspInfo->LocRsspiAddr = pDsuRsspInfo->pRsspLnkInfoStru[i].RsspAddr; /*-< ñЭַ*/ + break; /*-< ˳*/ + } + } + + rtn = 1u; /*-< úֵΪɹ*/ + } + return rtn; /*-< غֵ*/ } @@ -1345,8 +1431,13 @@ UINT8 dsuRsspRGetName_WL(UINT16 rsspSrcAddr,UINT16 rsspDestAddr,UINT32* destDevN */ static UINT8 CheckSafeParamOnly(SafeParam* safeParam, SheetInfo* sheetInfo) { + /*- ֲ*/ +#ifdef RSSP_NO_HLHT + const UINT32 paramColLen = 23u; /*ҪRSSPϢг*/ +#else + const UINT32 paramColLen = 27u; /*ҪRSSPϢг*/ +#endif UINT8 rtnVal = 0u; /*-< úֵΪʧ*/ - UINT32 colLen = 0u; /*ֽڳ*/ UINT32 cmpVal[2][6] = { 0 }; /*ڱȽֵ*/ UINT32 curIdx = 0u; /*-< ǰȽ±*/ UINT32 curCmpVal[2][6] = { 0 }; /*-< ǰڱȽֵ*/ @@ -1355,76 +1446,78 @@ static UINT8 CheckSafeParamOnly(SafeParam* safeParam, SheetInfo* sheetInfo) UINT32 j = 0u; /*Ƚֵ±*/ UINT8 hasSame = 0u; /*Ƿͬ־Ϊͬ*/ UINT8 hasNoSame = 0u; /*Ƿͬ־Ϊ޲ͬ*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ if ((NULL != safeParam) && (NULL != sheetInfo)) /*-< Ƿǿ*/ { - if ((0u < sheetInfo->Len) && (0u < sheetInfo->RowCount)) /*-< Ƿ*/ + if ((NULL != sheetInfo->Data) && (sheetInfo->ColLen >= paramColLen)) /*-< Ƿ*/ { - if ((0u == (sheetInfo->Len % sheetInfo->RowCount)) && (0u == (sheetInfo->RowCount % 2u))) /*-< ݳǷϷǷͨ*/ + for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ + { + cmpVal[i][1] = safeParam->DevId; /*-< ڱȽΨһID*/ + cmpVal[i][2] = safeParam->Sid[i]; /*-< ڱȽSID*/ + cmpVal[i][3] = safeParam->Sinit[i]; /*-< ڱȽSINIT*/ + cmpVal[i][4] = safeParam->Dataver[i]; /*-< ڱȽDATAVER*/ + cmpVal[i][5] = safeParam->Addr; /*-< ڱȽADDR*/ + } + + deepPro = 1u; /*-< ô־Ϊ*/ + } + else + { + rtnVal = 1u; /*-< úֵΪɹ*/ + } + } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + for (curIdx = 0u; curIdx < sheetInfo->RowCount; curIdx += 2) /*-< ǰȽ±ǷС*/ + { + for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ + { +#ifdef RSSP_NO_HLHT + curCmpVal[i][1] = ShortFromChar(&sheetInfo->Data[((curIdx + i) * sheetInfo->ColLen) + 2u]); /*-< õǰΨһID*/ + channelIdx = 6u; /*-< ͨ±*/ +#else + curCmpVal[i][1] = LongFromChar(&sheetInfo->Data[((curIdx + i) * sheetInfo->ColLen) + 2u]); /*-< õǰΨһID*/ + channelIdx = 10u; /*-< ͨ±*/ +#endif + + curCmpVal[i][0] = ShortFromChar(&sheetInfo->Data[((curIdx + i) * sheetInfo->ColLen) + channelIdx]); /*-< õǰͨ*/ + curCmpVal[i][2] = LongFromChar(&sheetInfo->Data[((curIdx + i) * sheetInfo->ColLen) + channelIdx + 2u]); /*-< õǰSID*/ + curCmpVal[i][3] = LongFromChar(&sheetInfo->Data[((curIdx + i) * sheetInfo->ColLen) + channelIdx + 6u]); /*-< õǰSINIT*/ + curCmpVal[i][4] = LongFromChar(&sheetInfo->Data[((curIdx + i) * sheetInfo->ColLen) + channelIdx + 11u]); /*-< õǰDATAVER*/ + curCmpVal[i][5] = ShortFromChar(&sheetInfo->Data[((curIdx + i) * sheetInfo->ColLen) + channelIdx + 15u]); /*-< õǰADDR*/ + } + if ((1u == curCmpVal[0][0]) && (2u == curCmpVal[1][0]) && (curCmpVal[0][1] == curCmpVal[1][1]) && (curCmpVal[0][5] == curCmpVal[1][5])) /*-< ͨ,ΨһID,ADDRǷȷ*/ { for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ { - cmpVal[i][1] = safeParam->DevId; /*-< ڱȽΨһID*/ - cmpVal[i][2] = safeParam->Sid[i]; /*-< ڱȽSID*/ - cmpVal[i][3] = safeParam->Sinit[i]; /*-< ڱȽSINIT*/ - cmpVal[i][4] = safeParam->Dataver[i]; /*-< ڱȽDATAVER*/ - cmpVal[i][5] = safeParam->Addr; /*-< ڱȽADDR*/ - } - - colLen = sheetInfo->Len / sheetInfo->RowCount; /*-< г*/ - for (curIdx = 0u; curIdx < sheetInfo->RowCount; curIdx += 2) /*-< ǰȽ±ǷС*/ - { - for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ + hasSame = 0u; /*-< Ƿͬ־Ϊͬ*/ + hasNoSame = 0u; /*-< Ƿͬ־Ϊ޲ͬ*/ + for (j = 1u; j < 6u; j++) /*-< ǰȽֵ±ǷСֵ*/ { -#ifdef RSSP_NO_HLHT - curCmpVal[i][1] = ShortFromChar(&sheetInfo->Data[sheetInfo->StartIdx + ((curIdx + i) * colLen) + 2u]); /*-< õǰΨһID*/ - channelIdx = 6u; /*-< ͨ±*/ -#else - curCmpVal[i][1] = LongFromChar(&sheetInfo->Data[sheetInfo->StartIdx + ((curIdx + i) * colLen) + 2u]); /*-< õǰΨһID*/ - channelIdx = 10u; /*-< ͨ±*/ -#endif - - curCmpVal[i][0] = ShortFromChar(&sheetInfo->Data[sheetInfo->StartIdx + ((curIdx + i) * colLen) + channelIdx]); /*-< õǰͨ*/ - curCmpVal[i][2] = LongFromChar(&sheetInfo->Data[sheetInfo->StartIdx + ((curIdx + i) * colLen) + channelIdx + 2u]); /*-< õǰSID*/ - curCmpVal[i][3] = LongFromChar(&sheetInfo->Data[sheetInfo->StartIdx + ((curIdx + i) * colLen) + channelIdx + 6u]); /*-< õǰSINIT*/ - curCmpVal[i][4] = LongFromChar(&sheetInfo->Data[sheetInfo->StartIdx + ((curIdx + i) * colLen) + channelIdx + 11u]); /*-< õǰDATAVER*/ - curCmpVal[i][5] = ShortFromChar(&sheetInfo->Data[sheetInfo->StartIdx + ((curIdx + i) * colLen) + channelIdx + 15u]); /*-< õǰADDR*/ - } - if ((1u == curCmpVal[0][0]) && (2u == curCmpVal[1][0]) && (curCmpVal[0][1] == curCmpVal[1][1]) && (curCmpVal[0][5] == curCmpVal[1][5])) /*-< ͨ,ΨһID,ADDRǷȷ*/ - { - for (i = 0u; i < 2u; i++) /*-< ǰͨǷС2*/ + if (curCmpVal[i][j] == cmpVal[i][j]) /*-< ֵͬͨǷͬ*/ { - hasSame = 0u; /*-< Ƿͬ־Ϊͬ*/ - hasNoSame = 0u; /*-< Ƿͬ־Ϊ޲ͬ*/ - for (j = 1u; j < 6u; j++) /*-< ǰȽֵ±ǷСֵ*/ - { - if (curCmpVal[i][j] == cmpVal[i][j]) /*-< ֵͬͨǷͬ*/ - { - hasSame = 1u; /*-< Ƿͬ־Ϊͬ*/ - } - else - { - hasNoSame = 1u; /*-< Ƿͬ־Ϊвͬ*/ - } - } - if ((1u == hasSame) && (1u == hasNoSame))/*-< Ƿͬвͬ*/ - { - break; /*-< ˳*/ - } + hasSame = 1u; /*-< Ƿͬ־Ϊͬ*/ } - if (2u != i) /*-< ͨȽǷȽ*/ + else { - break; /*-< ˳*/ + hasNoSame = 1u; /*-< Ƿͬ־Ϊвͬ*/ } } + if ((1u == hasSame) && (1u == hasNoSame))/*-< Ƿͬвͬ*/ + { + break; /*-< ˳*/ + } } - if (curIdx == sheetInfo->RowCount) /*-< ǰȽǷȽ*/ + if (2u != i) /*-< ͨȽǷȽ*/ { - rtnVal = 1u; /*-< úֵΪɹ*/ + break; /*-< ˳*/ } } } - else + if (curIdx == sheetInfo->RowCount) /*-< ǰȽǷȽ*/ { rtnVal = 1u; /*-< úֵΪɹ*/ } @@ -1434,6 +1527,79 @@ static UINT8 CheckSafeParamOnly(SafeParam* safeParam, SheetInfo* sheetInfo) } #ifndef RSSP_NO_HLHT + +/** + * @brief DquInitAllHlhtId ʼлͨID + * @param pFsName ļ ȡֵΧ:ֽ + * @param pDsuRsspInfo Ϣ ȡֵΧ:οṹDSU_RSSP_INFO_STRU_WL + */ +static void DquInitAllHlhtId(UINT8* pFsName, DSU_RSSP_INFO_STRU_WL* pDsuRsspInfo) +{ + /*- ֲ*/ + UINT8 readRtn = 0u; /*ȡFSֵ*/ + + if ((NULL != pFsName) && (NULL != pDsuRsspInfo)) /*-< Ƿǿ*/ + { + /*ȡZCŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_ZC_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->ZcRowNum, &pDsuRsspInfo->ZcHlhtids); /*-< óʼŶձZC*/ + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡCIŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_CI_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->CiRowNum, &pDsuRsspInfo->CiHlhtids); /*-< óʼŶձCI*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡRCŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_RC_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->RcRowNum, &pDsuRsspInfo->RcHlhtids); /*-< óʼŶձRC*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡATSŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_ATS_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->AtsRowNum, &pDsuRsspInfo->AtsHlhtids); /*-< óʼŶձATS*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡVOBCŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_VOBC_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->VobcRowNum, &pDsuRsspInfo->VobcHlhtids); /*-< óʼŶձVOBC*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡIVOCŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_IVOC_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->IvocRowNum, &pDsuRsspInfo->IvocHlhtids); /*-< óʼŶձIVOC*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡDSUŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_DSU_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->DsuRowNum, &pDsuRsspInfo->DsuHlhtids); /*-< óʼŶձDSU*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡAOMŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_AOMSEC_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->AomRowNum, &pDsuRsspInfo->AomHlhtids); /*-< óʼŶձAOM*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡIVOC-AOMŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_IVOC_AOM_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->IvocAomRowNum, &pDsuRsspInfo->IvocAomHlhtids); /*-< óʼŶձIVOC-AOM*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡTDTŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_TDT_ID, ID_MAP_SIZE, DEV_HLHTID_NUM_ONE, &pDsuRsspInfo->TdtRowNum, &pDsuRsspInfo->TdtHlhtids); /*-< óʼŶձTDT*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡϵͳŶձ*/ + readRtn = DquInitHlhtId(pFsName, IDMAP_AXLE_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->AxleRowNum, &pDsuRsspInfo->AxleHlhtids); /*-< óʼŶձļϵͳ*/ + } + if (1u == readRtn) /*-< úǷɹ*/ + { + /*ȡITEŶձ*/ + (void)DquInitHlhtId(pFsName, IDMAP_ITE_ID, VOBC_ID_MAP_SIZE, DEV_HLHTID_NUM_TWO, &pDsuRsspInfo->IteRowNum, &pDsuRsspInfo->IteHlhtids); /*-< óʼŶձITE*/ + } + } +} + /* *: DquInitHlhtId *: ʼŶձ @@ -1534,42 +1700,50 @@ static UINT32 DquGetHlhtId(UINT8 type, UINT8 id, UINT16 logicId, UINT16 rowNum, return hlhtId; } -/* -*: DquGetDevId -*: ȡ豸ID -*: UINT32 hlhtId HLHTID -* UINT16 rowNum -* const DSU_DEV_HLHTID *pDevHlhtids ӦŶձϢ -* UINT8 hlhtIdNum һ豸Ӧhlhtid -*: -*: -*ֵ: ӦID +/** +* @brief DquGetDevId ݻͨIDȡ豸ID +* @param hlhtId ͨID ȡֵΧ:0x00000000-0xFFFFFFFF +* @param rowNum ȡֵΧ:0x0000-0xFFFF +* @param pDevHlhtids ӦŶձϢ ȡֵΧ:DSU_DEV_HLHTID +* @param hlhtIdNum һ豸Ӧhlhtid ȡֵΧ:0x00-0xFF +* @param needSetDevType õ豸 ȡֵΧ:0x00-0xFF +* @param devType 豸 ȡֵΧ:0x00-0xFF + * @return ID ȡֵΧ:0x00-0xFF */ -static UINT8 DquGetDevId(UINT32 hlhtId, UINT16 rowNum, const DSU_DEV_HLHTID *pDevHlhtids, UINT8 hlhtIdNum) +static UINT8 DquGetDevId(const UINT32 hlhtId, const UINT16 rowNum, const DSU_DEV_HLHTID* pDevHlhtids, const UINT8 hlhtIdNum, const UINT8 needSetDevType, UINT8* devType) { - UINT8 id = 0; /*豸ID*/ - UINT32 i = 0; /*ѭ*/ - UINT32 j = 0; /*ѭ*/ - UINT8 isBreak = 0; /*Ƿ˳ѭ*/ + /*- ֲ*/ + UINT8 id = 0u; /*-< ÷غֵ豸IDΪ0*/ + UINT16 i = 0u; /*ѭ*/ + UINT8 j = 0u; /*ѭ*/ + UINT8 isBreak = 0u; /*-< Ƿ˳ʶΪ*/ - for (i = 0; i < rowNum; i++) + if (UINT32_MAX != hlhtId) /*-< ûͨID*/ { - for (j = 0; j < hlhtIdNum; j++) + for (i = 0u; i < rowNum; i++) /*-< ±С*/ { - if (pDevHlhtids[i].HlhtIds[j] == hlhtId) /*ҵHLHTID˳*/ + for (j = 0u; j < hlhtIdNum; j++) /*-< ͨIDС*/ { - id = (UINT8)pDevHlhtids[i].DevId; /*豸IDһֽڵ*/ - isBreak = 1; - break; + if (pDevHlhtids[i].HlhtIds[j] == hlhtId) /*-< ҵHLHTID˳*/ + { + id = (UINT8)pDevHlhtids[i].DevId; /*-< õ豸ID*/ + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + break; /*-< ˳*/ + } + } + if (1u == isBreak) /*-< ˳ʶΪǷΪ*/ + { + break; /*-< ˳*/ } } - if (1 == isBreak) /*ҵ˳ѭ*/ + + if (0u < id) /*-< ǷҵID*/ { - break; + (*devType) = needSetDevType; /*-< 豸Ϊõ豸*/ } } - return id; + return id; /*-< غֵ豸ID*/ } /** @@ -1588,43 +1762,55 @@ static UINT32 DquGetDevHlhtId(UINT8 devType, UINT8 devId, UINT16 logicId, DSU_RS switch (devType) /*-< ж*/ { case ZC_TYPE: /*-< ǷΪZC*/ - /*ZC*/ + /*ZC*/ hlhtId = DquGetHlhtId(0, devId, logicId, pDsuRssp->ZcRowNum, pDsuRssp->ZcHlhtids); /*-< ûȡZCͨID,ֵֵ*/ break; /*-< ˳*/ case CI_TYPE: /*-< ǷΪCI*/ - /*CI*/ + /*CI*/ hlhtId = DquGetHlhtId(0, devId, logicId, pDsuRssp->CiRowNum, pDsuRssp->CiHlhtids); /*-< ûȡCIͨID,ֵֵ*/ break; /*-< ˳*/ + case RC_TYPE: /*-< ǷΪRC*/ + /*RC*/ + hlhtId = DquGetHlhtId(0, devId, logicId, pDsuRssp->RcRowNum, pDsuRssp->RcHlhtids); /*-< ûȡRCͨID,ֵֵ*/ + break; /*-< ˳*/ case ATS_TYPE: /*-< ǷΪATS*/ - /*ATS*/ + /*ATS*/ hlhtId = DquGetHlhtId(0, devId, logicId, pDsuRssp->AtsRowNum, pDsuRssp->AtsHlhtids); /*-< ûȡATSͨID,ֵֵ*/ break; /*-< ˳*/ case VOBC_TYPE: /*-< ǷΪVOBC*/ - /*VOBC*/ + /*VOBC*/ hlhtId = DquGetHlhtId(1, devId, logicId, pDsuRssp->VobcRowNum, pDsuRssp->VobcHlhtids); /*-< ûȡVOBCͨID,ֵֵ*/ break; /*-< ˳*/ + case IVOC_TYPE: /*-< ǷΪIVOC*/ + /*IVOC*/ + hlhtId = DquGetHlhtId(1, devId, logicId, pDsuRssp->IvocRowNum, pDsuRssp->IvocHlhtids); /*-< ûȡIVOCͨID,ֵֵ*/ + break; /*-< ˳*/ case DSU_TYPE: /*-< ǷΪDSU*/ - /*DSU*/ + /*DSU*/ hlhtId = DquGetHlhtId(0, devId, logicId, pDsuRssp->DsuRowNum, pDsuRssp->DsuHlhtids); /*-< ûȡDSUͨID,ֵֵ*/ break; /*-< ˳*/ case AOM_TYPE: /*-< ǷΪAOM*/ - /*AOM*/ + /*AOM*/ hlhtId = DquGetHlhtId(1, devId, logicId, pDsuRssp->AomRowNum, pDsuRssp->AomHlhtids); /*-< ûȡAOMͨID,ֵֵ*/ break; /*-< ˳*/ + case IVOC_AOM_TYPE: /*-< ǷΪIVOC-AOM*/ + /*IVOC-AOM*/ + hlhtId = DquGetHlhtId(1, devId, logicId, pDsuRssp->IvocAomRowNum, pDsuRssp->IvocAomHlhtids); /*-< ûȡIVOC-AOMͨID,ֵֵ*/ + break; /*-< ˳*/ case TDT_TYPE: /*-< ǷΪTDT*/ - /*TDT*/ + /*TDT*/ hlhtId = DquGetHlhtId(0, devId, logicId, pDsuRssp->TdtRowNum, pDsuRssp->TdtHlhtids); /*-< ûȡTDTͨID,ֵֵ*/ break; /*-< ˳*/ case AXLE_TYPE: /*-< ǷΪϵͳ*/ - /*ϵͳ*/ + /*ϵͳ*/ hlhtId = DquGetHlhtId(1, devId, logicId, pDsuRssp->AxleRowNum, pDsuRssp->AxleHlhtids); /*-< ûȡϵͳͨID,ֵֵ*/ break; /*-< ˳*/ case ITE_DEVTYPE: /*-< ǷΪITE*/ - /*ITE*/ + /*ITE*/ hlhtId = DquGetHlhtId(1, devId, logicId, pDsuRssp->IteRowNum, pDsuRssp->IteHlhtids); /*-< ûȡITEͨID,ֵֵ*/ break; /*-< ˳*/ default: /*-< */ - /*޲*/ + /*޲*/ break; /*-< ˳*/ } } @@ -1694,88 +1880,80 @@ UINT32 DquTypeIdToHlhtId(UINT16 devTypeId, UINT16 logicId, DSU_RSSP_INFO_STRU_WL */ UINT16 DquToDevTypeId(UINT32 hlhtid, DSU_RSSP_INFO_STRU_WL* pDsuRssp) { - UINT16 typeId = 0; /*-< úֵΪ0*/ - UINT8 id = 0; /*豸ID*/ - UINT16 devName = 0U; /*-< 豸Ϊ0*/ - id = DquGetDevId(hlhtid, pDsuRssp->ZcRowNum, pDsuRssp->ZcHlhtids, DEV_HLHTID_NUM_ONE); /*-< ûȡZC豸ID,ֵ豸ID*/ - if (0 == id) /*-< ZCŶձǷδҵ*/ + /*- ֲ*/ + UINT16 typeId = 0u; /*-< úֵΪ0*/ + UINT8 id = 0u; /*豸ID*/ + UINT8 devType = 0u; /*-< 豸*/ + + if ((UINT32)UINT32_MAX != hlhtid) /*-< ûͨID*/ { - id = DquGetDevId(hlhtid, pDsuRssp->CiRowNum, pDsuRssp->CiHlhtids, DEV_HLHTID_NUM_ONE); /*-< ûȡCI豸ID,ֵ豸ID*/ + id = DquGetDevId(hlhtid, pDsuRssp->ZcRowNum, pDsuRssp->ZcHlhtids, DEV_HLHTID_NUM_ONE, ZC_TYPE, &devType); /*-< ûȡZC豸ID,ֵ豸ID*/ + + if (0 == id) /*-< ZCŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->CiRowNum, pDsuRssp->CiHlhtids, DEV_HLHTID_NUM_ONE, CI_TYPE, &devType); /*-< ûȡCI豸ID,ֵ豸ID*/ + } + if (0 == id) /*-< CIŶձǷδҵ*/ { - id = DquGetDevId(hlhtid, pDsuRssp->AtsRowNum, pDsuRssp->AtsHlhtids, DEV_HLHTID_NUM_ONE); /*-< ûȡATS豸ID,ֵ豸ID*/ - if (0 == id) /*-< ATSŶձǷδҵ*/ - { - id = DquGetDevId(hlhtid, pDsuRssp->VobcRowNum, pDsuRssp->VobcHlhtids, DEV_HLHTID_NUM_TWO); /*-< ûȡVOBC豸ID,ֵ豸ID*/ - if (0 == id) /*-< VOBCŶձǷδҵ*/ - { - id = DquGetDevId(hlhtid, pDsuRssp->DsuRowNum, pDsuRssp->DsuHlhtids, DEV_HLHTID_NUM_ONE); /*-< ûȡDSU豸ID,ֵ豸ID*/ - if (0 == id) /*-< DSUŶձǷδҵ*/ - { - id = DquGetDevId(hlhtid, pDsuRssp->AomRowNum, pDsuRssp->AomHlhtids, DEV_HLHTID_NUM_TWO); /*-< ûȡAOM豸ID,ֵ豸ID*/ - if (0 == id) /*-< AOMŶձǷδҵ*/ - { - id = DquGetDevId(hlhtid, pDsuRssp->TdtRowNum, pDsuRssp->TdtHlhtids, DEV_HLHTID_NUM_ONE); /*-< ûȡTDT豸ID,ֵ豸ID*/ - if (0 == id) /*-< TDTŶձǷδҵ*/ - { - id = DquGetDevId(hlhtid, pDsuRssp->AxleRowNum, pDsuRssp->AxleHlhtids, DEV_HLHTID_NUM_TWO); /*-< ûȡϵͳ豸ID,ֵ豸ID*/ - if (0 == id) /*-< AXLEŶձǷδҵ*/ - { - id = DquGetDevId(hlhtid, pDsuRssp->IteRowNum, pDsuRssp->IteHlhtids, DEV_HLHTID_NUM_TWO); /*-< ûȡITE豸ID,ֵ豸ID*/ - if (0 == id) /*-< ITEŶձǷδҵ*/ - { - typeId = 0; /*-< IDΪ0*/ - } - else - { - devName = (UINT8)ITE_DEVTYPE; /*-< 豸ΪITE豸*/ - } - } - else - { - devName = (UINT8)AXLE_TYPE; /*-< 豸Ϊϵͳ*/ - } - }/*ҵ,TDTID*/ - else - { - devName = (UINT8)TDT_TYPE; /*-< 豸ΪTDT*/ - } - } - else /*ҵ,AOMID*/ - { - devName = (UINT8)AOM_TYPE; /*-< 豸ΪAOM*/ - } - } - else /*ҵ,DSUID*/ - { - devName = (UINT8)DSU_TYPE; /*-< 豸ΪDSU*/ - } - } - else /*ҵ,VOBCID*/ - { - devName = (UINT8)VOBC_TYPE; /*-< 豸ΪVOBC*/ - } - } - else /*ҵ,ATSID*/ - { - devName = (UINT8)ATS_TYPE; /*-< 豸ΪATS*/ - } + id = DquGetDevId(hlhtid, pDsuRssp->RcRowNum, pDsuRssp->RcHlhtids, DEV_HLHTID_NUM_ONE, RC_TYPE, &devType); /*-< ûȡRC豸ID,ֵ豸ID*/ } - else /*ҵ,CIID*/ - { - devName = (UINT8)CI_TYPE; /*-< 豸ΪCI*/ - } - } - else /*ҵ,ZCID*/ - { - devName = (UINT8)ZC_TYPE; /*-< 豸ΪZC*/ - } - typeId = (UINT16)(((devName << 8) & 0xFF00) | id); /*-< ͨ豸ID*/ - if (0 == typeId) /*-< IDǷΪ0*/ - { - typeId = (UINT16)(hlhtid & 0x0000FFFF); /*-< ʹôRSSPIΨһIDΪ豸ID*/ + if (0 == id) /*-< RCŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->AtsRowNum, pDsuRssp->AtsHlhtids, DEV_HLHTID_NUM_ONE, ATS_TYPE, &devType); /*-< ûȡATS豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< ATSŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->VobcRowNum, pDsuRssp->VobcHlhtids, DEV_HLHTID_NUM_TWO, VOBC_TYPE, &devType); /*-< ûȡVOBC豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< VOBCŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->IvocRowNum, pDsuRssp->IvocHlhtids, DEV_HLHTID_NUM_TWO, IVOC_TYPE, &devType); /*-< ûȡIVOC豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< IVOCŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->DsuRowNum, pDsuRssp->DsuHlhtids, DEV_HLHTID_NUM_ONE, DSU_TYPE, &devType); /*-< ûȡDSU豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< DSUŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->AomRowNum, pDsuRssp->AomHlhtids, DEV_HLHTID_NUM_TWO, AOM_TYPE, &devType); /*-< ûȡAOM豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< AOMŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->IvocAomRowNum, pDsuRssp->IvocAomHlhtids, DEV_HLHTID_NUM_TWO, IVOC_AOM_TYPE, &devType); /*-< ûȡIVOC-AOM豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< AOMŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->TdtRowNum, pDsuRssp->TdtHlhtids, DEV_HLHTID_NUM_ONE, TDT_TYPE, &devType); /*-< ûȡTDT豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< TDTŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->AxleRowNum, pDsuRssp->AxleHlhtids, DEV_HLHTID_NUM_TWO, AXLE_TYPE, &devType); /*-< ûȡϵͳ豸ID,ֵ豸ID*/ + } + + if (0 == id) /*-< AXLEŶձǷδҵ*/ + { + id = DquGetDevId(hlhtid, pDsuRssp->IteRowNum, pDsuRssp->IteHlhtids, DEV_HLHTID_NUM_TWO, ITE_DEVTYPE, &devType); /*-< ûȡITE豸ID,ֵ豸ID*/ + } } + + if (0u == id) /*-< ITEŶձǷδҵ*/ + { + typeId = (UINT16)(hlhtid & 0x0000FFFFu); /*-< ʹôRSSPIΨһIDΪ豸ID*/ + } + else + { + typeId = (UINT16)(((devType << 8) & 0xFF00u) | id); /*-< ͨ豸ID*/ + } + return typeId; /*-< غֵ*/ } diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.c b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.c index 49dceaa..ec3243c 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.c +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.c @@ -803,21 +803,21 @@ UINT16 ComputeMsgCRC16_WL(const UINT8* pData, UINT16 size) * * -------------------------------------------------------------- * pDestAdd UINT8 * INOUT ڴռ俪ʼַ - * Len UINT16 IN ڴռС + * Len UINT32 IN ڴռС * Val UINT8 IN ֵָ * * ֵ : 1 ***********************************************************************/ -UINT8 RsspMemSet_WL(UINT8 *pDestAdd, UINT16 Len, UINT8 Val) +UINT8 RsspMemSet_WL(UINT8* pDestAdd, UINT32 Len, UINT8 Val) { - UINT16 index = 0; - - for(index = 0; index < Len; index++) - { - pDestAdd[index] = Val; - } + UINT32 index = 0u; - return (UINT8)1; + for (index = 0u; index < Len; index++) + { + pDestAdd[index] = Val; + } + + return (UINT8)1u; } /*********************************************************************** diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.h b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.h index 8a2b771..eb7aa73 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.h +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspCommonWl.h @@ -30,7 +30,9 @@ /* */ #define RSSP_TYPE_VOBC_BACK_WL (0x13) /*VOBC-ͨ*/ #define RSSP_TYPE_VOBC_WL 0x14 /*VOBC*/ +#define RSSP_TYPE_IVOC_WL (0x10u) /*IVOC*/ #define RSSP_TYPE_AOM_WL 0x15 /*AOM*/ +#define RSSP_TYPE_IVOC_AOM_WL (0x11u) /*IVOC-AOM*/ #define RSSP_TYPE_ATS_WL 0x03 /*ATS*/ #define RSSP_TYPE_TTIL_WL 0x17 /*β*/ @@ -98,9 +100,9 @@ #define RP_LINK_LEN (14) /*·*/ #ifdef RSSPI_SIMPLE_LINK_REFRESH -#define RSSP_VAR_NODE_LEN_WL (58) /*·ˢ,мһڵij*/ +#define RSSP_VAR_NODE_LEN_WL (59) /*·ˢ,мһڵij*/ #else -#define RSSP_VAR_NODE_LEN_WL (87) /*мһڵij*/ +#define RSSP_VAR_NODE_LEN_WL (88) /*мһڵij*/ #endif #ifdef __cplusplus @@ -319,20 +321,19 @@ UINT32 CRC_Compute_Crc_WL(const UINT8* pData, UINT16 size, UINT8 chan); ***********************************************************************/ UINT16 ComputeMsgCRC16_WL(const UINT8* pData, UINT16 size); - /*********************************************************************** - * : RsrMemSet + * : RsspMemSet_WL * : ָڴ趨ֵָ - * : - * + * : + * * -------------------------------------------------------------- - * pDestAdd UINT8 * INOUT ڴռ俪ʼַ - * Len UINT16 IN ڴռС - * Val UINT8 IN ֵָ - * - * ֵ : + * pDestAdd UINT8 * INOUT ڴռ俪ʼַ + * Len UINT32 IN ڴռС + * Val UINT8 IN ֵָ + * + * ֵ : 1 ***********************************************************************/ -UINT8 RsspMemSet_WL(UINT8 *pDestAdd, UINT16 Len, UINT8 Val); +UINT8 RsspMemSet_WL(UINT8* pDestAdd, UINT32 Len, UINT8 Val); /*********************************************************************** * : RsrMemSet diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspIFWl.h b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspIFWl.h index 1d7c3f2..64f92fb 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspIFWl.h +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspIFWl.h @@ -43,16 +43,11 @@ UINT8 RsspReceive_WL(RSSP_INFO_STRU* rssp); */ UINT8 RsspOutput_WL(QueueStruct *AppToRs,UINT8 *VarArray,RSSP_INFO_STRU *pRsspStru); -/*********************************************************************** - * : RsspInit_WL - * : ͨúʵֶRSSPijʼӦ趨ĻֵеĴС - * : - * - * -------------------------------------------------------------- - * pRsspStruct RSSP_INFO_STRU* INOUT RSSPͳһṹ壬гʼֵá - * - * ֵ : UINT8 1 0󷵻 - ***********************************************************************/ +/** +* @brief RsspInit_WL RSRSPʼ +* @param pRsspStruct RSSPIʵ ȡֵΧ:οṹRSSP_INFO_STRU +* @return 0:ʧ 1:ɹ +*/ UINT8 RsspInit_WL(RSSP_INFO_STRU *pRsspStruct); /*********************************************************************** diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspInitWl.c b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspInitWl.c index a9e89fb..d608f79 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspInitWl.c +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspInitWl.c @@ -27,107 +27,104 @@ extern "C" { #endif -/*********************************************************************** - * : RsspInit_WL - * : ͨúʵֶRSRSPijʼӦ趨ĻֵеĴС - * : - * - * -------------------------------------------------------------- - * pRsspStruct RSSP_INFO_STRU* INOUT RSSPͳһṹ壬гʼֵá - * - * ֵ : UINT8 1 0󷵻 - ***********************************************************************/ + /** +* @brief RsspInit_WL RSRSPʼ +* @param pRsspStruct RSSPIʵ ȡֵΧ:οṹRSSP_INFO_STRU +* @return 0:ʧ 1:ɹ +*/ UINT8 RsspInit_WL(RSSP_INFO_STRU* pRsspStruct) { - UINT8 rtn = 0; /*ֵ*/ + /*- ֲ*/ + UINT8 rtn = 0; /*-< úֵΪʧ*/ UINT32 mallocLen = 0u; /*ռ䳤*/ - if (NULL != pRsspStruct) /*ǿж*/ + if (NULL != pRsspStruct) /*-< Ƿǿ*/ { /*¼ռ*/ - pRsspStruct->RecordArray = (UINT8*)malloc(pRsspStruct->RecordArraySize + 2); - if (NULL != pRsspStruct->RecordArray) + pRsspStruct->RecordArray = (UINT8*)malloc(pRsspStruct->RecordArraySize + 2); /*-< ־*/ + if (NULL != pRsspStruct->RecordArray) /*-< ɹ*/ { - CommonMemSet(pRsspStruct->RecordArray, sizeof(UINT8) * (pRsspStruct->RecordArraySize + 2), 0, sizeof(UINT8) * (pRsspStruct->RecordArraySize + 2)); + CommonMemSet(pRsspStruct->RecordArray, sizeof(UINT8) * (pRsspStruct->RecordArraySize + 2), 0, sizeof(UINT8) * (pRsspStruct->RecordArraySize + 2)); /*-< ־*/ /*ЭӦAppArrayռ*/ - pRsspStruct->AppArraySize = (pRsspStruct->OutputSize + RSSP_FIXED_LEN_WL + 14 + 26) * (pRsspStruct->MaxNumLink) + 2; - pRsspStruct->AppArray = (UINT8*)malloc(pRsspStruct->AppArraySize); - if (NULL != pRsspStruct->AppArray) + pRsspStruct->AppArraySize = (pRsspStruct->OutputSize + RSSP_FIXED_LEN_WL + 14 + 26) * (pRsspStruct->MaxNumLink) + 2; /*-< õӦ鳤*/ + pRsspStruct->AppArray = (UINT8*)malloc(pRsspStruct->AppArraySize); /*-< Ӧ*/ + } + if (NULL != pRsspStruct->AppArray) /*-< ɹ*/ + { + CommonMemSet(pRsspStruct->AppArray, sizeof(UINT8) * pRsspStruct->AppArraySize, 0, sizeof(UINT8) * pRsspStruct->AppArraySize); /*-< Ӧ*/ + + /*·ռ*/ + pRsspStruct->VarArraySize = RSSP_VAR_NODE_LEN_WL * pRsspStruct->MaxNumLink + 32 + 14 * (pRsspStruct->MaxNumLink + 2) + 32; /*-< õ·鳤*/ + pRsspStruct->VarArray = (UINT8*)malloc(pRsspStruct->VarArraySize); /*-< ·*/ + } + if (NULL != pRsspStruct->VarArray) /*-< ɹ*/ + { + CommonMemSet(pRsspStruct->VarArray, sizeof(UINT8) * pRsspStruct->VarArraySize, 0, sizeof(UINT8) * pRsspStruct->VarArraySize); /*-< ·*/ + + /*֡ռ*/ + pRsspStruct->FrameDataMaxLen = 2 + 8 + RSSP_FIXED_LEN_WL + 32 + (pRsspStruct->InputSize > pRsspStruct->OutputSize ? pRsspStruct->InputSize : pRsspStruct->OutputSize); /*-< õ֡鳤*/ + pRsspStruct->FrameData = (UINT8*)malloc(pRsspStruct->FrameDataMaxLen); /*-< ֡*/ + } + if (NULL != pRsspStruct->FrameData) /*-< ɹ*/ + { + CommonMemSet(pRsspStruct->FrameData, sizeof(UINT8) * pRsspStruct->FrameDataMaxLen, 0, sizeof(UINT8) * pRsspStruct->FrameDataMaxLen); /*-< ֡*/ + + /*ݶջռ*/ + rtn = InitMsgNodeStack_WL(pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2) * 2, pRsspStruct->FrameDataMaxLen, &pRsspStruct->StackOfDataLink); /*-< úʼ·ջ*/ + if (1 == rtn) /*-< úǷɹ*/ { - CommonMemSet(pRsspStruct->AppArray, sizeof(UINT8) * pRsspStruct->AppArraySize, 0, sizeof(UINT8) * pRsspStruct->AppArraySize); - - /*·ռ*/ - pRsspStruct->VarArraySize = RSSP_VAR_NODE_LEN_WL * pRsspStruct->MaxNumLink + 32 + 14 * (pRsspStruct->MaxNumLink + 2) + 32; - pRsspStruct->VarArray = (UINT8*)malloc(pRsspStruct->VarArraySize); - if (NULL != pRsspStruct->VarArray) + rtn = InitLnkNodeArr_WL(pRsspStruct->MaxNumLink, pRsspStruct); /*-< úʼ··ڵ*/ + } + if (1 == rtn) /*-< úǷɹ*/ + { + rtn = 0; /*-< úֵΪʧ*/ + pRsspStruct->OutnetQueueSize = (pRsspStruct->OutputSize + 8) * pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2); /*-< õݶг*/ + rtn = QueueInitial(&pRsspStruct->OutnetQueueA, pRsspStruct->OutnetQueueSize); /*-< ʼг*/ + if (1 == rtn) /*-< úǷɹ*/ { - CommonMemSet(pRsspStruct->VarArray, sizeof(UINT8) * pRsspStruct->VarArraySize, 0, sizeof(UINT8) * pRsspStruct->VarArraySize); - - /*֡ռ*/ - pRsspStruct->FrameDataMaxLen = 2 + 8 + RSSP_FIXED_LEN_WL + 32 + (pRsspStruct->InputSize > pRsspStruct->OutputSize ? pRsspStruct->InputSize : pRsspStruct->OutputSize); - pRsspStruct->FrameData = (UINT8*)malloc(pRsspStruct->FrameDataMaxLen); - if (NULL != pRsspStruct->FrameData) - { - CommonMemSet(pRsspStruct->FrameData, sizeof(UINT8) * pRsspStruct->FrameDataMaxLen, 0, sizeof(UINT8) * pRsspStruct->FrameDataMaxLen); - - /*ݶջռ*/ - rtn = InitMsgNodeStack_WL(pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2) * 2, pRsspStruct->FrameDataMaxLen, &pRsspStruct->StackOfDataLink); - if (1 == rtn) /*·ڵռ*/ - { - rtn = InitLnkNodeArr_WL(pRsspStruct->MaxNumLink, pRsspStruct); - } - if (1 == rtn) /*ӦøЭݶзռ*/ - { - rtn = 0; /*ĬϷ0*/ - pRsspStruct->OutnetQueueSize = (pRsspStruct->OutputSize + 8) * pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2); - rtn = QueueInitial(&pRsspStruct->OutnetQueueA, pRsspStruct->OutnetQueueSize); - if (1 == rtn) - { - rtn = QueueInitial(&pRsspStruct->OutnetQueueB, pRsspStruct->OutnetQueueSize); - } - } - if (1 == rtn) /*ЭӦݶзռ*/ - { - pRsspStruct->DataToAppSize = (pRsspStruct->InputSize + 6) * pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2); - rtn = QueueInitial(&pRsspStruct->DataToApp, pRsspStruct->DataToAppSize); - } - if (1 == rtn) /*ӦøЭݶзռ*/ - { - pRsspStruct->OutputDataQueueSize = (pRsspStruct->OutputSize + 8) * pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2); - rtn = QueueInitial(&pRsspStruct->OutputDataQueue, pRsspStruct->OutputDataQueueSize); - } - if (1 == rtn) /*ӦøЭݶзռ*/ - { - rtn = 0; /*ĬϷ0*/ - /*Ӧ÷ݸĬֵΪ3*/ - pRsspStruct->NoSendAppData = NONE_SEND_APP_DATA_WL; - - pRsspStruct->NetsRecvPkgNums = (RsppiNetsRecvPkgNum*)malloc(sizeof(RsppiNetsRecvPkgNum) * pRsspStruct->MaxNumLink); - if (NULL != pRsspStruct->NetsRecvPkgNums) - { - CommonMemSet(pRsspStruct->NetsRecvPkgNums, sizeof(RsppiNetsRecvPkgNum) * pRsspStruct->MaxNumLink, 0, sizeof(RsppiNetsRecvPkgNum) * pRsspStruct->MaxNumLink); - - mallocLen = sizeof(UINT8) * ((pRsspStruct->OutputSize > pRsspStruct->InputSize) ? pRsspStruct->OutputSize : pRsspStruct->InputSize); - mallocLen += 32u; - pRsspStruct->gpSendSingleOutMsg = (UINT8*)malloc(mallocLen); - if (NULL != pRsspStruct->gpSendSingleOutMsg) - { - CommonMemSet(pRsspStruct->gpSendSingleOutMsg, mallocLen, 0u, mallocLen); - - rtn = 1; /*ʼ*/ - } - - } - - } - } + rtn = QueueInitial(&pRsspStruct->OutnetQueueB, pRsspStruct->OutnetQueueSize); /*-< ʼ*/ } } + if (1 == rtn) /*-< úǷɹ*/ + { + pRsspStruct->DataToAppSize = (pRsspStruct->InputSize + 6) * pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2); /*-< õӦݶг*/ + rtn = QueueInitial(&pRsspStruct->DataToApp, pRsspStruct->DataToAppSize); /*-< ʼӦݶ*/ + } + if (1 == rtn) /*-< úǷɹ*/ + { + pRsspStruct->OutputDataQueueSize = (pRsspStruct->OutputSize + 8) * pRsspStruct->MaxNumLink * (pRsspStruct->MaxNumPerCycle + 2); /*-< õݶг*/ + rtn = QueueInitial(&pRsspStruct->OutputDataQueue, pRsspStruct->OutputDataQueueSize); /*-< ʼݶ*/ + } + if (1 == rtn) /*-< úǷɹ*/ + { + rtn = 0; /*-< úֵΪʧ*/ + /*Ӧ÷ݸĬֵΪ3*/ + pRsspStruct->NoSendAppData = NONE_SEND_APP_DATA_WL; /*-< ʱӦøЭӦ*/ + + pRsspStruct->NetsRecvPkgNumsLen = 0u; /*-< øյ鳤Ϊ0*/ + pRsspStruct->NetsRecvPkgNums = (RsppiNetsRecvPkgNum*)malloc(sizeof(RsppiNetsRecvPkgNum) * pRsspStruct->MaxNumLink); /*-< յ*/ + if (NULL != pRsspStruct->NetsRecvPkgNums) /*-< ɹ*/ + { + CommonMemSet(pRsspStruct->NetsRecvPkgNums, sizeof(RsppiNetsRecvPkgNum) * pRsspStruct->MaxNumLink, 0, sizeof(RsppiNetsRecvPkgNum) * pRsspStruct->MaxNumLink); /*-< յ*/ + + mallocLen = sizeof(UINT8) * ((pRsspStruct->OutputSize > pRsspStruct->InputSize) ? pRsspStruct->OutputSize : pRsspStruct->InputSize); /*-< õӦó*/ + mallocLen += 32u; /*-< õӦü֡ͷ*/ + pRsspStruct->gpSendSingleOutMsg = (UINT8*)malloc(mallocLen); /*-< Ӧü֡ͷ*/ + if (NULL != pRsspStruct->gpSendSingleOutMsg) /*-< ɹ*/ + { + CommonMemSet(pRsspStruct->gpSendSingleOutMsg, mallocLen, 0u, mallocLen); /*-< Ӧü֡ͷ*/ + + rtn = 1; /*-< úֵΪɹ*/ + } + + } + + } } } - return rtn; + return rtn; /*-< غֵ*/ } /*********************************************************************** diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.c b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.c index 5c7dedb..5dbcf1f 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.c +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.c @@ -38,7 +38,7 @@ extern "C" { *--------------------------------------------------------------------*/ static UINT8 InitRsspLnkInfoWl(const DSU_RSSP_LINK_RINFO_STRU_WL* pRecvDsuLnkInf, const DSU_RSSP_LINK_SINFO_STRU_WL* pOutputDsuLnkInf, RsspLinkInfoStru_WL* pRsspLnkInfo, DSU_RSSP_INFO_STRU_WL *pDsuRsspi); static UINT8 SetNodeParamWl(const DSU_RSSP_LINK_RINFO_STRU_WL* pRecvDsuLnkInf, const DSU_RSSP_LINK_SINFO_STRU_WL* pOutputDsuLnkInf, NodeParamInfoStru_WL *pNodeParam); -static void LnkNodeInfo2VarArray_WL(const Lnk_Info_Node_Stru_WL* pNode, const UINT8 lnkNodeIdx, UINT8* VarArray); +static void LnkNodeInfo2VarArray_WL(const Lnk_Info_Node_Stru_WL* pNode, const UINT16 lnkNodeIdx, UINT8* VarArray); static void VarArray2LnkNodeInfo_WL(const UINT8* VarArray, Lnk_Info_Node_Stru_WL* pNode); static UINT8 CheckRecvDsuLnkInfoWl(UINT16 LocalDevName, const DataNode_WL *pNode, const DSU_RSSP_LINK_RINFO_STRU_WL *pRecvLnkInfo, DSU_RSSP_INFO_STRU_WL *pDsuRsspi); static UINT8 CheckOutputDsuLnkInfoWl(UINT16 LocalDevName, const DataNode_WL *pNode, const DSU_RSSP_LINK_SINFO_STRU_WL *pOutputLnkInfo, DSU_RSSP_INFO_STRU_WL *pDsuRsspi); @@ -139,15 +139,16 @@ UINT8 RsspLnkDelete_WL(UINT32 destDevName,RSSP_INFO_STRU *pRsspStruct) */ UINT8 RsspRefresh_WL(UINT16 VarLen, const UINT8* VarArray, RSSP_INFO_STRU* pRsspStruct) { + /*- ֲ*/ UINT8 ret = 1u; /*-< úֵΪɹ*/ UINT8 NodeLen = 0u; /*ýڵ㳤Ϊ0*/ - UINT8 NodeNum = 0u; /*ýڵΪ0*/ - UINT8 index = 0u; /*±Ϊ0*/ + UINT16 NodeNum = 0u; /*ýڵΪ0*/ + UINT16 index = 0u; /*±Ϊ0*/ UINT16 offset = 0u; /*±Ϊ0*/ DSU_RSSP_LINK_RINFO_STRU_WL recvLnkInfo; /*ΪշʱĽڵϢ*/ DSU_RSSP_LINK_SINFO_STRU_WL outputLnkInfo; /*ΪͷʱĽڵϢ*/ - UINT8 lnkNodeIdx = 0u; /*·ڵ±Ϊ0*/ + UINT16 lnkNodeIdx = 0u; /*·ڵ±Ϊ0*/ NodeLen = RSSP_VAR_NODE_LEN_WL; /*-< úֵΪɹ*/ if ((0u == (VarLen % NodeLen)) && (UINT8_MAX >= (VarLen / NodeLen))) /*-< ·ݳǷ񵥽ڵ· СUINT8_MAXֵ*/ @@ -177,7 +178,7 @@ UINT8 RsspRefresh_WL(UINT16 VarLen, const UINT8* VarArray, RSSP_INFO_STRU* pRssp { for (index = 0; index < NodeNum; index++) /*-< ǰ·±ǷС·*/ { - lnkNodeIdx = VarArray[offset]; /*-< ·ڵ±ΪҪˢ·ڵ±*/ + lnkNodeIdx = ShortFromChar(&VarArray[offset]); /*-< ·ڵ±ΪҪˢ·ڵ±*/ if (lnkNodeIdx < pRsspStruct->LnkNodeNum) /*-< Ҫˢǰ·ڵ±ǷС·*/ { VarArray2LnkNodeInfo_WL(&VarArray[offset], &pRsspStruct->LnkNodeArr[lnkNodeIdx]); /*-< ·ڵݺ*/ @@ -221,8 +222,8 @@ UINT8 RsspRefresh_WL(UINT16 VarLen, const UINT8* VarArray, RSSP_INFO_STRU* pRssp else { PrintRecArray2ByteB(pRsspStruct->RecordArray, pRsspStruct->RecordArraySize, 0x8801u); /*-< ¼ˢ·±־*/ - PrintRecArrayByte(pRsspStruct->RecordArray, pRsspStruct->RecordArraySize, lnkNodeIdx); /*-< ¼ˢ·־־*/ - PrintRecArrayByte(pRsspStruct->RecordArray, pRsspStruct->RecordArraySize, pRsspStruct->LnkNodeNum); /*-< ¼ˢ·־־*/ + PrintRecArray2ByteB(pRsspStruct->RecordArray, pRsspStruct->RecordArraySize, lnkNodeIdx); /*-< ¼ˢ·־־*/ + PrintRecArray2ByteB(pRsspStruct->RecordArray, pRsspStruct->RecordArraySize, pRsspStruct->LnkNodeNum); /*-< ¼ˢ·־־*/ return 0u; /*-< غʧ*/ } @@ -251,7 +252,7 @@ UINT8 RsspRefresh_WL(UINT16 VarLen, const UINT8* VarArray, RSSP_INFO_STRU* pRssp * * ֵ : ***********************************************************************/ - void GetLnkNodeArr_WL(Lnk_Info_Node_Stru_WL** pLnkInfoNodeArr,UINT8 *OutLen,RSSP_INFO_STRU *pRsspStruct) + void GetLnkNodeArr_WL(Lnk_Info_Node_Stru_WL** pLnkInfoNodeArr,UINT16 *OutLen,RSSP_INFO_STRU *pRsspStruct) { *pLnkInfoNodeArr = pRsspStruct->LnkNodeArr; *OutLen = pRsspStruct->LnkNodeNum; @@ -263,10 +264,11 @@ UINT8 RsspRefresh_WL(UINT16 VarLen, const UINT8* VarArray, RSSP_INFO_STRU* pRssp * @param pRsspStruct RSSPIʵ ȡֵΧ:οṹ:RSSP_INFO_STRU * @return 0:ʧ 1:ɹ */ - UINT8 InitLnkNodeArr_WL(UINT8 num, RSSP_INFO_STRU* pRsspStruct) + UINT8 InitLnkNodeArr_WL(UINT16 num, RSSP_INFO_STRU* pRsspStruct) { + /*- ֲ*/ UINT8 ret = 1u; /*-< úֵΪɹ*/ - UINT8 index = 0u; /*·±*/ + UINT16 index = 0u; /*·±*/ UINT32 lnkNodeArrSize = 0u; /*·鳤*/ pRsspStruct->LnkNodeNum = num; /*-< ·RSSPIʵ·*/ lnkNodeArrSize = sizeof(Lnk_Info_Node_Stru_WL) * pRsspStruct->LnkNodeNum; /*-< ·鳤*/ @@ -278,13 +280,14 @@ UINT8 RsspRefresh_WL(UINT16 VarLen, const UINT8* VarArray, RSSP_INFO_STRU* pRssp else { RsspMemSet_WL((UINT8*)pRsspStruct->LnkNodeArr, lnkNodeArrSize, 0); /*-< ·*/ - } - for (index = 0u; index < pRsspStruct->LnkNodeNum; index++) /*-< ǰ·±ǷС·*/ - { - pRsspStruct->LnkNodeArr[index].NodeStatus = Replace_WL; /*-< õǰ·ڵΪ*/ - pRsspStruct->LnkNodeArr[index].RecvKeepHaltCycleNum = 0u; /*-< ձHalt_WL״̬*/ - pRsspStruct->LnkNodeArr[index].RecvKeepSendSseCycleNum = 0u; /*-< ձSendSSE_WL״̬*/ + for (index = 0u; index < pRsspStruct->LnkNodeNum; index++) /*-< ǰ·±ǷС·*/ + { + pRsspStruct->LnkNodeArr[index].NodeStatus = Replace_WL; /*-< õǰ·ڵΪ*/ + + pRsspStruct->LnkNodeArr[index].RecvKeepHaltCycleNum = 0u; /*-< ձHalt_WL״̬*/ + pRsspStruct->LnkNodeArr[index].RecvKeepSendSseCycleNum = 0u; /*-< ձSendSSE_WL״̬*/ + } } return ret; /*-< غֵ*/ @@ -305,7 +308,7 @@ UINT8 RsspRefresh_WL(UINT16 VarLen, const UINT8* VarArray, RSSP_INFO_STRU* pRssp ***********************************************************************/ Lnk_Info_Node_Stru_WL* SearchLnkBsdNode_WL(UINT16 RsspSrcAddr,UINT16 DestBsdAdd,RSSP_INFO_STRU *pRsspStruct) { - UINT8 index = 0; + UINT16 index = 0; Lnk_Info_Node_Stru_WL* retNodePtr = NULL; for(index = 0; index < pRsspStruct->LnkNodeNum; index++) @@ -342,7 +345,7 @@ Lnk_Info_Node_Stru_WL* SearchLnkBsdNode_WL(UINT16 RsspSrcAddr,UINT16 DestBsdAdd, ***********************************************************************/ Lnk_Info_Node_Stru_WL* SearchLnkSse_SsrNode_WL(UINT16 RsspSrcAddr,UINT16 RsspDestAddr,RSSP_INFO_STRU *pRsspStruct) { - UINT8 index = 0; + UINT16 index = 0; Lnk_Info_Node_Stru_WL* retNodePtr = NULL; for(index = 0; index < pRsspStruct->LnkNodeNum; index++) @@ -380,7 +383,7 @@ Lnk_Info_Node_Stru_WL* SearchLnkSse_SsrNode_WL(UINT16 RsspSrcAddr,UINT16 RsspDes Lnk_Info_Node_Stru_WL* GetReplaceNode_WL(RSSP_INFO_STRU *pRsspStruct) /* wangpeipei 20111202 Add S */ { - UINT8 index = 0; + UINT16 index = 0; Lnk_Info_Node_Stru_WL* retNodePtr = NULL; for(index = 0; index < pRsspStruct->LnkNodeNum; index++) @@ -514,8 +517,8 @@ UINT8 outputReplaceLnkNode_WL(UINT16 SrcAddr,UINT16 BsdAddr,UINT16 DestAddr, RSSP_INFO_STRU *pRsspStruct) { UINT8 ret = 0,chcRet = 0; - DSU_RSSP_LINK_RINFO_STRU_WL recvLnkInfo; /* ΪշʱĽڵϢ */ - DSU_RSSP_LINK_SINFO_STRU_WL outputLnkInfo; /* ΪͷʱĽڵϢ */ + DSU_RSSP_LINK_RINFO_STRU_WL recvLnkInfo = { 0 }; /* ΪշʱĽڵϢ */ + DSU_RSSP_LINK_SINFO_STRU_WL outputLnkInfo = { 0 }; /* ΪͷʱĽڵϢ */ Lnk_Info_Node_Stru_WL *pLnkNodeInfo = NULL; /* ݲĿַԼBSDַȡñΪܽڵϢ */ @@ -579,7 +582,7 @@ UINT8 outputReplaceLnkNode_WL(UINT16 SrcAddr,UINT16 BsdAddr,UINT16 DestAddr, ***********************************************************************/ Lnk_Info_Node_Stru_WL* SearchNodeByAddr_WL(UINT32 destName,RSSP_INFO_STRU *pRsspStruct) { - UINT8 index = 0; + UINT16 index = 0; Lnk_Info_Node_Stru_WL* retLnkNodePtr = NULL; /* ָ */ for( index = 0; index < pRsspStruct->LnkNodeNum; index++) { @@ -677,7 +680,8 @@ static UINT8 InitRsspLnkInfoWl(const DSU_RSSP_LINK_RINFO_STRU_WL* pRecvDsuLnkInf */ UINT8 WriteToVarArray_WL(UINT8* VarArray, RSSP_INFO_STRU* pRsspStruct) { - UINT8 ret = 0u, index = 0u; /*-< úֵΪʧ*/ + UINT8 ret = 0u; + UINT16 index = 0u; /*-< úֵΪʧ*/ UINT8* pTmp = NULL; /*·*/ UINT8 NodeLen = 0u; /*ڵ㳤*/ UINT8 count = 0u; /*ýڵ*/ @@ -707,16 +711,18 @@ UINT8 WriteToVarArray_WL(UINT8* VarArray, RSSP_INFO_STRU* pRsspStruct) /** * @brief LnkNodeInfo2VarArray_WL ·ڵд· * @param pNode ·ڵ ȡֵΧ:οṹ:Lnk_Info_Node_Stru_WL - * @param lnkNodeIdx ·ڵ± ȡֵΧ:0x00-0xFF + * @param lnkNodeIdx ·ڵ± ȡֵΧ:0x0000-0xFFFF * @param VarArray · ȡֵΧ:ֽ */ -static void LnkNodeInfo2VarArray_WL(const Lnk_Info_Node_Stru_WL* pNode, const UINT8 lnkNodeIdx, UINT8* VarArray) +static void LnkNodeInfo2VarArray_WL(const Lnk_Info_Node_Stru_WL* pNode, const UINT16 lnkNodeIdx, UINT8* VarArray) { + /*- ֲ*/ UINT16 index = 0; /*·±*/ const RsspLinkInfoStru_WL* pRsspLnkInfo = &pNode->RsspLinInfo; /*ǰ·Ϣ*/ const TimeStampStru_WL* pTmStmp = &pNode->RsspLinInfo.TimeStmp; /*ǰ·ʱ*/ - VarArray[index++] = lnkNodeIdx; /*-< ·ڵ±·,±1*/ + ShortToChar(lnkNodeIdx, &VarArray[index]); /*-< ·ڵ±·*/ + index += 2; /*-< ·±2*/ LongToChar(pNode->CycleNum, &VarArray[index]); /*-< ںŸ·*/ index += 4; /*-< ·±4*/ @@ -816,11 +822,12 @@ static void LnkNodeInfo2VarArray_WL(const Lnk_Info_Node_Stru_WL* pNode, const UI */ static void VarArray2LnkNodeInfo_WL(const UINT8* VarArray, Lnk_Info_Node_Stru_WL* pNode) { + /*- ֲ*/ UINT16 index = 0; /*·±*/ RsspLinkInfoStru_WL* pRsspLnkInfo = &pNode->RsspLinInfo; /*ǰ·Ϣ*/ TimeStampStru_WL* pTmStmp = &pNode->RsspLinInfo.TimeStmp; /*ǰ·ʱ*/ - index += 1; /*-< ·±*/ + index += 2u; /*-< ·±2*/ pNode->CycleNum = LongFromChar(&VarArray[index]); /*-< ·ݸֵں*/ index += 4; /*-< ·±4*/ @@ -1082,47 +1089,41 @@ static UINT8 SetNodeParamWl(const DSU_RSSP_LINK_RINFO_STRU_WL* pRecvDsuLnkInf, return (UINT8)1; } -/*********************************************************************** - * : AdjustLnkCycle - * : ָ͡ںšǰ·ǰ·ںŲǷΪִڡ - * : - * - * ----------------------------------------------------------- - * localType UINT8 IN - * cycleNum UINT32 IN ں - * lnkNode Lnk_Info_Node_Stru_WL* IN ·ڵ - * - * ֵ : - ***********************************************************************/ + /** + * @brief AdjustLnkCycle ָ,ں,ǰ·,ǰ·ںŲǷΪִ + * @param localType ȡֵΧ:0x00-0xFF + * @param cycleNum ں ȡֵΧ:0x00000000-0xFFFFFFFF + * @param lnkNode ·ڵ ȡֵΧ:οṹLnk_Info_Node_Stru_WL + */ void AdjustLnkCycle(UINT8 localType, UINT32 cycleNum, Lnk_Info_Node_Stru_WL* lnkNode) { - if (lnkNode != NULL) + if (lnkNode != NULL) /*-< Ƿǿ*/ { - if (((RSSP_TYPE_VOBC_WL == localType) || (RSSP_TYPE_VOBC_BACK_WL == localType)) && (RSSP_TYPE_ATS_WL == (lnkNode->DestTypeId / 256))) /*VOBCATS*/ + if (((RSSP_TYPE_VOBC_WL == localType) || (RSSP_TYPE_IVOC_WL == localType) || (RSSP_TYPE_VOBC_BACK_WL == localType)) && (RSSP_TYPE_ATS_WL == (lnkNode->DestTypeId / 256))) /*-< ΪVOBCIVOC򳵱 ҶԷΪATS*/ { - if (0 == (cycleNum % VOBC_ATS_CYCLENUM_MULTIPLE)) /*ںű,·ںŲִ*/ + if (0 == (cycleNum % VOBC_ATS_CYCLENUM_MULTIPLE)) /*-< ںűΪATSںű*/ { - lnkNode->ExeCycle = 1; + lnkNode->ExeCycle = 1; /*-< Ϊִ*/ } else /*ںű,ִ*/ { - lnkNode->ExeCycle = 0; + lnkNode->ExeCycle = 0; /*-< Ϊִ*/ } } - else if ((RSSP_TYPE_AOM_WL == localType) && (RSSP_TYPE_ATS_WL == (lnkNode->DestTypeId / 256))) /*AOMATS*/ + else if (((RSSP_TYPE_AOM_WL == localType) || (RSSP_TYPE_IVOC_AOM_WL == localType)) && (RSSP_TYPE_ATS_WL == (lnkNode->DestTypeId / 256))) /*-< ΪAOMIVOCAOM ҶԷΪATS*/ { - if (0 == (cycleNum % AOM_ATS_CYCLENUM_MULTIPLE)) /*ںű,·ںŲִ*/ + if (0 == (cycleNum % AOM_ATS_CYCLENUM_MULTIPLE)) /*-< ںűΪAOMATSںű*/ { - lnkNode->ExeCycle = 1; + lnkNode->ExeCycle = 1; /*-< Ϊִ*/ } else /*ںű,ִ*/ { - lnkNode->ExeCycle = 0; + lnkNode->ExeCycle = 0; /*-< Ϊִ*/ } } else /*,õ·ڿִ*/ { - lnkNode->ExeCycle = 1; + lnkNode->ExeCycle = 1; /*-< Ϊִ*/ } } } diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.h b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.h index 8f7ebb8..8c4efca 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.h +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspLnkNodeMgrWl.h @@ -33,7 +33,7 @@ extern "C" { * @param pRsspStruct RSSPIʵ ȡֵΧ:οṹ:RSSP_INFO_STRU * @return 0:ʧ 1:ɹ */ -UINT8 InitLnkNodeArr_WL(UINT8 num,RSSP_INFO_STRU *pRsspStruct); +UINT8 InitLnkNodeArr_WL(UINT16 num,RSSP_INFO_STRU *pRsspStruct); /*********************************************************************** * : SearchLnkBsdNode_WL @@ -160,20 +160,14 @@ UINT8 WriteToVarArray_WL(UINT8 *VarArray,RSSP_INFO_STRU *pRsspStruct); * * ֵ : ***********************************************************************/ -void GetLnkNodeArr_WL(Lnk_Info_Node_Stru_WL** pLnkInfoNodeArr,UINT8 *OutLen,RSSP_INFO_STRU *pRsspStruct); +void GetLnkNodeArr_WL(Lnk_Info_Node_Stru_WL** pLnkInfoNodeArr,UINT16 *OutLen,RSSP_INFO_STRU *pRsspStruct); -/*********************************************************************** - * : AdjustLnkCycle - * : ָ͡ںšǰ·ǰ·ںŲǷΪִڡ - * : - * - * ----------------------------------------------------------- - * localType UINT8 IN - * cycleNum UINT32 IN ں - * lnkNode Lnk_Info_Node_Stru_WL* IN ·ڵ - * - * ֵ : - ***********************************************************************/ +/** + * @brief AdjustLnkCycle ָ,ں,ǰ·,ǰ·ںŲǷΪִ + * @param localType ȡֵΧ:0x00-0xFF + * @param cycleNum ں ȡֵΧ:0x00000000-0xFFFFFFFF + * @param lnkNode ·ڵ ȡֵΧ:οṹLnk_Info_Node_Stru_WL + */ void AdjustLnkCycle(UINT8 localType, UINT32 cycleNum, Lnk_Info_Node_Stru_WL *lnkNode); /*-------------------------------------------------------------------- diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspOutputWl.c b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspOutputWl.c index d3dbeb3..3a9b5d4 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspOutputWl.c +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspOutputWl.c @@ -27,6 +27,7 @@ #include "RsspLnkNodeMgrWl.h" #include "RsspRecordDelareWl.h" #include "CommonRecord.h" +#include "CommonMemory.h" #ifdef __cplusplus extern "C" { @@ -63,15 +64,16 @@ static void RecvLnkStatusMng_WL(RSSP_INFO_STRU* pRsspStru); UINT8 RsspOutput_WL(QueueStruct* AppToRs, UINT8* VarArray, RSSP_INFO_STRU* pRsspStru) { /** ֲ*/ - UINT8 ret = 0, index = 0; /*-< ÷ֵΪʧ*/ + UINT8 ret = 0; + UINT16 index = 0; /*-< ÷ֵΪʧ*/ UINT8 QueErrFlag = 0; /*-< öдʶΪ*/ - UINT8 LnkNodeNum = 0; /* ͨŽڵ */ + UINT16 LnkNodeNum = 0; /* ͨŽڵ */ UINT16 MaxMsgLen = 0; /* һнڵݳ */ UINT16 MsgLen = 0; /* Ϣ */ UINT8* TmpOutMsg = NULL; /* ɱݻ */ Lnk_Info_Node_Stru_WL* LnkNodeArr = NULL; /* ͨŽڵ */ Lnk_Info_Node_Stru_WL* pNode = NULL; /* ͨŽڵָ */ - /* ywlou20101118 Add S */ + /* ywlou20101118 Add S */ UINT8 appDataFlg = 0; /*-< ǷӦøݱʶΪ*/ /* ywlou20101118 Add E */ UINT32 destDevName = 0; /* Է豸ʶ */ @@ -97,15 +99,13 @@ UINT8 RsspOutput_WL(QueueStruct* AppToRs, UINT8* VarArray, RSSP_INFO_STRU* pRssp PrintRecArrayByte(RecordArray, RecordSize, RSSP_OUTPUT); /*-< ¼ʶ־*/ PrintRecArray2ByteB(RecordArray, RecordSize, (UINT16)QueueStatus(AppToRs)); /*-< ¼ܳ־*/ #endif - RsspMemSet_WL(&pRsspStru->AppArray[0], pRsspStru->AppArraySize, 0); /*-< ոӦݴŵ麯*/ + CommonMemSet(&pRsspStru->AppArray[0], pRsspStru->AppArraySize, 0u, pRsspStru->AppArraySize); /*-< ոӦݴŵ麯*/ /* ȡȫֵͨŽڵ */ GetLnkNodeArr_WL(&LnkNodeArr, &LnkNodeNum, pRsspStru); /*-< ȡͨŽڵ麯*/ /* ޷ۼ */ for (index = 0; index < LnkNodeNum; index++) /*-< ǰ·±ǷС·*/ { - LnkNodeArr[index].CycleNum++; /*-< Эۼ1*/ - AdjustLnkCycle(pRsspStru->LocalType, LnkNodeArr[index].CycleNum, &LnkNodeArr[index]); /*-< øָ͡ںšǰ·ǰ·ںŲǷΪִں*/ if (1 == LnkNodeArr[index].ExeCycle) /*-< ·Ƿִ*/ { LnkNodeArr[index].HasRsdBeforeSseOrSsr = 0; /*-< δɹRSDʶΪ*/ @@ -148,7 +148,7 @@ UINT8 RsspOutput_WL(QueueStruct* AppToRs, UINT8* VarArray, RSSP_INFO_STRU* pRssp { /* RSD */ ret = CreateRsdMsg_WL(pRsspStru->FrameData, (UINT16)(MsgLen + 2), TmpOutMsg, &pNode, pRsspStru); /*-< RSD֡*/ - RsspMemSet_WL(pRsspStru->FrameData, (UINT16)(MsgLen + 2), 0); /*-< Ӧø֡*/ + CommonMemSet(pRsspStru->FrameData, (UINT32)(MsgLen + 2u), 0u, (UINT32)(MsgLen + 2u)); /*-< Ӧø֡*/ /* RSDɳɹ */ if (1 == ret) /*-< úǷɹ*/ { @@ -224,7 +224,7 @@ UINT8 RsspOutput_WL(QueueStruct* AppToRs, UINT8* VarArray, RSSP_INFO_STRU* pRssp /*-< ʲô*/ } - if ((RSSP_TYPE_VOBC_WL == pRsspStru->LocalType) || (RSSP_TYPE_VOBC_BACK_WL == pRsspStru->LocalType) || (RSSP_TYPE_AOM_WL == pRsspStru->LocalType)) /*-< Ƿ񳵻򳵺󱸻AOM*/ + if ((RSSP_TYPE_VOBC_WL == pRsspStru->LocalType) || (RSSP_TYPE_IVOC_WL == pRsspStru->LocalType) || (RSSP_TYPE_VOBC_BACK_WL == pRsspStru->LocalType) || (RSSP_TYPE_AOM_WL == pRsspStru->LocalType) || (RSSP_TYPE_IVOC_AOM_WL == pRsspStru->LocalType)) /*-< ǷCBTC򳵳򳵺󱸻CBTC AOM򳵳AOM*/ { if (DisbaledReplace_WL == LnkNodeArr[index].NodeStatus) /*-< ǰ·Ƿ*/ { @@ -235,7 +235,7 @@ UINT8 RsspOutput_WL(QueueStruct* AppToRs, UINT8* VarArray, RSSP_INFO_STRU* pRssp dstType = DquToDevType(LnkNodeArr[index].DestDevName, pRsspStru->pDsuRsspInfoStruWL); /*-< øHLHTIDת豸ͺĿID*/ #endif } - if ((RSSP_TYPE_VOBC_WL == dstType) || (RSSP_TYPE_VOBC_BACK_WL == dstType) || (RSSP_TYPE_TTIL_WL == dstType)) /*-< ԷǷ񳵻򳵺󱸻βͨ*/ + if ((RSSP_TYPE_VOBC_WL == dstType) || (RSSP_TYPE_IVOC_WL == dstType) || (RSSP_TYPE_VOBC_BACK_WL == dstType) || (RSSP_TYPE_TTIL_WL == dstType)) /*-< ԷǷ񳵻򳵳򳵺󱸻βͨ*/ { appDataFlg = 1; /*-< ǷӦøݱʶΪ*/ } @@ -378,7 +378,7 @@ UINT8 RsspOutput_WL(QueueStruct* AppToRs, UINT8* VarArray, RSSP_INFO_STRU* pRssp PrintFiles(RecordArray, RecordSize, "\n"); #endif #ifdef RSSP_RECORD_SIMPLIFY_BIN /*Ƿƺ꿪*/ - PrintRecArrayByte(RecordArray, RecordSize, index); /*-< ¼ǰ·±־*/ + PrintRecArray2ByteB(RecordArray, RecordSize, index); /*-< ¼ǰ·±־*/ PrintRecArray2ByteB(RecordArray, RecordSize, LnkNodeArr[index].RsspLinInfo.RsspDestAddr); /*-< ¼RSSPIĿĵַ־*/ PrintRecArray2ByteB(RecordArray, RecordSize, LnkNodeArr[index].DestTypeId); /*-< ¼ĿID־*/ PrintRecArray2ByteB(RecordArray, RecordSize, LnkNodeArr[index].DestLogicId); /*-< ¼Ŀ߼ID־*/ @@ -839,22 +839,15 @@ static UINT8 WriteToAppArray(const UINT8* appData, const UINT16 appDataLen, Lnk_ return rtn; } -/*********************************************************************** - * : RecvLnkStatusMng_WL - * : ͨŽڵϢ״̬仯 - * : - * - * -------------------------------------------------------------- - * pBsdMsg const DataNod_WLe* IN Bsd - * pLnkNode Lnk_Info_Node_Stru_WL INOUT RSSPӦõ - * - - * ֵ : UINT8 1 - ***********************************************************************/ +/** +* @brief RecvLnkStatusMng_WL ͨŽڵϢ״̬仯 +* @param pRsspStru RSSPIṹ ȡֵΧ:οṹRSSP_INFO_STRU +*/ static void RecvLnkStatusMng_WL(RSSP_INFO_STRU* pRsspStru) { - UINT8 index = 0u; /*±*/ - UINT8 LnkNodeNum = 0u; /*·ڵ*/ + /*- ֲ*/ + UINT16 index = 0u; /*±*/ + UINT16 LnkNodeNum = 0u; /*·ڵ*/ UINT8 RecvStatus = 0u; /*״̬*/ UINT32 LastLocalRecTC = 0u; /*ϴյıں*/ UINT32 NoRecDataTc = 0u; /**/ @@ -869,64 +862,59 @@ static void RecvLnkStatusMng_WL(RSSP_INFO_STRU* pRsspStru) GetLnkNodeArr_WL(&LnkNodeArr, &LnkNodeNum, pRsspStru); /*-< úȡӽڵбб*/ for (index = 0u; index < LnkNodeNum; index++) /*-< ǰڵ±ǷСڽڵ*/ { + LnkNodeArr[index].CycleNum++; /*-< Эۼ1*/ + AdjustLnkCycle(pRsspStru->LocalType, LnkNodeArr[index].CycleNum, &LnkNodeArr[index]); /*-< øָ͡ںšǰ·ǰ·ںŲǷΪִں*/ if (1u == LnkNodeArr[index].ExeCycle) /*-< ·Ƿִ*/ { RecvStatus = LnkNodeArr[index].RsspLinInfo.RecvLinkStatus; /*-< õǰڵ״̬״̬*/ - if ((WaitSSR_WL == RecvStatus) || (RecvData_WL == RecvStatus)) /*-< ״̬ǷSSR״̬*/ + LastLocalRecTC = LnkNodeArr[index].RsspLinInfo.TimeStmp.LastLocalRecTC; /*-< õǰڵϴյЧʱںŸϴյЧʱں*/ + if (((WaitSSR_WL == RecvStatus) || (RecvData_WL == RecvStatus)) && (LnkNodeArr[index].RsspLinInfo.TimeStmp.TC != LastLocalRecTC)) /*-< ״̬ǷSSR״̬ ҵǰںǷ񲻵ϴյЧʱں*/ { - LastLocalRecTC = LnkNodeArr[index].RsspLinInfo.TimeStmp.LastLocalRecTC; /*-< õǰڵϴյЧʱںŸϴյЧʱں*/ - if (LnkNodeArr[index].RsspLinInfo.TimeStmp.TC != LastLocalRecTC) /*-< ǰںǷ񲻵ϴյЧʱں*/ + LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum += 1u; /*-< õǰڵ1*/ + NoRecDataTc = LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum; /*-< õǰڵ*/ + if (WaitSSR_WL == RecvStatus) /*-< ״̬ǷSSR״̬*/ { - LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum += 1u; /*-< õǰڵ1*/ - NoRecDataTc = LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum; /*-< õǰڵ*/ - if (WaitSSR_WL == RecvStatus) /*-< ״̬ǷSSR״̬*/ + if (LnkNodeArr[index].RsspLinInfo.LocalNode.SSDelay < NoRecDataTc) /*-< Ƿڵǰڵ̵ĵSSR*/ { - if (LnkNodeArr[index].RsspLinInfo.LocalNode.SSDelay < NoRecDataTc) /*-< Ƿڵǰڵ̵ĵSSR*/ + if (LnkNodeArr[index].RsspLinInfo.TimeStmp.NumSendSse >= SEND_SSE_NUM_WL) /*-< ǰڵ㷢SSEǷڵSSE*/ { - if (LnkNodeArr[index].RsspLinInfo.TimeStmp.NumSendSse >= SEND_SSE_NUM_WL) /*-< ǰڵ㷢SSEǷڵSSE*/ - { - LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = Halt_WL; /*-< õǰڵ״̬Ϊж*/ - LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum = 0; /*-< 㵱ǰڵ*/ - LnkNodeArr[index].RsspLinInfo.TimeStmp.NumSendSse = 0; /*-< 㵱ǰڵ㷢SSE*/ - } - else - { - LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = SendSSE_WL; /*-< õǰڵ״̬ΪSSE״̬*/ - LnkNodeArr[index].RsspLinInfo.TimeStmp.NumSendSse++; /*-< õǰڵ㷢SSE1*/ - } + LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = Halt_WL; /*-< õǰڵ״̬Ϊж*/ + LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum = 0; /*-< 㵱ǰڵ*/ + LnkNodeArr[index].RsspLinInfo.TimeStmp.NumSendSse = 0; /*-< 㵱ǰڵ㷢SSE*/ } else { - /*-< ʲô */ + LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = SendSSE_WL; /*-< õǰڵ״̬ΪSSE״̬*/ + LnkNodeArr[index].RsspLinInfo.TimeStmp.NumSendSse++; /*-< õǰڵ㷢SSE1*/ } } else { -#ifdef TIMED_SSE /*Ƿ嶨ʱSSEʱУ꿪*/ - AntiDelayTC = CheckTimeStamp_WL(LnkNodeArr[index].RsspLinInfo.TimeStmp.TC, LnkNodeArr[index].RsspLinInfo.TimeStmp.SsrTc, LnkNodeArr[index].RsspLinInfo.LocalNode.AntiDelayCount); /*-< úõǰSSRڲǷ*/ - if (AntiDelayTC < 0) /*-< ǰSSRڲǷ*/ - { - LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = SendSSE_WL; /*-< õǰڵ״̬ΪSSE״̬*/ - } - else - { - /*-< ʲô*/ - } -#endif - if (NoRecDataTc > LnkNodeArr[index].RsspLinInfo.LocalNode.DLost) /*-< Ƿڵǰڵ̵*/ - { - LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = Halt_WL; /*-< õǰڵ״̬Ϊж*/ - LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum = 0u; /*-< 㵱ǰڵ*/ - } - else - { - /*-< ʲô*/ - } + /*-< ʲô */ } } else { - /*-< ʲô*/ +#ifdef TIMED_SSE /*Ƿ嶨ʱSSEʱУ꿪*/ + AntiDelayTC = CheckTimeStamp_WL(LnkNodeArr[index].RsspLinInfo.TimeStmp.TC, LnkNodeArr[index].RsspLinInfo.TimeStmp.SsrTc, LnkNodeArr[index].RsspLinInfo.LocalNode.AntiDelayCount); /*-< úõǰSSRڲǷ*/ + if (AntiDelayTC < 0) /*-< ǰSSRڲǷ*/ + { + LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = SendSSE_WL; /*-< õǰڵ״̬ΪSSE״̬*/ + } + else + { + /*-< ʲô*/ + } +#endif + if (NoRecDataTc > LnkNodeArr[index].RsspLinInfo.LocalNode.DLost) /*-< Ƿڵǰڵ̵*/ + { + LnkNodeArr[index].RsspLinInfo.RecvLinkStatus = Halt_WL; /*-< õǰڵ״̬Ϊж*/ + LnkNodeArr[index].RsspLinInfo.NoRecvDataCycleNum = 0u; /*-< 㵱ǰڵ*/ + } + else + { + /*-< ʲô*/ + } } } else diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspReciveWl.c b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspReciveWl.c index 0b5334f..fef2357 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspReciveWl.c +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspReciveWl.c @@ -937,6 +937,7 @@ static void ReadNetData(QueueStruct* pInputQue, DataNode_WL** pHeadNode, RSSP_IN UINT16 dstTypeId = 0u; /*ĿID*/ UINT32 dstId = 0u; /*ĶԷΨһID*/ UINT32 recvDstId = 0u; /*յЭΨһIDӦΨһID*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ if ((NULL != pInputQue) && (NULL != pHeadNode) && (NULL != rssp) && (NULL != rssp->StackOfDataLink) && (NULL != rssp->pDsuRsspInfoStruWL) && (NULL != rssp->FrameData) && (NULL != rssp->RecordArray)) /*-< Ƿǿ*/ { @@ -945,9 +946,11 @@ static void ReadNetData(QueueStruct* pInputQue, DataNode_WL** pHeadNode, RSSP_IN /*,д*/ while (queLen > twoLen) /*-< Ƿ*/ { + deepPro = 0u; /*-< ô־Ϊ*/ + QueueScan(twoLen, rssp->FrameData, pInputQue); /*-< ɨֽڵ*/ pkgDataLen = ShortFromChar(rssp->FrameData); /*-< ʾĴ˵ݳ*/ - if ((twoLen + pkgDataLen) <= queLen) /*-< ʾĴ˵ݳǷ*/ + if (((UINT32)twoLen + (UINT32)pkgDataLen) <= queLen) /*-< ʾĴ˵ݳǷ*/ { if ((twoLen + twoLen + RSSP_HEAD_LEN_WL + TC_LEN_WL + CRC_16_LEN_WL) < pkgDataLen) /*-< 2ֽID+2ֽ߼ID+RSSPI֡,Сڰ,ʾ֡Ƿ*/ { @@ -977,113 +980,7 @@ static void ReadNetData(QueueStruct* pInputQue, DataNode_WL** pHeadNode, RSSP_IN if (dstAddr == rssp->pDsuRsspInfoStruWL->LocRsspiAddr) /*-< ǷǷ*/ { -#ifdef RSSP_NO_HLHT - dstId = dstTypeId; /*-< öԷΨһID*/ -#else - dstId = DquTypeIdToHlhtId(dstTypeId, dstLogicId, rssp->pDsuRsspInfoStruWL); /*-< öԷΨһID*/ -#endif - dsuRsspRGetName_WL(srcAddr, dstAddr, &recvDstId, rssp->pDsuRsspInfoStruWL); /*-< յԷΨһID*/ - if (recvDstId == dstId) /*-< ΨһIDΨһIDǷһ*/ - { - crcValid = IsRedunRcvMsg(pkgDataLen - twoLen - twoLen, &rssp->FrameData[twoLen + twoLen + twoLen], rssp->RecordArray, rssp->RecordArraySize); /*-< ü鵥ݱĺ*/ - if (1u == crcValid) /*-< úǷɹ*/ - { - pLastNode = NULL; /*-< һڵ*/ - pCurNode = (*pHeadNode); /*-< ǰڵͷڵ㿪ʼ*/ - isCover = 0u; /*-< ǽڵ*/ - isPop = 0u; /*-< δڵ*/ - isAddFull = 0u; /*-< Ƿӱ־Ϊ*/ - - isInBreak = 0u; /*-< ˳־Ϊ˳*/ - while (NULL != pCurNode) /*-< ǰڵǷǿ*/ - { - if ((srcAddr == pCurNode->SrcAddr) && (sn == pCurNode->TCr) && (frameType == pCurNode->FrameType)) /*-< Ƿֵͬڵ*/ - { - isCover = 1u; /*-< øDZ־Ϊ*/ - isInBreak = 1u; /*-< ˳־Ϊ˳*/ - } - else /*Դַ,,֡ С*/ - { - if ((srcAddr < pCurNode->SrcAddr) /*-< Դַ,,֡*/ - || ((srcAddr == pCurNode->SrcAddr) && (sn < pCurNode->TCr)) /*ٱȽ*/ - || ((srcAddr == pCurNode->SrcAddr) && (sn == pCurNode->TCr) && (frameType < pCurNode->FrameType)) /*ٱȽ֡*/ - ) - { - isInBreak = 1u; /*-< ˳־Ϊ˳*/ - } - } - - if (0 == isInBreak) /*-< ˳־ΪǷΪ˳*/ - { - pLastNode = pCurNode; /*-< һڵΪڵ*/ - pCurNode = pCurNode->pNextNode;/*-< õǰڵΪһڵ*/ - - } - else /*˳*/ - { - break;/*-< ˳*/ - } - } - - if (1u == isCover) /*-< ǽڵ־ǷΪ*/ - { - pNewNode = pCurNode; /*-< ½ڵΪǰڵ*/ - } - else /*ڵ*/ - { - isPop = StackPopWl(&rssp->StackOfDataLink->stack, (STACK_DATA_TYPE_WL*)&pNewNode); /*-< õ½ڵ㺯*/ - if (1u == isPop) /*-< úǷɹ*/ - { - if (NULL != pCurNode) /*-< ǰڵǷǿ*/ - { - pNewNode->pNextNode = pCurNode; /*-< һڵΪǰڵ*/ - } - if (NULL == pLastNode) /*-< һڵǷΪ*/ - { - *pHeadNode = pNewNode; /*-< ͷڵΪ½ڵ*/ - } - else /*һڵָ½ڵ*/ - { - pLastNode->pNextNode = pNewNode; /*-< һڵΪ½ڵ*/ - } - } - else /*ջ*/ - { - if ((NULL != (*pHeadNode)) && (NULL != pLastNode)) /*-< ͷڵǿһڵǿ*/ - { - pNewNode = (*pHeadNode); /*-< ½ڵΪͷڵ*/ - (*pHeadNode) = (*pHeadNode)->pNextNode; /*-< ͷڵΪһڵ*/ - pLastNode->pNextNode = pNewNode; /*-< һڵΪ½ڵ*/ - pNewNode->pNextNode = pCurNode; /*-< һڵΪǰڵ*/ - isAddFull = 1u; /*-< Ƿӱ־Ϊ*/ - } - - PrintRecArrayByte(rssp->RecordArray, rssp->RecordArraySize, RP_INPUT_STACK_NO); /*-< ¼־-ջ޿ռ־*/ - PrintRecArray4ByteB(rssp->RecordArray, rssp->RecordArraySize, queLen); /*-< ¼ݳ־*/ - } - } - if ((1u == isCover) || (1u == isPop) || (1u == isAddFull)) /*-< DZ־Ϊ ҵɹ ǷΪ*/ - { - pNewNode->FrameType = frameType; /*-< ֡*/ - pNewNode->SrcAddr = srcAddr; /*-< RSSPIԴַ*/ - dsuRsspRGetName_WL(srcAddr, dstAddr, &pNewNode->DevName, rssp->pDsuRsspInfoStruWL); /*-< öԷΨһID*/ -#ifdef RSSP_NO_HLHT - pNewNode->DestLogId = pNewNode->DevName & 0xff; /*-< Ŀ߼ID*/ -#else - pNewNode->DestLogId = DquToDevId(pNewNode->DevName, rssp->pDsuRsspInfoStruWL); /*-< Ŀ߼ID*/ -#endif - pNewNode->LocalLogId = rssp->LocalID; /*-< ñ߼ID*/ - pNewNode->DestLogicId = dstLogicId; /*-< öԷ߼ID*/ - pNewNode->DataLen = pkgDataLen - twoLen - twoLen - twoLen; /*-< ȥ2ֽCRC,pkgDataLen2ֽID,2ֽ߼ID*/ - pNewNode->TCr = sn; /*-< */ - RsspMemCopy_WL(&rssp->FrameData[twoLen + twoLen + twoLen], pNewNode->Data, pkgDataLen - twoLen); /*-< ֡*/ - } - } - } - else /*Ƿ*/ - { - PrintRecArrayByte(rssp->RecordArray, rssp->RecordArraySize, RP_INPUT_FRAME_ID_ERR); /*-< ¼ΨһID־*/ - } + deepPro = 1u; /*-< ô־Ϊ*/ } else /*Ƿ*/ { @@ -1107,8 +1004,128 @@ static void ReadNetData(QueueStruct* pInputQue, DataNode_WL** pHeadNode, RSSP_IN QueueElementDiscard(queLen, pInputQue); /*-< ն*/ PrintRecArrayByte(rssp->RecordArray, rssp->RecordArraySize, RP_INPUT_LEN_ERR); /*-< ¼볤ȴ־*/ } - queLen = QueueStatus(pInputQue); /*-< ȡʣݳ*/ + if (1u == deepPro) /*-< ־ǷΪ*/ + { + deepPro = 0u; /*-< ô־Ϊ*/ + +#ifdef RSSP_NO_HLHT + dstId = dstTypeId; /*-< öԷΨһID*/ +#else + dstId = DquTypeIdToHlhtId(dstTypeId, dstLogicId, rssp->pDsuRsspInfoStruWL); /*-< öԷΨһID*/ +#endif + dsuRsspRGetName_WL(srcAddr, dstAddr, &recvDstId, rssp->pDsuRsspInfoStruWL); /*-< յԷΨһID*/ + if (recvDstId == dstId) /*-< ΨһIDΨһIDǷһ*/ + { + crcValid = IsRedunRcvMsg(pkgDataLen - twoLen - twoLen, &rssp->FrameData[twoLen + twoLen + twoLen], rssp->RecordArray, rssp->RecordArraySize); /*-< ü鵥ݱĺ*/ + if (1u == crcValid) /*-< úǷɹ*/ + { + pLastNode = NULL; /*-< һڵ*/ + pCurNode = (*pHeadNode); /*-< ǰڵͷڵ㿪ʼ*/ + isCover = 0u; /*-< ǽڵ*/ + isPop = 0u; /*-< δڵ*/ + isAddFull = 0u; /*-< Ƿӱ־Ϊ*/ + + deepPro = 1u; /*-< ô־Ϊ*/ + } + } + else /*Ƿ*/ + { + PrintRecArrayByte(rssp->RecordArray, rssp->RecordArraySize, RP_INPUT_FRAME_ID_ERR); /*-< ¼ΨһID־*/ + } + } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + deepPro = 0u; /*-< ô־Ϊ*/ + + isInBreak = 0u; /*-< ˳־Ϊ˳*/ + while (NULL != pCurNode) /*-< ǰڵǷǿ*/ + { + if ((srcAddr == pCurNode->SrcAddr) && (sn == pCurNode->TCr) && (frameType == pCurNode->FrameType)) /*-< Ƿֵͬڵ*/ + { + isCover = 1u; /*-< øDZ־Ϊ*/ + isInBreak = 1u; /*-< ˳־Ϊ˳*/ + } + else /*Դַ,,֡ С*/ + { + if ((srcAddr < pCurNode->SrcAddr) /*-< Դַ,,֡*/ + || ((srcAddr == pCurNode->SrcAddr) && (sn < pCurNode->TCr)) /*ٱȽ*/ + || ((srcAddr == pCurNode->SrcAddr) && (sn == pCurNode->TCr) && (frameType < pCurNode->FrameType)) /*ٱȽ֡*/ + ) + { + isInBreak = 1u; /*-< ˳־Ϊ˳*/ + } + } + + if (0 == isInBreak) /*-< ˳־ΪǷΪ˳*/ + { + pLastNode = pCurNode; /*-< һڵΪڵ*/ + pCurNode = pCurNode->pNextNode;/*-< õǰڵΪһڵ*/ + + } + else /*˳*/ + { + break;/*-< ˳*/ + } + } + + if (1u == isCover) /*-< ǽڵ־ǷΪ*/ + { + pNewNode = pCurNode; /*-< ½ڵΪǰڵ*/ + } + else /*ڵ*/ + { + isPop = StackPopWl(&rssp->StackOfDataLink->stack, (STACK_DATA_TYPE_WL*)&pNewNode); /*-< õ½ڵ㺯*/ + if (1u == isPop) /*-< úǷɹ*/ + { + if (NULL != pCurNode) /*-< ǰڵǷǿ*/ + { + pNewNode->pNextNode = pCurNode; /*-< һڵΪǰڵ*/ + } + if (NULL == pLastNode) /*-< һڵǷΪ*/ + { + *pHeadNode = pNewNode; /*-< ͷڵΪ½ڵ*/ + } + else /*һڵָ½ڵ*/ + { + pLastNode->pNextNode = pNewNode; /*-< һڵΪ½ڵ*/ + } + } + else /*ջ*/ + { + if ((NULL != (*pHeadNode)) && (NULL != pLastNode)) /*-< ͷڵǿһڵǿ*/ + { + pNewNode = (*pHeadNode); /*-< ½ڵΪͷڵ*/ + (*pHeadNode) = (*pHeadNode)->pNextNode; /*-< ͷڵΪһڵ*/ + pLastNode->pNextNode = pNewNode; /*-< һڵΪ½ڵ*/ + pNewNode->pNextNode = pCurNode; /*-< һڵΪǰڵ*/ + isAddFull = 1u; /*-< Ƿӱ־Ϊ*/ + } + + PrintRecArrayByte(rssp->RecordArray, rssp->RecordArraySize, RP_INPUT_STACK_NO); /*-< ¼־-ջ޿ռ־*/ + PrintRecArray4ByteB(rssp->RecordArray, rssp->RecordArraySize, queLen); /*-< ¼ݳ־*/ + } + } + if ((1u == isCover) || (1u == isPop) || (1u == isAddFull)) /*-< DZ־Ϊ ҵɹ ǷΪ*/ + { + pNewNode->FrameType = frameType; /*-< ֡*/ + pNewNode->SrcAddr = srcAddr; /*-< RSSPIԴַ*/ + dsuRsspRGetName_WL(srcAddr, dstAddr, &pNewNode->DevName, rssp->pDsuRsspInfoStruWL); /*-< öԷΨһID*/ +#ifdef RSSP_NO_HLHT + pNewNode->DestLogId = pNewNode->DevName & 0xff; /*-< Ŀ߼ID*/ +#else + pNewNode->DestLogId = DquToDevId(pNewNode->DevName, rssp->pDsuRsspInfoStruWL); /*-< Ŀ߼ID*/ +#endif + pNewNode->LocalLogId = rssp->LocalID; /*-< ñ߼ID*/ + pNewNode->DestLogicId = dstLogicId; /*-< öԷ߼ID*/ + pNewNode->DataLen = pkgDataLen - twoLen - twoLen - twoLen; /*-< ȥ2ֽCRC,pkgDataLen2ֽID,2ֽ߼ID*/ + pNewNode->TCr = sn; /*-< */ + RsspMemCopy_WL(&rssp->FrameData[twoLen + twoLen + twoLen], pNewNode->Data, pkgDataLen - twoLen); /*-< ֡*/ + } + } + + queLen = QueueStatus(pInputQue); /*-< ȡʣݳ*/ } } } diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspStructWl.h b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspStructWl.h index 7841261..00a2a48 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspStructWl.h +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspStructWl.h @@ -121,7 +121,7 @@ typedef struct UINT8 LocalType; /* 豸typeӦðĵڳʼʱд */ UINT16 LocalLogicId; /*߼ID*/ UINT32 *CycleNum; /* ںţӦðĵÿڿʼʱд */ - UINT8 MaxNumLink; /* RSSPͬʱͨŵӦðĵڳʼʱд */ + UINT16 MaxNumLink; /* RSSPͬʱͨŵӦðĵڳʼʱд */ UINT8 MaxNumPerCycle; /* RSSPһÿЧݣӦðĵڳʼʱд */ UINT16 InputSize; /* RSSPһ֡ӦݳȣӦðĵڳʼʱд */ UINT16 OutputSize; /* RSSP㷢һ֡ӦݳȣӦðĵڳʼʱд */ @@ -144,7 +144,7 @@ typedef struct UINT8* FrameData; /*֡*/ RsspStackElement_WL* StackOfDataLink; Lnk_Info_Node_Stru_WL* LnkNodeArr; /* ͨŽڵ */ - UINT8 LnkNodeNum; /* ͨŽڵ鳤 */ + UINT16 LnkNodeNum; /* ͨŽڵ鳤 */ DSU_RSSP_INFO_STRU_WL *pDsuRsspInfoStruWL; /*RSSPϢ*/ UINT8 NoSendAppData; /*ʱӦøЭӦ*/ UINT16 NetsRecvPkgNumsLen; /*յ鳤*/ diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.c b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.c index 5e5b73d..5ddfdd6 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.c +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.c @@ -658,29 +658,26 @@ void RsspiSetSwapDataForOut(UINT8 swapData[], UINT8 outData[], RSSP_INFO_STRU* r } } -/* -*: RsspiDelAllLink -*: RSSPIɾ· -*: RSSP_INFO_STRU* rsspi RSSPIṹ -*: -*: -*ֵ: -*/ +/** + * @brief RsspiDelAllLink RSSPIɾ· + * @param rsspi RSSPIṹ ȡֵΧ:οṹRSSP_INFO_STRU + */ void RsspiDelAllLink(RSSP_INFO_STRU* rsspi) { - UINT8 i = 0u; /*ѭ*/ + /*- ֲ*/ + UINT16 i = 0u; /*ѭ*/ - if ((NULL != rsspi) && (NULL != rsspi->LnkNodeArr)) /**/ + if ((NULL != rsspi) && (NULL != rsspi->LnkNodeArr)) /*-< Ƿǿ*/ { - for (i = 0; i < rsspi->LnkNodeNum; i++) /*·*/ + for (i = 0; i < rsspi->LnkNodeNum; i++) /*-< ·*/ { - RsspMemSet_WL((UINT8*)&rsspi->LnkNodeArr[i], sizeof(Lnk_Info_Node_Stru_WL), 0u); /*·Ϣ*/ - rsspi->LnkNodeArr[i].NodeStatus = Replace_WL; /*ڵ״̬ÿɸ*/ + RsspMemSet_WL((UINT8*)&rsspi->LnkNodeArr[i], sizeof(Lnk_Info_Node_Stru_WL), 0u); /*-< ·Ϣ*/ + rsspi->LnkNodeArr[i].NodeStatus = Replace_WL; /*-< ڵ״̬ÿɸ*/ } - if (NULL != rsspi->RecordArray) /*¼־*/ + if (NULL != rsspi->RecordArray) /*-< ¼־ǿ*/ { - PrintRecArray2ByteB(rsspi->RecordArray, rsspi->RecordArraySize, (UINT16)0xF0F0u); + PrintRecArray2ByteB(rsspi->RecordArray, rsspi->RecordArraySize, (UINT16)0xF0F0u); /*-< ¼ɾ־*/ } } } diff --git a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.h b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.h index 9cd5077..4f7b7e9 100644 --- a/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.h +++ b/TSCP/src/protocol/rssp_record_cbtc1/common_rssp/RsspWl.h @@ -179,14 +179,10 @@ void RsspiSetSwapData(UINT8 swapData[], RSSP_INFO_STRU* rsspi); */ void RsspiSetSwapDataForOut(UINT8 swapData[], UINT8 outData[], RSSP_INFO_STRU* rsspi); -/* -*: RsspiDelAllLink -*: RSSPIɾ· -*: RSSP_INFO_STRU* rsspi RSSPIṹ -*: -*: -*ֵ: -*/ +/** + * @brief RsspiDelAllLink RSSPIɾ· + * @param rsspi RSSPIṹ ȡֵΧ:οṹRSSP_INFO_STRU + */ void RsspiDelAllLink(RSSP_INFO_STRU* rsspi); /*-------------------------------------------------------------------- diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.c b/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.c index d31a848..62caaaf 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.c +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.c @@ -61,17 +61,19 @@ #define DSU_DATA_PROTCL_SAME_RELATION 0x05 /*DSUͬ豸ͨŹϵtableId*/ -/*FSsheetҳϢ*/ +/*FSsheetҳϢṹ*/ typedef struct { - UINT32 Id; /**/ - UINT32 Len; /**/ - UINT16 RowCount; /**/ - UINT32 ColLen; /*ֽڳ*/ - UINT8* Data; /**/ + UINT32 Id; /* ȡֵΧ:0x00000000-0xFFFFFFFF*/ + UINT32 Len; /* ȡֵΧ:0x00000000-0xFFFFFFFF*/ + UINT16 RowCount; /* ȡֵΧ:0x0000-0xFFFF*/ + UINT32 ColLen; /*ֽڳ ȡֵΧ:0x00000000-0xFFFFFFFF*/ + UINT8* Data; /* ȡֵΧ:ֽ*/ } SheetInfo; static void InitSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, const UINT32 excelId, const UINT32 sheetId); +static void StDsuSfpFindExcel(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 idx, UINT32 excelCount, const UINT32 excelId, const UINT32 sheetId); +static UINT8 StDsuSfpFindSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 curExcelStartPos, UINT32* curExcelPos, UINT32 sheetCount, const UINT32 sheetId); static void MergeParam(SheetInfo* sheetInfo, UINT8 outData[], UINT32* outDataIdx, UINT16 outDataLen, UINT8 mergeData[], UINT32* mergeDataIdx); /*************************************************************************************************************** @@ -791,213 +793,270 @@ UINT8 dsuSfpInit(UINT8* fileName,UINT8** pDataBase) #endif -/* -*: ʼsheetҳϢ -*: UINT8 data[] -* const UINT32 dataLen ݳ -* const UINT32 excelId excel -* const UINT32 sheetId sheetҳ -*: SheetInfo* sheetInfo sheetҳϢ -*: -*ֵ: -*/ +/** + * @brief InitSheet ʼsheetҳϢ + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelId excleID ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + */ static void InitSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, const UINT32 excelId, const UINT32 sheetId) { + /*- ֲ*/ UINT32 idx = 0u; /*±*/ UINT32 crcVal = 0u; /*crcֵ*/ UINT32 crc = 0u; /*crc*/ UINT32 curLen = 0u; /*ǰ*/ UINT32 excelCount = 0u; /*excel*/ - UINT32 excelIdx = 0u; /*excel±*/ - UINT32 curExcelId = 0u; /*ǰexcel*/ - UINT32 curExcelPos = 0u; /*ǰexcelλ*/ - UINT32 curExcelStartPos = 0u; /*ǰexcelʼλ*/ - UINT32 sheetCount = 0u; /*sheet*/ - UINT32 sheetIdx = 0u; /*sheet±*/ - UINT32 curSheetId = 0u; /*ǰsheet*/ - UINT32 curSheetStartPos = 0u; /*ǰsheetʼλ*/ - UINT8 isBreak = 0u; /*Ƿ˳*/ - if ((NULL != sheetInfo) && (NULL != data) && (0u < dataLen)) /**/ + if ((NULL != sheetInfo) && (0u < dataLen) && (NULL != data)) /*-< Ƿǿ*/ { - /*Ĭֵ*/ - sheetInfo->Id = 0u; - sheetInfo->Len = 0u; - sheetInfo->RowCount = 0u; - sheetInfo->ColLen = 0u; - sheetInfo->Data = NULL; + sheetInfo->Id = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->Len = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->RowCount = 0u; /*-< sheetҳϢΪ0*/ + sheetInfo->ColLen = 0u; /*-< sheetҳϢֽڳΪ0*/ + sheetInfo->Data = NULL; /*-< sheetҳϢΪNULL*/ - if ((idx + 40u) <= dataLen) /*DH±*/ + if ((idx + 40u) <= dataLen) /*-< ʹݳǷϷ*/ { - /*4ֽCRC*/ - crcVal = LongFromChar(&data[idx]); - idx += 4u; + crcVal = LongFromChar(&data[idx]); /*-< õCRCֵ*/ + idx += 4u; /*-< ǰ±4*/ + /*4ֽڰ汾*/ - idx += 4u; - /*4ֽڳ*/ - curLen = LongFromChar(&data[idx]); - idx += 4u; + idx += 4u; /*-< ǰ±4*/ - if ((curLen == dataLen) && (4u < curLen)) + curLen = LongFromChar(&data[idx]); /*-< õг*/ + idx += 4u; /*-< ǰ±4*/ + + if ((curLen == dataLen) && (4u < curLen)) /*-< гǷϷ*/ { - crc = Crc32(&data[4], curLen - 4u); - if (crc == crcVal) + crc = Crc32(&data[4u], curLen - 4u); /*-< CRCֵ*/ + if (crc == crcVal) /*-< CRCֵǷCRC*/ { - /*4ֽexcel*/ - excelCount = LongFromChar(&data[idx]); - idx += 4u; + excelCount = LongFromChar(&data[idx]); /*-< õexcel*/ + idx += 4u; /*-< ǰ±4*/ + /*24ֽԤ*/ - idx += 24u; + idx += 24u; /*-< ǰ±24*/ - for (excelIdx = 0u; excelIdx < excelCount; excelIdx++) - { - if ((idx + 24u) <= dataLen) /*DI±*/ - { - /*4ֽexcel*/ - curExcelId = LongFromChar(&data[idx]); - idx += 4u; - if (curExcelId == excelId) - { - /*4ֽڳ*/ - idx += 4u; - /*4ֽexcelλ*/ - curExcelPos = LongFromChar(&data[idx]); - curExcelStartPos = curExcelPos; - idx += 4u; - /*12ֽԤ*/ - idx += 12u; - - if ((curExcelPos + 40u) <= dataLen) /*DH±*/ - { - /*4ֽexcel CRC*/ - crcVal = LongFromChar(&data[curExcelPos]); - curExcelPos += 4u; - /*4ֽexcel汾*/ - curExcelPos += 4u; - /*4ֽexcel*/ - curLen = LongFromChar(&data[curExcelPos]); - curExcelPos += 4u; - - if (4u < curLen) - { - crc = Crc32(&data[curExcelStartPos + 4u], curLen - 4u); - if (crc == crcVal) - { - /*4ֽsheet*/ - sheetCount = LongFromChar(&data[curExcelPos]); - curExcelPos += 4u; - /*24ֽԤ*/ - curExcelPos += 24u; - - for (sheetIdx = 0u; sheetIdx < sheetCount; sheetIdx++) - { - if ((curExcelPos + 24u) <= dataLen) /*DH±*/ - { - /*4ֽsheet*/ - curSheetId = LongFromChar(&data[curExcelPos]); - curExcelPos += 4u; - if (curSheetId == sheetId) - { - sheetInfo->Id = curSheetId; - /*4ֽڳ*/ - sheetInfo->Len = LongFromChar(&data[curExcelPos]); - curExcelPos += 4u; - /*4ֽsheetexcelλ*/ - curSheetStartPos = LongFromChar(&data[curExcelPos]); - curExcelPos += 4u; - /*2ֽ*/ - sheetInfo->RowCount = ShortFromChar(&data[curExcelPos]); - curExcelPos += 2u; - /*2ֽ-*/ - curExcelPos += 2u; - /*8ֽԤ*/ - curExcelPos += 8u; - /*Lenֽ*/ - sheetInfo->Data = &data[curExcelStartPos + curSheetStartPos]; - - if (0u < sheetInfo->RowCount) /**/ - { - if ((0u < sheetInfo->Len) && (0u == (sheetInfo->Len % sheetInfo->RowCount))) /*ݳ*/ - { - sheetInfo->ColLen = sheetInfo->Len / sheetInfo->RowCount; - } - else /*ݴ*/ - { - sheetInfo->Len = 0u; - sheetInfo->RowCount = 0u; - sheetInfo->Data = NULL; - } - } - else /**/ - { - sheetInfo->Len = 0u; - sheetInfo->Data = NULL; - } - - isBreak = 1u; - } - else - { - curExcelPos += 20u; /*ƫһDI*/ - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - if (1u == isBreak) - { - break; - } - } - } - else /*crc*/ - { - isBreak = 1u; - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - } - else /**/ - { - idx += 20u; /*ƫһDI*/ - } - } - else /*ȴ*/ - { - isBreak = 1u; - } - if (1u == isBreak) - { - break; - } - } + StDsuSfpFindExcel(sheetInfo, data, dataLen, idx, excelCount, excelId, sheetId); /*-< ҶӦexcleݺ*/ } } } } } -/* -*: ϲ -*: SheetInfo* sheetInfo sheetҳϢ -* UINT8 outData[] ⲿ -* UINT32* outDataIdx ⲿλ -*: UINT8 mergeData[] ϲ -* UINT32* mergeDataIdx ϲλ -*: -*ֵ: -*/ +/** + * @brief StDsuSfpFindExcel ҶӦexcle + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param idx ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelCount excle ȡֵΧ:0x00000000-0xFFFFFFFF + * @param excelId excleID ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void StDsuSfpFindExcel(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 idx, UINT32 excelCount, const UINT32 excelId, const UINT32 sheetId) +{ + /*- ֲ*/ + UINT32 excelIdx = 0u; /*excel±*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ + UINT32 curExcelId = 0u; /*ǰexcel*/ + UINT32 curExcelPos = 0u; /*ǰexcelλ*/ + UINT32 curExcelStartPos = 0u; /*ǰexcelʼλ*/ + UINT32 crcVal = 0u; /*crcֵ*/ + UINT32 crc = 0u; /*crc*/ + UINT32 curLen = 0u; /*ǰ*/ + UINT8 isBreak = 0u; /*-< Ƿ˳ʶΪ*/ + UINT32 sheetCount = 0u; /*sheet*/ + + if ((NULL != sheetInfo) && (NULL != data)) /*-< Ƿǿ*/ + { + for (excelIdx = 0u; excelIdx < excelCount; excelIdx++) /*-< excel±ǷСexcel*/ + { + deepPro = 0u; /*-< ô־Ϊ*/ + + if ((idx + 24u) <= dataLen) /*-< ʹݳǷϷ*/ + { + curExcelId = LongFromChar(&data[idx]); /*-< õǰexcleID*/ + idx += 4u; /*-< ǰ±4*/ + + if (curExcelId == excelId) /*-< õǰexcleIDǷΪҪҵ*/ + { + /*4ֽڳ*/ + idx += 4u; /*-< ǰ±4*/ + + /*4ֽexcelλ*/ + curExcelPos = LongFromChar(&data[idx]); /*-< õǰexcelλ*/ + curExcelStartPos = curExcelPos; /*-< ¼ǰexcelλΪexcelʼλ*/ + idx += 4u; /*-< ǰ±4*/ + + /*12ֽԤ*/ + idx += 12u; /*-< ǰ±12*/ + + if ((curExcelPos + 40u) <= dataLen) /*-< ʹݳǷϷ*/ + { + crcVal = LongFromChar(&data[curExcelPos]); /*-< õCRCֵ*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + /*4ֽexcel汾*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + curLen = LongFromChar(&data[curExcelPos]); /*-< õexcel*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + if ((4u < curLen) && ((curExcelStartPos + curLen) <= dataLen)) /*-< excelȴ4 excelʼλüӳСڵݳ*/ + { + deepPro = 1u; /*-< ô־Ϊ*/ + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + else /**/ + { + idx += 20u; /*-< ǰ±20*/ + } + } + else /*ȴ*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + + if (1u == deepPro) /*-< ־ǷΪ*/ + { + crc = Crc32(&data[curExcelStartPos + 4u], curLen - 4u); /*-< excelCRCֵ*/ + if (crc == crcVal) /*-< CRCֵǷ*/ + { + sheetCount = LongFromChar(&data[curExcelPos]); /*-< õsheetҳ*/ + curExcelPos += 4u; /*-< ǰexcelλ4*/ + + /*24ֽԤ*/ + curExcelPos += 24u; /*-< ǰexcelλ24*/ + + isBreak = StDsuSfpFindSheet(sheetInfo, data, dataLen, curExcelStartPos, &curExcelPos, sheetCount, sheetId); /*-< ҶӦsheetҳݺ*/ + } + else /*crc*/ + { + isBreak = 1u; /*-< Ƿ˳ʶΪ*/ + } + } + + if (1u == isBreak) /*-< ˳ʶΪǷΪ*/ + { + break; /*-< ˳*/ + } + } + } +} + +/** + * @brief StDsuSfpFindSheet ҶӦsheetҳ + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param data ȡֵΧ:ֽ + * @param dataLen ݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param curExcelStartPos excelʼλ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param curExcelPos ǰexcelλ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetCount sheetҳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param sheetId sheetҳID ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 0:˳ 1:˳ + */ +static UINT8 StDsuSfpFindSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 dataLen, UINT32 curExcelStartPos, UINT32* curExcelPos, UINT32 sheetCount, const UINT32 sheetId) +{ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ˳*/ + UINT32 sheetIdx = 0u; /*sheet±*/ + UINT32 curSheetId = 0u; /*ǰsheet*/ + UINT32 curSheetStartPos = 0u; /*ǰsheetʼλ*/ + + if ((NULL != sheetInfo) && (NULL != data) && (NULL != curExcelPos)) /*-< Ƿǿ*/ + { + for (sheetIdx = 0u; sheetIdx < sheetCount; sheetIdx++) /*-< sheetҳ±Ƿsheetҳ*/ + { + if (((*curExcelPos) + 24u) <= dataLen) /*-< ʹݳǷϷ*/ + { + curSheetId = LongFromChar(&data[*curExcelPos]); /*-< õǰsheetҳID*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + if (curSheetId == sheetId) /*-< õǰsheetҳIDǷΪҪҵ*/ + { + sheetInfo->Id = curSheetId; /*-< õǰsheetҳIDsheetҳϢ*/ + + sheetInfo->Len = LongFromChar(&data[*curExcelPos]); /*-< óȵsheetҳϢ*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + + curSheetStartPos = LongFromChar(&data[*curExcelPos]); /*-< sheetexcelλõsheetҳϢ*/ + (*curExcelPos) += 4u; /*-< ǰexcelλ4*/ + + sheetInfo->RowCount = ShortFromChar(&data[*curExcelPos]); /*-< sheetҳϢ*/ + (*curExcelPos) += 2u; /*-< ǰexcelλ2*/ + + /*2ֽ-*/ + (*curExcelPos) += 2u; /*-< ǰexcelλ2*/ + /*8ֽԤ*/ + (*curExcelPos) += 8u; /*-< ǰexcelλ8*/ + + sheetInfo->Data = &data[curExcelStartPos + curSheetStartPos]; /*-< sheetҳʼݵsheetҳϢ*/ + + if (0u < sheetInfo->RowCount) /*-< Ƿ*/ + { + if ((0u < sheetInfo->Len) && (0u == (sheetInfo->Len % sheetInfo->RowCount))) /*-< Ƿݳ*/ + { + sheetInfo->ColLen = sheetInfo->Len / sheetInfo->RowCount; /*-< õݳ*/ + } + else /*ݴ*/ + { + sheetInfo->Len = 0u; /*-< ݳΪ0*/ + sheetInfo->RowCount = 0u; /*-< Ϊ0*/ + sheetInfo->Data = NULL; /*-< ΪNULL*/ + } + } + else /**/ + { + sheetInfo->Len = 0u; /*-< ݳΪ0*/ + sheetInfo->Data = NULL; /*-< ΪNULL*/ + } + + rtnVal = 1u; /*-< úֵΪ˳*/ + } + else + { + (*curExcelPos) += 20u; /*-< ǰexcelλ20*/ + } + } + else /*ȴ*/ + { + rtnVal = 1u; /*-< úֵΪ˳*/ + } + + if (1u == rtnVal) /*-< ֵǷΪ˳*/ + { + break; /*-< ˳*/ + } + } + } + + return rtnVal; /*-< غֵ*/ +} + +/** + * @brief MergeParam ϲ + * @param sheetInfo sheetҳϢ ȡֵΧ:οṹSheetInfo + * @param outData ⲿ ȡֵΧ:ֽ + * @param outDataIdx ⲿλ ȡֵΧ:0x00000000--0xFFFFFFFF + * @param outDataLen ⲿݳ ȡֵΧ:0x0000-0xFFFF + * @param mergeData ϲ ȡֵΧ:ֽ + * @param mergeDataIdx ϲλ ȡֵΧ:0x00000000--0xFFFFFFFF + */ static void MergeParam(SheetInfo* sheetInfo, UINT8 outData[], UINT32* outDataIdx, UINT16 outDataLen, UINT8 mergeData[], UINT32* mergeDataIdx) { + /*- ֲ*/ UINT8* proOutData = NULL; /*ⲿ*/ UINT16 outRowCount = 0u; /*ⲿ*/ UINT16 mergeRowCount = 0u; /*ϲ*/ @@ -1013,91 +1072,87 @@ static void MergeParam(SheetInfo* sheetInfo, UINT8 outData[], UINT32* outDataIdx UINT16 inOppDev = 0u; /*ڲԷ豸*/ UINT16 outOppDev = 0u; /*ⲿԷ豸*/ - if ((NULL != sheetInfo) && (NULL != mergeData) && (NULL != mergeDataIdx)) /**/ + if ((NULL != sheetInfo) && (NULL != outData) && (NULL != outDataIdx) && (NULL != mergeData) && (NULL != mergeDataIdx)) /*-< Ƿǿ*/ { - proOutData = &outData[*outDataIdx]; - CommonMemCpy(&mergeData[*mergeDataIdx], outDataLen, &proOutData[0], outDataLen); /*Ʋͬ豸*/ - outRowCount = ShortFromChar(&proOutData[0]); /*ǰ*/ - mergeRowCount = outRowCount; - (*outDataIdx) += outDataLen; /*λ*/ + proOutData = &outData[*outDataIdx]; /*-< õⲿݿʼλ*/ + CommonMemCpy(&mergeData[*mergeDataIdx], outDataLen, &proOutData[0], outDataLen); /*-< ⲿݵϲ*/ + outRowCount = ShortFromChar(&proOutData[0]); /*-< õ*/ + mergeRowCount = outRowCount; /*-< ֵⲿϲ*/ + (*outDataIdx) += outDataLen; /*-< ⲿλ*/ - rowCountIdx = (*mergeDataIdx); /*³λ*/ - (*mergeDataIdx) += outDataLen; - if (NULL != sheetInfo->Data) /*,ϲ*/ + rowCountIdx = (*mergeDataIdx); /*-< ºϲλ*/ + (*mergeDataIdx) += outDataLen; /*-< ºϲλ*/ + if ((NULL != sheetInfo->Data) && ((DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) || (DSU_DATA_PROTCL_SAME_RELATION == sheetInfo->Id))) /*-< Ƿݺϲ ұDzͬͱͬͱ*/ { - if ((DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) || (DSU_DATA_PROTCL_SAME_RELATION == sheetInfo->Id)) /*sheetҳ*/ + if (DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) /*-< ǰǷDzͬͱ*/ { - if (DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) /*ͬͱ*/ + rowShouldLen = DSU_DIFF_RELATION_LENGTH; /*-< òͬͱгȸг*/ + oppDevIdx = 8u; /*-< õԷ豸±*/ + } + else + { + rowShouldLen = DSU_SAME_RELATION_LENGTH; /*-< ͬͱгȸг*/ + oppDevIdx = 9u; /*-< õԷ豸±*/ + } + colLen = sheetInfo->ColLen; /*-< õڲг*/ + if ((colLen == rowShouldLen)) /*-< ڲгǷг*/ + { + for (i = 0u; i < sheetInfo->RowCount; i++) /*-< ǰ±ǷСڲ*/ { - rowShouldLen = DSU_DIFF_RELATION_LENGTH; - oppDevIdx = 8u; - } - else - { - rowShouldLen = DSU_SAME_RELATION_LENGTH; - oppDevIdx = 9u; - } - colLen = sheetInfo->ColLen; - if ((colLen == rowShouldLen)) /*г*/ - { - for (i = 0; i < sheetInfo->RowCount; i++) /**/ + hasSame = 0u; /*-< Ƿͬ־Ϊ*/ + if (DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) /*-< ǰǷDzͬͱ*/ { - hasSame = 0u; - if (DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) /*ͬͱ*/ + inLocDev = sheetInfo->Data[i * colLen]; /*-< õڲݱ*/ + inOppDev = sheetInfo->Data[(i * colLen) + oppDevIdx]; /*-< õڲݶԷ*/ + } + else + { + inLocDev = ShortFromChar(&sheetInfo->Data[i * colLen]); /*-< õڲݱID*/ + inOppDev = ShortFromChar(&sheetInfo->Data[(i * colLen) + oppDevIdx]); /*-< õڲݶԷID*/ + } + for (j = 0u; j < outRowCount; j++) /*-< ǰ±ǷСⲿ*/ + { + if (DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) /*-< ǰǷDzͬͱ*/ { - inLocDev = sheetInfo->Data[i * colLen]; - inOppDev = sheetInfo->Data[(i * colLen) + oppDevIdx]; + outLocDev = proOutData[2u + (j * colLen)]; /*-< õⲿݱ*/ + outOppDev = proOutData[2u + (j * colLen) + oppDevIdx]; /*-< õⲿݶԷ*/ } else { - inLocDev = ShortFromChar(&sheetInfo->Data[i * colLen]); - inOppDev = ShortFromChar(&sheetInfo->Data[(i * colLen) + oppDevIdx]); + outLocDev = ShortFromChar(&proOutData[2u + (j * colLen)]); /*-< õⲿݱID*/ + outOppDev = ShortFromChar(&proOutData[(2u + (j * colLen)) + oppDevIdx]); /*-< õⲿݶԷID*/ } - for (j = 0; j < outRowCount; j++) + if ((inLocDev == outLocDev) && (inOppDev == outOppDev)) /*-< ݱԷǷͬ*/ { - if (DSU_DATA_PROTCL_DIFF_RELATION == sheetInfo->Id) /*ͬͱ*/ - { - outLocDev = proOutData[2u + (j * colLen)]; - outOppDev = proOutData[2u + (j * colLen) + oppDevIdx]; - } - else - { - outLocDev = ShortFromChar(&proOutData[2u + (j * colLen)]); - outOppDev = ShortFromChar(&proOutData[(2u + (j * colLen)) + oppDevIdx]); - } - if ((inLocDev == outLocDev) && (inOppDev == outOppDev)) /*ݱԷͬ*/ - { - hasSame = 1u; - break; - } - } - if (0u == hasSame) /*޲ͬ,*/ - { - CommonMemCpy(&mergeData[*mergeDataIdx], colLen, &sheetInfo->Data[i * colLen], colLen); - (*mergeDataIdx) += colLen; - mergeRowCount++; + hasSame = 1u; /*-< Ƿͬ־Ϊ*/ + break; /*-< ˳*/ } } - - ShortToChar(mergeRowCount, &mergeData[rowCountIdx]); + if (0u == hasSame) /*-< Ƿͬ־ǷΪ*/ + { + CommonMemCpy(&mergeData[*mergeDataIdx], colLen, &sheetInfo->Data[i * colLen], colLen); /*-< ƴڲݵϲ*/ + (*mergeDataIdx) += colLen; /*-< ϲλԼг*/ + mergeRowCount++; /*-< ϲԼ1*/ + } } + + ShortToChar(mergeRowCount, &mergeData[rowCountIdx]); /*-< úϲϲ*/ } } } } -/* -*: ϲ -*: const UINT32 inDataLen ڲ -* UINT8 inData[] ڲ -* struc_Unify_Info* sfp sfpṹ -*: -*: -*ֵ: Ƿɹ.1:ɹ;0:ʧ -*/ +/** + * @brief MergeDataBaseInParam ϲݿ + * @param inDataLen ڲ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ڲ ȡֵΧ:ֽ + * @param sfp sfpṹ ȡֵΧ:οṹstruc_Unify_Info + * @return 0:ʧ 1:ɹ + */ UINT8 MergeDataBaseInParam(const UINT32 inDataLen, UINT8 inData[], struc_Unify_Info* sfp) { - UINT8 rtnVal = 0u; /*ֵ*/ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪʧ*/ SheetInfo diffSheet = { 0u }; /*ͬ豸sheetҳ*/ SheetInfo sameSheet = { 0u }; /*ͬ豸sheetҳ*/ UINT8* dataBase = NULL; /*ݲ*/ @@ -1110,49 +1165,49 @@ UINT8 MergeDataBaseInParam(const UINT32 inDataLen, UINT8 inData[], struc_Unify_I UINT16 diffRowNum = 0u; /*ͬ豸*/ UINT16 sameRowNum = 0u; /*ͬ豸*/ - if ((NULL != sfp) && (NULL != sfp->DataBase)) /**/ + if ((NULL != sfp) && (NULL != sfp->DataBase)) /*-< Ƿǿ*/ { - if ((0u < inDataLen) && (NULL != inData)) /**/ + if ((0u < inDataLen) && (NULL != inData)) /*-< */ { - InitSheet(&diffSheet, inData, inDataLen, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_DIFF_RELATION); - InitSheet(&sameSheet, inData, inDataLen, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_SAME_RELATION); - dataBase = sfp->DataBase; + InitSheet(&diffSheet, inData, inDataLen, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_DIFF_RELATION); /*-< õͬ豸ͨŹϵ*/ + InitSheet(&sameSheet, inData, inDataLen, DSU_DATA_PROTCL_TYPE, DSU_DATA_PROTCL_SAME_RELATION); /*-< õͬ豸ͨŹϵ*/ + dataBase = sfp->DataBase; /*-< õݿ*/ #ifdef SFP_CKECK_DSU_IP - relationNum = ShortFromChar(&dataBase[curDataBaseIdx]); /*IP*/ + relationNum = ShortFromChar(&dataBase[curDataBaseIdx]); /*-< õIP*/ curDataBaseIdx += 2u; - curDataBaseIdx = curDataBaseIdx + relationNum * DSU_OBJ_INFO_LENGTH; /*IP*/ + curDataBaseIdx = curDataBaseIdx + relationNum * DSU_OBJ_INFO_LENGTH; /*-< õIP*/ #endif - diffRowNum = ShortFromChar(&dataBase[curDataBaseIdx]); /*ͬ豸ͨŹϵ*/ - diffDataLen = 2u + diffRowNum * DSU_DIFF_RELATION_LENGTH; /*ͬ豸ݳ*/ - sameRowNum = ShortFromChar(&dataBase[curDataBaseIdx + +diffDataLen]); /*ͬ豸ݳ*/ - sameDataLen = 2u + sameRowNum * DSU_SAME_RELATION_LENGTH; /*ͬ豸ͨŹϵ*/ + diffRowNum = ShortFromChar(&dataBase[curDataBaseIdx]); /*-< õͬ豸ͨŹϵ*/ + diffDataLen = 2u + diffRowNum * DSU_DIFF_RELATION_LENGTH; /*-< õͬ豸ݳ*/ + sameRowNum = ShortFromChar(&dataBase[curDataBaseIdx + diffDataLen]); /*-< õͬ豸ݳ*/ + sameDataLen = 2u + sameRowNum * DSU_SAME_RELATION_LENGTH; /*-< õͬ豸ͨŹϵ*/ - mergeDataLen = curDataBaseIdx + diffDataLen + diffSheet.Len + sameDataLen + sameSheet.Len; /*ܳ*/ - mergeData = (UINT8*)malloc(sizeof(UINT8) * mergeDataLen); - if (NULL != mergeData) + mergeDataLen = curDataBaseIdx + diffDataLen + diffSheet.Len + sameDataLen + sameSheet.Len; /*-< ܳ*/ + mergeData = (UINT8*)malloc(sizeof(UINT8) * mergeDataLen); /*-< ϲ*/ + if (NULL != mergeData) /*-< ɹ*/ { - CommonMemSet(&mergeData[0], mergeDataLen, 0u, mergeDataLen); /**/ + CommonMemSet(&mergeData[0], mergeDataLen, 0u, mergeDataLen); /*-< ϲ*/ #ifdef SFP_CKECK_DSU_IP - CommonMemCpy(&mergeData[0], curDataBaseIdx, &dataBase[0], curDataBaseIdx); - curMergeDataIdx += curDataBaseIdx; + CommonMemCpy(&mergeData[0], curDataBaseIdx, &dataBase[0], curDataBaseIdx); /*-< Ƶǰ*/ + curMergeDataIdx += curDataBaseIdx; /*-< ۼӵǰݳ*/ #endif - MergeParam(&diffSheet, &dataBase[0], &curDataBaseIdx, diffDataLen, &mergeData[0], &curMergeDataIdx); - MergeParam(&sameSheet, &dataBase[0], &curDataBaseIdx, sameDataLen, &mergeData[0], &curMergeDataIdx); + MergeParam(&diffSheet, &dataBase[0], &curDataBaseIdx, diffDataLen, &mergeData[0], &curMergeDataIdx); /*-< úϲͬ豸Ͳ*/ + MergeParam(&sameSheet, &dataBase[0], &curDataBaseIdx, sameDataLen, &mergeData[0], &curMergeDataIdx); /*-< úϲͬ豸Ͳ*/ - sfp->DataBase = mergeData; + sfp->DataBase = mergeData; /*-< ݿ*/ - rtnVal = 1u; + rtnVal = 1u; /*-< úֵΪɹ*/ } } else /**/ { - rtnVal = 1u; + rtnVal = 1u; /*-< úֵΪɹ*/ } } - return rtnVal; + return rtnVal; /*-< غֵ*/ } diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.h b/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.h index f625711..39c8391 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.h +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_dqu_sfp/dsuRelatedDeal.h @@ -28,29 +28,31 @@ extern "C" { #endif + /*IP˿ڽṹ*/ typedef struct { - UINT8 RedIp[4]; /*IPַ*/ - UINT16 PortRed; /*˿ں*/ - UINT8 BlueIp[4]; /*IPַ*/ - UINT16 PortBlue; /*˿ں*/ + UINT8 RedIp[4]; /*IPַ ȡֵΧ:ֽ*/ + UINT16 PortRed; /*˿ں ȡֵΧ:0x0000-0xFFFF*/ + UINT8 BlueIp[4]; /*IPַ ȡֵΧ:ֽ*/ + UINT16 PortBlue; /*˿ں ȡֵΧ:0x0000-0xFFFF*/ } IP_PORT_STRU; + /*·ṹ*/ typedef struct { - UINT8 Role; /*ɫ*/ - UINT8 NCyclesPerPack; /*ͨŹϵϷ*/ - UINT16 LocalCycle; /*ڳ(ķڳ)*/ - UINT16 LocalMaxDelay; /*ʱ*/ - UINT8 LocalCommType; /*ͨͣҲǶԷݵͨͣ*/ - UINT16 DestCycle; /* Էķ*/ - UINT16 DestMaxDelay; /*ʱ*/ - UINT16 AckMaxDelay; /*շACKӳ*/ - UINT8 DestCommType; /*ԷͨͣҲDZݵͨͣ*/ + UINT8 Role; /*ɫ ȡֵΧ:0x00-0xFF*/ + UINT8 NCyclesPerPack; /*ͨŹϵϷ ȡֵΧ:0x00-0xFF*/ + UINT16 LocalCycle; /*ڳ(ķڳ) ȡֵΧ:0x0000-0xFFFF*/ + UINT16 LocalMaxDelay; /*ʱ ȡֵΧ:0x0000-0xFFFF*/ + UINT8 LocalCommType; /*ͨͣҲǶԷݵͨͣ ȡֵΧ:0x00-0xFF*/ + UINT16 DestCycle; /* Էķ ȡֵΧ:0x0000-0xFFFF*/ + UINT16 DestMaxDelay; /*ʱ ȡֵΧ:0x0000-0xFFFF*/ + UINT16 AckMaxDelay; /*շACKӳ ȡֵΧ:0x0000-0xFFFF*/ + UINT8 DestCommType; /*ԷͨͣҲDZݵͨͣ ȡֵΧ:0x00-0xFF*/ #ifdef SFP_CKECK_DSU_IP /*IP*/ - UINT8 dstNum; - IP_PORT_STRU DstIpInfo[2]; + UINT8 dstNum; /*ȡֵΧ : 0x00 - 0xFF*/ + IP_PORT_STRU DstIpInfo[2]; /*ȡֵΧ:ֽ*/ #endif } struc_LnkBasicInfo; @@ -112,18 +114,6 @@ UINT32 dsuIsDevExist(struc_Unify_Info * LocalInfo , UINT32 DevName); */ UINT16 dsuGetObjNum(struc_Unify_Info * LocalInfo); -/* -* :ͬʱõ淽Ϣ -* ˵: -* [out]INT8 *FollowDevInfo:¼淽Ϣͷָ (Ӧöһ1*9) -* ڲʽΪ -* Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6...... -* 淽 淽1Type 淽1ID 0 0 淽2Type 淽2ID ... -* [in] struc_Unify_Info * LocalInfo ǰеĶͳһṹ -* ֵ:ȷ1򷵻0 -*/ -UINT8 dsuSameTypeLnk(struc_Unify_Info * LocalInfo, UINT8 *FollowDevInfo); - #ifdef USE_DSU_SFP /* @@ -136,15 +126,13 @@ UINT8** pDataBase UINT8 dsuSfpInit(UINT8* fileName,UINT8** pDataBase); #endif -/* -*: ϲ -*: const UINT32 inDataLen ڲ -* UINT8 inData[] ڲ -* struc_Unify_Info* sfp sfpṹ -*: -*: -*ֵ: Ƿɹ.1:ɹ;0:ʧ -*/ +/** + * @brief MergeDataBaseInParam ϲݿ + * @param inDataLen ڲ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ڲ ȡֵΧ:ֽ + * @param sfp sfpṹ ȡֵΧ:οṹstruc_Unify_Info + * @return 0:ʧ 1:ɹ + */ UINT8 MergeDataBaseInParam(const UINT32 inDataLen, UINT8 inData[], struc_Unify_Info* sfp); #ifdef __cplusplus diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclInit.c b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclInit.c index 522ee67..d6b7272 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclInit.c +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclInit.c @@ -43,305 +43,310 @@ #include "dsuRelatedDeal.h" -/****************************************************************************************** -* : Эʼ - 1. ڵô˺֮ǰӦҪͳһṹInputSizeOutputSize,MaxNumLink, - MaxNumPerCycle,OutnetQueueSizeȱֵ -* : UINT8 * fileName ݵļַ -* : UINT32 inDataLen ڲ -* : UINT8 inData[] ڲ -* : struc_Unify_Info* pUnifyInfo Эͳһṹָ -* : -* ȫֱ : -* ֵ : ʼ1򷵻0 -*******************************************************************************************/ -UINT8 ProtclInit(UINT8 *fileName, UINT32 inDataLen, UINT8 inData[], struc_Unify_Info *pUnifyInfo)/* %RELAX */ +/** + * @brief ProtclInit Эʼ + * @param fileName FSļ ȡֵΧ:ֽ + * @param inDataLen ڲݳ ȡֵΧ:0x00000000-0xFFFFFFFF + * @param inData ڲ ȡֵΧ:ֽ + * @param pUnifyInfo SFPʵ ȡֵΧ:οṹstruc_Unify_Info + * @return 0:ʧ 1:ɹ + */ +UINT8 ProtclInit(UINT8* fileName, UINT32 inDataLen, UINT8 inData[], struc_Unify_Info* pUnifyInfo)/* %RELAX */ { + /*- ֲ*/ UINT16 InputSize; /*ΪԽṹеһЩʵʱ*/ UINT16 OutputSize; UINT16 MaxNumLink; UINT16 MaxNumPerCycle; UINT32 lTemp; - UINT8 ret = 0; + UINT8 ret = 0; /*-< úֵΪʧ*/ - if(pUnifyInfo == NULL) + if (pUnifyInfo == NULL) /*-< Ƿǿ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else - {} - - /* wangpeipei 20120103 Mod S */ - if((fileName != NULL) && (pUnifyInfo->DataBase == NULL)) - { -#ifdef USE_DSU_SFP - ret = dsuSfpInit(fileName, &pUnifyInfo->DataBase); - if (ret == 0) - { - return ret; - } - else - { - /* */ - } -#else - ret = 1; -#endif - } - else if((fileName == NULL) && (pUnifyInfo->DataBase != NULL)) - { - /* */ - } - else - { - return ret; - } - - ret = MergeDataBaseInParam(inDataLen, inData, pUnifyInfo); - if (0u == ret) { - return ret; } - /* wangpeipei 20120103 Mod End */ - /*ͳһṹе4ʱ*/ + /* wangpeipei 20120103 Mod S */ + if ((fileName != NULL) && (pUnifyInfo->DataBase == NULL)) /*-< FSļǷǿ ݿǷ*/ + { +#ifdef USE_DSU_SFP + ret = dsuSfpInit(fileName, &pUnifyInfo->DataBase); /*-< óʼѯ*/ + if (ret == 0) /*-< úǷʧ*/ + { + return ret; /*-< غֵ*/ + } + else + { + /* */ + } +#else + ret = 1; /*-< غֵ*/ +#endif + } + else if ((fileName == NULL) && (pUnifyInfo->DataBase != NULL)) /*-< FSļǷ ݿǷǿ*/ + { + /* */ + } + else + { + return ret; /*-< غֵ*/ + } + + ret = MergeDataBaseInParam(inDataLen, inData, pUnifyInfo); /*-< úϲ*/ + if (0u == ret) /*-< úǷʧ*/ + { + return ret; /*-< غֵ*/ + } + + /* wangpeipei 20120103 Mod End */ + /*- ͳһṹе4ʱ*/ InputSize = pUnifyInfo->InputSize; OutputSize = pUnifyInfo->OutputSize; MaxNumLink = pUnifyInfo->MaxNumLink + 1; MaxNumPerCycle = pUnifyInfo->MaxNumPerCycle; - + /*ȸӦøĸ㲢ͳһṹеĶСֵ*/ /* DataToAppӿڶдС * ¹ʽЭ㣬ʼ - * [InputSize ÿ֡ݵֽ+ЭռֵֽΪ7]* + * [InputSize ÿ֡ݵֽ+ЭռֵֽΪ7]* * MaxNumLink·*/ - /*Ӧöпռ*/ + /*- Ӧöпռ*/ lTemp = (InputSize + 7) * MaxNumLink; - pUnifyInfo->DataToAppSize = lTemp; - - + pUnifyInfo->DataToAppSize = lTemp; + + /* OutputDataQueueĴС * ¹ʽԸֵгʼ - * [OutputSize (ÿ֡ݵֽ)+ЭֵֽΪ6]* + * [OutputSize (ÿ֡ݵֽ)+ЭֵֽΪ6]* * MaxNumLink· */ + /*- пռ*/ lTemp = (OutputSize + 6) * MaxNumLink; - pUnifyInfo->OutputDataQueueSize = lTemp; - + pUnifyInfo->OutputDataQueueSize = lTemp; + /* Э뵥ԪЭ൥ԪijС - * ܿռ = [InputSize ÿ֡ݵֽ+ЭռֵֽΪ15]* - * MaxNumLink·*ÿÿյֵοֵΪ5+ + * ܿռ = [InputSize ÿ֡ݵֽ+ЭռֵֽΪ15]* + * MaxNumLink·*ÿÿյֵοֵΪ5+ * ֵֽΪ2 */ - lTemp = (InputSize + 15) * MaxNumLink* MaxNumPerCycle + 2; + /*- пռ*/ + lTemp = (InputSize + 15) * MaxNumLink * MaxNumPerCycle + 2; pUnifyInfo->PrtclRcvSize = lTemp; - + /* PrtclSndBuffָĴС *ܿռ = [OutputSize ÿ֡ݵֽ+ЭռֽΪ49+ * ·ڵռֽ(οֵΪ48)]* MaxNumLink·+ - * ͷռֽ4.7ֱеģ鳤+鳤0 = 8 + * ͷռֽ4.7ֱеģ鳤+鳤0 = 8 */ + /*- пռ*/ lTemp = (OutputSize + 49 + 4 + LNKFRAMELEN) * MaxNumLink + 8; - pUnifyInfo->PrtclSndBuffSize = lTemp; - - + pUnifyInfo->PrtclSndBuffSize = lTemp; + + /**/ - pUnifyInfo->DataAfterReduntancy = NULL; - pUnifyInfo->DataAfterReduntancy =(UINT8*) malloc(pUnifyInfo->PrtclRcvSize); - if(pUnifyInfo->DataAfterReduntancy == NULL) + /*- ռ*/ + pUnifyInfo->DataAfterReduntancy = NULL; + pUnifyInfo->DataAfterReduntancy = (UINT8*)malloc(pUnifyInfo->PrtclRcvSize); + if (pUnifyInfo->DataAfterReduntancy == NULL) /*-< ռʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { /*޲*/ - CommonMemSet(pUnifyInfo->DataAfterReduntancy,pUnifyInfo->PrtclRcvSize,0,pUnifyInfo->PrtclRcvSize); + CommonMemSet(pUnifyInfo->DataAfterReduntancy, pUnifyInfo->PrtclRcvSize, 0, pUnifyInfo->PrtclRcvSize); /*-< */ } - + /*Эڲʹʱռ*/ + /*- ڲʹʱռ*/ lTemp = InputSize + 20; pUnifyInfo->CommBuffer = (UINT8*)malloc(lTemp); - if (pUnifyInfo->CommBuffer ==NULL) - { - ret =0; - return ret; - } - else - { - CommonMemSet(pUnifyInfo->CommBuffer,lTemp,0,lTemp); - } - - /**/ - pUnifyInfo->PrtclSndBuff = NULL; - pUnifyInfo->PrtclSndBuff = (UINT8*)malloc(pUnifyInfo->PrtclSndBuffSize); - if(pUnifyInfo->PrtclSndBuff == NULL) + if (pUnifyInfo->CommBuffer == NULL) /*-< ռʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ - CommonMemSet(pUnifyInfo->PrtclSndBuff,sizeof(UINT8)*pUnifyInfo->PrtclSndBuffSize,0,sizeof(UINT8)*pUnifyInfo->PrtclSndBuffSize); + CommonMemSet(pUnifyInfo->CommBuffer, lTemp, 0, lTemp); /*-< ʱ*/ + } + + /*- */ + pUnifyInfo->PrtclSndBuff = NULL; + pUnifyInfo->PrtclSndBuff = (UINT8*)malloc(pUnifyInfo->PrtclSndBuffSize); + if (pUnifyInfo->PrtclSndBuff == NULL) /*-< ռʧ*/ + { + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ + } + else + { + /*޲*/ + CommonMemSet(pUnifyInfo->PrtclSndBuff, sizeof(UINT8) * pUnifyInfo->PrtclSndBuffSize, 0, sizeof(UINT8) * pUnifyInfo->PrtclSndBuffSize); /*-< */ } #ifdef SWAP_CRC + /*- 佻CRC*/ lTemp = 2u + 4u * (pUnifyInfo->MaxNumLink + 2u); /*2ֽڳ+·(4ֽĿID+4ֽCRC)*/ pUnifyInfo->SwapCrcs = (UINT8*)malloc(lTemp); - if (pUnifyInfo->SwapCrcs == NULL) + if (pUnifyInfo->SwapCrcs == NULL) /*-< ռʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { /*޲*/ - CommonMemSet(pUnifyInfo->SwapCrcs, sizeof(UINT8) * lTemp, 0, sizeof(UINT8) * lTemp); + CommonMemSet(pUnifyInfo->SwapCrcs, sizeof(UINT8) * lTemp, 0, sizeof(UINT8) * lTemp); /*-< 㽻CRC*/ } #endif - - /*¼Ŀռ*/ + + /*- ¼Ŀռ*/ pUnifyInfo->RecordArray = NULL; - pUnifyInfo->RecordArray = (UINT8*)malloc(pUnifyInfo->RecordArraySize+2); - if(pUnifyInfo->RecordArray == NULL) + pUnifyInfo->RecordArray = (UINT8*)malloc(pUnifyInfo->RecordArraySize + 2); + if (pUnifyInfo->RecordArray == NULL) /*-< ռʧ*/ { - ret = 0; - return ret; - } - else - { - /*޲*/ - CommonMemSet(pUnifyInfo->RecordArray,sizeof(UINT8)*(pUnifyInfo->RecordArraySize+2),0,sizeof(UINT8)*(pUnifyInfo->RecordArraySize+2)); - } - - - /*·ջռ*/ - pUnifyInfo->LnkStack.pNode = NULL; - pUnifyInfo->LnkStack.pNode = (void**)malloc(MaxNumLink * sizeof(void*)); - pUnifyInfo->LnkStack.totalsize = (UINT16) MaxNumLink; - if(pUnifyInfo->LnkStack.pNode == NULL) - { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { /*޲*/ - CommonMemSet(pUnifyInfo->LnkStack.pNode,MaxNumLink * sizeof(void*),0,MaxNumLink * sizeof(void*)); + CommonMemSet(pUnifyInfo->RecordArray, sizeof(UINT8) * (pUnifyInfo->RecordArraySize + 2), 0, sizeof(UINT8) * (pUnifyInfo->RecordArraySize + 2)); /*-< ¼*/ } - - /*ջռ*/ + + + /*- ·ջռ*/ + pUnifyInfo->LnkStack.pNode = NULL; + pUnifyInfo->LnkStack.pNode = (void**)malloc(MaxNumLink * sizeof(void*)); + pUnifyInfo->LnkStack.totalsize = (UINT16)MaxNumLink; + if (pUnifyInfo->LnkStack.pNode == NULL) /*-< ռʧ*/ + { + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ + } + else + { + /*޲*/ + CommonMemSet(pUnifyInfo->LnkStack.pNode, MaxNumLink * sizeof(void*), 0, MaxNumLink * sizeof(void*)); /*-< ·ջ*/ + } + + /*- ջռ*/ pUnifyInfo->OutputStack.pNode = NULL; pUnifyInfo->OutputStack.pNode = (void**)malloc(MaxNumLink * sizeof(void*)); - pUnifyInfo->OutputStack.totalsize = (UINT16) MaxNumLink; - if(pUnifyInfo->OutputStack.pNode == NULL) + pUnifyInfo->OutputStack.totalsize = (UINT16)MaxNumLink; + if (pUnifyInfo->OutputStack.pNode == NULL) /*-< ռʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ - CommonMemSet(pUnifyInfo->OutputStack.pNode,MaxNumLink * sizeof(void*),0,MaxNumLink * sizeof(void*)); - } - - /*ջռ*/ + /*޲*/ + CommonMemSet(pUnifyInfo->OutputStack.pNode, MaxNumLink * sizeof(void*), 0, MaxNumLink * sizeof(void*)); /*-< ջ*/ + } + + /*- ջռ*/ pUnifyInfo->InputStack.pNode = NULL; pUnifyInfo->InputStack.pNode = (void**)malloc((UINT16)MaxNumLink * MaxNumPerCycle * sizeof(void*)); - pUnifyInfo->InputStack.totalsize = (UINT16) MaxNumLink * MaxNumPerCycle; - if(pUnifyInfo->InputStack.pNode == NULL) + pUnifyInfo->InputStack.totalsize = (UINT16)MaxNumLink * MaxNumPerCycle; + if (pUnifyInfo->InputStack.pNode == NULL) /*-< ռʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ - CommonMemSet(pUnifyInfo->InputStack.pNode,MaxNumLink * MaxNumPerCycle* sizeof(void*),0,MaxNumLink * MaxNumPerCycle* sizeof(void*)); + /*޲*/ + CommonMemSet(pUnifyInfo->InputStack.pNode, MaxNumLink * MaxNumPerCycle * sizeof(void*), 0, MaxNumLink * MaxNumPerCycle * sizeof(void*)); /*-< ջ*/ } - pUnifyInfo->NetsRecvPkgNums = (SfpNetsRecvPkgNum*)malloc(sizeof(SfpNetsRecvPkgNum) * pUnifyInfo->MaxNumLink); - if (NULL == pUnifyInfo->NetsRecvPkgNums) + pUnifyInfo->NetsRecvPkgNumsLen = 0u; /*-< øյ鳤Ϊ0*/ + pUnifyInfo->NetsRecvPkgNums = (SfpNetsRecvPkgNum*)malloc(sizeof(SfpNetsRecvPkgNum) * pUnifyInfo->MaxNumLink); /*-< յ*/ + if (NULL == pUnifyInfo->NetsRecvPkgNums) /*-< ռʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - CommonMemSet(pUnifyInfo->NetsRecvPkgNums, sizeof(SfpNetsRecvPkgNum) * pUnifyInfo->MaxNumLink, 0, sizeof(SfpNetsRecvPkgNum) * pUnifyInfo->MaxNumLink); + CommonMemSet(pUnifyInfo->NetsRecvPkgNums, sizeof(SfpNetsRecvPkgNum) * pUnifyInfo->MaxNumLink, 0, sizeof(SfpNetsRecvPkgNum) * pUnifyInfo->MaxNumLink); /*-< յ*/ } - /*Ϣṹռ*/ + /*- Ϣṹռ*/ lTemp = dsuGetObjNum(pUnifyInfo); /*ݿнڵ*/ pUnifyInfo->NumBuildLink = NULL; - pUnifyInfo->NumBuildLink = (DuanLianInfo*) malloc(lTemp * sizeof(DuanLianInfo)); - if(pUnifyInfo->NumBuildLink == NULL) + pUnifyInfo->NumBuildLink = (DuanLianInfo*)malloc(lTemp * sizeof(DuanLianInfo)); + if (pUnifyInfo->NumBuildLink == NULL) /*-< ռʧ*/ { - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ - CommonMemSet(pUnifyInfo->NumBuildLink,lTemp * sizeof(DuanLianInfo),0,lTemp * sizeof(DuanLianInfo)); + /*޲*/ + CommonMemSet(pUnifyInfo->NumBuildLink, lTemp * sizeof(DuanLianInfo), 0, lTemp * sizeof(DuanLianInfo)); /*-< Ϣ*/ } - - if(!InitLnkMngr(pUnifyInfo)) /*ͨ·ʼ*/ + + if (!InitLnkMngr(pUnifyInfo)) /*-< ͨ·ʼ,ʧ*/ { #ifdef _DEBUG_ printf("InitLnkMngr error\n"); #endif - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*޲*/ } - - if(!RedundancyInitial(pUnifyInfo)) /*ͨദʼ*/ + + if (!RedundancyInitial(pUnifyInfo)) /*-< ͨദʼ,ʧ*/ { #ifdef _DEBUG_ printf("RedundancyInitial error\n"); #endif - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*޲*/ } - - if(!Prtcl_RecInitial(pUnifyInfo)) /*ͨЭʼ*/ + + if (!Prtcl_RecInitial(pUnifyInfo)) /*-< ͨЭʼ,ʧ*/ { #ifdef _DEBUG_ printf("Prtcl_RecInitial error\n"); #endif - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*޲*/ } - - if(!Prtcl_OutputInitial(pUnifyInfo)) /*ͨЭʼ*/ + + if (!Prtcl_OutputInitial(pUnifyInfo)) /*-< ͨЭʼ,ʧ*/ { #ifdef _DEBUG_ printf("Prtcl_OutputInitial error\n"); #endif - ret = 0; - return ret; + ret = 0; /*-< úֵΪʧ*/ + return ret; /*-< غֵ*/ } else { - /*޲*/ + /*޲*/ } - - ret = 1; - return ret; + + ret = 1; /*-< úֵΪɹ*/ + return ret; /*-< غֵ*/ } diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.c b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.c index 0b6b2f9..d9e2dd7 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.c +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.c @@ -70,6 +70,9 @@ static void ClearNetsRecvPkgNum(struc_Unify_Info* sfp); static void SetNetsRecvPkgNum(struc_Unify_Info* sfp, const UINT32 dstDevName, const UINT8 netIdx); +static void StSfpRecvData(struc_Unify_Info* pUnifyInfoForRedun, UINT8* Rcv, UINT32 DestDevNameInFrame, UINT32 LocalSN, UINT32 DestSN); +static void StSfpSponRecvData(struc_Unify_Info* pUnifyInfoForRedun, UINT8* Rcv, UINT32 DestDevNameInFrame, UINT32 LocalSN, UINT32 DestSN); +static void StSfpFlwRecvData(struc_Unify_Info* pUnifyInfoForRedun, UINT8* Rcv, UINT32 DestDevNameInFrame, UINT32 LocalSN, UINT32 DestSN); /* peipei.wang20111011 mod S */ /* ɾԳʱʱ㣬׷Ӷ봦ʼʱ */ @@ -267,43 +270,14 @@ UINT8 RedundancyInitial(struc_Unify_Info *pUnifyInfo) return ret; } -/****************************************************************************************** -* : ݣദ Redundancy()е - 1Ӷжÿһ֡ - 2жϱԷ߼ַǷϷ - 3жCRCǷȷ - 4жϱ͡ - 5յRFC֡·ڣ·жϸRFCǷϷڣһά - 6յACK֡ͨ·жϸACKǷϷϷͨһάжǷ֡ - 7յDATA֡ͨ·жϸDATAǷϷϷͨһάжǷ֡ -* : -* : -* : -* ȫֱ : static struc_Lnk_Mngr *CurIndex_Lnk_Mngr = NULL; ǰ·еָ -* static StackElement *PointStack = NULL; ָһάڵջָ -* static UINT8 *Rcv = NULL; յÿ֡ݳ -* static struc_Unify_Info *pUnifyInfoForRedun; ģƽ̨ṹָ룬ģõƽ̨ṹָĶôָ -* static UINT32 AbsTimeoutPointForRedun; Գʱʱ -* ֵ : ɹ1,ʧܷ0 -*******************************************************************************************/ - -/* -*: RedundancyReceive -*: ݣദ -* 1Ӷжÿһ֡ -* 2жϱԷ߼ַǷϷ -* 3жCRCǷȷ -* 4жϱ͡ -* 5յRFC֡·ڣ·жϸRFCǷϷڣһά -* 6յACK֡ͨ·жϸACKǷϷϷͨһάжǷ֡ -* 7յDATA֡ͨ·жϸDATAǷϷϷͨһάжǷ֡ -*: struc_Unify_Info *pUnifyInfoForRedun SFPṹ -*: -*: -*ֵ: 1:ɹ;0ʧ -*/ -static UINT16 RedundancyReceive(struc_Unify_Info *pUnifyInfoForRedun) +/** + * @brief RedundancyReceive ݲദ + * @param pUnifyInfo sfp ȡֵΧ:οṹstruc_Unify_Info + * @return 0:ʧ 1:ɹ + */ +static UINT16 RedundancyReceive(struc_Unify_Info* pUnifyInfoForRedun) { + /*- ֲ*/ UINT32 DestSN; UINT32 LocalSN;/*ԷSNSN*/ UINT8 Dest_SN[4]; @@ -315,31 +289,29 @@ static UINT16 RedundancyReceive(struc_Unify_Info *pUnifyInfoForRedun) UINT16 lenthofRcvB;/*յÿ֡ݵij(len[2]ַתõ)*/ UINT16 FrameLenthOfRcvA; UINT16 FrameLenthOfRcvB;/*ͨſдĴյĵ֡ܳ*/ - UINT8 Link_Role;/*·ɫ*/ UINT16 i; - UINT16 ret; - - struc_InputBuffer *p_temp; /*ָһάʱָ*/ - + UINT16 ret = 0u; /*-< úֵΪ0*/ + + /*0x0F---(A)пɶ0xF0(B)пɶ *0xFF---˫ɶ0x00ɶֵ0x00*/ UINT8 QueueAvailable; - + /*0x55---ǰһζȡǺ(A)У0xAAǰһζ *ȡ(B)гʼĬϵǺмֵ0x55*/ - UINT8 QueueReadFlag; - /*öжȡķֵ洢*/ - UINT8 RVQueueRead; + UINT8 QueueReadFlag; + /*öжȡķֵ洢*/ + UINT8 RVQueueRead; UINT8 RcvQueueReadLenth; - - UINT32 LocalDevName; - + + UINT32 LocalDevName; + UINT8 ToBeContinue = 0; - StackElement *PointStack = &pUnifyInfoForRedun->InputStack; /*һάָջ*/ - UINT32 startTimePointForRedun = GetTick(pUnifyInfoForRedun); /*ȡദʼʱ*/ - struc_Lnk_Mngr *CurIndex_Lnk_Mngr = NULL; /*ǰ·еָ*/ - UINT8 *Rcv = pUnifyInfoForRedun->DataAfterReduntancy; /*RcvָЭ鹲û*/ + StackElement* PointStack = &pUnifyInfoForRedun->InputStack; /*һάָջ*/ + UINT32 startTimePointForRedun = GetTick(pUnifyInfoForRedun); /*ȡദʼʱ*/ + UINT8* Rcv = pUnifyInfoForRedun->DataAfterReduntancy; /*RcvָЭ鹲û*/ + UINT8 deepPro = 0u; /*-< ô־Ϊ*/ /*ֲʼ*/ DestSN = 0; @@ -349,897 +321,475 @@ static UINT16 RedundancyReceive(struc_Unify_Info *pUnifyInfoForRedun) QueueAvailable = 0; QueueReadFlag = 0x55; RVQueueRead = 0xFF; - LocalDevName = TypeIdToName(pUnifyInfoForRedun->LocalType,pUnifyInfoForRedun->LocalID); - - ClearNetsRecvPkgNum(pUnifyInfoForRedun); + LocalDevName = TypeIdToName(pUnifyInfoForRedun->LocalType, pUnifyInfoForRedun->LocalID); /*-< øIDõ豸*/ - while(1) + ClearNetsRecvPkgNum(pUnifyInfoForRedun); /*-< հ*/ + + while (1) /*-< */ { - /* peipei.wang20111011 mod S */ - /*ɾԭʱжϣ׷ӵǰʱ - ദʼʱģִʱ޵ж*/ - /*if(GetTick(pUnifyInfoForRedun) < AbsTimeoutPointForRedun)*/ - if(IsTimeOut(GetTick(pUnifyInfoForRedun),startTimePointForRedun,pUnifyInfoForRedun->RedundTimeout) == 0 ) - /* peipei.wang20111011 mod E*/ - { + deepPro = 0u; /*-< ô־Ϊ*/ + /* peipei.wang20111011 mod S */ + /*ɾԭʱжϣ׷ӵǰʱ - ദʼʱģִʱ޵ж*/ + /*if(GetTick(pUnifyInfoForRedun) < AbsTimeoutPointForRedun)*/ + if (IsTimeOut(GetTick(pUnifyInfoForRedun), startTimePointForRedun, pUnifyInfoForRedun->RedundTimeout) == 0) /*-< жϵǰǷʱ*/ + /* peipei.wang20111011 mod E*/ + { /*QueueScanɨ֡ij*/ - if(PointStack->size != 0)/*нڵ*/ - { - QueueAvailable = 0; /*пñ־*/ - - /*Ϊ֡ʽı䣬ԭ֡ʽǰ֡ȣҪȶֽ*/ + if (PointStack->size != 0) /*-< Ƿнڵ*/ + { + QueueAvailable = 0; /*-< пñ־*/ + + /*Ϊ֡ʽı䣬ԭ֡ʽǰ֡ȣҪȶֽ*/ /*жϺǷ*/ /*if(QueueStatus(&pUnifyInfoForRedun->OutnetQueueA) > 2)*/ /*õݳʣ2ֽ*/ - if(QueueScan(4,len,&pUnifyInfoForRedun->OutnetQueueA) != 0) /*ɨȣ4ֽ*/ - { - FrameLenthOfRcvA = ShortFromChar(len); /*֡ܳ*/ - - lenthofRcvA = ShortFromChar(&len[2]);/*֡ij*/ - - if(((FrameLenthOfRcvA - 2) != lenthofRcvA)||(lenthofRcvA < 21))/*Զһڵ*/ + if (QueueScan(4, len, &pUnifyInfoForRedun->OutnetQueueA) != 0) /*-< Ƿɨ4ֽ*/ + { + FrameLenthOfRcvA = ShortFromChar(len); /*-< ֡ܳ*/ + + lenthofRcvA = ShortFromChar(&len[2]); /*-< ֡ij*/ + + if (((FrameLenthOfRcvA - 2) != lenthofRcvA) || (lenthofRcvA < 21)) /*-< Ƿ񲻿Զһڵ*/ { #ifdef PRTCL_RECORD_ERR_ASC PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_INTEGRITY); + WARN | REDUN | ERROR_NULL | QUEUE_INTEGRITY); /*¼¼*/ #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_INTEGRITY); + /*- ¼Զһڵ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_INTEGRITY); #endif - /*FrameLenthOfRcvA+2ֽݴӶж´ζȡ*/ - QueueElementDiscard( (UINT16)(FrameLenthOfRcvA+2), &pUnifyInfoForRedun->OutnetQueueA); - - ToBeContinue = 1; /*ֱӽһεĶȡѭ*/ + /*- FrameLenthOfRcvA+2ֽݴӶж´ζȡ*/ + QueueElementDiscard((UINT16)(FrameLenthOfRcvA + 2), &pUnifyInfoForRedun->OutnetQueueA); + + ToBeContinue = 1; /*-< ֱӽһεĶȡѭ*/ } - else if(lenthofRcvA > (pUnifyInfoForRedun->InputSize + 21)) + else if (lenthofRcvA > (pUnifyInfoForRedun->InputSize + 21)) /*-< ǷݳȷǷ*/ { /*յݳ,ǴӶж֡ݣһ֡Ķȡ*/ #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|OUTNETDATA_TOO_LONG|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize," RedNet "); + WARN | REDUN | OUTNETDATA_TOO_LONG | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, " RedNet "); PrintFileU32Int(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, lenthofRcvA); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|OUTNETDATA_TOO_LONG|ERROR_NULL); + /*- ¼ݳȷǷ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | OUTNETDATA_TOO_LONG | ERROR_NULL); #endif - /*FrameLenthOfRcvA+2ֽݴӶж´ζȡ*/ - QueueElementDiscard( (UINT16)(FrameLenthOfRcvA+2), &pUnifyInfoForRedun->OutnetQueueA); - - ToBeContinue = 1; /*ֱӽһεĶȡѭ*/ + /*- FrameLenthOfRcvA+2ֽݴӶж´ζȡ*/ + QueueElementDiscard((UINT16)(FrameLenthOfRcvA + 2), &pUnifyInfoForRedun->OutnetQueueA); + + ToBeContinue = 1; /*-< ֱӽһεĶȡѭ*/ } else { - QueueAvailable |= 0x0F; /*пñ־*/ - } + QueueAvailable |= 0x0F; /*-< úпñ־*/ + } } else { - /*޲*/ + /*޲*/ } - + /*жǷ*/ /*if(QueueStatus(&pUnifyInfoForRedun->OutnetQueueB) > 2)*/ /*õݳʣ2ֽ*/ - if(QueueScan(4,len,&pUnifyInfoForRedun->OutnetQueueB) != 0) /*ɨȣ4ֽ*/ + if (QueueScan(4, len, &pUnifyInfoForRedun->OutnetQueueB) != 0) /*-< Ƿɨ4ֽ*/ { - FrameLenthOfRcvB = ShortFromChar(len); /*֡ܳ*/ - - lenthofRcvB = ShortFromChar(&len[2]);/*֡ij*/ - - if(((FrameLenthOfRcvB - 2) != lenthofRcvB)||(lenthofRcvB < 21))/*Զһڵ,ĺôDzƻеĽṹ*/ - /*if(QueueStatus(&pUnifyInfoForRedun->OutnetQueueB) < (lenthofRcvB + 2))*/ + FrameLenthOfRcvB = ShortFromChar(len); /*-< ֡ܳ*/ + + lenthofRcvB = ShortFromChar(&len[2]); /*-< ֡ij*/ + + if (((FrameLenthOfRcvB - 2) != lenthofRcvB) || (lenthofRcvB < 21)) /*-< Ƿ񲻿Զһڵ,ĺôDzƻеĽṹ*/ + /*if(QueueStatus(&pUnifyInfoForRedun->OutnetQueueB) < (lenthofRcvB + 2))*/ { #ifdef PRTCL_RECORD_ERR_ASC PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_INTEGRITY); + WARN | REDUN | ERROR_NULL | QUEUE_INTEGRITY); /*¼¼*/ #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_INTEGRITY); + /*- ¼Զһڵ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_INTEGRITY); #endif - /*FrameLenthOfRcvB+2ֽݴӶж´ζȡ*/ - QueueElementDiscard( (UINT16)(FrameLenthOfRcvB+2), &pUnifyInfoForRedun->OutnetQueueB); + /*- FrameLenthOfRcvB+2ֽݴӶж´ζȡ*/ + QueueElementDiscard((UINT16)(FrameLenthOfRcvB + 2), &pUnifyInfoForRedun->OutnetQueueB); - ToBeContinue = 1; /*ֱӽһεĶȡѭ*/ - } - else if(lenthofRcvB > (pUnifyInfoForRedun->InputSize + 21)) + ToBeContinue = 1; /*-< ֱӽһεĶȡѭ*/ + } + else if (lenthofRcvB > (pUnifyInfoForRedun->InputSize + 21)) /*-< ǷݳȷǷ*/ { /*¼¼յݳ*/ #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|OUTNETDATA_TOO_LONG|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize," BlueNet "); + WARN | REDUN | OUTNETDATA_TOO_LONG | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, " BlueNet "); PrintFileU32Int(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, lenthofRcvB); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|OUTNETDATA_TOO_LONG|ERROR_NULL); + /*- ¼ݳȷǷ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | OUTNETDATA_TOO_LONG | ERROR_NULL); #endif - /*FrameLenthOfRcvB+2ֽݴӶж´ζȡ*/ - QueueElementDiscard((UINT16)(FrameLenthOfRcvB+2), &pUnifyInfoForRedun->OutnetQueueB); - - ToBeContinue = 1; /*ֱӽһεĶȡѭ*/ + /*- FrameLenthOfRcvB+2ֽݴӶж´ζȡ*/ + QueueElementDiscard((UINT16)(FrameLenthOfRcvB + 2), &pUnifyInfoForRedun->OutnetQueueB); + + ToBeContinue = 1; /*-< ֱӽһεĶȡѭ*/ } else { - QueueAvailable |= 0xF0; /*пñ־*/ + QueueAvailable |= 0xF0; /*-< пñ־*/ } - + } else { - /*޲*/ + /*޲*/ } - if(ToBeContinue == 0) + if (ToBeContinue == 0) /*-< Ƿ*/ { - if(QueueAvailable == 0xFF)/*жɶ*/ - { - if(QueueReadFlag == 0x55)/*ϴζĶǺ*/ - { - /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,Rcv,&pUnifyInfoForRedun->OutnetQueueB); - if(RcvQueueReadLenth != 1) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - #endif - break;/*Ƴѭ*/ - } - - RVQueueRead = QueueRead( (UINT16)(lenthofRcvB + 2),Rcv,&pUnifyInfoForRedun->OutnetQueueB); - DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); - SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 1); - QueueReadFlag = 0xAA;/*ζ*/ - /*¼¼*/ - #ifdef PRTCL_RECORD_DATA_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"BNet:"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - 0x40|0x0A); - #endif - } - else - { - /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,Rcv,&pUnifyInfoForRedun->OutnetQueueA); - if(RcvQueueReadLenth != 1) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - #endif - break;/*Ƴѭ*/ - } - - RVQueueRead = QueueRead( (UINT16)(lenthofRcvA + 2),Rcv,&pUnifyInfoForRedun->OutnetQueueA); - DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); - SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 0); - QueueReadFlag = 0x55; - /*¼¼*/ - #ifdef PRTCL_RECORD_DATA_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"RNet:"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - 0x40|0x05); - #endif - } - } - else if(QueueAvailable == 0x0F)/*пɶ*/ - { - /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,Rcv,&pUnifyInfoForRedun->OutnetQueueA); - if(RcvQueueReadLenth != 1) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - #endif - break;/*˳ѭ*/ - } - - RVQueueRead = QueueRead( (UINT16)(lenthofRcvA + 2),Rcv,&pUnifyInfoForRedun->OutnetQueueA); - DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); - SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 0); - QueueReadFlag = 0x55;/*ζǺ*/ - /*¼¼*/ - #ifdef PRTCL_RECORD_DATA_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"RNet:"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - 0x40|0x05); - #endif - } - else if(QueueAvailable == 0xF0)/*пɶ*/ - { - /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ - RcvQueueReadLenth = QueueRead(2,Rcv,&pUnifyInfoForRedun->OutnetQueueB); - if(RcvQueueReadLenth != 1) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - #endif - break;/*˳ѭ*/ - } - - RVQueueRead = QueueRead( (UINT16)(lenthofRcvB + 2),Rcv,&pUnifyInfoForRedun->OutnetQueueB); - DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); - SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 1); - QueueReadFlag = 0xAA;/*ζ*/ - /*¼¼*/ - #ifdef PRTCL_RECORD_DATA_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"BNet:"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - /*һ֡ϢʼʶϢԴ*/ - PrintRecArrayByte(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - 0x40|0x0A); - #endif - } - else - { - break; /*˳whileѭ*/ - } - - if(RVQueueRead == 1) /*жǷԶ֡*/ - {/*Զ֡*/ - - /*Է豸ͱ豸ID*/ - LocalDevNameInFrame = LongFromCharLE(&Rcv[RCV_AIM_DN]); - DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); - /*ԼԷSN*/ - for(i = 0; i < 4;i++) - { - Dest_SN[i] = Rcv[RCV_SRC_SN + i]; - Local_SN[i] = Rcv[RCV_AIM_SN + i]; - } - DestSN = LongFromChar(Dest_SN); - LocalSN = LongFromChar(Local_SN); - /*¼¼*/ - #ifdef PRTCL_RECORD_DATA_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"AName:"); - PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - LocalDevNameInFrame); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"SName:"); - PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - DestDevNameInFrame); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"MType:"); - PrintFileHex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - &Rcv[RCV_FRAME_TYPE],1); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"LSN:"); - PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - LocalSN); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"DSN:"); - PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - DestSN); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"Len:"); - if(QueueReadFlag == 0x55) /*пɶ*/ - { - PrintFileU32Int(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - (UINT32) lenthofRcvA - 21); - } - else if(QueueReadFlag == 0xAA) - { - PrintFileU32Int(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - (UINT32) lenthofRcvB - 21); - } - else - { - /*޲*/ - } - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - /*֡ĿͺID*/ - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - (UINT16)((LocalDevNameInFrame >> 16) & 0xffff)); - /*֡ԴͺID*/ - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - (UINT16)((DestDevNameInFrame >> 16) & 0xffff)); - /*֡*/ - PrintRecArrayByte(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - Rcv[RCV_FRAME_TYPE]); - /*к*/ - PrintRecArray4ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - LocalSN); - /*Էк*/ - PrintRecArray4ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - DestSN); - /*֡*/ - if(QueueReadFlag == 0x55) /*пɶ*/ - { - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - (UINT16) lenthofRcvA - 21); - } - else if(QueueReadFlag == 0xAA) - { - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - (UINT16) lenthofRcvB - 21); - } - else - { - /*޲*/ - } - #endif - - - if(LocalDevNameInFrame == LocalDevName) /*Ŀ豸typeId뱾һ*/ - { - /*òѯ̬ñZCϵATSϵĺж϶ԷͨŶǷϷ;õɫLink_Role;*/ - if(dsuIsLnkLegal(pUnifyInfoForRedun,DestDevNameInFrame,&Link_Role))/*typeϷ && IDϷ*/ - { - if(JudgeCrc(Rcv,pUnifyInfoForRedun))/*CRCжϣȷֱӶ֡*/ - { - if(Link_Role == ROLE_SPON)/*ɫΪ*/ - { - if(Rcv[RCV_FRAME_TYPE] == FRAME_RFC)/*յRFC֡,*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_ROLE_CONFLICT|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_ROLE_CONFLICT|ERROR_NULL); - #endif - }/*if(Rcv[RCV_FRAME_TYPE] == FRAME_RFC)*/ - else if(Rcv[RCV_FRAME_TYPE] == FRAME_ACK)/*յACK֡,һ*/ - { - /*òѯͨŹSearchLnkظڱеָ룻*/ - CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame,pUnifyInfoForRedun);/*·вѯ޸·*/ - if(CurIndex_Lnk_Mngr != NULL)/*ڸ·*/ - { - /*·֡ΪACKкͬ*/ - /*·WaitConյı͹ȥSN·ϲܶӦ!!!!!!!*/ - if(CurIndex_Lnk_Mngr->Lnk_Info.AckSN != DestSN ) - { - /*òҽڵ㺯ڵǷڸ豸typeID*/ - p_temp = SearchGroupNode(DestDevNameInFrame, pUnifyInfoForRedun); - if(p_temp != NULL)/*ڸtypeIDڵ*/ - { - /*ɾнڵ㺯TYPEIDµSNڵȫɾ*/ - DelGroupNode(p_temp,pUnifyInfoForRedun); - /*òڵ㺯ACK֡²뵽ڵ㻺*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - - #endif - - - } - else - { - /*޲*/ - } - } - else/*ڸtypeIDڵ*/ - { - /*òڵ㺯ACK֡²뵽ڵ㻺*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - - #endif - - } - else - { - /*޲*/ - } - } - }/*·״̬ΪWCONACKҸ֡ıк·еһ*/ - else - { - /*޲*/ - } - }/*if(CurIndex_Lnk_Mngr != NULL)*/ - else - { - /*޲*/ - } - - }/*if(Rcv[RCV_FRAME_TYPE] == FRAME_ACK)*/ - else if((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE))/*֡ΪIdle̬data̬*/ - { - /*SearchLnkѯͨŹظڱе±ꣻ*/ - CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame,pUnifyInfoForRedun);/*·вѯ޸·*/ - if(CurIndex_Lnk_Mngr != NULL)/*ڸ·*/ - { - if(CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA) - { - if(JudgeSN(CurIndex_Lnk_Mngr,LocalSN,DestSN, pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize))/*жкźϷԺJudgeSNظ֡кǷϷ*/ - { - /*òڵ㺯ýڵ*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - #endif - - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - - #endif - - } - else - { - /*޲*/ - } - }/*if(JudgeSN(CurIndex_Lnk_Mngr,LocalSN,DestSN))*/ - else/*кŲϷ*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|SN_ILLEGAL|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|SN_ILLEGAL|ERROR_NULL); - - #endif - - } - }/*if(CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA)*/ - else/*·Ϊ״̬*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_STATUS_CONFLICT|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_STATUS_CONFLICT|ERROR_NULL); - - #endif - - } - }/*if(CurIndex_Lnk_Mngr != NULL)*/ - else - { - /*޲*/ - } - }/*if((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE))*/ - else - { - /*޲*/ - } - }/*if(Link_Role == ROLE_SPON)*/ - else if(Link_Role == ROLE_FLW) - { - if(Rcv[RCV_FRAME_TYPE] == FRAME_ACK)/*淽յACK֡,*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_ROLE_CONFLICT|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_ROLE_CONFLICT|ERROR_NULL); - #endif - } - else if(Rcv[RCV_FRAME_TYPE] == FRAME_RFC)/*淽յRFC֡,һ*/ - { - /*òѯͨŹSearchLnkظڱе±ꣻ*/ - CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame,pUnifyInfoForRedun);/*·вѯ޸·*/ - if(CurIndex_Lnk_Mngr != NULL)/*ͨŹдڸ·*/ - { - if(CurIndex_Lnk_Mngr->Lnk_Info.RfcSN == DestSN) - /*·֡ΪRFCкͬ*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|RE_RECV_RFC|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|RE_RECV_RFC|ERROR_NULL); - #endif - }/*if((CurIndex_Lnk_Mngr->Lnk_Info.lastframe == FRAME_RFC)&&(CurIndex_Lnk_Mngr->Lnk_Info.lDestSN == DestSN))*/ - else/*·֡ͲΪRFCкŲͬ*/ - { - /*òҽڵ㺯ڵǷڸ豸typeID*/ - p_temp = SearchGroupNode(DestDevNameInFrame, pUnifyInfoForRedun); - if(p_temp != NULL)/*ڸtypeIDڵ*/ - { - /*ɾнڵ㺯TYPEIDµSNڵȫɾ*/ - DelGroupNode(p_temp,pUnifyInfoForRedun); - /*òڵ㺯ACK֡²뵽ڵ㻺*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - - #endif - - } - else - { - /*޲*/ - } - }/*end if(p_temp ! = NULL)*/ - else/*ڸtypeIDڵ*/ - { - /*òڵ㺯RFC֡²뵽ڵ㻺*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - #endif - - } - else - { - /*޲*/ - } - } - }/*·֡ͲΪRFCкŲͬ*/ - }/*if(CurIndex_Lnk_Mngr != NULL)*/ - else/*ͨŹдڸ·*/ - { - /*òҽڵ㺯ڵǷڸ豸typeID*/ - p_temp = SearchGroupNode(DestDevNameInFrame, pUnifyInfoForRedun); - if(p_temp != NULL)/*ڸtypeIDڵ*/ - { - /*ɾнڵ㺯TYPEIDµSNڵȫɾ*/ - DelGroupNode(p_temp,pUnifyInfoForRedun); - /*òڵ㺯ACK֡²뵽ڵ㻺*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - - #endif - } - else - { - /*޲*/ - } - }/*end if(p_temp != NULL)*/ - else/*ڸtypeIDڵ*/ - { - /*òڵ㺯RFC֡²뵽ڵ㻺*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - #endif - } - else - { - /*޲*/ - } - } - }/*ͨŹвڸ·*/ - }/*else if(Rcv[RCV_FRAME_TYPE] == FRAME_RFC)*/ - else if((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE))/*֡ΪIdle̬data̬*/ - { - /*òѯͨŹSearchLnkظڱе±ꣻ*/ - CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame,pUnifyInfoForRedun);/*·вѯ޸·*/ - if(CurIndex_Lnk_Mngr != NULL)/*ͨŹдڸ·*/ - { - if((CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA) || (CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_HALT)) - { - if(JudgeSN(CurIndex_Lnk_Mngr,LocalSN,DestSN, pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize))/*жкźϷԺJudgeSNظ֡кǷϷ*/ - { - /*òڵ㺯ýڵ*/ - InsertNode(DestDevNameInFrame,&Rcv[RCV_SRC_SN],Rcv,pUnifyInfoForRedun); - if(pUnifyInfoForRedun->InputBufferHead == NULL) - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - #endif - - } - else - { - /*޲*/ - } - }/*if(JudgeSN(CurIndex_Lnk_Mngr,LocalSN,DestSN))*/ - else/*кŲϷ*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|SN_ILLEGAL|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|SN_ILLEGAL|ERROR_NULL); - #endif - } - }/*if((CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA) || (CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_HALT))*/ - else/*·״̬Ϊ*/ - { - - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_STATUS_CONFLICT|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|FRAMETYPE_STATUS_CONFLICT|ERROR_NULL); - #endif - - } - }/*if(CurIndex_Lnk_Mngr != NULL)*/ - else - { - /*޲*/ - } - }/*if((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE))*/ - else - { - /*޲*/ - } - }/*else if(Link_Role == ROLE_FLW)*/ - else - { - /*޲*/ - } - }/*if(JudgeCrc())*/ - else /*CRCжϲȷ,*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|CRC_ERR|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|CRC_ERR|ERROR_NULL); - #endif - } - }/*if(IsLnkLegal(Rcv[RCV_AIM_TYPE],Local_id,Rcv[RCV_SRC_TYPE],Dest_id,&Link_Role))*/ - else/*ԷͨŶ󲻺Ϸ*/ - { - - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|OBJ_ILLEAGL|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|OBJ_ILLEAGL|ERROR_NULL); - #endif - } - }/*if(LocalDevNameInFrame == LocalDevName)*/ - else /*Ŀ豸typeId뱾زһ£*/ - { - - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|DESTNAME_ERR|ERROR_NULL); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|DESTNAME_ERR|ERROR_NULL); - #endif - } - }/*if( QueueRead((lenthofRcv + 2),Rcv,&innet_to_outnet_Queue) != 0)*/ - else/*֡*/ - { - /*¼¼*/ - #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - #endif - #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - WARN|REDUN|ERROR_NULL|QUEUE_READ); - #endif - break;/*˳ѭ*/ - }/*if(QueueScan(2,len,&innet_to_outnet_Queue) != 0)*/ + deepPro = 1u; /*-< ô־Ϊ*/ } else - { - ToBeContinue = 0; + { + ToBeContinue = 0; /*-< ǷΪ*/ } - + }/*нڵ*/ else { /*¼¼*/ #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|INPUT_LNK_POP); + /*- ¼ݳȷǷ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); #endif - break; + break; } } else { /*¼¼*/ #ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"E:"); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|TIMEOUT); - PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize,"\n"); - + ERR | REDUN | ERROR_NULL | TIMEOUT); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray,pUnifyInfoForRedun->RecordArraySize, - ERR|REDUN|ERROR_NULL|TIMEOUT); + /*- ¼ʱ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | TIMEOUT); #endif break; } - } - - ret = 1; - return ret; + if (1u == deepPro) /*-< ־ǷΪ*/ + { + if (QueueAvailable == 0xFF) /*-< Ƿжɶ*/ + { + if (QueueReadFlag == 0x55) /*-< ǷϴζĶǺ*/ + { + /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ + RcvQueueReadLenth = QueueRead(2, Rcv, &pUnifyInfoForRedun->OutnetQueueB); /*-< 2ֽ*/ + if (RcvQueueReadLenth != 1) /*-< Ƿʧ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ʧ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); +#endif + break;/*˳ѭ*/ + } + /*- ,,־*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvB + 2), Rcv, &pUnifyInfoForRedun->OutnetQueueB); + DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); + SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 1); + QueueReadFlag = 0xAA;/*ζ*/ + /*¼¼*/ +#ifdef PRTCL_RECORD_DATA_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "BNet:"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼һ֡ϢʼʶϢԴ־*/ + PrintRecArrayByte(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + 0x40 | 0x0A); +#endif + } + else + { + /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ + RcvQueueReadLenth = QueueRead(2, Rcv, &pUnifyInfoForRedun->OutnetQueueA); /*-< 2ֽ*/ + if (RcvQueueReadLenth != 1) /*-< Ƿʧ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ʧ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); +#endif + break;/*Ƴѭ*/ + } + /*- ,,־*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvA + 2), Rcv, &pUnifyInfoForRedun->OutnetQueueA); + DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); + SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 0); + QueueReadFlag = 0x55; + /*¼¼*/ +#ifdef PRTCL_RECORD_DATA_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "RNet:"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼һ֡ϢʼʶϢԴ־*/ + PrintRecArrayByte(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + 0x40 | 0x05); +#endif + } + } + else if (QueueAvailable == 0x0F) /*-< Ƿпɶ*/ + { + /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ + RcvQueueReadLenth = QueueRead(2, Rcv, &pUnifyInfoForRedun->OutnetQueueA); /*-< 2ֽ*/ + if (RcvQueueReadLenth != 1) /*-< Ƿʧ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ʧ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); +#endif + break;/*˳ѭ*/ + } + /*- ,,־*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvA + 2), Rcv, &pUnifyInfoForRedun->OutnetQueueA); + DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); + SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 0); + QueueReadFlag = 0x55;/*ζǺ*/ + /*¼¼*/ +#ifdef PRTCL_RECORD_DATA_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "RNet:"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼һ֡ϢʼʶϢԴ־*/ + PrintRecArrayByte(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + 0x40 | 0x05); +#endif + } + else if (QueueAvailable == 0xF0) /*-< Ƿпɶ*/ + { + /*Ϊ֡ͷֽڣΪԴ򲻱䣬ȶֽڣ*/ + RcvQueueReadLenth = QueueRead(2, Rcv, &pUnifyInfoForRedun->OutnetQueueB); /*-< 2ֽ*/ + if (RcvQueueReadLenth != 1) /*-< Ƿʧ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ʧ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); +#endif + break;/*˳ѭ*/ + } + /*- ,,־*/ + RVQueueRead = QueueRead((UINT16)(lenthofRcvB + 2), Rcv, &pUnifyInfoForRedun->OutnetQueueB); + DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); + SetNetsRecvPkgNum(pUnifyInfoForRedun, DestDevNameInFrame, 1); + QueueReadFlag = 0xAA;/*ζ*/ + /*¼¼*/ +#ifdef PRTCL_RECORD_DATA_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "BNet:"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼һ֡ϢʼʶϢԴ־*/ + PrintRecArrayByte(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + 0x40 | 0x0A); +#endif + } + else + { + break; /*˳whileѭ*/ + } + + if (RVQueueRead == 1) /*-< жǷԶ֡*/ + {/*Զ֡*/ + + /*- Է豸ͱ豸ID*/ + LocalDevNameInFrame = LongFromCharLE(&Rcv[RCV_AIM_DN]); + DestDevNameInFrame = LongFromCharLE(&Rcv[RCV_SRC_DN]); + /*ԼԷSN*/ + for (i = 0; i < 4; i++) /*-< СǷС4*/ + { + Dest_SN[i] = Rcv[RCV_SRC_SN + i]; /*-< öԷ*/ + Local_SN[i] = Rcv[RCV_AIM_SN + i]; /*-< ñ*/ + } + DestSN = LongFromChar(Dest_SN); /*-< õԷ*/ + LocalSN = LongFromChar(Local_SN); /*-< õ*/ + /*¼¼*/ +#ifdef PRTCL_RECORD_DATA_ASC + /*- ¼ַ־*/ + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "AName:"); + PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + LocalDevNameInFrame); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "SName:"); + PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + DestDevNameInFrame); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "MType:"); + PrintFileHex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + &Rcv[RCV_FRAME_TYPE], 1); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "LSN:"); + PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + LocalSN); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "DSN:"); + PrintFileU32Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + DestSN); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "Len:"); + if (QueueReadFlag == 0x55) /*-< Ƿпɶ*/ + { + /*- ¼֡־*/ + PrintFileU32Int(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + (UINT32)lenthofRcvA - 21); + } + else if (QueueReadFlag == 0xAA) /*-< Ƿпɶ*/ + { + /*- ¼֡־*/ + PrintFileU32Int(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + (UINT32)lenthofRcvB - 21); + } + else + { + /*޲*/ + } + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼֡ĿͺID־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + (UINT16)((LocalDevNameInFrame >> 16) & 0xffff)); + /*- ¼֡ԴͺID־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + (UINT16)((DestDevNameInFrame >> 16) & 0xffff)); + /*- ¼֡־*/ + PrintRecArrayByte(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + Rcv[RCV_FRAME_TYPE]); + /*- ¼к־*/ + PrintRecArray4ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + LocalSN); + /*- ¼Էк־*/ + PrintRecArray4ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + DestSN); + /*¼֡־*/ + if (QueueReadFlag == 0x55) /*-< Ƿпɶ*/ + { + /*- ¼֡־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + (UINT16)lenthofRcvA - 21); + } + else if (QueueReadFlag == 0xAA) /*-< Ƿпɶ*/ + { + /*- ¼֡־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + (UINT16)lenthofRcvB - 21); + } + else + { + /*޲*/ + } +#endif + + + if (LocalDevNameInFrame == LocalDevName) /*-< Ŀ豸typeIdǷ뱾һ*/ + { + StSfpRecvData(pUnifyInfoForRedun, Rcv, DestDevNameInFrame, LocalSN, DestSN); /*-< ݴ*/ + }/*if(LocalDevNameInFrame == LocalDevName)*/ + else /*Ŀ豸typeId뱾زһ£*/ + { + + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | DESTNAME_ERR | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼Ŀ豸typeIdǷ뱾һ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | DESTNAME_ERR | ERROR_NULL); +#endif + } + }/*if( QueueRead((lenthofRcv + 2),Rcv,&innet_to_outnet_Queue) != 0)*/ + else/*֡*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼֡־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | ERROR_NULL | QUEUE_READ); +#endif + break;/*˳ѭ*/ + }/*if(QueueScan(2,len,&innet_to_outnet_Queue) != 0)*/ + } + } + + ret = 1; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } @@ -2317,35 +1867,33 @@ static void ClearNetsRecvPkgNum(struc_Unify_Info* sfp) } } -/* -*: øհ -*: struc_Unify_Info* sfp sfp -* const UINT32 dstDevName Ŀ豸 -* const UINT8 netIdx ± -*: -*: -*ֵ: -*/ +/** + * @brief SetNetsRecvPkgNum øհ + * @param sfp sfp ȡֵΧ:οṹstruc_Unify_Info + * @param dstDevName Ŀ豸 ȡֵΧ:0x00000000-0xFFFFFFFF + * @param netIdx ± ȡֵΧ:0:;1: + */ static void SetNetsRecvPkgNum(struc_Unify_Info* sfp, const UINT32 dstDevName, const UINT8 netIdx) { + /*- ֲ*/ UINT16 i = 0u; /*ѭ*/ - if ((NULL != sfp) && (NULL != sfp->NetsRecvPkgNums) && ((0u == netIdx) || (1u == netIdx))) /**/ + if ((NULL != sfp) && (NULL != sfp->NetsRecvPkgNums) && ((0u == netIdx) || (1u == netIdx))) /*-< ǷϷ*/ { - for (i = 0; i < sfp->NetsRecvPkgNumsLen; i++) /**/ + for (i = 0u; i < sfp->NetsRecvPkgNumsLen; i++) /*-< ǰ豸±ǷС豸*/ { - if (dstDevName == sfp->NetsRecvPkgNums[i].DstDevName) /*ҵ*/ + if (dstDevName == sfp->NetsRecvPkgNums[i].DstDevName) /*-< ǰ豸ǷҪҵ*/ { - sfp->NetsRecvPkgNums[i].NetsPkgNum[netIdx]++; - break; + sfp->NetsRecvPkgNums[i].NetsPkgNum[netIdx]++; /*-< õǰ豸Ӧ1*/ + break; /*-< ˳*/ } } - if ((i == sfp->NetsRecvPkgNumsLen) && (sfp->NetsRecvPkgNumsLen < sfp->MaxNumLink)) /*δҵ,һ豸*/ + if ((i == sfp->NetsRecvPkgNumsLen) && (sfp->NetsRecvPkgNumsLen < sfp->MaxNumLink)) /*-< Ƿδҵ*/ { - sfp->NetsRecvPkgNums[sfp->NetsRecvPkgNumsLen].DstDevName = dstDevName; - CommonMemSet(&sfp->NetsRecvPkgNums[sfp->NetsRecvPkgNumsLen].NetsPkgNum, 2, 0, 2); - sfp->NetsRecvPkgNums[sfp->NetsRecvPkgNumsLen].NetsPkgNum[netIdx] = 1; - sfp->NetsRecvPkgNumsLen++; + sfp->NetsRecvPkgNums[sfp->NetsRecvPkgNumsLen].DstDevName = dstDevName; /*-< Ŀ豸*/ + CommonMemSet(&sfp->NetsRecvPkgNums[sfp->NetsRecvPkgNumsLen].NetsPkgNum, 2u * sizeof(UINT16), 0u, 2u * sizeof(UINT16)); /*-< 㵱ǰ豸*/ + sfp->NetsRecvPkgNums[sfp->NetsRecvPkgNumsLen].NetsPkgNum[netIdx] = 1u; /*-< õǰ豸ӦΪ1*/ + sfp->NetsRecvPkgNumsLen++; /*-< 豸1*/ } } } @@ -2381,3 +1929,514 @@ void ProtclGetNetsRecvPkgNum(struc_Unify_Info* sfp, const UINT8 dstType, const U } } } + +/** + * @brief StSfpRecvData ݴ + * @param pUnifyInfoForRedun sfp ȡֵΧ:οṹstruc_Unify_Info + * @param Rcv ȡֵΧ:ֽ + * @param DestDevNameInFrame Ŀ豸 ȡֵΧ:0x00000000-0xFFFFFFFF + * @param LocalSN ȡֵΧ:0x00000000-0xFFFFFFFF + * @param DestSN Է ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void StSfpRecvData(struc_Unify_Info* pUnifyInfoForRedun, UINT8* Rcv, UINT32 DestDevNameInFrame, UINT32 LocalSN, UINT32 DestSN) +{ + /*- ֲ*/ + UINT8 Link_Role = 0; /*·ɫ*/ + + /*òѯ̬ñZCϵATSϵĺж϶ԷͨŶǷϷ;õɫLink_Role;*/ + if (dsuIsLnkLegal(pUnifyInfoForRedun, DestDevNameInFrame, &Link_Role)) /*-< õõɫ*/ + { + if (JudgeCrc(Rcv, pUnifyInfoForRedun)) /*-< CRCжϣȷֱӶ֡*/ + { + if (Link_Role == ROLE_SPON) /*-< ɫΪ*/ + { + StSfpSponRecvData(pUnifyInfoForRedun, Rcv, DestDevNameInFrame, LocalSN, DestSN); /*-< ñΪݴ*/ + } + else if (Link_Role == ROLE_FLW) /*-< ɫΪ淽*/ + { + StSfpFlwRecvData(pUnifyInfoForRedun, Rcv, DestDevNameInFrame, LocalSN, DestSN); /*-< ñΪ淽ݴ*/ + }/*else if(Link_Role == ROLE_FLW)*/ + else + { + /*޲*/ + } + }/*if(JudgeCrc())*/ + else /*CRCжϲȷ,*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | CRC_ERR | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼CRCʧ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | CRC_ERR | ERROR_NULL); +#endif + } + }/*if(IsLnkLegal(Rcv[RCV_AIM_TYPE],Local_id,Rcv[RCV_SRC_TYPE],Dest_id,&Link_Role))*/ + else/*ԷͨŶ󲻺Ϸ*/ + { + + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | OBJ_ILLEAGL | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼úʧ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | OBJ_ILLEAGL | ERROR_NULL); +#endif + } +} + +/** + * @brief StSfpSponRecvData Ϊݴ + * @param pUnifyInfoForRedun sfp ȡֵΧ:οṹstruc_Unify_Info + * @param Rcv ȡֵΧ:ֽ + * @param DestDevNameInFrame Ŀ豸 ȡֵΧ:0x00000000-0xFFFFFFFF + * @param LocalSN ȡֵΧ:0x00000000-0xFFFFFFFF + * @param DestSN Է ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void StSfpSponRecvData(struc_Unify_Info* pUnifyInfoForRedun, UINT8* Rcv, UINT32 DestDevNameInFrame, UINT32 LocalSN, UINT32 DestSN) +{ + /*- ֲ*/ + struc_InputBuffer* p_temp = NULL; /*ָһάʱָ*/ + struc_Lnk_Mngr* CurIndex_Lnk_Mngr = NULL; /*ǰ·еָ*/ + + if (Rcv[RCV_FRAME_TYPE] == FRAME_RFC) /*-< ֡Ƿ֡*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_ROLE_CONFLICT | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif + +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼֡ʹ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_ROLE_CONFLICT | ERROR_NULL); +#endif + }/*if(Rcv[RCV_FRAME_TYPE] == FRAME_RFC)*/ + else if (Rcv[RCV_FRAME_TYPE] == FRAME_ACK) /*-< ֡ǷӦ֡*/ + { + /*òѯͨŹSearchLnkظڱеָ룻*/ + CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame, pUnifyInfoForRedun); /*-< ú·вѯ޸·*/ + if (CurIndex_Lnk_Mngr != NULL) /*-< ڸ·*/ + { + /*·֡ΪACKкͬ*/ + /*·WaitConյı͹ȥSN·ϲܶӦ!!!!!!!*/ + if (CurIndex_Lnk_Mngr->Lnk_Info.AckSN != DestSN) /*-< Ƿͬ*/ + { + /*òҽڵ㺯ڵǷڸ豸typeID*/ + p_temp = SearchGroupNode(DestDevNameInFrame, pUnifyInfoForRedun); /*-< úҽڵ*/ + if (p_temp != NULL) /*-< ڸtypeIDڵ*/ + { + /*- ɾнڵ㺯TYPEIDµSNڵȫɾ*/ + DelGroupNode(p_temp, pUnifyInfoForRedun); + /*- òڵ㺯ACK֡²뵽ڵ㻺*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif + +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + +#endif + + + } + else + { + /*޲*/ + } + } + else/*ڸtypeIDڵ*/ + { + /*- òڵ㺯ACK֡²뵽ڵ㻺*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + +#endif + + } + else + { + /*޲*/ + } + } + }/*·״̬ΪWCONACKҸ֡ıк·еһ*/ + else + { + /*޲*/ + } + }/*if(CurIndex_Lnk_Mngr != NULL)*/ + else + { + /*޲*/ + } + + }/*if(Rcv[RCV_FRAME_TYPE] == FRAME_ACK)*/ + else if ((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE)) /*-< ֡Ƿ֡֡*/ + { + /*SearchLnkѯͨŹظڱе±ꣻ*/ + CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame, pUnifyInfoForRedun); /*-< ú·вѯ޸·*/ + if (CurIndex_Lnk_Mngr != NULL) /*-< ڸ·*/ + { + if (CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA) /*-< ·״̬Ƿ*/ + { + if (JudgeSN(CurIndex_Lnk_Mngr, LocalSN, DestSN, pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize)) /*-< жкźϷԺJudgeSN,ظ֡кǷϷ*/ + { + /*- òڵ㺯ýڵ*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + +#endif + +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + +#endif + + } + else + { + /*޲*/ + } + }/*if(JudgeSN(CurIndex_Lnk_Mngr,LocalSN,DestSN))*/ + else/*кŲϷ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | SN_ILLEGAL | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼кŲϷ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | SN_ILLEGAL | ERROR_NULL); + +#endif + + } + }/*if(CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA)*/ + else/*·Ϊ״̬*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_STATUS_CONFLICT | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼·״̬־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_STATUS_CONFLICT | ERROR_NULL); + +#endif + + } + }/*if(CurIndex_Lnk_Mngr != NULL)*/ + else + { + /*޲*/ + } + }/*if((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE))*/ + else + { + /*޲*/ + } +} + +/** + * @brief StSfpFlwRecvData Ϊ淽ݴ + * @param pUnifyInfoForRedun sfp ȡֵΧ:οṹstruc_Unify_Info + * @param Rcv ȡֵΧ:ֽ + * @param DestDevNameInFrame Ŀ豸 ȡֵΧ:0x00000000-0xFFFFFFFF + * @param LocalSN ȡֵΧ:0x00000000-0xFFFFFFFF + * @param DestSN Է ȡֵΧ:0x00000000-0xFFFFFFFF + */ +static void StSfpFlwRecvData(struc_Unify_Info* pUnifyInfoForRedun, UINT8* Rcv, UINT32 DestDevNameInFrame, UINT32 LocalSN, UINT32 DestSN) +{ + /*- ֲ*/ + struc_InputBuffer* p_temp = NULL; /*ָһάʱָ*/ + struc_Lnk_Mngr* CurIndex_Lnk_Mngr = NULL; /*ǰ·еָ*/ + + if (Rcv[RCV_FRAME_TYPE] == FRAME_ACK) /*-< ֡ǷӦ֡*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_ROLE_CONFLICT | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼֡ʹ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_ROLE_CONFLICT | ERROR_NULL); +#endif + } + else if (Rcv[RCV_FRAME_TYPE] == FRAME_RFC) /*-< ֡Ƿ֡*/ + { + /*òѯͨŹSearchLnkظڱе±ꣻ*/ + CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame, pUnifyInfoForRedun); /*-< ú·вѯ޸·*/ + if (CurIndex_Lnk_Mngr != NULL) /*-< ͨŹдڸ·*/ + { + if (CurIndex_Lnk_Mngr->Lnk_Info.RfcSN == DestSN) /*-< Ƿͬ*/ + /*·֡ΪRFCкͬ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | RE_RECV_RFC | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ͬ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | RE_RECV_RFC | ERROR_NULL); +#endif + }/*if((CurIndex_Lnk_Mngr->Lnk_Info.lastframe == FRAME_RFC)&&(CurIndex_Lnk_Mngr->Lnk_Info.lDestSN == DestSN))*/ + else/*·֡ͲΪRFCкŲͬ*/ + { + /*òҽڵ㺯ڵǷڸ豸typeID*/ + p_temp = SearchGroupNode(DestDevNameInFrame, pUnifyInfoForRedun); /*-< úҽڵ*/ + if (p_temp != NULL) /*-< ڸtypeIDڵ*/ + { + /*- ɾнڵ㺯TYPEIDµSNڵȫɾ*/ + DelGroupNode(p_temp, pUnifyInfoForRedun); + /*- òڵ㺯ACK֡²뵽ڵ㻺*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + +#endif + + } + else + { + /*޲*/ + } + }/*end if(p_temp ! = NULL)*/ + else/*ڸtypeIDڵ*/ + { + /*- òڵ㺯RFC֡²뵽ڵ㻺*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*-< ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); +#endif + + } + else + { + /*޲*/ + } + } + }/*·֡ͲΪRFCкŲͬ*/ + }/*if(CurIndex_Lnk_Mngr != NULL)*/ + else/*ͨŹдڸ·*/ + { + /*- òҽڵ㺯ڵǷڸ豸typeID*/ + p_temp = SearchGroupNode(DestDevNameInFrame, pUnifyInfoForRedun); + if (p_temp != NULL)/*- ڸtypeIDڵ*/ + { + /*- ɾнڵ㺯TYPEIDµSNڵȫɾ*/ + DelGroupNode(p_temp, pUnifyInfoForRedun); + /*- òڵ㺯ACK֡²뵽ڵ㻺*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + +#endif + } + else + { + /*޲*/ + } + }/*end if(p_temp != NULL)*/ + else/*ڸtypeIDڵ*/ + { + /*- òڵ㺯RFC֡²뵽ڵ㻺*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); +#endif + } + else + { + /*޲*/ + } + } + }/*ͨŹвڸ·*/ + }/*else if(Rcv[RCV_FRAME_TYPE] == FRAME_RFC)*/ + else if ((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE)) /*-< ֡Ƿ֡֡*/ + { + /*- òѯͨŹSearchLnkظڱе±ꣻ*/ + CurIndex_Lnk_Mngr = SearchLnk(DestDevNameInFrame, pUnifyInfoForRedun); /*-< ú·вѯ޸·*/ + if (CurIndex_Lnk_Mngr != NULL) /*-< ͨŹдڸ·*/ + { + if ((CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA) || (CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_HALT)) /*-< ·״̬Ƿ״̬ж״̬*/ + { + if (JudgeSN(CurIndex_Lnk_Mngr, LocalSN, DestSN, pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize)) /*-< жкźϷԺJudgeSN,ظ֡кǷϷ*/ + { + /*- òڵ㺯ýڵ*/ + InsertNode(DestDevNameInFrame, &Rcv[RCV_SRC_SN], Rcv, pUnifyInfoForRedun); + if (pUnifyInfoForRedun->InputBufferHead == NULL) /*-< ͷڵǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ͷڵΪ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + ERR | REDUN | ERROR_NULL | INPUT_LNK_POP); +#endif + + } + else + { + /*޲*/ + } + }/*if(JudgeSN(CurIndex_Lnk_Mngr,LocalSN,DestSN))*/ + else/*кŲϷ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | SN_ILLEGAL | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼УŷǷ־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | SN_ILLEGAL | ERROR_NULL); +#endif + } + }/*if((CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_DATA) || (CurIndex_Lnk_Mngr->Lnk_Info.chStatus == STATUS_HALT))*/ + else/*·״̬Ϊ*/ + { + + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_STATUS_CONFLICT | ERROR_NULL); + PrintFiles(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼·״̬־*/ + PrintRecArray2ByteB(pUnifyInfoForRedun->RecordArray, pUnifyInfoForRedun->RecordArraySize, + WARN | REDUN | FRAMETYPE_STATUS_CONFLICT | ERROR_NULL); +#endif + + } + }/*if(CurIndex_Lnk_Mngr != NULL)*/ + else + { + /*޲*/ + } + }/*if((Rcv[RCV_FRAME_TYPE] == FRAME_DATA) || (Rcv[RCV_FRAME_TYPE] == FRAME_IDLE))*/ + else + { + /*޲*/ + } +} \ No newline at end of file diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.h b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.h index 5cb1ca7..4f6fcf4 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.h +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtclReceive.h @@ -56,21 +56,6 @@ static UINT8 Redundancy(struc_Unify_Info *pUnifyInfo); *******************************************************************************************/ UINT8 RedundancyInitial(struc_Unify_Info *pUnifyInfo); -/* -*: RedundancyReceive -*: ݣദ -* 1Ӷжÿһ֡ -* 2жϱԷ߼ַǷϷ -* 3жCRCǷȷ -* 4жϱ͡ -* 5յRFC֡·ڣ·жϸRFCǷϷڣһά -* 6յACK֡ͨ·жϸACKǷϷϷͨһάжǷ֡ -* 7յDATA֡ͨ·жϸDATAǷϷϷͨһάжǷ֡ -*: struc_Unify_Info *pUnifyInfoForRedun SFPṹ -*: -*: -*ֵ: 1:ɹ;0ʧ -*/ static UINT16 RedundancyReceive(struc_Unify_Info *pUnifyInfoForRedun); /* diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtcl_Output.c b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtcl_Output.c index 6108d3d..0a2ea65 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtcl_Output.c +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpPrtcl_Output.c @@ -32,6 +32,9 @@ #include "dsuRelatedDeal.h" #include "CommonMemory.h" +static UINT8 StSfpOutProData(struc_Unify_Info* pUnifyInfoForOutput, struc_OutputDataBuff** pCurDataBuffItem, struc_OutputDataBuff* pLastDataBuffItem, struc_Lnk_Mngr** pCurProc_Lnk, UINT32* nNumsPrtclSnd); +static UINT8 StSfpOutProDataLink(struc_Unify_Info* pUnifyInfoForOutput, struc_OutputDataBuff* pCurDataBuffItem, struc_Lnk_Mngr* pCurProc_Lnk, UINT32* nNumsPrtclSnd); + /* *: Insert_OutputDataBuff *: ڵ֮һڵ,ӶջƳһԪ洢 @@ -1156,31 +1159,20 @@ static INT8 FillLnkMngr_into_PrtclSnd(struc_Lnk_Mngr *CurLnk, UINT32 *nNumsPrtcl return ret; } - -/****************************************************************************************** -* : ЭԪ,ЭĹ,Ӧô֡, - ΪݱȽϵԪ׼ñ,ͬʱά· -* : -* : struc_Unify_Info* pUnifyInfo Эͳһṹָ -* : -* ȫֱ : UINT32 nNumsPrtclSnd Эݵĸ(ֽΪλ) - struc_Lnk_Mngr *pCurProc_Lnk ·еǰĵ·ָ,ָ룬ʵ* - UINT8 chCurProcItemSrc ǰҪԪصԴ ITEMSRC_BOTH (ݶк·) 0x17;ITEMSRC_DATAQUEUE (ݶ) 0x33;ITEMSRC_LNKMNGR(·) 0x55 - struc_OutputDataBuff *pLastDataBuffItem ʾǰݴ洢Ԫָ - struc_OutputDataBuff *pCurDataBuffItem ʾһδݴ洢Ԫָ - struc_Unify_Info *pUnifyInfoForOutput ƽ̨ṹָ -* ֵ : ȷ1󷵻0 -*******************************************************************************************/ +/** + * @brief ProtclOutput ЭԪ,ЭĹ,Ӧô֡ + * @param pUnifyInfo sfp ȡֵΧ:οṹstruc_Unify_Info + * @return 0:ʧ 1:ɹ + */ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ { + /*- ֲ*/ UINT8 blNeedToInit; UINT8 temp_char[4]; struc_Lnk_Mngr *CurFillLnk;/*嵱ǰָ;*/ - UINT8 Role; /*UINT8 index;*/ INT8 ResultofGet;/*GetNextItem2ProcĴ*/ INT32 i; - UINT16 DSUNumNodes; /*ݿнڵ*/ /*struc_LnkBasicInfo BasicInfoForLocal;*/ /* peipei.wang20111011 mod S */ @@ -1190,38 +1182,38 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ /* peipei.wang20111011 mod E */ UINT32 LocalDevName; - UINT8 ret = 0; + UINT8 ret = 0; /*-< úֵΪ0*/ UINT8 chCurProcItemSrc = 0; /*ǰҪԪصԴ ITEMSRC_BOTH (ݶк·) 0x17;ITEMSRC_DATAQUEUE (ݶ) 0x33;ITEMSRC_LNKMNGR(·) 0x55*/ struc_Lnk_Mngr *pCurProc_Lnk = NULL; /*·еǰĵ·ָ,ָ룬ʵ*/ struc_OutputDataBuff *pLastDataBuffItem = NULL; /*ʾһδݴ洢Ԫָ*/ struc_OutputDataBuff *pCurDataBuffItem = NULL; /*ʾǰݴ洢Ԫָ*/ UINT32 nNumsPrtclSnd = 0; /*Эݵĸ(ֽΪλ)*/ struc_Unify_Info *pUnifyInfoForOutput = pUnifyInfo; /*SFPṹ*/ + UINT8 funRtn = 0u; - if(pUnifyInfo == NULL) + if(pUnifyInfo == NULL) /*-< Ƿǿ*/ { - return ret; + return ret; /*-< غֵ*/ } else {} #ifdef SWAP_CRC - ShortToChar(0u, &pUnifyInfoForOutput->SwapCrcs[0]); /**/ + ShortToChar(0u, &pUnifyInfoForOutput->SwapCrcs[0]); /*-< սCRCֵ*/ #endif - blNeedToInit = 1;/*Ҫʼ*/ + blNeedToInit = 1;/*-< Ҫʼ*/ /*豸ֵ*/ - LocalDevName = TypeIdToName(pUnifyInfoForOutput->LocalType,pUnifyInfoForOutput->LocalID); - nNumsPrtclSnd = 8;/*Э֡ȳʼ,ӵλʼд*/ + LocalDevName = TypeIdToName(pUnifyInfoForOutput->LocalType,pUnifyInfoForOutput->LocalID); /*-< øIDõ豸*/ + nNumsPrtclSnd = 8; /*-< Э֡ȳΪ8*/ /* peipei.wang20111011 mod S */ /*ɾģԳʱʱ䣬׷ӻȡʼʱ*/ /*AbsTimeoutForOutput = GetTick(pUnifyInfoForOutput) + pUnifyInfoForOutput->OutputTimeout;*/ /*ȡʼʱ*/ - startTimeoutForOutput = GetTick(pUnifyInfoForOutput); + startTimeoutForOutput = GetTick(pUnifyInfoForOutput); /*-< õʼʱ*/ /* peipei.wang20111011 mod E */ - - DSUNumNodes = dsuGetObjNum(pUnifyInfoForOutput); /*ݿнڵ*/ + #ifdef PRTCL_RECORD_ERR_ASC /*ǰTick࿪ʼ*/ PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"Output: "); @@ -1239,6 +1231,7 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"\n"); #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ID־*/ PrintRecArrayByte(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,0x03); PrintRecArrayByte(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, pUnifyInfoForOutput->LocalType); @@ -1247,315 +1240,82 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ #endif - - /*鳤Ⱥ鳤0*/ - for(i = 0;i < 8; i++) + + for(i = 0;i < 8; i++) /*-< ±ǷС8*/ { - pUnifyInfoForOutput->PrtclSndBuff[i] = 0; + pUnifyInfoForOutput->PrtclSndBuff[i] = 0; /*-< 鳤Ⱥ鳤0*/ } /*ݴݶжȡ䵽ݻȥ*/ - if( Queue2Buff(pUnifyInfoForOutput) == -1)/*ʧܣش*/ + if( Queue2Buff(pUnifyInfoForOutput) == -1) /*-< Ƿʧ*/ { - ret = 1; - return ret; + ret = 1; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } else { /*ɹ*/ } - ResultofGet = GetNextItem2Proc(blNeedToInit, &chCurProcItemSrc, &pCurProc_Lnk, &pLastDataBuffItem, &pCurDataBuffItem, pUnifyInfoForOutput); - if(ResultofGet < 0)/**/ + ResultofGet = GetNextItem2Proc(blNeedToInit, &chCurProcItemSrc, &pCurProc_Lnk, &pLastDataBuffItem, &pCurDataBuffItem, pUnifyInfoForOutput); /*-< ¸Ԫغ*/ + if(ResultofGet < 0) /*-< úǷʧ*/ { - ret = 1; - return ret; + ret = 1; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } else { /*õһȷ*/ } - while(1)/*ǰĴԪزΪ,˵Ҫ,˵*/ + while(1) /*-< *//*ǰĴԪزΪ,˵Ҫ,˵*/ { /* peipei.wang20111011 mod S */ /*ɾʱжϣ׷Ϊǰʱ - ʼʱģִʱ޵ж*/ /*if(GetTick(pUnifyInfoForOutput) < AbsTimeoutForOutput)*/ - if(IsTimeOut(GetTick(pUnifyInfoForOutput),startTimeoutForOutput,pUnifyInfoForOutput->OutputTimeout) == 0) + if(IsTimeOut(GetTick(pUnifyInfoForOutput),startTimeoutForOutput,pUnifyInfoForOutput->OutputTimeout) == 0) /*-< жϵǰǷʱ*/ /* peipei.wang20111011 mod E */ { /*ݱnametypeidݿлϢ*/ - if(ResultofGet != 0) + if(ResultofGet != 0) /*-< ǷһԪش*/ { - blNeedToInit = 0;/*Ҫʼü*/ + blNeedToInit = 0;/*-< Ҫʼü*/ /* wangpeipei 20120306 Add S */ /* wangpeipei 20120306 Add E */ - switch(chCurProcItemSrc)/*ݵǰҪͨŶԴз*/ + switch(chCurProcItemSrc)/*-< ݵǰҪͨŶԴз*/ { - case ITEMSRC_DATABUFF:/*ֻݻ֣·޴˶*/ - if(pCurDataBuffItem->DataCycleNum == *pUnifyInfoForOutput->CycleNum)/*µ,˵Ҫ뽨*/ + case ITEMSRC_DATABUFF: /*-< Ƿ*//*ֻݻ֣·޴˶*/ + /**/ + funRtn = StSfpOutProData(pUnifyInfoForOutput, &pCurDataBuffItem, pLastDataBuffItem, &pCurProc_Lnk, &nNumsPrtclSnd); /*-< ôݺ*/ + if (1u == funRtn) /*-< úǷɹ*/ { - - if(dsuIsLnkLegal(pUnifyInfoForOutput,pCurDataBuffItem->DevName,&Role)) - {/*Ϸ*/ - if(Role == ROLE_SPON)/*Ϊ*/ - { - /*·Ӵ·൱ԭ·֮ǰһ·pCurProc_LnkǵǰҪͨŶӦ·Ľڵ*/ - /*·ڵ㣬أһ֡*/ - pCurProc_Lnk = InsertLnk(pCurDataBuffItem->DevName,pUnifyInfoForOutput); - if(pCurProc_Lnk == NULL) - { - /*¼¼*/ -#ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ERROR_NULL|LNKMANAGE_POP); - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"\n"); - -#endif -#ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ERROR_NULL|LNKMANAGE_POP); - -#endif - - } - else - { - /*·״̬ΪwConAck¼кţ*/ - pCurProc_Lnk->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; - pCurProc_Lnk->Lnk_Info.chStatus = STATUS_WCONACK; - /*¼RFCʼк*/ - pCurProc_Lnk->Lnk_Info.RfcSN = pUnifyInfoForOutput->RadamSN; - BuildFrame(FRAME_RFC, pCurDataBuffItem, pCurProc_Lnk, &nNumsPrtclSnd, pUnifyInfoForOutput);/*֯RFC֡*/ - /*ԭǰҪ·ʹĽͬɾһ,ԱGetNextItem2Procͳһ*/ - pCurProc_Lnk = pCurProc_Lnk->NextNode; - } - } - else - {} - }/*Ϸκβ*/ - else - { - /*¼¼*/ -#ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"W:"); - PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - WARN|OUTPUT|OBJ_ILLEAGL|ERROR_NULL); - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"\n"); -#endif -#ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray,pUnifyInfoForOutput->RecordArraySize, - WARN|OUTPUT|OBJ_ILLEAGL|ERROR_NULL); -#endif - - } + ret = 1u; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } - else/*,ɾڵ*/ - { - /*ɾڵݻԶ˽ڵǰڵ*/ - pCurDataBuffItem = Delete_OutputDataBuff(pLastDataBuffItem, pCurDataBuffItem, pUnifyInfoForOutput); - if(pCurDataBuffItem == NULL_ITEM) - { - /*¼¼*/ -#ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ERROR_NULL|OUTPUT_LNK_PUSH); - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"\n"); - -#endif -#ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ERROR_NULL|OUTPUT_LNK_PUSH); - -#endif - - - ret = 1; - return ret; - } - else - {} - } - break; - case ITEMSRC_LNKMNGR: /*ֻ·дڣݻв:ΪݻвڵIJѾGetNextItem2Proc, + break; /*-< ˳ѭ*/ + case ITEMSRC_LNKMNGR: /*-< Ƿ·*//*ֻ·дڣݻв:ΪݻвڵIJѾGetNextItem2Proc, Ӧ·״̬в,˿Բ߶вһµĴ*/ - case ITEMSRC_BOTH: /*߶ʱ,Ҫ·״״̬ۺϿ*/ - switch(pCurProc_Lnk->Lnk_Info.chStatus)/*·״̬*/ + case ITEMSRC_BOTH: /*-< Ƿ·*//*߶ʱ,Ҫ·״״̬ۺϿ*/ + /*Ƿ·*/ + funRtn = StSfpOutProDataLink(pUnifyInfoForOutput, pCurDataBuffItem, pCurProc_Lnk, &nNumsPrtclSnd); /*-< ô·*/ + if (1u == funRtn) /*-< úǷɹ*/ { - case STATUS_DATA:/*״̬*/ - /*кҪй0*/ - if( (pCurProc_Lnk->Lnk_Info.lLocalSN + 1) == 0 ) - { - pCurProc_Lnk->Lnk_Info.lLocalSN = 1; - } - else - { - pCurProc_Lnk->Lnk_Info.lLocalSN = (pCurProc_Lnk->Lnk_Info.lLocalSN + 1); - } - switch(pCurDataBuffItem->DataStatus)/*ݴ洢ռ״̬*/ - { - case SENT:/*Ѿ*/ - /*֯IDLE֡*/ - BuildFrame(FRAME_IDLE, pCurDataBuffItem, pCurProc_Lnk, &nNumsPrtclSnd, pUnifyInfoForOutput); - break; - case NEED2SEND: - /*ݵǰݴ洢ռ齨DATA֡*/ - BuildFrame(FRAME_DATA, pCurDataBuffItem, pCurProc_Lnk, &nNumsPrtclSnd, pUnifyInfoForOutput); - pCurDataBuffItem->DataStatus = SENT; - break; - default: - break; - } - break; - case STATUS_HALT:/*ͨж״̬*/ - if(pCurProc_Lnk->Lnk_Info.chRole == ROLE_SPON)/*Ϊ*/ - { - /*˵¶һǼⷢ𷽶״*/ - for( i = 0;i < DSUNumNodes;i++)/*ҶӦͼϢ*/ - {/*ǵԭȴӿյλÿʼд,Ѿй·䵥Ԫ,·䵥Ԫ*/ - if (pUnifyInfoForOutput->NumBuildLink[i].DevName == 0x00)/*˵ǿհ׵Ԫ*/ - { - pUnifyInfoForOutput->NumBuildLink[i].DevName = pCurDataBuffItem->DevName; - pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++;/*ۻ+1*/ - break;/**/ - } - else - { - /**/ - } - if (pUnifyInfoForOutput->NumBuildLink[i].DevName == pCurDataBuffItem->DevName)/*ҵȵļ*/ - { - pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++;/*ۻ+1*/ - break; - } - else - { - /*ûҵ*/ - } - } - /*·״̬ΪwConAck¼к,½ճʱ*/ - pCurProc_Lnk->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; - pCurProc_Lnk->Lnk_Info.chStatus = STATUS_WCONACK; - pCurProc_Lnk->Lnk_Info.chNoDataRcvCycle = 0; - /*¼RFCʼк*/ - pCurProc_Lnk->Lnk_Info.RfcSN = pUnifyInfoForOutput->RadamSN; - /*֯RFC֡*/ - BuildFrame(FRAME_RFC, pCurDataBuffItem, pCurProc_Lnk, &nNumsPrtclSnd, pUnifyInfoForOutput); - } - else - {} - break; - case STATUS_PRECON:/*յRFC׼ACK״̬*/ - if(pCurProc_Lnk->Lnk_Info.chRole == ROLE_FLW)/*Ϊ淽*/ - { - /*Ǽ淽״*/ - /*˵¶һλǵһν,ڵһη䵥ԪʱûбҪ++*/ - for(i = 0;i < DSUNumNodes;i++)/*ҶӦͼϢ*/ - {/*ǵԭȴӿյλÿʼд,Ѿй·䵥Ԫ,·䵥Ԫ*/ - if (pUnifyInfoForOutput->NumBuildLink[i].DevName == 0x00)/*˵ǿհ׵Ԫ*/ - { - pUnifyInfoForOutput->NumBuildLink[i].DevName = pCurDataBuffItem->DevName; - pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++;/*ۻ+1*/ - break;/**/ - } - else - { - /**/ - } - if (pUnifyInfoForOutput->NumBuildLink[i].DevName == pCurDataBuffItem->DevName)/*ҵȵļ*/ - { - pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++;/*ۻ+1*/ - break; - } - else - { - /*ûҵ*/ - } - } - /*·״̬ΪDATA¼кţ*/ - pCurProc_Lnk->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; - pCurProc_Lnk->Lnk_Info.chStatus = STATUS_DATA; - /*¼ACK֡ʼк*/ - pCurProc_Lnk->Lnk_Info.AckSN = pUnifyInfoForOutput->RadamSN; - /*RFC齨ACK֡*/ - BuildFrame(FRAME_ACK, pCurDataBuffItem, pCurProc_Lnk, &nNumsPrtclSnd, pUnifyInfoForOutput); - } - else - { - /*Ϊ𷽣*/ -#ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ROLE_STATUS_CONFLICT|ERROR_NULL); - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"\n"); - -#endif -#ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ROLE_STATUS_CONFLICT|ERROR_NULL); - -#endif - - } - break; - case STATUS_WCONACK: /*ȴACK״̬*/ - /*ҪACKǷʱжǷҪؽ*/ - if( pCurProc_Lnk->Lnk_Info.chNoDataRcvCycle >= pCurProc_Lnk->Lnk_Info.nACKTOut ) - {/*½*/ - if(pCurProc_Lnk->Lnk_Info.chRole != ROLE_SPON)/*Ƿδ֪*/ - { - /*¼¼*/ -#ifdef PRTCL_RECORD_ERR_ASC - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"E:"); - PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ROLE_STATUS_CONFLICT|ERROR_NULL); - PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"\n"); - -#endif -#ifdef PRTCL_RECORD_SIMPLIFY_BIN - PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, - ERR|OUTPUT|ROLE_STATUS_CONFLICT|ERROR_NULL); - -#endif - - ret = 1; - return ret;/**/ - } - else - { - /*Ƿ𷽣ִIJ*/ - } - /*·״̬ΪwConAck¼к,½ճʱ*/ - pCurProc_Lnk->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; - pCurProc_Lnk->Lnk_Info.chStatus = STATUS_WCONACK; - pCurProc_Lnk->Lnk_Info.chNoDataRcvCycle = 0; - /*¼RFCʼк*/ - pCurProc_Lnk->Lnk_Info.RfcSN = pUnifyInfoForOutput->RadamSN; - /*֯RFC֡*/ - BuildFrame(FRAME_RFC, pCurDataBuffItem, pCurProc_Lnk, &nNumsPrtclSnd, pUnifyInfoForOutput); - } - else - { - /*ûгʱ*/ - } - break; - default: - break; + ret = 1u; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } - break; - default: - break; + break; /*-< ˳ѭ*/ + default: /*-< */ + /*Ƿ·*/ + break; /*-< ˳ѭ*/ } - ResultofGet = GetNextItem2Proc(blNeedToInit, &chCurProcItemSrc, &pCurProc_Lnk, &pLastDataBuffItem, &pCurDataBuffItem, pUnifyInfoForOutput); - if(ResultofGet < 0) /*Ϊһεѭ׼*/ + ResultofGet = GetNextItem2Proc(blNeedToInit, &chCurProcItemSrc, &pCurProc_Lnk, &pLastDataBuffItem, &pCurDataBuffItem, pUnifyInfoForOutput); /*-< ¸Ԫغ*/ + if(ResultofGet < 0) /*-< úǷʧ*/ { - ret = 1; - return ret; + ret = 1; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } else { @@ -1564,7 +1324,7 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ } else { - break;/*ȡϣѭ*/ + break; /*-< ˳ѭ*/ } } else @@ -1578,31 +1338,32 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ʱ־*/ PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, ERR|OUTPUT|ERROR_NULL|TIMEOUT); #endif - break; + break; /*-< ˳ѭ*/ } } - /*ݳ,λȽ*/ + /*- ӵ֡ݳ*/ LongToChar( (UINT32)(nNumsPrtclSnd - 8),temp_char); - /*ݳ0*/ + /*ݳ0*/ pUnifyInfoForOutput->PrtclSndBuff[4] = temp_char[0]; pUnifyInfoForOutput->PrtclSndBuff[5] = temp_char[1]; pUnifyInfoForOutput->PrtclSndBuff[6] = temp_char[2]; pUnifyInfoForOutput->PrtclSndBuff[7] = temp_char[3]; - /*·Ϣ*/ + /*- ·Ϣ*/ CurFillLnk = pUnifyInfoForOutput->LnkHead;/*λ·ͷָ*/ /*¼¼*/ #ifdef PRTCL_RECORD_DATA_ASC PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,"Links:\n"); #endif - while (CurFillLnk != NULL) + while (CurFillLnk != NULL) /*-< ǰ·Ƿǿ*/ { - if((pUnifyInfoForOutput->PrtclSndBuffSize - nNumsPrtclSnd) < LNKFRAMELEN) + if((pUnifyInfoForOutput->PrtclSndBuffSize - nNumsPrtclSnd) < LNKFRAMELEN) /*-< ǷС·ݳ*/ { /*¼¼*/ #ifdef PRTCL_RECORD_ERR_ASC @@ -1618,27 +1379,27 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ #endif - /*֡*/ + /*- ֡*/ LongToChar( (UINT32)(nNumsPrtclSnd - 4),temp_char);/*ݳȵĸֽ*/ - /*鳤Ȳ¼ij*/ + /*- 鳤Ȳ¼ij*/ pUnifyInfoForOutput->PrtclSndBuff[0] = temp_char[0]; pUnifyInfoForOutput->PrtclSndBuff[1] = temp_char[1]; pUnifyInfoForOutput->PrtclSndBuff[2] = temp_char[2]; pUnifyInfoForOutput->PrtclSndBuff[3] = temp_char[3]; - ret = 1; - return ret; + ret = 1; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } else { /*ֽȷ*/ } - /*ض·*/ + /*- ض·*/ FillLnkMngr_into_PrtclSnd(CurFillLnk, &nNumsPrtclSnd, pUnifyInfoForOutput); /*¼¼,·״̬Ϣ*/ /*ǰ·Ľڵһڵ*/ CurFillLnk = CurFillLnk->NextNode; } - /*֡*/ + /*- ݳ*/ LongToChar( (UINT32)(nNumsPrtclSnd - 4),temp_char);/*ݳȵֽ*/ pUnifyInfoForOutput->PrtclSndBuff[0] = temp_char[0]; pUnifyInfoForOutput->PrtclSndBuff[1] = temp_char[1]; @@ -1655,6 +1416,7 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ #endif #ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼־*/ PrintRecArrayByte(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, 0xE0); /*鳤*/ @@ -1673,8 +1435,8 @@ UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo)/* %RELAX */ PrintFilec(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize,'\n'); #endif - ret = 1; - return ret; + ret = 1; /*-< úֵΪ1*/ + return ret; /*-< غֵ*/ } /* @@ -1883,4 +1645,312 @@ void SfpSetSwapDataForOut(UINT8 swapData[], UINT8 outData[], struc_Unify_Info* s PrintRecArray2ByteB(record, recordSize, swapDataLen); } } +} + +/** + * @brief StSfpOutProData + * @param pUnifyInfoForOutput sfp ȡֵΧ:οṹstruc_Unify_Info + * @param pCurDataBuffItem ǰԪ ȡֵΧ:οöstruc_OutputDataBuff + * @param pLastDataBuffItem ֮ǰԪ ȡֵΧ:οöstruc_OutputDataBuff + * @param pCurProc_Lnk ǰ· ȡֵΧ:οöstruc_Lnk_Mngr + * @param nNumsPrtclSnd ± ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 0:˳ 1:˳ + */ +static UINT8 StSfpOutProData(struc_Unify_Info* pUnifyInfoForOutput, struc_OutputDataBuff** pCurDataBuffItem, struc_OutputDataBuff* pLastDataBuffItem, struc_Lnk_Mngr** pCurProc_Lnk, UINT32* nNumsPrtclSnd) +{ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ0*/ + UINT8 Role = 0u; + + if ((NULL != pUnifyInfoForOutput) && (NULL != pCurDataBuffItem) && (NULL != (*pCurDataBuffItem)) && (NULL != pCurProc_Lnk) && (NULL != nNumsPrtclSnd)) /*-< Ƿǿ*/ + { + if ((*pCurDataBuffItem)->DataCycleNum == (*(pUnifyInfoForOutput->CycleNum))) /*-< Ƿ*//*µ,˵Ҫ뽨*/ + { + if (dsuIsLnkLegal(pUnifyInfoForOutput, (*pCurDataBuffItem)->DevName, &Role)) /*-< úñ*/ + {/*Ϸ*/ + if (Role == ROLE_SPON) /*-< ǷΪ*/ + { + /*·Ӵ·൱ԭ·֮ǰһ·pCurProc_LnkǵǰҪͨŶӦ·Ľڵ*/ + /*·ڵ㣬أһ֡*/ + (*pCurProc_Lnk) = InsertLnk((*pCurDataBuffItem)->DevName, pUnifyInfoForOutput); /*-< ò·*/ + if ((*pCurProc_Lnk) == NULL) /*-< ·ǷΪ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ERROR_NULL | LNKMANAGE_POP); + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼·Ϊ־*/ + PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ERROR_NULL | LNKMANAGE_POP); + +#endif + + } + else + { + /*- ·״̬ΪwConAck¼к*/ + (*pCurProc_Lnk)->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; + (*pCurProc_Lnk)->Lnk_Info.chStatus = STATUS_WCONACK; + /*- ¼RFCʼк*/ + (*pCurProc_Lnk)->Lnk_Info.RfcSN = pUnifyInfoForOutput->RadamSN; + BuildFrame(FRAME_RFC, (*pCurDataBuffItem), (*pCurProc_Lnk), nNumsPrtclSnd, pUnifyInfoForOutput); /*-< ֯RFC֡*/ + /*- ԭǰҪ·ʹĽͬɾһ,ԱGetNextItem2Procͳһ*/ + (*pCurProc_Lnk) = (*pCurProc_Lnk)->NextNode; + } + } + else + { + } + }/*Ϸκβ*/ + else + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "W:"); + PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + WARN | OUTPUT | OBJ_ILLEAGL | ERROR_NULL); + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "\n"); +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼õʹ־*/ + PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + WARN | OUTPUT | OBJ_ILLEAGL | ERROR_NULL); +#endif + + } + } + else/*,ɾڵ*/ + { + /*ɾڵݻԶ˽ڵǰڵ*/ + (*pCurDataBuffItem) = Delete_OutputDataBuff(pLastDataBuffItem, (*pCurDataBuffItem), pUnifyInfoForOutput); /*-< ɾڵ㺯*/ + if ((*pCurDataBuffItem) == NULL_ITEM) /*-< úǷʧ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ERROR_NULL | OUTPUT_LNK_PUSH); + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ɾڵ־*/ + PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ERROR_NULL | OUTPUT_LNK_PUSH); + +#endif + + + rtnVal = 1u; /*-< úֵΪ1*/ + } + else + { + } + } + } + else + { + rtnVal = 1u; /*-< úֵΪ1*/ + } + + return rtnVal; /*-< غֵ*/ +} + +/** + * @brief StSfpOutProDataLink · + * @param pUnifyInfoForOutput sfp ȡֵΧ:οṹstruc_Unify_Info + * @param pCurDataBuffItem ǰԪ ȡֵΧ:οöstruc_OutputDataBuff + * @param pCurProc_Lnk ǰ· ȡֵΧ:οöstruc_Lnk_Mngr + * @param nNumsPrtclSnd ± ȡֵΧ:0x00000000-0xFFFFFFFF + * @return 0:˳ 1:˳ + */ +static UINT8 StSfpOutProDataLink(struc_Unify_Info* pUnifyInfoForOutput, struc_OutputDataBuff* pCurDataBuffItem, struc_Lnk_Mngr* pCurProc_Lnk, UINT32* nNumsPrtclSnd) +{ + /*- ֲ*/ + UINT8 rtnVal = 0u; /*-< úֵΪ0*/ + UINT16 i = 0u; + UINT16 DSUNumNodes = 0u; /*ݿнڵ*/ + + if ((NULL != pUnifyInfoForOutput) && (NULL != pCurDataBuffItem) && (NULL != pCurProc_Lnk) ) /*-< Ƿǿ*/ + { + DSUNumNodes = dsuGetObjNum(pUnifyInfoForOutput); /*-< õݿнڵ*/ + + switch (pCurProc_Lnk->Lnk_Info.chStatus) /*-< ж·״̬*/ + { + case STATUS_DATA: /*-< Ƿ״̬*/ + /*кҪй0*/ + if ((pCurProc_Lnk->Lnk_Info.lLocalSN + 1) == 0) /*-< +1ǷΪ0*/ + { + pCurProc_Lnk->Lnk_Info.lLocalSN = 1; /*-< ñ1*/ + } + else + { + pCurProc_Lnk->Lnk_Info.lLocalSN = (pCurProc_Lnk->Lnk_Info.lLocalSN + 1); /*-< ñż1*/ + } + switch (pCurDataBuffItem->DataStatus) /*-< Ƿݴ洢ռ״̬*/ + { + case SENT: /*-< Ƿ񷢿*/ + /*֯IDLE֡*/ + BuildFrame(FRAME_IDLE, pCurDataBuffItem, pCurProc_Lnk, nNumsPrtclSnd, pUnifyInfoForOutput); /*-< ù֡֡*/ + break; /*-< ˳*/ + case NEED2SEND: /*-< Ƿ*/ + /*ݵǰݴ洢ռ齨DATA֡*/ + BuildFrame(FRAME_DATA, pCurDataBuffItem, pCurProc_Lnk, nNumsPrtclSnd, pUnifyInfoForOutput); /*-< ù֡֡*/ + pCurDataBuffItem->DataStatus = SENT; /*-< ״̬Ϊ*/ + break; /*-< ˳*/ + default: /*-< */ + /**/ + break; /*-< ˳*/ + } + break; /*-< ˳*/ + case STATUS_HALT: /*-< Ƿͨж״̬*/ + if (pCurProc_Lnk->Lnk_Info.chRole == ROLE_SPON) /*-< Ƿ񱾷Ϊ*/ + { + /*˵¶һǼⷢ𷽶״*/ + for (i = 0; i < DSUNumNodes; i++) /*-< ҶӦͼϢ*/ + {/*ǵԭȴӿյλÿʼд,Ѿй·䵥Ԫ,·䵥Ԫ*/ + if (pUnifyInfoForOutput->NumBuildLink[i].DevName == 0x00) /*-< Ƿ·豸Ϊ0*/ + { + pUnifyInfoForOutput->NumBuildLink[i].DevName = pCurDataBuffItem->DevName; /*-< 豸ΪԪ豸*/ + pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++; /*-< ۻ1*/ + break; /*-< ˳*/ + } + else + { + /**/ + } + if (pUnifyInfoForOutput->NumBuildLink[i].DevName == pCurDataBuffItem->DevName) /*-< Ƿ·豸ΪԪ豸*/ + { + pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++; /*-< ۻ1*/ + break; /*-< ˳*/ + } + else + { + /*ûҵ*/ + } + } + /*- ·״̬ΪwConAck¼к,½ճʱ*/ + pCurProc_Lnk->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; + pCurProc_Lnk->Lnk_Info.chStatus = STATUS_WCONACK; + pCurProc_Lnk->Lnk_Info.chNoDataRcvCycle = 0; + /*- ¼RFCʼк*/ + pCurProc_Lnk->Lnk_Info.RfcSN = pUnifyInfoForOutput->RadamSN; + /*- ֯RFC֡*/ + BuildFrame(FRAME_RFC, pCurDataBuffItem, pCurProc_Lnk, nNumsPrtclSnd, pUnifyInfoForOutput); + } + else + { + } + break; /*-< ˳*/ + case STATUS_PRECON: /*-< ǷյRFC׼ACK״̬*/ + if (pCurProc_Lnk->Lnk_Info.chRole == ROLE_FLW) /*-< Ϊ淽*/ + { + /*Ǽ淽״*/ + /*˵¶һλǵһν,ڵһη䵥ԪʱûбҪ++*/ + for (i = 0; i < DSUNumNodes; i++) /*-< ҶӦͼϢ*/ + {/*ǵԭȴӿյλÿʼд,Ѿй·䵥Ԫ,·䵥Ԫ*/ + if (pUnifyInfoForOutput->NumBuildLink[i].DevName == 0x00) /*-< Ƿ·豸Ϊ0*/ + { + pUnifyInfoForOutput->NumBuildLink[i].DevName = pCurDataBuffItem->DevName; /*-< 豸ΪԪ豸*/ + pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++; /*-< ۻ1*/ + break; /*-< ˳*/ + } + else + { + /**/ + } + if (pUnifyInfoForOutput->NumBuildLink[i].DevName == pCurDataBuffItem->DevName) /*-< Ƿ·豸ΪԪ豸*/ + { + pUnifyInfoForOutput->NumBuildLink[i].nTotalNums_DuanLian++; /*-< ۻ1*/ + break; /*-< ˳*/ + } + else + { + /*ûҵ*/ + } + } + /*- ·״̬ΪDATA,¼к*/ + pCurProc_Lnk->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; + pCurProc_Lnk->Lnk_Info.chStatus = STATUS_DATA; + /*- ¼ACK֡ʼк*/ + pCurProc_Lnk->Lnk_Info.AckSN = pUnifyInfoForOutput->RadamSN; + /*- RFC齨ACK֡*/ + BuildFrame(FRAME_ACK, pCurDataBuffItem, pCurProc_Lnk, nNumsPrtclSnd, pUnifyInfoForOutput); + } + else + { + /*Ϊ𷽣*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ROLE_STATUS_CONFLICT | ERROR_NULL); + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼״̬־*/ + PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ROLE_STATUS_CONFLICT | ERROR_NULL); + +#endif + + } + break; + case STATUS_WCONACK: /*-< ǷȴACK״̬*/ + /*ҪACKǷʱжǷҪؽ*/ + if (pCurProc_Lnk->Lnk_Info.chNoDataRcvCycle >= pCurProc_Lnk->Lnk_Info.nACKTOut) /*-< Ƿ񳬵ACK*/ + {/*½*/ + if (pCurProc_Lnk->Lnk_Info.chRole != ROLE_SPON) /*-< ǷǷ*/ + { + /*¼¼*/ +#ifdef PRTCL_RECORD_ERR_ASC + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "E:"); + PrintFileU16Hex(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ROLE_STATUS_CONFLICT | ERROR_NULL); + PrintFiles(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, "\n"); + +#endif +#ifdef PRTCL_RECORD_SIMPLIFY_BIN + /*- ¼ɫ־*/ + PrintRecArray2ByteB(pUnifyInfoForOutput->RecordArray, pUnifyInfoForOutput->RecordArraySize, + ERR | OUTPUT | ROLE_STATUS_CONFLICT | ERROR_NULL); + +#endif + + rtnVal = 1u; /*-< úֵΪ1*/ + } + else + { + /*Ƿ𷽣ִIJ*/ + } + /*- ·״̬ΪwConAck,¼к,½ճʱ*/ + pCurProc_Lnk->Lnk_Info.lLocalSN = pUnifyInfoForOutput->RadamSN; + pCurProc_Lnk->Lnk_Info.chStatus = STATUS_WCONACK; + pCurProc_Lnk->Lnk_Info.chNoDataRcvCycle = 0; + /*- ¼RFCʼк*/ + pCurProc_Lnk->Lnk_Info.RfcSN = pUnifyInfoForOutput->RadamSN; + /*- ֯RFC֡*/ + BuildFrame(FRAME_RFC, pCurDataBuffItem, pCurProc_Lnk, nNumsPrtclSnd, pUnifyInfoForOutput); + } + else + { + /*ûгʱ*/ + } + break; /*-< ˳*/ + default: /*-< */ + /**/ + break; /*-< ˳*/ + } + } + else + { + rtnVal = 1u; /*-< úֵΪ1*/ + } + + return rtnVal; /*-< غֵ*/ } \ No newline at end of file diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpplatform.h b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpplatform.h index f9f1319..6e9fe8f 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpplatform.h +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp/sfpplatform.h @@ -129,22 +129,12 @@ extern "C" { *******************************************************************************************/ UINT8 ProtclReceive(struc_Unify_Info *pUnifyInfo); - -/****************************************************************************************** -* : ЭԪ,ЭĹ,Ӧô֡, - ΪݱȽϵԪ׼ñ,ͬʱά· -* : -* : struc_Unify_Info* pUnifyInfo Эͳһṹָ -* : -* ȫֱ : UINT32 nNumsPrtclSnd Эݵĸ(ֽΪλ) - struc_Lnk_Mngr *pCurProc_Lnk ·еǰĵ·ָ,ָ룬ʵ* - UINT8 chCurProcItemSrc ǰҪԪصԴ ITEMSRC_BOTH (ݶк·) 0x17;ITEMSRC_DATAQUEUE (ݶ) 0x33;ITEMSRC_LNKMNGR(·) 0x55 - struc_OutputDataBuff *pLastDataBuffItem ʾǰݴ洢Ԫָ - struc_OutputDataBuff *pCurDataBuffItem ʾһδݴ洢Ԫָ - struc_Unify_Info *pUnifyInfoForOutput ƽ̨ṹָ -* ֵ : ȷ1󷵻0 -*******************************************************************************************/ -UINT8 ProtclOutput(struc_Unify_Info *pUnifyInfo); +/** + * @brief ProtclOutput ЭԪ,ЭĹ,Ӧô֡ + * @param pUnifyInfo sfp ȡֵΧ:οṹstruc_Unify_Info + * @return 0:ʧ 1:ɹ + */ +UINT8 ProtclOutput(struc_Unify_Info* pUnifyInfo); /****************************************************************************************** diff --git a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp_nr_config/sfpConfig.h b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp_nr_config/sfpConfig.h index 7998cbb..e2bc929 100644 --- a/TSCP/src/protocol/sfp_record_cbtc1/common_sfp_nr_config/sfpConfig.h +++ b/TSCP/src/protocol/sfp_record_cbtc1/common_sfp_nr_config/sfpConfig.h @@ -1,27 +1,26 @@ /******************************************************************************* -* �ļ��� �� sfpConfig.h -* ��Ȩ˵�� �� -* �汾�� �� 1.0 -* ����ʱ�� �� 2010.05.04 -* ���� �� ���� -* �������� �� ���ļ�ΪSFPЭ�������ļ� -* ʹ��ע�� �� - �� -* �޸ļ�¼ �� +* ļ sfpConfig.h +* Ȩ˵ +* 汾 1.0 +* ʱ 2010.05.04 +* +* ļΪSFPЭļ +* ʹע + +* ޸ļ¼ *******************************************************************************/ #ifndef _SFPCONFIG_H #define _SFPCONFIG_H -/**************************Э���¼�궨�忪��**********************************/ -/*#define PRTCL_RECORD_DATA_ASC*/ /*���ݲ����ַ��ͼ�¼����*/ -/*#define PRTCL_RECORD_ERR_ASC*/ /*���󲿷��ַ��ͼ�¼����*/ +/**************************Э¼궨忪**********************************/ +/*#define PRTCL_RECORD_DATA_ASC*/ /*ݲַͼ¼*/ +/*#define PRTCL_RECORD_ERR_ASC*/ /*󲿷ַͼ¼*/ -#define PRTCL_RECORD_SIMPLIFY_BIN /*�����Ƽ�¼����*/ -#define USE_DSU_SFP /*ʹ��SFP��ѯ����*/ -#define SWAP_CRC /*����CRC*/ +#define PRTCL_RECORD_SIMPLIFY_BIN /*Ƽ¼*/ +#define USE_DSU_SFP /*ʹSFPѯ*/ #else #endif