diff --git a/TSCP/src/APP/APP_API.c b/TSCP/src/APP/APP_API.c index dfbd8fa..2a1bd25 100644 --- a/TSCP/src/APP/APP_API.c +++ b/TSCP/src/APP/APP_API.c @@ -244,7 +244,7 @@ void APP_API_Data_Init() cDevType = (UINT8)((locTypeId >> 8U) & 0x00FFU); /*RC/CI类型*/ - cRetVal = CiPatternInit((const)DataPath); /*初始化当前联锁类型配置数据*/ + cRetVal = RciCommonConfigDataInit((const)DataPath); /*初始化当前联锁类型配置数据*/ if ((CI_SUCCESS == cRetVal) && (CI_SUCCESS == funcRetVal)) /*初始化当前联锁类型配置数据*/ { cSystemWorkType = GetSystemWorkType(); @@ -717,46 +717,23 @@ ENUM_CM_RECCUSEB Is_Send_ExtendBoard(IN const CM_UINT16 dstDevTypeId) { ENUM_CM_RECCUSEB retVal = ENUM_CM_CC; /*返回值*/ CM_UINT8 devType = 0U; /*设备类型*/ - CM_UINT8 devId = 0U; /*设备ID*/ CM_UINT16 wAtsGtWayDevTypeId = 0U; - UINT8 chLocalCiType = 0U; /*本联锁属性*/ - UINT8 chDstCiType = 0U; /*本联锁属性*/ - UINT8 chCldScxCommMode = 0U; UINT8 chWorkType = 0U; /*双系工作模式*/ UINT8 cControlState = 0U;/*主备用模式*/ UINT8 cRcWorkMode = 0u;/*RC工作模式*/ UINT8 chResult = CI_ERROR; /*联锁属性检查结果*/ + UINT8 serialGroup = 0U; /*串口通信组索引*/ wAtsGtWayDevTypeId = GetTiocTrnsmtGtwyDevTypeId(); /**使用通控板与ATS网关通信*/ if (dstDevTypeId != wAtsGtWayDevTypeId) { devType = (CM_UINT8)((dstDevTypeId >> 8) & 0xFF); - devId = (CM_UINT8)(dstDevTypeId & 0xFF); - - chLocalCiType = GetLocalCiType(); - chDstCiType = GetCiType(devId); - chCldScxCommMode = GetCiFunctionSwitchConfig(SCX_CLD_INTERFACE_TYPE); chWorkType = GetSystemWorkType(); cControlState = GetLocalCiBackUpPattern(); cRcWorkMode = GetLocalRcWorkMode(); - if ((SCX_CLD_SERIAL_PORT_COMM == chCldScxCommMode) && (CI_SYSTEM_TYPE_RCI == devType)) - { - if (((CI_TYPE_CLD == chLocalCiType) && (CI_TYPE_SCX == chDstCiType)) || ((CI_TYPE_SCX == chLocalCiType) && (CI_TYPE_CLD == chDstCiType))) - { - /*串口通信要求双方一个为车辆段一个为试车线*/ - chResult = CI_SUCCESS; - } - else - { - ; /*CI类型错误,返回失败*/ - } - } - else - { - ; /*不为串口通信,此时不对本地CI类型及对方CI类型进行判断*/ - } + chResult = IsSerialDevice(dstDevTypeId, &serialGroup); if ((CI_SYSTEM_TYPE_XIANDI == devType) || (CI_SYSTEM_TYPE_ATS == devType) || (CI_SUCCESS == chResult) 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 cae2711..a17f79b 100644 --- a/TSCP/src/APP/PU13_integration_config/ci_integrate_config.h +++ b/TSCP/src/APP/PU13_integration_config/ci_integrate_config.h @@ -30,6 +30,6 @@ #define VER_INTE_PROJECT 220 /*Ŀ*/ #define VER_INTE_PRODUCT 40 /*Ʒ*/ #define VER_INTE_EXE 1 /*ִб*/ -#define VER_INTE_TIME 116 /*ɴ*/ +#define VER_INTE_TIME 127 /*ɴ*/ #endif/*endif of #define _CI_INTEGRATE_CONFIG_H*/ \ No newline at end of file diff --git a/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.c b/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.c index 5e9fbfe..28f01c3 100644 --- a/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.c +++ b/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.c @@ -1629,7 +1629,7 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer) pCiAppDataPointer[curIndex] = gCbtcCrossStructZc[ii].wTrainId; curIndex += 1u; } - + /*����һ��CRC*/ crcLength = curIndex - crcIndex; crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength); @@ -3800,11 +3800,11 @@ UINT32 CopyValidGetLogicSecDataCC(UINT8* pCurCiAppDataPointer, UINT16 struNum,Lo curIndex++; for (j = 0U; j < pstLogSecDataStruCC[i].chLogSecLockBelLogRouteSum; j++) { - ShortToChar(pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData->wLogSecLockBelLogRouteId, (pCurCiAppDataPointer + curIndex)); + ShortToChar(pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData[j].wLogSecLockBelLogRouteId, (pCurCiAppDataPointer + curIndex)); curIndex += 2U; - *(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData->chLogSecLockBelLogRouteState; + *(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData[j].chLogSecLockBelLogRouteState; curIndex++; - *(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData->wLogSecLockBelLogRouteDir; + *(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData[j].wLogSecLockBelLogRouteDir; curIndex++; } *(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].LogSecLogLockState; @@ -4701,7 +4701,7 @@ UINT32 CopyValidSetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo { m_OcToCiOrginDataNum = (UINT8)ValidIdNum; /*����*/ - //printf("m_OcToCiOrginDataNum = %d\n", m_OcToCiOrginDataNum); + debug_infor_printf((char*)"m_OcToCiOrginDataNum = %d\n", m_OcToCiOrginDataNum); (void)CommonMemSet(OcRecvData, (UINT32)((OC_SUM_MAX)* sizeof(OcToCiOriginDataStruct)), 0U, (UINT32)((OC_SUM_MAX)* sizeof(OcToCiOriginDataStruct))); /*����սṹ���ֹ������*/ for (i = 0U; i < ValidIdNum; i++) { @@ -4884,7 +4884,6 @@ UINT32 CopyValidSetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo UINT32 CopyValidGetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcToCiOriginDataStruct OcRecvData[]) { UINT32 curIndex = 0U; - UINT16 ValidIdNum = 0U; UINT16 i = 0U; UINT16 k = 0U; UINT8 j = 0U; @@ -4905,9 +4904,8 @@ UINT32 CopyValidGetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo ShortToChar(m_OcToCiOrginDataNum, pCurCiAppDataPointer); curIndex += (UINT32)sizeof(UINT16); /*�������ֽ��豸����*/ //printf("m_OcToCiOrginDataNum = %d\n", m_OcToCiOrginDataNum); - if (struNum > ValidIdNum) - { - for (i = 0U; i < m_OcToCiOrginDataNum; i++) + + for (i = 0U; i < m_OcToCiOrginDataNum; i++) { ShortToChar(OcRecvData[i].OcId, (pCurCiAppDataPointer + curIndex)); curIndex += 2U; @@ -5056,7 +5054,7 @@ UINT32 CopyValidGetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo LongToChar(OcRecvData[i].ComStartCycle, (pCurCiAppDataPointer + curIndex)); curIndex += 4U; } - } + } else { diff --git a/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.h b/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.h index f5b1d34..d7c2f6c 100644 --- a/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.h +++ b/TSCP/src/APP/ciapp/2oo2/2oo2DataTransferManage.h @@ -56,6 +56,7 @@ #include "../Route/LogicalRouteDataManage.h" #include "../Route/LongRouteDataManage.h" #include "../ReverseCut/ReverseCutDataManage.h" +#include "../AxisSort/AxisSort.h" #ifdef __cplusplus extern "C" { diff --git a/TSCP/src/APP/ciapp/AxisAssert/AxisAssertManageAPI.c b/TSCP/src/APP/ciapp/AxisAssert/AxisAssertManageAPI.c index 0676797..6fdd440 100644 --- a/TSCP/src/APP/ciapp/AxisAssert/AxisAssertManageAPI.c +++ b/TSCP/src/APP/ciapp/AxisAssert/AxisAssertManageAPI.c @@ -394,7 +394,7 @@ static UINT8 aam_AxisErrorJudge(UINT16 acID,UINT16 acIndex) ; /**/ } /** жڷΧڼỵռʱͨ */ - if ((CI_ERROR == chNearbyCheck)) + if (CI_ERROR == chNearbyCheck) { /* ӽ ڼ޳ӽ ʱ*/ if ((AAM_BAD_NEAR == sameTrainType) || (AAM_BAD_NEAR == convertTrainType)) @@ -423,7 +423,6 @@ static UINT8 aam_AxisErrorJudge(UINT16 acID,UINT16 acIndex) /** ʱλ1*/ aam_AddRedunTime(acIndex, maxRedunTimes); } - /** ϵж */ tmpRedunTime = aam_GetRedunTime(acIndex); tmppassTrainType = aam_GetPassTrainFlag(acIndex); @@ -2111,7 +2110,7 @@ UINT8 aam_ArbContinuousOccCheck(UINT16 wAcId, UINT8 cNearAcNum, UINT16 pNearAcId UINT8 cRetVal = CI_ERROR; UINT16 wBufIndex = 0U; UINT16 wCurRelPhySecId = 0U; /*ID*/ - UINT8 dwCiAndAxleTransBadEnsureCnt = 0U; /*жͨж*/ + UINT32 dwCiAndAxleTransBadEnsureCnt = 0U; /*жͨж*/ UINT32 dwCurAxleOccStartCycNum = 0U; /*ռʼ*/ UINT8 ii = 0U; UINT16 wNearRelPhySecId = 0U; /*ڼID*/ diff --git a/TSCP/src/APP/ciapp/AxisSort/AxisSort.c b/TSCP/src/APP/ciapp/AxisSort/AxisSort.c index 80e5898..7b62a01 100644 --- a/TSCP/src/APP/ciapp/AxisSort/AxisSort.c +++ b/TSCP/src/APP/ciapp/AxisSort/AxisSort.c @@ -16,7 +16,7 @@ static UINT16 g_pSortLinkNum; /* Link */ static UINT16 g_pSortLinkIndex[AS_LINK_MAX + 1U]; /* Link */ -static AS_SORT_INFO_s g_pSortLinkInfo[AS_LINK_MAX + 1U]; /*link*/ +AS_SORT_INFO_s g_pSortLinkInfo[AS_LINK_MAX + 1U]; /*link*/ /* ͨųУSortCT׶CT */ static UINT16 s_pCTSortIndex[SIZE_MAX_LINE_TRAIN_NUM]; /*Ϣ*/ @@ -2188,12 +2188,34 @@ UINT32 as_GetTransferData(OUT UINT8 * pDataBuff, IN UINT32 curIndex) { UINT32 ret = curIndex; UINT32 copyIndex = curIndex; + UINT16 wLinkNum = 0U; + UINT16 u16Index = 0U; + UINT16 wTmpLinkId = 0U; + UINT8 chLocalId = GetSystemParaLocalCiId(); + UINT8 chLinkCIId = 0U;/*link*/ + UINT32 dwLinkNumIndex =0U;/*λ */ if (NULL != pDataBuff) { (void)CommonMemCpy(&pDataBuff[copyIndex], (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM), s_pCTSortIndex, (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM)); copyIndex += (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM); - (void)CommonMemCpy(&pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u), s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u)); - copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u); + (void)CommonMemCpy(&pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)), s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U))); + copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)); + /*linkг*/ + dwLinkNumIndex = copyIndex; + copyIndex += 2U; + for (u16Index = 1U; u16Index <= g_pSortLinkNum; u16Index++) + { + wTmpLinkId = g_pSortLinkInfo[u16Index].u16ID; + chLinkCIId = (UINT8)GetLinkManageTiocById(wTmpLinkId); + if ((0U != chLocalId) && (chLinkCIId == chLocalId)) + { + /**/ + (void)CommonMemCpy(&pDataBuff[copyIndex],(UINT32)(sizeof(AS_SORT_INFO_s)), &g_pSortLinkInfo[u16Index], (UINT32)(sizeof(AS_SORT_INFO_s))); + copyIndex += (UINT32)(sizeof(AS_SORT_INFO_s)); + wLinkNum++; + } + } + ShortToChar(wLinkNum, &pDataBuff[dwLinkNumIndex]); /* дгռõļ */ ret = copyIndex; } else @@ -2215,12 +2237,29 @@ UINT32 as_SetTransferData(IN UINT8 * pDataBuff, IN UINT32 curIndex) { UINT32 ret = curIndex; UINT32 copyIndex = curIndex; + UINT16 wLinkNum = 0U; + UINT16 jj = 0U; + UINT16 wTmpLinkId =0U; + UINT16 wLinkIndex = 0U; if (NULL != pDataBuff) { (void)CommonMemCpy(s_pCTSortIndex, (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM), &pDataBuff[copyIndex], (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM)); copyIndex += (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM); - (void)CommonMemCpy(s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u), &pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u)); - copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u); + (void)CommonMemCpy(s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)), &pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U))); + copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)); + /*г*/ + wLinkNum = ShortFromChar(&pDataBuff[copyIndex]); + copyIndex += 2u; + for (jj = 0U; jj < wLinkNum; jj++) + { + wTmpLinkId = ShortFromCharLE(&pDataBuff[copyIndex]); + wLinkIndex = g_pSortLinkIndex[wTmpLinkId]; + if ((DEFAULT_ZERO < wLinkIndex) && (wLinkIndex < AS_LINK_MAX+1U)) + { + (void)CommonMemCpy(&g_pSortLinkInfo[wLinkIndex], (UINT32)(sizeof(AS_SORT_INFO_s)), &pDataBuff[copyIndex], (UINT32)(sizeof(AS_SORT_INFO_s))); + copyIndex += (UINT32)(sizeof(AS_SORT_INFO_s)); + } + } ret = copyIndex; } else diff --git a/TSCP/src/APP/ciapp/AxisSort/AxisSort.h b/TSCP/src/APP/ciapp/AxisSort/AxisSort.h index 9c8a49b..27d180a 100644 --- a/TSCP/src/APP/ciapp/AxisSort/AxisSort.h +++ b/TSCP/src/APP/ciapp/AxisSort/AxisSort.h @@ -48,5 +48,5 @@ typedef struct UINT16 TrainEnveLopeID[ENVELOPE_SUM_MAX]; /*аIDϢ*/ }s_TRAIN_ENVELOPE_ID; - +extern AS_SORT_INFO_s g_pSortLinkInfo[AS_LINK_MAX + 1U]; /*link*/ #endif /* INC_AXIS_SORT_INC */ \ No newline at end of file diff --git a/TSCP/src/APP/ciapp/DataManage/DeviceConfigDataManage.c b/TSCP/src/APP/ciapp/DataManage/DeviceConfigDataManage.c index e227eb9..1f3b8ec 100644 --- a/TSCP/src/APP/ciapp/DataManage/DeviceConfigDataManage.c +++ b/TSCP/src/APP/ciapp/DataManage/DeviceConfigDataManage.c @@ -105,37 +105,34 @@ SAME_LINE_ERR, */ UINT8 IsSameLineCI(const UINT8 ciA, const UINT8 ciB) { - UINT32 etcsIdA, etcsIdB; - UINT16 u16CiA, u16CiB; + UINT32 etcsIdA = 0U; + UINT32 etcsIdB = 0U; + UINT16 u16CiA = 0U; + UINT16 u16CiB = 0U; UINT8 retVal = SAME_LINE_ERR; - UINT8 cbtcSysType = DQU_CBTC_FAO; UINT8 dquDevNameA = CI_ERROR; UINT8 dquDevNameB = CI_ERROR; + UINT8 chCiAFactoryType = 0U; + UINT8 chCiBFactoryType = 0U; - u16CiA = (UINT16)((CI_SYSTEM_TYPE_RCI * 256u) + ciA); - u16CiB = (UINT16)((CI_SYSTEM_TYPE_RCI * 256u) + ciB); + u16CiA = (UINT16)((CI_SYSTEM_TYPE_RCI * 256U) + ciA); + u16CiB = (UINT16)((CI_SYSTEM_TYPE_RCI * 256U) + ciB); - cbtcSysType = GetCbtcSysType(); + dquDevNameA = dquDevName2HlhtId(u16CiA,0U,&etcsIdA); + dquDevNameB = dquDevName2HlhtId(u16CiB,0U,&etcsIdB); - dquDevNameA = dquDevName2HlhtId(u16CiA,0u,&etcsIdA); - - dquDevNameB = dquDevName2HlhtId(u16CiB,0u,&etcsIdB); - - if(DQU_CBTC_CPK == cbtcSysType) + /*Ҫӻͨж*/ + if ((CI_SUCCESS == dquDevNameA) && (CI_SUCCESS == dquDevNameB)) { - retVal = SAME_LINE_YES; - } - else if(DQU_CBTC_FAO == cbtcSysType) - { - retVal = SAME_LINE_YES; - } - else if(DQU_CBTC_HLT == cbtcSysType) - { - /*Ҫӻͨж*/ - if ((CI_SUCCESS == dquDevNameA) && (CI_SUCCESS == dquDevNameB)) + /*ݻͨETCSŵĶ壬ӵ͵ߵֽΪ·*/ + if ((etcsIdA & ((UINT32)0x00ff0000)) == (etcsIdB & ((UINT32)0x00ff0000))) { - /*ݻͨETCSŵĶ壬ӵ͵ߵֽΪ·*/ - if ((etcsIdA&((UINT32)0x00ff0000)) == (etcsIdB & ((UINT32)0x00ff0000))) + retVal = SAME_LINE_YES; + + /*ͬһ·һڶʹòͬҲΪͬ·ӿ߻ͨ*/ + chCiAFactoryType = GetCiFactoryType(ciA); + chCiBFactoryType = GetCiFactoryType(ciB); + if (chCiAFactoryType == chCiBFactoryType) { retVal = SAME_LINE_YES; } @@ -146,17 +143,14 @@ UINT8 IsSameLineCI(const UINT8 ciA, const UINT8 ciB) } else { - retVal = SAME_LINE_ERR; + retVal = SAME_LINE_NO; } - }/* zt ɾش 2022-02-15 */ - else if (DQU_CBTC_CC == cbtcSysType) - { - retVal = SAME_LINE_YES; } else - { + { retVal = SAME_LINE_ERR; } + return retVal; } /* diff --git a/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.c b/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.c index 595d022..c4666fc 100644 --- a/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.c +++ b/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.c @@ -4997,15 +4997,15 @@ void SetPhySecSpksFLockBySpksId(UINT16 spksId,UINT8 spksStatus) */ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const chkDevStatus) { - UINT8 devState = 0u; - UINT8 tmpDevState = 0u; - UINT8 tmpPsdVobcCmd = 0u; - UINT8 tmpColor = 0u; - UINT8 ttmpDevState = 0u; - UINT8 psdMutualLockState = 0u; - UINT16 tempdevId = 0u; /*ʱ豸ID*/ - UINT8 tempdevState = 0u; /*ʱ豸״̬*/ - + UINT8 devState = 0U; + UINT8 tmpDevState = 0U; + UINT8 tmpPsdVobcCmd = 0U; + UINT8 tmpColor = 0U; + UINT8 ttmpDevState = 0U; + UINT8 psdMutualLockState = 0U; + UINT16 tempdevId = 0U; /*ʱ豸ID*/ + UINT8 tempdevState = 0U; /*ʱ豸״̬*/ + UINT8 chPsdExceptState = 0U; switch(devType) { case CI_DEVICE_TYPE_SWITCH: /**/ @@ -5020,12 +5020,12 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c } else { - devState = 0u; + devState = 0U; } break; case CI_DEVICE_TYPE_SIGNAL: /*źŻ*/ tmpColor = GetSignalCurColor(devId); - if (tmpColor > 0u) + if (0U < tmpColor) { tmpDevState = GetSignalOpenCloseState(tmpColor); if (SIGNAL_OPEN == tmpDevState) @@ -5039,7 +5039,7 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c } else { - devState = 0u; + devState = 0U; } break; case CI_DEVICE_TYPE_ROUTE: /*·*/ @@ -5073,41 +5073,51 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c } else { - devState = 0u; + devState = 0U; } break; case CI_DEVICE_TYPE_PSD: /*վ̨*/ tmpDevState = GetPsdState(devId); tmpPsdVobcCmd = GetPsdVobcCmd(devId); psdMutualLockState = GetPsdMutualLockRemoveState(devId); - if ((PSD_MUTUALLOCK_REMOVE_YES == psdMutualLockState) || (PSD_ATS_MUTUALLOCK_REMOVE_YES == psdMutualLockState) - || (PSD_ATS_AND_JD_MUTUALLOCK_REMOVE_YES == psdMutualLockState)) + chPsdExceptState = GePsdExceptState(devId); + + if (PSD_EXCEPT_NO != chPsdExceptState) { - /* ɼֱΪŹر */ - devState = OTHER_CI_PSD_STATUS_CLOSE; - } - else if (PSD_STATE_OPEN == tmpDevState) - { - if (tmpPsdVobcCmd == VOBCTOCI_COMMAND_TYPE_PSDOPEN) - { - /* յVOBCToCIֱΪռô */ - devState = OTHER_CI_PSD_STATUS_OCCUPY_OPEN; - } - else - { - /* δյVOBCToCIֱΪŴ */ - devState = OTHER_CI_PSD_STATUS_OPEN; - } - } - else if (PSD_STATE_CLOSE == tmpDevState) - { - /* δɼֱΪŹر */ - devState = OTHER_CI_PSD_STATUS_CLOSE; + devState = OTHER_CI_PSD_STATUS_OPEN; /* 쳣״̬,Ϊ */ } else { - devState = 0u; + if ((PSD_MUTUALLOCK_REMOVE_YES == psdMutualLockState) || (PSD_ATS_MUTUALLOCK_REMOVE_YES == psdMutualLockState) + || (PSD_ATS_AND_JD_MUTUALLOCK_REMOVE_YES == psdMutualLockState)) + { + /* ɼֱΪŹر */ + devState = OTHER_CI_PSD_STATUS_CLOSE; + } + else if (PSD_STATE_OPEN == tmpDevState) + { + if (VOBCTOCI_COMMAND_TYPE_PSDOPEN == tmpPsdVobcCmd) + { + /* յVOBCToCIֱΪռô */ + devState = OTHER_CI_PSD_STATUS_OCCUPY_OPEN; + } + else + { + /* δյVOBCToCIֱΪŴ */ + devState = OTHER_CI_PSD_STATUS_OPEN; + } + } + else if (PSD_STATE_CLOSE == tmpDevState) + { + /* δɼֱΪŹر */ + devState = OTHER_CI_PSD_STATUS_CLOSE; + } + else + { + devState = 0U; + } } + break; case CI_DEVICE_TYPE_PSD_EXCEPT_OPEN: /*վ̨ţ쳣*/ devState = GePsdExceptState(devId); @@ -5125,7 +5135,7 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c } else { - devState = 0u; + devState = 0U; } break; case CI_DEVICE_TYPE_WASHMACHINE: /* ϴ */ @@ -5148,7 +5158,7 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c } else { - if (ttmpDevState == SPKS_CUT_NO) + if (SPKS_CUT_NO == ttmpDevState) { devState = OTHER_CI_SPKS_YES; } @@ -6200,7 +6210,8 @@ UINT8 CheckLogJumpLockApply(UINT16 logSectionId) UINT8 logSecLockState = 0U; UINT8 logSecLockRouteNum = 0U; UINT8 chFailStep = 0U; - + UINT8 cYLockAlarmFlag = FLAG_UNSET; /*־*/ + bufIndex = GetlogSectionBufIndex(logSectionId); /*ȡ±*/ /**±Ϸ*/ if (LOGIC_SECTION_SUM_MAX > bufIndex) @@ -6470,13 +6481,21 @@ UINT8 CheckLogJumpLockApply(UINT16 logSectionId) {/*״̬*/ devId = 0u; /*豸ID*/ devState = 0u; /*豸״̬*/ - reVal = LogicSecRltvPrtctSwFlockCheck(logSectionId, &devId, &devState);/**/ + reVal = LogicSecRltvPrtctSwFLockCheck(logSectionId, &devId, &devState, &cYLockAlarmFlag);/**/ + if (CI_SUCCESS != reVal) + { + chFailStep = 13U; + } } if (CI_SUCCESS == reVal) {/*λü*/ devId = 0u; /*豸ID*/ devState = 0u; /*豸״̬*/ reVal = LogicSecRltvPrtctSwPosCheck(logSectionId, &devId, &devState);/*λü*/ + if (CI_SUCCESS != reVal) + { + chFailStep = 14U; + } } } @@ -6863,7 +6882,7 @@ UINT8 JumpLockDriveSwitch(const UINT16 axisSecId) /* -: ڵ +: ڵι : const UINT16 axisSecId ID : const UINT8 DrivFlag ־ ֵ: @@ -6875,7 +6894,6 @@ void AxisSecDrvInnerSwitch(const UINT16 axisSecId, const UINT8 DrivFlag) UINT8 switchExpPos = 0u; /*λ*/ AxisSwitchStruct* pAxisSecSwitchStru = NULL; /**/ UINT8 ii = 0u; /*ѭ*/ - UINT8 funRtn = CI_ERROR; AxisSwitchStruct* pProtectSwitchStru = NULL; /*ݽṹָ*/ UINT8 protectSwitchSum = 0u; @@ -6895,7 +6913,7 @@ void AxisSecDrvInnerSwitch(const UINT16 axisSecId, const UINT8 DrivFlag) { switchId = pAxisSecSwitchStru[ii].SwitchId; switchExpPos = pAxisSecSwitchStru[ii].SwitchPosition; - funRtn = SwitchDriveProcess(switchId, switchExpPos); /*üڵ״̬Ϊ*/ + (void)SwitchDriveProcess(switchId, switchExpPos); /*üڵ״̬Ϊ*/ } for (ii = 0u; ii < protectSwitchSum; ii++) @@ -11657,21 +11675,19 @@ UINT8 GetLocalVirCiType(UINT8 chVirCiId) /* * жϱʱ״̬ * ˵ -* ֵʱЧʧܣZCͨسɹ +* ֵʱЧʧܣȷϷسɹ * Created :LYJ */ UINT8 CheckLocalCiLSXSStata(void) { - UINT8 cLocalCiId = 0U; UINT8 chRet = 0U; UINT8 chVirCINum = 0U; UINT8 i = 0U; UINT8 chXiansuState = 0U; UINT8 chVirtualCIid = 0U; UINT8 chTsrSureFlag = 0U; - cLocalCiId = GetSystemParaLocalCiId(); - chVirCINum = GetVirtualCINum(); + chTsrSureFlag = GetTsrSureFlag(); /*ȡʱȷϱ־*/ if (CI_TSR_SURE_YES == chTsrSureFlag) { @@ -11679,7 +11695,9 @@ UINT8 CheckLocalCiLSXSStata(void) } else { - /*ʱδȷϣжǷȷ*/ + /*ʱδȷϣжǷ*/ + + chVirCINum = GetVirtualCINum(); for (i = 0U; i < chVirCINum; i++) { chVirtualCIid = GetVirtualCIid(i); @@ -11697,4 +11715,85 @@ UINT8 CheckLocalCiLSXSStata(void) } return chRet; +} + +/* +: + ߼ιλ +: + const UINT16 ߼ID +: + . +ֵ: + +add by mpt 20260403 +*/ +void ClearLogSeceSwitchDanCaoPos(const UINT16 logicSecId) +{ + UINT8 switchSum = 0u; /*Ŀ*/ + UINT16 switchId = 0u; /*ID*/ + UINT8 ii = 0u; /*ѭ*/ + UINT8 checkSum = 0u; + LogsecSwitchStruct* dataIdBuf = NULL; + + UINT8 chLogicSecSwitchSum = 0U;/*߼εĿ*/ + LogsecSwitchStruct* pLogicSecSwitchIdData = NULL;/*߼εID*/ + + chLogicSecSwitchSum = GetLogicSecSwitchSum(logicSecId);/*߼εĿ*/ + pLogicSecSwitchIdData = GetLogicSecSwitchIdStru(logicSecId);/*߼εID*/ + + checkSum = GetLgcRelateProSwSum(logicSecId);/*ȡָID߼ιĿ*/ + dataIdBuf = GetLgcRelateProSwStru(logicSecId); + + + + if (NULL != pLogicSecSwitchIdData) + { + for (ii = 0u; ii < chLogicSecSwitchSum; ii++) + { + switchId = pLogicSecSwitchIdData[ii].SwitchId; + /*øõλΪЧ*/ + (void)SetSwitchDanCaoPosition(switchId, SWITCH_POSITION_INVALID); + } + } + + if (NULL != dataIdBuf) + { + for (ii = 0u; ii < checkSum; ii++) + { + switchId = dataIdBuf[ii].SwitchId; + /*øõλΪЧ*/ + (void) SetSwitchDanCaoPosition(switchId, SWITCH_POSITION_INVALID); + } + } +} + +/* +: + ιλ +: + const UINT16 ID +: + . +ֵ: + +add by mpt 20260403 +*/ +void ClearAxisSeceSwitchDanCaoPos(const UINT16 axisSecId) +{ + UINT16* pLogSectionIdBuf = NULL; + UINT8 chLogSectionSum = 0U; + UINT8 ii = 0U; + + pLogSectionIdBuf = GetAxisSecLogSectionIdBuf(axisSecId); + chLogSectionSum = GetAxisSecLogSectionSum(axisSecId); + + if (NULL != pLogSectionIdBuf) + { + for (ii = 0U; ii < chLogSectionSum; ii++) + { + /*߼ε־*/ + ClearLogSeceSwitchDanCaoPos(pLogSectionIdBuf[ii]); + } + } } \ No newline at end of file diff --git a/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.h b/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.h index 8bfe439..f2179fa 100644 --- a/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.h +++ b/TSCP/src/APP/ciapp/DataManage/DeviceDataManage.h @@ -76,7 +76,7 @@ typedef struct S_AreaSnowInfoStruct #define ALL_AREA_SNOW_SUM_MAX ((UINT8)254) /*TMC͵ȫѩվ̨*/ #define ALL_CBTC_CROSS_SUM_MAX ((UINT8)253) /*CBTCѹ*/ #define ALL_TACS_CROSS_SUM_MAX ((UINT8)253) /*TACSѹ*/ -#define CROSS_SIGNAL_ID_MAX ((UINT8)1499) /*ѹźŻIDֵ*/ +#define CROSS_SIGNAL_ID_MAX ((UINT16)1499) /*ѹźŻIDֵ*/ #define CBTC_CROSS_ID_MAX ((UINT8)253) /*CBTCѹгID*/ #define TACS_CROSS_ID_MAX ((UINT8)253) /*TACSѹгID*/ @@ -226,8 +226,6 @@ extern UINT8 comm_Train_Test_YSKJ_SCX_State; /* extern UINT8 comm_Train_Test_SQJ_CLD_State; /*Գ복βͨŽӿʱSQJ״̬*/ extern UINT8 comm_Train_Test_TYSJ_CLD_State; /*Գ복βͨŽӿʱTYSJ״̬*/ -extern UINT8 ZCToCIAutoRtnIndict_Flash_Sta; /*ZCCI۷״̬*/ -extern UINT8 ZCToCIAutoRtnIndict_Steady_Sta; /*ZCCI۷ȵ״̬*/ extern UINT8 AutoTriggerFlag; /*Զ־ʼΪδ*/ extern UINT8 CiCiRelayInterfaceConfirmFlag;/*̵ӿȷϱ־*/ @@ -1988,4 +1986,28 @@ UINT8 GetLocalVirCiType(UINT8 chVirCiId); */ UINT8 CheckLocalCiLSXSStata(void); +/* +: + ߼ιλ +: + const UINT16 ߼ID +: + . +ֵ: + +add by mpt 20260403 +*/ +void ClearLogSeceSwitchDanCaoPos(const UINT16 logicSecId); +/* +: + ιλ +: + const UINT16 ID +: + . +ֵ: + +add by mpt 20260403 +*/ +void ClearAxisSeceSwitchDanCaoPos(const UINT16 axisSecId); #endif diff --git a/TSCP/src/APP/ciapp/IO/DeviceRelayDataProcess.c b/TSCP/src/APP/ciapp/IO/DeviceRelayDataProcess.c index 469a7cf..23563d9 100644 --- a/TSCP/src/APP/ciapp/IO/DeviceRelayDataProcess.c +++ b/TSCP/src/APP/ciapp/IO/DeviceRelayDataProcess.c @@ -368,7 +368,8 @@ void OcSwitchDeviceOutput(void) if (0u < mainOcId) {/*OC*/ (void)SetSwitchLastValidDrvPos(switchId, driveSwitchPos); - (void)SetSwitchLastValidPosDrivCycNum(switchId, curNum); + (void)SetSwitchLastValidPosDrivCycNum(switchId, curNum);/*OCʱʼڣᱻ0*/ + SetSwitchOutputDrvCmdCycNum(switchId, curNum);/*OCʱʼڣλõڲɼλʱ*/ } else { @@ -379,6 +380,7 @@ void OcSwitchDeviceOutput(void) { (void)SetSwitchLastValidDrvPos(switchId, driveSwitchPos); (void)SetSwitchLastValidPosDrivCycNum(switchId, curNum); + SetSwitchOutputDrvCmdCycNum(switchId, curNum);/*OCʱʼڣλõڲɼλʱ*/ } } @@ -502,7 +504,7 @@ UINT8 GetOcSwitchState(UINT16 switchId,UINT8 mainControlOCId) rtnSwitchState = OC_SWITCH_POSITION_SIKAI; /*õϱ־*/ - SetSwitchFaultState(m_Switches[indexFind].DeviceId, SWITCH_FAULT_STATE_YES); + (void)SetSwitchFaultState(m_Switches[indexFind].DeviceId, SWITCH_FAULT_STATE_YES); /*ȡȡ״̬*/ switchBlockLinkState = GetCancelOrRcvrBlockLinkSta(); @@ -535,7 +537,7 @@ UINT8 GetOcSwitchState(UINT16 switchId,UINT8 mainControlOCId) else { /*õϱ־*/ - SetSwitchFaultState(m_Switches[indexFind].DeviceId, SWITCH_FAULT_STATE_NO); + (void)SetSwitchFaultState(m_Switches[indexFind].DeviceId, SWITCH_FAULT_STATE_NO); } } switch (rtnSwitchState) @@ -814,7 +816,7 @@ UINT8 GetOcSignalColor(UINT16 signalId) /*OCȫ̼ʱ*/ SetOcSignalStartCycNum(m_Signals[indexFind].DeviceId, 0); /*źŻɫΪƲô*/ - if (SIGNAL_SHOWCOLOUR_INVALID == sigPreDriveColor) + if (SIGNAL_DRIVECOLOUR_NULL == sigPreDriveColor) { rtnSigColor = SIGNAL_SHOWCOLOUR_REDCLOSE; } @@ -865,7 +867,7 @@ UINT8 GetOcSignalColor(UINT16 signalId) if (SIGNAL_LIGHT_EXTICT_STATE_NO == sigColorLevel) { /*źŻɫΪƲô*/ - if (SIGNAL_SHOWCOLOUR_INVALID == sigPreDriveColor) + if (SIGNAL_DRIVECOLOUR_NULL == sigPreDriveColor) { rtnSigColor = SIGNAL_SHOWCOLOUR_RED; } @@ -1117,15 +1119,9 @@ UINT8 SetSignalColorOcAllOff(const UINT16 signalId) case SIGNAL_DRIVECOLOUR_GREENCLOSE: case SIGNAL_DRIVECOLOUR_YELLOWCLOSE: /*̻ȫ ̻Ƶƿش򿪻򺼵ʱ ȡ֮ǰɫ*/ - if ((FUNC_SWITCH_ON == funSwitchGreenYellow) || (FUNC_SWITCH_ON == funSwitchALLCloseUseBlue)) - { - rtnSigColor = preDriveColor; - SignalDataStru[bufIndex].BlueDsBreakFlag = SIGNAL_DS_BREAK_YES; - } - else - { - rtnSigColor = SIGNAL_SHOWCOLOUR_REDBREAK; - } + /*ʱж ǣ֮ǰҿؾرգ*/ + rtnSigColor = preDriveColor; + SignalDataStru[bufIndex].BlueDsBreakFlag = SIGNAL_DS_BREAK_YES; break; case SIGNAL_DRIVECOLOUR_GREENYELLOWCLOSE: /*̻ȫ ̻Ƶƿشʱ*/ @@ -7299,6 +7295,8 @@ UINT8 PsdDeviceToRelayStateProc(void) UINT16 psdId = 0u; /*ID*/ UINT16 psdKMRelayId = 0u;/*ż̵ID*/ UINT16 tmpPsdKMRelayId = 0u;/*ż̵ID*/ + UINT8 ctmpPsdKMRelayState = RELAY_DRIVE_STATE_DOWN;/*ż̵״̬*/ + UINT8 ctmpPsdGMRelayState = RELAY_DRIVE_STATE_DOWN;/*ż̵״̬*/ UINT16 psdGMRelayId = 0u;/*ż̵ID*/ UINT16 psdEditGroupInfo = 0u;/*űϢ*/ UINT8 vobcInterFlag = 0u;/*vobcӿڱʶ*/ @@ -7313,6 +7311,8 @@ UINT8 PsdDeviceToRelayStateProc(void) UINT8 JXTCStopState = 0u; UINT8 psdVirtualState = 0u; UINT8 relayFlag = CI_ERROR; + UINT8 chKeepCloseType = FUNC_SWITCH_OFF; + UINT8 cFuncRet = 0u; vobcInterFlag = GetCiFunctionSwitchConfig(VOBC_INTERFACE_IDENTITY);/*ȡVOBCӿڱʶ*/ @@ -7373,7 +7373,6 @@ UINT8 PsdDeviceToRelayStateProc(void) } psdGMRelayId = GetPsdCloseDriveRelayId(psdId); psdDriveState = GetPsdDriveState(psdId); - if (PSD_DRIVE_STATE_CLOSE == psdDriveState)/*Ϊ*/ { relayFlag = SetRelayDriveState(psdGMRelayId, RELAY_DRIVE_STATE_UP); @@ -7454,7 +7453,25 @@ UINT8 PsdDeviceToRelayStateProc(void) } else if (PSD_DRIVE_STATE_INVALID == psdDriveState) {/*Ч*/ - relayFlag = SetRelayDriveState(psdGMRelayId, RELAY_DRIVE_STATE_DOWN); + chKeepCloseType = GetCiFunctionSwitchConfig(FUNC_PSD_KEEP_CLOSE_TYPE); + if (FUNC_SWITCH_ON == chKeepCloseType) + { + /*ȡPSD򿪹ر״̬*/ + cFuncRet = GetPsdState(psdId); + if (PSD_STATE_OPEN == cFuncRet) + { + ctmpPsdGMRelayState = RELAY_DRIVE_STATE_DOWN; + ctmpPsdKMRelayState = RELAY_DRIVE_STATE_UP; + } + else + { + ctmpPsdGMRelayState = RELAY_DRIVE_STATE_UP ; + ctmpPsdKMRelayState = RELAY_DRIVE_STATE_DOWN; + } + + } + relayFlag = SetRelayDriveState(psdGMRelayId, ctmpPsdGMRelayState); + if (CI_ERROR == relayFlag) {/*ż̵*/ reVal = CI_ERROR; @@ -7465,7 +7482,7 @@ UINT8 PsdDeviceToRelayStateProc(void) if (tmpPsdKMRelayId > 0u) { /*пż̵*/ - relayFlag = SetRelayDriveState(tmpPsdKMRelayId, RELAY_DRIVE_STATE_DOWN); + relayFlag = SetRelayDriveState(tmpPsdKMRelayId, ctmpPsdKMRelayState); if (CI_ERROR == relayFlag) {/*ż̵*/ reVal = CI_ERROR; @@ -7476,7 +7493,7 @@ UINT8 PsdDeviceToRelayStateProc(void) if (tmpPsdKMRelayId > 0u) { /*пż̵*/ - relayFlag = SetRelayDriveState(tmpPsdKMRelayId, RELAY_DRIVE_STATE_DOWN); + relayFlag = SetRelayDriveState(tmpPsdKMRelayId, ctmpPsdKMRelayState); if (CI_ERROR == relayFlag) {/*ż̵*/ reVal = CI_ERROR; @@ -7488,7 +7505,7 @@ UINT8 PsdDeviceToRelayStateProc(void) if (tmpPsdKMRelayId > 0u) { /*пż̵*/ - relayFlag = SetRelayDriveState(tmpPsdKMRelayId, RELAY_DRIVE_STATE_DOWN); + relayFlag = SetRelayDriveState(tmpPsdKMRelayId, ctmpPsdKMRelayState); if (CI_ERROR == relayFlag) {/*ż̵*/ reVal = CI_ERROR; @@ -7498,7 +7515,7 @@ UINT8 PsdDeviceToRelayStateProc(void) if (tmpPsdKMRelayId > 0u) { /*пż̵*/ - relayFlag = SetRelayDriveState(tmpPsdKMRelayId, RELAY_DRIVE_STATE_DOWN); + relayFlag = SetRelayDriveState(tmpPsdKMRelayId, ctmpPsdKMRelayState); if (CI_ERROR == relayFlag) {/*ż̵*/ reVal = CI_ERROR; @@ -7893,10 +7910,9 @@ void ProcessJXTCPulseInterfStopDrv(UINT16 startJXTCRelayId, UINT16 stopJXTCRelay /* * ϴ̵״̬ * ˵ void -* ֵ 0u: ʧ -* 1: ³ɹ +* ֵ void */ -UINT8 WashMachineDevToRelayStaProc(void) +void WashMachineDevToRelayStaProc(void) { UINT16 ii = 0u; /*α*/ UINT16 washMachineSum = 0u; /*ϴ*/ @@ -7907,7 +7923,7 @@ UINT8 WashMachineDevToRelayStaProc(void) UINT16 wCoupingStopSteadyRelayId = 0u; /*Ҷͣȼ̵*/ UINT16 pauseTrainWashRelayId = 0u; /*ͣϴ̵*/ UINT16 passRequestRelayId = 0u; /*̵ͨ*/ - UINT8 retVal = CI_SUCCESS; + UINT8 stpVal = CI_SUCCESS; UINT8 lineIdentity = 0u; /*CI-VOBCӿڱʶ*/ lineIdentity = GetCiFunctionSwitchConfig(VOBC_INTERFACE_IDENTITY);/*ȡCI-VOBCӿڱʶ*/ @@ -7920,9 +7936,9 @@ UINT8 WashMachineDevToRelayStaProc(void) washMachineId = GetWashMachineId(ii); if (CI_ERROR == washMachineId) { - retVal = CI_ERROR; + stpVal = CI_ERROR; } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { WashTrainRequestRelayId = GetWashTrainRequestRelayId(washMachineId); /*ȡϴ̵ϷΪϴͬ״̵̬*/ @@ -7933,21 +7949,21 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(WashTrainRequestRelayId, RELAY_STATE_UP)) {/*ϴ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else if (WASHMACHINE_DRVSTATE_REQ_FALSE == GetWashTrainRequestDrvState(washMachineId)) { if (CI_ERROR == SetRelayDriveState(WashTrainRequestRelayId, RELAY_STATE_DOWN)) {/*ϴ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else { if (CI_ERROR == SetRelayDriveState(WashTrainRequestRelayId, RELAY_STATE_DOWN)) {/*ϴ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } } @@ -7957,7 +7973,7 @@ UINT8 WashMachineDevToRelayStaProc(void) } } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { TrainHeadStopSteadyRelayId = GetTrainHeadStopSteadyRelayId(washMachineId); /*ȡͷϴλͣȼ̵*/ @@ -7967,14 +7983,14 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(TrainHeadStopSteadyRelayId, RELAY_STATE_UP)) {/*ͷͣȼ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else if (WASHMACHINE_HEAD_STEADY_NO == GetTrainHeadStopSteadyDrvState(washMachineId)) { if (CI_ERROR == SetRelayDriveState(TrainHeadStopSteadyRelayId, RELAY_STATE_DOWN)) {/*ͷͣȼ̵**/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } @@ -7982,7 +7998,7 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(TrainHeadStopSteadyRelayId, RELAY_STATE_DOWN)) {/*ͷͣȼ̵**/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } @@ -7993,7 +8009,7 @@ UINT8 WashMachineDevToRelayStaProc(void) } } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { TrainTailStopSteadyRelayId = GetTrainTailStopSteadyRelayId(washMachineId); /*ȡβϴλͣȼ̵*/ @@ -8003,14 +8019,14 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(TrainTailStopSteadyRelayId, RELAY_STATE_UP)) {/*βͣȼ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else if (WASHMACHINE_TAIL_STEADY_NO == GetTrainTailStopSteadyDrvState(washMachineId)) { if (CI_ERROR == SetRelayDriveState(TrainTailStopSteadyRelayId, RELAY_STATE_DOWN)) {/*βͣȼ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } @@ -8018,7 +8034,7 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(TrainTailStopSteadyRelayId, RELAY_STATE_DOWN)) {/*βͣȼ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } } @@ -8028,7 +8044,7 @@ UINT8 WashMachineDevToRelayStaProc(void) } } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { wCoupingStopSteadyRelayId = GetCoupingStopSteadyRelayId(washMachineId); /*ȡҶͣȼ̵*/ @@ -8038,14 +8054,14 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(wCoupingStopSteadyRelayId, RELAY_STATE_UP)) {/*Ҷͣȼ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else if (WASHMACHINE_TAIL_STEADY_NO == GetCoupingStopSteadyDrvState(washMachineId)) { if (CI_ERROR == SetRelayDriveState(wCoupingStopSteadyRelayId, RELAY_STATE_DOWN)) {/*Ҷͣȼ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } @@ -8053,7 +8069,7 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(wCoupingStopSteadyRelayId, RELAY_STATE_DOWN)) {/*Ҷͣȼ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } } @@ -8063,7 +8079,7 @@ UINT8 WashMachineDevToRelayStaProc(void) } } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { pauseTrainWashRelayId = GetPauseTrainWashRelayId(washMachineId); /*ȡͣϴ̵*/ @@ -8073,21 +8089,21 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(pauseTrainWashRelayId, RELAY_STATE_UP)) {/*ͣϴ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else if (WASHMACHINE_PAUSE_DRVREQ_FALSE == GetPauseTrainWashRequestDrvSta(washMachineId)) { if (CI_ERROR == SetRelayDriveState(pauseTrainWashRelayId, RELAY_STATE_DOWN)) {/*ͣϴ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else { if (CI_ERROR == SetRelayDriveState(pauseTrainWashRelayId, RELAY_STATE_DOWN)) {/*ͣϴ̵*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } } @@ -8097,7 +8113,7 @@ UINT8 WashMachineDevToRelayStaProc(void) } } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { passRequestRelayId = GetPassRequestRelayId(washMachineId); /*ȡ̵ͨ*/ @@ -8107,21 +8123,21 @@ UINT8 WashMachineDevToRelayStaProc(void) { if (CI_ERROR == SetRelayDriveState(passRequestRelayId, RELAY_STATE_UP)) {/*̵ͨ*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else if (PASS_WASHMACHINE_DRVREQ_FALSE == GetPassWashMachineReqDrvSta(washMachineId)) { if (CI_ERROR == SetRelayDriveState(passRequestRelayId, RELAY_STATE_DOWN)) {/*̵ͨ*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } else { if (CI_ERROR == SetRelayDriveState(passRequestRelayId, RELAY_STATE_DOWN)) {/*̵ͨ*/ - retVal = CI_ERROR; + stpVal = CI_ERROR; } } } @@ -8131,20 +8147,19 @@ UINT8 WashMachineDevToRelayStaProc(void) } } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { /*ϴģʽ̵*/ - retVal = WashMachineWorkModeRelayProc(washMachineId); + stpVal = WashMachineWorkModeRelayProc(washMachineId); } - if (CI_SUCCESS == retVal) + if (CI_SUCCESS == stpVal) { /*ϴӦ̵*/ DownWashDevToRelayStaProc(washMachineId); } } - return retVal; } /* @@ -9259,6 +9274,7 @@ void WashMachineButtonUpdate(const UINT16 washMachineId) UINT8 chRouteState = 0U;/*·״̬*/ UINT32 dwRouteIdleCycNum = 0U; /*·ʼں*/ UINT8 chDownWashAllowErrState = WASH_BUTTON_STATE_ERR_YES; /*ģʽϴϴͬճ״̬*/ + UINT8 wRouteInOutSecOccupy = CI_ERROR; /*ȡ·ʼźŻǷͬʱռѹ*/ curCycle = Get2oo2CurCycleNum(); if ((washMachineId > 0U) && (washMachineId < WASHMACHINE_SUM_MAX)) @@ -9318,16 +9334,22 @@ void WashMachineButtonUpdate(const UINT16 washMachineId) dwRouteIdleCycNum = GetRouteIdleCycNum(wDownWashRelateRouteId); wDownWashAllowColState = GetDownWashAllowColState(washMachineId); dwDownWashAllowVadCycle = GetDownWashBtVadCycle(washMachineId); + wRouteInOutSecOccupy = RouteInOutSecOccupy(wDownWashRelateRouteId); + if ((CI_START_FLOCK_NO == GetStartFLockFlag()) && CI_SUCCESS == wRouteInOutSecOccupy) + { + RouteDriveIntoResult = CI_SUCCESS; /*гʻ*/ + } if ((ROUTE_STATE_IDLE == chRouteState) && (WASH_COL_STATE_ALLOW_YES == wDownWashAllowColState) && - (0U != dwDownWashAllowVadCycle) && (dwDownWashAllowVadCycle < dwRouteIdleCycNum)) + (0U != dwDownWashAllowVadCycle) && (dwDownWashAllowVadCycle < dwRouteIdleCycNum) && (CI_SUCCESS == RouteDriveIntoResult)) { - /*·һͬ*/ + /*·һͬIJ߼ϴΪ޸ȱݣȡϴʱδʻ·Ҫȡ·ִȡϴ*/ SetDownWashAllowColState(washMachineId, WASH_COL_STATE_ALLOW_NO); SetDownWashBtVadCycle(washMachineId, 0U); /*·ϴ״̬ںҲ*/ SetDownWashReqState(washMachineId, WASH_REQ_STATE_ALLOW_NO); SetDownWashReqCycle(washMachineId, 0U); + RouteDriveIntoResult = CI_ERROR; } else { @@ -9363,7 +9385,8 @@ void WashMachineDCCButtonUpdate(const UINT16 washMachineId) UINT8 chRouteState = 0U;/*·״̬*/ UINT32 dwRouteIdleCycNum = 0U; /*·ʼں*/ UINT8 chDownDccWashAllowErrState = WASH_BUTTON_STATE_ERR_YES; /*ģʽDCCϴͬճ״̬*/ - + UINT8 wRouteInOutSecOccupy = CI_ERROR; /*ȡ·ʼźŻǷͬʱռѹ*/ + curCycle = Get2oo2CurCycleNum(); if ((washMachineId > 0U) && (washMachineId < WASHMACHINE_SUM_MAX)) { @@ -9423,15 +9446,22 @@ void WashMachineDCCButtonUpdate(const UINT16 washMachineId) dwRouteIdleCycNum = GetRouteIdleCycNum(wDownWashRelateRouteId); wDownDccWashAllowColState = GetDownDccWashAllowColState(washMachineId); dwDownWashDccBtVadCycle = GetDownWashDccBtVadCycle(washMachineId); - if ((ROUTE_STATE_IDLE == chRouteState) && (WASH_COL_STATE_ALLOW_YES == wDownDccWashAllowColState) && - (0U != dwDownWashDccBtVadCycle) && (dwDownWashDccBtVadCycle < dwRouteIdleCycNum)) + wRouteInOutSecOccupy = RouteInOutSecOccupy(wDownWashRelateRouteId); + if ((CI_START_FLOCK_NO == GetStartFLockFlag()) && CI_SUCCESS == wRouteInOutSecOccupy) { - /*·һͬ*/ + RouteDriveIntoResult = CI_SUCCESS; /*гʻ*/ + } + + if ((ROUTE_STATE_IDLE == chRouteState) && (WASH_COL_STATE_ALLOW_YES == wDownDccWashAllowColState) && + (0U != dwDownWashDccBtVadCycle) && (dwDownWashDccBtVadCycle < dwRouteIdleCycNum) && (CI_SUCCESS == RouteDriveIntoResult)) + { + /*·һͬIJ֧ϴΪ޸ȱݣȡϴʱδʻ·Ҫȡ·ִȡϴ*/ SetDownDccWashAllowColState(washMachineId, WASH_COL_STATE_ALLOW_NO); SetDownWashDccBtVadCycle(washMachineId, 0U); /*·ϴ״̬ںҲ*/ SetDownWashReqState(washMachineId, WASH_REQ_STATE_ALLOW_NO); SetDownWashReqCycle(washMachineId, 0U); + RouteDriveIntoResult = CI_ERROR; } else { @@ -9507,6 +9537,7 @@ void WashMachinePassButtonUpdate(const UINT16 washMachineId) UINT32 dwRouteIdleCycNum = 0U; /*·ʼں*/ UINT8 chDownWashAllowPassErrState = WASH_BUTTON_STATE_ERR_YES; /*ģʽϴϴͬⷴͨճ״̬*/ UINT32 dwDownWashBtVadPassCycle = 0U; /*ģʽϴ߷ͨϴͬⰴťЧ*/ + UINT8 wRouteInOutSecOccupy = CI_ERROR; curCycle = Get2oo2CurCycleNum(); if ((washMachineId > 0U) && (washMachineId < WASHMACHINE_SUM_MAX)) @@ -9562,8 +9593,13 @@ void WashMachinePassButtonUpdate(const UINT16 washMachineId) dwRouteIdleCycNum = GetRouteIdleCycNum(wDownWashRelateRouteId); wDownWashAllowPassColState = GetDownWashAllowPassColState(washMachineId); dwDownWashBtVadPassCycle = GetDownWashBtVadPassCycle(washMachineId); + wRouteInOutSecOccupy = RouteInOutSecOccupy(wDownWashRelateRouteId); + if ((CI_START_FLOCK_NO == GetStartFLockFlag()) && (CI_SUCCESS == wRouteInOutSecOccupy)) + { + RouteDriveIntoResult = CI_SUCCESS; /*гʻ*/ + } if ((ROUTE_STATE_IDLE == chRouteState) && (WASH_COL_STATE_ALLOW_YES == wDownWashAllowPassColState) && - (0U != dwDownWashBtVadPassCycle) && (dwDownWashBtVadPassCycle < dwRouteIdleCycNum)) + (0U != dwDownWashBtVadPassCycle) && (dwDownWashBtVadPassCycle < dwRouteIdleCycNum) && (CI_SUCCESS == RouteDriveIntoResult)) { /*·һͬ*/ SetDownWashAllowPassColState(washMachineId, WASH_COL_STATE_ALLOW_NO); @@ -9571,6 +9607,7 @@ void WashMachinePassButtonUpdate(const UINT16 washMachineId) /*·ϴͨ״̬ںҲ*/ SetDownWashPassReqState(washMachineId, WASH_REQ_STATE_ALLOW_NO); SetDownWashPassReqCycle(washMachineId, 0U); + RouteDriveIntoResult = CI_ERROR; } else { @@ -9610,7 +9647,7 @@ void WashMachineDCCPassButtonUpdate(const UINT16 washMachineId) UINT32 dwRouteIdleCycNum = 0U; /*·ʼں*/ UINT8 chDownDccWashAllowPassErrState = WASH_BUTTON_STATE_ERR_YES; /*ģʽDCCϴͬⷴͨճ״̬(ֶ̬:ɼ)*/ UINT32 dwDownWashDccBtVadPassCycle = 0U; /*ģʽDCCͨϴͬⰴťЧ*/ - + UINT8 wRouteInOutSecOccupy = CI_ERROR; curCycle = Get2oo2CurCycleNum(); if ((washMachineId > 0U) && (washMachineId < WASHMACHINE_SUM_MAX)) @@ -9667,8 +9704,13 @@ void WashMachineDCCPassButtonUpdate(const UINT16 washMachineId) dwRouteIdleCycNum = GetRouteIdleCycNum(wDownWashRelateRouteId); wDownDccWashAllowPassColState = GetDownDccWashAllowPassColState(washMachineId); dwDownWashDccBtVadPassCycle = GetDownWashDccBtVadPassCycle(washMachineId); + wRouteInOutSecOccupy = RouteInOutSecOccupy(wDownWashRelateRouteId); + if ((CI_START_FLOCK_NO == GetStartFLockFlag()) && (CI_SUCCESS == wRouteInOutSecOccupy)) + { + RouteDriveIntoResult = CI_SUCCESS; /*гʻ*/ + } if ((ROUTE_STATE_IDLE == chRouteState) && (WASH_COL_STATE_ALLOW_YES == wDownDccWashAllowPassColState) && - (0U != dwDownWashDccBtVadPassCycle) && (dwDownWashDccBtVadPassCycle < dwRouteIdleCycNum)) + (0U != dwDownWashDccBtVadPassCycle) && (dwDownWashDccBtVadPassCycle < dwRouteIdleCycNum) && (CI_SUCCESS == RouteDriveIntoResult)) { /*·һͬ*/ SetDownDccWashAllowPassColState(washMachineId, WASH_COL_STATE_ALLOW_NO); @@ -9676,6 +9718,7 @@ void WashMachineDCCPassButtonUpdate(const UINT16 washMachineId) /*·ϴͨ״̬ںҲ*/ SetDownWashPassReqState(washMachineId, WASH_REQ_STATE_ALLOW_NO); SetDownWashPassReqCycle(washMachineId, 0U); + RouteDriveIntoResult = CI_ERROR; } else { @@ -9978,10 +10021,9 @@ void WashMachineApplyStateProc(const UINT16 washMachineId) /* * ϴ߼״̬ * ˵ void -* ֵ 0u: ʧ -* 1: ³ɹ +* ֵ void */ -UINT8 WashMachineToDeviceStateProc(void) +void WashMachineToDeviceStateProc(void) { UINT16 ii = 0u; /*α*/ UINT16 washMachineSum = 0u; /*ϴ*/ @@ -9993,7 +10035,7 @@ UINT8 WashMachineToDeviceStateProc(void) UINT16 tailWashAllowRelayId = 0u; /*ϴβϴ̵ID*/ UINT16 coupingWashAllowRelayId = 0u; /*ϴҶϴ̵ID*/ UINT16 outWashTrainPortAllowRelayId = 0u; /*ϴϴ̵ID*/ - UINT8 ret = CI_SUCCESS; + UINT8 stp = CI_SUCCESS; UINT8 lineIdentity = 0u; /*CI-VOBCӿڱʶ*/ UINT16 washModeBackRelayId = 0U; UINT8 washModeState = 0U; @@ -10007,10 +10049,10 @@ UINT8 WashMachineToDeviceStateProc(void) washMachineId = GetWashMachineId(ii); if (CI_ERROR == washMachineId) { - ret = CI_ERROR; + stp = CI_ERROR; } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { /*ϴȷ״̬*/ washMachineReVeriRelayId = GetWashMachineReqVerifyRelayId(washMachineId); @@ -10022,7 +10064,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetWashMachineRequestVerifySta(washMachineId, WASHMACHINE_COL_REQUEST_VALID); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if (RELAY_STATE_DOWN == relayCollState) @@ -10030,12 +10072,12 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetWashMachineRequestVerifySta(washMachineId, WASHMACHINE_COL_REQUEST_INVALID); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else { - ret = CI_ERROR; + stp = CI_ERROR; } } else @@ -10044,7 +10086,7 @@ UINT8 WashMachineToDeviceStateProc(void) } } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { /*ͷϴ״̬*/ headWashAllowRelayId = GetHeadWashAllowRelayId(washMachineId); @@ -10057,7 +10099,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetHeadWashAllowState(washMachineId, WASHMACHINE_COL_HEADWASH_YES); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if (RELAY_STATE_DOWN == relayCollState) @@ -10065,12 +10107,12 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetHeadWashAllowState(washMachineId, WASHMACHINE_COL_HEADWASH_NO); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else { - ret = CI_ERROR; + stp = CI_ERROR; } } else @@ -10079,7 +10121,7 @@ UINT8 WashMachineToDeviceStateProc(void) } } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { /*βϴ״̬*/ tailWashAllowRelayId = GetTailWashAllowRelayId(washMachineId); @@ -10092,7 +10134,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTailWashAllowState(washMachineId, WASHMACHINE_COL_TAILWASH_YES); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if (RELAY_STATE_DOWN == relayCollState) @@ -10100,12 +10142,12 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTailWashAllowState(washMachineId, WASHMACHINE_COL_TAILWASH_NO); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else { - ret = CI_ERROR; + stp = CI_ERROR; } } else @@ -10114,7 +10156,7 @@ UINT8 WashMachineToDeviceStateProc(void) } } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { /*Ҷϴ״̬*/ coupingWashAllowRelayId = GetCoupingWashAllowRelayId(washMachineId); @@ -10127,7 +10169,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetCoupingWashAllowState(washMachineId, WASHMACHINE_COL_COUPINGWASH_YES); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if (RELAY_STATE_DOWN == relayCollState) @@ -10135,12 +10177,12 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetCoupingWashAllowState(washMachineId, WASHMACHINE_COL_COUPINGWASH_NO); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else { - ret = CI_ERROR; + stp = CI_ERROR; } } else @@ -10149,7 +10191,7 @@ UINT8 WashMachineToDeviceStateProc(void) } } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { /*ϴ״̬*/ emergencyStopRelayId = GetTrainEmergencyStopRelayId(washMachineId); @@ -10164,7 +10206,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainEmergencyStopState(washMachineId, WASHMACHINE_COL_FALUT_NO); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if ((LINE_FAOHLHT == lineIdentity) || (LINE_FAOHLHT_ONESELF == lineIdentity) || (LINE_FAOHLHT_ONESELFSECOND == lineIdentity) @@ -10173,12 +10215,12 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainEmergencyStopState(washMachineId, WASHMACHINE_COL_FALUT_NO_2); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else {/*·*/ - ret = CI_ERROR; + stp = CI_ERROR; } } @@ -10189,7 +10231,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainEmergencyStopState(washMachineId, WASHMACHINE_COL_FALUT_YES); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if ((LINE_FAOHLHT == lineIdentity) || (LINE_FAOHLHT_ONESELF == lineIdentity) || (LINE_FAOHLHT_ONESELFSECOND == lineIdentity) @@ -10198,18 +10240,18 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainEmergencyStopState(washMachineId, WASHMACHINE_COL_FALUT_YES_2); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else {/*·*/ - ret = CI_ERROR; + stp = CI_ERROR; } } else { - ret = CI_ERROR; + stp = CI_ERROR; } } else @@ -10217,7 +10259,7 @@ UINT8 WashMachineToDeviceStateProc(void) /*øü̵ִ*/ } } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { /*ϴ״̬*/ washMachineReadyRelayId = GetWashMachineReadyRelayId(washMachineId); @@ -10229,7 +10271,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetWashMachineReadyState(washMachineId, WASHMACHINE_COL_READY_YES); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if (RELAY_STATE_DOWN == relayCollState) @@ -10237,12 +10279,12 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetWashMachineReadyState(washMachineId, WASHMACHINE_COL_READY_NO); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else { - ret = CI_ERROR; + stp = CI_ERROR; } } else @@ -10251,7 +10293,7 @@ UINT8 WashMachineToDeviceStateProc(void) } } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { /*ϴ״̬*/ outWashTrainPortAllowRelayId = GetTrainOutWashPortAllowRelay(washMachineId); @@ -10266,7 +10308,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainOutWashPortAllowSta(washMachineId, WASHMACHINE_COL_OUT_YES); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if ((LINE_FAOHLHT == lineIdentity) || (LINE_FAOHLHT_ONESELF == lineIdentity) || (LINE_FAOHLHT_ONESELFSECOND == lineIdentity) @@ -10275,12 +10317,12 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainOutWashPortAllowSta(washMachineId, WASHMACHINE_COL_OUT_YES_2); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else {/*·*/ - ret = CI_ERROR; + stp = CI_ERROR; } } else if (RELAY_STATE_DOWN == relayCollState) @@ -10290,7 +10332,7 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainOutWashPortAllowSta(washMachineId, WASHMACHINE_COL_OUT_NO); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else if ((LINE_FAOHLHT == lineIdentity) || (LINE_FAOHLHT_ONESELF == lineIdentity) || (LINE_FAOHLHT_ONESELFSECOND == lineIdentity) @@ -10299,17 +10341,17 @@ UINT8 WashMachineToDeviceStateProc(void) retRsult = SetTrainOutWashPortAllowSta(washMachineId, WASHMACHINE_COL_OUT_NO_2); if (CI_ERROR == retRsult) { - ret = CI_ERROR; + stp = CI_ERROR; } } else {/*·*/ - ret = CI_ERROR; + stp = CI_ERROR; } } else { - ret = CI_ERROR; + stp = CI_ERROR; } } else @@ -10318,7 +10360,7 @@ UINT8 WashMachineToDeviceStateProc(void) } } - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { washModeBackRelayId = GetWashModeBackRelayId(washMachineId); if ((0U != washModeBackRelayId) && (UINT16_MAX != washModeBackRelayId)) @@ -10344,18 +10386,16 @@ UINT8 WashMachineToDeviceStateProc(void) } /*ģʽϴť״̬*/ - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { WashMachineButtonStateProc(washMachineId); } /*ģʽϢ*/ - if (CI_SUCCESS == ret) + if (CI_SUCCESS == stp) { WashMachineApplyStateProc(washMachineId); } } - - return ret; } @@ -18255,6 +18295,7 @@ void SwitchMainControlCmdOut(UINT16 switchId,UINT8 ocId) UINT8 timeCheckRet = 0u; UINT32 chCurCycleNum = 0u; UINT8 ret = CI_ERROR; + UINT16 wThisOcOtherSwitchId = 0u; chCurCycleNum = Get2oo2CurCycleNum(); @@ -18309,6 +18350,36 @@ void SwitchMainControlCmdOut(UINT16 switchId,UINT8 ocId) ret = CI_SUCCESS; } } + if (CI_SUCCESS == ret) + {/*ͱͬOCͬ忨ĵǷڼ*/ + wThisOcOtherSwitchId = GetSwitchThisOcOtherSwitchId(switchId, ocId); + if (SWITCH_SUM_MAX > wThisOcOtherSwitchId) + {/*0*/ + dwSwitchOutputDrvCmdCycNum = GetSwitchOutputDrvCmdCycNum(wThisOcOtherSwitchId); + if (0U < dwSwitchOutputDrvCmdCycNum) + {/*ǰ*/ + dwDrvCutMaxCycNum = GetSwitchMachineDrvCutInterval();/*ڼлʱ*/ + timeCheckRet = SystemOverTimeCheck(dwSwitchOutputDrvCmdCycNum, dwDrvCutMaxCycNum); + + if ((CI_TIME_OUT == timeCheckRet) && (0u < dwDrvCutMaxCycNum)) + {/*ʱ*/ + ret = CI_SUCCESS; + } + else + { + ret = CI_ERROR; + } + } + else + { + ret = CI_SUCCESS; + } + } + else + {/*ȡǷֵ*/ + ret = CI_ERROR; + } + } if (CI_SUCCESS == ret) { @@ -18341,8 +18412,6 @@ void SwitchMainControlCmdOut(UINT16 switchId,UINT8 ocId) */ void SwitchDoubleMainProtect(UINT16 switchId) { - UINT8 chSwitchIncludeOcNum = 0U; - UINT8 i = 0U; UINT8 ocId = 0u; UINT8 otherOcId = 0U; UINT8 chOcCotrolMode = 0U; @@ -18350,45 +18419,43 @@ void SwitchDoubleMainProtect(UINT16 switchId) UINT8 chThisOcCmd = 0u; UINT8 chOtherOcCmd = 0u; - chSwitchIncludeOcNum = GetSwitchIncludeOcNum(switchId); - for (i = 0u; i < chSwitchIncludeOcNum; i++) - { - ocId = GetSwitchIncludeOCId(switchId, i); - otherOcId = GetSwitchThisOcOtherOCId(switchId, ocId); - /*ȡOC״̬*/ - chOcCotrolMode = GetSwitchThisOcCotrolMode(switchId, ocId); - chOtherOcCotrolMode = GetSwitchThisOcCotrolMode(switchId, otherOcId); + + ocId = GetSwitchIncludeOCId(switchId, 0u); + otherOcId = GetSwitchThisOcOtherOCId(switchId, ocId); + /*ȡOC״̬*/ + chOcCotrolMode = GetSwitchThisOcCotrolMode(switchId, ocId); + chOtherOcCotrolMode = GetSwitchThisOcCotrolMode(switchId, otherOcId); - if ((MAIN_CONTROL == chOcCotrolMode) || (ERR_MODE_CONTROL == chOcCotrolMode)) - {/*OC忨*/ - if ((MAIN_CONTROL == chOtherOcCotrolMode) || (ERR_MODE_CONTROL == chOtherOcCotrolMode)) - {/*һOC忨*/ + if ((MAIN_CONTROL == chOcCotrolMode) || (ERR_MODE_CONTROL == chOcCotrolMode)) + {/*OC忨*/ + if ((MAIN_CONTROL == chOtherOcCotrolMode) || (ERR_MODE_CONTROL == chOtherOcCotrolMode)) + {/*һOC忨*/ - /*OCءһOC*/ - SetSwitchThisOcOutControlCmd(switchId, ocId, STANDBY_CONTROL); - SetSwitchThisOcOutControlCmd(switchId, otherOcId, STANDBY_CONTROL); - } - else - { - /*޴*/ - } + /*OCءһOC*/ + SetSwitchThisOcOutControlCmd(switchId, ocId, STANDBY_CONTROL); + SetSwitchThisOcOutControlCmd(switchId, otherOcId, STANDBY_CONTROL); } else { /*޴*/ } - - /*OCһOC˫*/ - chThisOcCmd = GetSwitchThisOcOutControlCmd(switchId, ocId); - chOtherOcCmd = GetSwitchThisOcOutControlCmd(switchId, otherOcId); - if ((MAIN_CONTROL == chThisOcCmd) && (MAIN_CONTROL == chOtherOcCmd)) - { - /*OCءһOC*/ - SetSwitchThisOcOutControlCmd(switchId, ocId, STANDBY_CONTROL); - SetSwitchThisOcOutControlCmd(switchId, otherOcId, STANDBY_CONTROL); - } - } + else + { + /*޴*/ + } + + /*OCһOC˫*/ + chThisOcCmd = GetSwitchThisOcOutControlCmd(switchId, ocId); + chOtherOcCmd = GetSwitchThisOcOutControlCmd(switchId, otherOcId); + if ((MAIN_CONTROL == chThisOcCmd) && (MAIN_CONTROL == chOtherOcCmd)) + { + /*OCءһOC*/ + SetSwitchThisOcOutControlCmd(switchId, ocId, STANDBY_CONTROL); + SetSwitchThisOcOutControlCmd(switchId, otherOcId, STANDBY_CONTROL); + } + + } @@ -18415,7 +18482,7 @@ void FindSwitchPostionCmdOut(UINT16 switchId) mainOcId = GetSwitchMainCotrolOCId(switchId);/*ȡOCID*/ chSwitchIncludeOcNum = GetSwitchIncludeOcNum(switchId); - chSwitchColPos = GetSwitchCollPos(switchId); + chSwitchColPos = GetSingleSwitchCurPosition(switchId); if (0u == mainOcId) {/*ǰ*/ if ((SWITCH_POSITION_DINGWEI != chSwitchColPos) && (SWITCH_POSITION_FANWEI != chSwitchColPos)) @@ -18463,58 +18530,14 @@ void FindSwitchPostionCmdOut(UINT16 switchId) } } else - {/**/ - if ((SWITCH_POSITION_DINGWEI == chSwitchColPos) || (SWITCH_POSITION_FANWEI == chSwitchColPos)) - {/*λλ*/ - SetSwitchThisOcFindPostionCmd(switchId, mainOcId, NO_FIND_CMD); - SetSwitchThisOcFindCmdCycNum(switchId, mainOcId, 0u); + {/*أѰʾ*/ + + SetSwitchThisOcFindPostionCmd(switchId, mainOcId, NO_FIND_CMD); + SetSwitchThisOcFindCmdCycNum(switchId, mainOcId, 0u); - otherOcId = GetSwitchThisOcOtherOCId(switchId, mainOcId); - SetSwitchThisOcFindPostionCmd(switchId, otherOcId, NO_FIND_CMD); - SetSwitchThisOcFindCmdCycNum(switchId, otherOcId, 0u); - } - else - {/*֮ǰ*/ - } - } - - /*Ѱʾʱģ*/ - FindSwitchPostionCmdTimeOutCheck(switchId); - -} - -/* -* Ѱʱģ -* ˵ UINT16 switchId ID -* ֵ void -* add by mpt 20260330 -*/ -void FindSwitchPostionCmdTimeOutCheck(UINT16 switchId) -{ - UINT32 dwOcFindCmdCycNum = 0u; - UINT8 chSwitchIncludeOcNum = 0u; - UINT8 i = 0u; - UINT8 ocId = 0u; - UINT8 chThisOcFindPostionCmd = 0u; - UINT32 dwSwitchDriveCyc = 0u; - UINT8 timeCheckRet = 0u; - - dwSwitchDriveCyc = GetSystemParaSwitchDriveCyc(); - chSwitchIncludeOcNum = GetSwitchIncludeOcNum(switchId); - - for (i = 0u; i < chSwitchIncludeOcNum; i++) - { - ocId = GetSwitchIncludeOCId(switchId, i); - chThisOcFindPostionCmd = GetSwitchThisOcFindPostionCmd(switchId, ocId); - if (NO_FIND_CMD != chThisOcFindPostionCmd) - {/*ǰѰ*/ - dwOcFindCmdCycNum = GetSwitchThisOcFindCmdCycNum(switchId, ocId); - - timeCheckRet = SystemOverTimeCheck(dwOcFindCmdCycNum, dwSwitchDriveCyc); - if ((CI_TIME_OUT == timeCheckRet)&&(0uOcDevices[jj].szSwitchIncldeZzjState[chSwitchZzjIndex] = OC_SWITCH_POSITION_SIKAI; } - for (kk = 0u; kk < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; kk++) + for (mm = 0u; mm < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; mm++) { - pTempOc->OcDevices[jj].MainStandbyState[kk] = STANDBY_CONTROL;/*Ȩ*/ + pTempOc->OcDevices[jj].MainStandbyState[mm] = STANDBY_CONTROL;/*Ȩ*/ } } @@ -1071,20 +1072,20 @@ void ProcessOcToCiData(void) m_Switches[jj].MainStandbyState[j] = STANDBY_CONTROL;/**/ } - SetSwitchOcPlusBoxSateState(m_Switches[jj].DeviceId, pTempOc->OcId, SWITCH_BOX_FAULT);/**/ + SetSwitchOcPlusBoxSateState(m_Switches[jj].DeviceId, (UINT8)pTempOc->OcId, SWITCH_BOX_FAULT);/**/ /*ð忨Ϊ״̬*/ for (j = 0U; j < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; j++) { - SetSwitchThisOCBoardState(m_Switches[jj].DeviceId, m_Switches[jj].OcId, m_Switches[jj].BoardAddr[j], 0xffU); + SetSwitchThisOCBoardState(m_Switches[jj].DeviceId, (UINT8)m_Switches[jj].OcId, m_Switches[jj].BoardAddr[j], 0xffU); } /*ͨжϽ״̬Ϊزں*/ - chThisOcCotrolMode = GetSwitchThisOcCotrolMode(m_Switches[jj].DeviceId, pTempOc->OcId); + chThisOcCotrolMode = GetSwitchThisOcCotrolMode(m_Switches[jj].DeviceId, (UINT8)pTempOc->OcId); if ((MAIN_CONTROL == chThisOcCotrolMode) || (ERR_MODE_CONTROL == chThisOcCotrolMode)) {/*ػ쳣*/ - SetSwitchThisOcCotrolMode(m_Switches[jj].DeviceId, pTempOc->OcId, STANDBY_CONTROL); - SetSwitchOutMainContrCmdCycNum(m_Switches[jj].DeviceId, pTempOc->OcId, curCycle);/*ͨжϵOCأˢںţOCزʱʱһʱ*/ + SetSwitchThisOcCotrolMode(m_Switches[jj].DeviceId, (UINT8)pTempOc->OcId, STANDBY_CONTROL); + SetSwitchOutMainContrCmdCycNum(m_Switches[jj].DeviceId, (UINT8)pTempOc->OcId, curCycle);/*ͨжϵOCأˢںţOCزʱʱһʱ*/ } } @@ -1382,7 +1383,7 @@ void ProcessZcToCiData(void) sourceIdBuf = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_ZC);/*ȡ뱾ͨŵZCIDĿǰһֻһZCͨ*/ - if (sourceIdBuf != NULL) + if (NULL != sourceIdBuf) { /*ZCͨ״̬*/ (void)UpdateCiTransmitState(localCiId, CI_SYSTEM_TYPE_ZC, sourceIdBuf[0]); @@ -1391,11 +1392,11 @@ void ProcessZcToCiData(void) hLHTHeadCtxValid = GetHLHTHeadCtxValid(CI_SYSTEM_TYPE_ZC, sourceIdBuf[0]); if (CI_ERROR == hLHTHeadCtxValid) /*ʹGetZcMaskZcId()ȡZC IDΪZCݾ*/ { - dataValidFlag = 0u; + dataValidFlag = 0U; } else {/*ϢЧ*/ - dataValidFlag = 1u; + dataValidFlag = 1U; } debug_infor_printf((const)"\n CurCycle:%d ZcCiValidFlag:%d \n",curCycle,dataValidFlag); @@ -1405,7 +1406,7 @@ void ProcessZcToCiData(void) secJumpLockDelayUnlockCount = GetSysParaSecJLokDelayUnlockCyc();/*ȡԾʱ*/ - if ((0u == zcMaskValueLen) || (NULL == pZcMaskValueBuf)) + if ((0U == zcMaskValueLen) || (NULL == pZcMaskValueBuf)) {/*δյzc͹λ*/ /*if (GetCiTransmitState(CI_SYSTEM_TYPE_ZC, 0u) != TRANSMIT_STATE_GOOD)*/ @@ -1573,7 +1574,7 @@ void ProcessZcToCiData(void) } } - if (reVal == CI_SUCCESS) + if (CI_SUCCESS == reVal) { /*ZCͨŻָ󣬵ʱάֶ̬Է״̬*/ phySecCurSum = GetPhySecCurSum(); @@ -1603,7 +1604,7 @@ void ProcessZcToCiData(void) } /*ZC͵ʱϢ*/ - if (reVal == CI_SUCCESS) + if (CI_SUCCESS == reVal) { cTsrSureFlag = GetTsrSureFlag(); pZcToCiDataStru = GetZcToCiDataStru(); @@ -1627,7 +1628,7 @@ void ProcessZcToCiData(void) } /*ZC͵ĽƶϢ*/ - if (reVal == CI_SUCCESS) + if (CI_SUCCESS == reVal) { if (NULL != pZcToCiDataStru) { @@ -1647,12 +1648,10 @@ void ProcessZcToCiData(void) } } - /*˴ٴZC͵ѩϢתںϴ*/ - /*ZC͵ѩģʽϢ*/ - if (reVal == CI_SUCCESS) + if (CI_SUCCESS == reVal) { - if ((1u == dataValidFlag)&&(ZC_TSR_VALID == pZcToCiDataStru->tsrInputInfoStru.cTsrValidFlag)) + if (1U == dataValidFlag) { if ((CI_ALL_SNOW_VALID == pZcToCiDataStru->cSnowValidFlag) || (CI_ALL_SNOW_UNVALID == pZcToCiDataStru->cSnowValidFlag)) { @@ -1674,7 +1673,7 @@ void ProcessZcToCiData(void) /*ZC͵ITEȫгϢ*/ - if (reVal == CI_SUCCESS) + if (CI_SUCCESS == reVal) { if ((1u == dataValidFlag) && (ZC_TSR_VALID == pZcToCiDataStru->tsrInputInfoStru.cTsrValidFlag) && ((CI_ITE_LINE_CUT_VALID == pZcToCiDataStru->cIteLineCutState) || (CI_ITE_LINE_CUT_INVALID == pZcToCiDataStru->cIteLineCutState) || (CI_ITE_LINE_CUT_DEFAULT == pZcToCiDataStru->cIteLineCutState))) @@ -1699,9 +1698,16 @@ void ProcessZcToCiData(void) { if ((1u == dataValidFlag) && (ALL_CBTC_CROSS_SUM_MAX >= pZcToCiDataStru->wCbtcCrossNum)) { - /**/ - SetCbtcCrossInfo(pZcToCiDataStru->wCbtcCrossNum, - pZcToCiDataStru->wCbtcCrossSignalId, pZcToCiDataStru->wCbtcCrossTrainId); + /*յCBTCѹ֡ʱCBTCѹȫֱ*/ + if (CI_SUCCESS == pZcToCiDataStru->cRecvCbtcCrossFrameTag) + { + SetCbtcCrossInfo(pZcToCiDataStru->wCbtcCrossNum, + pZcToCiDataStru->wCbtcCrossSignalId, pZcToCiDataStru->wCbtcCrossTrainId); + } + else + { + /*nothing*/ + } } else { @@ -1731,7 +1737,11 @@ void ProcessTmcToTiocData(void) UINT8* deviceIdBuf = NULL; UINT8 ii = 0u; UINT8 cTransState = 0U; /*TMCͨ״̬*/ + UINT8 chWorkType = 0U; /*˫ϵģʽ*/ + UINT8 cRcWorkMode = 0u;/*RCģʽ*/ + chWorkType = GetSystemWorkType(); + cRcWorkMode = GetLocalRcWorkMode(); /*ֶTMCͨ״̬*/ cLocalTiocId = GetSystemParaLocalCiId(); deviceSum = GetCiTransmitSpecifySysDevSum(CI_SYSTEM_TYPE_TMC); /*ȡͨTMC豸*/ @@ -1754,6 +1764,10 @@ void ProcessTmcToTiocData(void) else { ClearLineCommTrainData(); /*TMCͨжϣش洢ȫͨųϢ*/ + if ((SYSTEM_WORK_MODE_ALL == chWorkType) && (RC_WORK_MODE_TIOC == cRcWorkMode)) + { + SetTsrSureFlag(CI_TSR_SURE_NO); + } } } else @@ -1858,7 +1872,6 @@ void ProcessVobcToCiData(void) { UINT8 ii = 0u; UINT8 jj = 0u; - UINT8 kk = 0u; UINT8 vobcToCiDataSum = GetVobcToCiSum(); VobcToCiDataStruct* vobcToCiDataStru = GetVobcToCiDataStru(); UINT8 chLineIdentity = GetCiFunctionSwitchConfig(VOBC_INTERFACE_IDENTITY);/*ȡ·ʶ*/ @@ -1917,7 +1930,7 @@ void ProcessVobcToCiData(void) for (jj = 0u; ((jj < vobcToCiDataStru[ii].PsdSum) && (jj < VOBC_TO_CI_TRAIN_PSD_MAX)); jj++) { /*»VOBCCIһֱͨţ¹ϸϢ޷ڴ˼յһVOBCĿǷʱ*/ - if ((dwCurCycNum - vobcToCiDataStru[ii].PsdData[kk].CmdStartCycNum) > dwTransmitBadEnsureCount) + if ((dwCurCycNum - vobcToCiDataStru[ii].PsdData[jj].CmdStartCycNum) > dwTransmitBadEnsureCount) { ClearPsdVobcContext(vobcToCiDataStru[ii].VobcId); break; @@ -4890,7 +4903,7 @@ void ProcessDeviceLogicState(void) (void)GaragedoorRelayToDevStaProc(); /*ϴ*/ - (void)WashMachineToDeviceStateProc(); + WashMachineToDeviceStateProc(); /*Ŵ*/ FloodGateRelayToDeviceStateProc(); @@ -5224,6 +5237,7 @@ UINT8 MaskDataProcess(const UINT8 systemType,const UINT8* maskBuf, const UINT16 /*Ч·״̬*/ } break; + } break; @@ -5318,7 +5332,7 @@ UINT8 MaskDataProcess(const UINT8 systemType,const UINT8* maskBuf, const UINT16 */ void ProcessCiToCiData(void) { - UINT8 localCiId = GetSystemParaLocalCiId(); /*ID*/ + UINT8 chLocalCiId = 0U; /*ID*/ UINT8 jj = 0U; UINT8 tranCiNum = 0U; UINT8* tranCiIdBuf = NULL; @@ -5327,7 +5341,7 @@ void ProcessCiToCiData(void) UINT8 chMainMode = CI_SYSTEM_TYPE_RCI;/*ģʽ*/ UINT8 chSystemType = GetSystemWorkType(); UINT8 chRcTransState = 0U;/*ֻжRcͨ*/ - + chLocalCiId = GetSystemParaLocalCiId(); /*ͨж ͨŹر*/ if (SYSTEM_WORK_MODE_ALL == chSystemType) { @@ -5341,17 +5355,17 @@ void ProcessCiToCiData(void) tranCiIdBuf = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_RCI); } - - for (jj = 0u;jjheadWashStopSteadyInfo) && (WASHMACHINE_TAIL_STEADY_NO == vobcToCiDataStru->tailWashStopSteadyInfo) && (PASS_WASHMACHINE_REQUEST_INVALID == vobcToCiDataStru->passWashMachineRequest) - && (PAUSE_TRAIN_WASH_REQUEST_INVALID == vobcToCiDataStru->washPauseRequest)) + && (PAUSE_TRAIN_WASH_REQUEST_INVALID == vobcToCiDataStru->washPauseRequest) + && (WASHMACHINE_COUPING_STEADY_NO == vobcToCiDataStru->couplingWashStopSteadyInfo)) {/*ϴЧΪϴϴҵ*/ SetWashMachineCurVobcID(washMachineId, 0u);/*ǰϴVOBC ID*/ /*ϴ״̬*/ @@ -8389,6 +8417,7 @@ static void HLHTFAOVOBCDataProc(VobcToCiDataStruct* vobcToCiDataStru) SetPauseTrainWashRequestDrvSta(washMachineId, WASHMACHINE_PAUSE_DRVREQ_FALSE); SetPassWashMachineReqtDrvSta(washMachineId, PASS_WASHMACHINE_DRVREQ_FALSE); SetWashMachineWorkModeDrvState(washMachineId, WASHMACHINE_WORKMODE_INVALID_DRV); + SetCoupingStopSteadyDrvState(washMachineId, WASHMACHINE_COUPING_STEADY_NO); } else { @@ -8434,6 +8463,21 @@ static void HLHTFAOVOBCDataProc(VobcToCiDataStruct* vobcToCiDataStru) } } + if (WASHMACHINE_COUPING_STEADY_YES == vobcToCiDataStru->couplingWashStopSteadyInfo) + {/*ҶͣЧ*/ + if (1U == washMachineCurSum) + { + SetCoupingStopSteadyDrvState(washMachineId, WASHMACHINE_COUPING_STEADY_YES); + } + } + else + { + if (1U == washMachineCurSum) + { + SetCoupingStopSteadyDrvState(washMachineId, WASHMACHINE_COUPING_STEADY_NO); + } + } + if (WASHMACHINE_TAIL_STEADY_YES == vobcToCiDataStru->tailWashStopSteadyInfo) {/*βͣЧ*/ if (1U == washMachineCurSum) @@ -8493,6 +8537,7 @@ static void HLHTFAOVOBCDataProc(VobcToCiDataStruct* vobcToCiDataStru) SetPauseTrainWashRequestDrvSta(washMachineId, WASHMACHINE_PAUSE_DRVREQ_FALSE); SetPassWashMachineReqtDrvSta(washMachineId, PASS_WASHMACHINE_DRVREQ_FALSE); SetWashMachineWorkModeDrvState(washMachineId, WASHMACHINE_WORKMODE_INVALID_DRV); + SetCoupingStopSteadyDrvState(washMachineId, WASHMACHINE_COUPING_STEADY_NO); } } } @@ -10004,17 +10049,7 @@ static void SetIvocWashDriveState(VobcToCiDataStruct* vobcToCiDataStru,const UIN { SetTrainTailStopSteadyDrvState(washMachineId, WASHMACHINE_TAIL_STEADY_NO); } - - if (WASHMACHINE_COUPING_STEADY_YES == vobcToCiDataStru->couplingWashStopSteadyInfo) - { - /*βͣЧ*/ - SetCoupingStopSteadyDrvState(washMachineId, WASHMACHINE_TAIL_STEADY_YES); - } - else - { - SetCoupingStopSteadyDrvState(washMachineId, WASHMACHINE_TAIL_STEADY_NO); - } - + if (WASHMACHINE_PAUSE_DRVREQ_TRUE == vobcToCiDataStru->washPauseRequest) { /*ͣϴЧ*/ @@ -11036,7 +11071,7 @@ void RouteSecLockApplyCmdProc(const UINT16 wCurRLockRouteId, const UINT16 wPreRL pstLgcResInfo = GetLogSecTrainInfo(pLogIdBuff[ii]); if (NULL != pstLgcResInfo) { - (void)ComMemCopy(pstLgcResInfo, stTmpResInfo, (UINT16)(sizeof(LogicTrainResStruct) * LOGIC_SECTION_RES_SUM_MAX)); + (void)CommonMemCpy(pstLgcResInfo, (UINT32)((sizeof(LogicTrainResStruct)) * LOGIC_SECTION_RES_SUM_MAX),stTmpResInfo, (UINT32)((sizeof(LogicTrainResStruct)) * LOGIC_SECTION_RES_SUM_MAX)); SetLogSecLockState(pLogIdBuff[ii], LOG_SECTION_LOCK_NO, validRouteId, 0U);/*֮ǰ·δ*/ /*ڵǰ·*/ SetLogSecLockState(pLogIdBuff[ii], LOG_SECTION_LOCK_NORMAL, wCurRLockRouteId, chRouteDir); @@ -11116,7 +11151,7 @@ void LogRouteCleanOldLogSecLockProc(const UINT16 wPreRouteId) pstLgcResInfo = GetLogSecTrainInfo(pLogSecIdBuff[ii]); if (NULL != pstLgcResInfo) { - (void)ComMemCopy(pstLgcResInfo, stTmpResInfo, (UINT16)(sizeof(LogicTrainResStruct) * LOGIC_SECTION_RES_SUM_MAX)); + (void)CommonMemCpy(pstLgcResInfo, (UINT32)(sizeof(LogicTrainResStruct) * LOGIC_SECTION_RES_SUM_MAX), stTmpResInfo, (UINT32)(sizeof(LogicTrainResStruct) * LOGIC_SECTION_RES_SUM_MAX)); SetLogSecLockState(pLogSecIdBuff[ii], LOG_SECTION_LOCK_NO, wValidRouteId, 0U); /*֮ǰ·δ*/ CpyLgcSecResTrain(pLogSecIdBuff[ii], cResTrainSum, stTmpResInfo); /*߼гԴϢ*/ @@ -11781,17 +11816,23 @@ void OverlapUnlockApplyDeal(void) } else { - ; /*ӽijȡʧܣIVOC뱣ν*/ + /*ӽijȡʧܣIVOC뱣ν*/ + SetOverlapUnlockApplyTrainId(wOverlapId, 0U); + SetReqIvocUnlockStartCycNum(wOverlapId, 0U); } } else { - ; /*·IVOC뱣ν*/ + /*·IVOC뱣ν*/ + SetOverlapUnlockApplyTrainId(wOverlapId, 0U); + SetReqIvocUnlockStartCycNum(wOverlapId, 0U); } } else { - ; /*δ뱣νRCIVOC뱣ν*/ + /*δ뱣νRCIVOC뱣ν*/ + SetOverlapUnlockApplyTrainId(wOverlapId, 0U); + SetReqIvocUnlockStartCycNum(wOverlapId, 0U); } } else @@ -12498,7 +12539,8 @@ void SignalTrainCrossPro(void) } else { - /*TACSأ¼гID*/ + /*TACSأÿѹгID*/ + cSignalCrossState = SIGNAL_CROSS_STATE_NO; } } else diff --git a/TSCP/src/APP/ciapp/IO/OutputDataProcess.c b/TSCP/src/APP/ciapp/IO/OutputDataProcess.c index a133410..f270d07 100644 --- a/TSCP/src/APP/ciapp/IO/OutputDataProcess.c +++ b/TSCP/src/APP/ciapp/IO/OutputDataProcess.c @@ -160,7 +160,7 @@ void OutputDataProcess(void) (void)PsdDeviceToRelayStateProc(); /*ϴ̵״̬*/ - (void)WashMachineDevToRelayStaProc(); + WashMachineDevToRelayStaProc(); /*¼Ḵλ̵״̬*/ /**/ @@ -3549,7 +3549,7 @@ void NonRouteRelayStateProc(void) UINT8 interfaceType = FUNC_SWITCH_UNDEF;/*Գ복νӿ*/ UINT8 i = 0u; UINT16 agreeTryTrainRelayId = 0u;/*ͬԳ̵ID*/ - UINT16 wColWaysideTryTrainIndRelayId = 0u;/*Գָʾ̵ID*/ + UINT16 wColWaysideTryTrainIndRelayId = 0U;/*Գָʾ̵ID*/ NonRouteDataStruct* pNonRoute = NULL; UINT8 localCiId = 0U; /*ID*/ UINT8 nonRouteBelongCiId = 0U; /*ǽ·ID*/ @@ -3591,7 +3591,7 @@ void NonRouteRelayStateProc(void) /**/ } wColWaysideTryTrainIndRelayId = GetWaysideTryTrainIndRelayId(pNonRoute->NonRouteId); - if (0 != wColWaysideTryTrainIndRelayId) + if (0U != wColWaysideTryTrainIndRelayId) { /*ùԳָʾ̵*/ (void)SetRelayDriveState(wColWaysideTryTrainIndRelayId, RELAY_DRIVE_STATE_UP); @@ -3621,7 +3621,7 @@ void NonRouteRelayStateProc(void) ; /**/ } wColWaysideTryTrainIndRelayId = GetWaysideTryTrainIndRelayId(pNonRoute->NonRouteId); - if (0 != wColWaysideTryTrainIndRelayId) + if (0U != wColWaysideTryTrainIndRelayId) { /*ùԳָʾ̵*/ (void)SetRelayDriveState(wColWaysideTryTrainIndRelayId, RELAY_DRIVE_STATE_DOWN); @@ -4965,7 +4965,7 @@ UINT16 GetOverlapUnlockBackTime(const UINT16 overlapId, UINT16 OverlapUnLockCoun /*Զʱ*/ deltCount = (INT32)(curCycleNum - startCycNum); - if((deltCount >= 0) && (deltCount <= (INT32)OverlapUnLockCount))/*ʱֵںΧ*/ + if((deltCount >= 0U) && (deltCount <= (INT32)OverlapUnLockCount))/*ʱֵںΧ*/ { autotimeData = (UINT16)(((OverlapUnLockCount + startCycNum - curCycleNum)* appCycTime)/1000U) ; } @@ -4979,7 +4979,7 @@ UINT16 GetOverlapUnlockBackTime(const UINT16 overlapId, UINT16 OverlapUnLockCoun { deltCount = (INT32)(curCycleNum - laborUnlockStartCycNum); laborUnlockOverlapTimeCount =GetlabarUnlockOverlapTimeCount(); - if((deltCount >= 0) && (deltCount <= (INT32)laborUnlockOverlapTimeCount))/*ʱֵںΧ*/ + if((deltCount >= 0U) && (deltCount <= (INT32)laborUnlockOverlapTimeCount))/*ʱֵںΧ*/ { labortimeData = (UINT16)(((laborUnlockOverlapTimeCount + laborUnlockStartCycNum- curCycleNum)* appCycTime)/1000U) ; @@ -8254,7 +8254,6 @@ void SetSCApplyIndicator(const UINT16 wIndicatorId) UINT8 chRtuCiType = 0U; /**/ UINT8 chIndicatorRtuId = 0U; /*ID*/ UINT8 chinterfaceType = 0U; /*Գ복νӿڷʽ*/ - UINT16 wApplyId = 0U; /*ԳID*/ UINT16 wApplyRelayId = 0U; /*Գ̵ID*/ UINT16 wAllowRelayId = 0U; /*ԳID*/ UINT8 chNonRouteState = 0U; /*ǽ·״̬*/ diff --git a/TSCP/src/APP/ciapp/Initial/InitialProcess.c b/TSCP/src/APP/ciapp/Initial/InitialProcess.c index f95dafa..0cba77c 100644 --- a/TSCP/src/APP/ciapp/Initial/InitialProcess.c +++ b/TSCP/src/APP/ciapp/Initial/InitialProcess.c @@ -1068,6 +1068,7 @@ UINT8 InitialLogicSectionData(void) UINT16 ii = 0u; /*α*/ UINT16 jj = 0u; /*α*/ UINT8 kk = 0u; /*α*/ + UINT8 mm = 0u; /*α*/ UINT16 zcToCiMaskSum = 0u; /*ZC-CIλ*/ UINT8 reVal = CI_ERROR; UINT8 chTmcSwitch = 0u; @@ -1126,14 +1127,10 @@ UINT8 InitialLogicSectionData(void) LogicSectionDataStruCC[logicSectionId].LogErrlockStartCycNum = 0U; LogicSectionDataStruCC[logicSectionId].chAblRelLogSecUsableFlag = LOGIC_ABLNEAR_USE_FLAG_NO; /*ʼABLӽ߼οñ־*/ LogicSectionDataStruCC[logicSectionId].cRouteLeaveLogFlag = LOGSEC_LEAVE_LOGSEC_REPLY_NO; /*ȥABLг鲻ͨ*/ - for (jj = 0U; jj < LOGIC_SECTION_RES_SUM_MAX; jj++) + for (mm = 0U; mm < LOGIC_SECTION_RES_SUM_MAX; mm++) { - LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].wTrainId = 0U; - LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chLogicResUsable = LOGIC_SECTION_RES_UNUSABLE; - LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chLogicReturnState = LOGIC_SECTION_TRAIN_RETURN_NO; - LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chTrainApplyState = LOGIC_SECTION_TRAIN_APPLY_NO; - LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chLogicUnlockState = LOGIC_SECTION_TRAIN_UNLOCK_NO; - LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].dwRcvUnlockCmdCyc = 0U; + /*ԴϢṹ*/ + ResetResInfoStruct(logicSectionId, mm); } LogicSectionDataStruCC[logicSectionId].chLogSecLockBelLogRouteSum = 0U; for (jj = 0U; jj < LOGSEC_RELATE_ROUTE_SUM_MAX; jj++) diff --git a/TSCP/src/APP/ciapp/InvadeSection/InvadeSectionDefine.h b/TSCP/src/APP/ciapp/InvadeSection/InvadeSectionDefine.h index fe9bee3..a895734 100644 --- a/TSCP/src/APP/ciapp/InvadeSection/InvadeSectionDefine.h +++ b/TSCP/src/APP/ciapp/InvadeSection/InvadeSectionDefine.h @@ -14,7 +14,7 @@ #ifndef __INVADESECTION_DEFINE_H_ #define __INVADESECTION_DEFINE_H_ -#define INVA_SECT_N_COND_SWIT_SUM_MAX ((UINT16)400) /*Ŀ*/ +#define INVA_SECT_N_COND_SWIT_SUM_MAX ((UINT16)800) /*Ŀ*/ #define COND_SWITCH_SUM_MAX ((UINT16)16) /*һĿ,*/ diff --git a/TSCP/src/APP/ciapp/LogRecord/LogRecord.c b/TSCP/src/APP/ciapp/LogRecord/LogRecord.c index 49b5a67..e12c75c 100644 --- a/TSCP/src/APP/ciapp/LogRecord/LogRecord.c +++ b/TSCP/src/APP/ciapp/LogRecord/LogRecord.c @@ -13,6 +13,7 @@ #include "LogRecord.h" #include "../ParsePack/ParsePackVobcData.h" +#include "../ParsePack/ParsePackZcData.h" #include @@ -497,6 +498,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag) OCStationIndicDataStru* pNewOCStationIndicData = GetOCStationIndicDataStru(); EsbDataStruct* pNewEsbData = GetEsbData(); LogicalRouteDataStruct* pNewLogicalRouteDataStru = GetLogicalRouteStr(); + CbtcCrossStructZC* pCbtcCrossStructZCStru = GetCbtcCrossStructZc(); UINT16 wCfpId = 0u; UINT8 chEnIndex = 0u; UINT8 chTrainIndex = 0u; @@ -702,6 +704,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag) outString[outStringLength++] = newSignalData[deviceId].DoubleGreenDsBreakFlag;/*˫̵˿˿־״̬*/ outString[outStringLength++] = newSignalData[deviceId].DoubleYellowDsBreakFlag;/*˫Ƶ˿˿־״̬*/ outString[outStringLength++] = newSignalData[deviceId].MaintainLightState;/*źŻά޵״̬*/ + outString[outStringLength++] = pSignalDataCC[deviceId].wCrossTacsTrainId;/*TACSѹгID*/ if (MAX_SIGNAL_LIGHTUPLINK_NUM < pSignalDataCC[deviceId].wSignalLightUpLinkIdSum) { @@ -1519,9 +1522,12 @@ UINT8 RecordDeviceDataLog(UINT8 Flag) outString[outStringLength++] = newWashMachineData[deviceId].TrainEmergencyStopState;/*гͣ״̬*/ outString[outStringLength++] = newWashMachineData[deviceId].HeadWashAllowState;/*ͷϴ״̬*/ outString[outStringLength++] = newWashMachineData[deviceId].TailWashAllowState;/*βϴ״̬*/ + outString[outStringLength++] = newWashMachineData[deviceId].chCoupingWashAllowState;/*Ҷϴ״̬*/ outString[outStringLength++] = newWashMachineData[deviceId].WashTrainRequestDrvState;/*ϴ״̬*/ outString[outStringLength++] = newWashMachineData[deviceId].TrainHeadStopSteadyDrvState;/*ͷͣ״̬*/ outString[outStringLength++] = newWashMachineData[deviceId].TrainTailStopSteadyDrvState;/*βͣ״̬*/ + outString[outStringLength++] = newWashMachineData[deviceId].chCoupingStopSteadyDrvState; /*Ҷͣ״̬*/ + outString[outStringLength++] = newWashMachineData[deviceId].TrainOutWashTrainPortAllowState;/*ϴ״̬*/ ShortToChar(newWashMachineData[deviceId].CurVobcId, &outString[outStringLength]);/*ǰϴVOBC ID*/ outStringLength += 2u; @@ -2445,6 +2451,11 @@ UINT8 RecordDeviceDataLog(UINT8 Flag) outString[outStringLength++] = pNewTrainInfoData[deviceId].chtrainControlMode;/*ǰسģʽ*/ outString[outStringLength++] = pNewTrainInfoData[deviceId].chTrainPostionMode; /*гλģʽ0λã1ʹIVOCλã2ʹVOBCλ*/ + ShortToChar(pNewTrainInfoData[deviceId].wMinSafeHeadLink, &outString[outStringLength]);/*ʱСǰlink*/ + outStringLength += 2u; + LongToChar(pNewTrainInfoData[deviceId].dwMinSafeHeadOffset, &outString[outStringLength]);/*ʱСǰlinkƫ*/ + outStringLength += 4u; + outString[outStringLength++] = pNewTrainInfoData[deviceId].chMinSafeHeadDir;/* ʱСǰ */ } @@ -2913,10 +2924,46 @@ UINT8 RecordDeviceDataLog(UINT8 Flag) else { #ifdef PLATFORM_2OO2 - debug_infor_printf((const)"\nNonAutoReturnData:%d", (UINT16)sizeof(NonAutoReturnDataStruct), outStringLength); + debug_infor_printf((const)"\nNonAutoReturnData:%d, length:%d", (UINT16)sizeof(NonAutoReturnDataStruct), outStringLength); debug_out_array(0xAA, outString, outStringLength); +#endif + + /*մӡ*/ + CleanString(outString); + outStringLength = 0u; + } + + /*************************************ӡCBTCѹ********************************************/ + /*ӡCBTCѹ*/ + deviceNum = GetCbtcCrossNumZc();/* ȡ߽ */ + + for (ii = 0U; ii < deviceNum; ii++) + { + if ((CI_SUCCESS != returnValue) || (NULL == pCbtcCrossStructZCStru)) + { + returnValue = CI_ERROR; + break; + } + + ShortToChar(pCbtcCrossStructZCStru[ii].wSignalId, &outString[outStringLength]);/*CBTCѹźŻID*/ + outStringLength += 2u; + outString[outStringLength] = pCbtcCrossStructZCStru[ii].wTrainId; /*CBTCѹгID*/ + outStringLength++; + } + + if (0u == outStringLength) + { + /*nothing*/ + debug_infor_printf((const)"\nCbtcCrossData:0u"); + } + else + { +#ifdef PLATFORM_2OO2 + debug_infor_printf((const)"\nCbtcCrossData:%d:", outStringLength); + + debug_out_array(0xAA, outString, outStringLength); #endif /*մӡ*/ diff --git a/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.c b/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.c index 807e4fb..76a1b69 100644 --- a/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.c +++ b/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.c @@ -3386,7 +3386,18 @@ UINT8 LockRouteOverlapProc(const UINT16 routeId) UINT8 cTimeCheckFlag = CI_TIME_OUT; UINT8 cKeepWorkFlag = CI_ERROR; UINT8 cSwitchPosCheckRet = CI_ERROR; + UINT8 cOverlapCiId = 0U; /*ID*/ + UINT16 wRouteLeavePhySecId = 0U;/*·ȥID*/ + UINT8 cPhySecLockState = 0U; /*״̬*/ + UINT8 cLocalCiId = 0U; /*ID*/ + UINT8 cRouteBlongCiId = 0U; /*·ID*/ + UINT8 cProSecDelayLockFlag = 0U; /*ʱձ־*/ + UINT32 dwPhySecDelayLockStartCyc = 0U; /*ʱʼ*/ + UINT32 dwBadEnsureCount = 0U; /*ͨжȷ*/ + cLocalCiId = GetSystemParaLocalCiId(); + dwBadEnsureCount = GetCiAndCiTransBadEnsureCnt(); + cRouteBlongCiId = GetRouteBelongCiId(routeId); overlapSum = GetRouteOverlapSum(routeId); /*ȡOverlap*/ overlapIdBuf = GetRouteOverlapIdBuf(routeId); /*ȡOverlap ID BUF*/ dwCurCycNum = Get2oo2CurCycleNum(); @@ -3401,7 +3412,8 @@ UINT8 LockRouteOverlapProc(const UINT16 routeId) cKeepWorkFlag = CI_SUCCESS; for (ii = 0u; ii < overlapSum; ii++) { - if (GetOverlapBelongCiId(overlapIdBuf[ii]) == localCiId) + cOverlapCiId = GetOverlapBelongCiId(overlapIdBuf[ii]); + if (cOverlapCiId == localCiId) { /*ڱ*/ @@ -3428,31 +3440,35 @@ UINT8 LockRouteOverlapProc(const UINT16 routeId) devId = GetRouteLastPhySectionId(routeId); devState = GetPhySecCurOccupyState(devId); devPreState = GetPhySecPreOccupyState(devId); - overlapState = GetPhySecCurOccupyState(GetRouteLeavePhySecId(routeId)); + cPhySecLockState = GetPhySecLockState(devId); + wRouteLeavePhySecId = GetRouteLeavePhySecId(routeId); + overlapState = GetPhySecCurOccupyState(wRouteLeavePhySecId); routeState = GetRouteState(routeId); if ((SECTION_OCCUPY_NO == devState) && (SECTION_OCCUPY_YES == devPreState) && (SECTION_OCCUPY_NO == overlapState) && - (PHYSICAL_SECTION_LOCK_NORMAL == GetPhySecLockState(devId)) && + (PHYSICAL_SECTION_LOCK_NORMAL == cPhySecLockState) && (ROUTE_STATE_AUTO_UNLOCK == routeState) && - (GetSystemParaLocalCiId() != GetRouteBelongCiId(routeId)) + (cLocalCiId != cRouteBlongCiId) ) { SetProtectSecLockDelayTimeFlag(devId, PROTECTSECLOCKDELAY_YES); - SetPhySecLockDelayStartCycNum(devId, Get2oo2CurCycleNum()); /*ʱں*/ + SetPhySecLockDelayStartCycNum(devId, dwCurCycNum); /*ʱں*/ } else { ; } - if (PROTECTSECLOCKDELAY_NO == GetProtectSecLockDelayTimeFlag(devId)) + cProSecDelayLockFlag = GetProtectSecLockDelayTimeFlag(devId); + dwPhySecDelayLockStartCyc = GetPhySecLockDelayStartCycNum(devId); + if (PROTECTSECLOCKDELAY_NO == cProSecDelayLockFlag) { /*ս·Overlap*/ returnValue = LockRouteOverlapLogicProcess(routeId, overlapIdBuf[ii], CI_LOCK_OVERLAP); } - else if (((Get2oo2CurCycleNum() - GetPhySecLockDelayStartCycNum(devId)) > GetCiAndCiTransBadEnsureCnt()) - && (PROTECTSECLOCKDELAY_YES == GetProtectSecLockDelayTimeFlag(devId))) + else if (((dwCurCycNum - dwPhySecDelayLockStartCyc) > dwBadEnsureCount) + && (PROTECTSECLOCKDELAY_YES == cProSecDelayLockFlag)) { /*־óʱ־*/ SetProtectSecLockDelayTimeFlag(devId, PROTECTSECLOCKDELAY_NO); SetPhySecLockDelayStartCycNum(devId, 0); /*ʱں*/ @@ -4138,105 +4154,109 @@ UINT8 KeepOpenRouteSignalProc(const UINT16 routeId) */ void RouteZongQuXiaoProc(const UINT16 routeId) { - UINT8 routeState = 0u; /*·״̬*/ - UINT16 startSignalId = 0u; + UINT8 routeState = 0U; /*·״̬*/ + UINT16 startSignalId = 0U; UINT8 sigCurColor = SIGNAL_SHOWCOLOUR_INVALID; - UINT8 routeDelayUnlockflag = 0u; /* ·ʱ*/ - UINT8 checkRouteCancel = 0u; + UINT8 routeDelayUnlockflag = 0U; /* ·ʱ*/ + UINT8 checkRouteCancel = 0U; UINT8 cSignalInHumidRailFlag = PHYSEC_IN_HUMID_RAIL_NO; /*źŻʪ־*/ - + UINT8 chCiType = 0U; + UINT8 chRouteVirCiId = 0U; + UINT8 chOpenClose = 0U; /*ȡ·ֶ̬*/ routeState = GetRouteState(routeId); /*ȡ·״̬*/ startSignalId = GetRouteStartSignalId(routeId); sigCurColor = GetSignalCurColor(startSignalId); - - if (GetSignalOpenCloseState(sigCurColor) == SIGNAL_OPEN) + + chOpenClose = GetSignalOpenCloseState(sigCurColor); + if (SIGNAL_OPEN == chOpenClose) { /*źδر*/ - (void)DriveSignalClose(startSignalId); /*źŹر*/ - - return; } else { /*źѹر*/ - SetRouteZongQuXiaoFlag(routeId, ROUTE_ZONGQUXIAO_SET_NO); /*ȡ·ȡ־*/ - } - cSignalInHumidRailFlag = GetSignalInHumidRailFlag(startSignalId); - if (PHYSEC_IN_HUMID_RAIL_NO == cSignalInHumidRailFlag) - { - /*ȡ·*/ - if ((ROUTE_STATE_XUANPAI == routeState) || (ROUTE_STATE_FIRST_XUANPAI == routeState)) + cSignalInHumidRailFlag = GetSignalInHumidRailFlag(startSignalId); + chRouteVirCiId = GetRouteBelongVirCiId(routeId); /*ȡ·ID*/ + chCiType = GetLocalVirCiType(chRouteVirCiId); /*ȡ*/ + /*źŻʪ־Ч߽·ڳΣִȡ*/ + if ((PHYSEC_IN_HUMID_RAIL_NO == cSignalInHumidRailFlag) || (CI_TYPE_CLD == chCiType)) { - /*·ѡŻѡ*/ - - /*ȡ·ѡ*/ - SetRouteStateManage(routeId, ROUTE_STATE_IDLE); /*-->ý·*/ - - } - /*·||·쳣||·Ԥ*/ - else if ((ROUTE_STATE_FIRST_LOCK == routeState) || - (ROUTE_STATE_FIRST_LOCKERR == routeState) || - (ROUTE_STATE_YUXIAN_LOCK == routeState)) - { - /* ȡ*/ - checkRouteCancel = RouteCancelLogicProcess(routeId); - /* ȡ·ʱ*/ - routeDelayUnlockflag = GetRouteNeedDelayUnlock(routeId); - if (CI_SUCCESS == checkRouteCancel) + /*ȡ·*/ + if ((ROUTE_STATE_XUANPAI == routeState) || (ROUTE_STATE_FIRST_XUANPAI == routeState)) { - /*Ҫʱ*/ - if (ROUTE_NEED_DELAY_UNLOCK == routeDelayUnlockflag) + /*·ѡŻѡ*/ + + /*ȡ·ѡ*/ + SetRouteStateManage(routeId, ROUTE_STATE_IDLE); /*-->ý·*/ + + } + /*·||·쳣||·Ԥ*/ + else if ((ROUTE_STATE_FIRST_LOCK == routeState) || + (ROUTE_STATE_FIRST_LOCKERR == routeState) || + (ROUTE_STATE_YUXIAN_LOCK == routeState)) + { + /* ȡ*/ + checkRouteCancel = RouteCancelLogicProcess(routeId); + /* ȡ·ʱ*/ + routeDelayUnlockflag = GetRouteNeedDelayUnlock(routeId); + if (CI_SUCCESS == checkRouteCancel) { - /*ý·ʱ״̬*/ - SetRouteStateManage(routeId, ROUTE_STATE_DELAY_UNLOCK); - /*ʱ*/ - SetRouteZongQuXiaoDelayFlag(routeId, ROUTE_ZQX_DELAY_YES); + /*Ҫʱ*/ + if (ROUTE_NEED_DELAY_UNLOCK == routeDelayUnlockflag) + { + /*ý·ʱ״̬*/ + SetRouteStateManage(routeId, ROUTE_STATE_DELAY_UNLOCK); + /*ʱ*/ + SetRouteZongQuXiaoDelayFlag(routeId, ROUTE_ZQX_DELAY_YES); + } + else + { + /*-->ý·*/ + SetRouteStateManage(routeId, ROUTE_STATE_IDLE); + } } else { - /*-->ý·*/ - SetRouteStateManage(routeId, ROUTE_STATE_IDLE); + /*·ȡ*/ } } + else if ((ROUTE_STATE_NEAR_LOCK == routeState) || + (ROUTE_STATE_NEAR_LOCKERR == routeState)) + { + /*ӽ*/ + SetCiSendCmdBackInfoData(CI_BACK_ROUTE_NEAR_LOCK_YES, CI_DEVICE_TYPE_ROUTE, routeId, 0u, 0u); + } + else if ((ROUTE_STATE_LEAD_LOCK == routeState) || + (ROUTE_STATE_LEAD_LOCKERR == routeState) || + (ROUTE_STATE_LEAD_FIRST_XUANPAI == routeState) || + (ROUTE_STATE_LEAD_OPEN == routeState) || + (ROUTE_STATE_LEAD_XUANPAI == routeState)) + { + /*·ȡϢ*/ + SetCiSendCmdBackInfoData(CI_BACK_LEAD_ROUTE_CANCEL, CI_DEVICE_TYPE_ROUTE, routeId, 0u, 0u); + } + else if (ROUTE_STATE_IDLE == routeState) + { + CancelLongRouteXuanPai(routeId); /*޸ȱYF0083-2370ȡʱ·Уȡ·ѡ*/ + } else { - /*·ȡ*/ + /*δ*/ + SetCiSendCmdBackInfoData(CI_BACK_ROUTE_LOCK_NOTALL, CI_DEVICE_TYPE_ROUTE, routeId, 0u, 0u); } } - else if ((ROUTE_STATE_NEAR_LOCK == routeState) || - (ROUTE_STATE_NEAR_LOCKERR == routeState)) - { - /*ӽ*/ - SetCiSendCmdBackInfoData(CI_BACK_ROUTE_NEAR_LOCK_YES, CI_DEVICE_TYPE_ROUTE, routeId, 0u, 0u); - } - else if ((ROUTE_STATE_LEAD_LOCK == routeState) || - (ROUTE_STATE_LEAD_LOCKERR == routeState) || - (ROUTE_STATE_LEAD_FIRST_XUANPAI == routeState) || - (ROUTE_STATE_LEAD_OPEN == routeState) || - (ROUTE_STATE_LEAD_XUANPAI == routeState)) - { - /*·ȡϢ*/ - SetCiSendCmdBackInfoData(CI_BACK_LEAD_ROUTE_CANCEL, CI_DEVICE_TYPE_ROUTE, routeId, 0u, 0u); - } - else if (ROUTE_STATE_IDLE == routeState) - { - CancelLongRouteXuanPai(routeId); /*޸ȱYF0083-2370ȡʱ·Уȡ·ѡ*/ - } else { - /*δ*/ - SetCiSendCmdBackInfoData(CI_BACK_ROUTE_LOCK_NOTALL, CI_DEVICE_TYPE_ROUTE, routeId, 0u, 0u); + /*·ʼźŻʪ췶Χ·*/ + debug_infor_printf((const)"\n SignalInHumidRailFlag Valid,Not RouteZongQuXiaoProc \n"); } } - else - { - /*·ʼźŻʪ췶Χ·*/ - debug_infor_printf((const)"\n SignalInHumidRailFlag Valid,Not RouteZongQuXiaoProc \n"); - } + + } /* @@ -4693,38 +4713,45 @@ UINT8 UnlockRouteOverlapProc(const UINT16 routeId) } else if (CI_ERROR == ret) { - /*ʲôҲ*/ + /*ν*/ + + if (RC_WORK_MODE_TIOC == cRcWorkMode) + { + SetOverlapUnlockApplyTrainId(unlockOverlapId, 0U); + SetReqIvocUnlockStartCycNum(unlockOverlapId, 0U); + } + else if (RC_WORK_MODE_CI == cRcWorkMode) + { + /*ֹͣ*/ + SetOverlapUnlockApplyFlag(unlockOverlapId, UNLOCK_OVERLAP_APPLY_NO); + } + else + { + ; /* ޴ */ + } } else { - /*ʲôҲ*/ + ; /*ʲôҲ*/ } - wTrainId = GetOverlapUnlockApplyTrainId(unlockOverlapId); - if (SECTION_OCCUPY_NO == devCurMergeState)/*ǰ*/ { if (RC_WORK_MODE_TIOC == cRcWorkMode) { - if (0u != wTrainId) - { /*ֹͣ*/ SetOverlapUnlockApplyTrainId(unlockOverlapId, 0U); SetReqIvocUnlockStartCycNum(unlockOverlapId, 0U); /*ֹͣʱ*/ SetSecUtOrCtOccuStartCycNum(devId, 0u); - } } else if (RC_WORK_MODE_CI == cRcWorkMode) { - /* TODO */ - if (UNLOCK_OVERLAP_APPLY_YES == GetOverlapUnlockApplyFlag(unlockOverlapId))/*ǰZCͽ*/ - { - /*ֹͣ*/ - SetOverlapUnlockApplyFlag(unlockOverlapId, UNLOCK_OVERLAP_APPLY_NO); - /*ֹͣʱ*/ - SetSecUtOrCtOccuStartCycNum(devId, 0u); - } + + /*ֹͣ*/ + SetOverlapUnlockApplyFlag(unlockOverlapId, UNLOCK_OVERLAP_APPLY_NO); + /*ֹͣʱ*/ + SetSecUtOrCtOccuStartCycNum(devId, 0u); } else { @@ -4736,21 +4763,14 @@ UINT8 UnlockRouteOverlapProc(const UINT16 routeId) { if (RC_WORK_MODE_TIOC == cRcWorkMode) { - if (0u != wTrainId) - { - /*ֹͣ*/ - SetOverlapUnlockApplyTrainId(unlockOverlapId, 0u); - SetReqIvocUnlockStartCycNum(unlockOverlapId, 0U); - } + /*ֹͣ*/ + SetOverlapUnlockApplyTrainId(unlockOverlapId, 0u); + SetReqIvocUnlockStartCycNum(unlockOverlapId, 0U); } else if (RC_WORK_MODE_CI == cRcWorkMode) { - /* TODO */ - if (UNLOCK_OVERLAP_APPLY_YES == GetOverlapUnlockApplyFlag(unlockOverlapId))/*ǰZCͽ*/ - { - /*ֹͣ*/ - SetOverlapUnlockApplyFlag(unlockOverlapId, UNLOCK_OVERLAP_APPLY_NO); - } + /*ֹͣ*/ + SetOverlapUnlockApplyFlag(unlockOverlapId, UNLOCK_OVERLAP_APPLY_NO); } else { @@ -4759,7 +4779,7 @@ UINT8 UnlockRouteOverlapProc(const UINT16 routeId) } else { - /*ʲôҲ*/ + ; /*ʲôҲ*/ } } return CI_ERROR; @@ -9477,27 +9497,10 @@ void CiTrainTestLogicManage(void) UINT16 wCollAgreeTryTrainRelayId = 0U;/*Գ߲ɼͬԳ̵ID*/ UINT8 chRelayCollState = 0U;/*ɼ̵״̬*/ UINT8 ii = 0U; - UINT8 flag = 0U; - UINT8 chCldAndScxMergeFlag = GetCldAndScxMergeFlag(); - UINT8 localCiType = GetLocalCiType(); - - if (CI_TYPE_SCX == localCiType) - { - flag = 1U; - } - else if (CI_TYPE_CLD == localCiType) - { - if (CLD_SCX_MERGE_ON == chCldAndScxMergeFlag) - {/*dzΣҳԳߺ*/ - flag = 1U; - } - } - else - { - /*޴*/ - } - - if (1U == flag) + UINT8 flag = CI_ERROR;; + + flag = GetLocalCiIsScx(); + if (CI_SUCCESS == flag) { for (; ii < NONROUTE_ID_NUM_MAX; ii++) { @@ -11584,7 +11587,7 @@ void AxisSecJumpLockLogicManage(void) {/*δ*/ /**/ SetPhySecUseState(phyId, PHYSICAL_SECTION_USING_YES, 0); - SetJumpPhySectionPortectSecUse(phyId, PHYSICAL_SECTION_USING_YES);/*ι*/ + SetJumpPhySectionPortectSecUse(axisSectionId, PHYSICAL_SECTION_USING_YES);/*ι*/ /*תΪѡ*/ SetAxisJumpLockState(axisSectionId, AXIS_SECTION_JUMPLOCK_STATE_XUANPAI); } @@ -11601,38 +11604,7 @@ void AxisSecJumpLockLogicManage(void) case AXIS_SECTION_JUMPLOCK_STATE_LOCK: {/*Ծմ*/ - /*ռ飬ͨԾգ鲻ͨδԾ*/ - rtVal = LockAxisSecProc(axisSectionId);/*Ծ*/ - if (CI_SUCCESS == rtVal) - { - if ((AXIS_SECTION_JUMPLOCK_APPLY_YES == applyFlag) && - (AXSEC_CANCEL_JUMPLOCK_APPLY_NO == cancelApplyFlag) && - (curCycle == applyCycle)) - {/*Ծ룬Ծ*/ - SetPhySecJumpLockState(phyId, PHYSICAL_SECTION_JUMP_LOCK_YES); - SetAxisRelProSwitchLockSta(axisSectionId, SWITCH_LOCK_PROTECT_SET); - SetPhySecJumpLockStateToZC(phyId, PHYSICAL_SECTION_JUMP_LOCK_YES); - SetAxisInCludeLogJumpLockState(axisSectionId, LOGIC_SECTION_JUMP_LOCK_YES); - } - else - { - chPhySecJmpState = GetPhySecJumpLockState(phyId); - if ((PHYSICAL_SECTION_JUMP_LOCK_YES == chPhySecJmpState) && (0U < applyCycle)) - { - SetPhySecJumpLockStateToZC(phyId, PHYSICAL_SECTION_JUMP_LOCK_YES); - } - } - } - else - {/*֮ǰգʱڲάԾգZC*/ - SetPhySecJumpLockStateToZC(phyId, PHYSICAL_SECTION_JUMP_LOCK_NO); - } - if ((AXIS_SECTION_JUMPLOCK_APPLY_NO == applyFlag) && - (AXSEC_CANCEL_JUMPLOCK_APPLY_YES == cancelApplyFlag)) - {/*ȡԾ*/ - SetAxisJumpLockState(axisSectionId, AXIS_SECTION_JUMPLOCK_STATE_IDLE); - SetAxisRelProSwitchLockSta(axisSectionId, SWITCH_LOCK_PROTECT_CANCEL); - } + AxisJumpLockStateManage(axisSectionId); } break; default: @@ -11670,6 +11642,12 @@ void AxisJumpLockXuanPaiManage(const UINT16 axisSecId) { rtVal = CI_SUCCESS; } + + if (CI_SUCCESS == rtVal) + { + rtVal = JumpPhySecAllUseCheck(axisSecId);/*ãԾգ*/ + } + if (CI_SUCCESS == rtVal) { rtVal = LockAxisSecProc(axisSecId);/*Ծ*/ @@ -11677,11 +11655,9 @@ void AxisJumpLockXuanPaiManage(const UINT16 axisSecId) axisSecSwitDrvOvtmFlag = ChekJumpLockSwitDrivOvtmStat(axisSecId);/*ιǷʱ*/ if (CI_SUCCESS == rtVal) {/*ɹ*/ - SetAxisJumpLockState(axisSecId, AXIS_SECTION_JUMPLOCK_STATE_LOCK); - /*δ*/ - SetPhySecUseState(phyId, PHYSICAL_SECTION_USING_NO, 0); - SetJumpPhySectionPortectSecUse(phyId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ + SetAxisJumpLockState(axisSecId, AXIS_SECTION_JUMPLOCK_STATE_LOCK);/*״̬ת*/ + } else if ((RETURN_LOCK_ERR_SWITPOS == rtVal) && (CI_SUCCESS == axisSecSwitDrvOvtmFlag)) {/*λôûгʱ*/ @@ -11692,7 +11668,7 @@ void AxisJumpLockXuanPaiManage(const UINT16 axisSecId) { /*δ*/ SetPhySecUseState(phyId, PHYSICAL_SECTION_USING_NO, 0); - SetJumpPhySectionPortectSecUse(phyId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ + SetJumpPhySectionPortectSecUse(axisSecId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ /*üԾ״̬*/ SetAxisJumpLockState(axisSecId, AXIS_SECTION_JUMPLOCK_STATE_IDLE); @@ -11702,7 +11678,7 @@ void AxisJumpLockXuanPaiManage(const UINT16 axisSecId) {/**/ /*δ*/ SetPhySecUseState(phyId, PHYSICAL_SECTION_USING_NO, 0); - SetJumpPhySectionPortectSecUse(phyId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ + SetJumpPhySectionPortectSecUse(axisSecId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ /*üԾ״̬*/ SetAxisJumpLockState(axisSecId, AXIS_SECTION_JUMPLOCK_STATE_IDLE); @@ -14497,10 +14473,23 @@ void PhySecJumpLockLogicManage(void) chPhySecFLockType = GetPhySecFLockType(wPhyId); /*ȡη*/ if ((PHY_SEC_FLOCK_TYPE_NONE == chPhySecFLockType)) { + ClearAxisSeceSwitchDanCaoPos(wAxisSectionId);/**/ SetPhySecJumpLockState(wPhyId, PHYSICAL_SECTION_JUMP_LOCK_YES); SetAxisRelProSwitchLockSta(wAxisSectionId, SWITCH_LOCK_PROTECT_SET); - /* SetPhySecJumpLockStateToZC(wPhyId, PHYSICAL_SECTION_JUMP_LOCK_YES);ȲZC*/ - SetAxisInCludeLogJumpLockState(wAxisSectionId, LOGIC_SECTION_JUMP_LOCK_YES); + + chTempcheck = AxisRelatedProSwitchLockCheck(wAxisSectionId, &devId, &devState); + if (CI_SUCCESS == chTempcheck) + {/*״̬*/ + SetPhySecJumpLockStateToZC(wPhyId, PHYSICAL_SECTION_JUMP_LOCK_YES); + SetAxisInCludeLogJumpLockState(wAxisSectionId, LOGIC_SECTION_JUMP_LOCK_YES); + } + else + { + /*ִ*/ + } + + + } else { @@ -14529,6 +14518,10 @@ void PhySecJumpLockLogicManage(void) { SetPhySecJumpLockStateToZC(wPhyId, PHYSICAL_SECTION_JUMP_LOCK_YES); } + else + { + SetPhySecJumpLockStateToZC(wPhyId, PHYSICAL_SECTION_JUMP_LOCK_NO); + } } } } @@ -16850,4 +16843,140 @@ void lockSwitchLogicManage(void) } } } +} +/* +* Ծ״̬ +* ˵ const UINT16 axisSecId, ID +* ֵ void +* add by mpt 20260407 +*/ +void AxisJumpLockStateManage(const UINT16 axisSectionId) +{ + UINT8 rtVal = 0U; + UINT8 applyFlag = 0U; + UINT32 applyCycle = 0U; + UINT8 cancelApplyFlag = 0U; + UINT16 phyId = 0U; + UINT32 curCycle = 0U; + UINT8 chPhySecJmpState = 0U; + + + applyFlag = GetAxisSecJumpLockApplyFlag(axisSectionId); + applyCycle = GetAxisSecJumpLockApplyCylce(axisSectionId); + cancelApplyFlag = GetAxisSecJLockCancelApplyFlag(axisSectionId); + + phyId = GetAxisSecRelativePhySecId(axisSectionId);/*ȡID*/ + curCycle = Get2oo2CurCycleNum(); + + + /*ռ飬ͨԾգ鲻ͨδԾ*/ + rtVal = LockAxisSecProc(axisSectionId);/*Ծ*/ + if (CI_SUCCESS == rtVal) + { + if ((AXIS_SECTION_JUMPLOCK_APPLY_YES == applyFlag) && + (AXSEC_CANCEL_JUMPLOCK_APPLY_NO == cancelApplyFlag) && + (curCycle == applyCycle)) + {/*Ծ룬Ծ*/ + chPhySecJmpState = GetPhySecJumpLockState(phyId); + if (PHYSICAL_SECTION_JUMP_LOCK_NO == chPhySecJmpState) + {/*Ծҵǰ*/ + ClearAxisSeceSwitchDanCaoPos(axisSectionId);/**/ + + SetPhySecJumpLockState(phyId, PHYSICAL_SECTION_JUMP_LOCK_YES); + SetAxisRelProSwitchLockSta(axisSectionId, SWITCH_LOCK_PROTECT_SET); + SetPhySecJumpLockStateToZC(phyId, PHYSICAL_SECTION_JUMP_LOCK_YES); + SetAxisInCludeLogJumpLockState(axisSectionId, LOGIC_SECTION_JUMP_LOCK_YES); + + /*δ*/ + SetPhySecUseState(phyId, PHYSICAL_SECTION_USING_NO, 0); + SetJumpPhySectionPortectSecUse(axisSectionId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ + } + else + { + /*ִ*/ + } + } + else + { + chPhySecJmpState = GetPhySecJumpLockState(phyId); + if ((PHYSICAL_SECTION_JUMP_LOCK_YES == chPhySecJmpState) && (0U < applyCycle)) + { + SetPhySecJumpLockStateToZC(phyId, PHYSICAL_SECTION_JUMP_LOCK_YES); + } + else if (PHYSICAL_SECTION_JUMP_LOCK_NO == chPhySecJmpState) + {/*ǰδԾ*/ + SetPhySecJumpLockStateToZC(phyId, PHYSICAL_SECTION_JUMP_LOCK_NO);/*ZC*/ + + if (AXIS_SECTION_JUMPLOCK_APPLY_NO == applyFlag) + {/*ǰδ*/ + /*δ*/ + SetPhySecUseState(phyId, PHYSICAL_SECTION_USING_NO, 0); + SetJumpPhySectionPortectSecUse(axisSectionId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ + + SetAxisJumpLockState(axisSectionId, AXIS_SECTION_JUMPLOCK_STATE_IDLE);/*üԾ״̬Ϊ*/ + } + else + { + /**/ + } + } + else + {/*ά֮ǰ*/ + } + } + } + else + {/*֮ǰգʱڲάԾգZC*/ + SetPhySecJumpLockStateToZC(phyId, PHYSICAL_SECTION_JUMP_LOCK_NO); + + chPhySecJmpState = GetPhySecJumpLockState(phyId); + if (PHYSICAL_SECTION_JUMP_LOCK_NO == chPhySecJmpState) + {/*δվһ*/ + /*δ*/ + SetPhySecUseState(phyId, PHYSICAL_SECTION_USING_NO, 0); + SetJumpPhySectionPortectSecUse(axisSectionId, PHYSICAL_SECTION_USING_NO);/*εķȡ*/ + SetAxisJumpLockState(axisSectionId, AXIS_SECTION_JUMPLOCK_STATE_IDLE);/*üԾ״̬Ϊ*/ + } + + } + if ((AXIS_SECTION_JUMPLOCK_APPLY_NO == applyFlag) && + (AXSEC_CANCEL_JUMPLOCK_APPLY_YES == cancelApplyFlag)) + {/*ȡԾ*/ + SetAxisJumpLockState(axisSectionId, AXIS_SECTION_JUMPLOCK_STATE_IDLE); + SetAxisRelProSwitchLockSta(axisSectionId, SWITCH_LOCK_PROTECT_CANCEL); + } + +} + +/* +* Գ״̬߼лȡǷ߱ԳܣָӶʹã +*˵ +* ֵ CI_SUCCESS Գߣ裩 CI_ERROR +*/ +UINT8 GetLocalCiIsScx(void) +{ + UINT8 chRtn = CI_ERROR; + UINT8 chCldAndScxMergeFlag = GetCldAndScxMergeFlag(); + UINT8 localCiType = GetLocalCiType(); + + if (CI_TYPE_SCX == localCiType) + { + chRtn = CI_SUCCESS; + } + else if (CI_TYPE_CLD == localCiType) + { + if (CLD_SCX_MERGE_ON == chCldAndScxMergeFlag) + {/*dzΣҳԳߺ*/ + chRtn = CI_SUCCESS; + } + else + { + ;/*CI_ERROR;*/ + } + } + else + { + ;/*CI_ERROR;*/ + } + return chRtn; } \ No newline at end of file diff --git a/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.h b/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.h index ae64988..e8e3a69 100644 --- a/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.h +++ b/TSCP/src/APP/ciapp/LogicManage/InterlockLogicManage.h @@ -1161,6 +1161,20 @@ void SetCouplinkRouteLogicManage(const UINT16 wRouteId); * ֵ */ void lockSwitchLogicManage(void); +/* +* Ծ״̬ +* ˵ const UINT16 axisSecId, ID +* ֵ void +* add by mpt 20260407 +*/ +void AxisJumpLockStateManage(const UINT16 axisSectionId); + +/* +* Գ״̬߼лȡǷ߱ԳܣָӶʹã +*˵ +* ֵ CI_SUCCESS Գߣ裩 CI_ERROR +*/ +UINT8 GetLocalCiIsScx(void); #ifdef __cplusplus } diff --git a/TSCP/src/APP/ciapp/LogicManage/RouteRecoverManage.c b/TSCP/src/APP/ciapp/LogicManage/RouteRecoverManage.c index ca7464f..5045f60 100644 --- a/TSCP/src/APP/ciapp/LogicManage/RouteRecoverManage.c +++ b/TSCP/src/APP/ciapp/LogicManage/RouteRecoverManage.c @@ -3702,6 +3702,7 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId) else { /* zt ɾش 2022-02-15 */ + reResult = CI_ERROR; } /* еδ*/ diff --git a/TSCP/src/APP/ciapp/LogicManage/TradInterlockLogicManage.c b/TSCP/src/APP/ciapp/LogicManage/TradInterlockLogicManage.c index dff2d7a..b173ebc 100644 --- a/TSCP/src/APP/ciapp/LogicManage/TradInterlockLogicManage.c +++ b/TSCP/src/APP/ciapp/LogicManage/TradInterlockLogicManage.c @@ -6538,103 +6538,134 @@ UINT16 GetRouteBingZhiSignalId(const UINT16 routeId) */ UINT16 GetRouteChaZhiSignalId(const UINT16 routeId) { - UINT16 startSigId = 0u; /*ʼźŻID*/ - UINT16 signalSum = 0u; /*źŻ*/ - UINT16 signalId = 0u; /*źŻID*/ - UINT16 routeSecSum = 0u; /*·*/ - RoutePhysicalSectionStruct *pRoutePhySecStru = NULL; /*·*/ - UINT16 returnOutSecId = 0u; /*۷źŻⷽID*/ - UINT16 returnInSecId = 0u; /*۷źŻڷID*/ - UINT16 lockBelongRouteId = 0u; /*·ID*/ - UINT16 outSecId = 0u; /*ⷽID*/ - UINT16 ii = 0u; - UINT16 tmpSigId = 0u; - + UINT16 startSigId = 0U; /*ʼźŻID*/ + UINT16 signalSum = 0U; /*źŻ*/ + UINT16 signalId = 0U; /*źŻID*/ + UINT16 routeSecSum = 0U; /*·*/ + RoutePhysicalSectionStruct* pRoutePhySecStru = NULL; /*·*/ + UINT16 returnOutSecId = 0U; /*۷źŻⷽID*/ + UINT16 returnInSecId = 0U; /*۷źŻڷID*/ + UINT16 lockBelongRouteId = 0U; /*·ID*/ + UINT16 outSecId = 0U; /*ⷽID*/ + UINT16 ii = 0U; + UINT16 tmpSigId = 0U; + UINT8 chPhySecType = 0U; + UINT16 wTempPhySecId = 0U; + UINT16 wReturnSignal = 0U; + UINT16 wTempSigId = 0U; + UINT8 chPhyLockState = 0U; + UINT16 wLockRouteId = 0U; + UINT16 wTempSigOutPhyId = 0U; + UINT16 wTempSigInPhyId = 0U; startSigId = GetRouteStartSignalId(routeId); /*ȡ·ʼźŻID*/ signalSum = GetSignalCurSum(); /*ȡźŻ*/ - if (PHYSICAL_SEC_TYPE_NOSWITCH == GetPhySecType(GetSignalOutFirstPhySecId(startSigId))) + outSecId = GetSignalOutFirstPhySecId(startSigId); + chPhySecType = GetPhySecType(outSecId); + if (PHYSICAL_SEC_TYPE_NOSWITCH == chPhySecType) { /*޲*/ for (ii = 0u; ii < signalSum; ii++) { signalId = GetSignalId(ii); /*ȡźŻID*/ + wTempPhySecId = GetSignalOutFirstPhySecId(signalId); - if ((GetSignalOutFirstPhySecId(startSigId) == GetSignalOutFirstPhySecId(signalId)) && - (startSigId != signalId)) + if ((outSecId == wTempPhySecId) && (startSigId != signalId)) { - return signalId; + wReturnSignal = signalId; + break; + } + else + { + /**/ } } } else { /*в*/ - outSecId = GetSignalOutFirstPhySecId(startSigId); /*·ʼźŻⷽID*/ lockBelongRouteId = GetPhySecRLockBelongRouteId(outSecId); /*·ID*/ routeSecSum = GetRoutePhysicalSectionSum(lockBelongRouteId); /*ȡ·*/ pRoutePhySecStru = GetRouteSectionData(lockBelongRouteId); /*ȡ·*/ - if ((0u == routeSecSum) || (NULL == pRoutePhySecStru)) + if ((0U == routeSecSum) || (NULL == pRoutePhySecStru)) { - return 0u; - } - if (routeSecSum == 1u) - { - /*if ((PHYSICAL_SECTION_LOCK_NORMAL == GetPhySecLockState(pRoutePhySecStru[0].PhysicalSectionId)) && - (lockBelongRouteId == GetPhySecRLockBelongRouteId(pRoutePhySecStru[0].PhysicalSectionId)))*/ - { - returnOutSecId = pRoutePhySecStru[0].PhysicalSectionId;/*۷źŻⷽID*/ - - tmpSigId = GetRouteStartSignalId(lockBelongRouteId);/*۷źŻڷID*/ - - returnInSecId = GetSignalOutFirstPhySecId(tmpSigId); - } - } - else if (routeSecSum > 1u) - { - for (ii = 0u; ii < routeSecSum; ii++) - { - - if ((PHYSICAL_SECTION_LOCK_NORMAL == GetPhySecLockState(pRoutePhySecStru[ii].PhysicalSectionId)) && - (lockBelongRouteId == GetPhySecRLockBelongRouteId(pRoutePhySecStru[ii].PhysicalSectionId))) - { /*·һյ*/ - - returnOutSecId = pRoutePhySecStru[ii].PhysicalSectionId; /*۷źŻⷽID*/ - - if (ii > 0u) - { - returnInSecId = pRoutePhySecStru[ii-1U].PhysicalSectionId; /*۷źŻڷID*/ - } - - break; - } - } + /**/ } else { - /*޲*/ - } - if ((0u == returnOutSecId) || (0u == returnInSecId)) - { - return 0u; - } - - for (ii = 0u; ii < signalSum; ii++) - { - signalId = GetSignalId(ii); /*ȡźŻID*/ - - if ((returnOutSecId == GetSignalOutFirstPhySecId(signalId)) && - (returnInSecId == GetSignalInFirstPhySecId(signalId, routeId))) + if (1U == routeSecSum) { - return signalId; + returnOutSecId = pRoutePhySecStru[0U].PhysicalSectionId;/*۷źŻⷽID*/ + + tmpSigId = GetRouteStartSignalId(lockBelongRouteId);/*۷źŻڷID*/ + + returnInSecId = GetSignalOutFirstPhySecId(tmpSigId); + } + else if (1U < routeSecSum) + { + for (ii = 0U; ii < routeSecSum; ii++) + { + + chPhyLockState = GetPhySecLockState(pRoutePhySecStru[ii].PhysicalSectionId); + wLockRouteId = GetPhySecRLockBelongRouteId(pRoutePhySecStru[ii].PhysicalSectionId); + if ((PHYSICAL_SECTION_LOCK_NORMAL == chPhyLockState) && + (lockBelongRouteId == wLockRouteId)) + { /*·һյ*/ + + returnOutSecId = pRoutePhySecStru[ii].PhysicalSectionId; /*۷źŻⷽID*/ + + if (0U < ii) + { + returnInSecId = pRoutePhySecStru[ii - 1U].PhysicalSectionId; /*۷źŻڷID*/ + } + else + { + wTempSigId = GetRouteStartSignalId(lockBelongRouteId);/*ȡս·ⷽһ*/ + returnInSecId = GetSignalOutFirstPhySecId(wTempSigId); + + } + + break; + } + } + } + else + { + /*޲*/ } } + + if ((0U == returnOutSecId) || (0U == returnInSecId)) + { + /*޲*/ + } + else + { + for (ii = 0u; ii < signalSum; ii++) + { + signalId = GetSignalId(ii); /*ȡźŻID*/ + wTempSigOutPhyId = GetSignalOutFirstPhySecId(signalId); + wTempSigInPhyId = GetSignalInFirstPhySecId(signalId, routeId); + if ((returnOutSecId == wTempSigOutPhyId) && + (returnInSecId == wTempSigInPhyId)) + { + wReturnSignal = signalId; + break; + } + else + { + /*޲*/ + } + } + } + + } - return 0u; + return wReturnSignal; } diff --git a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c index 242afef..9fac982 100644 --- a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c +++ b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.c @@ -9256,18 +9256,35 @@ UINT8 KeepRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel) if (CI_SUCCESS == reResult) {/*·ֿŷ*/ - if(CI_TRADITION_RAILWAY == lineIdentity) + if (FUNC_SWITCH_ON == cSndSideProFuncSwitch) { - if (FUNC_SWITCH_ON == cSndSideProFuncSwitch) + /*ֶ֧ʱλúͿɶ*/ + } + else + { + /*·λȷ*/ + devId = 0u; + devState = 0u; + checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + if (checkResult == CI_SUCCESS) { - /*ֶ֧ʱλúͿɶ*/ + /* ͨ */ + reResult = CI_SUCCESS; } else { - /*·λȷ*/ + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; + } + + if (CI_SUCCESS == reResult) + { + /*·ա򡾵ҷա*/ devId = 0u; devState = 0u; - checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); if (checkResult == CI_SUCCESS) { /* ͨ */ @@ -9276,40 +9293,15 @@ UINT8 KeepRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel) else { /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); /* ʧܷ */ reResult = CI_ERROR; } - - if (CI_SUCCESS == reResult) - { - /*·ա򡾵ҷա*/ - devId = 0u; - devState = 0u; - checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } - } - else - { - reResult = CI_ERROR; - } } - } - else - { - /* ʧܷ *//* zt ɾش 2022-02-15 */ - reResult = CI_ERROR; + else + { + reResult = CI_ERROR; + } } } else @@ -9466,12 +9458,29 @@ UINT8 KeepLeadRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel if (CI_SUCCESS == reResult) {/*·ֿŷ*/ - if (CI_TRADITION_RAILWAY == lineIdentity) + /*·λȷ*/ + devId = 0U; + devState = 0U; + checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + if (checkResult == CI_SUCCESS) { - /*·λȷ*/ + /* ͨ */ + reResult = CI_SUCCESS; + } + else + { + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; + } + + if (CI_SUCCESS == reResult) + { + /*·ա򡾵ҷա*/ devId = 0U; devState = 0U; - checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); if (checkResult == CI_SUCCESS) { /* ͨ */ @@ -9480,38 +9489,13 @@ UINT8 KeepLeadRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel else { /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); /* ʧܷ */ reResult = CI_ERROR; } - - if (CI_SUCCESS == reResult) - { - /*·ա򡾵ҷա*/ - devId = 0U; - devState = 0U; - checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } - } - else - { - reResult = CI_ERROR; - } } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ reResult = CI_ERROR; } } @@ -9843,60 +9827,44 @@ UINT8 LockBlocRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel) if (CI_SUCCESS == reResult) { - if (CI_TRADITION_RAILWAY == lineIdentity) + /*·еλȷλòȷɶ*/ + devId = 0u; + devState = 0u; + + checkResult = RouteSwitchPosAndMoveValidCheck(routeId, sendLevel); + + if (CI_SUCCESS == checkResult) { - /*·еλȷλòȷɶ*/ - devId = 0u; - devState = 0u; - - checkResult = RouteSwitchPosAndMoveValidCheck(routeId, sendLevel); - - if (CI_SUCCESS == checkResult) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ʧܷ */ - reResult = checkResult; - } + /* ͨ */ + reResult = CI_SUCCESS; } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ - reResult = CI_ERROR; + /* ʧܷ */ + reResult = checkResult; } } if (CI_SUCCESS == reResult) { - if(CI_TRADITION_RAILWAY == lineIdentity) + /* + ·еλȷ + ȷRETURN_LOCK_ERR_SWITPOS + ȷCI_SUCCESS + */ + devId = 0u; + devState = 0u; + checkResult = RouteAllSwitchPosCheck(routeId, &devId, &devState); + if (checkResult == CI_SUCCESS) { - /* - ·еλȷ - ȷRETURN_LOCK_ERR_SWITPOS - ȷCI_SUCCESS - */ - devId = 0u; - devState = 0u; - checkResult = RouteAllSwitchPosCheck(routeId,&devId, &devState); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ʧܷ */ - reResult = RETURN_LOCK_ERR_SWITPOS; - - } + /* ͨ */ + reResult = CI_SUCCESS; } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ - reResult = CI_ERROR; + /* ʧܷ */ + reResult = RETURN_LOCK_ERR_SWITPOS; + } } else @@ -10196,60 +10164,44 @@ UINT8 LockLeadRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel if (CI_SUCCESS == reResult) { - if (CI_TRADITION_RAILWAY == lineIdentity) + /*·еλȷλòȷɶ*/ + devId = 0U; + devState = 0U; + + checkResult = RouteSwitchPosAndMoveValidCheck(routeId, sendLevel); + + if (CI_SUCCESS == checkResult) { - /*·еλȷλòȷɶ*/ - devId = 0U; - devState = 0U; - - checkResult = RouteSwitchPosAndMoveValidCheck(routeId, sendLevel); - - if (CI_SUCCESS == checkResult) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ʧܷ */ - reResult = checkResult; - } + /* ͨ */ + reResult = CI_SUCCESS; } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ - reResult = CI_ERROR; + /* ʧܷ */ + reResult = checkResult; } } if (CI_SUCCESS == reResult) { - if (CI_TRADITION_RAILWAY == lineIdentity) + /* + ·еλȷ + ȷRETURN_LOCK_ERR_SWITPOS + ȷCI_SUCCESS + */ + devId = 0U; + devState = 0U; + checkResult = RouteAllSwitchPosCheck(routeId, &devId, &devState); + if (checkResult == CI_SUCCESS) { - /* - ·еλȷ - ȷRETURN_LOCK_ERR_SWITPOS - ȷCI_SUCCESS - */ - devId = 0U; - devState = 0U; - checkResult = RouteAllSwitchPosCheck(routeId, &devId, &devState); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ʧܷ */ - reResult = RETURN_LOCK_ERR_SWITPOS; - - } + /* ͨ */ + reResult = CI_SUCCESS; } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ - reResult = CI_ERROR; + /* ʧܷ */ + reResult = RETURN_LOCK_ERR_SWITPOS; + } } else @@ -12752,39 +12704,37 @@ UINT8 OpenBlocRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel) } } - if(CI_SUCCESS == reResult) - { - if(CI_TRADITION_RAILWAY == lineIdentity) + if (CI_SUCCESS == reResult) + {/*·ŷ*/ + if (FUNC_SWITCH_ON == cSndSideProFuncSwitch) { - /* ͨ */ - reResult = CI_SUCCESS; + /*ֶ֧ʱλúͿɶ*/ } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ - reResult = CI_ERROR; - } - } - else - { - /* ʧܷ */ - reResult = CI_ERROR; - } - - if (CI_SUCCESS == reResult) - {/*·ŷ*/ - if(CI_TRADITION_RAILWAY == lineIdentity) - { - if (FUNC_SWITCH_ON == cSndSideProFuncSwitch) + /*·λȷ*/ + devId = 0u; + devState = 0u; + checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + if (checkResult == CI_SUCCESS) { - /*ֶ֧ʱλúͿɶ*/ + /* ͨ */ + reResult = CI_SUCCESS; } else { - /*·λȷ*/ + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; + } + + if (CI_SUCCESS == reResult) + { + /*·ա򡾵ҷա*/ devId = 0u; devState = 0u; - checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); if (checkResult == CI_SUCCESS) { /* ͨ */ @@ -12793,40 +12743,15 @@ UINT8 OpenBlocRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel) else { /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); /* ʧܷ */ reResult = CI_ERROR; } - - if (CI_SUCCESS == reResult) - { - /*·ա򡾵ҷա*/ - devId = 0u; - devState = 0u; - checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } - } - else - { - reResult = CI_ERROR; - } } - } - else - { - /* ʧܷ *//* zt ɾش 2022-02-15 */ - reResult = CI_ERROR; + else + { + reResult = CI_ERROR; + } } } else @@ -12957,31 +12882,29 @@ UINT8 OpenLeadRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel if (CI_SUCCESS == reResult) { - if (CI_TRADITION_RAILWAY == lineIdentity) + /*·λȷ*/ + devId = 0U; + devState = 0U; + checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + if (checkResult == CI_SUCCESS) { /* ͨ */ reResult = CI_SUCCESS; } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + /* ʧܷ */ reResult = CI_ERROR; } - } - else - { - /* ʧܷ */ - reResult = CI_ERROR; - } - if (CI_SUCCESS == reResult) - {/*·ŷ*/ - if (CI_TRADITION_RAILWAY == lineIdentity) + if (CI_SUCCESS == reResult) { - /*·λȷ*/ + /*·ա򡾵ҷա*/ devId = 0U; devState = 0U; - checkResult = RouteRelatedProSwitchPosCheck(routeId, &devId, &devState); + checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); if (checkResult == CI_SUCCESS) { /* ͨ */ @@ -12990,38 +12913,13 @@ UINT8 OpenLeadRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel else { /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); /* ʧܷ */ reResult = CI_ERROR; } - - if (CI_SUCCESS == reResult) - { - /*·ա򡾵ҷա*/ - devId = 0U; - devState = 0U; - checkResult = RouteRelatedProSwitchLockCheck(routeId, &devId, &devState); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } - } - else - { - reResult = CI_ERROR; - } } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ reResult = CI_ERROR; } } @@ -13183,7 +13081,7 @@ UINT8 OpenBlocRouteOverlapCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel) else { /* zt ɾش 2022-02-15 */ - /*·*/ + reResult = CI_ERROR; } #if 0 /*·ɲƣʱ·Ӧԭ״̬*/ @@ -15655,7 +15553,7 @@ UINT8 JumpLockSwitchCheck(const UINT16 axisSecId,UINT8 funcId,UINT8 sendLevel) if (CI_ERROR == reVal) { /* ¼ */ - SetErrorData(funcId,CI_DEVICE_TYPE_SWITCH,devId,ETYPE_SWT_FLOCK_STATE,devState,sendLevel); + SetErrorData(funcId,CI_DEVICE_TYPE_SWITCH,devId, ETYPE_SWT_POSTION_STATE,devState,sendLevel); } } @@ -15668,7 +15566,7 @@ UINT8 JumpLockSwitchCheck(const UINT16 axisSecId,UINT8 funcId,UINT8 sendLevel) if (CI_ERROR == reVal) { /* ¼ */ - SetErrorData(funcId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_FLOCK_STATE, devState, sendLevel); + SetErrorData(funcId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); } } @@ -15941,7 +15839,7 @@ UINT8 AxisSecPorteSwitchPosMoveCheck(UINT16 const axisSecId, UINT16* pDevId, UIN /* ε */ /* ֲʼ */ - UINT16 i = 0u; /* ѭ */ + UINT8 i = 0u; /* ѭ */ UINT16 devId = 0u; UINT8 devState = 0u; UINT8 switchPos = 0u; @@ -15982,6 +15880,8 @@ UINT8 AxisSecPorteSwitchPosMoveCheck(UINT16 const axisSecId, UINT16* pDevId, UIN } else { + *pDevId = devId; + *pDevState = devState; reVal = CI_ERROR; } } @@ -16044,7 +15944,7 @@ UINT8 AxisSecAllSwitchPosCheck(UINT16 const axisSecId,UINT16 *pDevId,UINT8 *pDev AxisSwitchStruct* const dataIdBuf = GetAxisSwitchIdStru(axisSecId); /* ֲʼ */ - UINT16 i = 0u; /* ѭ */ + UINT8 i = 0u; /* ѭ */ UINT16 devId = 0u; UINT8 devState = 0u; UINT8 reVal = CI_ERROR; @@ -16098,7 +15998,7 @@ UINT8 AxisSecAllProtSwitchPosCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8 AxisSwitchStruct* dataIdBuf =NULL; /* ֲʼ */ - UINT16 i = 0u; /* ѭ */ + UINT8 i = 0u; /* ѭ */ UINT16 devId = 0u; UINT8 devState = 0u; UINT8 reVal = CI_ERROR; @@ -16119,10 +16019,11 @@ UINT8 AxisSecAllProtSwitchPosCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8 for (i = 0u; i < checkSum; i++) { devId = dataIdBuf[i].SwitchId; - devState = GetSwitchCurPosition(devId); - if (devState == dataIdBuf[i].SwitchPosition) + devState = GetSwitchCurPosition(devId); /*ȡǰλ*/ + reVal = checkSwtLastValDrvPosStayorNot(devId, devState); /*һǷЧ*/ + if ((devState == dataIdBuf[i].SwitchPosition)&&(CI_SUCCESS == reVal)) { - /*λȷ*/ + /*λȷ*/ } else @@ -17122,7 +17023,6 @@ UINT8 LogicSecRltvPrtctSwFLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 * UINT16 wProtectSwSum = 0U; UINT16* pProtectSwIdBuf = NULL; LogsecSwitchStruct *pstLogicSecSwitchBuf = NULL; - chCheckSum = GetLogicSecSwitchSum(wLgcId); pstLogicSecSwitchBuf = GetLogicSecSwitchIdStru(wLgcId); if ((NULL != pDevId) && (NULL != pDevState) && (NULL != pYLockAlarmFlag) && (NULL != pstLogicSecSwitchBuf) @@ -17228,7 +17128,7 @@ UINT8 LogicSecRltvPrtctSwPosCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pD UINT8 chCheckSum = 0U; UINT8 chProSwState = 0U; LogsecSwitchStruct *pstLogicSecSwitchBuf = NULL; - + chCheckSum = GetLgcRelateProSwSum(wLgcId);/*ȡָID߼ιĿ*/ pstLogicSecSwitchBuf = GetLgcRelateProSwStru(wLgcId); if ((NULL != pDevId) @@ -17244,12 +17144,17 @@ UINT8 LogicSecRltvPrtctSwPosCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pD chDevId = pstLogicSecSwitchBuf[ii].SwitchId; chDevState = GetSwitchCurPosition(chDevId);/*ȡǰλ*/ chProSwState = pstLogicSecSwitchBuf[ii].SwitchPosition; + chRetVal = checkSwtLastValDrvPosStayorNot(chDevId, chDevState); /*һǷЧ*/ + /*ǰ߼ΰ*/ /*λһ*/ if ((chProSwState == chDevState) + &&(CI_SUCCESS == chRetVal) && ((SWITCH_POSITION_DINGWEI == chProSwState) || (SWITCH_POSITION_FANWEI == chProSwState))) { /*λüͨ*/ + + } else { @@ -17283,15 +17188,10 @@ UINT8 LogicSecRltvPrtctSwLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *p /* ֲʼ */ UINT8 chRetVal = CI_ERROR; UINT8 ii = 0U; - UINT16 jj = 0U; - UINT8 kk = 0U; UINT16 chDevId = 0U; UINT8 chDevState = 0U; - UINT16 wLgcRelativeAxleSecId = 0U; - UINT8 chProtectSwitchSum = 0U; LogsecSwitchStruct *chProtectSwitchIdBuf = NULL; - chProtectSwitchSum = GetLgcRelateProSwSum(wLgcId);/*ȡָID߼ιĿ*/ chProtectSwitchIdBuf = GetLgcRelateProSwStru(wLgcId); @@ -17303,9 +17203,9 @@ UINT8 LogicSecRltvPrtctSwLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *p chRetVal = CI_SUCCESS; for (ii = 0U; ii < chProtectSwitchSum; ii++) { - chDevId = chProtectSwitchIdBuf[jj].SwitchId; + chDevId = chProtectSwitchIdBuf[ii].SwitchId; chDevState = GetSwitchLockStatus(chDevId); - + /*ǰ߼ΰ*/ if ((SWITCH_LOCK_STATUS_PROTECT == chDevState) || (SWITCH_LOCK_STATUS_DAP == chDevState)) { /*ѡա򡾵ҷա*/ @@ -17321,7 +17221,7 @@ UINT8 LogicSecRltvPrtctSwLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *p if (CI_SUCCESS != chRetVal) { break; - } + } } } else @@ -18257,6 +18157,7 @@ UINT8 LogicSecResApplicabilityCheck(UINT16 const wLogicSecId) else { /* ¼ */ + devState = GetRouteState(routeId); SetErrorData(functionId, CI_DEVICE_TYPE_ROUTE, routeId, ETYPE_ROUTE_STATE, devState, sendLevel); /* ʧܷ */ reResult = CI_ERROR; @@ -26514,6 +26415,8 @@ UINT8 OtherCiOvlpRelProSwMovValCheck(const UINT16 wOverlapId) cRetVal = CI_ERROR; /*λòȷҵɶʧ*/ } } + + } else { @@ -27865,7 +27768,7 @@ UINT8 PhySecLockMaskSideProtectCheck(UINT16 wPhySecId) /*ڲʱжϵǰǷλڹؼκ*/ wSwtPhySecId = GetSwitchPhySectionId(pSideProtectData[i].KeysSwitchID); cKeySwtPhySecIndex = GetPhySecInRoutePosIndex(wRLockBelongRouteId, wSwtPhySecId); - if ((ROUTE_PHYSICALSECTION_SUM_MAX > cKeySwtPhySecIndex) && (cKeySwtPhySecIndex < cCurPhySecIndex)) + if (cKeySwtPhySecIndex < cCurPhySecIndex) { /*λڹؼκ󷽣*/ } @@ -28266,7 +28169,7 @@ UINT8 JumpPhySectionUseCheck(const UINT16 axisSecId) /* ֲʼ */ UINT8 reResult = CI_ERROR; /*ֵ*/ UINT8 phyUseState = 0u;/*ü*/ - UINT8 phyId = 0u; + UINT16 phyId = 0u; @@ -28282,11 +28185,15 @@ UINT8 JumpPhySectionUseCheck(const UINT16 axisSecId) /*޴*/ } - /*εķε*/ + /*εķκ͵*/ if (CI_SUCCESS == reResult) { reResult = JumpPhySectionPortectUseCheck(axisSecId); } + else + { + /*޴*/ + } /*εĵ*/ @@ -28294,15 +28201,14 @@ UINT8 JumpPhySectionUseCheck(const UINT16 axisSecId) { reResult = JumpPhySectionSwitchUseCheck(axisSecId); } - - /*εķ*/ - if (CI_SUCCESS == reResult) + else { - reResult = JumpPhySectionSwitchUseCheck(axisSecId); + /*޴*/ } + return reResult; } @@ -28372,7 +28278,7 @@ UINT8 JumpLogicSecPortectUseCheck(const UINT16 wLgcId) phyId = GetSwitchPhySectionId(chDevId); phyUseState = GetPhySecUseState(phyId); if((PHYSICAL_SECTION_USING_NO != phyUseState)||(SWITCH_USING_NO !=cSwitchUsingState)) - {/**/ + {/*ûڵ*/ chRetVal = CI_ERROR; break; } @@ -28406,7 +28312,7 @@ UINT8 JumpPhySectionSwitchUseCheck(const UINT16 axisSecId) /* ֲʼ */ UINT8 i = 0u; /* ѭ */ - UINT16 SwitchId = 0u; + UINT16 wSwitchId = 0u; UINT8 cSwitchUsingState = 0U; @@ -28421,8 +28327,8 @@ UINT8 JumpPhySectionSwitchUseCheck(const UINT16 axisSecId) /*ʼڵ*/ for (i = 0u; i < checkSum; i++) { - SwitchId = dataIdBuf[i].SwitchId; - cSwitchUsingState = GetSwitchUsingState(SwitchId); + wSwitchId = dataIdBuf[i].SwitchId; + cSwitchUsingState = GetSwitchUsingState(wSwitchId); if (SWITCH_USING_NO != cSwitchUsingState) { retVal = CI_ERROR; @@ -28613,7 +28519,7 @@ void SetAxisRelProSwitchLockSta(const UINT16 axisSecId, const UINT8 lockCommand) cFuncRet = checkSwtLastValDrvPosStayorNot(protectSwitchId, dataIdBuf[ii].SwitchPosition); if ((SWITCH_LOCK_PROTECT_CANCEL == lockCommand) || ((cSwitchCurPos == dataIdBuf[ii].SwitchPosition) && (CI_SUCCESS == cFuncRet))) - { + {/*ɶ֮ǰѾˣﻹظ*/ SetSwitchLockStatus(SWITCH_PLOCKTYPE_AXISSEC, axisSecId, protectSwitchId, lockCommand); /*õ״̬*/ } @@ -28642,7 +28548,7 @@ UINT8 AxisRelatedProSwitchLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT { /* ֲʼ */ - UINT16 i = 0u; /* ѭ */ + UINT8 i = 0u; /* ѭ */ UINT16 devId = 0u; UINT8 devState = 0u; UINT8 reVal = CI_ERROR; @@ -28687,61 +28593,6 @@ UINT8 AxisRelatedProSwitchLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT return reVal; } -/* -* ߼״̬ -* ˵ UINT16 const routeId, ߼ID -* UINT16 *pDevId, 豸Idأ -* UINT8 *pDevState, 豸״̬أ -* ֵ CI_ERROR -* CI_SUCCESS -* add by mpt 20260331 -*/ -UINT8 LogicSecRltvPrtctSwFlockCheck(UINT16 const wLgcId, UINT16* pDevId, UINT8* pDevState) -{ - /* ֲʼ */ - UINT8 chRetVal = CI_ERROR; - UINT8 ii = 0U; - UINT16 jj = 0U; - UINT16 chDevId = 0U; - UINT8 chDevState = 0U; - UINT8 chCheckSum = 0U; - LogsecSwitchStruct* pstLogicSecSwitchBuf = NULL; - - chCheckSum = GetLgcRelateProSwSum(wLgcId);/*ȡָID߼ιĿ*/ - pstLogicSecSwitchBuf = GetLgcRelateProSwStru(wLgcId); - if ((NULL != pDevId) - && (NULL != pDevState) - && (NULL != pstLogicSecSwitchBuf) - && (LOGSEC_RELATE_PRO_SW_SUM_MAX > chCheckSum)) - { - chRetVal = CI_SUCCESS; - /*߼ι*/ - for (ii = 0U; ii < chCheckSum; ii++) - { - - chDevId = pstLogicSecSwitchBuf[ii].SwitchId; - chDevState = GetSwitchFLockState(chDevId); - if(SWITCH_LOCK_FENGSUO_NO == chDevState) - { - /*λüͨ*/ - } - else - { - /*״̬һ·ع״̬*/ - *pDevId = chDevId; - *pDevState = chDevState; - chRetVal = CI_ERROR; - break; - } - } - } - else - { - chRetVal = CI_ERROR; - } - - return chRetVal; -} /* * ߼ι״̬ @@ -28784,7 +28635,7 @@ void SetLogSecRelProSwitchLockSta(const UINT16 wLgcId, const UINT8 lockCommand) retVal = CI_ERROR; } else - { + {/*޴*/ } } @@ -28812,4 +28663,75 @@ void SetLogSecRelProSwitchLockSta(const UINT16 wLgcId, const UINT8 lockCommand) { retVal = CI_ERROR; } -} \ No newline at end of file +} +/* +* еǷȫ +* ˵const UINT16 axisSecId ID +* ֵ CI_ERROR δȫ +* CI_SUCCESS ȫ +* add by mpt 20260403 +*/ +UINT8 JumpPhySecAllUseCheck(const UINT16 axisSecId) +{ + UINT8 retVal = CI_ERROR; + UINT8 checkSum = 0u; + AxisSwitchStruct* dataIdBuf = 0u; + + /* ֲʼ */ + UINT8 i = 0u; /* ѭ */ + UINT16 wSwitchId = 0u; + UINT16 phyId = 0U; + UINT8 phyUseState = 0U; + + checkSum = GetAxisSecRelateProSwSum(axisSecId);/*ι*/ + dataIdBuf = GetAxisSecRelateProSwStru(axisSecId); + + + if (NULL == dataIdBuf) + { + /*޼*/ + retVal = CI_ERROR; + } + else + { + retVal = CI_SUCCESS; + /*ʼ*/ + for (i = 0u; i < checkSum; i++) + { + wSwitchId = dataIdBuf[i].SwitchId; + + phyId = GetSwitchPhySectionId(wSwitchId); + phyUseState = GetPhySecUseState(phyId); + + if (PHYSICAL_SECTION_USING_YES != phyUseState) + {/**/ + retVal = CI_ERROR; + break; + } + else + { + /*ѭ*/ + } + + } + } + + if (CI_SUCCESS == retVal) + { + phyId = GetAxisSecRelativePhySecId(axisSecId);/*ȡID*/ + phyUseState = GetPhySecUseState(phyId); + + if (PHYSICAL_SECTION_USING_YES != phyUseState) + {/**/ + retVal = CI_ERROR; + } + else + { + /*ִ*/ + } + } + + return retVal; +} + + diff --git a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.h b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.h index 49f4527..51eacaf 100644 --- a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.h +++ b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicCheck.h @@ -3025,22 +3025,22 @@ void SetAxisRelProSwitchLockSta(const UINT16 axisSecId, const UINT8 lockCommand) */ UINT8 AxisRelatedProSwitchLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState); /* -* ߼״̬ -* ˵ UINT16 const routeId, ߼ID -* UINT16 *pDevId, 豸Idأ -* UINT8 *pDevState, 豸״̬أ -* ֵ CI_ERROR -* CI_SUCCESS -* add by mpt 20260331 -*/ -UINT8 LogicSecRltvPrtctSwFlockCheck(UINT16 const wLgcId, UINT16* pDevId, UINT8* pDevState); -/* * ߼ι״̬ * ˵ const UINT16 axisSecId, ID * const UINT8 lockCommand, ״̬ * ֵ void * add by mpt 20260331 */ -void SetLogSecRelProSwitchLockSta(const UINT16 wLgcId, const UINT8 lockCommand); +void SetLogSecRelProSwitchLockSta(const UINT16 wLgcId, const UINT8 lockCommand); +/* +* еǷȫ +* ˵const UINT16 axisSecId ID +* ֵ CI_ERROR δȫ +* CI_SUCCESS ȫ +* add by mpt 20260403 +*/ +UINT8 JumpPhySecAllUseCheck(const UINT16 axisSecId); + + #endif diff --git a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicProcess.c b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicProcess.c index 8ce766f..a2a6580 100644 --- a/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicProcess.c +++ b/TSCP/src/APP/ciapp/LogicProcess/InterlockLogicProcess.c @@ -454,26 +454,21 @@ UINT8 SetRevrLTrainRouteLogicProcess(UINT16 const routeId) /* ߼ */ /* ·ǡг·*/ - if(CI_SUCCESS == reResult) + devState = GetRouteType(routeId); + if (devState == ROUTE_TYPE_LIECHE) { - devState = GetRouteType(routeId); - if (devState == ROUTE_TYPE_LIECHE) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_ROUTE,routeId,ETYPE_ROUTE_TYPE,devState,sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; + /* ͨ */ + reResult = CI_SUCCESS; + } + else + { + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_ROUTE, routeId, ETYPE_ROUTE_TYPE, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; - } - } - - - + } + if(CI_SUCCESS == reResult) { devState = GetRouteState(routeId); @@ -1053,21 +1048,18 @@ UINT8 SetReverseRtnRouteLogicProcess(UINT16 const routeId) /* ߼ */ /* ·ǡ۷·*/ - if(CI_SUCCESS == reResult) + devState = GetRouteType(routeId); + if (devState == ROUTE_TYPE_RETURN) { - devState = GetRouteType(routeId); - if (devState == ROUTE_TYPE_RETURN) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_ROUTE,routeId,ETYPE_ROUTE_TYPE,devState,sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } + /* ͨ */ + reResult = CI_SUCCESS; + } + else + { + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_ROUTE, routeId, ETYPE_ROUTE_TYPE, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; } if(CI_SUCCESS == reResult) @@ -2895,36 +2887,23 @@ UINT8 LockRouteOverlapLogicProcess(UINT16 const routeId, UINT16 const overlapId, if (CI_TRADITION_RAILWAY == lineIdentity) {/*ͳ·*/ checkResult = OverlapSwitchMoveValidCheck(overlapId,&devId,&devState); + if (checkResult == CI_SUCCESS) + { + /* ͨ飬ֵǰ״̬ */ + } + else + { + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; + } }/* zt ɾش 2022-02-15 */ else {/*·ʹ*/ - checkResult = CI_ERROR; - } - - if (checkResult == CI_SUCCESS) - { - /* ͨ飬ֵǰ״̬ */ - } - else - { - /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_SWITCH,devId,ETYPE_SWT_POSTION_STATE,devState,sendLevel); - /* ʧܷ */ reResult = CI_ERROR; } } - /*·ͼ*/ - if ((CI_SUCCESS == reResult) || (RETURN_WAIT_SWITCH_USING == reResult)) - {/* zt ɾش 2022-02-15 */ - if (CI_TRADITION_RAILWAY == lineIdentity) - {/*ͳ·*/ - /* ͨ飬ֵǰ״̬ */ - } - else - {/*·ʹ*/ - reResult = CI_ERROR; - } - } /*ελü * RETURN_LOCK_ERR_SWITPOS ελòȷ @@ -2934,15 +2913,7 @@ UINT8 LockRouteOverlapLogicProcess(UINT16 const routeId, UINT16 const overlapId, { devId = 0u; devState = 0u; - if(CI_TRADITION_RAILWAY == lineIdentity) - {/*ͳ·*/ - checkResult = OverlapSwitchPosCheck(overlapId,&devId,&devState); - }/* zt ɾش 2022-02-15 */ - else - {/*·ʹ*/ - checkResult = CI_ERROR; - } - + checkResult = OverlapSwitchPosCheck(overlapId, &devId, &devState); if (checkResult == CI_ERROR) { /* λòȷ */ @@ -3631,21 +3602,18 @@ UINT8 OpenCbtcLTrainRouteLogicProcess(UINT16 const routeId) /* ߼ */ /* ·ලģʽΪCBTC*/ - if (CI_SUCCESS == reResult) + devState = GetRouteLevel(routeId); + if ((devState == ROUTE_LEVEL_CBTC)) { - devState = GetRouteLevel(routeId); - if ((devState == ROUTE_LEVEL_CBTC)) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_ROUTE,routeId,ETYPE_ROUTE_LEVEL,devState,sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } + /* ͨ */ + reResult = CI_SUCCESS; + } + else + { + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_ROUTE, routeId, ETYPE_ROUTE_LEVEL, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; } /* ·г·*/ @@ -3886,18 +3854,15 @@ UINT8 OpenCbtcLTrainRouteLogicProcess(UINT16 const routeId) else { /*ȲǷ·ҲǷ羮·*/ - if (CI_SUCCESS == reResult) + /**/ + checkResult = CBTCRouteFloodGateCheck(routeId, functionId, sendLevel); + if (CI_SUCCESS == checkResult) { - /**/ - checkResult = CBTCRouteFloodGateCheck(routeId,functionId,sendLevel); - if (CI_SUCCESS == checkResult) - { - reResult = CI_SUCCESS; - } - else - { - reResult = CI_ERROR; - } + reResult = CI_SUCCESS; + } + else + { + reResult = CI_ERROR; } } } @@ -4851,21 +4816,18 @@ UINT8 OpenCbtcReturnRouteLogicProcess(UINT16 const routeId) /* ߼ */ /* ·ලģʽΪCBTC*/ - if (CI_SUCCESS == reResult) + devState = GetRouteLevel(routeId); + if ((devState == ROUTE_LEVEL_CBTC)) { - devState = GetRouteLevel(routeId); - if ((devState == ROUTE_LEVEL_CBTC)) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_ROUTE,routeId,ETYPE_ROUTE_LEVEL,devState,sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } + /* ͨ */ + reResult = CI_SUCCESS; + } + else + { + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_ROUTE, routeId, ETYPE_ROUTE_LEVEL, devState, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; } /* ·ǡ۷·*/ @@ -7863,42 +7825,33 @@ UINT8 SetSwitchFLockLogicProcess(UINT16 const switchId) { if(FUNC_SWITCH_ON == CiFunctionLock) { - if (CI_TRADITION_RAILWAY == lineIdentity) - {/*ͳ·*/ - /*2״̬Ϊδա*/ - checkResult = switch2ndSecLockState; - if (checkResult == PHYSICAL_SECTION_LOCK_NO) + /*ͳ·*/ + /*2״̬Ϊδա*/ + checkResult = switch2ndSecLockState; + if (checkResult == PHYSICAL_SECTION_LOCK_NO) + { + /*δա*/ + reResult = CI_SUCCESS; + if (LOG_SECTION_LOGLOCK_NO == chSw2PhySecLogLockState) { - /*δա*/ + /*δ߼·ա*/ reResult = CI_SUCCESS; - if (LOG_SECTION_LOGLOCK_NO == chSw2PhySecLogLockState) - { - /*δ߼·ա*/ - reResult = CI_SUCCESS; - } - else - { - /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_PHYSEC, switch2ndSecId, ETYPE_PS_LOCK_STATE, chSw2PhySecLogLockState, sendLevel); - /* ʧܷ */ - reResult = CI_ERROR; - } } else { - /*ա*/ /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_PHYSEC,switch2ndSecId,ETYPE_PS_LOCK_STATE,checkResult,sendLevel); + SetErrorData(functionId, CI_DEVICE_TYPE_PHYSEC, switch2ndSecId, ETYPE_PS_LOCK_STATE, chSw2PhySecLogLockState, sendLevel); /* ʧܷ */ reResult = CI_ERROR; - } - }/* zt ɾش 2022-02-15 */ + } else - {/*·ʹ*/ - reResult = CI_ERROR; + { + /*ա*/ /* ¼ */ - SetErrorData(functionId,CI_DEVICE_TYPE_PHYSEC,phySecId,ETYPE_PS_LOCK_STATE,devState,sendLevel); + SetErrorData(functionId, CI_DEVICE_TYPE_PHYSEC, switch2ndSecId, ETYPE_PS_LOCK_STATE, checkResult, sendLevel); + /* ʧܷ */ + reResult = CI_ERROR; } } else if(FUNC_SWITCH_OFF == CiFunctionLock) @@ -9910,7 +9863,7 @@ UINT8 CLDKeepOpenSecCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel) ETYPE_PS_MERGY_OCU_STATE, devState, sendLevel); } - else if ((0u == hasUtFlag) && (1u == hasCtFlag)) + else if (1u == hasCtFlag) { if (RC_WORK_MODE_TIOC == rcWorkMode) { @@ -11655,7 +11608,10 @@ void RouteLgcSecResReleaseProcess(const UINT16 wRouteId) && (NULL == pstTrainResInfo)) {/*һѾгԴͷŻѾ*/ /*ɾгӦ߼Դ*/ - (void)ComMemSet((void *)&pstLgcSecInfo[wLgcBufIndex].szTrainResData[jj], (UINT16)sizeof(LogicTrainResStruct), 0U); + + /*ԴϢṹ*/ + ResetResInfoStruct(wLgcBufIndex, jj); + debug_infor_printf((const)"LogSecRes Release LgcId: %d TrainId:%d Cyc\n" , wUnlockLgcSecId , wTrainId diff --git a/TSCP/src/APP/ciapp/Overlap/OverlapDataManage.c b/TSCP/src/APP/ciapp/Overlap/OverlapDataManage.c index 656ff30..98816d8 100644 --- a/TSCP/src/APP/ciapp/Overlap/OverlapDataManage.c +++ b/TSCP/src/APP/ciapp/Overlap/OverlapDataManage.c @@ -890,7 +890,10 @@ void CleanOverlapSpecificFlag(const UINT16 routeId, const UINT16 overlapId) } else { - if ((dwAtsLastTimeLockCyc < dwUnlockStartCycNum) && (0U < dwAtsLastTimeLockCyc)) + atsExpLockOverlapId = GetRouteAtsExpLkOverlapId(routeId); + + if ((dwAtsLastTimeLockCyc <= dwUnlockStartCycNum) && (0U < dwAtsLastTimeLockCyc) + && (overlapId == atsExpLockOverlapId)) { /*ATSһ·ձʱδԶ*/ SetRouteAtsExpLkOverlapId(routeId, 0U); diff --git a/TSCP/src/APP/ciapp/PSD/PSDConfigDataManage.h b/TSCP/src/APP/ciapp/PSD/PSDConfigDataManage.h index 3c1143e..caa656a 100644 --- a/TSCP/src/APP/ciapp/PSD/PSDConfigDataManage.h +++ b/TSCP/src/APP/ciapp/PSD/PSDConfigDataManage.h @@ -43,7 +43,7 @@ typedef struct S_PsdConfigDataStruct UINT16 OpenFourEditGroupDriveRelayId; /*ıŵ̵(ֶ)*/ UINT16 OpenSixEditGroupDriveRelayId; /*ŵ̵(ֶ)*/ UINT16 OpenEightEditGroupDriveRelayId; /*򿪰˱ŵ̵(ֶ)*/ - UINT16 DoorStateRelayId; /*ſɼ̵ID (ֶ)*/ + UINT16 DoorStateRelayId; /*ſɼ̵ID (ֶ)*/ UINT16 wDoorStateRelayId2; /*ſɼ̵ID2(ֶ) ˹*/ UINT16 wRelayDoorButtonId; /*ٹŰť̵*/ UINT16 doorReopenRelayId; /*վ̨ٴοż̵*/ diff --git a/TSCP/src/APP/ciapp/PSD/PSDDefine.h b/TSCP/src/APP/ciapp/PSD/PSDDefine.h index ebc91b0..ccb324b 100644 --- a/TSCP/src/APP/ciapp/PSD/PSDDefine.h +++ b/TSCP/src/APP/ciapp/PSD/PSDDefine.h @@ -17,7 +17,7 @@ /*ֵ*/ -#define PSD_SUM_MAX ((UINT16)90U) /*ֵ*/ +#define PSD_SUM_MAX ((UINT16)150U) /*ֵ*/ /*Źijվ·Ŀֵ*/ #define RALATED_OUT_STATION_ROUTE_SUM_MAX ((UINT16)10U) /*Źijվ·Ŀֵ*/ diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackAtsData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackAtsData.c index b78bdd7..72da56d 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackAtsData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackAtsData.c @@ -2065,7 +2065,7 @@ UINT16 TransCiToAtsSwitchZzjInfo(OcToATSSwitchZzjData* ciSendAtsSwitchZzjData, U } else { - /*ûĿת޻״̬Ϊ*/ + /*ûĿת޻״̬Ϊ*/ ciSendAtsSwitchZzjData[wSwitchNum].szSwitchIncldeZzjState[jj] = OC_TO_ATS_SWITCH_ZZJ_ALARM; } } diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.c index 0b2f1f5..4700a84 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.c @@ -7902,7 +7902,8 @@ static UINT8 ParseSwitchPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetSwitchCurPosition(switchId, SWITCH_POSITION_SIKAI); break; default: - /*ɴ֧*/ + SetSingleSwitchCurPosition(switchId, SWITCH_POSITION_SIKAI); + SetSwitchCurPosition(switchId, SWITCH_POSITION_SIKAI); /*Ŀ*/ break; } switch (yLockState) @@ -7914,7 +7915,7 @@ static UINT8 ParseSwitchPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetSwitchYLockState(switchId, SWITCH_LOCK_YINZONG_YES); /*״̬*/ break; default: - /*ɴ֧*/ + SetSwitchYLockState(switchId, SWITCH_LOCK_YINZONG_NO); /*δ*/ break; } switch (dLockState) @@ -7926,7 +7927,7 @@ static UINT8 ParseSwitchPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetOtherCiSwitchLockStatus(switchId, SWITCH_LOCK_STATUS_DANSUO); /*״̬*/ break; default: - /*ɴ֧*/ + SetOtherCiSwitchLockStatus(switchId, SWITCH_LOCK_STATUS_NO); /*δ״̬*/ break; } switch (fLockState) @@ -7938,7 +7939,7 @@ static UINT8 ParseSwitchPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetSwitchFLockState(switchId, SWITCH_LOCK_FENGSUO_YES); /*״̬*/ break; default: - /*ɴ֧*/ + SetSwitchFLockState(switchId, SWITCH_LOCK_FENGSUO_NO); /*δ״̬*/ break; } } @@ -8042,9 +8043,11 @@ static UINT8 PackSwitchPacket(UINT8 *pInputBuf, UINT16 *pItemLen,const UINT8 dst switch (dLockState) { case SWITCH_LOCK_STATUS_NO: + case SWITCH_LOCK_STATUS_PROTECT: *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 4u));/*δ״̬*/ break; case SWITCH_LOCK_STATUS_DANSUO: + case SWITCH_LOCK_STATUS_DAP: *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 4u));/*״̬*/ break; default: @@ -8183,7 +8186,8 @@ static UINT8 ParsePhySecPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetPhySecCurMergeState(phySectionId, SECTION_OCCUPY_NO); break; default: - /*ɴ֧*/ + SetPhySecCurOccupyState(phySectionId, SECTION_OCCUPY_YES); + SetPhySecCurMergeState(phySectionId, SECTION_OCCUPY_YES); break; } @@ -8225,7 +8229,8 @@ static UINT8 ParsePhySecPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetPhyContainAxisSecArbState(phySectionId, AXIS_SECTION_ARB_NO); break; default: - /*ɴ֧*/ + SetPhySecArbState(phySectionId, AXIS_SECTION_ARB_NO); + SetPhyContainAxisSecArbState(phySectionId, AXIS_SECTION_ARB_NO); break; } @@ -8239,7 +8244,7 @@ static UINT8 ParsePhySecPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U (void)SetPhySecFLockState(phySectionId, PHYSICAL_SECTION_FLOCK_NO); break; default: - /*ɴ֧*/ + (void)SetPhySecFLockState(phySectionId, PHYSICAL_SECTION_FLOCK_YES); break; } @@ -8256,7 +8261,7 @@ static UINT8 ParsePhySecPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U directionState = CI_SYSTEM_DIRECTION_NONE; break; default: - /*ɴ֧*/ + directionState = CI_SYSTEM_DIRECTION_NONE;/*ɴ֧*/ break; } @@ -8409,41 +8414,41 @@ static UINT8 PackPhySecPacket(UINT8 *pInputBuf, UINT16 *pItemLen, const UINT8 ds } /*״̬*/ - if (PhySecLockState == PHYSICAL_SECTION_LOCK_EXCEPT) + if (PHYSICAL_SECTION_LOCK_EXCEPT == PhySecLockState) {/*ι*/ *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 6u)); } else { *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 6u)); /*δ*/ - switch (PhySecLockState) - { - case PHYSICAL_SECTION_LOCK_PROTECT: /*ֻб*/ - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 4u)); - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 2u)); - break; - case PHYSICAL_SECTION_LOCK_NO: /*δ*/ - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 4u)); - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 2u)); - break; - case PHYSICAL_SECTION_LOCK_NORMAL: - if (0U != GetPhySecPLockBelongRouteId(phySectionId)) - {/*ͬʱڽ·պͱ*/ - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 4u)); - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 2u)); - } - else - {/**/ - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 4u)); - *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 2u)); - } - break; - default: - /*ɴ֧*/ - break; - } } - + switch (PhySecLockState) + { + case PHYSICAL_SECTION_LOCK_PROTECT: /*ֻб*/ + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 4u)); + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 2u)); + break; + case PHYSICAL_SECTION_LOCK_NO: /*δ*/ + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 4u)); + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 2u)); + break; + case PHYSICAL_SECTION_LOCK_NORMAL: + case PHYSICAL_SECTION_LOCK_DELAY: /*ʱ*/ + if (0U != GetPhySecPLockBelongRouteId(phySectionId)) + {/*ͬʱڽ·պͱ*/ + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 4u)); + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 2u)); + } + else + {/**/ + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000001B << 4u)); + *(pInputBuf + packedLen) = *(pInputBuf + packedLen) | ((UINT8)(BIT_VAL_00000010B << 2u)); + } + break; + default: + /*ɴ֧*/ + break; + } /*ARB״̬*/ switch (arbState) @@ -8589,7 +8594,7 @@ static UINT8 ParseLogSecPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U if (localCiId != belongCiId) { - sectionOccupyState = (dataBuf1 & BIT_MASK_00000011B); /*ռ״̬*/ + sectionOccupyState = (dataBuf1 & BIT_MASK_00000011B); /*ռ״̬*/ sectionRouteLockState = ((dataBuf1 >> 2u) & BIT_MASK_00000011B); /*ν·״̬*/ protectionLockState = ((dataBuf1 >> 4u)& BIT_MASK_00000011B); /*α״̬*/ lockDirection = ((dataBuf1 >> 6u) & BIT_MASK_00000011B); /*շ*/ @@ -8612,11 +8617,12 @@ static UINT8 ParseLogSecPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetLogSecCurOccupyState(logSecId, LOGICSECTION_OCCUPY_NO);/**/ break; default: - /*ɴ֧*/ + SetLogSecPreOccupyState(logSecId, GetLogSecCurCtOrUtOccupyState(logSecId));/*߼֮ǰռ״̬*/ + SetLogSecCurOccupyState(logSecId, LOGICSECTION_OCCUPY_UT);/*CBTCռ*/ break; } - SetLogSecLinShiXianSuState(logSecId, LOGSEC_LSXS_SET_STATE_NO); + /*ν·״̬*/ switch (sectionRouteLockState) @@ -8658,6 +8664,7 @@ static UINT8 ParseLogSecPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U lockDirection = CI_SYSTEM_DIRECTION_NONE; break; default: + lockDirection = CI_SYSTEM_DIRECTION_NONE;/*쳣ֵΪշ*/ break; } @@ -9058,7 +9065,7 @@ static UINT8 ParseSignalPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U sigExtStat = SIGNAL_LIGHT_EXTICT_STATE_YES; /*źŻ*/ break; default: - /*ɴ֧*/ + sigExtStat = SIGNAL_LIGHT_EXTICT_STATE_YES; /*źŻ*/ break; } @@ -9120,7 +9127,7 @@ static UINT8 ParseSignalPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetSignalFLockState(signalId, SIGNAL_FENGSUO_NO); /*źŻδ*/ break; default: - /*ɴ֧*/ + SetSignalFLockState(signalId, SIGNAL_FENGSUO_NO); /*źŻδ*/ break; } @@ -9168,6 +9175,7 @@ static UINT8 ParseSignalPacket(const UINT8 *pInputData, UINT16 *pItemLen,const U SetSignalPLockCommand(signalId, SIGNAL_PLOCK_CMD_NONE); break; default: + SetSignalPLockCommand(signalId, SIGNAL_PLOCK_CMD_NONE); break; } } @@ -9220,7 +9228,9 @@ static UINT8 PackSignalPacket(UINT8 *pInputBuf, UINT16 *pItemLen, const UINT8 ds UINT16 sigOutSec = 0u;/*źŻⷽ*/ UINT16 sigOutSecCi = 0u;/*źŻⷽCI*/ UINT8 sigDsBreakFlag = 0u; /*źŻ˿־*/ - + UINT16 wSigInFirstPhySec = 0U; + UINT16 wLockBelongRoute = 0U; + UINT8 chRouteState = 0U; pTmpCiTransInfo = GetDstCiTransInfo(dstCiId); localCi = GetSystemParaLocalCiId(); /*ȡID*/ @@ -9311,6 +9321,19 @@ static UINT8 PackSignalPacket(UINT8 *pInputBuf, UINT16 *pItemLen, const UINT8 ds default: break; } + /*źŻӽ״̬*/ + wSigInFirstPhySec = GetSignalInFirstLockedPhySecId(signalId); + wLockBelongRoute = GetPhySecRLockBelongRouteId(wSigInFirstPhySec); + chRouteState = GetRouteState(wLockBelongRoute);/*·״̬ӽӽ쳣ӽʱӽ*/ + + if ((ROUTE_STATE_NEAR_LOCK == chRouteState) || (ROUTE_STATE_NEAR_LOCKERR == chRouteState) ||(ROUTE_STATE_NEAR_OPEN == chRouteState)) + { + *(pInputBuf + packedLen + 1U) = *(pInputBuf + packedLen + 1U) | ((UINT8)(BIT_VAL_00000001B << 4U)); + } + else + { + *(pInputBuf + packedLen + 1U) = *(pInputBuf + packedLen + 1U) | ((UINT8)(BIT_VAL_00000010B << 4U)); + } /*źŻ,Ч*/ *(pInputBuf + packedLen + 1) = *(pInputBuf + packedLen + 1) | ((UINT8)(BIT_VAL_00000000B << 6u)); @@ -9476,7 +9499,7 @@ static UINT8 ParsePsdPacket(const UINT8 *pInputData, UINT16 *pItemLen,const UINT (void)SetPsdState(psdId, PSD_STATE_CLOSE); break; default: - /*ɴ֧*/ + (void)SetPsdState(psdId, PSD_STATE_OPEN); break; } @@ -9492,7 +9515,7 @@ static UINT8 ParsePsdPacket(const UINT8 *pInputData, UINT16 *pItemLen,const UINT (void)SetPsdMutualLockRemoveState(psdId, PSD_MUTUALLOCK_REMOVE_YES); break; default: - /*ɴ֧*/ + (void)SetPsdMutualLockRemoveState(psdId, PSD_MUTUALLOCK_REMOVE_NO); break; } } @@ -9709,7 +9732,7 @@ static UINT8 ParseEmbtnPacket(const UINT8 *pInputData, UINT16 *pItemLen,const UI (void)SetEsbState(esbId, ESB_STATE_VALID_NO); break; default: - /*ɴ֧*/ + (void)SetEsbState(esbId, ESB_STATE_VALID_NO); break; } } @@ -10086,6 +10109,7 @@ static UINT8 ParseFloodGatePacket(const UINT8 *pInputData, UINT16 *pItemLen, con SetFloodGateCurOpenLockState(wFloodGateId, FLOOD_GATE_NOT_OPENLOCK); /*ù*/ break; default: + SetFloodGateCurOpenLockState(wFloodGateId, FLOOD_GATE_NOT_OPENLOCK); /*ù*/ break; } @@ -10099,6 +10123,7 @@ static UINT8 ParseFloodGatePacket(const UINT8 *pInputData, UINT16 *pItemLen, con SetFloodGateCurCloseRequestSta(wFloodGateId, FLOOD_GATE_NOT_CLOSEREQ); /*޹*/ break; default: + SetFloodGateCurCloseRequestSta(wFloodGateId, FLOOD_GATE_NOT_CLOSEREQ); /*޹*/ break; } @@ -10112,6 +10137,7 @@ static UINT8 ParseFloodGatePacket(const UINT8 *pInputData, UINT16 *pItemLen, con SetFloodGateCurAgreeCloseSta(wFloodGateId, FLOOD_GATE_NOT_AGREE_CLOSE); /*ò*/ break; default: + SetFloodGateCurAgreeCloseSta(wFloodGateId, FLOOD_GATE_NOT_AGREE_CLOSE); /*ò*/ break; } } @@ -10252,23 +10278,20 @@ static UINT8 ParseStartLockPacket(const UINT8* pInputData, UINT16* pItemLen, con UINT8 retValue = CI_ERROR; UINT16 phySecId = 0u; /*ID*/ UINT16 ii = 0u; /*α*/ - UINT16 bufIndex = 0u; /*±*/ UINT8 StartLockState = 0u; /*ϵ״̬*/ UINT8 localCiId = 0u; UINT16 wLogSecId = 0u; /*߼ID*/ UINT8 cSecBelongCiId = 0U; const CiTransmitStruct* pCiRecptStru = NULL; UINT16 parsedLen = 0u; - LogicSectionDataStruct* pstrLogSecData = NULL; - PhysicalSectionDataStruct* tmpPhysicalSectionDataStru = GetPhySecData(); localCiId = GetSystemParaLocalCiId(); pCiRecptStru = GetSrcCiTransInfo(srcCiId); - pstrLogSecData = GetLogicSecData(); + deviceSum = *(pInputData + parsedLen); parsedLen += 1u; - if ((NULL == pCiRecptStru) || (NULL == tmpPhysicalSectionDataStru) || (NULL == pstrLogSecData)) + if ((NULL == pCiRecptStru)) { *pItemLen = 0u; retValue = CI_ERROR; /*ݻȡʧ*/ @@ -10284,9 +10307,7 @@ static UINT8 ParseStartLockPacket(const UINT8* pInputData, UINT16* pItemLen, con cSecBelongCiId = GetPhySecBelongCiId(phySecId); if (cSecBelongCiId == srcCiId) { - bufIndex = GetPhySecConfigBufIndex(phySecId); - tmpPhysicalSectionDataStru[bufIndex].PhysicalSectionId = phySecId; - + switch (StartLockState) { case HLHT_STARTLOCK_SET_NO: @@ -10299,7 +10320,7 @@ static UINT8 ParseStartLockPacket(const UINT8* pInputData, UINT16* pItemLen, con SetPhySecPLockRouteIdHlht(phySecId, 0u); break; default: - /*ɴ֧*/ + /*ɴ֧-ϵ֡ʱԤ*/ break; } } @@ -10315,9 +10336,6 @@ static UINT8 ParseStartLockPacket(const UINT8* pInputData, UINT16* pItemLen, con cSecBelongCiId = GetLogSecBelongCiId(wLogSecId); if (cSecBelongCiId == srcCiId) { - bufIndex = GetlogSectionBufIndex(wLogSecId); - pstrLogSecData[bufIndex].LogicSectionId = wLogSecId; - switch (StartLockState) { case HLHT_STARTLOCK_SET_NO: @@ -10429,9 +10447,9 @@ static UINT8 ParseTSRPacket(const UINT8 *pInputData, UINT16 *pItemLen,const UINT chDeviceSum = *pInputData; wParsedLen += 1U; - if (chDeviceSum == (UINT8)pCiRecptStru->logicSecNum) + if (chDeviceSum == (UINT8)pCiRecptStru->wXianSuLogSecNum) { - for (wLogSecIndex = 0U; wLogSecIndex < pCiRecptStru->logicSecNum; wLogSecIndex++) + for (wLogSecIndex = 0U; wLogSecIndex < pCiRecptStru->wXianSuLogSecNum; wLogSecIndex++) { wInxRem = wLogSecIndex % TSR_NUM_PER_BYTE; @@ -10448,7 +10466,7 @@ static UINT8 ParseTSRPacket(const UINT8 *pInputData, UINT16 *pItemLen,const UINT ; } - wLogSecId = pCiRecptStru->logicSecIdBuf[wLogSecIndex]; + wLogSecId = pCiRecptStru->wXianSuLogSecBuf[wLogSecIndex]; chLogSecBelCiId = GetLogSecBelongCiId(wLogSecId); if (chLocalCiId != chLogSecBelCiId) @@ -10469,7 +10487,7 @@ static UINT8 ParseTSRPacket(const UINT8 *pInputData, UINT16 *pItemLen,const UINT SetLogSecLinShiXianSuState(wLogSecId, LOGSEC_LSXS_SET_STATE_NO); break; default: - /*ɴ֧*/ + SetLogSecLinShiXianSuState(wLogSecId, LOGSEC_LSXS_SET_STATE_INVALID);/*쳣Ч*/ break; } } @@ -10525,7 +10543,7 @@ static UINT8 PackTSRPacket(UINT8 *pInputBuf, UINT16 *pItemLen, const UINT8 dstCi chLocalCi = GetSystemParaLocalCiId(); wPackedLen += 1U; - for (wLogSecIndex = 0U; wLogSecIndex < pTmpCiTransInfo->logicSecNum; wLogSecIndex++) + for (wLogSecIndex = 0U; wLogSecIndex < pTmpCiTransInfo->wXianSuLogSecNum; wLogSecIndex++) { wInxRem = wLogSecIndex % TSR_NUM_PER_BYTE; @@ -10542,7 +10560,7 @@ static UINT8 PackTSRPacket(UINT8 *pInputBuf, UINT16 *pItemLen, const UINT8 dstCi ; } - wLogSecId = pTmpCiTransInfo->logicSecIdBuf[wLogSecIndex]; + wLogSecId = pTmpCiTransInfo->wXianSuLogSecBuf[wLogSecIndex]; chLogSecBelCiId = GetLogSecBelongCiId(wLogSecId); if (chLocalCi == chLogSecBelCiId) { @@ -10572,7 +10590,7 @@ static UINT8 PackTSRPacket(UINT8 *pInputBuf, UINT16 *pItemLen, const UINT8 dstCi } } - pInputBuf[0] = pTmpCiTransInfo->logicSecNum; + pInputBuf[0] = (UINT8)pTmpCiTransInfo->wXianSuLogSecNum; /*ӿഫ1ֽ*/ *pItemLen = wPackedLen; retValue = CI_SUCCESS; } @@ -10748,10 +10766,10 @@ static UINT8 PackCiPacketCont(UINT8 *pInputData, UINT16 *pOverallLen, const UINT } break; case START_LOCK_STATUS_PACKET: - dataIsAvail = CI_TRUE; + dataIsAvail = CI_FALSE; /*ͨ΢ӿڲϵϢ֡20260507*/ break; case LINSHI_XIANSU_STATUS_PACKET: - if (0u != pTmpCiTransInfo->logicSecNum) + if (0u != pTmpCiTransInfo->wXianSuLogSecNum) { dataIsAvail = CI_TRUE; } @@ -10818,11 +10836,11 @@ static UINT8 PackCiPacketCont(UINT8 *pInputData, UINT16 *pOverallLen, const UINT packedLen += itemLen; break; case START_LOCK_STATUS_PACKET: - retVal &= PackStartLockPacket(pInputData + packedLen, &itemLen, dstCiId); /*ϵձ*/ + retVal &= PackStartLockPacket(pInputData + packedLen, &itemLen, dstCiId); /*ϵձ*/ packedLen += itemLen; break; case LINSHI_XIANSU_STATUS_PACKET: - retVal &= PackTSRPacket(pInputData + packedLen, &itemLen, dstCiId); /*ϵձ*/ + retVal &= PackTSRPacket(pInputData + packedLen, &itemLen, dstCiId); /*ʱٱ*/ packedLen += itemLen; break; case CITY_DEF_STATUS_PACKET: @@ -10957,7 +10975,7 @@ static UINT8 ParseCiPacketCont(const UINT8 *pInputData, const UINT16 overallLen, parsedLen += itemLen; break; case MANUFAC_DEF_STATUS_PACKET: - cRetVal &= ParseManufacDefPacket(pInputData + parsedLen, &itemLen, srcId); + cRetVal &= ParseManufacDefPacket(pInputData + parsedLen, &itemLen, srcId, packetLen); parsedLen += itemLen; break; default: @@ -11915,16 +11933,10 @@ UINT8 ParseCiToCiDataCheck(UINT8* dataBuf, UINT16 dataLength, UINT8* errNo, UINT /*η*/ if ((dataBuf != NULL) && (dataLength > 0U)) { - reVal = CI_SUCCESS; - - /*汾У ֹӿڰ汾һУʱԽ*/ - if (CI_SUCCESS == reVal) + reVal = CheckCiIDAndVer(dataBuf, &ii); + if (CI_ERROR == reVal) { - reVal = CheckCiIDAndVer(dataBuf, &ii); - if (CI_ERROR == reVal) - { - *errNo = 0U; - } + *errNo = 0U; } /*֡ͽУ*/ @@ -16937,7 +16949,7 @@ UINT8 CiToCiEnvelopeCheck(const UINT8* dataBuf, UINT16* index) /*гID*/ wTrainId = ShortFromChar(&dataBuf[ii]); ii += 2u; - if ((TRAIN_ID_MIN_IVOC <= wTrainId) && (TRAIN_ID_MAX_IVOC >= wTrainId)) + if ((TRAIN_ID_MIN_IVOC < wTrainId) && (TRAIN_ID_MAX_IVOC > wTrainId)) { retVal = CI_SUCCESS; } @@ -17139,7 +17151,7 @@ UINT8 CiToCiEnvelopeCheck(const UINT8* dataBuf, UINT16* index) cActivePort = dataBuf[ii++]; /*г*/ - if ((TRAIN_SUM_MAX >= envlopetrainID) + if ((TRAIN_SUM_MAX >= envlopetrainID)&&((UINT16)0UdestCiId) { /*Ľ·Ȼ·Ҫøݽ·*/ - pDestCiTransmitStru = GetDstCiTransInfo(pTmpCiTransmitStru->srcCiId); + pDestCiTransmitStru = GetDstCiTransInfo((UINT8)pTmpCiTransmitStru->srcCiId); if (NULL != pDestCiTransmitStru) { pDestCiTransmitStru->wNeedCheckSwitchStateRouteSum = 0U; @@ -19083,8 +19095,10 @@ UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCi UINT16 wLockedRouteId = 0U; /*·ID*/ UINT8 chExiansuState = 0U; UINT8 chLockDir = 0U; /*շ*/ + UINT8 chDataType = 0U; + UINT8 chRelayDetain = 0U; pTmpCiTransInfo = GetDstCiTransInfo(dstCiId); - + chDataType = GetLocalPublicDataType(); if ((NULL != pInputBuf) && (NULL != pItemLen) && (NULL != pTmpCiTransInfo)) { /*鳧ԶϢ汾΢Ĭ0x01*/ @@ -19118,71 +19132,76 @@ UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCi } wPackedInfoNum++; /*һϢ1*/ } - - /*ʱ*/ - for (ii = 0U; ii < pTmpCiTransInfo->logicSecNum; ii++) + if (DATA_TYPE_23_BRANCH == chDataType) { - cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - chExiansuState = GetLogSecEmergXianSu(pTmpCiTransInfo->logicSecIdBuf[ii]); - if (LOGSEC_EMERG_XS_SET_NO == chExiansuState) + /*3 ԶϢʱ١*/ + } + else + { + /*ʱ*/ + for (ii = 0U; ii < pTmpCiTransInfo->wXianSuLogSecNum; ii++) { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*ʱٹ:δýʱ*/ + cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + chExiansuState = GetLogSecEmergXianSu(pTmpCiTransInfo->wXianSuLogSecBuf[ii]); + if (LOGSEC_EMERG_XS_SET_NO == chExiansuState) + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*ʱٹ:δýʱ*/ + } + else + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*ʱٹ:ýʱ*/ + } + + + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wPackedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wPackedInfoNum++; /*һϢ1*/ } - else + /*״̬*/ + for (ii = 0U; ii < pTmpCiTransInfo->switchNum; ii++) { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*ʱٹ:ýʱ*/ + cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + + wDeviceId = pTmpCiTransInfo->switchIdBuf[ii]; + cDeviceState = GetSwitchLockStatus(wDeviceId); /*ȡ״̬*/ + if ((SWITCH_LOCK_STATUS_PROTECT == cDeviceState) || (SWITCH_LOCK_STATUS_DAP == cDeviceState)) + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*з*/ + } + else + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*޷*/ + } + + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wPackedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wPackedInfoNum++; /*һϢ1*/ } + } - - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wPackedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wPackedInfoNum++; /*һϢ1*/ - } - - /*״̬*/ - for (ii = 0U; ii < pTmpCiTransInfo->switchNum; ii++) - { - cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - - wDeviceId = pTmpCiTransInfo->switchIdBuf[ii]; - cDeviceState = GetSwitchLockStatus(wDeviceId); /*ȡ״̬*/ - if ((SWITCH_LOCK_STATUS_PROTECT == cDeviceState) || (SWITCH_LOCK_STATUS_DAP == cDeviceState)) - { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*з*/ - } - else - { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*޷*/ - } - - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wPackedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wPackedInfoNum++; /*һϢ1*/ - } - - /*״̬*/ - for (ii = 0U; ii < pTmpCiTransInfo->switchNum; ii++) + + /*״̬*/ + for (ii = 0U; ii < pTmpCiTransInfo->wSwitchPhySecNum; ii++) { /*CTռ״̬*/ cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - wDeviceId = pTmpCiTransInfo->switchIdBuf[ii]; - wSwitchRelPhySecId = GetSwitchPhySectionId(wDeviceId); /*ȡID*/ + wSwitchRelPhySecId = pTmpCiTransInfo->wSwitchPhySecBuf[ii];; /*ȡID*/ cDeviceState = GetPhySecPreOccState(wSwitchRelPhySecId); /*ȡCT/UTռ״̬*/ if ((LOGICSECTION_OCCUPY_UT == cDeviceState) || (LOGICSECTION_OCCUPY_NO == cDeviceState)) { @@ -19397,63 +19416,70 @@ UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCi wPackedInfoNum++; /*һϢ1*/ } - /*μԤλ״̬Ϊλ*/ - for (ii = 0U; ii < pTmpCiTransInfo->phySecNum; ii++) + if (DATA_TYPE_23_BRANCH == chDataType) { - cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - - wDeviceId = pTmpCiTransInfo->phySecIdBuf[ii]; - cDeviceState = GetPhySecPreResetState(wDeviceId); /*ȡμԤλ״̬*/ - - if (PHYSICAL_SECTION_PRE_RESET_YES == cDeviceState) - { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*Ԥλ״̵̬*/ - } - else - { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*Ԥλ״̵̬*/ - } - - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wPackedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wPackedInfoNum++; /*һϢ1*/ + /*3 ԶϢԤλźŻƶ˿״̬*/ } - - /*źŻƶ˿״̬*/ - for (ii = 0U; ii < pTmpCiTransInfo->signalNum; ii++) + else { - cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + /*μԤλ״̬Ϊλ*/ + for (ii = 0U; ii < pTmpCiTransInfo->phySecNum; ii++) + { + cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - wDeviceId = pTmpCiTransInfo->signalIdBuf[ii]; - cDeviceState = GetSignalBlueDsBreakFlag(wDeviceId); /*ȡźŻƶ˿״̬*/ + wDeviceId = pTmpCiTransInfo->phySecIdBuf[ii]; + cDeviceState = GetPhySecPreResetState(wDeviceId); /*ȡμԤλ״̬*/ - if (SIGNAL_DS_BREAK_NO == cDeviceState) - { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*δ˿*/ - } - else - { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*ƶ˿*/ - } + if (PHYSICAL_SECTION_PRE_RESET_YES == cDeviceState) + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*Ԥλ״̵̬*/ + } + else + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*Ԥλ״̵̬*/ + } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wPackedLen++; /*һֽڣȼ1*/ + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wPackedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wPackedInfoNum++; /*һϢ1*/ } - else + /*źŻƶ˿״̬*/ + for (ii = 0U; ii < pTmpCiTransInfo->signalNum; ii++) { - /**/ + cTempCounter = (UINT8)(wPackedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽڿɴ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + + wDeviceId = pTmpCiTransInfo->signalIdBuf[ii]; + cDeviceState = GetSignalBlueDsBreakFlag(wDeviceId); /*ȡźŻƶ˿״̬*/ + + if (SIGNAL_DS_BREAK_NO == cDeviceState) + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*δ˿*/ + } + else + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*ƶ˿*/ + } + + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wPackedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wPackedInfoNum++; /*һϢ1*/ } - wPackedInfoNum++; /*һϢ1*/ - } + } + /*źŻ۳״̬Ŀ۳ͳվ۳*/ for (ii = 0U; ii < pTmpCiTransInfo->signalNum; ii++) @@ -19488,14 +19514,30 @@ UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCi cBitOffset = cTempCounter * BIT_NUM_PER_DEV; cDeviceState = GetSignalLocalDetainFlag(wDeviceId); /*ȡźŻվ۳״̬*/ - if (SIGNAL_XIANDI_DETAIN_NO == cDeviceState) + chRelayDetain = GetSignalRelayDetainFlag(wDeviceId); /*ȡźŻӲ߿۳״̬*/ + if (DATA_TYPE_23_BRANCH == chDataType) { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*ڿ۳*/ + if (SIGNAL_RELAY_DETAIN_NO == chRelayDetain) + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*ڿ۳*/ + } + else + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*ڿ۳*/ + } } else { - *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*ڿ۳*/ + if (SIGNAL_XIANDI_DETAIN_NO == cDeviceState) + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000010B << cBitOffset); /*ڿ۳*/ + } + else + { + *(pInputBuf + wPackedLen) = *(pInputBuf + wPackedLen) | (BIT_VAL_00000001B << cBitOffset); /*ڿ۳*/ + } } + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) { @@ -19533,11 +19575,12 @@ UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCi * ˵const UINT8 *pInputData ָ * UINT16 *pItemLen еij * const UINT8 srcCiId ԴID +* const UINT16 packetLen ij * ֵCI_SUCCESS 1 ɹ * CI_ERROR 0 ʧ * Created By LQ 2025.05.26 */ -UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UINT8 srcCiId) +UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UINT8 srcCiId, const UINT16 packetLen) { UINT8 cRetVal = CI_ERROR; UINT8 cLocalCiId = 0U; @@ -19572,6 +19615,9 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN UINT8 cSwitchPhyUpLockDir = 0U; /*շ*/ UINT8 cSwitchPhyDownLockDir = 0U; /*շ*/ UINT8 cSwitchPhyLockDir = 0U; /*շ*/ + UINT8 chDataType = 0U; + UINT8 chSwitchLockState = 0U; + cLocalCiId = GetSystemParaLocalCiId(); pCiRecptStru = GetSrcCiTransInfo(srcCiId); /*ȡԴӦĽṹ*/ pstrAutoRouteData = GetAutoRouteDataStr(); /*ȡԶ·̬ݽṹ*/ @@ -19579,7 +19625,7 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN pstrSwitchData = GetSwitchData(); /*ȡ̬ݽṹ*/ pstrPhySecData = GetPhySecData(); /*ȡζ̬ݽṹ*/ pstrSignalData = GetSignalData(); /*ȡźŻ̬ݽṹ*/ - + chDataType = GetLocalPublicDataType(); /*ݰ汾Ϣ*/ if ((NULL !=pInputData) && (NULL != pItemLen) && (NULL != pCiRecptStru) && (0U != cLocalCiId) && (NULL != pstrAutoRouteData) && (NULL != pstrLogSecData) && (NULL != pstrSwitchData) && (NULL != pstrPhySecData) && (NULL != pstrSignalData)) { @@ -19616,9 +19662,8 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { + SetAutoRouteSetFlag(wDevId, AUTO_ROUTE_SET_NO); /*Զ·δ*/ debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: AutoRoute Id[%d] State Error", srcCiId, wDevId); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - break; } } else @@ -19637,15 +19682,15 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN wParsedInfoNum++; /*һϢ1*/ } - /*ʱϢ*/ - if (CI_SUCCESS == cRetVal) + /*ʱϢ ע3*/ + if (DATA_TYPE_23_BRANCH != chDataType) { - for (ii = 0U; ii < pCiRecptStru->logicSecNum; ii++) + for (ii = 0U; ii < pCiRecptStru->wXianSuLogSecNum; ii++) { cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - wDevId = pCiRecptStru->logicSecIdBuf[ii]; + wDevId = pCiRecptStru->wXianSuLogSecBuf[ii]; cDevBelongCiId = GetLogSecBelongCiId(wDevId); /*ȡ߼*/ if ((cLocalCiId != cDevBelongCiId) && (0U != cDevBelongCiId)) { @@ -19667,9 +19712,8 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: LogSec Id[%d] Urgent Tsr Error", srcCiId, wDevId); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - break; + SetLogEmergXianSuOtherCi(wDevId, LOGSEC_EMERG_XS_SET_NO); + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: LogSec Id[%d] Urgent Tsr Error", srcCiId, wDevId); } } else @@ -19690,11 +19734,11 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { - cRetVal = CI_ERROR; + /**/ } - /*Ϣ*/ - if (CI_SUCCESS == cRetVal) + /*Ϣ ע3*/ + if (DATA_TYPE_23_BRANCH != chDataType) { for (ii = 0U; ii < pCiRecptStru->switchNum; ii++) { @@ -19711,19 +19755,44 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + + chSwitchLockState = GetSwitchLockStatus(wDevId); if (BIT_VAL_00000001B == cDevState) - { - SetHlhtCiSwitchPlockStatus(wDevId, SWITCH_LOCK_STATUS_PROTECT); /*õз*/ + { + if (SWITCH_LOCK_STATUS_DANSUO == chSwitchLockState) + { + SetHlhtCiSwitchPlockStatus(wDevId, SWITCH_LOCK_STATUS_DAP); /*õҷ*/ + } + else + { + SetHlhtCiSwitchPlockStatus(wDevId, SWITCH_LOCK_STATUS_PROTECT); /*õ*/ + } + } else if (BIT_VAL_00000010B == cDevState) { - SetHlhtCiSwitchPlockStatus(wDevId, SWITCH_LOCK_STATUS_NO); /*õ޷*/ + if (SWITCH_LOCK_STATUS_DANSUO == chSwitchLockState) + { + /**/ + } + else + { + SetHlhtCiSwitchPlockStatus(wDevId, SWITCH_LOCK_STATUS_NO); /*õ޷*/ + } + } else { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] PLock Error", srcCiId, wDevId); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - break; + if (SWITCH_LOCK_STATUS_DANSUO == chSwitchLockState) + { + /**/ + } + else + { + SetHlhtCiSwitchPlockStatus(wDevId, SWITCH_LOCK_STATUS_NO); /*õ޷*/ + } + + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] PLock Error", srcCiId, wDevId); } } @@ -19745,394 +19814,379 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { - cRetVal = CI_ERROR; + /**/ } /*״̬Ϣ*/ - if (CI_SUCCESS == cRetVal) + for (ii = 0U; ii < pCiRecptStru->wSwitchPhySecNum; ii++) { - for (ii = 0U; ii < pCiRecptStru->switchNum; ii++) + /*ȷCTռ״̬*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) { - /*ȷCTռ״̬*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cPhySecCtOcc = LOGICSECTION_OCCUPY_NO; /**/ - } - else if (BIT_VAL_00000001B == cDevState) - { - cPhySecCtOcc = LOGICSECTION_OCCUPY_CT; /*CTռ*/ - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] CT Occ Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } + cPhySecCtOcc = LOGICSECTION_OCCUPY_NO; /**/ + } + else if (BIT_VAL_00000001B == cDevState) + { + cPhySecCtOcc = LOGICSECTION_OCCUPY_CT; /*CTռ*/ + } + else + { + cPhySecCtOcc = LOGICSECTION_OCCUPY_NO; /**/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] CT Occ Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷUTռ״̬*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cPhySecUtOcc = LOGICSECTION_OCCUPY_NO; /**/ - } - else if (BIT_VAL_00000001B == cDevState) - { - cPhySecUtOcc = LOGICSECTION_OCCUPY_UT; /*UTռ*/ - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] UT Occ Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } + /*ȷUTռ״̬*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + cPhySecUtOcc = LOGICSECTION_OCCUPY_NO; /**/ + } + else if (BIT_VAL_00000001B == cDevState) + { + cPhySecUtOcc = LOGICSECTION_OCCUPY_UT; /*UTռ*/ + } + else + { + cPhySecUtOcc = LOGICSECTION_OCCUPY_UT; /*UTռ*/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] UT Occ Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷν·״̬*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cPhySecRouteLockState = PHYSICAL_SECTION_LOCK_NORMAL; /*·*/ - } - else if (BIT_VAL_00000001B == cDevState) - { - cPhySecRouteLockState = PHYSICAL_SECTION_LOCK_NO; /*δ·*/ - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] RouteLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } + /*ȷν·״̬*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + cPhySecRouteLockState = PHYSICAL_SECTION_LOCK_NORMAL; /*·*/ + } + else if (BIT_VAL_00000001B == cDevState) + { + cPhySecRouteLockState = PHYSICAL_SECTION_LOCK_NO; /*δ·*/ + } + else + { + cPhySecRouteLockState = PHYSICAL_SECTION_LOCK_NO; /*δ·*/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] RouteLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷη״̬*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cPhySecFLockState = PHYSICAL_SECTION_FLOCK_NO; /*δ*/ - } - else if (BIT_VAL_00000001B == cDevState) - { - cPhySecFLockState = PHYSICAL_SECTION_FLOCK_YES; /**/ - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] Flock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } + /*ȷη״̬*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + cPhySecFLockState = PHYSICAL_SECTION_FLOCK_NO; /*δ*/ + } + else if (BIT_VAL_00000001B == cDevState) + { + cPhySecFLockState = PHYSICAL_SECTION_FLOCK_YES; /**/ + } + else + { + cPhySecFLockState = PHYSICAL_SECTION_FLOCK_YES; /**/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] Flock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷι״̬*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cPhySecExceptLockState = PHYSICAL_SECTION_LOCK_EXCEPT; /*쳣*/ - } - else if (BIT_VAL_00000001B == cDevState) - { - cPhySecExceptLockState = PHYSICAL_SECTION_LOCK_NO; /*δ쳣*/ - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } + /*ȷι״̬*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + cPhySecExceptLockState = PHYSICAL_SECTION_LOCK_EXCEPT; /*쳣*/ + } + else if (BIT_VAL_00000001B == cDevState) + { + cPhySecExceptLockState = PHYSICAL_SECTION_LOCK_NO; /*δ쳣*/ + } + else + { + cPhySecExceptLockState = PHYSICAL_SECTION_LOCK_NO; /*δ쳣*/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷα״̬*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cSwitchPLockState = PHYSICAL_SECTION_LOCK_PROTECT; - } - else if(BIT_VAL_00000001B == cDevState) - { - cSwitchPLockState = PHYSICAL_SECTION_LOCK_NO; - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + /*ȷα״̬*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + cSwitchPLockState = PHYSICAL_SECTION_LOCK_PROTECT; + } + else if (BIT_VAL_00000001B == cDevState) + { + cSwitchPLockState = PHYSICAL_SECTION_LOCK_NO; + } + else + { + cSwitchPLockState = PHYSICAL_SECTION_LOCK_NO; + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷշ*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cSwitchPhyUpLockDir = CI_SYSTEM_DIRECTION_UP; - } - else if (BIT_VAL_00000001B == cDevState) - { - cSwitchPhyUpLockDir = CI_SYSTEM_DIRECTION_NONE; - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + /*ȷշ*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + cSwitchPhyUpLockDir = CI_SYSTEM_DIRECTION_UP; + } + else if (BIT_VAL_00000001B == cDevState) + { + cSwitchPhyUpLockDir = CI_SYSTEM_DIRECTION_NONE; + } + else + { + cSwitchPhyUpLockDir = CI_SYSTEM_DIRECTION_NONE; + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷշ*/ - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - cSwitchPhyDownLockDir = CI_SYSTEM_DIRECTION_DOWN; - } - else if (BIT_VAL_00000001B == cDevState) - { - cSwitchPhyDownLockDir = CI_SYSTEM_DIRECTION_NONE; - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + /*ȷշ*/ + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ĵϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + cSwitchPhyDownLockDir = CI_SYSTEM_DIRECTION_DOWN; + } + else if (BIT_VAL_00000001B == cDevState) + { + cSwitchPhyDownLockDir = CI_SYSTEM_DIRECTION_NONE; + } + else + { + cSwitchPhyDownLockDir = CI_SYSTEM_DIRECTION_NONE; + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] ExceptLock Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ - /*ȷCT/UTռ״̬--ʱ0x0202֡*/ - if ((LOGICSECTION_OCCUPY_NO == cPhySecCtOcc) && (LOGICSECTION_OCCUPY_NO == cPhySecUtOcc)) + /*ȷCT/UTռ״̬--ʱ0x0202֡*/ + if ((LOGICSECTION_OCCUPY_NO == cPhySecCtOcc) && (LOGICSECTION_OCCUPY_NO == cPhySecUtOcc)) + { + cPhySecCtOrUtOcc = LOGICSECTION_OCCUPY_NO; /*CT/UTУ*/ + } + else if ((LOGICSECTION_OCCUPY_CT == cPhySecCtOcc) && (LOGICSECTION_OCCUPY_NO == cPhySecUtOcc)) + { + cPhySecCtOrUtOcc = LOGICSECTION_OCCUPY_CT; /*CTռãUTУCTռ*/ + } + else if ((LOGICSECTION_OCCUPY_NO == cPhySecCtOcc) && (LOGICSECTION_OCCUPY_UT == cPhySecUtOcc)) + { + cPhySecCtOrUtOcc = LOGICSECTION_OCCUPY_UT; /*CTУUTռãUTռ*/ + } + else + { + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] CT And UT Diff", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } + + /*ȷ״̬--ʱ0x0202֡*/ + if ((PHYSICAL_SECTION_LOCK_NO == cPhySecRouteLockState) && (PHYSICAL_SECTION_LOCK_NO == cPhySecExceptLockState)) + { + if (PHYSICAL_SECTION_LOCK_PROTECT == cSwitchPLockState) { - cPhySecCtOrUtOcc = LOGICSECTION_OCCUPY_NO; /*CT/UTУ*/ - } - else if ((LOGICSECTION_OCCUPY_CT == cPhySecCtOcc) && (LOGICSECTION_OCCUPY_NO == cPhySecUtOcc)) - { - cPhySecCtOrUtOcc = LOGICSECTION_OCCUPY_CT; /*CTռãUTУCTռ*/ - } - else if ((LOGICSECTION_OCCUPY_NO == cPhySecCtOcc) && (LOGICSECTION_OCCUPY_UT == cPhySecUtOcc)) - { - cPhySecCtOrUtOcc = LOGICSECTION_OCCUPY_UT; /*CTУUTռãUTռ*/ + cPhySecLockState = PHYSICAL_SECTION_LOCK_PROTECT; /*·/վδգЧΪ*/ } else { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] CT And UT Diff", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } - - /*ȷ״̬--ʱ0x0202֡*/ - if ((PHYSICAL_SECTION_LOCK_NO == cPhySecRouteLockState) && (PHYSICAL_SECTION_LOCK_NO == cPhySecExceptLockState)) - { - if (PHYSICAL_SECTION_LOCK_PROTECT == cSwitchPLockState) - { - cPhySecLockState = PHYSICAL_SECTION_LOCK_PROTECT; /*·/վδգЧΪ*/ - } - else - { - cPhySecLockState = PHYSICAL_SECTION_LOCK_NO; /*·//վδգδ*/ - } - } - else if ((PHYSICAL_SECTION_LOCK_NORMAL == cPhySecRouteLockState) && (PHYSICAL_SECTION_LOCK_NO == cPhySecExceptLockState)) - { - cPhySecLockState = PHYSICAL_SECTION_LOCK_NORMAL; /*·ΪգΪδգ*/ - } - else if ((PHYSICAL_SECTION_LOCK_NO == cPhySecRouteLockState) && (PHYSICAL_SECTION_LOCK_EXCEPT == cPhySecExceptLockState)) - { - cPhySecLockState = PHYSICAL_SECTION_LOCK_EXCEPT; /*·ΪδգΪ쳣գ쳣*/ - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] Lock Diff Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } - - /*ȷշ--ʱ0x0202֡*/ - if ((CI_SYSTEM_DIRECTION_UP == cSwitchPhyUpLockDir) && (CI_SYSTEM_DIRECTION_NONE == cSwitchPhyDownLockDir)) - { - cSwitchPhyLockDir = CI_SYSTEM_DIRECTION_UP; - } - else if ((CI_SYSTEM_DIRECTION_NONE == cSwitchPhyUpLockDir) && (CI_SYSTEM_DIRECTION_DOWN == cSwitchPhyDownLockDir)) - { - cSwitchPhyLockDir = CI_SYSTEM_DIRECTION_DOWN; - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] Lock Diff Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - } - - if (CI_SUCCESS == cRetVal) - { - wDevId = pCiRecptStru->switchIdBuf[ii]; - wPhySecId = GetSwitchPhySectionId(wDevId); - cDevBelongCiId = GetPhySecBelongCiId(wPhySecId); /*ȡ*/ - if ((cLocalCiId != cDevBelongCiId) && (0U != cDevBelongCiId)) - { - /*洢DZ豸״̬*/ - wDevIndex = GetPhySecConfigBufIndex(wPhySecId); - pstrPhySecData[wDevIndex].PhysicalSectionId = wPhySecId; - - /*ʱԤ*/ -#if 0 - SetPhySecLockStateHlht(wPhySecId, cPhySecLockState); /*״̬*/ - SetPhySecFLockState(wPhySecId, cPhySecFLockState); /*η״̬*/ - SetHlhtPhySecCtOrUtOccState(wPhySecId, cPhySecCtOrUtOcc); /*CT/UTռ״̬*/ -#endif - } - else - { - /**/ - } - } - else - { - cRetVal = CI_ERROR; - break; + cPhySecLockState = PHYSICAL_SECTION_LOCK_NO; /*·//վδգδ*/ } } - } - else - { - cRetVal = CI_ERROR; - } - - /*ͣ׼ͣϢ*/ - if (CI_SUCCESS == cRetVal) - { - for (ii = 0U; ii < pCiRecptStru->phySecNum; ii++) + else if ((PHYSICAL_SECTION_LOCK_NORMAL == cPhySecRouteLockState) && (PHYSICAL_SECTION_LOCK_NO == cPhySecExceptLockState)) { - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cPhySecLockState = PHYSICAL_SECTION_LOCK_NORMAL; /*·ΪգΪδգ*/ + } + else if ((PHYSICAL_SECTION_LOCK_NO == cPhySecRouteLockState) && (PHYSICAL_SECTION_LOCK_EXCEPT == cPhySecExceptLockState)) + { + cPhySecLockState = PHYSICAL_SECTION_LOCK_EXCEPT; /*·ΪδգΪ쳣գ쳣*/ + } + else + { + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] Lock Diff Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } - wDevId = pCiRecptStru->phySecIdBuf[ii]; - cDevBelongCiId = GetPhySecBelongCiId(wDevId); /*ȡ*/ + /*ȷշ--ʱ0x0202֡*/ + if ((CI_SYSTEM_DIRECTION_UP == cSwitchPhyUpLockDir) && (CI_SYSTEM_DIRECTION_NONE == cSwitchPhyDownLockDir)) + { + cSwitchPhyLockDir = CI_SYSTEM_DIRECTION_UP; + } + else if ((CI_SYSTEM_DIRECTION_NONE == cSwitchPhyUpLockDir) && (CI_SYSTEM_DIRECTION_DOWN == cSwitchPhyDownLockDir)) + { + cSwitchPhyLockDir = CI_SYSTEM_DIRECTION_DOWN; + } + else if ((CI_SYSTEM_DIRECTION_NONE == cSwitchPhyUpLockDir) && ((CI_SYSTEM_DIRECTION_NONE == cSwitchPhyDownLockDir))) + { + cSwitchPhyLockDir = CI_SYSTEM_DIRECTION_NONE; + } + else + { + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Switch Id[%d] Lock Diff Error", srcCiId, pCiRecptStru->switchIdBuf[ii]); + } + + if (CI_SUCCESS == cRetVal) + { + wPhySecId = pCiRecptStru->wSwitchPhySecBuf[ii]; + cDevBelongCiId = GetPhySecBelongCiId(wPhySecId); /*ȡ*/ if ((cLocalCiId != cDevBelongCiId) && (0U != cDevBelongCiId)) { /*洢DZ豸״̬*/ - wDevIndex = GetPhySecConfigBufIndex(wDevId); - pstrPhySecData[wDevIndex].PhysicalSectionId = wDevId; + /*wDevIndex = GetPhySecConfigBufIndex(wPhySecId);*/ + /*pstrPhySecData[wDevIndex].PhysicalSectionId = wPhySecId;*/ - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ͣ׼ͣϢ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - if (BIT_VAL_00000010B == cDevState) - { - SetPhySecStopSteadyFlag(wDevId, PHYSICAL_SECTION_STOPSTEADY_YES); /*ͣ׼ͣ*/ - } - else if (BIT_VAL_00000001B == cDevState) - { - SetPhySecStopSteadyFlag(wDevId, PHYSICAL_SECTION_STOPSTEADY_NO); /*δͣ׼ͣ*/ - } - else - { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: PhySec Id[%d] Stop Steady Error", srcCiId, wDevId); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - break; - } + /*ʱԤ*/ +#if 0 + SetPhySecLockStateHlht(wPhySecId, cPhySecLockState); /*״̬*/ + SetPhySecFLockState(wPhySecId, cPhySecFLockState); /*η״̬*/ + SetHlhtPhySecCtOrUtOccState(wPhySecId, cPhySecCtOrUtOcc); /*CT/UTռ״̬*/ +#endif } else { /**/ } - - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ + } + else + { + cRetVal = CI_ERROR; + break; } } - else + + /*ͣ׼ͣϢ*/ + for (ii = 0U; ii < pCiRecptStru->phySecNum; ii++) { - cRetVal = CI_ERROR; + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + + wDevId = pCiRecptStru->phySecIdBuf[ii]; + cDevBelongCiId = GetPhySecBelongCiId(wDevId); /*ȡ*/ + if ((cLocalCiId != cDevBelongCiId) && (0U != cDevBelongCiId)) + { + /*洢DZ豸״̬*/ + wDevIndex = GetPhySecConfigBufIndex(wDevId); + pstrPhySecData[wDevIndex].PhysicalSectionId = wDevId; + + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢ͣ׼ͣϢ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + if (BIT_VAL_00000010B == cDevState) + { + SetPhySecStopSteadyFlag(wDevId, PHYSICAL_SECTION_STOPSTEADY_YES); /*ͣ׼ͣ*/ + } + else if (BIT_VAL_00000001B == cDevState) + { + SetPhySecStopSteadyFlag(wDevId, PHYSICAL_SECTION_STOPSTEADY_NO); /*δͣ׼ͣ*/ + } + else + { + SetPhySecStopSteadyFlag(wDevId, PHYSICAL_SECTION_STOPSTEADY_NO); /*δͣ׼ͣ*/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: PhySec Id[%d] Stop Steady Error", srcCiId, wDevId); + } + } + else + { + /**/ + } + + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ } - /*μԤλ״̬Ϣ*/ - if (CI_SUCCESS == cRetVal) + /*μԤλ״̬Ϣ ע3*/ + if (DATA_TYPE_23_BRANCH != chDataType) { for (ii = 0U; ii < pCiRecptStru->phySecNum; ii++) { @@ -20159,9 +20213,8 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: PhySec Id[%d] PreReset Error", srcCiId, wDevId); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - break; + SetPhySecPreResetState(wDevId, PHYSICAL_SECTION_PRE_RESET_NO); /*μԤλ״̬Ч*/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: PhySec Id[%d] PreReset Error", srcCiId, wDevId); } } else @@ -20182,11 +20235,11 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { - cRetVal = CI_ERROR; + /**/ } - /*źŻƶ˿Ϣ*/ - if (CI_SUCCESS == cRetVal) + /*źŻƶ˿Ϣ ע3*/ + if (DATA_TYPE_23_BRANCH != chDataType) { for (ii = 0U; ii < pCiRecptStru->signalNum; ii++) { @@ -20213,9 +20266,8 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Signal Id[%d] BlueDengsi Error", srcCiId, wDevId); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ - break; + SetHlhtCiSignalBlueDsBreakFlag(wDevId, SIGNAL_DS_BREAK_NO); /*źŻδƶ˿*/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Signal Id[%d] BlueDengsi Error", srcCiId, wDevId); } } else @@ -20236,50 +20288,67 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN } else { - cRetVal = CI_ERROR; + /**/ } /*źŻ۳ϢĿ۳ͳվ۳*/ - if (CI_SUCCESS == cRetVal) + for (ii = 0U; ii < pCiRecptStru->signalNum; ii++) { - for (ii = 0U; ii < pCiRecptStru->signalNum; ii++) - { - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢źŻ۳Ϣ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢źŻ۳Ϣ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - /*ȷĿ۳״̬*/ + /*ȷĿ۳״̬*/ + if (BIT_VAL_00000010B == cDevState) + { + cSignalAtsDetainFlag = SIGNAL_DETAIN_ATS_NO; /*Ŀ۳*/ + } + else if (BIT_VAL_00000001B == cDevState) + { + cSignalAtsDetainFlag = SIGNAL_DETAIN_ATS; /*Ŀ۳*/ + } + else + { + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Signal Id[%d] Ats Detain Error", srcCiId, pCiRecptStru->signalIdBuf[ii]); + cSignalAtsDetainFlag = SIGNAL_DETAIN_ATS_NO; + } + + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ + + cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ + cBitOffset = cTempCounter * BIT_NUM_PER_DEV; + cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢źŻ۳Ϣ*/ + cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; + + /*ȷվ۳״̬*/ + if (DATA_TYPE_23_BRANCH == chDataType) + { + /*3ֻӲ۳û۳յվ۳Ӳ۳*/ if (BIT_VAL_00000010B == cDevState) { - cSignalAtsDetainFlag = SIGNAL_DETAIN_ATS_NO; /*Ŀ۳*/ + cSignalXiandiDetainFlag = SIGNAL_RELAY_DETAIN_NO; /*Ӳ۳*/ } else if (BIT_VAL_00000001B == cDevState) { - cSignalAtsDetainFlag = SIGNAL_DETAIN_ATS; /*Ŀ۳*/ + cSignalXiandiDetainFlag = SIGNAL_RELAY_DETAIN_YES; /*Ӳ۳*/ } else { - debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Signal Id[%d] Ats Detain Error", srcCiId, pCiRecptStru->signalIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ + debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Signal Id[%d] Xiandi Detain Error", srcCiId, pCiRecptStru->signalIdBuf[ii]); + cSignalXiandiDetainFlag = SIGNAL_RELAY_DETAIN_NO; } - - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) - { - wParsedLen++; /*һֽڣȼ1*/ - } - else - { - /**/ - } - wParsedInfoNum++; /*һϢ1*/ - - cTempCounter = (UINT8)(wParsedInfoNum % DEV_NUM_PER_BYTE); /*ÿ2λһϢһֽ4Ϣ*/ - cBitOffset = cTempCounter * BIT_NUM_PER_DEV; - cDevInfo = *(pInputData + wParsedLen); /*ֽڴ洢źŻ۳Ϣ*/ - cDevState = (cDevInfo >> cBitOffset) & BIT_MASK_00000011B; - - /*ȷվ۳״̬*/ + } + else + { if (BIT_VAL_00000010B == cDevState) { cSignalXiandiDetainFlag = SIGNAL_DETAIN_XIANDI_NO; /*ڳվ۳*/ @@ -20291,46 +20360,53 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN else { debug_infor_printf((const)"\nHlht Ci Id[%d] Parse ManufacDef Error: Signal Id[%d] Xiandi Detain Error", srcCiId, pCiRecptStru->signalIdBuf[ii]); - cRetVal = CI_ERROR; /*Ϣ쳣ʧ*/ + cSignalXiandiDetainFlag = SIGNAL_DETAIN_XIANDI_NO; } + } + - if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + if ((DEV_NUM_PER_BYTE - 1U) == cTempCounter) + { + wParsedLen++; /*һֽڣȼ1*/ + } + else + { + /**/ + } + wParsedInfoNum++; /*һϢ1*/ + + if (CI_SUCCESS == cRetVal) + { + wDevId = pCiRecptStru->signalIdBuf[ii]; + cDevBelongCiId = GetSignalBelongCiId(wDevId); /*ȡźŻ*/ + if ((cLocalCiId != cDevBelongCiId) && (0U != cDevBelongCiId)) { - wParsedLen++; /*һֽڣȼ1*/ + /*洢DZ豸״̬*/ + wDevIndex = GetSignalConfigBufIndex(wDevId); + pstrSignalData[wDevIndex].SignalId = wDevId; + if (DATA_TYPE_23_BRANCH == chDataType) + { + (void)SetSignalDetainFlag(wDevId, cSignalAtsDetainFlag); /*źŻĿ۳*/ + (void)SetSignalDetainFlag(wDevId, SIGNAL_DETAIN_XIANDI_NO); /*źŻδվ۳*/ + SetSignalRelayDetainFlag(wDevId, cSignalXiandiDetainFlag);/*źŻӲ۳*/ + } + else + { + (void)SetSignalDetainFlag(wDevId, cSignalAtsDetainFlag); /*źŻĿ۳*/ + (void)SetSignalDetainFlag(wDevId, cSignalXiandiDetainFlag); /*źŻվ۳*/ + } + } else { /**/ } - wParsedInfoNum++; /*һϢ1*/ - - if (CI_SUCCESS == cRetVal) - { - wDevId = pCiRecptStru->signalIdBuf[ii]; - cDevBelongCiId = GetSignalBelongCiId(wDevId); /*ȡźŻ*/ - if ((cLocalCiId != cDevBelongCiId) && (0U != cDevBelongCiId)) - { - /*洢DZ豸״̬*/ - wDevIndex = GetSignalConfigBufIndex(wDevId); - pstrSignalData[wDevIndex].SignalId = wDevId; - SetSignalDetainFlag(wDevId, cSignalAtsDetainFlag); /*źŻĿ۳*/ - SetSignalDetainFlag(wDevId, cSignalXiandiDetainFlag); /*źŻĿ۳*/ - } - else - { - /**/ - } - } - else - { - cRetVal = CI_ERROR; - break; - } } - } - else - { - cRetVal = CI_ERROR; + else + { + cRetVal = CI_ERROR; + break; + } } if (CI_SUCCESS == cRetVal) @@ -20343,7 +20419,14 @@ UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UIN { /**/ } - + if (packetLen == (wParsedLen + 4U)) + { + cRetVal = CI_SUCCESS; + } + else + { + cRetVal = CI_ERROR; + } *pItemLen = wParsedLen; } else @@ -20804,7 +20887,7 @@ UINT8 PackRcToLocalCiDataFrame(const UINT8 cCiId) UINT16 wSignalId = 0U; /*źŻID*/ UINT8 cLightExtinctState = 0U; /*źŻ״̬*/ UINT8 cSignalCrossState = 0U; /*źŻѹ״̬*/ - UINT8 wCrossTacsTainId = 0U; /*ѹTACSгID*/ + UINT8 wCrossTacsTrainId = 0U; /*ѹTACSгID*/ UINT16 wAxisSecNum = 0U; /**/ UINT16 wAxisSecId = 0U; /*ID*/ UINT8 cAxisArbState = 0U; /*ARB״̬*/ @@ -20948,8 +21031,8 @@ UINT8 PackRcToLocalCiDataFrame(const UINT8 cCiId) ii++; /*ѹTACSгID*/ - wCrossTacsTainId = GetSignalCrossTacsTrainIdCC(wSignalId); - szRcToCiDataBuf[ii] = wCrossTacsTainId; + wCrossTacsTrainId = GetSignalCrossTacsTrainIdCC(wSignalId); + szRcToCiDataBuf[ii] = wCrossTacsTrainId; ii++; wNeedPackDevNum++; @@ -22730,7 +22813,7 @@ UINT8 ParseRcToRcPbTacsDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 source UINT8 chIndex = 0u;/*UINT8*/ UINT16 dwTmpIndex = 0u;/*UINT16*/ CfpTrainInfoStru tmpTrainInfo = { 0u }; - CfpEnvelopeStruct tmpEnvelopeInfo = { 0u }; + CfpEnvelopeStruct tmpEnvelopeInfo[CUTOFF_POINT_SUM_MAX] = { 0u }; UINT8 chEnvelopeNum = 0u; UINT8 chEnvelopeIndex = 0u; UINT8 cTempTrainNum = 0U; @@ -22959,10 +23042,10 @@ UINT8 ParseRcToRcPbTacsDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 source /*еȼ*/ tmpTrainInfo.chTrainLevel = dataBuf[ii]; ii++; - if ((0u == tmpTrainInfo.chTrainLevel) || (TRAIN_LEVEL_BACKUP_UNKNOWN == tmpTrainInfo.chTrainLevel) || (TRAIN_LEVEL_UR == tmpTrainInfo.chTrainLevel) + if ((0u == tmpTrainInfo.chTrainLevel) || (TRAIN_LEVEL_UR == tmpTrainInfo.chTrainLevel) || (TRAIN_LEVEL_ABL == tmpTrainInfo.chTrainLevel) || (TRAIN_LEVEL_VBTC == tmpTrainInfo.chTrainLevel) || (TRAIN_LEVEL_ITC == tmpTrainInfo.chTrainLevel)) { - ;/*0޳URABLVBTCITC 0xffϷ*/ + ;/*0޳URABLVBTCITC Ϸ*/ } else { @@ -22978,111 +23061,113 @@ UINT8 ParseRcToRcPbTacsDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 source /* ֽյOCİ */ chEnvelopeNum = dataBuf[ii++]; - if (CUTOFF_POINT_SUM_MAX >= chEnvelopeNum) + if (SECTION_REL_ENVELOPE_SUM_MAX >= chEnvelopeNum) { - SetCfpOtherOcENum(deviceId, chEnvelopeNum); + for (chEnvelopeIndex = 0u; chEnvelopeIndex < chEnvelopeNum; chEnvelopeIndex++) + { + tmpEnvelopeInfo[chEnvelopeIndex].envelopeType = dataBuf[ii++]; /* */ + if ((TYPE_UKT_ENVELOPE == tmpEnvelopeInfo[chEnvelopeIndex].envelopeType) + || (TYPE_UCT_ENVELOPE == tmpEnvelopeInfo[chEnvelopeIndex].envelopeType) + || (TYPE_CT_ENVELOPE == tmpEnvelopeInfo[chEnvelopeIndex].envelopeType)) + { + ;/*1:ͨų 2ʧͨų 3س*/ + } + else + { + reVal = CI_ERROR; + } + + tmpEnvelopeInfo[chEnvelopeIndex].headTrainID = ShortFromChar(&dataBuf[ii]);/* ǰID */ + ii += 2u; + + tmpEnvelopeInfo[chEnvelopeIndex].tailTrainID = ShortFromChar(&dataBuf[ii]);/* ID */ + ii += 2u; + + tmpEnvelopeInfo[chEnvelopeIndex].startPos.Dir = dataBuf[ii++];/* 㷽 */ + + tmpEnvelopeInfo[chEnvelopeIndex].startPos.Lnk = ShortFromChar(&dataBuf[ii]);/* link */ + ii += 2u; + + tmpEnvelopeInfo[chEnvelopeIndex].startPos.Off = LongFromChar(&dataBuf[ii]);/* offset */ + ii += 4u; + + tmpEnvelopeInfo[chEnvelopeIndex].endPos.Dir = dataBuf[ii++];/* յ㷽 */ + + tmpEnvelopeInfo[chEnvelopeIndex].endPos.Lnk = ShortFromChar(&dataBuf[ii]);/* յlink */ + ii += 2u; + + tmpEnvelopeInfo[chEnvelopeIndex].endPos.Off = LongFromChar(&dataBuf[ii]);/* յoffset */ + ii += 4u; + + belongCiId = (UINT8)GetLinkManageTiocById(tmpEnvelopeInfo[chEnvelopeIndex].startPos.Lnk); + if (belongCiId == localCiId) + { + (void)dsuCheckSameLoc(tmpEnvelopeInfo[chEnvelopeIndex].startPos.Lnk, tmpEnvelopeInfo[chEnvelopeIndex].startPos.Off, &tmpEnvelopeInfo[chEnvelopeIndex].startPos.Lnk, &tmpEnvelopeInfo[chEnvelopeIndex].startPos.Off); + } + + belongCiId = (UINT8)GetLinkManageTiocById(tmpEnvelopeInfo[chEnvelopeIndex].endPos.Lnk); + if (belongCiId == localCiId) + { + (void)dsuCheckSameLoc(tmpEnvelopeInfo[chEnvelopeIndex].endPos.Lnk, tmpEnvelopeInfo[chEnvelopeIndex].endPos.Off, &tmpEnvelopeInfo[chEnvelopeIndex].endPos.Lnk, &tmpEnvelopeInfo[chEnvelopeIndex].endPos.Off); + } + + /*ȡֽOCİ*/ + reVal = CutCfpOtherOcEData(deviceId, &tmpEnvelopeInfo[chEnvelopeIndex]); + + tmpEnvelopeInfo[chEnvelopeIndex].ACCnt = elm_PrepareACBtwPoints(tmpEnvelopeInfo[chEnvelopeIndex].startPos, tmpEnvelopeInfo[chEnvelopeIndex].endPos, tmpEnvelopeInfo[chEnvelopeIndex].ACID); + /* ڲŻ 20220419 wqm elm_PrepareACBtwPoints0߷гаʱ˴Ӧ÷ΪCI_ERROR*/ + if ((SECTION_IN_ENVELOPE_SUM_MAX == tmpEnvelopeInfo[chEnvelopeIndex].ACCnt) || (0u == tmpEnvelopeInfo[chEnvelopeIndex].ACCnt)) + { + reVal = CI_ERROR; + } + else + { + for (chInfoIndex = 0u; chInfoIndex < tmpEnvelopeInfo[chEnvelopeIndex].ACCnt; chInfoIndex++) + { + belongCiId = (UINT8)GetAxisBelongTioc(tmpEnvelopeInfo[chEnvelopeIndex].ACID[chInfoIndex]); + if ((localCiId == belongCiId) || (0u == belongCiId)) + { + reVal = CI_ERROR; + break; + } + else + { + ; + } + } + } + + + tmpEnvelopeInfo[chEnvelopeIndex].trianCnt = dataBuf[ii++];/* г */ + + for (chInfoIndex = 0u; chInfoIndex < tmpEnvelopeInfo[chEnvelopeIndex].trianCnt; chInfoIndex++) + { + tmpEnvelopeInfo[chEnvelopeIndex].trainID[chInfoIndex] = ShortFromChar(&dataBuf[ii]);/* гID */ + ii += 2u; + + tmpEnvelopeInfo[chEnvelopeIndex].ACTPort[chInfoIndex] = dataBuf[ii++]; /* гˡUCTֽRRM */ + } + if (CI_ERROR == reVal) + { + break; + } + + } + if (CI_SUCCESS == reVal) + { + /*ȫͨ дֽյİ */ + SetCfpOtherOcENum(deviceId, chEnvelopeNum); + for (chEnvelopeIndex = 0u; chEnvelopeIndex < chEnvelopeNum; chEnvelopeIndex++) + { + SetCfpOtherOcEData(deviceId, chEnvelopeIndex, tmpEnvelopeInfo[chEnvelopeIndex]); + } + } } else { reVal = CI_ERROR; } - for (chEnvelopeIndex = 0u; chEnvelopeIndex < chEnvelopeNum; chEnvelopeIndex++) - { - tmpEnvelopeInfo.envelopeType = dataBuf[ii++]; /* */ - if ((TYPE_UKT_ENVELOPE == tmpEnvelopeInfo.envelopeType) - || (TYPE_UCT_ENVELOPE == tmpEnvelopeInfo.envelopeType) - || (TYPE_CT_ENVELOPE == tmpEnvelopeInfo.envelopeType)) - { - ;/*1:ͨų 2ʧͨų 3س*/ - } - else - { - reVal = CI_ERROR; - } - - tmpEnvelopeInfo.headTrainID = ShortFromChar(&dataBuf[ii]);/* ǰID */ - ii += 2u; - - tmpEnvelopeInfo.tailTrainID = ShortFromChar(&dataBuf[ii]);/* ID */ - ii += 2u; - - tmpEnvelopeInfo.startPos.Dir = dataBuf[ii++];/* 㷽 */ - - tmpEnvelopeInfo.startPos.Lnk = ShortFromChar(&dataBuf[ii]);/* link */ - ii += 2u; - - tmpEnvelopeInfo.startPos.Off = LongFromChar(&dataBuf[ii]);/* offset */ - ii += 4u; - - tmpEnvelopeInfo.endPos.Dir = dataBuf[ii++];/* յ㷽 */ - - tmpEnvelopeInfo.endPos.Lnk = ShortFromChar(&dataBuf[ii]);/* յlink */ - ii += 2u; - - tmpEnvelopeInfo.endPos.Off = LongFromChar(&dataBuf[ii]);/* յoffset */ - ii += 4u; - - belongCiId = (UINT8)GetLinkManageTiocById(tmpEnvelopeInfo.startPos.Lnk); - if (belongCiId == localCiId) - { - (void)dsuCheckSameLoc(tmpEnvelopeInfo.startPos.Lnk, tmpEnvelopeInfo.startPos.Off, &tmpEnvelopeInfo.startPos.Lnk, &tmpEnvelopeInfo.startPos.Off); - } - - belongCiId = (UINT8)GetLinkManageTiocById(tmpEnvelopeInfo.endPos.Lnk); - if (belongCiId == localCiId) - { - (void)dsuCheckSameLoc(tmpEnvelopeInfo.endPos.Lnk, tmpEnvelopeInfo.endPos.Off, &tmpEnvelopeInfo.endPos.Lnk, &tmpEnvelopeInfo.endPos.Off); - } - - /*ȡֽOCİ*/ - reVal = CutCfpOtherOcEData(deviceId, &tmpEnvelopeInfo); - - tmpEnvelopeInfo.ACCnt = elm_PrepareACBtwPoints(tmpEnvelopeInfo.startPos, tmpEnvelopeInfo.endPos, tmpEnvelopeInfo.ACID); - /* ڲŻ 20220419 wqm elm_PrepareACBtwPoints0߷гаʱ˴Ӧ÷ΪCI_ERROR*/ - if ((SECTION_IN_ENVELOPE_SUM_MAX == tmpEnvelopeInfo.ACCnt) || (0u == tmpEnvelopeInfo.ACCnt)) - { - reVal = CI_ERROR; - } - else - { - for (chInfoIndex = 0u; chInfoIndex < tmpEnvelopeInfo.ACCnt; chInfoIndex++) - { - belongCiId = (UINT8)GetAxisBelongTioc(tmpEnvelopeInfo.ACID[chInfoIndex]); - if ((localCiId == belongCiId) || (0u == belongCiId)) - { - reVal = CI_ERROR; - break; - } - else - { - ; - } - } - } - - - tmpEnvelopeInfo.trianCnt = dataBuf[ii++];/* г */ - - for (chInfoIndex = 0u; chInfoIndex < tmpEnvelopeInfo.trianCnt; chInfoIndex++) - { - tmpEnvelopeInfo.trainID[chInfoIndex] = ShortFromChar(&dataBuf[ii]);/* гID */ - ii += 2u; - - tmpEnvelopeInfo.ACTPort[chInfoIndex] = dataBuf[ii++]; /* гˡUCTֽRRM */ - } - - if (CI_SUCCESS == reVal) - { - /* дֽյİ */ - SetCfpOtherOcEData(deviceId, chEnvelopeIndex, tmpEnvelopeInfo); - } - else - { - ; - } - } - chCtNum = dataBuf[ii++]; for (chInfoIndex = 0u; chInfoIndex < chCtNum; chInfoIndex++) { @@ -23099,7 +23184,7 @@ UINT8 ParseRcToRcPbTacsDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 source SetTrainLevel(wTrainId, chLevel); /* гм */ dwTrainDelay = LongFromChar(&dataBuf[ii]); /* TIOCгͨʱ */ - ii += 4u; + ii += 4u; (void)SetTrainMsgDelayTime(wTrainId, dwTrainDelay); wSpeed = ShortFromChar(&dataBuf[ii]); diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.h b/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.h index f9ae6ee..4f15497 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.h +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackCiData.h @@ -231,6 +231,12 @@ extern "C" { UINT16 szNeedCheckProSwtStateOlpIdBuf[OVERLAP_SUM_MAX]; /*Ҫ״̬ıID*/ UINT16 wSwitchSumOfOtherCi; /*漰õ*/ UINT16 szSwitchIdBufOfOtherCi[SWITCH_SUM_MAX]; /*漰õ*/ + + /*ͨӷֽ*/ + UINT16 wSwitchPhySecNum; /**/ + UINT16 wSwitchPhySecBuf[PHYSICAL_SECTION_SUM_MAX]; /**/ + UINT16 wXianSuLogSecNum; /*߼*/ + UINT16 wXianSuLogSecBuf[LOGIC_SECTION_SUM_MAX]; /*߼*/ } CiTransmitStruct; /* TIOCͨų */ @@ -1443,11 +1449,12 @@ UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCi * ˵const UINT8 *pInputData ָ * UINT16 *pItemLen еij * const UINT8 srcCiId ԴID +* const UINT16 packetLen ij * ֵCI_SUCCESS 1 ɹ * CI_ERROR 0 ʧ * Created By LQ 2025.05.26 */ -UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UINT8 srcCiId); +UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UINT8 srcCiId, const UINT16 packetLen); /* * CIRC֡ diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackCommon.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackCommon.c index c303709..4bbfdf2 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackCommon.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackCommon.c @@ -524,6 +524,11 @@ UINT8 SwitchMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* da UINT16 indexFind = 0U; UINT8 devBelongThisLine = 0U; UINT8 switchBoardNum = 0U; + UINT8 chLocalCiOCSswitch = 0U; + UINT8 chMainCotrolOCId = 0U; + + chLocalCiOCSswitch = GetLocalCiOCSswitch(); + switchLockStatus = GetSwitchLockStatus(DeviceId); @@ -698,13 +703,17 @@ UINT8 SwitchMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* da } break; case MASK_TYPE_SWITCH_OPEN_CAP: + chMainCotrolOCId = GetSwitchMainCotrolOCId(DeviceId);/*ȡOC*/ for (i = 0u; i < m_SwitchNum; i++) { if (m_Switches[i].DeviceId == DeviceId) { - flagFind = 1u; - indexFind = i; - break; + if ((chMainCotrolOCId == m_Switches[i].OcId) || (OC_S_OFF == chLocalCiOCSswitch)) + {/*ǰOCOC-Sܹر*/ + flagFind = 1u; + indexFind = i; + break; + } } } if (1u == flagFind) @@ -1632,6 +1641,10 @@ UINT8 OverlapMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* d UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dataBuf) { UINT8 returnValue = CI_SUCCESS; /*ֵĬϳɹ*/ + UINT8 chVirCiId = 0u; + UINT8 chVirCiType = 0u; + UINT8 ciTrainTestState = 0u; /*Գ״̬*/ + UINT32 xuanpaiStartCycNum = 0u;/*·ѡſʼ*/ UINT8 routeState = GetRouteState(DeviceId); /*ȡ·״̬*/ UINT8 routeLevel = GetRouteLevel(DeviceId); UINT16 lastPhyLockId = GetRouteLastPhySectionId(DeviceId); /*ȡָID·һID*/ @@ -1640,12 +1653,11 @@ UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dat UINT8 dcQState = GetRouteDCQState(DeviceId);/*·״̬*/ UINT8 dcTState = GetRouteDCTYState(DeviceId);/*·ͬ״̬*/ UINT8 chDCAgreeBtnErrState = GetRouteDcAgreeButtonErrState(DeviceId);/*·ͬⰴť״̬*/ - UINT8 ciTrainTestState = 0u; /*Գ״̬*/ + UINT8 routeAutoTriggerFlag = GetRouteAutoTriggerFlag(DeviceId); /*ȡ·Զ־*/ - UINT8 chVirCiId = 0u; - UINT8 chVirCiType = 0u; + xuanpaiStartCycNum = GetRouteXuanPaiStartCycNum(DeviceId);/*·ѡſʼ*/ switch (MaskType) { case MASK_TYPE_ROUTE_IDLE:/*·λ*/ @@ -1659,7 +1671,8 @@ UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dat } break; case MASK_TYPE_ROUTE_XUANPAI:/*·ѡλ*/ - if (ROUTE_STATE_XUANPAI == routeState) + /* ѡںЧɷλ*/ + if (xuanpaiStartCycNum > 0u) { SetMaskValue(MaskId, dataBuf); } diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackGateWayData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackGateWayData.c index 6bf5552..a14b801 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackGateWayData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackGateWayData.c @@ -40,6 +40,9 @@ AtsMsgCfmStru g_strSndAtsDaCfmFst = { 0U }; /* UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { UINT8 chRtn = CI_ERROR; + UINT8 chRtn1 = CI_SUCCESS; + UINT8 chRtn2 = CI_SUCCESS; + UINT8 chRtn3 = CI_SUCCESS; UINT8 chMsgNum = 0u; UINT32 dwDataVer = 0u; UINT32 dwPrtclMsg = 0u; @@ -67,6 +70,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) UINT16 wDevId = 0U; UINT8 szCrcTmp[1024] = { 0U }; + if ((NULL != dataBuf) && (0u < dataLength)) { chLocalId = GetSystemParaLocalCiId(); @@ -89,6 +93,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) else { chRtn = CI_ERROR; + chRtn3 = CI_ERROR; } } else @@ -105,6 +110,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) else { chRtn = CI_ERROR; + chRtn3 = CI_ERROR; } } else @@ -236,6 +242,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; /*DO NOTHING*/ } + chRtn1 = chRtn; } else { @@ -355,6 +362,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; /*DO NOTHING*/ } + chRtn2 = chRtn; } break; } @@ -469,6 +477,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; /*DO NOTHING*/ } + chRtn3 = chRtn; break; } case MSG_TYPE_EA_CANCLE_FIRST:/* ɢȡ״Ϣ */ @@ -580,6 +589,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } + chRtn1 = chRtn; } else { @@ -682,6 +692,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } + chRtn2 = chRtn; } break; } @@ -801,7 +812,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } - + chRtn3 = chRtn; break; } case MSG_TYPE_WLB_SET_FIRST: /* ȫгƶһ */ @@ -923,6 +934,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } + chRtn1 = chRtn; } else { @@ -1039,6 +1051,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } + chRtn2 = chRtn; } break; } @@ -1169,7 +1182,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } - + chRtn3 = chRtn; break; } case MSG_TYPE_DA_CANCLE_FIRST:/* ѹȡ״Ϣ */ @@ -1281,6 +1294,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } + chRtn1 = chRtn; } else { @@ -1383,6 +1397,7 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } + chRtn2 = chRtn; } break; } @@ -1502,12 +1517,13 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) { ; } - + chRtn3 = chRtn; break; } default: { chRtn = CI_ERROR; + chRtn3 = CI_ERROR; break; } } @@ -1545,20 +1561,40 @@ UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength) } else { - ClearAtsMsgFirst(); - ClearAtsMsgSecond(); - ClearAtsEaMsgFirst(); - ClearAtsEaMsgSecond(); - ClearAtsWlbMsgFirst(); - ClearAtsWlbMsgSecond(); - ClearAtsDaMsgFirst(); - ClearAtsDaMsgSecond(); - ClearSndAtsScreenFstCfmMsg(); - ClearSndAtsEaFstCfmMsg(); - ClearSndAtsWlbFstCfmMsg(); - ClearSndAtsDaFstCfmMsg(); - } + /*УǷӦص洢*/ + if (CI_ERROR == chRtn1) + { + ClearAtsMsgFirst(); + ClearAtsEaMsgFirst(); + ClearAtsWlbMsgFirst(); + ClearAtsDaMsgFirst(); + } + if (CI_ERROR == chRtn2) + { + ClearSndAtsScreenFstCfmMsg(); + ClearSndAtsEaFstCfmMsg(); + ClearSndAtsWlbFstCfmMsg(); + ClearSndAtsDaFstCfmMsg(); + } + if (CI_ERROR == chRtn3) + { + ClearAtsMsgFirst(); + ClearAtsEaMsgFirst(); + ClearAtsWlbMsgFirst(); + ClearAtsDaMsgFirst(); + ClearSndAtsScreenFstCfmMsg(); + ClearSndAtsEaFstCfmMsg(); + ClearSndAtsWlbFstCfmMsg(); + ClearSndAtsDaFstCfmMsg(); + ClearAtsMsgSecond(); + ClearAtsEaMsgSecond(); + ClearAtsWlbMsgSecond(); + ClearAtsDaMsgSecond(); + } + + } + return chRtn; } diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c index 622e8c6..8b30406 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.c @@ -253,7 +253,7 @@ UINT8 PackCiToOcData( UINT8 deviceId) UINT8 chMainCotrolOCId = 0U; UINT8 chControlCmd = 0U; UINT8 chControlCmdNum = 0u; - UINT16 cmdIndex = 0u; + UINT32 cmdIndex = 0u; UINT8 chOcOutControlCmd = 0u; UINT8 chOcFindPostionCmd = 0u; UINT8 chLocalCiOCSswitch = 0u; @@ -348,11 +348,11 @@ UINT8 PackCiToOcData( UINT8 deviceId) {/*OC-SҵǰأѰ*/ drvCmd = OC_SWITCH_DRIVE_POS_KEEP;/**/ - chOcOutControlCmd = GetSwitchThisOcOutControlCmd(pOcData->OcDevices[kk].DeviceId, pOcData->OcId); + chOcOutControlCmd = GetSwitchThisOcOutControlCmd(pOcData->OcDevices[kk].DeviceId, (UINT8)pOcData->OcId); if (MAIN_CONTROL == chOcOutControlCmd) { - chOcFindPostionCmd = GetSwitchThisOcFindPostionCmd(pOcData->OcDevices[kk].DeviceId, pOcData->OcId); + chOcFindPostionCmd = GetSwitchThisOcFindPostionCmd(pOcData->OcDevices[kk].DeviceId, (UINT8)pOcData->OcId); drvCmd = ConvertSwitchFindPosToSwFindCmd(chOcFindPostionCmd); } } @@ -680,8 +680,8 @@ UINT8 PackCiToOcData( UINT8 deviceId) ii += 2u; if (OC_S_ON == chLocalCiOCSswitch) {/*OS-Sش*/ - chControlCmd = GetSwitchThisOcOutControlCmd(pOcData->OcDevices[kk].DeviceId, pOcData->OcId); - if ((MAIN_CONTROL == chControlCmd) || (STANDBY_CONTROL == chControlCmd) || (NO_CONTROL_FUN == chControlCmd)) + chControlCmd = GetSwitchThisOcOutControlCmd(pOcData->OcDevices[kk].DeviceId, (UINT8)pOcData->OcId); + if ((MAIN_CONTROL == chControlCmd) || (STANDBY_CONTROL == chControlCmd)) { Ci2OcDataBuffer[ii] = chControlCmd; } @@ -701,6 +701,7 @@ UINT8 PackCiToOcData( UINT8 deviceId) } default: {/*ִ*/ + break; } } } @@ -1198,7 +1199,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U UINT32 dwUpToMainCyc = 0U;/*ں*/ UINT32 CiRecvOcSN = 0U;/*ͬCIOCں*/ HLHTHeadContextStru* pstrHlhtHeadCtx = NULL; /*CIͬĻͨͷ*/ - UINT32 dwMainStandbyState = 0U; + UINT8 dwMainStandbyState = 0U; UINT8 chSwitchBelongOThisOCRet = 0U; @@ -1262,7 +1263,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U localCiId = GetSystemParaLocalCiId(); /*ȡID*/ wCiName = (CI_SYSTEM_TYPE_RCI)* 256U + localCiId; - headRet = HLHTRecvCommonPacketHeadCheck(ocName, wCiName, CI_OC_INTERFACE_INFOTYPE, CI_OC_PRTCL_VER, &hlhtGalHead, &errCode, 0u, CI_SYSTEM_TYPE_OC); + headRet = HLHTRecvCommonPacketHeadCheck(ocName, wCiName, CI_OC_INTERFACE_INFOTYPE, (UINT8)CI_OC_PRTCL_VER, &hlhtGalHead, &errCode, 0u, CI_SYSTEM_TYPE_OC); transmitBadEnsureTime = GetCiAndOcTransmitBadEnsureTime(); debug_infor_printf((const)"\nOC %d GAL Check Result:%d errCode:%d\n", systemId, headRet, errCode); /*0x55ȷ0xaa0x33ʼͨ֡*/ @@ -1302,7 +1303,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U { chUsableCycCheck = CI_SUCCESS; } - if (0U < ocInfoRemainValidity) + if (0 < ocInfoRemainValidity) { /*Ӧ*/ wApplyDataLenth = ShortFromChar(&dataBuf[ii]);/*Ӧòݳ*/ @@ -2172,7 +2173,7 @@ INT16 GetIndexBySignalId(UINT16 sigId) * ˵ UINT16 swId ID,UINT8 ocId OCID * ֵ */ -INT16 GetIndexBySwitchId(UINT16 swId,UINT16 ocId) +INT16 GetIndexBySwitchId(UINT16 swId,UINT8 ocId) { INT16 retIndex = -1; @@ -2180,7 +2181,7 @@ INT16 GetIndexBySwitchId(UINT16 swId,UINT16 ocId) for (i=0u;iDeviceType == OC_DEVICE_TYPE_SIGNAL) {/*źŻ*/ ind = GetIndexBySignalId(pOcDevice->DeviceId); - if ((ind >=0) && (OC_DEVICE_TYPE_SIGNAL == pOcDevice->DeviceType)) + if (ind >=0) { if ((m_Signals[ind].OcId == pOcDevice->OcId) && (m_Signals[ind].DeviceId == pOcDevice->DeviceId)) @@ -2429,18 +2431,18 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId) m_Switches[ind].MainStandbyState[k] = pOcDevice->MainStandbyState[k]; } - chSwitchszPlusBoxId = GetSwitchszPlusBoxId(m_Switches[ind].DeviceId, m_Switches[ind].OcId); + chSwitchszPlusBoxId = GetSwitchszPlusBoxId(m_Switches[ind].DeviceId,(UINT8)m_Switches[ind].OcId); for (k = 0U; k < m_OcToCiOrginDataArr[i].chPbNum; k++) { if (chSwitchszPlusBoxId == m_OcToCiOrginDataArr[i].szPlusBox[k].chPbId) { if (SWITCH_BOX_NORMAL == m_OcToCiOrginDataArr[i].szPlusBox[k].chAsState) {/**/ - SetSwitchOcPlusBoxSateState(m_Switches[ind].DeviceId, m_Switches[ind].OcId, SWITCH_BOX_NORMAL); + SetSwitchOcPlusBoxSateState(m_Switches[ind].DeviceId, (UINT8)m_Switches[ind].OcId, SWITCH_BOX_NORMAL); } else { - SetSwitchOcPlusBoxSateState(m_Switches[ind].DeviceId, m_Switches[ind].OcId, SWITCH_BOX_FAULT); + SetSwitchOcPlusBoxSateState(m_Switches[ind].DeviceId, (UINT8)m_Switches[ind].OcId, SWITCH_BOX_FAULT); } break; } @@ -2449,7 +2451,7 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId) /*忨״̬*/ for (k = 0U; k < m_Switches[ind].BoardNum; k++) { - SetSwitchThisOCBoardState(m_Switches[ind].DeviceId, m_Switches[ind].OcId, m_Switches[ind].BoardAddr[k], m_Switches[ind].BoardState[k]); + SetSwitchThisOCBoardState(m_Switches[ind].DeviceId, (UINT8)m_Switches[ind].OcId, m_Switches[ind].BoardAddr[k], m_Switches[ind].BoardState[k]); } @@ -3012,6 +3014,7 @@ UINT8 OcInputSignalStateCheck(const UINT8 chInput) break; default: retVal = CI_ERROR; + break; } return retVal; } diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.h b/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.h index 08b273a..98effdc 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.h +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackOcData.h @@ -440,7 +440,7 @@ INT16 GetIndexBySignalId(UINT16 sigId); * ˵ UINT16 swId ID,UINT8 ocId OCID * ֵ */ -INT16 GetIndexBySwitchId(UINT16 swId, UINT16 ocId); +INT16 GetIndexBySwitchId(UINT16 swId, UINT8 ocId); /* * ͨidȡ diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackTmcData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackTmcData.c index 1eb06c9..92b90bc 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackTmcData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackTmcData.c @@ -364,7 +364,7 @@ UINT8 ParseTmcToTiocDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId) retVal = CI_ERROR; } - if ((CI_ERROR == retVal) || (0u == galHeadSaved)) + if ((CI_ERROR == retVal) && (0u == galHeadSaved)) { /*ͨñͷ*/ ClearHlhtHeadCtx(CI_SYSTEM_TYPE_TMC, systemId); diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c index 2b35454..8668268 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.c @@ -288,6 +288,13 @@ static UINT8 WashTrainRequestCheck(UINT8 Data); */ static UINT8 HeadWashStopSteadyInfoCheck(UINT8 Data); /* +* ҶϴͣϢӿУ +* ˵ ΣUINT8 Data ҶϴͣϢ +* ֵ CI_ERROR: ӿУʧ +* CI_SUCESS: ӿУɹ +*/ +static UINT8 CoupingWashStopStedInfoCheck(UINT8 Data); +/* * ͣϴϢӿУ * ˵ ΣUINT8 Data ͣϴϢ * ֵ CI_ERROR: ӿУʧ @@ -2100,7 +2107,7 @@ static UINT8 PackCiToVobcDataHLHT(VobcToCiDataStruct *vobcToCiDataStru) UINT16 sigId = 0U; /*źŻID*/ UINT32 curCycleNum = Get2oo2CurCycleNum(); UINT32 appCycleTime = GetSystemParaAppCycleTime(); - UINT8 retVal = CI_SUCCESS; + UINT8 retVal = CI_ERROR; UINT8 localCiId = GetSystemParaLocalCiId(); /*ID*/ UINT32 ciEtcsId = 0U; UINT32 vobcEtcsId = 0U; @@ -2113,6 +2120,7 @@ static UINT8 PackCiToVobcDataHLHT(VobcToCiDataStruct *vobcToCiDataStru) UINT8 outStationSignalAllowOrNot = CI_VOBC_SIGNAL_DEFAULT; /*źŻֹ״̬*/ UINT32 signalIdInterConn = 0U; /*ͨ4ֽźŻID*/ UINT16 wTempIndex = 0U; /*ʱ¼±*/ + UINT8 chPackCheck = CI_SUCCESS; ci_vobcPrtclVersion = GetVersionOfVOBCToCI(); @@ -2158,7 +2166,7 @@ static UINT8 PackCiToVobcDataHLHT(VobcToCiDataStruct *vobcToCiDataStru) ii += 2U;/*Ԥֽ*/ - if ((VOBC_CI_INFO_TYPE_PSD_CONTROL == vobcToCiDataStru->appInfoType) && (curCycleNum == vobcToCiDataStru->ComStartCycle)) + if (VOBC_CI_INFO_TYPE_PSD_CONTROL == vobcToCiDataStru->appInfoType) {/*ֻеVOBC͵ϢſϢʱݣϢΪֻ֡ͱ֡ͷ31+6*/ LongToChar(vobcToCiDataStru->trackSecID,&CiToVobcDataBuffer[ii]);/*ظյĹID,CI-VOBCV2.9ӿĵ޸*/ ii += 4U; @@ -2305,16 +2313,18 @@ static UINT8 PackCiToVobcDataHLHT(VobcToCiDataStruct *vobcToCiDataStru) } else { - /*Ϣʹʲô*/ + /*֡*/ + chPackCheck = CI_ERROR; } /*ʽϢ*/ if (curCycleNum == vobcToCiDataStru->strBlocLinkData.chBlocLinkCycle) - { + { /*-ڿԺſ֡ͬʱеʽ-*/ if (0U == CiToVobcDataBuffer[33U]) { - /*ûϢ֡Ԥ*/ + chPackCheck = CI_SUCCESS; + /*ûϢ֡֡͵ʽ*/ ShortToChar(CI_VOBC_INFO_TYPE_BLOCLINK, &CiToVobcDataBuffer[33U]); /*ֽͣ*/ PackVobcBlocLinkData(CiToVobcDataBuffer, &ii, vobcToCiDataStru); /*ʽϢ*/ /*Ӧòݵıij */ @@ -2339,26 +2349,32 @@ static UINT8 PackCiToVobcDataHLHT(VobcToCiDataStruct *vobcToCiDataStru) { /**/ } + if (CI_SUCCESS == chPackCheck) + { + /*ͨñͷӦò㱨ܳ*/ + CiToVobcDataBuffer[29U] = (UINT8)((UINT8)((ii - 31U) >> 8U) & 0xffU); + CiToVobcDataBuffer[30U] = (UINT8)((ii - 31U) & 0xffU); - /*ͨñͷӦò㱨ܳ*/ - CiToVobcDataBuffer[29U] = (UINT8) ((UINT8)((ii - 31U) >> 8U) & 0xffU); - CiToVobcDataBuffer[30U] = (UINT8) ((ii - 31U) & 0xffU); - - dstDevId = ((UINT16)CI_SYSTEM_TYPE_VOBC << 8U) | vobcToCiDataStru->VobcId; - outnetSafeSendRtn = OutnetSafeSend(dstDevId, 0U, &CiToVobcDataBuffer[0U], ii); - if (1U == outnetSafeSendRtn) - { /*дгɹ*/ + dstDevId = ((UINT16)CI_SYSTEM_TYPE_VOBC << 8U) | vobcToCiDataStru->VobcId; + outnetSafeSendRtn = OutnetSafeSend(dstDevId, 0U, &CiToVobcDataBuffer[0U], ii); + if (1U == outnetSafeSendRtn) + { /*дгɹ*/ #ifdef LOGPRINT/*־ӡ*/ #ifdef PLATFORM_2OO2/*2oo2ƽ̨ӡ*/ - debug_infor_printf((const)"\nVOBC_CBTC_SEND:%d", ii); - debug_out_array(0xAA, CiToVobcDataBuffer, ii); + debug_infor_printf((const)"\nVOBC_CBTC_SEND:%d", ii); + debug_out_array(0xAA, CiToVobcDataBuffer, ii); #endif/*ƽ̨ӡ*/ #endif + } + else + { + /*дʧ*/ + retVal = CI_ERROR; + } } else { - /*дʧ*/ - retVal = CI_ERROR; + /**/ } } else @@ -3327,36 +3343,51 @@ static UINT8 PackCiToVobcDataFAOHLHT(VobcToCiDataStruct *vobcToCiDataStru) } } else - {/*վ̨ťVOBCվ̨޷ť״̬*/ - CiToVobcDataBuffer[ii] = PLATFORM_DEPAR_BUTTON_NO; + { + CiToVobcDataBuffer[ii] = PLATFORM_DEPAR_BUTTON_NO;;/*Щ·PSD÷ť̵*/ } /* IBP̷ť*/ if(PLATFORM_DEPAR_BUTTON_STATE_VALID != CiToVobcDataBuffer[ii]) { - if (PSD_BUTTON_PANGLU_STATE_VALID == psdButtonPangluState) + /*Чվ̨*/ + + /*IBPť״̬*/ + wibpBtnRelayId = GetIbpConfmRelayId(psdId); + if ((0u != wibpBtnRelayId) && (UINT16_MAX != wibpBtnRelayId)) { - ; /* վ̨ť·*/ - } - else - { - /*֮ǰťЧҪIBPť״̬*/ - wibpBtnRelayId = GetIbpConfmRelayId(psdId); - if ((0u != wibpBtnRelayId) && (UINT16_MAX != wibpBtnRelayId)) + if (PSD_BUTTON_PANGLU_STATE_VALID == psdButtonPangluState) { - chibpState = GetPsdButtonIbpState(psdId); /*IBPť״̬*/ - if(PLATFORM_DEPAR_BUTTON_STATE_VALID == chibpState) - { - CiToVobcDataBuffer[ii] = chibpState; - } - else - { - ; /*ԭ״̬*/ - } + /*վ̨ťVOBCվ̨ŰťĬֵ*/ + CiToVobcDataBuffer[ii] = PSD_RELATED_BUTTON_STATE_DEFAULT; } else { - ; /*ԭ״̬*/ + chibpState = GetPsdButtonIbpState(psdId); /*IBPť״̬ЧЧϣ*/ + /* Ч Ĭ Ч*/ + if (PLATFORM_DEPAR_BUTTON_STATE_INVALID == chibpState) + { + /*IBPť״̬Ч*/ + if (PSD_RELATED_BUTTON_STATE_DEFAULT == CiToVobcDataBuffer[ii]) + { + ;/*Ĭ*/ + } + else + { + /*վ̨ťЧVOBCIBPť״̬*/ + CiToVobcDataBuffer[ii] = chibpState; + } + } + else + { + /*IBPť״̬ЧĬϣVOBCվ̨IBPť״̬*/ + CiToVobcDataBuffer[ii] = chibpState; + } } + + } + else + { + ;/*IBPάּв*/ } } else @@ -6163,33 +6194,47 @@ static UINT8 PackCiToIvocPsdInfo(UINT8* pDataBuf, UINT16 *wDataLength) {/*վ̨ťVOBCվ̨޷ť״̬*/ pDataBuf[ii] = CI_IVOC_PSD_PDB_NO_BUTTON; } - /* IBP̷ť */ + /* IBP̷ť*/ if(PLATFORM_DEPAR_BUTTON_STATE_VALID != pDataBuf[ii]) { - if (PSD_BUTTON_PANGLU_STATE_VALID == psdButtonPangluState) + /*Чվ̨*/ + /*IBPť״̬*/ + wibpBtnRelayId = GetIbpConfmRelayId(wPsdId); + if ((0u != wibpBtnRelayId) && (UINT16_MAX != wibpBtnRelayId)) { - ;/* վ̨ť·*/ - } - else - { - /*֮ǰťЧҪIBPť״̬*/ - wibpBtnRelayId = GetIbpConfmRelayId(wPsdId); - if ((0u != wibpBtnRelayId) && (UINT16_MAX != wibpBtnRelayId)) + if (PSD_BUTTON_PANGLU_STATE_VALID == psdButtonPangluState) { - chibpState = GetPsdButtonIbpState(wPsdId); /*IBPť״̬*/ - if(PLATFORM_DEPAR_BUTTON_STATE_VALID == chibpState) - { - pDataBuf[ii] = chibpState; - } - else - { - ; /*ԭ״̬*/ - } + /*վ̨ťVOBCվ̨ŰťĬֵ*/ + pDataBuf[ii] = PSD_RELATED_BUTTON_STATE_DEFAULT; } else { - ; /*ԭ״̬*/ + chibpState = GetPsdButtonIbpState(wPsdId); /*IBPť״̬ЧЧϣ*/ + /* Ч Ĭ Ч*/ + if (PLATFORM_DEPAR_BUTTON_STATE_INVALID == chibpState) + { + /*IBPť״̬Ч*/ + if (PSD_RELATED_BUTTON_STATE_DEFAULT == pDataBuf[ii]) + { + ;/*Ĭ*/ + } + else + { + /*վ̨ťЧVOBCIBPť״̬*/ + pDataBuf[ii] = chibpState; + } + } + else + { + /*IBPť״̬ЧĬϣVOBCվ̨IBPť״̬*/ + pDataBuf[ii] = chibpState; + } } + + } + else + { + ;/*IBPάּв*/ } } else @@ -6885,7 +6930,7 @@ static UINT8 PackCiToIvocFLockInfo(UINT8* pDataBuf, UINT16 *wDataLength) chStartLockStat = GetStartFLockFlag(); /*ϵ״̬*/ - if (CI_START_LOCK_NO == chStartLockStat) + if (CI_START_FLOCK_NO == chStartLockStat) { pDataBuf[ii] = CI_IVOC_ALLLINE_FLOCK_NO; } @@ -7394,6 +7439,8 @@ static UINT8 PackCiToIvocSleepTrainInfo(UINT8* pDataBuf, UINT16 *wDataLength) UINT16 wEnvelopeSendSumIndex = 0u; UINT16 wTrainId = 0u; UINT8 chLinkLogicDirUpAndDown = 0u; + UINT8 chTrainVirHeadScreenFlag = 0U;/*ǰɸ־*/ + UINT8 chTrainVirTailScreenFlag = 0U;/*ɸ־*/ if ((NULL == pDataBuf) || (NULL == wDataLength)) @@ -7481,8 +7528,16 @@ static UINT8 PackCiToIvocSleepTrainInfo(UINT8* pDataBuf, UINT16 *wDataLength) { chRetVal = CI_ERROR; } - /*ǰɸ*/ - chHeadScreStat = strEnvelope.suspicHead; + /*ǰɸ*/ + chTrainVirHeadScreenFlag = GetTrainVirHeadScreenPassFlag(wTrainId); + if (TRAIN_VIR_SCREEN_PASS_FLAG_VALID == chTrainVirHeadScreenFlag) + { + chHeadScreStat = CI_IVOC_HEAD_SCREEN_PASS; + } + else + { + chHeadScreStat = strEnvelope.suspicHead; + } if (CI_IVOC_HEAD_SCREEN_PASS == chHeadScreStat) { @@ -7497,8 +7552,16 @@ static UINT8 PackCiToIvocSleepTrainInfo(UINT8* pDataBuf, UINT16 *wDataLength) chRetVal = CI_ERROR; debug_infor_printf((const)"\n PackCiToIvocSleepTrainInfo HeadScreState_Error, state : %d \n", chHeadScreStat); } - /*ɸ*/ - chTailScreStat = strEnvelope.suspicTail; + /*ɸ*/ + chTrainVirTailScreenFlag = GetTrainVirTailScreenPassFlag(wTrainId); + if (TRAIN_VIR_SCREEN_PASS_FLAG_VALID == chTrainVirTailScreenFlag) + { + chTailScreStat = CI_IVOC_TAIL_SCREEN_PASS; + } + else + { + chTailScreStat = strEnvelope.suspicTail; + } if (CI_IVOC_TAIL_SCREEN_PASS == chTailScreStat) { pDataBuf[ii] |= BIT_VAL_00000001B << 4; /*ɸѡͨ 01B*/ @@ -8983,34 +9046,49 @@ UINT8 PackCiToVobcDataFAOHLHToneSelf(VobcToCiDataStruct* vobcToCiDataStru) CiToVobcDataBuffer[ii] = PLATFORM_DEPAR_BUTTON_NO; } /* IBP̷ť*/ + if(PLATFORM_DEPAR_BUTTON_STATE_VALID != CiToVobcDataBuffer[ii]) { - if ((PSD_BUTTON_PANGLU_STATE_VALID == psdButtonPangluState) || (1u == flag)) + /*Чվ̨*/ + + /*IBPť״̬*/ + wibpBtnRelayId = GetIbpConfmRelayId(psdId); + if ((0u != wibpBtnRelayId) && (UINT16_MAX != wibpBtnRelayId)) { - ; - } - else - { - /*֮ǰťЧҪIBPť״̬*/ - wibpBtnRelayId = GetIbpConfmRelayId(psdId); - if ((0u != wibpBtnRelayId) && (UINT16_MAX != wibpBtnRelayId)) + if (PSD_BUTTON_PANGLU_STATE_VALID == psdButtonPangluState) { - chibpState = GetPsdButtonIbpState(psdId); /*IBPť״̬*/ - if(PLATFORM_DEPAR_BUTTON_STATE_VALID == chibpState) - { - CiToVobcDataBuffer[ii] = chibpState; - } - else - { - ; /*ԭ״̬*/ - } + /*վ̨ťVOBCվ̨ŰťĬֵ*/ + CiToVobcDataBuffer[ii] = PSD_RELATED_BUTTON_STATE_DEFAULT; } else { - ; /*ԭ״̬*/ + chibpState = GetPsdButtonIbpState(psdId); /*IBPť״̬ЧЧϣ*/ + /* Ч Ĭ Ч*/ + if (PLATFORM_DEPAR_BUTTON_STATE_INVALID == chibpState) + { + /*IBPť״̬Ч*/ + if (PSD_RELATED_BUTTON_STATE_DEFAULT == CiToVobcDataBuffer[ii]) + { + ;/*Ĭ*/ + } + else + { + /*վ̨ťЧVOBCIBPť״̬*/ + CiToVobcDataBuffer[ii] = chibpState; + } + } + else + { + /*IBPť״̬ЧĬϣVOBCվ̨IBPť״̬*/ + CiToVobcDataBuffer[ii] = chibpState; + } } + + } + else + { + ;/*IBPάּв*/ } - } else { @@ -9158,6 +9236,7 @@ UINT8 PackCiToVobcDataFAOHLHToneSelf(VobcToCiDataStruct* vobcToCiDataStru) CiToVobcDataBuffer[ii++] = washMachineState; /*5ϴϣ0x55޹ϣ0xaa*/ CiToVobcDataBuffer[ii++] = washModeState; /*ϴģʽ0x01:ͨϴ(ϴ)0x02:ϴȫϴ*/ CiToVobcDataBuffer[ii++] = chWashWorkModeBack; /*ϴģʽ÷5ȡֵ*/ + CiToVobcDataBuffer[ii++] = GetCoupingWashAllowState(washMachineId); /*Ҷϴͨ0x55ͨ0xaaֹͨ*/ } else {/*ûϴ,Ĭֵ,ϴ״̬ͲɼϢ*/ @@ -9168,6 +9247,7 @@ UINT8 PackCiToVobcDataFAOHLHToneSelf(VobcToCiDataStruct* vobcToCiDataStru) CiToVobcDataBuffer[ii++] = WASHMACHINE_COL_FALUT_NO_2; CiToVobcDataBuffer[ii++] = XTA_MODE_STATE_NO; CiToVobcDataBuffer[ii++] = WASH_WORKMODE_BACK_DEFAULT; + CiToVobcDataBuffer[ii++] = WASHMACHINE_COL_COUPINGWASH_NO; } ShortToChar(CI_VOBC_INFO_TYPE_FAO_INFO, &CiToVobcDataBuffer[33]);/*ȫԶϴֽ֡ͣ*/ @@ -9712,6 +9792,30 @@ static UINT8 HeadWashStopSteadyInfoCheck(UINT8 Data) return retVal; } +/* +* ҶϴͣϢӿУ +* ˵ ΣUINT8 Data ҶϴͣϢ +* ֵ CI_ERROR: ӿУʧ +* CI_SUCESS: ӿУɹ +*/ +static UINT8 CoupingWashStopStedInfoCheck(UINT8 Data) +{ + UINT8 coupingWashStopSteadyInfo = 0U; + UINT8 retVal = CI_ERROR; + coupingWashStopSteadyInfo = Data; + + if ((WASHMACHINE_COUPING_STEADY_YES == coupingWashStopSteadyInfo) || (WASHMACHINE_COUPING_STEADY_NO == coupingWashStopSteadyInfo)) + { + retVal = CI_SUCCESS; + } + else + { + retVal = CI_ERROR; + } + + return retVal; +} + /* * ͣϴϢӿУ * ˵ ΣUINT8 Data ͣϴϢ @@ -11863,11 +11967,23 @@ UINT8 ParseFAOHLHTOtherTypeData(const UINT16 appInfoType, UINT8* dataBuf, UINT16 { vobcToCiDataStru->chWashMachineWorkMode = dataBuf[ii]; ii += 1U; + chRetVal = CoupingWashStopStedInfoCheck(dataBuf[ii]); } else { chRetVal = CI_ERROR; } + + if (CI_SUCCESS == chRetVal) + { + vobcToCiDataStru->couplingWashStopSteadyInfo = dataBuf[ii]; + ii += 1U; + } + else + { + chRetVal = CI_ERROR; + } + } else if ((VOBC_CI_INFO_TYPE_HEART_FRAME == appInfoType) || (VOBC_CI_INFO_TYPE_LOGOUT_ASK == appInfoType)) {/*֡ע֡*/ @@ -14049,20 +14165,22 @@ void PackVobcBlocLinkData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcToCiDataStr UINT8 k = 0U; UINT32 dwTempHLHTId = 0U; UINT8 chEsbPLState = 0U; - wIndex = *ii; + if ((NULL != CiToVobcDataBuffer) && (NULL != ii) && (NULL != vobcToCiDataStru)) { + wIndex = *ii; + /*жǷƥ䵽·δƥ䵽·Ӧ*/ chRouteNum = GetBlocLinkRouteNum(vobcToCiDataStru->VobcId); pRouteBuf = GetBlocLinkRouteBuf(vobcToCiDataStru->VobcId); - debug_infor_printf((const)"\nVOBC %d BlocLink RouteNum: %d\n", VobcToCiDataStru->VobcId, chRouteNum); - for (k = 0U;k< chRouteNum;k++) - { - debug_infor_printf((const)"\nRouteID: %d\n", pRouteBuf[k]); - } - + if ((0U < chRouteNum) && (CI_VOBC_ROUTE_MAX >= chRouteNum) && (NULL != pRouteBuf)) { + for (k = 0U; k < chRouteNum; k++) + { + debug_infor_printf((const)"\nBlocLinkRouteID: %d\n", pRouteBuf[k]); + } + /*1 һCIͨ*/ PackNextCiId(CiToVobcDataBuffer, &wIndex,vobcToCiDataStru); @@ -14081,7 +14199,7 @@ void PackVobcBlocLinkData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcToCiDataStr { LongToChar(dwTempHLHTId, &CiToVobcDataBuffer[wIndex]); /*ID*/ wIndex += 4U; - chTempState = GetSwitchCurPosition(wSwitchBuffer[k]); /*״̬D*/ + chTempState = GetSwitchCurPosition(wSwitchBuffer[k]); /*״̬*/ if (SWITCH_POSITION_DINGWEI == chTempState) { CiToVobcDataBuffer[wIndex++] = CI_IVOC_SWITCH_POSTION_DING; @@ -14114,7 +14232,7 @@ void PackVobcBlocLinkData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcToCiDataStr { LongToChar(dwTempHLHTId, &CiToVobcDataBuffer[wIndex]); /*ID*/ wIndex += 4U; - CiToVobcDataBuffer[wIndex++] = GetPsdStateToVobc(wTempBuffer[k]); /*״̬D*/ + CiToVobcDataBuffer[wIndex++] = GetPsdStateToVobc(wTempBuffer[k]); /*״̬*/ } else { @@ -14161,17 +14279,8 @@ void PackVobcBlocLinkData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcToCiDataStr wIndex += 2U; for (k = 0U; k < chTempNum; k++) { - chRet = dquQueryOutDevId(QFUN_IDMAP_SPKS_ID, wTempBuffer[k], &dwTempHLHTId); - if (CI_SUCCESS == chRet) - { - LongToChar(dwTempHLHTId, &CiToVobcDataBuffer[wIndex]); /*ID*/ - wIndex += 4U; - } - else - { - LongToChar(0U, &CiToVobcDataBuffer[wIndex]); /*Чֵ*/ - wIndex += 4U; - } + LongToChar(wTempBuffer[k], &CiToVobcDataBuffer[wIndex]); /*ID*/ + wIndex += 4U; } /*7 ·ʱϢ*/ @@ -14450,7 +14559,13 @@ static UINT8 PackMoveAuthorityData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcTo UINT8 chRet = CI_ERROR; UINT16* pRouteBuf = NULL; UINT8 chRouteNum = 0U; - + UINT8 chTempState = 0U; + UINT8 chRouteDir = 0U; + UINT16 wRouteLastPhy = 0U; + UINT16 wLogBelongPhyId = 0U; + UINT8 chTrainDir = 0U; + struct_PathPoint end = { 0U }; /*г߼յ*/ + UINT16 wEndLogSecId = 0U; if ((NULL != CiToVobcDataBuffer) && (NULL != ii) && (NULL != vobcToCiDataStru)) { wIndex = *ii; @@ -14458,117 +14573,29 @@ static UINT8 PackMoveAuthorityData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcTo chRouteNum = GetBlocLinkRouteNum(vobcToCiDataStru->VobcId); pRouteBuf = GetBlocLinkRouteBuf(vobcToCiDataStru->VobcId); if ((NULL != pRouteBuf) && (0U < chRouteNum)) - { - chRet = CI_SUCCESS; - wEndSigId = GetRouteEndSignalId(pRouteBuf[chRouteNum - 1U]); /*ƥն˽·նźŻ*/ - wOverLapId = GetRouteOverlapLockedId(pRouteBuf[chRouteNum - 1U]); - chFlag = OverlapValidMaskCheck(wOverLapId); + { + chTempState = GetRouteType(pRouteBuf[chRouteNum - 1U]); + chRouteDir = GetRouteConfigDirection(pRouteBuf[chRouteNum - 1U]); + chTrainDir = GetAblTrainDir(vobcToCiDataStru->VobcId); + wRouteLastPhy = GetRouteLastPhySectionId(pRouteBuf[chRouteNum - 1U]); + + /*ͷλ*/ + end.wLinkId = GetAblTrainMaxHeadLink(vobcToCiDataStru->VobcId); + end.dwOffset = GetAblTrainMaxHeadOffset(vobcToCiDataStru->VobcId); + wEndLogSecId = GetPointBelongLogSec(end); + wLogBelongPhyId = GetLgcSecRelativePhySecId(wEndLogSecId); - if (CI_SUCCESS == chFlag) + /**·۷·ķ·ͬڽ·**/ + if ((ROUTE_TYPE_RETURN == chTempState) && (chRouteDir != chTrainDir) && (wRouteLastPhy == wLogBelongPhyId)) { - /*·Ч*/ - chSigProtectDir = GetSignalDirection(wEndSigId); /*źŻ*/ - chOverlapLogSum = GetOverlapLogicSectionSum(wOverLapId); - pOverlapLogBuf = GetOverlapLogicSectionBuf(wOverLapId); - if ((NULL != pOverlapLogBuf) && (0U < chOverlapLogSum) && (OVLP_LOGICSECTION_SUM_MAX > chOverlapLogSum)) - { - if (LINK_DIRECTION == chSigProtectDir) - { - /*նźŻlinkһ£ȫȡյlink,link*/ - wLinkId = GetLgcSecTmnlLink(pOverlapLogBuf[chOverlapLogSum - 1U]); - chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); - if (CI_SUCCESS == chRet) - { - /***鰲ȫλ*/ - LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - dwlinkLength = GetLgcSecTmnlOffset(pOverlapLogBuf[chOverlapLogSum - 1U]); - LongToChar(dwlinkLength, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - - /*նźŻlinkһ£ϰȡlink,0*/ - wLinkId = GetLgcSecOrgnLink(pOverlapLogBuf[0U]); - chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); - if (CI_SUCCESS == chRet) - { - /***ϰλ*/ - LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - LongToChar(0U, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - - } - else - { - chRet = CI_ERROR; - } - - } - else - { - chRet = CI_ERROR; - } - - } - else if (NOT_LINK_DIRECTION == chSigProtectDir) - { - /*նźŻlink෴ȫȡlink,0*/ - wLinkId = GetLgcSecOrgnLink(pOverlapLogBuf[chOverlapLogSum - 1U]); - chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); - if (CI_SUCCESS == chRet) - { - /***鰲ȫλ*/ - LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - LongToChar(0U, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - - /*նźŻlink෴ϰȡlink,link*/ - wLinkId = GetLgcSecTmnlLink(pOverlapLogBuf[0U]); - chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); - if (CI_SUCCESS == chRet) - { - /***ϰλ*/ - LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - dwlinkLength = GetLgcSecTmnlOffset(pOverlapLogBuf[chOverlapLogSum - 1U]); - LongToChar(dwlinkLength, &CiToVobcDataBuffer[wIndex]); - wIndex += 4U; - } - else - { - chRet = CI_ERROR; - } - } - else - { - chRet = CI_ERROR; - } - - - } - else - { - chRet = CI_ERROR; - } - } - else - { - chRet = CI_ERROR; - } - } - else - { - /*鰲ȫΪ·նźŻlink,linkƫ*/ - wLinkId = GetSignalProtectLink(wEndSigId); - chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); + /*һ·֮δƥ䵽۳·ȫ鳵ĴǰϰĬֵ*/ + chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, vobcToCiDataStru->strBlocLinkData.wTrainMaxSafeHeadLink, &dwLinkHLHTId); if (CI_SUCCESS == chRet) { /***鰲ȫλ*/ LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); wIndex += 4U; - dwlinkLength = GetSignalProtectLinkOff(wEndSigId); - LongToChar(dwlinkLength, &CiToVobcDataBuffer[wIndex]); + LongToChar(vobcToCiDataStru->strBlocLinkData.dwTrainMaxSafeHeadOffset, &CiToVobcDataBuffer[wIndex]); wIndex += 4U; /***ϰĬֵ*/ @@ -14583,7 +14610,134 @@ static UINT8 PackMoveAuthorityData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcTo } } + else + { + chRet = CI_SUCCESS; + wEndSigId = GetRouteEndSignalId(pRouteBuf[chRouteNum - 1U]); /*ƥն˽·նźŻ*/ + wOverLapId = GetRouteOverlapLockedId(pRouteBuf[chRouteNum - 1U]); + chFlag = OverlapValidMaskCheck(wOverLapId); + + if (CI_SUCCESS == chFlag) + { + /*·Ч*/ + chSigProtectDir = GetSignalDirection(wEndSigId); /*źŻ*/ + chOverlapLogSum = GetOverlapLogicSectionSum(wOverLapId); + pOverlapLogBuf = GetOverlapLogicSectionBuf(wOverLapId); + if ((NULL != pOverlapLogBuf) && (0U < chOverlapLogSum) && (OVLP_LOGICSECTION_SUM_MAX > chOverlapLogSum)) + { + if (LINK_DIRECTION == chSigProtectDir) + { + /*նźŻlinkһ£ȫȡյlink,link*/ + wLinkId = GetLgcSecTmnlLink(pOverlapLogBuf[chOverlapLogSum - 1U]); + chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); + if (CI_SUCCESS == chRet) + { + /***鰲ȫλ*/ + LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + dwlinkLength = GetLgcSecTmnlOffset(pOverlapLogBuf[chOverlapLogSum - 1U]); + LongToChar(dwlinkLength, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + + /*նźŻlinkһ£ϰȡlink,0*/ + wLinkId = GetLgcSecOrgnLink(pOverlapLogBuf[0U]); + chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); + if (CI_SUCCESS == chRet) + { + /***ϰλ*/ + LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + LongToChar(0U, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + + } + else + { + chRet = CI_ERROR; + } + + } + else + { + chRet = CI_ERROR; + } + + } + else if (NOT_LINK_DIRECTION == chSigProtectDir) + { + /*նźŻlink෴ȫȡlink,0*/ + wLinkId = GetLgcSecOrgnLink(pOverlapLogBuf[chOverlapLogSum - 1U]); + chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); + if (CI_SUCCESS == chRet) + { + /***鰲ȫλ*/ + LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + LongToChar(0U, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + + /*նźŻlink෴ϰȡlink,link*/ + wLinkId = GetLgcSecTmnlLink(pOverlapLogBuf[0U]); + chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); + if (CI_SUCCESS == chRet) + { + /***ϰλ*/ + LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + dwlinkLength = GetLgcSecTmnlOffset(pOverlapLogBuf[chOverlapLogSum - 1U]); + LongToChar(dwlinkLength, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + } + else + { + chRet = CI_ERROR; + } + } + else + { + chRet = CI_ERROR; + } + + + } + else + { + chRet = CI_ERROR; + } + } + else + { + chRet = CI_ERROR; + } + } + else + { + /*鰲ȫΪ·նźŻlink,linkƫ*/ + wLinkId = GetSignalProtectLink(wEndSigId); + chRet = dquQueryOutDevId(QFUN_IDMAP_TRACKSEC_ID, wLinkId, &dwLinkHLHTId); + if (CI_SUCCESS == chRet) + { + /***鰲ȫλ*/ + LongToChar(dwLinkHLHTId, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + dwlinkLength = GetSignalProtectLinkOff(wEndSigId); + LongToChar(dwlinkLength, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + + /***ϰĬֵ*/ + LongToChar(0U, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + LongToChar(UINT32_MAX, &CiToVobcDataBuffer[wIndex]); + wIndex += 4U; + } + else + { + chRet = CI_ERROR; + } + + } + } if (CI_SUCCESS == chRet) { *ii = wIndex; /**/ @@ -14592,6 +14746,7 @@ static UINT8 PackMoveAuthorityData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcTo { /**/ } + } else { @@ -15580,7 +15735,7 @@ static UINT8 GetPathFloodGateData(UINT16* pPathTempBuf, const UINT16 wTrainId) wLogBelongPhyId = GetLgcSecRelativePhySecId(pLogSecBuf[j]); chFloodGateNum = GetPhySecLocatedFloodSum(wLogBelongPhyId); phFloodGateBuf = GetPhySecLocatedFloodId(wLogBelongPhyId); - if ((CI_VOBC_OTHER_EQUIPMENT_MAX > (chTempNum + chFloodGateNum)) && (NULL != phFloodGateBuf)) + if ((((UINT16)CI_VOBC_OTHER_EQUIPMENT_MAX) > (((UINT16)chTempNum) + chFloodGateNum)) && (NULL != phFloodGateBuf)) { for (m = 0U;m < chFloodGateNum;m++) { @@ -15624,7 +15779,7 @@ static UINT8 GetPathFloodGateData(UINT16* pPathTempBuf, const UINT16 wTrainId) { chFloodGateNum = GetPhySecLocatedFloodSum(pRoutePhyBuf[k].PhysicalSectionId); phFloodGateBuf = GetPhySecLocatedFloodId(pRoutePhyBuf[k].PhysicalSectionId); - if ((CI_VOBC_OTHER_EQUIPMENT_MAX > (chTempNum + chFloodGateNum)) && (NULL != phFloodGateBuf)) + if ((((UINT16)CI_VOBC_OTHER_EQUIPMENT_MAX) > (((UINT16)chTempNum) + chFloodGateNum)) && (NULL != phFloodGateBuf)) { for (m = 0U; m < chFloodGateNum; m++) { @@ -15689,7 +15844,7 @@ static UINT8 GetPathFloodGateData(UINT16* pPathTempBuf, const UINT16 wTrainId) { chFloodGateNum = GetPhySecLocatedFloodSum(pOverLapPhyBuf[k]); phFloodGateBuf = GetPhySecLocatedFloodId(pOverLapPhyBuf[k]); - if ((CI_VOBC_OTHER_EQUIPMENT_MAX > (chTempNum + chFloodGateNum)) && (NULL != phFloodGateBuf)) + if ((((UINT16)CI_VOBC_OTHER_EQUIPMENT_MAX) > (((UINT16)chTempNum) + chFloodGateNum)) && (NULL != phFloodGateBuf)) { for (m = 0U; m < chFloodGateNum; m++) { @@ -15744,7 +15899,7 @@ static UINT8 GetPathFloodGateData(UINT16* pPathTempBuf, const UINT16 wTrainId) static UINT8 GetDestinationType(UINT8 chRouteNum, UINT16* pRouteBuf) { UINT8 chTempState = 0U; - UINT8 chRet = 0U; + UINT8 chRet = 0xff; if ((NULL != pRouteBuf) && (CI_VOBC_ROUTE_MAX >= chRouteNum) && (0U < chRouteNum)) { chTempState = GetRouteType(pRouteBuf[chRouteNum - 1U]); @@ -15832,45 +15987,54 @@ static UINT8 PackCiToIvocComErrRcInfo(UINT8* pDataBuf, UINT16* wDataLength) chTransRciSum = GetCiTransmitSpecifySysDevSum(CI_SYSTEM_TYPE_RC); pTransRciId = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_RC); - /*ݺϷ*/ - if (NULL != pTransRciId) + if (0U == chTransRciSum) { + /*RCûRCRCĿ0*/ chRetVal = CI_SUCCESS; - - for (jj = 0U; jj < chTransRciSum; jj++) - { - chNearRciCommState = GetCiTransmitState(CI_SYSTEM_TYPE_RC, jj); /*ȡRCͨ״̬*/ - - /*ͨ*/ - if ((TRANSMIT_2OO2_STATE_GOOD == chNearRciCommState) || (TRANSMIT_2OO2_STATE_LINK == chNearRciCommState)) - { - ; - } - else - { - /*ǰͨŹRCĿδ*/ - if (CI_IVOC_COM_ERR_RC_NUM_MAX > chComErrRcNum) - { - /*ͨŹϣ¼ǰRC ID*/ - wComRcId = ((CI_SYSTEM_TYPE_RC << 8U) || pTransRciId[jj]); - ShortToChar(wComRcId, &pDataBuf[ii]); - ii += 2U; - chComErrRcNum++; - } - else - { - chRetVal = CI_ERROR; - debug_infor_printf((const)"\n PackCiToIvocComErrRcInfo Error: chComErrRcNum more than Max\n"); - break; - } - } - } } else { - /*ݴ*/ - ; + /*ݺϷ*/ + if (NULL != pTransRciId) + { + chRetVal = CI_SUCCESS; + + for (jj = 0U; jj < chTransRciSum; jj++) + { + chNearRciCommState = GetCiTransmitState(CI_SYSTEM_TYPE_RC, pTransRciId[jj]); /*ȡRCͨ״̬*/ + + /*ͨ*/ + if (TRANSMIT_STATE_GOOD == chNearRciCommState) + { + ; + } + else + { + /*ǰͨŹRCĿδ*/ + if (CI_IVOC_COM_ERR_RC_NUM_MAX > chComErrRcNum) + { + /*ͨŹϣ¼ǰRC ID*/ + wComRcId = (UINT16)((CI_SYSTEM_TYPE_RC << 8U) | pTransRciId[jj]); + ShortToChar(wComRcId, &pDataBuf[ii]); + ii += 2U; + chComErrRcNum++; + } + else + { + chRetVal = CI_ERROR; + debug_infor_printf((const)"\n PackCiToIvocComErrRcInfo Error: chComErrRcNum more than Max\n"); + break; + } + } + } + } + else + { + /*ݴ*/ + ; + } } + } diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.c b/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.c index 98cc0c5..f42adca 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.c +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.c @@ -74,8 +74,8 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId) zcName = (CI_SYSTEM_TYPE_ZC)*256U + systemId; ciName = (CI_SYSTEM_TYPE_RCI)*256U + localCiId; curntCycleNo = Get2oo2CurCycleNum(); - chDataType = GetLocalPublicDataType(); /*28.0.0.14·zcӿ*/ - if ((NULL != dataBuf) && (dataLength > 0u)) + chDataType = GetLocalPublicDataType(); /*ַ֧zcӿ*/ + if ((NULL != dataBuf) && (0U < dataLength)) { sourceId = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_ZC);/*ȡ뱾ͨŵZCIDĿǰһֻһZCͨ*/ @@ -119,7 +119,7 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId) /*ϢʱЧ*/ zcInfoRemainValidity = HLHTCommonMsgRemainingValidity(GetCiAndZcTransmitBadEnsureTime(), curntCycleNo, GetSystemParaAppCycleTime(), hlhtGalHead.recvOppMsgSN, hlhtGalHead.crntOwnMsgSN, hlhtGalHead.preOwnMsgSN, hlhtGalHead.comPeriod); - if (zcInfoRemainValidity > 0) + if (0 < zcInfoRemainValidity) { if (0u == hlhtGalHead.totalDataLen) { @@ -135,162 +135,247 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId) { /*Ч*/ retVal = CI_SUCCESS; + if (DATA_TYPE_MAIN_BRANCH == chDataType) { - if (DATA_TYPE_MAIN_BRANCH == chDataType) + while (wTmpDataLen < hlhtGalHead.totalDataLen) { - while (wTmpDataLen < hlhtGalHead.totalDataLen) + /* һӦݳ */ + wMsgLen = ShortFromChar(&dataBuf[ii]); + + ii += 2u; + wTmpDataLen += 2U; + wTmpDataLen += wMsgLen; + + if (0u == wMsgLen) { - /* һӦݳ */ - wMsgLen = ShortFromChar(&dataBuf[ii]); - + ; /* ޴һ */ + } + else if (5u > wMsgLen) + { + /* Ȳ */ + retVal = CI_ERROR; + debug_infor_printf((const)"ParseZcToCiDataFrame_Error wMsgLen\n"); + } + else + { + /* ȡ */ + wMsgType = ShortFromChar(&dataBuf[ii]); ii += 2u; - wTmpDataLen += 2U; - wTmpDataLen += wMsgLen; - if (0u == wMsgLen) + /* Ԥ */ + ii += 2u; + + wMsgCheckLen = wMsgLen - 4u;/*ӦñĽȣɾԤ22ֽ*/ + switch (wMsgType) { - ; /* ޴һ */ - } - else if (5u > wMsgLen) - { - /* Ȳ */ + case ZC_TO_TIOC_MASK_MSG: + /* ZC-CIλϢ */ + retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen); + dwStep |= 0x10000U; + break; + case ZC_TO_TIOC_TSR_MSG: + /* ʱϢ */ + retVal = ParseZcTsrData(&dataBuf[ii], wMsgCheckLen); + dwStep |= 0x01000U; + break; + case ZC_TO_TIOC_WLB_MSG: + /* ƶϢ */ + retVal = ParseZcEbData(&dataBuf[ii], wMsgCheckLen); + dwStep |= 0x00100U; + break; + case ZC_TO_TIOC_SNOW_MSG: + /*ZC-CIѩģʽϢ*/ + retVal = ParseZcSnowData(&dataBuf[ii], wMsgCheckLen); + dwStep |= 0x00010U; + break; + case ZC_TO_TIOC_ITELINECUT_MSG: + /*ZC-CIITEгϢ*/ + retVal = ParseZcIteCutData(&dataBuf[ii], wMsgCheckLen); + dwStep |= 0x00001U; + break; + case ZC_TO_RC_CBTC_CROSS_MSG: + /*ZC-CICBTCгѹϢ*/ + retVal = ParseZcCbtcCrossData(&dataBuf[ii], wMsgCheckLen); + dwStep |= 0x00002U; + break; + default: retVal = CI_ERROR; - debug_infor_printf((const)"ParseZcToCiDataFrame_Error wMsgLen\n"); - } - else - { - /* ȡ */ - wMsgType = ShortFromChar(&dataBuf[ii]); - ii += 2u; - - /* Ԥ */ - ii += 2u; - - wMsgCheckLen = wMsgLen - 4u;/*ӦñĽȣɾԤ22ֽ*/ - switch (wMsgType) - { - case ZC_TO_TIOC_MASK_MSG: - /* ZC-CIλϢ */ - retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen); - dwStep |= 0x10000U; - break; - case ZC_TO_TIOC_TSR_MSG: - /* ʱϢ */ - retVal = ParseZcTsrData(&dataBuf[ii], wMsgCheckLen); - dwStep |= 0x01000U; - break; - case ZC_TO_TIOC_WLB_MSG: - /* ƶϢ */ - retVal = ParseZcEbData(&dataBuf[ii], wMsgCheckLen); - dwStep |= 0x00100U; - break; - case ZC_TO_TIOC_SNOW_MSG: - /*ZC-CIѩģʽϢ*/ - retVal = ParseZcSnowData(&dataBuf[ii], wMsgCheckLen); - dwStep |= 0x00010U; - break; - case ZC_TO_TIOC_ITELINECUT_MSG: - /*ZC-CIITEгϢ*/ - retVal = ParseZcIteCutData(&dataBuf[ii], wMsgCheckLen); - dwStep |= 0x00001U; - break; - case ZC_TO_RC_CBTC_CROSS_MSG: - /*ZC-CICBTCгѹϢ*/ - retVal = ParseZcCbtcCrossData(&dataBuf[ii], wMsgCheckLen); - dwStep |= 0x00002U; - break; - default: - retVal = CI_ERROR; - break; - } - - if (CI_SUCCESS == retVal) - { - /* ɹݰ */ - ii += wMsgCheckLen; - } - else - { - debug_infor_printf((const)"ParseZcToCiDataFrame_Error Step: 0x%5x\n", dwStep); - ClearZcData(); /*ⲽûͨ*/ - } - } - - if (CI_ERROR == retVal) /*ʧ*/ - { break; } + + if (CI_SUCCESS == retVal) + { + /* ɹݰ */ + ii += wMsgCheckLen; + } else { - ; /*do nothing*/ + debug_infor_printf((const)"ParseZcToCiDataFrame_Error Step: 0x%5x\n", dwStep); + ClearZcData(); /*ⲽûͨ*/ } } - if (CI_SUCCESS == retVal) + + if (CI_ERROR == retVal) /*ʧ*/ { - /*Уݳ*/ - if (ii > dataLength) + break; + } + else + { + ; /*do nothing*/ + } + } + if (CI_SUCCESS == retVal) + { + /*Уݳ*/ + if (ii > dataLength) + { + retVal = CI_ERROR; + } + } + } + else if (DATA_TYPE_28_BRANCH == chDataType) + { + /*28֧߱λ02010205*/ + while (wTmpDataLen < hlhtGalHead.totalDataLen) + { + /* һӦݳ */ + wMsgLen = ShortFromChar(&dataBuf[ii]); + ii += 2U; + wTmpDataLen += 2U; + wTmpDataLen += wMsgLen; + + if (5U > wMsgLen) + { + /* Ȳ */ + retVal = CI_ERROR; + debug_infor_printf((const)"ParseZcToCiDataFrame_Error wMsgLen\n"); + } + else + { + /* ȡ */ + wMsgType = ShortFromChar(&dataBuf[ii]); + ii += 2U; + /* Ԥ */ + ii += 2U; + wMsgCheckLen = wMsgLen - 4U; + + switch (wMsgType) { + case ZC_TO_TIOC_MASK_MSG: + { + /* ZC-CIλϢ */ + retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen); + } + break; + case ZC_TO_TIOC_SNOW_MSG: + { + /*ZC-CIѩģʽϢ*/ + retVal = ParseZcSnowData(&dataBuf[ii], wMsgCheckLen); + } + break; + default: retVal = CI_ERROR; + break; + } + + if (CI_SUCCESS == retVal) + { + /* ɹݰ */ + ii += wMsgCheckLen; + } + else + { + debug_infor_printf((const)"ParseZcToCiDataFrame_Error MsgType: %d\n", wMsgType); + ClearZcData(); /*ⲽûͨ*/ } } + + if (CI_ERROR == retVal) /*ʧ*/ + { + break; + } + else + { + ; /*do nothing*/ + } + + } + if (CI_SUCCESS == retVal) + { + /*Уݳ*/ + if (ii > dataLength) + { + retVal = CI_ERROR; + } + } + } + else + { + /*23֧ޱ͡ͳȺԤ߱λ*/ + wMsgCheckLen = hlhtGalHead.totalDataLen; + retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen); + if (CI_ERROR == retVal) + { + debug_infor_printf((const)"\nParseZcToCiDataFrame_Error MaskOnly\n"); + ClearZcData(); /*ûͨ*/ } else { - /*ޱ͡ͳȺԤ߱λ0201*/ - wMsgCheckLen = hlhtGalHead.totalDataLen; - retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen); - if (CI_ERROR == retVal) - { - debug_infor_printf((const)"\nParseZcToCiDataFrame_Error MaskOnly\n"); - ClearZcData(); /*ûͨ*/ - } - else - { - ; /**/ - } + ii += wMsgCheckLen; /**/ } - - if (CI_SUCCESS == retVal) + } + if (CI_SUCCESS == retVal) + { + if (hlhtGalHead.totalDataLen != (ii - 31U)) { - /*ͨ*/ - dwCurCyc = Get2oo2CurCycleNum(); - funRet = SetCiTransmitRecvDataCycNum(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0], dwCurCyc); - if (CI_ERROR == funRet) - {/*ʧ*/ + retVal = CI_ERROR; + debug_infor_printf((const)"\nParseZcToCiDataFrame_Error totalDataLen\n"); + } + else + { + /**/ + } + } + if (CI_SUCCESS == retVal) + { + /*ͨ*/ + dwCurCyc = Get2oo2CurCycleNum(); + funRet = SetCiTransmitRecvDataCycNum(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0U], dwCurCyc); + if (CI_ERROR == funRet) + {/*ʧ*/ + } + else + {/*ڳɹ*/ + + /*ZCͨ״̬жZCǷͨж*/ + funRet = UpdateCiTransmitState(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0U]); + if (CI_ERROR == funRet) + { + /*ͨ״̬ʧ*/ } else - {/*ڳɹ*/ - - /*ZCͨ״̬жZCǷͨж*/ - funRet = UpdateCiTransmitState(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0]); - if (CI_ERROR == funRet) - { - /*ͨ״̬ʧ*/ - } - else - { - /*ͨ״̬ɹ*/ - } + { + /*ͨ״̬ɹ*/ } - - /*ݾУ飬Ҫ洢ͨñ*/ - SetHLHTHeadCtxComPeriod(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.comPeriod); - SetHLHTHeadCtxSrcCrntSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.crntOwnMsgSN); - SetHLHTHeadCtxSrcOppSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.recvOppMsgSN); - SetHLHTHeadCtxSrcOwnSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.preOwnMsgSN); - SetHLHTHeadCtxCiRcvSN(CI_SYSTEM_TYPE_ZC, systemId, curntCycleNo); - SetHLHTHeadCtxCiRcvLogId(CI_SYSTEM_TYPE_ZC, systemId, 0u); - - galHeadSaved = 1; } + + /*ݾУ飬Ҫ洢ͨñ*/ + SetHLHTHeadCtxComPeriod(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.comPeriod); + SetHLHTHeadCtxSrcCrntSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.crntOwnMsgSN); + SetHLHTHeadCtxSrcOppSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.recvOppMsgSN); + SetHLHTHeadCtxSrcOwnSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.preOwnMsgSN); + SetHLHTHeadCtxCiRcvSN(CI_SYSTEM_TYPE_ZC, systemId, curntCycleNo); + SetHLHTHeadCtxCiRcvLogId(CI_SYSTEM_TYPE_ZC, systemId, 0u); + + galHeadSaved = 1U; } } } } else if (HLHT_HEAD_INIT ==headRet) { - if (curntCycleNo > 0u)/*жŴ0Ϊ0Ч*/ + if (0U < curntCycleNo)/*жŴ0Ϊ0Ч*/ { SetHLHTHeadCtxComPeriod(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.comPeriod); SetHLHTHeadCtxSrcCrntSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.crntOwnMsgSN); @@ -299,7 +384,7 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId) SetHLHTHeadCtxCiRcvSN(CI_SYSTEM_TYPE_ZC, systemId, curntCycleNo); SetHLHTHeadCtxCiRcvLogId(CI_SYSTEM_TYPE_ZC, systemId, 0u); - galHeadSaved = 1; + galHeadSaved = 1U; } retVal = CI_ERROR; @@ -1061,24 +1146,24 @@ UINT8 ParseZcSnowData(UINT8* dataBuf, UINT16 dataLen) */ UINT8 PackCiToZcData( UINT8 deviceId) { - UINT8 localCi = 0u; /*ID*/ - UINT8 CiToZcDataBuffer[CI_TO_ZC_DATA_LEN_MAX] = {0u};/*CIZC֡*/ - UINT16 SendMaskSum = 0u; - UINT16 ii = 0u; - UINT32 ciEtcsId = 0u; /*CIͨ*/ - UINT32 zcEtcsId = 0u; /*ZCͨ*/ - UINT32 emapCheckVer = 0u; /*УϢ*/ + UINT8 localCi = 0U; /*ID*/ + UINT8 CiToZcDataBuffer[CI_TO_ZC_DATA_LEN_MAX] = {0U};/*CIZC֡*/ + UINT16 SendMaskSum = 0U; + UINT16 ii = 0U; + UINT32 ciEtcsId = 0U; /*CIͨ*/ + UINT32 zcEtcsId = 0U; /*ZCͨ*/ + UINT32 emapCheckVer = 0U; /*УϢ*/ UINT8 retVal = CI_ERROR; UINT32 curCycleNum = Get2oo2CurCycleNum(); /*Ӧں*/ UINT32 appCycleTime = GetSystemParaAppCycleTime(); /*Ӧ*/ - UINT8 ci_zcPrtclVersion = 0u; - UINT16 dstDevId = 0; - UINT8 outnetSafeSendRtn = 0u; + UINT8 ci_zcPrtclVersion = 0U; + UINT16 dstDevId = 0U; + UINT8 outnetSafeSendRtn = 0U; UINT8 CIName2HlhtId = 0U; UINT8 ZCName2HlhtId = 0U; UINT8 CiEmapCheckVer = 0U; - UINT32 dwHlhtHSrcSN = 0u; - UINT32 dwHlhtHRcvSN = 0u; + UINT32 dwHlhtHSrcSN = 0U; + UINT32 dwHlhtHRcvSN = 0U; UINT16 totallenIndex = 0U; UINT16 wCrossFrameLen = 0U; UINT8 chDataType = 0U; @@ -1104,16 +1189,16 @@ UINT8 PackCiToZcData( UINT8 deviceId) if ((CI_SUCCESS == retVal)) { /*ȡҪ͵λֽ*/ - if ((GetSendMaskSum(CI_SYSTEM_TYPE_ZC) % 8u) == 0u) + if (0U == (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) % 8U)) { - SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8u); + SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8U); } else { - SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8u + 1u); + SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8U + 1U); } - if (0u == SendMaskSum) + if (0U == SendMaskSum) { retVal = CI_ERROR; } @@ -1131,21 +1216,21 @@ UINT8 PackCiToZcData( UINT8 deviceId) /*ʼӦ֡*/ /*GALͷ*/ ShortToChar(CI_ZC_INTERFACE_INFOTYPE, &CiToZcDataBuffer[ii]);/*ӿϢ*/ - ii += 2u; + ii += 2U; LongToChar(ciEtcsId, &CiToZcDataBuffer[ii]);/*ͷʶϢ*/ - ii += 4u; + ii += 4U; LongToChar(zcEtcsId, &CiToZcDataBuffer[ii]);/*շʶϢ*/ - ii += 4u; + ii += 4U; LongToChar(emapCheckVer, &CiToZcDataBuffer[ii]);/*ӵͼ汾УϢ*/ - ii += 4u; + ii += 4U; LongToChar(curCycleNum, &CiToZcDataBuffer[ii]);/*Ϣк*/ - ii += 4u; + ii += 4U; ShortToChar((UINT16)appCycleTime, &CiToZcDataBuffer[ii]);/*豸ͨѶ*/ - ii += 2u; + ii += 2U; LongToChar(dwHlhtHSrcSN, &CiToZcDataBuffer[ii]);/*ԷϢкţrecvOppMsgSN¼յԷһϢеĶԷϢк*/ - ii += 4u; + ii += 4U; LongToChar(dwHlhtHRcvSN, &CiToZcDataBuffer[ii]);/*յһϢʱк*/ - ii += 4u; + ii += 4U; lineIdentity = GetCiFunctionSwitchConfig(VOBC_INTERFACE_IDENTITY);/*ȡ·ʶ*/ @@ -1159,20 +1244,22 @@ UINT8 PackCiToZcData( UINT8 deviceId) } totallenIndex = ii; - ii += 2u;/*ͨñͷеӦò㱨ܳ*/ - if (DATA_TYPE_MAIN_BRANCH == chDataType) + ii += 2U;/*ͨñͷеӦò㱨ܳ*/ + + if ((DATA_TYPE_MAIN_BRANCH == chDataType) || (DATA_TYPE_28_BRANCH == chDataType)) { - ii += 2u;/*ͨñͷеӦò㱨ij(0x202ij)*/ + ii += 2U;/*ͨñͷеӦò㱨ij(0x202ij)*/ ShortToChar(TIOC_TO_ZC_MASK_MSG, &CiToZcDataBuffer[ii]);/*ӿϢ*/ - ii += 2u; + ii += 2U; - ii += 2u; /*Ԥ*/ + ii += 2U; /*Ԥ*/ } else { - ;/*·0x202ijȡͼԤ*/ + /*23֧0x202ijȡͼԤ*/ } + /*λϢ*/ (void)MaskPack(CI_SYSTEM_TYPE_ZC,&CiToZcDataBuffer[ii]); @@ -1182,27 +1269,33 @@ UINT8 PackCiToZcData( UINT8 deviceId) { /*ͨӦò㱨ij(0x202ij)*/ /*ȥ2ֽӦñܳ+2ֽ0202֡*/ - ShortToChar((ii - (totallenIndex + 4u)), &CiToZcDataBuffer[totallenIndex + 2u]); + ShortToChar((ii - (totallenIndex + 4U)), &CiToZcDataBuffer[totallenIndex + 2U]); /*TACSгѹϢ*/ wCrossFrameLen = PackRcTacsCrossData(&CiToZcDataBuffer[ii]); ii += wCrossFrameLen; } + else if(DATA_TYPE_28_BRANCH == chDataType) + { + /*ͨӦò㱨ij(0x202ij)*/ + /*ȥ2ֽӦñܳ+2ֽ0202֡*/ + ShortToChar((ii - (totallenIndex + 4U)), &CiToZcDataBuffer[totallenIndex + 2U]); + } else { - /*nothing*/ + /*23֧ nothing*/ } /*ͨñͷӦò㱨ܳ*/ /*ȥ2ֽӦñܳ*/ - ShortToChar(ii - (totallenIndex + 2u), &CiToZcDataBuffer[totallenIndex]); + ShortToChar(ii - (totallenIndex + 2U), &CiToZcDataBuffer[totallenIndex]); /*ZC*/ ClearZcData(); - dstDevId = (UINT16)(CI_SYSTEM_TYPE_ZC << 8) | ((UINT16)deviceId); - outnetSafeSendRtn = OutnetSafeSend(dstDevId, 0u, &CiToZcDataBuffer[0], ii); - if (1u == outnetSafeSendRtn) + dstDevId = (UINT16)(CI_SYSTEM_TYPE_ZC << 8U) | ((UINT16)deviceId); + outnetSafeSendRtn = OutnetSafeSend(dstDevId, 0U, &CiToZcDataBuffer[0U], ii); + if (1U == outnetSafeSendRtn) { /*дгɹ*/ #ifdef LOGPRINT/*־ӡ*/ #ifdef PLATFORM_2OO2/*2oo2ƽ̨ӡ*/ @@ -1300,7 +1393,7 @@ static UINT16 PackRcTacsCrossData(UINT8 *pDataBuf) /*Ƿֵ*/ if ((0u < wSignalId) && (CROSS_SIGNAL_ID_MAX >= wSignalId) && (0u < wCrossTacsTrainId) && (TACS_CROSS_ID_MAX >= wCrossTacsTrainId) - && (ALL_TACS_CROSS_SUM_MAX >= wTacsCrossTrainSum)) + && (ALL_TACS_CROSS_SUM_MAX > wTacsCrossTrainSum)) { /*TACSгIDЧֵ*/ wTacsCrossSignalBuf[wTacsCrossTrainSum] = wSignalId; @@ -1348,14 +1441,6 @@ static UINT16 PackRcTacsCrossData(UINT8 *pDataBuf) /*ֵ*/ ShortToChar((Index - 2u), &pDataBuf[0u]); - /*ӡ*/ - debug_infor_printf((const)"SendTacsCross Len=%d:", Index); - for (i = 0u; i < Index; i++) - { - debug_infor_printf((const)"%x-", pDataBuf[i]); - } - debug_infor_printf((const)"\n"); - return Index; } @@ -1583,6 +1668,8 @@ static UINT8 ParseZcCbtcCrossData(UINT8* pDataBuf, UINT16 dataLen) if (NULL != pDataBuf) { cRetVal = CI_SUCCESS; + ZcToCiDataStru.cRecvCbtcCrossFrameTag = CI_SUCCESS; + wCrossNum = pDataBuf[ii]; ii++; diff --git a/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.h b/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.h index bbbca0e..6f3367f 100644 --- a/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.h +++ b/TSCP/src/APP/ciapp/ParsePack/ParsePackZcData.h @@ -66,6 +66,7 @@ typedef struct S_ZcToCiDataStruct UINT8 cIteLineCutState; /* ITEȫг״̬ */ UINT8 cAreaIteCutNum; /*ITEг*/ UINT16 szAreaIteCutId[ALL_AREA_SNOW_SUM_MAX]; /*ITEгID*/ + UINT8 cRecvCbtcCrossFrameTag; /*յCBTCгѹϢ֡־*/ UINT8 wCbtcCrossNum; /*CBTCгѹ*/ UINT16 wCbtcCrossSignalId[ALL_CBTC_CROSS_SUM_MAX]; /*CBTCгѹźŻID*/ UINT8 wCbtcCrossTrainId[ALL_CBTC_CROSS_SUM_MAX]; /*CBTCгѹгID*/ diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c b/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c index de3aea2..c1aa19d 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.c @@ -112,6 +112,17 @@ static UINT8 NonReturnStruFromDquStr(DSU_AR_STRU* pNonReturn, NonAutoReturnConfi */ static UINT8 LinkSpecialEaDataInit(CHAR* FSName); + +/* +*: ͨݳʼ +*: +*: +*ֵ: 0 ʧ +* 1 ɹ +* by cgh 20260516 +*/ +static UINT8 RciSerialCommDataInit(void); + /********************************************* *ܣʼ̵еĽṹ壬ʼϵͳݡͨݣ * ʼվźŻ߼/ݡʼ豸̵ݡʼ/߼ݡ @@ -127,7 +138,6 @@ UINT8 RelayInit(CHAR* FSName) UINT8 tmpSpeedLimitType = 0u; /*ʽʱݶȡ*/ UINT8 localCiPattern = 0u; /*CIģʽ*/ UINT8 cLocalWorkType = 0U; /*عģʽ*/ - UINT8 chDataType = 0U; /*ݽṹ*/ (void)memset(&RelayData,0,sizeof(RelayDataStruct_Config)); (void)memset(&LSData,0,sizeof(LSDataStruct)); @@ -137,25 +147,12 @@ UINT8 RelayInit(CHAR* FSName) tmpSpeedLimitType = GetCiFunctionSwitchConfig(BLK_TEMP_SPEED_LIM_CONF); /*ȡʱ*/ - chDataType = GetLocalPublicDataType(); - if (DATA_TYPE_MAIN_BRANCH == chDataType) + /* ݽṹ */ + funcRtn = TransmitDataStructInitNew(FSName); + if (0u == funcRtn) { - /* ݽṹ */ - funcRtn = TransmitDataStructInitNew(FSName); + debug_infor_printf((const) "TransmitDataStructInitNew fail.\r\n"); } - else - { - /* ݽṹ */ - /*ʼͨŹϵݽṹ*/ - funcRtn = TransmitRelationDataStructInit(FSName); - if (0u == funcRtn) - { - debug_infor_printf((const)"TransmitRelationDataStructInit fail.\r\n"); - } - } - - - /* ȡOC豸ϵ*/ funcRtn *= ReadVirCIWithOCRelationData(FSName); @@ -516,6 +513,10 @@ UINT8 RelayInit(CHAR* FSName) /*ηʼ*/ funcRtn *= AxisSecProtectSwitchInit(); + if (0u == funcRtn) + { + debug_infor_printf((const)"AxisSecProtectSwitchInit fail.\r\n"); + } return funcRtn; } @@ -699,9 +700,6 @@ UINT8 SystemParameterStructInit(CHAR* FSName) /*һʱٱа*/ dquCICfgDtStr.SystemParaStrNew.MaxSectionOfTsr = pCbtcConfigDataStru.MaxSectionOfTsr; - /*IVOC-OCͨŹжʱ(ms)*/ - dquCICfgDtStr.SystemParaStrNew.IvocOcCommunicationErrorTime = pCbtcConfigDataStru.IvocOcCommunicationErrorTime; - /*OC-TMCͨŹжʱ䣨ms*/ dquCICfgDtStr.SystemParaStrNew.TmcOcCommunicationErrorTime = pCbtcConfigDataStru.TmcOcCommunicationErrorTime; @@ -874,59 +872,51 @@ UINT8 SwitchConfigDataStructInit(CHAR * FSName) rtnvalue = 0u; } /*ӵͼʼɹִ*/ - else + if (0U != rtnvalue) { - if (CI_TRADITION_RAILWAY == lineIdentity) + for (i = 0u; i= SWITCH_SUM_MAX) { - if (i >= SWITCH_SUM_MAX) + rtnvalue = 0u; + break; + } + rtnvalue = SwitchCfgDtStruFromDquPointStr(dsuStaticHeadStru.pPointStru + i, &dquCICfgDtStr.SwchCfgDtStr[i]); + + if (1u == rtnvalue) + { + rtnvalue = SwitchCfgDtStruFromLSProHostStr(&dquCICfgDtStr.SwchCfgDtStr[i]); + if (0u == rtnvalue) { - rtnvalue = 0u; + debug_infor_printf((const)"SwitchCfgDtStruFromLSProHostStr switch %d fail.\r\n", dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); break; } - rtnvalue = SwitchCfgDtStruFromDquPointStr(dsuStaticHeadStru.pPointStru+i,&dquCICfgDtStr.SwchCfgDtStr[i]); + else + { + } if (1u == rtnvalue) { - rtnvalue = SwitchCfgDtStruFromLSProHostStr(&dquCICfgDtStr.SwchCfgDtStr[i]); + rtnvalue = SwitchCfgLogTrackInitDquStr(dsuStaticHeadStru.pPointStru + i, &dquCICfgDtStr.SwchCfgDtStr[i]); if (0u == rtnvalue) { - debug_infor_printf((const)"SwitchCfgDtStruFromLSProHostStr switch %d fail.\r\n", dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); - break; - } - else - { - - } - if (1u == rtnvalue) - { - rtnvalue = SwitchCfgLogTrackInitDquStr(dsuStaticHeadStru.pPointStru+i,&dquCICfgDtStr.SwchCfgDtStr[i]); - if(0u == rtnvalue) - { - debug_infor_printf((const)"SwitchCfgLogTrackInitDquStr switch %d fail.\r\n",dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); - break; - } - } - else - { - debug_infor_printf((const)"SwitchCfgDtStruFromLSProHostStr switch %d fail.\r\n",dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); + debug_infor_printf((const)"SwitchCfgLogTrackInitDquStr switch %d fail.\r\n", dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); break; } } else { - debug_infor_printf((const)"SwitchCfgDtStruFromDquPointStr switch %d fail.\r\n",dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); + debug_infor_printf((const)"SwitchCfgDtStruFromLSProHostStr switch %d fail.\r\n", dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); break; } } - }/* zt ɾش 2022-02-15 */ - else - { - rtnvalue = 0u; + else + { + debug_infor_printf((const)"SwitchCfgDtStruFromDquPointStr switch %d fail.\r\n", dquCICfgDtStr.SwchCfgDtStr[i].SwitchId); + break; + } } - } - + }/* zt ɾش 2022-02-15 */ return rtnvalue; } /********************************************* @@ -1740,113 +1730,111 @@ UINT8 SwitchCfgDtStruFromDquPointStr(DSU_POINT_STRU* pPoint,SwitchConfigDataStru UINT16 i=0u; UINT16 j=0u; UINT8 rtnvalue = 0u; - UINT8 chDataType = DATA_TYPE_MAIN_BRANCH; - chDataType = GetLocalPublicDataType();/*ݽṹ*/ /*ڲ*/ if((NULL == pPoint) || (NULL == pSwitchCfgDtStr)) { /*ʧ*/ - return 0u; + rtnvalue = 0u; + } + else + { + rtnvalue = 1u; } - pSwitchCfgDtStr->SwitchId = pPoint->wId; - pSwitchCfgDtStr->BelongCiId = (UINT8)pPoint->wManagePhysicalCI; - pSwitchCfgDtStr->BelongVirCI = (UINT8)pPoint->wBelongVirCI;/**/ - pSwitchCfgDtStr->dwSwitchKilo = pPoint->dwPointKilo; /* */ - pSwitchCfgDtStr->chKiloType = pPoint->dwPointKiloPlueMinusSign; - if (pSwitchCfgDtStr->SwitchId < SWITCH_SUM_MAX) + if (1u == rtnvalue) { - - /*OCñݴ洢ݽṹ*/ - rtnvalue = SwitchCfgDtStruFromOCconfigStr(pSwitchCfgDtStr); - if (DATA_TYPE_MAIN_BRANCH == chDataType) + pSwitchCfgDtStr->SwitchId = pPoint->wId; + pSwitchCfgDtStr->BelongCiId = (UINT8)pPoint->wManagePhysicalCI; + pSwitchCfgDtStr->BelongVirCI = (UINT8)pPoint->wBelongVirCI;/**/ + pSwitchCfgDtStr->dwSwitchKilo = pPoint->dwPointKilo; /* */ + pSwitchCfgDtStr->chKiloType = pPoint->dwPointKiloPlueMinusSign; + if (pSwitchCfgDtStr->SwitchId < SWITCH_SUM_MAX) { + + + /*OCñݴ洢ݽṹ*/ + rtnvalue = SwitchCfgDtStruFromOCconfigStr(pSwitchCfgDtStr); + /*ͨ忨IDð忨ڱOCʹЩ*/ rtnvalue &= CalcuSwitchInsertionBoxData(pSwitchCfgDtStr); - } - else - {/*ִ*/ - } - if (0u == rtnvalue) - { - return rtnvalue; } - - - } - pSwitchCfgDtStr->DSwitchOtherId = (pPoint->DPointOtherId != 0xffffu)?pPoint->DPointOtherId:0U; - pSwitchCfgDtStr->SwitchPhySecId = 0xffu; - pSwitchCfgDtStr->SwitchIsThisLine = DEV_IS_THIS_LINE_YES; - /*cgh-ϲCID-2341-10*/ - pSwitchCfgDtStr->DsRelayId = 0u; - pSwitchCfgDtStr->DsQRelayId = 0u; - pSwitchCfgDtStr->DsHRelayId = 0u; - pSwitchCfgDtStr->ByPassRelayId = 0u; - pSwitchCfgDtStr->IbpDrvRelayId = 0u; - for(j=0u;jwId==(RelayData.pRelayPointStr+j)->wPointId) + if (1u == rtnvalue) { - pSwitchCfgDtStr->DbRelayId = (RelayData.pRelayPointStr+j)->wRelayDingBiaoId; - pSwitchCfgDtStr->FbRelayId = (RelayData.pRelayPointStr+j)->wRelayFanBiaoId; - pSwitchCfgDtStr->YcRelayId = (RelayData.pRelayPointStr+j)->wRelayYunCaoId; - pSwitchCfgDtStr->DcRelayId = (RelayData.pRelayPointStr+j)->wRelayDingCaoId; - pSwitchCfgDtStr->FcRelayId = (RelayData.pRelayPointStr+j)->wRelayFanCaoId; - pSwitchCfgDtStr->ZDbRelayId = (RelayData.pRelayPointStr+j)->wRelayZongDingBiaoId; - pSwitchCfgDtStr->ZFbRelayId = (RelayData.pRelayPointStr+j)->wRelayZongFanBiaoId; - pSwitchCfgDtStr->DFHRelayId = (RelayData.pRelayPointStr+j)->wDFHId; - pSwitchCfgDtStr->wShadowDbRelayId = (RelayData.pRelayPointStr + j)->wRelayShadowDingBiaoId; - pSwitchCfgDtStr->wShadowFbRelayId = (RelayData.pRelayPointStr + j)->wRelayShadowFanBiaoId; - if (pSwitchCfgDtStr->SwitchId>0u) + pSwitchCfgDtStr->DSwitchOtherId = (pPoint->DPointOtherId != 0xffffu) ? pPoint->DPointOtherId : 0U; + pSwitchCfgDtStr->SwitchPhySecId = 0xffu; + pSwitchCfgDtStr->SwitchIsThisLine = DEV_IS_THIS_LINE_YES; + /*cgh-ϲCID-2341-10*/ + pSwitchCfgDtStr->DsRelayId = 0u; + pSwitchCfgDtStr->DsQRelayId = 0u; + pSwitchCfgDtStr->DsHRelayId = 0u; + pSwitchCfgDtStr->ByPassRelayId = 0u; + pSwitchCfgDtStr->IbpDrvRelayId = 0u; + for (j = 0u; j < RelayDataLen.RelayPointStrLen; j++) { - if (0u == pSwitchCfgDtStr->DbRelayId) + if (pPoint->wId == (RelayData.pRelayPointStr + j)->wPointId) { - debug_infor_printf((const)"Switch %d DBJ %d not config.",pSwitchCfgDtStr->SwitchId,pSwitchCfgDtStr->DbRelayId); - DebugPrintAppError(ERROR_SWITCH_DBJ_NOT_CONFIG,CI_DEVICE_TYPE_SWITCH,pSwitchCfgDtStr->SwitchId,PRINT_ONCE); - } - if (0u == pSwitchCfgDtStr->FbRelayId) - { - debug_infor_printf((const)"Switch %d FBJ %d not config.",pSwitchCfgDtStr->SwitchId,pSwitchCfgDtStr->FbRelayId); - DebugPrintAppError(ERROR_SWITCH_FBJ_NOT_CONFIG,CI_DEVICE_TYPE_SWITCH,(UINT32)(pSwitchCfgDtStr->SwitchId),PRINT_ONCE); - } - if (0u == pSwitchCfgDtStr->YcRelayId) - { - debug_infor_printf((const)"Switch %d YCJ %d not config.",pSwitchCfgDtStr->SwitchId,pSwitchCfgDtStr->YcRelayId); - DebugPrintAppError(ERROR_SWITCH_YCJ_NOT_CONFIG,CI_DEVICE_TYPE_SWITCH,(UINT32)(pSwitchCfgDtStr->SwitchId),PRINT_ONCE); - } - if (0u == pSwitchCfgDtStr->DcRelayId) - { - debug_infor_printf((const)"Switch %d DCJ %d not config.",pSwitchCfgDtStr->SwitchId,pSwitchCfgDtStr->DcRelayId); - DebugPrintAppError(ERROR_SWITCH_DCJ_NOT_CONFIG,CI_DEVICE_TYPE_SWITCH,(UINT32)(pSwitchCfgDtStr->SwitchId),PRINT_ONCE); - } - if (0u == pSwitchCfgDtStr->FcRelayId) - { - debug_infor_printf((const)"Switch %d FCJ %d not config.",pSwitchCfgDtStr->SwitchId,pSwitchCfgDtStr->FcRelayId); - DebugPrintAppError(ERROR_SWITCH_FCJ_NOT_CONFIG,CI_DEVICE_TYPE_SWITCH,(UINT32)(pSwitchCfgDtStr->SwitchId),PRINT_ONCE); + pSwitchCfgDtStr->DbRelayId = (RelayData.pRelayPointStr + j)->wRelayDingBiaoId; + pSwitchCfgDtStr->FbRelayId = (RelayData.pRelayPointStr + j)->wRelayFanBiaoId; + pSwitchCfgDtStr->YcRelayId = (RelayData.pRelayPointStr + j)->wRelayYunCaoId; + pSwitchCfgDtStr->DcRelayId = (RelayData.pRelayPointStr + j)->wRelayDingCaoId; + pSwitchCfgDtStr->FcRelayId = (RelayData.pRelayPointStr + j)->wRelayFanCaoId; + pSwitchCfgDtStr->ZDbRelayId = (RelayData.pRelayPointStr + j)->wRelayZongDingBiaoId; + pSwitchCfgDtStr->ZFbRelayId = (RelayData.pRelayPointStr + j)->wRelayZongFanBiaoId; + pSwitchCfgDtStr->DFHRelayId = (RelayData.pRelayPointStr + j)->wDFHId; + pSwitchCfgDtStr->wShadowDbRelayId = (RelayData.pRelayPointStr + j)->wRelayShadowDingBiaoId; + pSwitchCfgDtStr->wShadowFbRelayId = (RelayData.pRelayPointStr + j)->wRelayShadowFanBiaoId; + if (pSwitchCfgDtStr->SwitchId > 0u) + { + if (0u == pSwitchCfgDtStr->DbRelayId) + { + debug_infor_printf((const)"Switch %d DBJ %d not config.", pSwitchCfgDtStr->SwitchId, pSwitchCfgDtStr->DbRelayId); + DebugPrintAppError(ERROR_SWITCH_DBJ_NOT_CONFIG, CI_DEVICE_TYPE_SWITCH, pSwitchCfgDtStr->SwitchId, PRINT_ONCE); + } + if (0u == pSwitchCfgDtStr->FbRelayId) + { + debug_infor_printf((const)"Switch %d FBJ %d not config.", pSwitchCfgDtStr->SwitchId, pSwitchCfgDtStr->FbRelayId); + DebugPrintAppError(ERROR_SWITCH_FBJ_NOT_CONFIG, CI_DEVICE_TYPE_SWITCH, (UINT32)(pSwitchCfgDtStr->SwitchId), PRINT_ONCE); + } + if (0u == pSwitchCfgDtStr->YcRelayId) + { + debug_infor_printf((const)"Switch %d YCJ %d not config.", pSwitchCfgDtStr->SwitchId, pSwitchCfgDtStr->YcRelayId); + DebugPrintAppError(ERROR_SWITCH_YCJ_NOT_CONFIG, CI_DEVICE_TYPE_SWITCH, (UINT32)(pSwitchCfgDtStr->SwitchId), PRINT_ONCE); + } + if (0u == pSwitchCfgDtStr->DcRelayId) + { + debug_infor_printf((const)"Switch %d DCJ %d not config.", pSwitchCfgDtStr->SwitchId, pSwitchCfgDtStr->DcRelayId); + DebugPrintAppError(ERROR_SWITCH_DCJ_NOT_CONFIG, CI_DEVICE_TYPE_SWITCH, (UINT32)(pSwitchCfgDtStr->SwitchId), PRINT_ONCE); + } + if (0u == pSwitchCfgDtStr->FcRelayId) + { + debug_infor_printf((const)"Switch %d FCJ %d not config.", pSwitchCfgDtStr->SwitchId, pSwitchCfgDtStr->FcRelayId); + DebugPrintAppError(ERROR_SWITCH_FCJ_NOT_CONFIG, CI_DEVICE_TYPE_SWITCH, (UINT32)(pSwitchCfgDtStr->SwitchId), PRINT_ONCE); + } + } + break; } } - break; - } - } - for(i=0u;iwRelatPointNum;j++) - { - if(pSwitchCfgDtStr->SwitchId == (dsuStaticHeadStru.pAxleSgmtStru+i)->wRelatPointId[j]) + rtnvalue = 0u; + for (i = 0u; i < dsuDataLenStru.wAxleSgmtLen; i++) { - pSwitchCfgDtStr->SwitchPhySecId = (dsuStaticHeadStru.pAxleSgmtStru+i)->wRelatePhysicalSgmtId; + for (j = 0u; j < (dsuStaticHeadStru.pAxleSgmtStru + i)->wRelatPointNum; j++) + { + if (pSwitchCfgDtStr->SwitchId == (dsuStaticHeadStru.pAxleSgmtStru + i)->wRelatPointId[j]) + { + pSwitchCfgDtStr->SwitchPhySecId = (dsuStaticHeadStru.pAxleSgmtStru + i)->wRelatePhysicalSgmtId; - /*ҵ̵ֱӷ*/ - rtnvalue = 1u; - return rtnvalue; + /*ҵ̵ֱӷ*/ + rtnvalue = 1u; + break; + } + } } } } - rtnvalue = 0u; return rtnvalue; } @@ -3915,13 +3903,6 @@ UINT8 PsdConfigDataStructInit(CHAR * FSName) UINT16 startAxisSectionWId = 0u; /*ʼ˼link*/ UINT16 endAxisSectionWId = 0u; /*ն˼link*/ UINT16 linkId = 0u; - UINT16 wPhySecId = 0U; - UINT8 chLogSectionSum = 0U; - UINT16 wLogSectionId = 0u; - UINT8 k = 0u; - INT16 rtVal = -1; - UINT16 wPhyIndex = 0U; - UINT16 wLogicSgmtIndex = 0U; callFun = dfsEmapInit (FSName); callFun *= InitRelay_ScreenStru (FSName); @@ -3991,57 +3972,10 @@ UINT8 PsdConfigDataStructInit(CHAR * FSName) } } - - /*ʼվ̨ŹESB*/ - wPhySecId = 0U; - wLogSectionId = 0U; - wPhyIndex = 0U; - wLogicSgmtIndex = 0U; - if (1U == rtnvalue) - { - wPhySecId = dquCICfgDtStr.PsdCfgDtStr[i].PsdRelationPhySecId; - if ((0U < wPhySecId) && (PHYSICAL_SECTION_SUM_MAX > wPhySecId)) - { - wPhyIndex = dsuPhysicalSgmtIndex[wPhySecId];/*ȡ*/ - wLogSectionId = dquCICfgDtStr.PsclSgmtCfgDtStr[wPhyIndex].LogSectionIdBuf[0];/*ƥһ߼μ*/ - - if ((0U < wLogSectionId) && (LOGIC_SECTION_SUM_MAX > wLogSectionId)) - { - wLogicSgmtIndex = dsuLogicSgmtIndex[wLogSectionId]; - } - else - { - rtnvalue = 0U;/*Ƿֵʼʧ*/ - } - } - else - { - rtnvalue = 0U;/*Ƿֵʼʧ*/ - } - } - - if (1U == rtnvalue) - { - for (k = 0u; k < dquCICfgDtStr.lgcSctCfgDtStr[wLogicSgmtIndex].logSecRltEsbSum; k++) - { - rtVal = SetNoRepeatDataToBuf(dquCICfgDtStr.PsdCfgDtStr[i].IncloudeEsbIdBuf, PSD_INCLUDE_ESB_NUM, dquCICfgDtStr.lgcSctCfgDtStr[wLogicSgmtIndex].logSecRltEsbBuf[k], dquCICfgDtStr.PsdCfgDtStr[i].IncloudeEsbNum); - if (-1 != rtVal) - { - dquCICfgDtStr.PsdCfgDtStr[i].IncloudeEsbNum = (UINT8)rtVal; - } - else - { - rtnvalue = 0u; - break; - } - } - } - - - + rtnvalue = PsdRelateEsbConfigDataInit(i); } } if (0u == rtnvalue) @@ -5733,7 +5667,7 @@ UINT8 RouteCfgDtStruFrmLSRouteStr( LS_RouteStruct * pLSRouteStr,RouteConfigDataS }/* zt ɾش 2022-02-15 */ else { - + rtnvalue = CI_ERROR; } } else @@ -6119,33 +6053,26 @@ UINT8 RouteCfgDtStruFrmLSRouteStr( LS_RouteStruct * pLSRouteStr,RouteConfigDataS } if(CI_SUCCESS == rtnvalue) { - if (CI_TRADITION_RAILWAY == lineIdentity) - {/*ͳǹ·*/ - /*·ȥΪ·նźŻڷһΣܲڣն赲źŻ*/ - routeEndSignal = dsuStaticHeadStru.pRouteStru[dsuRouteIndex[routeId]].wEndSignalId;/*·նźŻ*/ - if(SIGNAL_SUM_MAX >= dquCICfgDtStr.SgnlCfgDtStrLen) - { - for (i = 0u;i < dquCICfgDtStr.SgnlCfgDtStrLen;i++) - {/*źŻ*/ - if (routeEndSignal == dquCICfgDtStr.SgnlCfgDtStr[i].SignalId) - {/*ҵ·նźŻ*/ - pRouteCfgDtStr->RouteLeavePhySecId = dquCICfgDtStr.SgnlCfgDtStr[i].InFirstPhySecId; - break; - } - else - { - } + /*·ȥΪ·նźŻڷһΣܲڣն赲źŻ*/ + routeEndSignal = dsuStaticHeadStru.pRouteStru[dsuRouteIndex[routeId]].wEndSignalId;/*·նźŻ*/ + if (SIGNAL_SUM_MAX >= dquCICfgDtStr.SgnlCfgDtStrLen) + { + for (i = 0u; i < dquCICfgDtStr.SgnlCfgDtStrLen; i++) + {/*źŻ*/ + if (routeEndSignal == dquCICfgDtStr.SgnlCfgDtStr[i].SignalId) + {/*ҵ·նźŻ*/ + pRouteCfgDtStr->RouteLeavePhySecId = dquCICfgDtStr.SgnlCfgDtStr[i].InFirstPhySecId; + break; + } + else + { } } - else - { - rtnvalue = CI_ERROR; - } - } + } else { - /* zt ɾش 2022-02-15 */ - } + rtnvalue = CI_ERROR; + } } else { @@ -7487,8 +7414,8 @@ UINT8 RouteConfigDataStructInit(CHAR * FSName) for (i = 0u; i < dquCICfgDtStr.lgcSctCfgDtStrLen; i++) { execRet = LogRelateRouteDataInit(dquCICfgDtStr.RouteCfgDtStr, &(dquCICfgDtStr.lgcSctCfgDtStr[i]));/*߼ι·*/ + execRet *= LogRelateOverlapDataInit(dquCICfgDtStr.OvlapCfgDtStr, &(dquCICfgDtStr.lgcSctCfgDtStr[i]));/*߼ιμ*/ execRet *= LogRelateProSwDataInit(dquCICfgDtStr.RouteCfgDtStr, &(dquCICfgDtStr.lgcSctCfgDtStr[i]));/*߼ι*/ - execRet *= LogRelateOverlapDataInit(dquCICfgDtStr.OvlapCfgDtStr, &(dquCICfgDtStr.lgcSctCfgDtStr[i]));/*߼ι*/ if (execRet > 0u) { @@ -7575,190 +7502,21 @@ UINT8 RouteConfigDataStructInit(CHAR * FSName) } return rtnvalue; } - /********************************************* -*ܣнͨŹϵ豸IPȥݣÿ17ݣ -*˵Dataͨ -*ֵ0ʧܣ1ɹ -*********************************************/ -UINT8 TransmitRelationDataStruFrmSZ(UINT16 Data[]) -{ - UINT8 rtnvalue = 0u; - UINT16 i=0u; - UINT16 j =0u; - UINT16 Type = 0u; - UINT16 findIndex = 0u;/*ڼеzcdusͨŹϵҵ0δҵֵҵ*/ - UINT8 tmpCiId=0u; /*ʱci id*/ - UINT8 tmpOtherSysType =0u;/*ʱϵͳ*/ - UINT8 findFlag = 0u; /*ҵ־*/ - UINT16 chRcType = 0U; - /*ڲ*/ - if(NULL == Data) - { - /*ʧ*/ - return 0u; - } - else - { - } - if (RC_WORK_MODE_CI == CI_SYSTEM_TYPE_RCI) - { - chRcType = 0x3C00U; - } - else - { - chRcType = 0x3D00U; - } - if((chRcType != (Data[0]&0xFF00u))) - { - rtnvalue = 1u; - return rtnvalue; - } - else - { } -#if 0 - /*ڶЧݳ*/ - for(i=0u;i>8); - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceSum = 0; - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceIdBuf[dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceSum] = (UINT8)(Data[2+i]&0x00FF); - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceSum++; - dquCICfgDtStr.TrsmtRlsDtStrLen++; - Type = (Data[2+i]&0xFF00); - } - /*ͬͨ豸ֻ¼һIDͺ(Ĭͬ豸дһ)*/ - else - { - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen-1].DeviceIdBuf[dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen-1].DeviceSum] = (UINT8)(Data[2+i]&0x00FF); - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen-1].DeviceSum++; - } - } -#endif - /*ڶЧݳ*/ - for(i=0u;i>8u); - - findFlag = 0u; - - for (j=0u;j>8u); - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceSum = 0u; - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceIdBuf[dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceSum] = (UINT8)(Data[2u+i]&0x00FFu); - dquCICfgDtStr.TrsmtRlsDtStr[dquCICfgDtStr.TrsmtRlsDtStrLen].DeviceSum++; - dquCICfgDtStr.TrsmtRlsDtStrLen++; - Type = (Data[2u+i]&0xFF00u); - - - } - else if (1u == findFlag) - {/*ҵҵĽṹ豸*/ - dquCICfgDtStr.TrsmtRlsDtStr[findIndex].DeviceIdBuf[dquCICfgDtStr.TrsmtRlsDtStr[findIndex].DeviceSum] = (UINT8)(Data[2U+i]&0x00FFu); - dquCICfgDtStr.TrsmtRlsDtStr[findIndex].DeviceSum++; - } - else - { - /*Ƿֵ*/ - } - } - - - - rtnvalue = 1u; - return rtnvalue; -} - -/********************************************* -*ܣʼͨŹϵݽṹ壨OLD -*˵FSNameļָ -*ֵ0ʧܣ1ɹ -*********************************************/ -UINT8 TransmitRelationDataStructInit(CHAR* FSName) + *ܣʼͨŹϵݽṹ壨NEW + *˵FSNameļָ + *ֵ0ʧܣ1ɹ + *********************************************/ +UINT8 TransmitDataStructInitNew(CHAR *FSName) { UINT8 rtnValue = 0u; - UINT8* pDataAddr; /*ݵַ*/ - UINT32 DataSize; /*ݴСֽ*/ - UINT16 i,j; + UINT8 *pDataAddr = NULL; /*ݵַ*/ + UINT32 DataSize = 0u; /*ݴСֽ*/ UINT8 funcRtn = 0u; - UINT16 Data[ZC_DSU_TRANSMIT_DATA_LEN/2U]; - /*ȡ ͨŹϵ */ - funcRtn = dquGetConfigData(FSName,DEVICE_IP_TYPE, ZC_DSU_TRANSMIT_DATA_ID,&pDataAddr,&DataSize); - - if(funcRtn == 0u) - { - /*ʧ*/ - rtnValue = 0u; - return rtnValue; - } - /*ø*/ - if(DataSize%ZC_DSU_TRANSMIT_DATA_LEN != 0u) - { - rtnValue = 0u; - debug_infor_printf((const)"\nCI_DEVICE_IP_DATA,ZC_DSU_COMM,len %d not equal to fs",CI_SYSTEM_CI_FUNC_SWITCH_LEN); - DebugPrintAppError(ERROR_fs_columns_len_not_equal_to_ci_software,CI_DEVICE_TYPE_FS_TABLE,(DEVICE_IP_TYPE<<8)+ZC_DSU_TRANSMIT_DATA_ID,PRINT_ONCE); - return rtnValue; - } - for(i=0u;isrcCiId; cLocalWorkType = GetLocalRcWorkMode(); /* */ - if ((tmpLocalCiId < CI_SUM_MAX) && (tmpLocalCiId > 0u) + if ((CI_SUM_MAX > tmpLocalCiId) && (0U < tmpLocalCiId) && ((RC_WORK_MODE_TIOC == cLocalWorkType) || ((RC_WORK_MODE_CI == cLocalWorkType) && (CI_DEVICE_TYPE_CUTOFF_POINT != pDquCiTransmitStr->devType)))) { /* ĿIDǷѾӹ */ @@ -9083,6 +8857,10 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) { dquCICfgDtStr.CiTransmitStrLen[tmpLocalCiId]++; } + else + { + /* */ + } pTmpCiTransConfig = &dquCICfgDtStr.CiTransmitStru[tmpLocalCiId][ii]; pTmpCiTransConfig->destCiId = pDquCiTransmitStr->dstCiId; pTmpCiTransConfig->srcCiId = pDquCiTransmitStr->srcCiId; @@ -9090,7 +8868,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) switch (pDquCiTransmitStr->devType) { case CI_DEVICE_TYPE_SWITCH: /* */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < SWITCH_SUM_MAX) && (pTmpCiTransConfig->switchNum < SWITCH_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (SWITCH_SUM_MAX > pDquCiTransmitStr->devId) && (SWITCH_SUM_MAX > pTmpCiTransConfig->switchNum)) { pTmpCiTransConfig->switchIdBuf[pTmpCiTransConfig->switchNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->switchNum++; @@ -9102,7 +8880,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_SIGNAL: /* źŻ */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < SIGNAL_SUM_MAX) && (pTmpCiTransConfig->signalNum < SIGNAL_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (SIGNAL_SUM_MAX > pDquCiTransmitStr->devId) && (SIGNAL_SUM_MAX > pTmpCiTransConfig->signalNum)) { pTmpCiTransConfig->signalIdBuf[pTmpCiTransConfig->signalNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->signalNum++; @@ -9114,7 +8892,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_PHYSEC: /* */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < PHYSICAL_SECTION_SUM_MAX) && (pTmpCiTransConfig->phySecNum < PHYSICAL_SECTION_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (PHYSICAL_SECTION_SUM_MAX > pDquCiTransmitStr->devId) && (PHYSICAL_SECTION_SUM_MAX > pTmpCiTransConfig->phySecNum)) { pTmpCiTransConfig->phySecIdBuf[pTmpCiTransConfig->phySecNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->phySecIdLockDirFlag[pTmpCiTransConfig->phySecNum] = pDquCiTransmitStr->phyLockDirOppOrNot;/*շǷȡ־*/ @@ -9127,7 +8905,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_LOGICSEC: /* ߼ */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < LOGIC_SECTION_SUM_MAX) && (pTmpCiTransConfig->logicSecNum < LOGIC_SECTION_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (LOGIC_SECTION_SUM_MAX > pDquCiTransmitStr->devId) && (LOGIC_SECTION_SUM_MAX > pTmpCiTransConfig->logicSecNum)) { pTmpCiTransConfig->logicSecIdBuf[pTmpCiTransConfig->logicSecNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->logicSecNum++; @@ -9139,7 +8917,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_ESB: /* ESB */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < ESB_SUM_MAX) && (pTmpCiTransConfig->esbNum < ESB_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (ESB_SUM_MAX > pDquCiTransmitStr->devId) && (ESB_SUM_MAX > pTmpCiTransConfig->esbNum)) { pTmpCiTransConfig->esbIdBuf[pTmpCiTransConfig->esbNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->esbNum++; @@ -9151,7 +8929,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_PSD: /* PSD */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < PSD_SUM_MAX) && (pTmpCiTransConfig->psdNum < PSD_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (PSD_SUM_MAX > pDquCiTransmitStr->devId) && (PSD_SUM_MAX > pTmpCiTransConfig->psdNum)) { pTmpCiTransConfig->psdIdBuf[pTmpCiTransConfig->psdNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->psdNum++; @@ -9163,7 +8941,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_ROUTE: /* · */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < ROUTE_SUM_MAX) && (pTmpCiTransConfig->routeNum < ROUTE_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (ROUTE_SUM_MAX > pDquCiTransmitStr->devId) && (ROUTE_SUM_MAX > pTmpCiTransConfig->routeNum)) { pTmpCiTransConfig->routeIdBuf[pTmpCiTransConfig->routeNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->routeNum++; @@ -9175,7 +8953,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_OVERLAP: /* */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < OVERLAP_SUM_MAX) && (pTmpCiTransConfig->overlapNum < OVERLAP_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (OVERLAP_SUM_MAX > pDquCiTransmitStr->devId) && (OVERLAP_SUM_MAX > pTmpCiTransConfig->overlapNum)) { pTmpCiTransConfig->overlapIdBuf[pTmpCiTransConfig->overlapNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->overlapNum++; @@ -9187,7 +8965,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_SPKS: /* SPKS */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < SPKS_SUM_MAX) && (pTmpCiTransConfig->spksNum < SPKS_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (SPKS_SUM_MAX > pDquCiTransmitStr->devId) && (SPKS_SUM_MAX > pTmpCiTransConfig->spksNum)) { pTmpCiTransConfig->spksIdBuff[pTmpCiTransConfig->spksNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->spksNum++; @@ -9200,7 +8978,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) break; case CI_DEVICE_TYPE_FLOODGATE:/**/ { - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < FLOOD_GATE_SUM_MAX) && (pTmpCiTransConfig->floodGateNum < FLOOD_GATE_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (FLOOD_GATE_SUM_MAX > pDquCiTransmitStr->devId) && (FLOOD_GATE_SUM_MAX > pTmpCiTransConfig->floodGateNum)) { pTmpCiTransConfig->floodGateIdBuf[pTmpCiTransConfig->floodGateNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->floodGateNum++; @@ -9213,7 +8991,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_RELAY: /* ղ̵ */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < RELAY_SUM_MAX) && (pTmpCiTransConfig->zcjNum < ZCJ_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (RELAY_SUM_MAX > pDquCiTransmitStr->devId) && (ZCJ_SUM_MAX > pTmpCiTransConfig->zcjNum)) { pTmpCiTransConfig->zcjIdBuf[pTmpCiTransConfig->zcjNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->zcjNum++; @@ -9225,7 +9003,7 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_CUTOFF_POINT: /* ֽ */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < CUTOFF_POINT_SUM_MAX) && (pTmpCiTransConfig->wCutoffPointNum < CUTOFF_POINT_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (CUTOFF_POINT_SUM_MAX > pDquCiTransmitStr->devId) && (CUTOFF_POINT_SUM_MAX > pTmpCiTransConfig->wCutoffPointNum)) { pTmpCiTransConfig->wCutoffPointBuf[pTmpCiTransConfig->wCutoffPointNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->wCutoffPointNum++; @@ -9237,8 +9015,8 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) } break; case CI_DEVICE_TYPE_AUTOROUTE:/* cgh-ϲCID-2539-7Զͨ */ - if ((pDquCiTransmitStr->devId > 0u) && (pDquCiTransmitStr->devId < AUTO_ROUTE_SUM_MAX) && - (pTmpCiTransConfig->autoRouteNum < AUTO_ROUTE_SUM_MAX)) + if ((0U < pDquCiTransmitStr->devId) && (AUTO_ROUTE_SUM_MAX > pDquCiTransmitStr->devId) && + (AUTO_ROUTE_SUM_MAX > pTmpCiTransConfig->autoRouteNum)) { pTmpCiTransConfig->autoRouteIdBuf[pTmpCiTransConfig->autoRouteNum] = pDquCiTransmitStr->devId; pTmpCiTransConfig->autoRouteNum++; @@ -9249,6 +9027,34 @@ UINT8 ReadDquCiTransmitInfoToConfig(DquCiTransmitStruct *pDquCiTransmitStr) debug_infor_printf((const)"ReadDquCiTransmitInfoToConfig: Read AutoRoute Error\n"); } break; + case CI_DEVICE_TYPE_SWITCH_PHYSEC:/*Σͨӿʹ*/ + { + if ((0U < pDquCiTransmitStr->devId) && (PHYSICAL_SECTION_SUM_MAX > pDquCiTransmitStr->devId) && (PHYSICAL_SECTION_SUM_MAX > pTmpCiTransConfig->wSwitchPhySecNum)) + { + pTmpCiTransConfig->wSwitchPhySecBuf[pTmpCiTransConfig->wSwitchPhySecNum] = pDquCiTransmitStr->devId; + pTmpCiTransConfig->wSwitchPhySecNum++; + rtnValue = 1U; + } + else + { + debug_infor_printf((const)"ReadDquCiTransmitInfoToConfig: Read SwtchPhySec Error\n"); + } + } + break; + case CI_DEVICE_TYPE_XIANSU_LOGSEC:/*߼Σͨӿʹ*/ + { + if ((0U < pDquCiTransmitStr->devId) && (LOGIC_SECTION_SUM_MAX > pDquCiTransmitStr->devId) && (LOGIC_SECTION_SUM_MAX > pTmpCiTransConfig->wXianSuLogSecNum)) + { + pTmpCiTransConfig->wXianSuLogSecBuf[pTmpCiTransConfig->wXianSuLogSecNum] = pDquCiTransmitStr->devId; + pTmpCiTransConfig->wXianSuLogSecNum++; + rtnValue = 1U; + } + else + { + debug_infor_printf((const)"ReadDquCiTransmitInfoToConfig: Read XianSuLogse Error\n"); + } + } + break; default: rtnValue = 0u; break; @@ -10319,7 +10125,7 @@ UINT8 OCSwitchConfigDataStructInit(CHAR* FSName) { UINT8 rtnValue = 0u; UINT8* pDataAddr = NULL; /*ݵַ*/ - UINT32 DataSize = 0u; /*ݴСֽ*/ + UINT32 dwDataSize = 0u; /*ݴСֽ*/ UINT8 funcRtn = 0u; UINT16 realRowCount = 0u; /*ʵʱݵ*/ UINT16 i = 0u; @@ -10333,7 +10139,7 @@ UINT8 OCSwitchConfigDataStructInit(CHAR* FSName) else { /*ȡת޻״ָ̬ʾƱ*/ - funcRtn = dquGetConfigDataNew(FSName, OC_DATA_TYPE, OC_SWITCH_ID, &pDataAddr, &DataSize, &realRowCount); + funcRtn = dquGetConfigDataNew(FSName, OC_DATA_TYPE, OC_SWITCH_ID, &pDataAddr, &dwDataSize, &realRowCount); if (0u == funcRtn) { rtnValue = 0u; @@ -10343,19 +10149,19 @@ UINT8 OCSwitchConfigDataStructInit(CHAR* FSName) rtnValue = 1u; for (i = 0u; i < SWITCH_SUM_MAX; i++) { - funcRtn &= CommonMemSet(dquCICfgDtStr.OCSwitchCfgStr, (UINT32)sizeof(OCSwitchConfigDataStruct), 0u, (UINT32)sizeof(OCSwitchConfigDataStruct)); + funcRtn &= CommonMemSet(&dquCICfgDtStr.OCSwitchCfgStr[i], (UINT32)sizeof(OCSwitchConfigDataStruct), 0u, (UINT32)sizeof(OCSwitchConfigDataStruct)); } if (1u == funcRtn) { /**/ } - if ((0u != DataSize) && (0u != realRowCount)) + if ((0u != dwDataSize) && (0u != realRowCount)) { - if (0u == (DataSize % realRowCount)) + if (0u == (dwDataSize % realRowCount)) { /*ÿֽڳ*/ - wDataLen = (UINT16)(DataSize / realRowCount); + wDataLen = (UINT16)(dwDataSize / realRowCount); for (i = 0u; i < realRowCount; i++) { /*ñ*/ @@ -10383,6 +10189,10 @@ UINT8 OCSwitchConfigDataStructInit(CHAR* FSName) } } + if (1u == rtnValue) + {/*ÿͬ忨*/ + rtnValue = AllSwitchOtherSwitchByOCconfig(); + } return rtnValue; } @@ -10941,7 +10751,6 @@ UINT8 ReadVirCIWithOCRelationData(CHAR* FSName) UINT8 RowDatalen =0u;/**/ UINT8 virCIid = 0u; UINT8 jj =0u; - UINT16 ocid =0u; UINT8 ocNum=0u; @@ -13773,8 +13582,6 @@ void R_OCSwitchModeCfgDataFromChar(UINT8* pDataAddr) UINT8* pData = NULL; UINT16 wSwitchIdTemp = 0u; UINT8 i = 0U; - UINT8 chDataType = DATA_TYPE_MAIN_BRANCH; - chDataType = GetLocalPublicDataType();/*28.0.0.14߼ι·ʼ*/ if (NULL == pDataAddr) @@ -13797,24 +13604,23 @@ void R_OCSwitchModeCfgDataFromChar(UINT8* pDataAddr) dquCICfgDtStr.OCSwitchCfgStr[dquCICfgDtStr.OCSwitchCfgStrLen].BelongOcId = ShortFromChar(pData); pData += 2u; - if (DATA_TYPE_MAIN_BRANCH == chDataType) + + /*ǣ*/ + pData += 1u; + for (i = 0u; i < SWITCH_BOARD_MODE_MAX; i++) { - /*ǣ*/ + /*ģ-A忨ID*/ + dquCICfgDtStr.OCSwitchCfgStr[dquCICfgDtStr.OCSwitchCfgStrLen].ModuleAddrA[i] = *pData; pData += 1u; - for (i = 0u; i < SWITCH_BOARD_MODE_MAX; i++) - { - /*ģ-A忨ID*/ - dquCICfgDtStr.OCSwitchCfgStr[dquCICfgDtStr.OCSwitchCfgStrLen].ModuleAddrA[i] = *pData; - pData += 1u; - pData += 1u;/*ģλ*/ + pData += 1u;/*ģλ*/ - /*ģ-B忨ID*/ - dquCICfgDtStr.OCSwitchCfgStr[dquCICfgDtStr.OCSwitchCfgStrLen].ModuleAddrB[i] = *pData; - pData += 1u; - pData += 1u;/*ģλ*/ + /*ģ-B忨ID*/ + dquCICfgDtStr.OCSwitchCfgStr[dquCICfgDtStr.OCSwitchCfgStrLen].ModuleAddrB[i] = *pData; + pData += 1u; + pData += 1u;/*ģλ*/ - } } + dquCICfgDtStr.OCSwitchCfgStrLen++;/**/ @@ -13904,7 +13710,8 @@ UINT8 SwitchOcCfgStrFromOCconfigStr(SwitchBelongOCConfigDataStr* pSwitchOCcfgDtS } else { - pSwitchOCcfgDtStr->OcId = pOcCfgDtStr->BelongOcId; + pSwitchOCcfgDtStr->OcId = (UINT8)pOcCfgDtStr->BelongOcId; + pSwitchOCcfgDtStr->wThisOcOtherSwitchId = pOcCfgDtStr->otherSwitchId;/*ͬһOCͬ忨һ*/ rtnvalue =1u; for (i = 0u; i < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; i++) { @@ -13914,7 +13721,7 @@ UINT8 SwitchOcCfgStrFromOCconfigStr(SwitchBelongOCConfigDataStr* pSwitchOCcfgDtS ret = SetNoUINT8RepeatDataToBuf((UINT8 *)pSwitchOCcfgDtStr->ModuleAddr, MAX_OC_SWITCH_INCLUDE_BOARD_NUM, pOcCfgDtStr->ModuleAddrA[i], boardNum); if (-1 != ret) { - boardNum = ret; + boardNum = (UINT8)ret; } else { @@ -13930,7 +13737,7 @@ UINT8 SwitchOcCfgStrFromOCconfigStr(SwitchBelongOCConfigDataStr* pSwitchOCcfgDtS ret = SetNoUINT8RepeatDataToBuf((UINT8*)pSwitchOCcfgDtStr->ModuleAddr, MAX_OC_SWITCH_INCLUDE_BOARD_NUM, pOcCfgDtStr->ModuleAddrB[i], boardNum); if (-1 != ret) { - boardNum = ret; + boardNum = (UINT8)ret; } else { @@ -13972,8 +13779,6 @@ UINT8 CalcuSwitchInsertionBoxData(SwitchConfigDataStruct* pSwitchCfgDtStr) UINT8 i = 0u; UINT8 j = 0u; UINT8 chBoxId = 0u;/*ID*/ - UINT8 cInsertionBoxNum = 0u; - INT16 ret = 0; /*ڲ*/ if (NULL == pSwitchCfgDtStr) @@ -14025,7 +13830,7 @@ UINT8 CalcuSwitchInsertionBoxData(SwitchConfigDataStruct* pSwitchCfgDtStr) return rtnvalue; } /********************************************* -*ܣ䲻ظݽ +*ܣ䲻ظݽUINT8 *˵Ŀָ * *ֵ-1Ϊij,-1Ϊռ @@ -14090,43 +13895,50 @@ UINT8 LogRelateProSwDataByOverlapInit(LogicSectionConfigDataStruct* pLgScCfgDtSt if (NULL != pLgScCfgDtStr) { - /*߼ι*/ - for (ii = 0; ii < pLgScCfgDtStr->chLogsecSwitchSum; ii++) - {/*߼ΰе*/ - wProtectSwSum = dquCICfgDtStr.SwchCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuPointIndex[pLgScCfgDtStr->LogsecSwitchIdStru[ii].SwitchId]].wProtectSwitchNum; - for (jj = 0; jj < wProtectSwSum; jj++) - {/*Ӧķ*/ - wProtectSwId = dquCICfgDtStr.SwchCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuPointIndex[pLgScCfgDtStr->LogsecSwitchIdStru[ii].SwitchId]].wszProtectSwitchIdBuf[jj]; - chProtectSwFlag = 0U; - for (kk = 0U; kk < pLgScCfgDtStr->chRelateOverLapSum; kk++) - {/*߼ιı*/ - for (hh = 0U; hh < dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchSum; hh++) - {/*ѯ߼ιΣΰ÷߼ιλ뱣һ*/ - if (dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectSwitchId == wProtectSwId) - { - for (mm = 0U; mm < pLgScCfgDtStr->chRelateProSwSum; mm++) - {/*IDȥ*/ - if ((pLgScCfgDtStr->wRelateProSwId[mm].SwitchId == dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectSwitchId) - && (pLgScCfgDtStr->wRelateProSwId[mm].SwitchPosition == dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectPosition)) - { - chProtectSwFlag = 1U; + if (0u == pLgScCfgDtStr->chRelateRouteSum) + { + /*߼ι*/ + for (ii = 0; ii < pLgScCfgDtStr->chLogsecSwitchSum; ii++) + {/*߼ΰе*/ + wProtectSwSum = dquCICfgDtStr.SwchCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuPointIndex[pLgScCfgDtStr->LogsecSwitchIdStru[ii].SwitchId]].wProtectSwitchNum; + for (jj = 0; jj < wProtectSwSum; jj++) + {/*Ӧķ*/ + wProtectSwId = dquCICfgDtStr.SwchCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuPointIndex[pLgScCfgDtStr->LogsecSwitchIdStru[ii].SwitchId]].wszProtectSwitchIdBuf[jj]; + chProtectSwFlag = 0U; + for (kk = 0U; kk < pLgScCfgDtStr->chRelateOverLapSum; kk++) + {/*߼ιı*/ + for (hh = 0U; hh < dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchSum; hh++) + {/*ѯ߼ιΣΰ÷߼ιλ뱣һ*/ + if (dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectSwitchId == wProtectSwId) + { + for (mm = 0U; mm < pLgScCfgDtStr->chRelateProSwSum; mm++) + {/*IDȥ*/ + if ((pLgScCfgDtStr->wRelateProSwId[mm].SwitchId == dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectSwitchId) + && (pLgScCfgDtStr->wRelateProSwId[mm].SwitchPosition == dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectPosition)) + { + chProtectSwFlag = 1U; + break; + } + } + if (1U != chProtectSwFlag) + {/*ǰвIDŽ*/ + if (LOGSEC_RELATE_PRO_SW_SUM_MAX > pLgScCfgDtStr->chRelateProSwSum) + { + pLgScCfgDtStr->wRelateProSwId[pLgScCfgDtStr->chRelateProSwSum].SwitchId = dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectSwitchId; + pLgScCfgDtStr->wRelateProSwId[pLgScCfgDtStr->chRelateProSwSum].SwitchPosition = dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectPosition; + (pLgScCfgDtStr->chRelateProSwSum)++; + } + else + { + chMaxCheck = CI_ERROR; + } break; } } - if (1U != chProtectSwFlag) - {/*ǰвIDŽ*/ - if (LOGSEC_RELATE_PRO_SW_SUM_MAX > pLgScCfgDtStr->chRelateProSwSum) - { - pLgScCfgDtStr->wRelateProSwId[pLgScCfgDtStr->chRelateProSwSum].SwitchId = dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectSwitchId; - pLgScCfgDtStr->wRelateProSwId[pLgScCfgDtStr->chRelateProSwSum].SwitchPosition = dquCICfgDtStr.OvlapCfgDtStr[g_dsuEmapStru->dsuEmapIndexStru->dsuProtectLinkIndex[pLgScCfgDtStr->wRelateOverLapIdBuf[kk]]].ProtectSwitchStru[hh].ProtectPosition; - (pLgScCfgDtStr->chRelateProSwSum)++; - } - else - { - chMaxCheck = CI_ERROR; - } - break; - } + } + if (CI_ERROR == chMaxCheck) + { + break; } } if (CI_ERROR == chMaxCheck) @@ -14141,17 +13953,18 @@ UINT8 LogRelateProSwDataByOverlapInit(LogicSectionConfigDataStruct* pLgScCfgDtSt } if (CI_ERROR == chMaxCheck) { - break; + rtnvalue = 0U; + } + else + { + rtnvalue = 1U; } - } - if (CI_ERROR == chMaxCheck) - { - rtnvalue = 0U; } else { rtnvalue = 1U; } + } return rtnvalue; @@ -14311,7 +14124,7 @@ UINT8 AxisSecProtectSwitchInit(void) ret = AxisSecCfgDtStruFromLogicSecStr(dquCICfgDtStr.lgcSctCfgDtStr[j].wRelateProSwId, dquCICfgDtStr.lgcSctCfgDtStr[j].chRelateProSwSum, pAxScCfgDtStr->wRelateProSwId, pAxScCfgDtStr->chRelateProSwSum); if (-1 != ret) { - pAxScCfgDtStr->chRelateProSwSum = ret;/**/ + pAxScCfgDtStr->chRelateProSwSum = (UINT8)ret;/**/ } break; } @@ -14340,5 +14153,258 @@ UINT8 AxisSecProtectSwitchInit(void) return rtnvalue; } +/********************************************* +*ܣΪijͬ忨һID +*˵OCSwitchConfigDataStruct * pOCSwitchCfgStr ݽṹ +*ֵ0 ʧܣ1ɹ +* add by mpt 20260404 +*********************************************/ +UINT8 SwitchOtherSwitchFromOCconfig(OCSwitchConfigDataStruct * pOCSwitchCfgStr) +{ + UINT16 j = 0u; + UINT8 rtnvalue = 0u; + UINT8 k = 0u; + /*ڲ*/ + if (NULL == pOCSwitchCfgStr) + { + /*ʧ*/ + rtnvalue = 0u; + } + else + { + rtnvalue = 1u; - + if (SWITCH_SUM_MAX > pOCSwitchCfgStr->SwitchId) + { + + for (j = 0u; j < dquCICfgDtStr.OCSwitchCfgStrLen; j++) + { + if ((pOCSwitchCfgStr->SwitchId != dquCICfgDtStr.OCSwitchCfgStr[j].SwitchId)&&(pOCSwitchCfgStr->BelongOcId == dquCICfgDtStr.OCSwitchCfgStr[j].BelongOcId)) + {/*Լ*/ + for (k = 0u; k < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; k++) + { + + if ((pOCSwitchCfgStr->ModuleAddrA[k] == dquCICfgDtStr.OCSwitchCfgStr[j].ModuleAddrA[k])&&(UINT8_MAX !=pOCSwitchCfgStr->ModuleAddrA[k]) && (0u != pOCSwitchCfgStr->ModuleAddrA[k])) + {/*忨IDЧ*/ + pOCSwitchCfgStr->otherSwitchId = dquCICfgDtStr.OCSwitchCfgStr[j].SwitchId; + break; + } + } + if (0u != pOCSwitchCfgStr->otherSwitchId) + { + break; + } + else + { + /*ʲôҲִУнBϵAϵ*/ + } + } + } + } + else + { + /*ʧ*/ + rtnvalue = 0u; + } + } + + return rtnvalue; +} + +/********************************************* +*ܣΪеͬ忨һID +*˵void +*ֵ0 ʧܣ1ɹ +* add by mpt 20260404 +*********************************************/ +UINT8 AllSwitchOtherSwitchByOCconfig(void) +{ + UINT16 j = 0U; + UINT8 rtnvalue = 0U; + if (0U == dquCICfgDtStr.OCSwitchCfgStrLen) + { + rtnvalue = 1U; /*ûõݣ1*/ + } + else + { + for (j = 0U; j < dquCICfgDtStr.OCSwitchCfgStrLen; j++) + { + rtnvalue = SwitchOtherSwitchFromOCconfig(&dquCICfgDtStr.OCSwitchCfgStr[j]); + if (0U == rtnvalue) + { + break; + } + } + } + return rtnvalue; +} + +/********************************************* +*ܣʼŹESB----͸Ӷʹ +*˵FSNameļָ +* wPsdIndex +*ֵ0ʧܣ1ɹ +* fan 20260421 +*********************************************/ +UINT8 PsdRelateEsbConfigDataInit(UINT16 wPsdIndex) +{ + UINT8 rtnvalue = 0U; + UINT16 wPhySecId = 0U; + UINT16 wLogSectionId = 0u; + UINT16 wPhyIndex = 0U; + UINT16 wLogicSgmtIndex = 0U; + UINT8 k = 0u; + INT16 rtVal = -1; + if (PSD_SUM_MAX > wPsdIndex) + { + rtnvalue = 1U; + wPhyIndex = 0U; + wLogicSgmtIndex = 0U; + wPhySecId = dquCICfgDtStr.PsdCfgDtStr[wPsdIndex].PsdRelationPhySecId; + if ((0U < wPhySecId) && (PHYSICAL_SECTION_SUM_MAX > wPhySecId)) + { + wPhyIndex = dsuPhysicalSgmtIndex[wPhySecId];/*ȡ*/ + wLogSectionId = dquCICfgDtStr.PsclSgmtCfgDtStr[wPhyIndex].LogSectionIdBuf[0];/*ƥһ߼μ*/ + + if ((0U < wLogSectionId) && (LOGIC_SECTION_SUM_MAX > wLogSectionId)) + { + wLogicSgmtIndex = dsuLogicSgmtIndex[wLogSectionId]; + } + else + { + rtnvalue = 0U;/*Ƿֵʼʧ*/ + } + } + else + { + rtnvalue = 0U;/*Ƿֵʼʧ*/ + } + + if (1U == rtnvalue) + { + for (k = 0u; k < dquCICfgDtStr.lgcSctCfgDtStr[wLogicSgmtIndex].logSecRltEsbSum; k++) + { + rtVal = SetNoRepeatDataToBuf(dquCICfgDtStr.PsdCfgDtStr[wPsdIndex].IncloudeEsbIdBuf, PSD_INCLUDE_ESB_NUM, dquCICfgDtStr.lgcSctCfgDtStr[wLogicSgmtIndex].logSecRltEsbBuf[k], dquCICfgDtStr.PsdCfgDtStr[wPsdIndex].IncloudeEsbNum); + if (-1 != rtVal) + { + dquCICfgDtStr.PsdCfgDtStr[wPsdIndex].IncloudeEsbNum = (UINT8)rtVal; + } + else + { + rtnvalue = 0u; + break; + } + } + } + } + return rtnvalue; +} + +/* +*: RCIݳʼ +*: CHAR * FSName ļָ +*: +*ֵ: 0 ʧ +* 1 ɹ +* by cgh 20260516 +*/ +UINT8 RciCommonConfigDataInit(CHAR* FSName) +{ + UINT8 chReval = CI_ERROR; + + chReval = CiPatternInit(FSName); /*ʼǰ*/ + chReval &= RciSerialCommDataInit(); /*ʼͨ*/ + + return chReval; +} + +/* +*: ͨݳʼ +*: +*: +*ֵ: 0 ʧ +* 1 ɹ +* by cgh 20260516 +*/ +static UINT8 RciSerialCommDataInit(void) +{ + UINT8 chRtnValue = CI_ERROR; /*ֵ*/ + UINT8 chFuncRtn = CI_ERROR; /*ʱֵнӱ*/ + UINT8* pDataAddr = NULL; /*ݵַ*/ + UINT32 DataSize = 0U; /*ݴСֽ*/ + UINT16 realRowCount = 0U; /*ʵʱݵ*/ + UINT16 ii = 0U; /*ѭ*/ + UINT8 chLocalCiId = 0U; /*ID*/ + UINT16 wDataLen = 0U; /*ݿ*/ + UINT16 wTempData = 0U; /*ʱ*/ + UINT16 val = 0U; /*ʱнӱ*/ + UINT8 chCiDevId = 0U; /*CI豸ID*/ + UINT8 chCiDevType = 0U; /*CI豸*/ + UINT8 chLocalRcWorkMode = 0u; /*RCģʽ*/ + + chFuncRtn = dquGetConfigDataNew((const)DataPath, CI_SYSTEM_PARAMETER_DATA_TYPE, CI_SYSTEM_SERIAL_COMM_ID, &pDataAddr, &DataSize, &realRowCount); + if (0U == chFuncRtn) + { + /*ʧ*/ + chRtnValue = CI_ERROR; + } + else + { + chRtnValue = CI_SUCCESS; + + if ((0u != DataSize) && (0u != realRowCount)) + { + if (0U == (DataSize % realRowCount)) + { + chLocalCiId = GetSystemParaLocalCiId(); + chLocalRcWorkMode = GetLocalRcWorkMode(); + wDataLen = (UINT16)(DataSize / realRowCount); + + for (ii = 0u; ii < realRowCount; ii++) + { + val = dquCiShortFromChar(&pDataAddr[0]); + chCiDevId = (UINT8)(val & 0x00FF); + chCiDevType = (UINT8)((val & 0xFF00) >> 8); + + if ((chLocalCiId == chCiDevType) && (chLocalRcWorkMode == chCiDevType)) + { + /*ñͨű־*/ + chRtnValue &= SetLocalSerialCommFlag(SERIAL_COMM_YES); + + /*ñͨ*/ + val = dquCiShortFromChar(&pDataAddr[2]); + chRtnValue &= SetLocalSerialCommData(0U, 0U, val, pDataAddr[4]); + chRtnValue &= SetLocalSerialCommData(0U, 1U, val, pDataAddr[5]); + val = dquCiShortFromChar(&pDataAddr[6]); + chRtnValue &= SetLocalSerialCommData(1U, 0U, val, pDataAddr[8]); + chRtnValue &= SetLocalSerialCommData(1U, 1U, val, pDataAddr[9]); + } + else + { + ; + } + if (CI_ERROR == chRtnValue) + { + break; + } + else + { + pDataAddr += wDataLen; + } + } + } + else + { + /*ݴ*/ + chRtnValue = CI_ERROR; + } + + } + else + { + ; /*,ݳʼɹ*/ + } + } + + return chRtnValue; +} \ No newline at end of file diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.h b/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.h index bb350af..fff1284 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.h +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCIInit.h @@ -427,20 +427,6 @@ UINT8 RouteCfgDtStruFrmLSRouteStr( LS_RouteStruct * pLSRouteStr,RouteConfigDataS UINT8 RouteConfigDataStructInit(CHAR * FSName); -/********************************************* -*ܣнͨŹϵ豸IPȥݣÿ17ݣ -*˵Dataͨ -*ֵ0ʧܣ1ɹ -*********************************************/ -UINT8 TransmitRelationDataStruFrmSZ(UINT16 Data[]); - -/********************************************* -*ܣʼͨŹϵݽṹ -*˵FSNameļָ -*ֵ0ʧܣ1ɹ -*********************************************/ -UINT8 TransmitRelationDataStructInit(CHAR* FSName); - /********************************************* *ܣʼͨŹϵݽṹ壨NEW *˵FSNameļָ @@ -1068,5 +1054,39 @@ INT16 AxisSecCfgDtStruFromLogicSecStr(LogsecSwitchStruct* pSrcSwitchStructBuf, U * add mpt 20260331 *********************************************/ UINT8 AxisSecProtectSwitchInit(void); +/********************************************* +*ܣΪijͬ忨һID +*˵OCSwitchConfigDataStruct * pOCSwitchCfgStr ݽṹ +* add by mpt 20260404 +*ֵ0 ʧܣ1ɹ +*********************************************/ +UINT8 SwitchOtherSwitchFromOCconfig(OCSwitchConfigDataStruct* pOCSwitchCfgStr); +/********************************************* +*ܣΪеͬ忨һID +*˵void +*ֵ0 ʧܣ1ɹ +* add by mpt 20260404 +*********************************************/ +UINT8 AllSwitchOtherSwitchByOCconfig(void); + +/********************************************* +*ܣʼŹESB----͸Ӷʹ +*˵FSNameļָ +* wPsdIndex +*ֵ0ʧܣ1ɹ +* fan 20260421 +*********************************************/ +UINT8 PsdRelateEsbConfigDataInit(UINT16 wPsdIndex); + +/* +*: RCIݳʼ +*: CHAR * FSName ļָ +*: +*ֵ: 0 ʧ +* 1 ɹ +* by cgh 20260516 +*/ +UINT8 RciCommonConfigDataInit(CHAR* FSName); + #endif diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCIInterFace.c b/TSCP/src/APP/ciapp/QueryFiles/dquCIInterFace.c index b3448cb..7000617 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCIInterFace.c +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCIInterFace.c @@ -133,7 +133,7 @@ UINT8 InitAll(CHAR* FSName) { CIInitEmap(dsuEmapStru);/*ΪCIʹõĹݸֵ*/ - RtnVal = CiPatternInit(FSName); /*ʼǰ*/ + RtnVal = RciCommonConfigDataInit(FSName); /*ʼǰ*/ if (0u != RtnVal) /*ʼǰ*/ { /*ʼϵͳݽṹ*/ @@ -171,8 +171,8 @@ UINT8 InitAll(CHAR* FSName) else { #ifdef PLATFORM_2OO2 - (void)printf("CiPattern Init Error\n"); - debug_infor_printf((const)"CiPattern Init Error\n"); + (void)printf("RciCommonConfigDataInit Error\n"); + debug_infor_printf((const)"RciCommonConfigDataInit Error\n"); #endif } } @@ -2379,9 +2379,6 @@ UINT8 ReadSystemParamConfDataNew(const UINT8 ciId,SystemParameterStructNew* Syst /*һʱٱа*/ SystemParameterStru->MaxSectionOfTsr = dquCICfgDtStr.SystemParaStrNew.MaxSectionOfTsr; - /*IVOC-OCͨŹжʱ(ms)*/ - SystemParameterStru->IvocOcCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.IvocOcCommunicationErrorTime; - /*OC-TSLͨŹжʱ䣨ms*/ SystemParameterStru->OcTslCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.OcTslCommunicationErrorTime; @@ -3424,8 +3421,8 @@ void ReadEmapCiConfig(EmapCiConfigStru emapVerArr[]) UINT8 ciId; UINT8 jj = 0U; UINT8 chLocalCiId = 0U; - - + UINT16 k = 0U; + chLocalCiId = GetSystemParaLocalCiId(); if (NULL != emapVerArr) { @@ -3484,14 +3481,30 @@ void ReadEmapCiConfig(EmapCiConfigStru emapVerArr[]) {/*Գ복κ迪*/ SystemParameterStruNew.chCldAndScxMergeFlag = dsuStaticHeadStru.pCIStruStru[i].chCldAndScxMergeFlag; } - - + else + { + /**/ + } } else { ; /*RCģʽУϢRCʼ*/ } } + /*̶ ** CI*/ + for (k = 0U; k < wCIStruSum; k++) + { + ciId = (UINT8)(dsuStaticHeadStru.pCIStruStru[k].wID & 0x00FFU); + if (CI_SUM_MAX > ciId) + { + SystemParameterStruNew.chCiFactoryType[ciId] = dsuStaticHeadStru.pCIStruStru[k].chCiFactoryType; + } + else + { + /**/ + } + } + if (RC_WORK_MODE_TIOC == CI_SYSTEM_TYPE_RCI) { diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCIJDQStruInit.c b/TSCP/src/APP/ciapp/QueryFiles/dquCIJDQStruInit.c index f189fac..2e4f329 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCIJDQStruInit.c +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCIJDQStruInit.c @@ -397,35 +397,27 @@ UINT8 InitRelay_ScreenStru(CHAR* CIDataName) { RelayDataLen.RelayScreenStrLen = wRealRowCount; rowLen = DataSize / wRealRowCount; - if (DataSize < rowLen) + /*̬ռ*/ + RelayData.pRelayScreenStr = (Relay_ScreenStruct*)MyNew((UINT32)(sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen)); + /*̬ռʧ*/ + if (NULL == RelayData.pRelayScreenStr) { + RelayDataLen.RelayScreenStrLen = 0U; rtnValue = 0U; - } else { - /*̬ռ*/ - RelayData.pRelayScreenStr = (Relay_ScreenStruct*)MyNew((UINT32)(sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen)); - /*̬ռʧ*/ - if (NULL == RelayData.pRelayScreenStr) + /*ڴΪЧ*/ + (void)memset(RelayData.pRelayScreenStr, 0x00, sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen); + /*ݵ Ĭг ṹ */ + for (j = 0u; j < RelayDataLen.RelayScreenStrLen; j++) { - RelayDataLen.RelayScreenStrLen = 0U; - rtnValue = 0U; - } - else - { - /*ڴΪЧ*/ - (void)memset(RelayData.pRelayScreenStr, 0x00, sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen); - /*ݵ Ĭг ṹ */ - for (j = 0u; j < RelayDataLen.RelayScreenStrLen; j++) - { - pScreenStr = RelayData.pRelayScreenStr + j; + pScreenStr = RelayData.pRelayScreenStr + j; - /*ݽṹ*/ - rtnValue &= R_ScreenStructFromChar(pDataAddr, pScreenStr, (UINT16)rowLen); - pDataAddr += rowLen; + /*ݽṹ*/ + rtnValue &= R_ScreenStructFromChar(pDataAddr, pScreenStr, (UINT16)rowLen); + pDataAddr += rowLen; - } } } } diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCILSStruInit.c b/TSCP/src/APP/ciapp/QueryFiles/dquCILSStruInit.c index fd38d46..ffcceb5 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCILSStruInit.c +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCILSStruInit.c @@ -1583,40 +1583,33 @@ UINT8 InitLS_OverlapLockCondStru(CHAR *LSDataName) realRowLen = (UINT16)(DataSize / rowLen); LSDataLen.LSOverlapLockCondStruLen = (UINT16)rowLen; - if (DataSize < realRowLen) + /*̬ռ*/ + LSData.pLSOverlapLockCondStru = (LS_OveralpLockCondStru*)MyNew((UINT32)(sizeof(LS_OveralpLockCondStru) * LSDataLen.LSOverlapLockCondStruLen)); + /*̬ռʧ*/ + if (NULL == LSData.pLSOverlapLockCondStru) { - rtnValue = 0U; + /*鳤0Խ*/ + LSDataLen.LSOverlapLockCondStruLen = 0u; + + rtnValue = 0u; } else { - /*̬ռ*/ - LSData.pLSOverlapLockCondStru = (LS_OveralpLockCondStru*)MyNew((UINT32)(sizeof(LS_OveralpLockCondStru) * LSDataLen.LSOverlapLockCondStruLen)); - /*̬ռʧ*/ - if (NULL == LSData.pLSOverlapLockCondStru) + /*ڴΪЧ*/ + (void)memset(LSData.pLSOverlapLockCondStru, 0x00, sizeof(LS_OveralpLockCondStru) * LSDataLen.LSOverlapLockCondStruLen); + + /*ݵ Ĭг ṹ */ + rtnValue = 1u; + for (j = 0u; j < LSDataLen.LSOverlapLockCondStruLen; j++) { - /*鳤0Խ*/ - LSDataLen.LSOverlapLockCondStruLen = 0u; + pTempLSProtSecLockCondStru = LSData.pLSOverlapLockCondStru + j; - rtnValue = 0u; + /*ݽṹ*/ + rtnValue &= LS_OverlapLockCondStruFromChar(pDataAddr, pTempLSProtSecLockCondStru); + + pDataAddr += realRowLen; } - else - { - /*ڴΪЧ*/ - (void)memset(LSData.pLSOverlapLockCondStru, 0x00, sizeof(LS_OveralpLockCondStru) * LSDataLen.LSOverlapLockCondStruLen); - /*ݵ Ĭг ṹ */ - rtnValue = 1u; - for (j = 0u; j < LSDataLen.LSOverlapLockCondStruLen; j++) - { - pTempLSProtSecLockCondStru = LSData.pLSOverlapLockCondStru + j; - - /*ݽṹ*/ - rtnValue &= LS_OverlapLockCondStruFromChar(pDataAddr, pTempLSProtSecLockCondStru); - - pDataAddr += realRowLen; - } - - } } } } @@ -2403,28 +2396,21 @@ UINT8 InitLSSideProtec(CHAR* LSDataName) for (j = 0u; j < wRouteSideProtecNum; j++)/*ÿ*/ { wSideProtecID = LSData.pLSSideProtecGroupStru[i].RouteSideProtecBuf[j].SideProtecID; - if (0u < wSideProtecID)/*еIJID0*/ + for (k = 0u; k < LSDataLen.LSRouteSideProtecStruLen; k++) { - for (k = 0u; k < LSDataLen.LSRouteSideProtecStruLen; k++) + if (wSideProtecID == LSData.pLSRouteSideProtecStru[k].SideProtecID) { - if (wSideProtecID == LSData.pLSRouteSideProtecStru[k].SideProtecID) - { - CommonMemCpy(&LSData.pLSSideProtecGroupStru[i].RouteSideProtecBuf[j], sizeof(SideProtecStru), &LSData.pLSRouteSideProtecStru[k], sizeof(SideProtecStru)); - break;/*ҵ*/ - } - else - { - /**/ - } + (void)CommonMemCpy(&LSData.pLSSideProtecGroupStru[i].RouteSideProtecBuf[j], (UINT32)sizeof(SideProtecStru), &LSData.pLSRouteSideProtecStru[k], (UINT32)sizeof(SideProtecStru)); + break;/*ҵ*/ } - if (k == LSDataLen.LSRouteSideProtecStruLen) + else { - rtnValue = 0u; + /**/ } } - else + if (k == LSDataLen.LSRouteSideProtecStruLen) { - break; + rtnValue = 0u; } } } diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCIPZStru.h b/TSCP/src/APP/ciapp/QueryFiles/dquCIPZStru.h index 8d41f4a..b5df9b0 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCIPZStru.h +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCIPZStru.h @@ -61,5 +61,7 @@ #define CI_SYSTEM_VERGE_KILL_ID ((UINT8)0x0F) /*ӦߵĹת*/ +#define CI_SYSTEM_SERIAL_COMM_ID ((UINT8)0x10) /*ͨñ*/ + #endif diff --git a/TSCP/src/APP/ciapp/QueryFiles/dquCIStru.h b/TSCP/src/APP/ciapp/QueryFiles/dquCIStru.h index d8f6b03..3263ead 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dquCIStru.h +++ b/TSCP/src/APP/ciapp/QueryFiles/dquCIStru.h @@ -21,6 +21,8 @@ #define DEVICE_IP_TYPE ((UINT32)0x40) #define ZC_DSU_TRANSMIT_DATA_ID ((UINT32)4) -#define ZC_DSU_TRANSMIT_DATA_LEN ((UINT16)(34+30)) +#define ZC_DSU_TRANSMIT_DATA_NEW_LEN ((UINT16)(34+30+40))/*ZCDSUͨŹϵݽṹ*/ + +#define ZC_DSU_TRANSMIT_DATA_NEW_NUM_MAX ((UINT16)(50)) /*ZCDSUͨŹϵݽṹ*/ #endif diff --git a/TSCP/src/APP/ciapp/QueryFiles/dqucijdqstru.h b/TSCP/src/APP/ciapp/QueryFiles/dqucijdqstru.h index 58b202f..960f9c0 100644 --- a/TSCP/src/APP/ciapp/QueryFiles/dqucijdqstru.h +++ b/TSCP/src/APP/ciapp/QueryFiles/dqucijdqstru.h @@ -108,7 +108,6 @@ /*ñ*/ #define OC_SWITCH_ID ((UINT8)2) -#define LEN_OC_SWITCH ((UINT8)25) #define SWITCH_BOARD_MODE_MAX 5U /*һOCеģ*/ /*̵ñ*/ #define OC_SWITCH_RELAY_ID ((UINT8)4) diff --git a/TSCP/src/APP/ciapp/RemoteRM/RRMManageAPI.c b/TSCP/src/APP/ciapp/RemoteRM/RRMManageAPI.c index 4d5dfb3..7ba698e 100644 --- a/TSCP/src/APP/ciapp/RemoteRM/RRMManageAPI.c +++ b/TSCP/src/APP/ciapp/RemoteRM/RRMManageAPI.c @@ -1901,12 +1901,14 @@ static UINT8 rrm_CheckTrainHeadInFreeSta(UINT16 trainID, IN const EnvelopeStruct UINT8 chHeadAcStatus = 0U; /*ͷռ״̬*/ /** ڲУ */ - ASSERT_RET_VALUE((NULL == pTemp) || (0U == pTemp->ACCnt), errorCode, 0x80000000U); - - headRelStaID = rrm_PrepareAtsLgcStaOfAC(pTemp->ACID[pTemp->ACCnt - 1U]); - - ASSER_ERROR((0xffffU == headRelStaID), errorCode, 0x40000000U); + ASSER_ERROR((NULL == pTemp) || (0U == pTemp->ACCnt), errorCode, 0x80000000U); + if(0U == errorCode) + { + headRelStaID = rrm_PrepareAtsLgcStaOfAC(pTemp->ACID[pTemp->ACCnt - 1U]); + ASSER_ERROR((0xffffU == headRelStaID), errorCode, 0x40000000U); + } + if (0U == errorCode) { trainNextSta = rrm_PrepareNextStaOfTrain(trainID); diff --git a/TSCP/src/APP/ciapp/Route/DynamicRouteDataManage.c b/TSCP/src/APP/ciapp/Route/DynamicRouteDataManage.c index 060363a..5e90373 100644 --- a/TSCP/src/APP/ciapp/Route/DynamicRouteDataManage.c +++ b/TSCP/src/APP/ciapp/Route/DynamicRouteDataManage.c @@ -2163,32 +2163,24 @@ static UINT8 LockDrSubRouteSwitchCheck(UINT16 wSubRouteId, UINT8 functionId, UIN if (CI_SUCCESS == reResult) { - if (CI_TRADITION_RAILWAY == lineIdentity) + /* + ·еλȷ + ȷRETURN_LOCK_ERR_SWITPOS + ȷCI_SUCCESS + */ + devId = 0u; + devState = 0u; + checkResult = RouteAllSwitchPosCheck(wSubRouteId, &devId, &devState); + if (checkResult == CI_SUCCESS) { - /* - ·еλȷ - ȷRETURN_LOCK_ERR_SWITPOS - ȷCI_SUCCESS - */ - devId = 0u; - devState = 0u; - checkResult = RouteAllSwitchPosCheck(wSubRouteId, &devId, &devState); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ʧܷ */ - reResult = RETURN_LOCK_ERR_SWITPOS; - - } + /* ͨ */ + reResult = CI_SUCCESS; } else { /* ʧܷ */ - reResult = CI_ERROR; + reResult = RETURN_LOCK_ERR_SWITPOS; + } } @@ -3922,32 +3914,30 @@ static UINT8 SetDrSubRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 se } if (CI_SUCCESS == reResult) - { - if (CI_TRADITION_RAILWAY == lineIdentity) + {/*·*/ + /*·δ*/ + devId = 0u; + devState = 0u; + checkResult = RouteRelatedProSwitchYLockCheck(routeId, &devId, &devState); + if (checkResult == CI_SUCCESS) { /* ͨ */ reResult = CI_SUCCESS; } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ + /* ¼ */ + SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_YLOCK_STATE, devState, sendLevel); + /* ʧܷ */ reResult = CI_ERROR; } - } - else - { - /* ʧܷ */ - reResult = CI_ERROR; - } - if (CI_SUCCESS == reResult) - {/*·*/ - if (CI_TRADITION_RAILWAY == lineIdentity) + if (CI_SUCCESS == reResult) { - /*·δ*/ + /*·λȷλòȷɶ*/ devId = 0u; devState = 0u; - checkResult = RouteRelatedProSwitchYLockCheck(routeId, &devId, &devState); + checkResult = DrSubRouteProtSwiPosMovValCheck(routeId, &devId, &devState, sendLevel); if (checkResult == CI_SUCCESS) { /* ͨ */ @@ -3955,37 +3945,12 @@ static UINT8 SetDrSubRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 se } else { - /* ¼ */ - SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_YLOCK_STATE, devState, sendLevel); /* ʧܷ */ reResult = CI_ERROR; } - - if (CI_SUCCESS == reResult) - { - /*·λȷλòȷɶ*/ - devId = 0u; - devState = 0u; - checkResult = DrSubRouteProtSwiPosMovValCheck(routeId, &devId, &devState, sendLevel); - if (checkResult == CI_SUCCESS) - { - /* ͨ */ - reResult = CI_SUCCESS; - } - else - { - /* ʧܷ */ - reResult = CI_ERROR; - } - } - else - { - reResult = CI_ERROR; - } } else { - /* ʧܷ *//* zt ɾش 2022-02-15 */ reResult = CI_ERROR; } } diff --git a/TSCP/src/APP/ciapp/Route/LogicalRouteDataManage.c b/TSCP/src/APP/ciapp/Route/LogicalRouteDataManage.c index 8e9a331..92fea29 100644 --- a/TSCP/src/APP/ciapp/Route/LogicalRouteDataManage.c +++ b/TSCP/src/APP/ciapp/Route/LogicalRouteDataManage.c @@ -2437,7 +2437,9 @@ void LgcSecLogicalUnlockProc(const UINT16 logRouteId, const UINT16 logSectionId, /*0 */ for (jj = chTrainSum; jj < chLgcResTrainSum; jj++) { - (void)ComMemSet(&(pstLgcSecInfo[wLgcBufIndex].szTrainResData[jj]), (UINT16)sizeof(LogicTrainResStruct), 0U); + + /*ԴϢṹ*/ + ResetResInfoStruct(wLgcBufIndex, jj); } pstLgcSecInfo[wLgcBufIndex].chTrainInfoSum = chTrainSum; diff --git a/TSCP/src/APP/ciapp/Route/RouteConfigDataManage.c b/TSCP/src/APP/ciapp/Route/RouteConfigDataManage.c index f278152..c23eb69 100644 --- a/TSCP/src/APP/ciapp/Route/RouteConfigDataManage.c +++ b/TSCP/src/APP/ciapp/Route/RouteConfigDataManage.c @@ -12,7 +12,7 @@ #include "../Switch/SwitchDataManage.h" #include "RouteConfigDataManage.h" - +#include "dquCILSStruInit.h" RouteConfigDataStruct RouteConfigDataStru[ROUTE_SUM_MAX]; /*·ݽṹ,cgh-ϲCID-2539-1˴гʼͳһŵInitAllStaticDataStrнгʼΪں˹*/ UINT16 LocalCiRouteIdBuf[ROUTE_SUM_MAX] = {0u}; /*屾·IDӳ*/ INT16 RouteCurSum = 0; /*·ǰ(͸Ľ·),·⴦*/ diff --git a/TSCP/src/APP/ciapp/Section/AxisSectionDataManage.c b/TSCP/src/APP/ciapp/Section/AxisSectionDataManage.c index b732dba..189236f 100644 --- a/TSCP/src/APP/ciapp/Section/AxisSectionDataManage.c +++ b/TSCP/src/APP/ciapp/Section/AxisSectionDataManage.c @@ -503,20 +503,43 @@ void SetAxisIncludeLogSecArbState(const UINT16 wAxisSectionId, const UINT8 chSta UINT16* pLogSectionIdBuf = NULL;/*ΰ߼ID*/ UINT8 chLogSectionSum = 0U;/*ΰ߼Ŀ*/ UINT8 ii = 0U; + UINT8 cLocalCiId = 0U; + UINT8 chLogSecBelongCi = 0U; + UINT8 chCheckFlag = 0U; pLogSectionIdBuf = GetAxisSecLogSectionIdBuf(wAxisSectionId); chLogSectionSum = GetAxisSecLogSectionSum(wAxisSectionId); - + cLocalCiId = GetSystemParaLocalCiId(); + if (NULL != pLogSectionIdBuf) { for (ii = 0U; ii < chLogSectionSum; ii++) { if ((LGC_SECTION_ARB_NO == chState) || (LGC_SECTION_ARB_YES == chState)) { - SetLgcArbState(pLogSectionIdBuf[ii], chState); + chLogSecBelongCi = GetLogSecBelongCiId(pLogSectionIdBuf[ii]); + chCheckFlag = IsSameLineCI(cLocalCiId, chLogSecBelongCi); + if (SAME_LINE_NO == chCheckFlag) + { + SetLgcArbState(pLogSectionIdBuf[ii], chState); + SetLogSecCbtcArbState(pLogSectionIdBuf[ii], chState); /*ͨͬ·CBTCARBʾ*/ + } + else + { + SetLgcArbState(pLogSectionIdBuf[ii], chState); + } + + } + else + { + /**/ } } } + else + { + /**/ + } } /* diff --git a/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c b/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c index 7a1b4f1..d39455f 100644 --- a/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c +++ b/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.c @@ -1618,7 +1618,8 @@ void ClearLgcSecResTrain(UINT16 wLogSecId) /*0*/ for (ii = chNeedKeepSum; ii < LOGIC_SECTION_RES_SUM_MAX; ii++) { - (void)ComMemSet((UINT8*)&(LogicSectionDataStruCC[wBufIndex].szTrainResData[ii]), (UINT16)sizeof(LogicTrainResStruct), 0U); + /*ԴϢṹ*/ + ResetResInfoStruct(wBufIndex, ii); } LogicSectionDataStruCC[wBufIndex].chTrainInfoSum = chNeedKeepSum; } @@ -2811,7 +2812,7 @@ UINT8 GetLogSecResShareFlag(const UINT16 wLgcSecId) /*ش*/ funRetVal = CI_ERROR; } - return funRetVal; + return LOGIC_SECTION_RES_SHARE_YES; } /* @@ -2886,7 +2887,7 @@ void RemoveLgcSecResTrain(UINT16 wLogSecId, UINT16 wTrainId) if (wLgcResTrainId == wTrainId) { /*ɾгӦ߼Դ*/ - (void)ComMemSet((void *)&pstLgcSecInfo[wLgcBufIndex].szTrainResData[jj], (UINT16)sizeof(LogicTrainResStruct), 0U); + ResetResInfoStruct(wLgcBufIndex, jj); debug_infor_printf((const)"LogSecRes Remove LgcId: %d TrainId:%d Cyc\n" , wLogSecId , wTrainId @@ -3805,7 +3806,9 @@ void LogJumpLockCmdManage(const UINT16 logSectionId, const UINT8 jumpLockState) else { /** Ծ־Ϊ */ + + ClearLogSeceSwitchDanCaoPos(logSectionId);/*λ*/ /** ߼Ծ */ SetLogSecJumpLockState(logSectionId, LOGIC_SECTION_JUMP_LOCK_YES); @@ -3815,9 +3818,13 @@ void LogJumpLockCmdManage(const UINT16 logSectionId, const UINT8 jumpLockState) devState = 0u; retVal = LogicSecRltvPrtctSwLockCheck(logSectionId, &devId, &devState); if (CI_SUCCESS == retVal) - { + {/**/ SetLogSecJumpLockPermFlag(logSectionId, LOGIC_JUMPUNLOCK_PERMISSIVE_YES); } + else + { + SetLogSecJumpLockPermFlag(logSectionId, LOGIC_JUMPUNLOCK_PERMISSIVE_NO); + } } } @@ -4985,7 +4992,7 @@ void SetLogSecLogLockState(const UINT16 wLogSectionId, const UINT8 chLogLockStat { UINT16 wBufIndex = 0U; /*±*/ UINT16 LogSecLockBelongRouteId = 0U; - + UINT8 index = 0U; wBufIndex = GetlogSectionBufIndex(wLogSectionId); /*ȡ±*/ if (LOGIC_SECTION_SUM_MAX > wBufIndex) @@ -5003,9 +5010,10 @@ void SetLogSecLogLockState(const UINT16 wLogSectionId, const UINT8 chLogLockStat else { LogicSectionDataStruCC[wBufIndex].chTrainInfoSum = 0U; - (void)CommonMemSet(LogicSectionDataStruCC[wBufIndex].szTrainResData, \ - (UINT32)sizeof(LogicSectionDataStruCC[wBufIndex].szTrainResData), \ - 0U, (UINT32)sizeof(LogicSectionDataStruCC[wBufIndex].szTrainResData)); + for(index = 0U; index < LOGIC_SECTION_RES_SUM_MAX; index++) + { + ResetResInfoStruct(wBufIndex, index); + } } } @@ -5189,7 +5197,7 @@ void SetLogSecLogLockStateOtherCi(const UINT16 wLogSectionId, const UINT8 chLogL { UINT16 wBufIndex = 0U; /*±*/ UINT8 cLogSecLockState = 0U; /*߼״̬*/ - + UINT8 jj = 0U; wBufIndex = GetlogSectionBufIndex(wLogSectionId); /*ȡ±*/ if (LOGIC_SECTION_SUM_MAX > wBufIndex) @@ -5204,7 +5212,10 @@ void SetLogSecLogLockStateOtherCi(const UINT16 wLogSectionId, const UINT8 chLogL { /*·պ߼վδգ߼ԴгϢ*/ LogicSectionDataStruCC[wBufIndex].chTrainInfoSum = 0U; - (void)CommonMemSet(LogicSectionDataStruCC[wBufIndex].szTrainResData, (UINT32)sizeof(LogicSectionDataStruCC[wBufIndex].szTrainResData), 0U, (UINT32)sizeof(LogicSectionDataStruCC[wBufIndex].szTrainResData)); + for (jj = 0U; jj < LOGIC_SECTION_RES_SUM_MAX; jj++) + { + ResetResInfoStruct(wBufIndex, jj); + } } else { @@ -5719,13 +5730,13 @@ void SetLogSecLockDirHlht(UINT16 wLogSectionId, const UINT8 lockDir) if (bufIndex < LOGIC_SECTION_SUM_MAX) { - if (CI_SYSTEM_DIRECTION_NONE == lockDir) + if ((CI_SYSTEM_DIRECTION_UP == lockDir) || (CI_SYSTEM_DIRECTION_DOWN == lockDir)) { - LogicSectionDataStru[bufIndex].LogLockDir = CI_SYSTEM_DIRECTION_NONE; + LogicSectionDataStru[bufIndex].LogLockDir = lockDir; } else { - LogicSectionDataStru[bufIndex].LogLockDir = lockDir; + LogicSectionDataStru[bufIndex].LogLockDir = CI_SYSTEM_DIRECTION_NONE; } } else @@ -6385,10 +6396,6 @@ UINT8 ReqAlignmentInfoCalc(void) { break; } - else - { - /*ִ*/ - } } } else @@ -6613,4 +6620,35 @@ void SetSendAtsLgcArbState(void) ; /* ݻȡʧ */ } } -} \ No newline at end of file +} + +/* +* ԴϢṹ +* ˵ UINT16 logicSectionId ߼ID +* UINT8 index ԴϢṹ +* ֵ +*/ +void ResetResInfoStruct(UINT16 logicSectionId, UINT8 index) +{ + if (LOGIC_SECTION_SUM_MAX > logicSectionId) + { + + if (LOGIC_SECTION_RES_SUM_MAX > index) + { + LogicSectionDataStruCC[logicSectionId].szTrainResData[index].wTrainId = 0U; + LogicSectionDataStruCC[logicSectionId].szTrainResData[index].chLogicResUsable = LOGIC_SECTION_RES_UNUSABLE; + LogicSectionDataStruCC[logicSectionId].szTrainResData[index].chLogicReturnState = LOGIC_SECTION_TRAIN_RETURN_NO; + LogicSectionDataStruCC[logicSectionId].szTrainResData[index].chTrainApplyState = LOGIC_SECTION_TRAIN_APPLY_NO; + LogicSectionDataStruCC[logicSectionId].szTrainResData[index].chLogicUnlockState = LOGIC_SECTION_TRAIN_UNLOCK_NO; + LogicSectionDataStruCC[logicSectionId].szTrainResData[index].dwRcvUnlockCmdCyc = 0U; + } + else + { + /**/ + } + } + else + { + ; /**/ + } +} diff --git a/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.h b/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.h index 4682b32..bd0cc2d 100644 --- a/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.h +++ b/TSCP/src/APP/ciapp/Section/LogicSectionDataManage.h @@ -1469,7 +1469,13 @@ void SetLogSecPbTacsArbState(const UINT16 wLgcId, const UINT8 chArb); * by cgh 20260330 */ void SetSendAtsLgcArbState(void); - +/* +* ԴϢṹ +* ˵ UINT16 logicSectionId ߼ID +* ֵ +* by cgh 20260330 +*/ +void ResetResInfoStruct(UINT16 logicSectionId, UINT8 index); #ifdef __cplusplus } #endif diff --git a/TSCP/src/APP/ciapp/Section/SectionDefine.h b/TSCP/src/APP/ciapp/Section/SectionDefine.h index fc47938..6516f2b 100644 --- a/TSCP/src/APP/ciapp/Section/SectionDefine.h +++ b/TSCP/src/APP/ciapp/Section/SectionDefine.h @@ -16,9 +16,9 @@ /**/ #define PHYSICAL_SECTION_SUM_MAX ((UINT16)1000) /*ֵ*/ -#define AXIS_SECTION_SUM_MAX ((UINT16)1200) /*ֵ*/ +#define AXIS_SECTION_SUM_MAX ((UINT16)2000) /*ֵ*/ #define AXIS_INCLUDE_LOG_SUM_MAX ((UINT16)50) /*߼ֵ*/ -#define LOGIC_SECTION_SUM_MAX ((UINT16)1500) /*߼ֵ*/ +#define LOGIC_SECTION_SUM_MAX ((UINT16)2000) /*߼ֵ*/ #define PHYSICAL_INCLUDE_AXIS_SUM_MAX ((UINT16)10) /*ΰֵ*/ #define AXIS_INCLUDE_SWITCH_SUM_MAX ((UINT16)4) /*ΰĵֵ*/ #define AXIS_INCLUDE_LINK_SUM_MAX ((UINT16)5) /*ΰLINKֵ*/ diff --git a/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.c b/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.c index b8e9a87..171097d 100644 --- a/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.c +++ b/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.c @@ -1726,3 +1726,39 @@ UINT8 GetSwitchWhetherBelongThisOc(UINT16 switchId, UINT8 ocId) return retVal; } +/* +* ȡڱOCͬ忨ĵID +* ˵ +* +* UINT16 switchId ID +* UINT8 ocId OCID +* ֵ + <500 ID + =500 Ƿֵ +* Add by mpt 20260404 +*/ +UINT16 GetSwitchThisOcOtherSwitchId(UINT16 switchId, UINT8 ocId) +{ + UINT16 bufIndex = 0u; /*±*/ + UINT8 i = 0u; + UINT16 retVal = SWITCH_SUM_MAX; + UINT8 chOCIndex = 0U; + + bufIndex = GetSwitchConfigBufIndex(switchId); /*ȡ±*/ + + if ((SWITCH_SUM_MAX > bufIndex) && (OC_SUM_MAX > ocId) && (0u < ocId)) + { + chOCIndex = GetSwitchThisOCIndex(switchId, ocId); + if (SWITCH_BELONG_OC_MAX > chOCIndex) + { + retVal = SwitchConfigDataStru[bufIndex].belongOCConfigData[chOCIndex].wThisOcOtherSwitchId; + } + else + { + /*ִ*/ + } + } + + return retVal; +} + diff --git a/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.h b/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.h index 29829c8..0d9219b 100644 --- a/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.h +++ b/TSCP/src/APP/ciapp/Switch/SwitchConfigDataManage.h @@ -39,6 +39,7 @@ typedef struct S_SwitchBelongOCConfigDataStr/* UINT8 chSwitchBoardNum; /*忨*/ UINT8 ModuleAddr[MAX_OC_SWITCH_INCLUDE_BOARD_NUM]; /*ַID*/ UINT8 szPlusBoxId; /*ת޻ڲID*/ + UINT16 wThisOcOtherSwitchId; /*ͬOCͬ忨һID*/ }SwitchBelongOCConfigDataStr; typedef struct S_SwitchConfigDataStruct @@ -120,6 +121,7 @@ typedef struct S_OC_SwitchConfigDataStruct UINT16 BelongOcId; /*OCID(ֶ)*/ UINT8 ModuleAddrA[MAX_OC_SWITCH_INCLUDE_BOARD_NUM]; /*Aϵַ*/ UINT8 ModuleAddrB[MAX_OC_SWITCH_INCLUDE_BOARD_NUM]; /*Bϵַ*/ + UINT16 otherSwitchId; /*ͬOCͬ忨һID(ֶ)*/ }OCSwitchConfigDataStruct; /*ɰOCݱ*/ @@ -670,6 +672,18 @@ UINT8 GetSwitchThisOcOtherOCId(const UINT16 switchId, const UINT8 ocId); * Add by mpt 20260330 */ UINT8 GetSwitchWhetherBelongThisOc(UINT16 switchId, UINT8 ocId); +/* +* ȡڱOCͬ忨ĵID +* ˵ +* +* UINT16 switchId ID +* UINT8 ocId OCID +* ֵ + <500 ID + =500 Ƿֵ +* Add by mpt 20260404 +*/ +UINT16 GetSwitchThisOcOtherSwitchId(UINT16 switchId, UINT8 ocId); #ifdef __cplusplus } #endif diff --git a/TSCP/src/APP/ciapp/Switch/SwitchDataManage.c b/TSCP/src/APP/ciapp/Switch/SwitchDataManage.c index fd57f0c..4523ebe 100644 --- a/TSCP/src/APP/ciapp/Switch/SwitchDataManage.c +++ b/TSCP/src/APP/ciapp/Switch/SwitchDataManage.c @@ -1159,14 +1159,11 @@ void SetSwitchDrivePostion(const UINT16 switchId, const UINT8 drivePosition) UINT8 singleSwitchCurPosition = 0U; UINT16 switchOtherId = 0U; /*˫һID*/ UINT8 ciPattern = GetLocalCiPattern(); - UINT32 dwCurCycleNum = 0u; bufIndex = GetSwitchConfigBufIndex(switchId); /*ȡ±*/ switchOtherId = GetDSwitchOtherId(switchId); bufIndex2 = GetSwitchConfigBufIndex(switchOtherId); /*ȡ˫±*/ - dwCurCycleNum = Get2oo2CurCycleNum(); - if (bufIndex < SWITCH_SUM_MAX) { @@ -1190,9 +1187,7 @@ void SetSwitchDrivePostion(const UINT16 switchId, const UINT8 drivePosition) /*λ*/ SwitchDataStru[bufIndex].SwitchDrivePos = drivePosition; /*ʼʱ*/ - SetSwitchDriveStartCycNum(switchId, dwCurCycleNum); - /*õʼڣֱλʱ0*/ - SetSwitchOutputDrvCmdCycNum(switchId, dwCurCycleNum); + SetSwitchDriveStartCycNum(switchId, Get2oo2CurCycleNum()); } } else @@ -1228,10 +1223,7 @@ void SetSwitchDrivePostion(const UINT16 switchId, const UINT8 drivePosition) /*λ*/ SwitchDataStru[bufIndex2].SwitchDrivePos = drivePosition; /*ʼʱ*/ - SetSwitchDriveStartCycNum(switchOtherId, dwCurCycleNum); - - /*õʼڣֱλʱ0*/ - SetSwitchOutputDrvCmdCycNum(switchOtherId, dwCurCycleNum); + SetSwitchDriveStartCycNum(switchOtherId, Get2oo2CurCycleNum()); } } else @@ -3278,7 +3270,7 @@ void SetSwitchOcPlusBoxSateState(const UINT16 switchId, const UINT8 ocId, const bufIndex = GetSwitchConfigBufIndex(switchId); /*ȡ±*/ chOCIndex = GetSwitchThisOCIndex(switchId, ocId); - if ((SWITCH_SUM_MAX > bufIndex) && (chOCIndex < SWITCH_BELONG_OC_MAX)) + if ((SWITCH_SUM_MAX > bufIndex) && (SWITCH_BELONG_OC_MAX >chOCIndex)) { SwitchDataStru[bufIndex].belongOCData[chOCIndex].PlusBoxSate = state; } @@ -3306,7 +3298,7 @@ UINT8 GetSwitchOcPlusBoxSateState(const UINT16 switchId, const UINT8 ocId) bufIndex = GetSwitchConfigBufIndex(switchId); /*ȡ±*/ chOCIndex = GetSwitchThisOCIndex(switchId, ocId); - if ((SWITCH_SUM_MAX > bufIndex) && (chOCIndex < SWITCH_BELONG_OC_MAX)) + if ((SWITCH_SUM_MAX > bufIndex) && (SWITCH_BELONG_OC_MAX > chOCIndex)) { ret = SwitchDataStru[bufIndex].belongOCData[chOCIndex].PlusBoxSate; } @@ -3371,7 +3363,7 @@ UINT8 GetSwitchThisOCBoardState(const UINT16 switchId, const UINT8 ocId) UINT8 num = 0u; UINT8 i = 0u; UINT8 chSwitchThisOCBoardNum = 0u; - UINT8 chOCIndex = 0U; + UINT8 chOCIndex = 0u; UINT8 addrAState = 0u; UINT8 addrBState = 0u; UINT8 retVal = SWITCH_BOARD_FAULT; @@ -3384,20 +3376,23 @@ UINT8 GetSwitchThisOCBoardState(const UINT16 switchId, const UINT8 ocId) chSwitchThisOCBoardNum = GetSwitchThisOCBoardNum(switchId, ocId); if (SWITCH_BELONG_OC_MAX > chOCIndex) { - for (i = 0; i < (chSwitchThisOCBoardNum/2u); i+=2u) + if (0u < chSwitchThisOCBoardNum) { - addrAState = SwitchDataStru[bufIndex].belongOCData[chOCIndex].BoardStateBuf[i]; - addrBState = SwitchDataStru[bufIndex].belongOCData[chOCIndex].BoardStateBuf[i+1]; - if ((SWITCH_BOARD_FAULT == addrAState) && (SWITCH_BOARD_FAULT == addrBState)) + retVal = SWITCH_BOARD_NORMAL;/*Ϊ*/ + for (i = 0u; i < (chSwitchThisOCBoardNum - 1u); i += 2u) { - retVal = SWITCH_BOARD_FAULT; - break; + addrAState = SwitchDataStru[bufIndex].belongOCData[chOCIndex].BoardStateBuf[i]; + addrBState = SwitchDataStru[bufIndex].belongOCData[chOCIndex].BoardStateBuf[i + 1u]; + if ((SWITCH_BOARD_FAULT == addrAState) && (SWITCH_BOARD_FAULT == addrBState)) + { + retVal = SWITCH_BOARD_FAULT; + break; + } } } - - if ((0U < chSwitchThisOCBoardNum) && (i == chSwitchThisOCBoardNum)) - { - retVal = SWITCH_BOARD_NORMAL; + else + {/*쳣֧Ϊ*/ + retVal = SWITCH_BOARD_FAULT; } } @@ -3529,7 +3524,7 @@ void SetSwitchOutputDrvCmdCycNum(const UINT16 switchId, const UINT32 cycNum) { UINT16 bufIndex = 0u; /*±*/ bufIndex = GetSwitchConfigBufIndex(switchId); /*ȡ±*/ - if (bufIndex < SWITCH_SUM_MAX) + if (SWITCH_SUM_MAX >bufIndex) { SwitchDataStru[bufIndex].SwitchOutputDrvCmdCycNum = cycNum; } @@ -3546,7 +3541,7 @@ UINT32 GetSwitchOutputDrvCmdCycNum(const UINT16 switchId) UINT32 retVal = CI_ERROR; bufIndex = GetSwitchConfigBufIndex(switchId); /*ȡ±*/ - if (bufIndex < SWITCH_SUM_MAX) + if (SWITCH_SUM_MAX > bufIndex) { retVal = SwitchDataStru[bufIndex].SwitchOutputDrvCmdCycNum; } diff --git a/TSCP/src/APP/ciapp/System/CiSystemDefine.h b/TSCP/src/APP/ciapp/System/CiSystemDefine.h index 3370bd0..360ab4d 100644 --- a/TSCP/src/APP/ciapp/System/CiSystemDefine.h +++ b/TSCP/src/APP/ciapp/System/CiSystemDefine.h @@ -125,6 +125,9 @@ extern UINT8 CI_SYSTEM_TYPE_RCI; #define CI_DEVICE_TYPE_BACKUP_VOBC ((UINT8)0xBE) /*VOBCг*/ #define CI_DEVICE_TYPE_ZHAOCHA ((UINT8)0xC0) /*ղ*/ +#define CI_DEVICE_TYPE_SWITCH_PHYSEC ((UINT8)0xC1) /*Σͨӿʹ*/ +#define CI_DEVICE_TYPE_XIANSU_LOGSEC ((UINT8)0xC2) /*߼Σͨӿʹ*/ + #define CI_DEVICE_TYPE_CMD ((UINT8)0x0B) /**/ diff --git a/TSCP/src/APP/ciapp/System/SystemConfigDefine.h b/TSCP/src/APP/ciapp/System/SystemConfigDefine.h index 05ca236..d1c1b07 100644 --- a/TSCP/src/APP/ciapp/System/SystemConfigDefine.h +++ b/TSCP/src/APP/ciapp/System/SystemConfigDefine.h @@ -59,10 +59,10 @@ /*V13.0汾ݽṹ 2018.8.3*/ /*汾*/ -#define VER_MAIN_SUBCI_CI_CID ((UINT8)25) /*ϵͳ汾*/ +#define VER_MAIN_SUBCI_CI_CID ((UINT8)27) /*ϵͳ汾*/ #define VER_SUB_SUBCI_CI_CID ((UINT8)0) /*ϵͳӰ汾*/ #define VER_BRUNCH_CI_CID ((UINT8)0) /*֧汾..........0....֧1 2 */ -#define VER_RETURN_SUBCI_CI_CID ((UINT8)2) /*ϵͳع汾*/ +#define VER_RETURN_SUBCI_CI_CID ((UINT8)0) /*ϵͳع汾*/ #ifdef SCADE_MODE /*SCADE汾*/ @@ -75,30 +75,30 @@ /*д汾*/ #define VER_SOFT_PRODUCT ((UINT8)40) /*Ʒ*/ #define VER_SOFT_MODUAL_APP ((UINT8)1) /*ģ*/ -#define VER_SOFT_MIANVERSION ((UINT8)25) /*汾*/ -#define VER_SOFT_SUBVERSION ((UINT8)3) /*Ӱ汾*/ +#define VER_SOFT_MIANVERSION ((UINT8)27) /*汾*/ +#define VER_SOFT_SUBVERSION ((UINT8)1) /*Ӱ汾*/ #endif /*ɼݵĹݽṹ汾*/ #define VER_1_PUBLIC_FS_1 ((UINT8)31) -#define VER_1_PUBLIC_FS_2 ((UINT8)5) +#define VER_1_PUBLIC_FS_2 ((UINT8)7) #define VER_1_PUBLIC_FS_3 ((UINT8)0) #define VER_1_PUBLIC_FS_4 ((UINT8)0) #define VER_2_PUBLIC_FS_1 ((UINT8)23) #define VER_2_PUBLIC_FS_2 ((UINT8)2) #define VER_2_PUBLIC_FS_3 ((UINT8)1) -#define VER_2_PUBLIC_FS_4 ((UINT8)5) +#define VER_2_PUBLIC_FS_4 ((UINT8)7) #define VER_3_PUBLIC_FS_1 ((UINT8)28) #define VER_3_PUBLIC_FS_2 ((UINT8)0) #define VER_3_PUBLIC_FS_3 ((UINT8)0) -#define VER_3_PUBLIC_FS_4 ((UINT8)22) +#define VER_3_PUBLIC_FS_4 ((UINT8)25) /*ɼݵ˽ݽṹ汾*/ -#define VER_1_PRIVATE_FS_1 ((UINT8)50) +#define VER_1_PRIVATE_FS_1 ((UINT8)52) #define VER_1_PRIVATE_FS_2 ((UINT8)0) #define VER_2_PRIVATE_FS_1 ((UINT8)0xFF) diff --git a/TSCP/src/APP/ciapp/System/SystemParameterManage.c b/TSCP/src/APP/ciapp/System/SystemParameterManage.c index 0f90313..32b74fb 100644 --- a/TSCP/src/APP/ciapp/System/SystemParameterManage.c +++ b/TSCP/src/APP/ciapp/System/SystemParameterManage.c @@ -23,6 +23,8 @@ static UINT16 LocalCTProtectSecUnlockTime = 0u;/* static UINT16 LocalUTNearUnLockTime = 0u;/*UTӽʱʱ䣨s*/ static UINT16 LocalCTNearUnLockTime = 0u;/*CTӽʱʱ䣨s*/ static UINT8 LocalWaysidePattern = 0u; /*Լ̵ӿ*/ +UINT8 gSerialCommFlag = SERIAL_COMM_NO; /*ͨű־*/ +SerialCommData gSzSerialCommData[SERIAL_GROUP_SUM_MAX] = { 0U }; /*ͨ*/ static UINT8 OCSswitch = 0u; /*OC-S*/ /* RCϲTIOCܻ */ @@ -1541,6 +1543,45 @@ UINT16 GetTiocSystemParameterData(UINT32* pConfigDataAdderBuf, UINT16* pConfigDa ;/*޴ */ } + /*Լ̵ӿ*/ + wTmpLen = 1u + wTmpConfigDataSum; + if (wBufMaxLen >= wTmpLen) + { + pConfigDataAdderBuf[wTmpConfigDataSum] = &LocalWaysidePattern; + pConfigDataLenBuf[wTmpConfigDataSum] = (UINT16)sizeof(UINT8); + wTmpConfigDataSum++; + } + else + { + ;/*޴ */ + } + + /*ͨű־*/ + wTmpLen = 1u + wTmpConfigDataSum; + if (wBufMaxLen >= wTmpLen) + { + pConfigDataAdderBuf[wTmpConfigDataSum] = &gSerialCommFlag; + pConfigDataLenBuf[wTmpConfigDataSum] = (UINT16)sizeof(UINT8); + wTmpConfigDataSum++; + } + else + { + ;/*޴ */ + } + + /*ͨ*/ + wTmpLen = 1u + wTmpConfigDataSum; + if (wBufMaxLen >= wTmpLen) + { + pConfigDataAdderBuf[wTmpConfigDataSum] = &gSzSerialCommData; + pConfigDataLenBuf[wTmpConfigDataSum] = (UINT16)(sizeof(SerialCommData) * (SERIAL_GROUP_SUM_MAX)); + wTmpConfigDataSum++; + } + else + { + ;/*޴ */ + } + /*OCݽṹ*/ wTmpLen = 1u + wTmpConfigDataSum; if (wBufMaxLen >= wTmpLen) @@ -2458,7 +2499,7 @@ UINT16 GetTiocSystemParameterData(UINT32* pConfigDataAdderBuf, UINT16* pConfigDa ;/* ޴ */ } - /* RC/CIϵͳת޻лʱ(λS) */ + /* RC/CIϵͳת޻лʱ(λms) */ wTmpLen = 1u + wTmpConfigDataSum; if (wBufMaxLen >= wTmpLen) { @@ -2470,7 +2511,7 @@ UINT16 GetTiocSystemParameterData(UINT32* pConfigDataAdderBuf, UINT16* pConfigDa { ;/* ޴ */ } - /* RC/CIϵͳת޻лʱ(λS) */ + /* RC/CIϵͳת޻лʱ(λms) */ wTmpLen = 1u + wTmpConfigDataSum; if (wBufMaxLen >= wTmpLen) { @@ -2907,7 +2948,7 @@ OtherCiParaStruct GetOtherCiPara(const UINT8 chOtherCiId) /* * ȡCվBUTʱ׷ٹܿ * ˵ -* ֵaaر 55 +* ֵaa 55ر * by cgh 20240815 */ UINT8 GetNoCGFollowUtSwitch(void) @@ -3280,9 +3321,9 @@ UINT32 GetSwitchMachineCutInterval(void) return wSwitchMachineCutInterval; } /* -* ȡRC/CIϵͳת޻лʱ(λS) +* ȡRC/CIϵͳת޻лʱ(λms) * ˵ -* ֵRC/CIϵͳת޻лʱ(λS) +* ֵRC/CIϵͳת޻лʱ(λms) * by mpt 20260324 */ UINT32 GetSwitchMachineDrvCutInterval(void) @@ -3325,3 +3366,152 @@ UINT8 GetLocalCiOCSswitch(void) { return OCSswitch; } + +/* +* ȡϢ +* ˵const UINT8 chCiId +* ֵϢ +* BY:lyj +*/ +UINT8 GetCiFactoryType(const UINT8 chCiId) +{ + UINT8 chRet = 0U; + if (CI_SUM_MAX > chCiId) + { + chRet = SystemParameterStruNew.chCiFactoryType[chCiId]; + } + else + { + /**/ + } + return chRet; +} +/** +* @brief ñͨű־ +* @param[in] UINT8 chSerialCommFlag ͨű־ +* @return CI_SUCCESS óɹ CI_ERROR ʧ +* @note by cgh 20260507 +*/ +UINT8 SetLocalSerialCommFlag(UINT8 chSerialCommFlag) +{ + UINT8 chReval = CI_ERROR; + + if ((SERIAL_COMM_YES == chSerialCommFlag) || (SERIAL_COMM_NO == chSerialCommFlag)) + { + gSerialCommFlag = chSerialCommFlag; + chReval = CI_SUCCESS; + } + else + { + ; + } + + return chReval; +} + +/** +* @brief ȡͨű־ +* @param[in] void +* @return SERIAL_COMM_YES ִ֧ͨ chSerialCommFlag ִ֧ͨ +* @note by cgh 20260507 +*/ +UINT8 GetLocalSerialCommFlag(void) +{ + return gSerialCommFlag; +} + +/** +* @brief ñͨ +* @param[in] UINT8 chGroupIndex +* @param[in] UINT8 chPortIndex ˿ +* @param[in] UINT16 wSerialCommCiId ͨID +* @param[in] UINT8 chSerialCommPort ͨŶ˿ں +* @return CI_SUCCESS óɹ CI_ERROR ʧ +* @note by cgh 20260507 +*/ +UINT8 SetLocalSerialCommData(UINT8 chGroupIndex,UINT8 chPortIndex,UINT16 wSerialCommCiId,UINT8 chSerialCommPort) +{ + UINT8 chReval = CI_ERROR; + + if ((SERIAL_GROUP_SUM_MAX > chGroupIndex) && (CI_SUM_MAX > wSerialCommCiId) && (SERIAL_PORT_SUM_MAX > chPortIndex)) + { + gSzSerialCommData[chGroupIndex].wSerialCommOtherCiId = wSerialCommCiId; + gSzSerialCommData[chGroupIndex].chSerialCommPort[chPortIndex] = chSerialCommPort; + + chReval = CI_SUCCESS; + } + else + { + ; + } + + return chReval; +} + +/** +* @brief ȡͨ +* @param[in] void +* @return ͨ +* @note by cgh 20260507 +*/ +SerialCommData* GetLocalSerialCommData(void) +{ + return gSzSerialCommData; +} + +/** +* @brief 豸ȡӦĴ +* @param[in] UINT16 DeviceName 豸 +* @param[in] UINT8* pSerialGroup ˿ +* @return ͨ +* @note by cgh 20260507 +*/ +UINT8 IsSerialDevice(UINT16 DeviceName, UINT8* pSerialGroup) +{ + UINT8 chReval = CI_ERROR; + UINT8 chLocalRcWorkMode = 0u; /*RCģʽ*/ + UINT8 cDstType = 0U; /*Ŀ豸*/ + UINT8 cDstId = 0U; /*Ŀ豸ID*/ + UINT8 chSerialCommFlag = 0U; /* ͨű־ */ + SerialCommData* szSerialCommData = NULL; /*ͨ*/ + UINT8 cSerialGroupIndex = 0U; + + chLocalRcWorkMode = GetLocalRcWorkMode(); + cDstType = (UINT8)((DeviceName & 0xFF00U) >> 8U); + cDstId = (UINT8)(DeviceName & 0x00FFU); + + if ((chLocalRcWorkMode == cDstType) && (NULL != pSerialGroup)) + { + /* жϵǰǷ߱ͨŵĹ */ + chSerialCommFlag = GetLocalSerialCommFlag(); + szSerialCommData = GetLocalSerialCommData(); + + if ((SERIAL_COMM_YES == chSerialCommFlag) && (NULL != szSerialCommData)) + { + for (cSerialGroupIndex = 0U; cSerialGroupIndex < SERIAL_GROUP_SUM_MAX; cSerialGroupIndex++) + { + if (DeviceName == szSerialCommData[cSerialGroupIndex].wSerialCommOtherCiId) + { + *pSerialGroup = cSerialGroupIndex; + chReval = CI_SUCCESS; + break; + } + else + { + /*ҵڶ*/ + ; + } + } + } + else + { + ; + } + } + else + { + + } + + return chReval; +} \ No newline at end of file diff --git a/TSCP/src/APP/ciapp/System/SystemParameterManage.h b/TSCP/src/APP/ciapp/System/SystemParameterManage.h index 150e918..654d97b 100644 --- a/TSCP/src/APP/ciapp/System/SystemParameterManage.h +++ b/TSCP/src/APP/ciapp/System/SystemParameterManage.h @@ -108,6 +108,7 @@ extern "C" { #define FUNC_REOPRN_SET_NEAR ((UINT8)73) /*ؿźǷ·ӽ״̬أ0xAA-ؿĬýӽ 0x55-ؿݽӽռ״̬ýӽ/δӽ*/ #define FUNC_OVERLAP_UT_UNLOCK_MODE ((UINT8)74) /*UTгռѹͣʱνʽ*/ #define FUNC_PSD_EXCEPT_CANCLE_TYPE ((UINT8)75) /*쳣򿪺쳣ʽ0xAA ATS 0xBA0x55δ쳣Զ*/ +#define FUNC_PSD_KEEP_CLOSE_TYPE ((UINT8)76) /*ϵͳ/رվ̨ԭ*/ #define CiSum_ID ((UINT16)1)/*ʵվ */ @@ -259,9 +260,15 @@ extern "C" { #define RC_LINK_LINE_YES ((UINT8)0x55U) /*߱*/ #define RC_LINK_LINE_NO ((UINT8)0xAAU) /*߱*/ -#define OC_S_ON ((UINT8)0xAA) /*OC-S*/ +#define OC_S_ON ((UINT8)0xAA) /*֧OC-S*/ #define OC_S_OFF ((UINT8)0x55) /*֧OC-S*/ +#define SERIAL_GROUP_SUM_MAX 2 /*ͨ豸ֵ */ +#define SERIAL_PORT_SUM_MAX 2 /*ͨŶ˿ֵ */ + +#define SERIAL_COMM_YES ((UINT8)0xAAU) /*ִ֧ͨ*/ +#define SERIAL_COMM_NO ((UINT8)0x55U) /*ִ֧ͨ*/ + /*ϵͳṹ*/ typedef struct S_SystemParameterStruct { @@ -375,7 +382,6 @@ typedef struct S_SystemParaStruct UINT8 MaxTsrSpeed;/*ʱ*/ UINT16 MaxTsrNum;/*һʱٵ*/ UINT16 MaxSectionOfTsr;/*һʱٱа߼*/ - UINT32 IvocOcCommunicationErrorTime;/*IVOC-OCͨŹжʱ(ms),add by yt202231գ䳵ϵͳ*/ UINT32 TmcOcCommunicationErrorTime;/*TMC-OCͨŹжʱ(ms),add by yt202231գ䳵ϵͳ*/ UINT32 OcTslCommunicationErrorTime;/*OC-TSLͨŹжʱ䣨ms,add by yt202231գ䳵ϵͳ*/ UINT8 LinkLogicDirUpAndDown; /*ϵͳ߼зĹϵ,add by yt202231գ䳵ϵͳ*/ @@ -395,6 +401,7 @@ typedef struct S_SystemParaStruct UINT8 chNoCGFollowUtSwitch; /*CվBUTǿ׷ٹܿ aa 55ر*/ OtherCiParaStruct otherCICiParaStru[CI_SUM_MAX]; /**/ UINT8 chCldAndScxMergeFlag; /*Գߺ迪أ0x55 裬0xaa */ + UINT8 chCiFactoryType[CI_SUM_MAX]; /*̶*/ /************************************************/ }SystemParameterStructNew; @@ -418,6 +425,12 @@ typedef struct S_CI_OC_Relation UINT16 OcIdNum; }CiOcRelateion; +typedef struct S_SERIAL_COMM_DATA +{ + UINT16 wSerialCommOtherCiId; /*ͨID*/ + UINT8 chSerialCommPort[SERIAL_PORT_SUM_MAX]; /*ͨŶ˿*/ +}SerialCommData; + /*******************************ȫֱ*******************************/ extern UINT8 LocalCiId; /*ID*/ @@ -506,6 +519,8 @@ extern UINT8 localBackUpFlag; /* extern UINT32 dwDownWashWaitAcceptTime; /*ģʽϴȴֵԱͬʱ䣨S*/ extern UINT32 LineMinTrainLength; /*ϵͳݣ·С*/ extern UINT32 wJXTCStopDetectTime; /*϶ֹ̽ͣʱ䣨s*/ +extern UINT8 gSerialCommFlag; /*ͨű־*/ +extern SerialCommData gSzSerialCommData[SERIAL_GROUP_SUM_MAX]; /*ͨ*/ /* * ϵͳʱת * ˵ void @@ -1353,7 +1368,7 @@ OtherCiParaStruct GetOtherCiPara(const UINT8 chOtherCiId); /* * ȡCվBUTǿ׷ٹܿ * ˵ -* ֵaaر 55 +* ֵaa 55ر * by cgh 20240815 */ UINT8 GetNoCGFollowUtSwitch(void); @@ -1544,9 +1559,9 @@ void SetCiFunctionSwitchConfig(UINT8 chFunctionConfigIndex, UINT8 chSwitchVal); */ UINT32 GetSwitchMachineCutInterval(void); /* -* ȡRC/CIϵͳת޻лʱ(λS) +* ȡRC/CIϵͳת޻лʱ(λms) * ˵ -* ֵRC/CIϵͳת޻лʱ(λS) +* ֵRC/CIϵͳת޻лʱ(λms) * by mpt 20260324 */ UINT32 GetSwitchMachineDrvCutInterval(void); @@ -1569,6 +1584,57 @@ UINT8 SetLocalCiOCSswitch(UINT8 funSwitch); * ֵOCS */ UINT8 GetLocalCiOCSswitch(void); +/* +* ȡϢ +* ˵const UINT8 chCiId +* ֵϢ +* BY:lyj +*/ +UINT8 GetCiFactoryType(const UINT8 chCiId); + +/** +* @brief ñͨű־ +* @param[in] UINT8 chSerialCommFlag ͨű־ +* @return CI_SUCCESS óɹ CI_ERROR ʧ +* @note by cgh 20260507 +*/ +UINT8 SetLocalSerialCommFlag(UINT8 chSerialCommFlag); + +/** +* @brief ȡͨű־ +* @param[in] void +* @return SERIAL_COMM_YES ִ֧ͨ chSerialCommFlag ִ֧ͨ +* @note by cgh 20260507 +*/ +UINT8 GetLocalSerialCommFlag(void); + +/** +* @brief ñͨ +* @param[in] UINT8 chGroupIndex +* @param[in] UINT8 chPortIndex ˿ +* @param[in] UINT16 wSerialCommCiId ͨID +* @param[in] UINT8 chSerialCommPort ͨŶ˿ں +* @return CI_SUCCESS óɹ CI_ERROR ʧ +* @note by cgh 20260507 +*/ +UINT8 SetLocalSerialCommData(UINT8 chGroupIndex, UINT8 chPortIndex, UINT16 wSerialCommCiId, UINT8 chSerialCommPort); + +/** +* @brief ȡͨ +* @param[in] void +* @return ͨ +* @note by cgh 20260507 +*/ +SerialCommData* GetLocalSerialCommData(void); + +/** +* @brief 豸ȡӦĴ +* @param[in] UINT16 DeviceName 豸 +* @param[in] UINT8* pSerialGroup ˿ +* @return ͨ +* @note by cgh 20260507 +*/ +UINT8 IsSerialDevice(UINT16 DeviceName, UINT8* pSerialGroup); #ifdef __cplusplus } diff --git a/TSCP/src/APP/ciapp/Train/TrainDataManage.c b/TSCP/src/APP/ciapp/Train/TrainDataManage.c index 7465ff8..222b597 100644 --- a/TSCP/src/APP/ciapp/Train/TrainDataManage.c +++ b/TSCP/src/APP/ciapp/Train/TrainDataManage.c @@ -185,6 +185,12 @@ static void SetTrainAtsScreenProc(void); */ static UINT32 GetTrainTransBadCyc(const UINT16 wTrainId); +/* +* ȡָгͨ(IVOC)жں +* ˵ const UINT16 wTrainId, гID +* ֵ гͨжں +*/ +static UINT32 GetTrainIvocTransBadCyc(const UINT16 wTrainId); /* * ָгܷתΪUCT * ˵ const UINT16 wTrainId, гID @@ -536,6 +542,33 @@ UINT8 GetTrainTransitmitStat(const UINT16 wTrainId) return chRetVal; } + +/* +* ȡָг(IVOC)ͨ״̬ +* ˵ const UINT16 wTrainId, гID +* ֵ 0: ȡʧ +* 0x55: ͨ״̬ +* 0xAA: ʧͨ +* 0xFF: ͨ״̬δ֪ +* : qw.liu 2022-02-24 +*/ +UINT8 GetTrainIvocTransitmitStat(const UINT16 wTrainId) +{ + UINT8 chRetVal = CI_ERROR; + UINT16 wBufIndex = 0U; + + wBufIndex = GetTrainBufIndex(wTrainId); + if (TRAIN_SUM_MAX > wBufIndex) + { + chRetVal = gstTrainInfo[wBufIndex].chIvocTransmitStat; + } + else + { + chRetVal = CI_ERROR; + } + + return chRetVal; +} /* * ȡָгȼ * ˵ const UINT16 wTrainId, гID @@ -1086,6 +1119,47 @@ UINT8 SetTrainTransmitStat(const UINT16 wTrainId,const UINT8 chTrainmitStat) return chRetVal; } + +/* +* ָг(IVOC)ͨ״̬ +* ˵ const UINT16 wTrainId, гID +* const UINT8 chTrainmitStat ͨ״̬ +* ֵ CI_ERROR: ʧ +CI_SUCCESS:ݳɹ +* 0x55 : ͨ״̬ +* 0xAA : ʧͨ +* 0xFF : ͨ״̬δ֪ +* : qw.liu 2025 - 05 - 08 +*/ +UINT8 SetTrainIvocTransmitStat(const UINT16 wTrainId, const UINT8 chTrainmitStat) +{ + UINT8 chRetVal = CI_ERROR; + UINT16 wBufIndex = 0U; + + wBufIndex = GetTrainBufIndex(wTrainId); + if (TRAIN_SUM_MAX > wBufIndex) + { + if ((TRAIN_COMM_STATE_GOOD == chTrainmitStat) + || (TRAIN_COMM_STATE_BAD == chTrainmitStat) + || (TRAIN_COMM_STATE_UNKNOWN == chTrainmitStat)) + { + gstTrainInfo[wBufIndex].chIvocTransmitStat = chTrainmitStat; + + gstTrainInfo[wBufIndex].dwIvocTransBadCyc = Get2oo2CurCycleNum(); + chRetVal = CI_SUCCESS; + } + else + { + chRetVal = CI_ERROR; + } + } + else + { + chRetVal = CI_ERROR; + } + + return chRetVal; +} /* * ָгеȼ * ˵ const UINT16 wTrainId, гID @@ -2869,6 +2943,7 @@ static void CalTrainSafePosition(void) chResult &= SetTrainSafeHeadOffset(wTrainId, UINT32_MAX); chResult &= SetTrainSafeTailLink(wTrainId, 0u); chResult &= SetTrainSafeTailOffset(wTrainId, UINT32_MAX); + SetTrainMinSafeHead(wTrainId, 0u, UINT32_MAX, 0u); if (CI_ERROR == chResult) { ; /*ݲ*/ @@ -3091,7 +3166,6 @@ UINT8 dsuTrainCrossSignal(const UINT16 wTrainId, const UINT16 wRouteId) UINT16 wEndSignal = 0u; struct_PathPoint strTrainMaxHead = { 0u }; struct_PathPoint strTrainMinTail = { 0u }; - struct_PathPoint strTrainSafeMinHead = { 0u }; str_Zone strRouteZone = { 0u }; UINT8 chRtnVal = CI_ERROR; str_PointInArea strRouteSwitch = { 0u }; @@ -3124,8 +3198,6 @@ UINT8 dsuTrainCrossSignal(const UINT16 wTrainId, const UINT16 wRouteId) strTrainZone.pStart.dwOffset = strTrainMinTail.dwOffset; strTrainZone.pEnd.wLinkId = strTrainMaxHead.wLinkId; strTrainZone.pEnd.dwOffset = strTrainMaxHead.dwOffset; - strTrainSafeMinHead.wLinkId = GetTrainMinSafeHeadLink(wTrainId); - strTrainSafeMinHead.dwOffset = GetTrainMinSafeHeadOffset(wTrainId); chSwitchNum = GetRouteSwitchSum(wRouteId); pRouteSwitch = GetRouteSwitchData(wRouteId); @@ -3145,7 +3217,6 @@ UINT8 dsuTrainCrossSignal(const UINT16 wTrainId, const UINT16 wRouteId) chRtnVal &= CheckLinkValid(strTrainMinTail.wLinkId, strTrainMinTail.dwOffset); chRtnVal &= CheckLinkValid(strRouteZone.pStart.wLinkId, strRouteZone.pStart.dwOffset); chRtnVal &= CheckLinkValid(strRouteZone.pEnd.wLinkId, strRouteZone.pEnd.dwOffset); - chRtnVal &= CheckLinkValid(strTrainSafeMinHead.wLinkId, strTrainSafeMinHead.dwOffset); } else { @@ -4325,6 +4396,7 @@ void NeighborOutTrainProc(UINT8 chTiocId) { SetTrainMsgFromTiocId(wTrainId, 0u); (void)SetTrainTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); + (void)SetTrainIvocTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); } else { @@ -4381,6 +4453,7 @@ void NeighborGoodTrainProc(UINT8 chTiocId) { SetTrainMsgFromTiocId(wTrainId, 0u); (void)SetTrainTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); + (void)SetTrainIvocTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); } else { @@ -6458,6 +6531,28 @@ static UINT32 GetTrainTransBadCyc(const UINT16 wTrainId) return dwRetVal; } +/* +* ȡָгͨ(IVOC)жں +* ˵ const UINT16 wTrainId, гID +* ֵ гͨжں +*/ +static UINT32 GetTrainIvocTransBadCyc(const UINT16 wTrainId) +{ + UINT32 dwRetVal = 0u; + UINT16 wBufIndex = 0U; + + wBufIndex = GetTrainBufIndex(wTrainId); + if (TRAIN_SUM_MAX > wBufIndex) + { + dwRetVal = gstTrainInfo[wBufIndex].dwIvocTransBadCyc; + } + else + { + ; + } + + return dwRetVal; +} /* * ȡָгɢ * ˵ const UINT16 wTrainId, гID @@ -7724,8 +7819,8 @@ UINT8 GetTrainResRecycleOTStat(const UINT16 wTrainId) wBufIndex = GetTrainBufIndex(wTrainId); if (TRAIN_SUM_MAX > wBufIndex) { - trainTransimitStat = GetTrainTransitmitStat(wTrainId); - trainLoseCommCyc = GetTrainTransBadCyc(wTrainId); + trainTransimitStat = GetTrainIvocTransitmitStat(wTrainId); + trainLoseCommCyc = GetTrainIvocTransBadCyc(wTrainId); /*гͨŲ*/ if (TRAIN_COMM_STATE_BAD == trainTransimitStat) @@ -12905,6 +13000,7 @@ void InputMainTrainInformation(UINT16 wTrainId) if (TRAIN_COMM_STATE_GOOD == chTransmitStat) { (void)SetTrainTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); + (void)SetTrainIvocTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); SetTrainLevel(wTrainId, TRAIN_LEVEL_UR); } else @@ -13755,7 +13851,6 @@ static void DoubleTrianComStateJuge(const UINT16 wTrainId, const UINT8 chComBadF chIvocCtxValid = GetHLHTHeadCtxValid(CI_SYSTEM_TYPE_IVOC, (UINT8)wTrainId); chVobcCtxValid = GetHLHTHeadCtxValid(CI_SYSTEM_TYPE_VOBC, (UINT8)wTrainId); - trainMsgFromTiocId = GetTrainMsgFromTiocId(wTrainId); /*˫ͨ״̬*/ if ((CI_ERROR == chIvocCtxValid) && (CI_ERROR == chVobcCtxValid)) @@ -13768,6 +13863,7 @@ static void DoubleTrianComStateJuge(const UINT16 wTrainId, const UINT8 chComBadF if (0u == trainMsgFromTiocId) { (void)SetTrainTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); + (void)SetTrainIvocTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); } else {/*ʲôҲִ*/ @@ -13779,6 +13875,19 @@ static void DoubleTrianComStateJuge(const UINT16 wTrainId, const UINT8 chComBadF if (0U == chComBadFlag) {/*ǰûͨж*/ (void)SetTrainTransmitStat(wTrainId, TRAIN_COMM_STATE_GOOD); + if (CI_SUCCESS == chIvocCtxValid) + { + (void)SetTrainIvocTransmitStat(wTrainId, TRAIN_COMM_STATE_GOOD); + } + } + + if (CI_ERROR == chIvocCtxValid) + { + chTransmitStat = GetTrainIvocTransitmitStat(wTrainId); + if (TRAIN_COMM_STATE_GOOD == chTransmitStat) + { + (void)SetTrainIvocTransmitStat(wTrainId, TRAIN_COMM_STATE_BAD); + } } } diff --git a/TSCP/src/APP/ciapp/Train/TrainDataManage.h b/TSCP/src/APP/ciapp/Train/TrainDataManage.h index a7e10d5..b77f917 100644 --- a/TSCP/src/APP/ciapp/Train/TrainDataManage.h +++ b/TSCP/src/APP/ciapp/Train/TrainDataManage.h @@ -227,6 +227,7 @@ typedef struct S_TrainInfoStru UINT16 wTrainSpeed; /*ٶ*/ UINT8 chTrainZeroState; /*г״̬*/ UINT8 chTransmitStat; /*г״̬*/ + UINT8 chIvocTransmitStat; /*IVOCг״̬*/ UINT8 chHeadScreenStat; /*гǰɸ־*/ UINT8 chTailScreenStat; /*гɸ־*/ TrainSafeLocStru strSafeLoc; /*гȫλ*/ @@ -252,6 +253,7 @@ typedef struct S_TrainInfoStru UINT8 chStopSteadyState; /*гͣ׼ͣ״̬*/ UINT8 chSleepCancleFlag; /*߳־*/ UINT32 dwTransBadCyc; /*ͨж*/ + UINT32 dwIvocTransBadCyc; /*ͨж*/ UINT8 chEaNum; /*ͨгظɢ*/ TrainEaStru strTrainEaInfo[EA_MAX_NUM]; /*гָɢϢ*/ UINT8 chEaCmd; /*ɢ*/ @@ -436,6 +438,16 @@ UINT16 GetTrainBufIndex(const UINT16 wTrainId); */ UINT8 GetTrainTransitmitStat(const UINT16 wTrainId); +/* +* ȡָг(IVOC)ͨ״̬ +* ˵ const UINT16 wTrainId, гID +* ֵ 0: ȡʧ +* 0x55: ͨ״̬ +* 0xAA: ʧͨ +* 0xFF: ͨ״̬δ֪ +* : qw.liu 2022-02-24 +*/ +UINT8 GetTrainIvocTransitmitStat(const UINT16 wTrainId); /* * ȡָгСȫǰƫ * ˵ const UINT16 wTrainId, гID @@ -595,6 +607,19 @@ CI_SUCCESS: */ UINT8 SetTrainTransmitStat(const UINT16 wTrainId, const UINT8 chTrainmitStat); + +/* +* ָг(IVOC)ͨ״̬ +* ˵ const UINT16 wTrainId, гID +* const UINT8 chTrainmitStat ͨ״̬ +* ֵ CI_ERROR: ʧ +CI_SUCCESS:ݳɹ +* 0x55 : ͨ״̬ +* 0xAA : ʧͨ +* 0xFF : ͨ״̬δ֪ +* : qw.liu 2025 - 05 - 08 +*/ +UINT8 SetTrainIvocTransmitStat(const UINT16 wTrainId, const UINT8 chTrainmitStat); /* * ָгеȼ * ˵ const UINT16 wTrainId, гID diff --git a/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.c b/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.c index 2c2f0b8..ed98bb5 100644 --- a/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.c +++ b/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.c @@ -14,7 +14,7 @@ WashMachineDataStruct WashMachineDataStru[WASHMACHINE_SUM_MAX]; /*ϴݽṹ*/ - +UINT8 RouteDriveIntoResult = CI_ERROR; /*жϽ·Ƿгʻ*/ /* * ȡָIDϴ diff --git a/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.h b/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.h index b7d27c3..4c221b1 100644 --- a/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.h +++ b/TSCP/src/APP/ciapp/WashMachine/WashMachineDataManage.h @@ -75,6 +75,7 @@ typedef struct S_WashMachineDataStruct extern WashMachineDataStruct WashMachineDataStru[WASHMACHINE_SUM_MAX]; /*ϴݽṹ*/ +extern UINT8 RouteDriveIntoResult; /*жϽ·Ƿгʻ*/ /* * ȡָIDϴ * ˵ diff --git a/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.c b/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.c index 6a1e017..e1bb363 100644 --- a/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.c +++ b/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.c @@ -55,8 +55,10 @@ UINT8 dfsInitSubSystemCommonConfigData_DG(UINT8 *pDataAddr, UINT32 dataSize, UIN #endif /*ʼ[ϵͳ]-CC(Ҫҽ1)*/ UINT8 dfsInitSubSystemCommonConfigData_CC(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount); +#if 0 /*ݽṹ4-FAO ͨ˰汾һ*/ UINT8 dfsInitTrainDepotConfigData(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount); +#endif /* ߽ݽṹ */ UINT8 dfsInitBoundaryAxleConfigData(UINT8* pDataAddr, UINT32 dataSize, UINT16 rowCount); /*ʼ[ѹ]*/ @@ -76,7 +78,7 @@ static INIT_TASK_TAB_STRU g_struInitTaskTab[]= {DQU_QFUN_TRUE, CBTC_CONFIG_DATA_ID, NULL, 5,1,0}, {DQU_QFUN_TRUE, CBTC_CONFIG_DATA_ID, dfsInitSubSystemCommonConfigData_HLT, 5,1,0}, {DQU_QFUN_TRUE, CBTC_CONFIG_DATA_ID, NULL, 5,1,0}, - {DQU_QFUN_TRUE, CBTC_CONFIG_DEPOT_ID, dfsInitTrainDepotConfigData, 5,1,0}, + {DQU_QFUN_TRUE, CBTC_CONFIG_DEPOT_ID, NULL, 5,1,0}, {DQU_QFUN_TRUE, CBTC_CONFIG_DATA_ID, dfsInitSubSystemCommonConfigData_CC, 5,1,0}, {DQU_QFUN_TRUE, CBTC_CONFIG_BOUNDARY_AXLE_ID,dfsInitBoundaryAxleConfigData, 5,1,0}, {DQU_QFUN_TRUE, CBTC_SPECIAL_EA_ID, dfsInitSpecialEaConfigData, 5,1,0}, @@ -180,10 +182,11 @@ static UINT8 initConfigCbtcInfoTaskTab(void) } else { - g_struInitTaskTab[2].bIsEffective = DQU_QFUN_FASLE;/*ĬϲִУϵͳýṹ3-CPK*/ - g_struInitTaskTab[3].bIsEffective = DQU_QFUN_FASLE;/*ĬϲִУϵͳýṹ3-FAO*/ - g_struInitTaskTab[4].bIsEffective = DQU_QFUN_FASLE;/*ĬϲִУϵͳýṹ3-HLT*/ - g_struInitTaskTab[5].bIsEffective = DQU_QFUN_FASLE;/*ĬϲִУϵͳýṹ3-DG*/ + g_struInitTaskTab[2].bIsEffective = DQU_QFUN_FASLE; /*ĬϲִУϵͳýṹ3-CPK*/ + g_struInitTaskTab[3].bIsEffective = DQU_QFUN_FASLE; /*ĬϲִУϵͳýṹ3-FAO*/ + g_struInitTaskTab[4].bIsEffective = DQU_QFUN_FASLE; /*ĬϲִУϵͳýṹ3-HLT*/ + g_struInitTaskTab[5].bIsEffective = DQU_QFUN_FASLE; /*ĬϲִУϵͳýṹ3-DG*/ + g_struInitTaskTab[6].bIsEffective = DQU_QFUN_FASLE; /*ĬϲִУ*/ } rtnValue = 1u; } @@ -320,10 +323,10 @@ UINT8 dfsInitTrainModelConfigData(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowC || ((0x3du == CI_SYSTEM_TYPE_RCI) && (0x10u == (UINT8)(tempTrainName >> 8u)))) { /*CIֻʼ0x14͵܇RCֻʼ0x10͵܇*/ - g_pCbtcConfigDataStru->cbtcTrainTypeConfig[i].TrainName = ShortFromChar(pData); + g_pCbtcConfigDataStru->cbtcTrainTypeConfig[TrainCount].TrainName = ShortFromChar(pData); pData += 2u; - g_pCbtcConfigDataStru->cbtcTrainTypeConfig[i].TrainType = *pData; + g_pCbtcConfigDataStru->cbtcTrainTypeConfig[TrainCount].TrainType = *pData; pData += 1u; TrainCount += 1u; @@ -340,8 +343,16 @@ UINT8 dfsInitTrainModelConfigData(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowC /*nothing*/ } - g_pCbtcConfigDataStru->TrainTypeConfigLen = (UINT32)TrainCount; - rtnValue = 1u; + if (200u >= TrainCount) + { + g_pCbtcConfigDataStru->TrainTypeConfigLen = (UINT32)TrainCount; + rtnValue = 1u; + } + else + { + /*ƣʧ*/ + rtnValue = 0U; + } } else { @@ -1086,8 +1097,7 @@ UINT8 dfsInitSubSystemCommonConfigData_CC(UINT8 *pDataAddr, UINT32 dataSize, UIN g_pCbtcConfigDataStru->cbtcConfigData.TmcOcCommunicationErrorTime = LongFromChar(pDataAddr); pDataAddr += 4u; - /*IVOC-RCͨŹжʱ䣨ms*/ - g_pCbtcConfigDataStru->cbtcConfigData.IvocOcCommunicationErrorTime = LongFromChar(pDataAddr); + /*IVOC-RCͨŹжʱ䣨msʹCI-VOBC*/ pDataAddr += 4u; /*RC-TSLͨŹжʱ䣨ms*/ @@ -1109,7 +1119,7 @@ UINT8 dfsInitSubSystemCommonConfigData_CC(UINT8 *pDataAddr, UINT32 dataSize, UIN g_pCbtcConfigDataStru->cbtcConfigData.cAwakeCheckSpksSwitch = *pDataAddr; /*ѹмSPKS״̬*/ pDataAddr += 1U; - g_pCbtcConfigDataStru->cbtcConfigData.dwVobcCiackUpCommErrorTime = LongFromChar(pDataAddr); /*RCIVOCͨͨŹжʱ*/ + /*RCIVOCͨͨŹжʱ䣬ͳһʹVOBC*/ pDataAddr += 4U; g_pCbtcConfigDataStru->cbtcConfigData.cHitSoftWallSwitch = *pDataAddr; /*ײǽܿ*/ @@ -1132,7 +1142,7 @@ UINT8 dfsInitSubSystemCommonConfigData_CC(UINT8 *pDataAddr, UINT32 dataSize, UIN return rtnValue; } - +#if 0 /********************************************** ܣʼ[Ϣ] pDataAddr:׵ַ @@ -1181,7 +1191,7 @@ UINT8 dfsInitTrainDepotConfigData(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowC } return rtnValue; } - +#endif /*-----------------------------ݲѯӿں-----------------------*/ /*õǰѯԴ*/ @@ -1285,7 +1295,7 @@ UINT8 dquGetCbtcConfigData (CBTC_CONFIG_DATA_STRU* pCbtcConfigDataStru) } return rtnValue; } - +#if 0 /********************************************* *ܣóϢ * @@ -1323,7 +1333,7 @@ UINT8 dquGetCbtcDepotInfo(CBTC_DEPOT_INFO_STRU *pCbtcDepotInfo, UINT16 *Length) return rtnValue; } - +#endif /********************************************** * ܣʼ[߽]-CC * pDataAddr: ׵ַ diff --git a/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.h b/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.h index ab74793..56ac14d 100644 --- a/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.h +++ b/TSCP/src/dqu_common/dqu_cbtc_common/dquCbtcConfigData.h @@ -67,7 +67,6 @@ extern "C" { UINT32 dwLineMinTrainLength; /*ϵͳݣ·С*/ UINT8 chWLSFunSwitch; /* Ƿ֧ȫɸܣ0x55 ֧ 0xAA֧ */ UINT32 TmcOcCommunicationErrorTime; /*TMC-OCͨŹжʱ(ms),add by yt202231գ䳵ϵͳ*/ - UINT32 IvocOcCommunicationErrorTime; /*IVOC-OCͨŹжʱ(ms),add by yt202231գ䳵ϵͳ*/ UINT32 OcTslCommunicationErrorTime; /*OC-TSLͨŹжʱ䣨ms,add by yt202231գ䳵ϵͳ*/ UINT32 MaxMALength; /*·½ƶ루λm,add by yt202231գ䳵ϵͳ*/ UINT8 chDynamicTestSwitch; /*Ƿֶ֧̬Կ aaر 55*/ @@ -153,10 +152,10 @@ extern "C" { CBTC_TRAIN_INFO_STRU cbtcTrainInfo[10]; /*гܲýṹ飬ʼ*/ UINT32 TrainInfoLen; /*鳤*/ - +#if 0 CBTC_DEPOT_INFO_STRU cbtcDepotInfo[10]; /*Ϣṹ飬ʼ*/ UINT32 DepotConfigLen; /*鳤*/ - +#endif CBTC_CONFIG_DATA_STRU cbtcConfigData; /*ϵͳýṹ飬ʼ*/ CBTC_BOUNDARY_AXLE_CONFIG_STRU cbtcBoundaryAxleInfo[100]; /*߽Ϣṹ飬ʼ*/ @@ -199,7 +198,7 @@ extern "C" { /*ȡϵͳñ*/ UINT8 dquGetCbtcConfigData (CBTC_CONFIG_DATA_STRU* pCbtcConfigDataStru); - +#if 0 /* ܣóϢ @@ -207,7 +206,7 @@ extern "C" { LengthϢ ֵ 0ʧ 1ɹ */ UINT8 dquGetCbtcDepotInfo(CBTC_DEPOT_INFO_STRU *pCbtcDepotInfo, UINT16 *Length); - +#endif #ifdef __cplusplus } diff --git a/TSCP/src/dqu_common/dqu_emap_common/dquEmapInit.c b/TSCP/src/dqu_common/dqu_emap_common/dquEmapInit.c index a9c0b9e..b8b3781 100644 --- a/TSCP/src/dqu_common/dqu_emap_common/dquEmapInit.c +++ b/TSCP/src/dqu_common/dqu_emap_common/dquEmapInit.c @@ -86,6 +86,48 @@ UINT16 wMiddleLinkId[MIDDLE_LINK_MAX_NUM]; ************************************/ static UINT8 AxleSgmtStru_CC(); +/*ݰ汾ݴ̺ +**޸ļ¼ +**1ݻͨݽṹV18.0.0޸ģm by sds 20200211 +**2޸IJҪʼıϢ m by sds 2020-8-19 +**3ӳʼıϢ m by qw.liu 2022-2-22 +*/ +static UINT8 initConfigEmapTaskTab(); + +/********************************************* +*ܣ·ݽṹ +*˵ +*ֵ0ʧܣ1ɹ +UINT16 wIncludeAxleSgmtNum; ·ļĿ +UINT16 wIncludeAxleSgmtId[8]; ļα +UINT16 wAxleSgmtLockStatus[8]; ļ״̬ + +UINT16 wObsNum; ·ϰĿ +UINT16 wObsType[8]; ϰ +UINT16 wObsID[8]; ϰID +UINT16 wObsNeedLockStatus[8]; ϰҪ״̬ +עڲúϿ⡢෿ʹ +*********************************************/ +static UINT8 RouteStru_DFT(); + +/********************************************* +*ܣ·ݽṹ +*˵ +*ֵ0ʧܣ1ɹ +UINT16 wIncludeAxleSgmtNum; ·ļĿ +UINT16 wIncludeAxleSgmtId[8]; ļα +UINT16 wAxleSgmtLockStatus[8]; ļ״̬ + +UINT16 wObsNum; ·ϰĿ +UINT16 wObsType[8]; ϰ +UINT16 wObsID[8]; ϰID +UINT16 wObsNeedLockStatus[8]; ϰҪ״̬ +עڲúͨʹ +޸ļ¼: +1½·ΧCBTCӽεķΧж ʹúֵϢֹ,޸淶 m by sds 2020-8-21 +*********************************************/ +static UINT8 RouteStru_CC(); + /* ܣɾظڲʹú ˵input 飻len С @@ -93,7 +135,7 @@ static UINT8 AxleSgmtStru_CC(); ֵȥغij author: qxt 20180716 */ -static UINT8 RemoveRep(UINT16 input[],UINT8 len,UINT16 output[]); +static UINT16 RemoveRep(UINT16 input[],UINT16 len,UINT16 output[]); /*----------ڲ--------------*/ @@ -577,7 +619,6 @@ void SetFilterStopPointAttr(UINT32 filterAttr) UINT8 dfsEmapInitExp(UINT8 *pDataBuf,DSU_EMAP_STRU *dsuEmapStru,DSU_STC_LIMIT_LINKIDX_STRU *dsuLimitStcLinkIdx,UINT8 mode,UINT16 timeSlice) { UINT32 DataID=0U; - UINT16 wPos=0U; UINT8 rtnValue=2U; UINT16 wFreqTimes=0U; UINT8 bExeState=DQU_QFUN_FASLE; @@ -6402,7 +6443,6 @@ static UINT8 LogicSgmtStru_CC(void) { UINT16 ii = UINT16_MAX; /*ѭ*/ UINT16 jj = UINT16_MAX; /*ѭ*/ - UINT16 nn = UINT16_MAX; /*ѭ*/ UINT16 kk = UINT16_MAX; DSU_LOGIC_SGMT_STRU * pTempLogicSgmtStru = NULL; /*ʱ*/ DSU_AXLE_SGMT_STRU *pTempAxleSgmtStru = NULL; /*ʱ*/ @@ -6547,7 +6587,7 @@ static UINT8 LogicSgmtStru_CC(void) if ((UINT32_MAX != dwLen) && (MAX_LOGSEC_INCLUDE_LINK_NUM >= wlinkNum)) { - linkInfo.cLinkCnt = wlinkNum; + linkInfo.cLinkCnt = (UINT8)wlinkNum; for (mm = 0U; mm < wlinkNum; mm++) { @@ -7957,7 +7997,6 @@ UINT8 GetPointInfoFromAccessLink(UINT16 AccessLinkId, UINT16 Dirction, UINT16* DSU_CBTC_ACCESS_LINK_STRU* pCBTCAccessLinkStru=NULL; /*ʱ*/ UINT16 i, j = 0; /*ѭ*/ DSU_LOGIC_SGMT_STRU* pLogicSgmtStru=NULL; /*ʱ*/ - DSU_AXLE_SGMT_STRU* pAxleSgmtStru=NULL; /*ʱ--*/ UINT8 rtnValue = 0U; /*ӵͼ*/ @@ -12497,13 +12536,10 @@ UINT8 initRC(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) UINT8 rtnValue = 2U; UINT8 *pData = NULL; UINT8 initFlag = 0U; - UINT8 checkFlag = 0U; DSU_CI_STRU *pCurrentStru = NULL; /*ṹʱָ*/ DSU_CI_STRU stru = { 0 }; /*ṹʱָ*/ UINT16 j = 0U; static UINT32 rowDataLen = 0U; - UINT16 wStruDataLen = 0U; - UINT16 wDataIndexLen = 0U; /*ӵͼ*/ DSU_EMAP_INDEX_STRU *dsuEmapIndexStru = NULL; @@ -12552,6 +12588,70 @@ UINT8 initRC(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) initFlag = EmapInitFunStepCtrl(0x02); if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) + { + /*͸Ӷ*/ + rtnValue = initRCSndStep(dsuEmapIndexStru, dsuStaticHeadStru, dsuDataLenStru); + } + + initFlag = EmapInitFunStepCtrl(0x03); + if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) + { + /*ݵ ṹ */ + for (j = g_struInitTaskTab[g_wCurInitStruProg].wCurInitPos; j < dsuDataLenStru->wRCLen; j++) + { + pCurrentStru = dsuStaticHeadStru->pRCStruStru + j; + + pData = pDataAddr + rowDataLen*j; + /*ݽṹ*/ + initFlag = RC_STRU_init(pData, pCurrentStru); + if (0U == initFlag) + { + /*initָ*/ + rtnValue = 0U; + } + else + { + /*ɶӦ*/ + dsuEmapIndexStru->dsuRCIndex[pCurrentStru->wIndex] = j; + initFlag = EmapInitLoopStepLenCtrl(j); + } + /*ѭֲи*/ + if ((0U == rtnValue) || (DQU_QFUN_TRUE == initFlag)) + { + break; + } + } + + if ((0U != rtnValue) && (j == dsuDataLenStru->wRCLen)) + { + rtnValue = 1; + } + } + + return rtnValue; +} + +/********************************************** +ܣʼ[ӵͼ-RCϢ]:---ָӶʹ + + +ӵͼ +DSU_EMAP_INDEX_STRU *dsuEmapIndexStru +DSU_STATIC_HEAD_STRU *dsuStaticHeadStru +DSU_DATA_LEN_STRU *dsuDataLenStru +ֵ:2,0ʧ +**********************************************/ +UINT8 initRCSndStep(DSU_EMAP_INDEX_STRU *dsuEmapIndexStru, DSU_STATIC_HEAD_STRU *dsuStaticHeadStru, DSU_DATA_LEN_STRU *dsuDataLenStru) +{ + UINT8 rtnValue = 2U; + UINT16 wStruDataLen = 0; + UINT16 wDataIndexLen = 0; + UINT8 checkFlag = 0U; + if ((NULL == dsuEmapIndexStru) || (NULL == dsuStaticHeadStru) || (NULL == dsuDataLenStru)) + { + rtnValue = 0U; + } + else { if (0x01 == g_IsEmapAllocMemory) { @@ -12608,42 +12708,6 @@ UINT8 initRC(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) } } } - - initFlag = EmapInitFunStepCtrl(0x03); - if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) - { - /*ݵ ṹ */ - for (j = g_struInitTaskTab[g_wCurInitStruProg].wCurInitPos; j < dsuDataLenStru->wRCLen; j++) - { - pCurrentStru = dsuStaticHeadStru->pRCStruStru + j; - - pData = pDataAddr + rowDataLen*j; - /*ݽṹ*/ - initFlag = RC_STRU_init(pData, pCurrentStru); - if (0U == initFlag) - { - /*initָ*/ - rtnValue = 0U; - } - else - { - /*ɶӦ*/ - dsuEmapIndexStru->dsuRCIndex[pCurrentStru->wIndex] = j; - initFlag = EmapInitLoopStepLenCtrl(j); - } - /*ѭֲи*/ - if ((0U == rtnValue) || (DQU_QFUN_TRUE == initFlag)) - { - break; - } - } - - if ((0U != rtnValue) && (j == dsuDataLenStru->wRCLen)) - { - rtnValue = 1; - } - } - return rtnValue; } @@ -16032,12 +16096,9 @@ UINT8 GetDeviceInfoInLink() DSU_LINK_STRU *pLinkStru=NULL; /*Linkʱṹ*/ DSU_SIGNAL_STRU *pSignalStru=NULL; /*źŻʱṹ*/ - DSU_BALISE_STRU *pBaliseStru=NULL; /*Ӧʱṹ*/ DSU_SCREEN_STRU *pScreenStru=NULL; /*ȫʱṹ*/ DSU_EMERG_STOP_STRU *pESBStru=NULL;/*ͣťʱṹ*/ DSU_STATION_STRU *pStationStru=NULL;/*ͣʱṹ*/ - DSU_STOPPOINT_STRU *pStopPointStru=NULL;/*ͣʱṹ*/ - DSU_PLAT_FORM_STRU *pPlatformStru=NULL;/*վ̨ʱṹ*/ DSU_DEVICE_IN_LINK_STRU *pTempDeviceStru=NULL; @@ -16564,29 +16625,29 @@ UINT8 GetGradeInfoCrossLink() ֵȥغij author: qxt 20180716 */ -static UINT8 RemoveRep(UINT16 input[],UINT8 len,UINT16 output[]) +static UINT16 RemoveRep(UINT16 input[],UINT16 len,UINT16 output[]) { - UINT8 i=0U , j=0U; - UINT8 flag=1;/*ظǣ1ظ0ظ*/ - UINT8 count=0U;/*ֵ*/ + UINT16 i=0U , j=0U; + UINT8 flag=1U;/*ظǣ1ظ0ظ*/ + UINT16 count=0U;/*ֵ*/ /**/ - if (len>0) + if (0U < len) { output[count++]=input[0];/*ȸĵһֵֵ*/ - for (i=1;iwId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*·*/ - for (i = 0; i<24; i++) + for (i = 0U; i< 24U; i++) { pRouteStru->szCaption[i] = *pData; - pData += 1; + pData += 1U; } /*·*/ pRouteStru->wRouteType = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ʼźŻ*/ pRouteStru->wStartSignalId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ֹźŻ*/ pRouteStru->wEndSignalId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*link*/ /*---Ϲѧ*/ pRouteStru->wOrgnLkId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*յlink*/ /*---Ϲѧ*/ pRouteStru->wTmnlLkId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*Ŀ*/ pRouteStru->wIncludePointNum = ShortFromChar(pData); - pData += 2; + pData += 2U; - for (i = 0; i<16; i++) + for (i = 0U; i<16U; i++) { /**/ pRouteStru->wPointId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; /*״̬*/ pRouteStru->wPointStatus[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*Ŀ*/ pRouteStru->wProtectLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; - for (i = 0; i<4; i++) + for (i = 0U; i<4U; i++) { /*α*/ pRouteStru->wProtectLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ι*/ pRouteStru->wProtectLinkRelatePointId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ι״̬*/ pRouteStru->wProtectLinkRelatePointStatus[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } @@ -1967,20 +1967,20 @@ static UINT8 ROUTE_STRU_init_HLT(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) /* ȡʽӽĿ */ pRouteStru->wBlogAccessLinkNum = ShortFromChar(pData); maxBlocAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ݻȡĵʽӽĿ */ - for (i = 0; iwBlogAccessLinkNum; i++) + for (i = 0U; iwBlogAccessLinkNum; i++) { pRouteStru->wBlogAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*ȡCBTCӽĿ*/ - for (i = 0; iwCBTCAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ϶ȡݣЧֱֵȡȷֵʱ˳ */ if ((pRouteStru->wCBTCAccessLinkNum != DSU_NULL_16) @@ -1998,17 +1998,17 @@ static UINT8 ROUTE_STRU_init_HLT(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) } /* ݻȡCBTCӽĿ */ - for (i = 0; iwCBTCAccessLinkNum; i++) + for (i = 0U; iwCBTCAccessLinkNum; i++) { pRouteStru->wCBTCAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*CI*/ - for (i = 0; iwManageCI = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ϶ȡݣЧֱֵȡȷֵʱ˳ */ if (pRouteStru->wManageCI != DSU_NULL_16) @@ -2024,26 +2024,26 @@ static UINT8 ROUTE_STRU_init_HLT(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) /*·*/ pRouteStru->wAttribute = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ʽ */ pRouteStru->wBlocTrgAreaNum = ShortFromChar(pData); maxBlocTRGAreLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ʽID*/ - for (i = 0; iwBlocTrgAreaNum; i++) + for (i = 0U; iwBlocTrgAreaNum; i++) { pRouteStru->wBlocTrgAreaId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*cbtc */ - for (i = 0; iwCbtcTrgAreaNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ϶ȡݣЧֱֵȡȷֵʱ˳ */ if ((pRouteStru->wCbtcTrgAreaNum != DSU_NULL_16) @@ -2059,10 +2059,10 @@ static UINT8 ROUTE_STRU_init_HLT(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) } /*cbtcID*/ - for (i = 0; iwCbtcTrgAreaNum; i++) + for (i = 0U; iwCbtcTrgAreaNum; i++) { pRouteStru->wCbtcTrgAreaId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*ִд+1*/ @@ -2073,58 +2073,58 @@ static UINT8 ROUTE_STRU_init_HLT(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) /* ȡʽӽĿ */ pRouteStru->wBlogAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ݻȡĵʽӽĿ */ - for (i = 0; iwBlogAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*ȡCBTCӽĿ*/ pRouteStru->wCBTCAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ݻȡCBTCӽĿ */ - for (i = 0; iwCBTCAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*CI*/ pRouteStru->wManageCI = ShortFromChar(pData); - pData += 2; + pData += 2U; /*·*/ pRouteStru->wAttribute = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ʽ */ pRouteStru->wBlocTrgAreaNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ʽID*/ - for (i = 0; iwBlocTrgAreaId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*cbtc */ pRouteStru->wCbtcTrgAreaNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /*cbtcID-ʵݻȡ*/ - for (i = 0; iwCbtcTrgAreaNum; i++) + for (i = 0U; iwCbtcTrgAreaNum; i++) { pRouteStru->wCbtcTrgAreaId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } } - rtnValue = 1; + rtnValue = 1U; } return rtnValue; } @@ -2268,78 +2268,78 @@ static UINT8 ROUTE_STRU_init_CPK(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) static UINT8 ROUTE_STRU_init_CC(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) { UINT8 * pData = pDataAdd; - UINT8 i = 0; - static UINT8 runCount = 0;/*ִиúĴ жǷΪһν*/ - static UINT8 maxCBTCAccessLinkNum = MAX_CBTC_ACCESS_LINK_NUM;/*·ʵCBTCӽ*/ - static UINT8 maxBLOCAccessLinkNum = MAX_BLOC_ACCESS_LINK_NUM;/*·ʵʵʽӽ*/ + UINT16 i = 0U; + static UINT8 runCount = 0U;/*ִиúĴ жǷΪһν*/ + static UINT16 maxCBTCAccessLinkNum = MAX_CBTC_ACCESS_LINK_NUM;/*·ʵCBTCӽ*/ + static UINT16 maxBLOCAccessLinkNum = MAX_BLOC_ACCESS_LINK_NUM;/*·ʵʵʽӽ*/ UINT8 reval = 0U;/*ʼֵΪʧ*/ /*ָ*/ if ((NULL != pDataAdd) && (NULL != pRouteStru)) { pRouteStru->wId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*·*/ - for (i = 0; i < 24; i++) + for (i = 0U; i < 24U; i++) { pRouteStru->szCaption[i] = *pData; - pData += 1; + pData += 1U; } /*·*/ pRouteStru->wRouteType = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ʼźŻ*/ pRouteStru->wStartSignalId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ֹźŻ*/ pRouteStru->wEndSignalId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*link*/ /*---Ϲѧ*/ pRouteStru->wOrgnLkId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*յlink*/ /*---Ϲѧ*/ pRouteStru->wTmnlLkId = ShortFromChar(pData); - pData += 2; + pData += 2U; /*Ŀ*/ pRouteStru->wIncludePointNum = ShortFromChar(pData); - pData += 2; + pData += 2U; - for (i = 0; i < 16; i++) + for (i = 0U; i < 16U; i++) { /**/ pRouteStru->wPointId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; /*״̬*/ pRouteStru->wPointStatus[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*Ŀ*/ pRouteStru->wProtectLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; - for (i = 0; i < 4; i++) + for (i = 0U; i < 4U; i++) { /*α*/ pRouteStru->wProtectLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ι*/ pRouteStru->wProtectLinkRelatePointId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ι״̬*/ pRouteStru->wProtectLinkRelatePointStatus[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /* "CBTCӽĿ"Ϊ̶ֵ,һݱӾҪ޸Ĵ,ΪŻ޸Ľṹ߼, by cgh 2023-4-14 */ @@ -2348,7 +2348,7 @@ static UINT8 ROUTE_STRU_init_CC(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) { /*ʽӽĿ*/ pRouteStru->wBlogAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; if (MAX_BLOC_ACCESS_LINK_NUM >= pRouteStru->wBlogAccessLinkNum) { @@ -2356,17 +2356,17 @@ static UINT8 ROUTE_STRU_init_CC(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) maxBLOCAccessLinkNum = pRouteStru->wBlogAccessLinkNum; /*ʽӽα*/ - for (i = 0; i < pRouteStru->wBlogAccessLinkNum; i++) + for (i = 0U; i < pRouteStru->wBlogAccessLinkNum; i++) { pRouteStru->wBlogAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*ȡCBTCӽĿ*/ - for (i = 0; i < MAX_BLOC_ACCESS_LINK_NUM; i++) + for (i = 0U; i < MAX_BLOC_ACCESS_LINK_NUM; i++) { pRouteStru->wCBTCAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ϶ȡݣЧֱֵȡȷֵʱ˳ */ if (pRouteStru->wCBTCAccessLinkNum != DSU_NULL_16) @@ -2386,17 +2386,17 @@ static UINT8 ROUTE_STRU_init_CC(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) maxCBTCAccessLinkNum = pRouteStru->wCBTCAccessLinkNum; /* ݻȡCBTCӽĿ */ - for (i = 0; i < pRouteStru->wCBTCAccessLinkNum; i++) + for (i = 0U; i < pRouteStru->wCBTCAccessLinkNum; i++) { pRouteStru->wCBTCAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*CI*/ - for (i = 0; i < MAX_CBTC_ACCESS_LINK_NUM; i++) + for (i = 0U; i < MAX_CBTC_ACCESS_LINK_NUM; i++) { pRouteStru->wManageCI = ShortFromChar(pData); - pData += 2; + pData += 2U; /* ϶ȡݣЧֱֵȡȷֵʱ˳ */ if (pRouteStru->wManageCI != DSU_NULL_16) @@ -2411,20 +2411,20 @@ static UINT8 ROUTE_STRU_init_CC(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) } /*·*/ pRouteStru->wAttribute = ShortFromChar(pData); - pData += 2; + pData += 2U; /*cbtc */ pRouteStru->wCbtcTrgAreaNum = ShortFromChar(pData); - pData += 2; + pData += 2U; if (MAX_CBTC_TRG_AREA_NUM >= pRouteStru->wCbtcTrgAreaNum) { /*CBTCϷȡ*/ - for (i = 0; i < pRouteStru->wCbtcTrgAreaNum; i++) + for (i = 0U; i < pRouteStru->wCbtcTrgAreaNum; i++) { /*cbtcID*/ pRouteStru->wCbtcTrgAreaId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } reval = 1U; /*ݾϷسɹ*/ @@ -2446,55 +2446,55 @@ static UINT8 ROUTE_STRU_init_CC(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) { /*ʽӽĿ*/ pRouteStru->wBlogAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; if (MAX_BLOC_ACCESS_LINK_NUM >= pRouteStru->wBlogAccessLinkNum) { /*ʽӽϷȡ*/ - for (i = 0; i < maxBLOCAccessLinkNum; i++) + for (i = 0U; i < maxBLOCAccessLinkNum; i++) { /*ʽӽα*/ pRouteStru->wBlogAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*CBTCӽĿ*/ pRouteStru->wCBTCAccessLinkNum = ShortFromChar(pData); - pData += 2; + pData += 2U; if (MAX_CBTC_ACCESS_LINK_NUM >= pRouteStru->wCBTCAccessLinkNum) { /*CBTCӽϷȡ*/ - for (i = 0; i < maxCBTCAccessLinkNum; i++) + for (i = 0U; i < maxCBTCAccessLinkNum; i++) { /*CBTCӽα*/ pRouteStru->wCBTCAccessLinkId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } /*CI*/ pRouteStru->wManageCI = ShortFromChar(pData); - pData += 2; + pData += 2U; /*·*/ pRouteStru->wAttribute = ShortFromChar(pData); - pData += 2; + pData += 2U; #if 0 /*ʽ */ pRouteStru->wBlocTrgAreaNum = ShortFromChar(pData); - pData += 2; + pData += 2U; /*ʽID*/ - for (i = 0; i < 13; i++) + for (i = 0U; i < 13; i++) { pRouteStru->wBlocTrgAreaId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } #endif /*cbtc */ pRouteStru->wCbtcTrgAreaNum = ShortFromChar(pData); - pData += 2; + pData += 2U; if (MAX_CBTC_TRG_AREA_NUM < pRouteStru->wCbtcTrgAreaNum) { @@ -2504,10 +2504,10 @@ static UINT8 ROUTE_STRU_init_CC(UINT8 * pDataAdd, DSU_ROUTE_STRU * pRouteStru) else { /*cbtcID*/ - for (i = 0; i < pRouteStru->wCbtcTrgAreaNum; i++) + for (i = 0U; i < pRouteStru->wCbtcTrgAreaNum; i++) { pRouteStru->wCbtcTrgAreaId[i] = ShortFromChar(pData); - pData += 2; + pData += 2U; } reval = 1U; /*ݾϷسɹ*/ @@ -3492,7 +3492,11 @@ static UINT8 CI_STRU_init_CC(UINT8 * pDataAdd, DSU_CI_STRU * pCIStru) pCIStru->chCldAndScxMergeFlag = *pData; pData += 1U; - rtnValue = 1; + /*̶*/ + pCIStru->chCiFactoryType = *pData; + pData += 1U; + + rtnValue = 1U; } return rtnValue; } @@ -4171,8 +4175,8 @@ UINT8 DSU_FLOOD_GATE_STRU_init(UINT8 * pDataAdd, DSU_FLOOD_GATE_STRU * pFloodGat { UINT8 rtnValue = 0U; static UINT8 runCount = 0U;/*ִиúĴ жǷΪһν*/ - static UINT8 maxProtectAxisNum = MAX_PROTECT_AXIS_NUM;/*·ʵʵʽӽ*/ - UINT8 i = 0; + static UINT16 maxProtectAxisNum = MAX_PROTECT_AXIS_NUM;/*·ʵʵʽӽ*/ + UINT16 i = 0U; UINT8 chDataType = gLocalPublicDataType; /*ָ*/ if ((NULL != pDataAdd) && (NULL != pFloodGateStru)) diff --git a/TSCP/src/dqu_common/dqu_emap_common/dsuStruct.h b/TSCP/src/dqu_common/dqu_emap_common/dsuStruct.h index c6a5d90..f7d048e 100644 --- a/TSCP/src/dqu_common/dqu_emap_common/dsuStruct.h +++ b/TSCP/src/dqu_common/dqu_emap_common/dsuStruct.h @@ -755,6 +755,7 @@ typedef struct DSU_CIStruct UINT8 cWLScreenType; /* ȫɸЧ 0x55Ч 0xAAЧ */ UINT32 dwLocalShareCheckData; /*뱾RC/CIУϢ----2025082710 */ UINT8 chCldAndScxMergeFlag;/*Գ복κ迪*/ + UINT8 chCiFactoryType; /*̶*/ }DSU_CI_STRU; @@ -933,7 +934,7 @@ typedef struct DSU_SpksButton UINT16 wManageCI; /*CI*/ UINT16 wManageVirCI; /*CI*/ /* ݴĿУļɾֵҪ̬--- */ - UINT8 wLinkNum;/*LINK*/ + UINT16 wLinkNum;/*LINK*/ UINT16 wIncLinkId[SPKS_INCLUDE_LINK_NUM];/*LINK*/ UINT16 wPlatFormId; /*վ̨ID*/ }DSU_SPKS_BUTTON_STRU; diff --git a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.c b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.c index 4725c3f..85cd96b 100644 --- a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.c +++ b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.c @@ -86,10 +86,10 @@ UINT8 dfsIdmapInit(CHAR * FSName) /*28.0.0.14߱RC/IVOCŶձ*/ funcRtn = dquGetPublicFSVersion(FSName, szFSPUBVersionFS); funcRtn &= CheckTiocPublicFsVersion(szFSPUBVersionFS); - if (NULL!=g_dsuIdmapStru) + if (NULL != g_dsuIdmapStru) { /*ʼһξ*/ - if (dfsIdmapInitFlag == 1) + if (1U == dfsIdmapInitFlag) { rtnValue = 1U; return rtnValue; @@ -110,7 +110,7 @@ UINT8 dfsIdmapInit(CHAR * FSName) } else { - rtnValue = 0U;; + rtnValue = 0U; } @@ -125,7 +125,7 @@ UINT8 dfsIdmapInit(CHAR * FSName) } else { - rtnValue = 0U;; + rtnValue = 0U; } @@ -140,7 +140,7 @@ UINT8 dfsIdmapInit(CHAR * FSName) } else { - rtnValue = 0U;; + rtnValue = 0U; } @@ -213,7 +213,6 @@ UINT8 dfsIdmapInit(CHAR * FSName) UINT8 dfsIdmapInitExp(UINT8 * pDataBuf,DSU_IDMAP_STRU *dsuIdmapStru,UINT8 mode,UINT16 timeSlice) { UINT32 DataID; - UINT16 wPos=0U; UINT8 rtnValue=0U; UINT16 wFreqTimes=0U; UINT8 bExeState=DQU_QFUN_FASLE; @@ -793,13 +792,10 @@ UINT8 initRCNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) UINT8 rtnValue = 2U; UINT8 *pData = NULL; UINT8 initFlag = 0U; - UINT8 checkFlag = 0U; DSU_CI_NUM_STRU *pCurrentStru = NULL; /*ṹʱָ*/ DSU_CI_NUM_STRU stru = { 0 }; /*ṹʱָ*/ UINT16 j = 0U; static UINT32 rowDataLen = 0; - UINT16 wStruDataLen = 0; - UINT16 wDataIndexLen = 0; /*Ŷձ*/ DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru = NULL; @@ -848,6 +844,68 @@ UINT8 initRCNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) initFlag = IdmapInitFunStepCtrl(0x02); if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) + { + /*͸Ӷ*/ + rtnValue = initRCNumSndStep(dsuIdmapLenStru, dsuIdmapIndexStru, dsuStaticIdmapStru); + } + + initFlag = IdmapInitFunStepCtrl(0x03); + if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) + { + /*ݵṹ */ + for (j = g_struInitTaskTab[g_wCurInitStruProg].wCurInitPos; j < dsuIdmapLenStru->wRCNumLen; j++) + { + pCurrentStru = dsuStaticIdmapStru->pRCNumStru + j; + + pData = pDataAddr + rowDataLen*j; + /*ݽṹ*/ + initFlag = CINumStru_init(pData, pCurrentStru); + if (0U == initFlag) + { + /*initָ*/ + rtnValue = 0U;; + } + else + { + /*ɶӦ*/ + dsuIdmapIndexStru->dsuRCNumIndex[pCurrentStru->wIndexId] = j; + initFlag = IdmapInitLoopStepLenCtrl(j); + } + /*ѭֲи*/ + if ((0U == initFlag) || (DQU_QFUN_TRUE == initFlag)) + { + break; + } + } + + if ((0U != rtnValue) && (j == dsuIdmapLenStru->wRCNumLen)) + { + rtnValue = 1; + } + } + + return rtnValue; +} + +/********************************************** +ܣʼ[Ŷձ-RC]:--ȦӶʹ + +DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru +DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru +DSU_IDMAP_LEN_STRU *dsuIdmapLenStru +ֵ:2 0ʧ +**********************************************/ +UINT8 initRCNumSndStep(DSU_IDMAP_LEN_STRU *dsuIdmapLenStru, DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru, DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru) +{ + UINT8 rtnValue = 2U; + UINT16 wStruDataLen = 0; + UINT16 wDataIndexLen = 0; + UINT8 checkFlag = 0U; + if ((NULL == dsuIdmapIndexStru) || (NULL == dsuStaticIdmapStru) || (NULL == dsuIdmapLenStru)) + { + rtnValue = 0U; + } + else { if (0x01 == g_IsIdmapAllocMemory) { @@ -904,42 +962,6 @@ UINT8 initRCNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) } } } - - initFlag = IdmapInitFunStepCtrl(0x03); - if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) - { - /*ݵṹ */ - for (j = g_struInitTaskTab[g_wCurInitStruProg].wCurInitPos; j < dsuIdmapLenStru->wRCNumLen; j++) - { - pCurrentStru = dsuStaticIdmapStru->pRCNumStru + j; - - pData = pDataAddr + rowDataLen*j; - /*ݽṹ*/ - initFlag = CINumStru_init(pData, pCurrentStru); - if (0U == initFlag) - { - /*initָ*/ - rtnValue = 0U;; - } - else - { - /*ɶӦ*/ - dsuIdmapIndexStru->dsuRCNumIndex[pCurrentStru->wIndexId] = j; - initFlag = IdmapInitLoopStepLenCtrl(j); - } - /*ѭֲи*/ - if ((0U == initFlag) || (DQU_QFUN_TRUE == initFlag)) - { - break; - } - } - - if ((0U != rtnValue) && (j == dsuIdmapLenStru->wRCNumLen)) - { - rtnValue = 1; - } - } - return rtnValue; } @@ -2414,13 +2436,10 @@ UINT8 initIvocNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) UINT8 rtnValue = 2U; UINT8 *pData = NULL; UINT8 initFlag = 0U; - UINT8 checkFlag = 0U; DSU_VOBC_NUM_STRU *pCurrentStru = NULL; /*ṹʱָ*/ DSU_VOBC_NUM_STRU stru = { 0 }; /*ṹʱָ*/ UINT16 j = 0U; static UINT32 rowDataLen = 0; - UINT16 wStruDataLen = 0; - UINT16 wDataIndexLen = 0; /*Ŷձ*/ DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru = NULL; @@ -2469,6 +2488,68 @@ UINT8 initIvocNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) initFlag = IdmapInitFunStepCtrl(0x02); if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) + { + rtnValue = initIvocNumSndStep(dsuIdmapIndexStru, dsuStaticIdmapStru, dsuIdmapLenStru); + } + + initFlag = IdmapInitFunStepCtrl(0x03); + if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) + { + /*ݵṹ */ + for (j = g_struInitTaskTab[g_wCurInitStruProg].wCurInitPos; j < dsuIdmapLenStru->wIvocNumLen; j++) + { + pCurrentStru = dsuStaticIdmapStru->pIvocNumStru + j; + + pData = pDataAddr + rowDataLen*j; + /*ݽṹ*/ + initFlag = VOBCNumStru_init(pData, pCurrentStru); + if (0U == initFlag) + { + /*initָ*/ + rtnValue = 0U;; + } + else + { + /*ɶӦ*/ + dsuIdmapIndexStru->dsuIvocNumIndex[pCurrentStru->wIndexId] = j; + initFlag = IdmapInitLoopStepLenCtrl(j); + } + /*ѭֲи*/ + if ((0U == rtnValue) || (DQU_QFUN_TRUE == initFlag)) + { + break; + } + } + + if ((0U != rtnValue) && (j == dsuIdmapLenStru->wIvocNumLen)) + { + rtnValue = 1; + } + } + + return rtnValue; +} + +/********************************************** +ܣʼ[ŶձIVOC]:----ָӶʹ + +Ŷձ +DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru; +DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru; +DSU_IDMAP_LEN_STRU *dsuIdmapLenStru; +ֵ:2,0ʧ +**********************************************/ +UINT8 initIvocNumSndStep(DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru,DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru,DSU_IDMAP_LEN_STRU *dsuIdmapLenStru) +{ + UINT8 rtnValue = 2U; + UINT16 wStruDataLen = 0; + UINT16 wDataIndexLen = 0; + UINT8 checkFlag = 0U; + if ((NULL == dsuIdmapIndexStru) || (NULL == dsuStaticIdmapStru) || (NULL == dsuIdmapLenStru)) + { + rtnValue = 0U; + } + else { if (0x01 == g_IsIdmapAllocMemory) { @@ -2483,7 +2564,7 @@ UINT8 initIvocNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) else { /*ʼΪ0xFF*/ - (void)CommonMemSet(dsuIdmapIndexStru->dsuIvocNumIndex,(UINT32)(dsuIdmapIndexStru->IVOCNUMINDEXSIZE * 2 + 2),0xFF, (UINT32)(dsuIdmapIndexStru->IVOCNUMINDEXSIZE * 2 + 2)); + (void)CommonMemSet(dsuIdmapIndexStru->dsuIvocNumIndex, (UINT32)(dsuIdmapIndexStru->IVOCNUMINDEXSIZE * 2 + 2), 0xFF, (UINT32)(dsuIdmapIndexStru->IVOCNUMINDEXSIZE * 2 + 2)); } if (2U == rtnValue) @@ -2525,42 +2606,6 @@ UINT8 initIvocNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount) } } } - - initFlag = IdmapInitFunStepCtrl(0x03); - if ((2U == rtnValue) && (DQU_QFUN_TRUE == initFlag)) - { - /*ݵṹ */ - for (j = g_struInitTaskTab[g_wCurInitStruProg].wCurInitPos; j < dsuIdmapLenStru->wIvocNumLen; j++) - { - pCurrentStru = dsuStaticIdmapStru->pIvocNumStru + j; - - pData = pDataAddr + rowDataLen*j; - /*ݽṹ*/ - initFlag = VOBCNumStru_init(pData, pCurrentStru); - if (0U == initFlag) - { - /*initָ*/ - rtnValue = 0U;; - } - else - { - /*ɶӦ*/ - dsuIdmapIndexStru->dsuIvocNumIndex[pCurrentStru->wIndexId] = j; - initFlag = IdmapInitLoopStepLenCtrl(j); - } - /*ѭֲи*/ - if ((0U == rtnValue) || (DQU_QFUN_TRUE == initFlag)) - { - break; - } - } - - if ((0U != rtnValue) && (j == dsuIdmapLenStru->wIvocNumLen)) - { - rtnValue = 1; - } - } - return rtnValue; } @@ -4658,9 +4703,7 @@ UINT8 initIteNum(UINT8* pDataAddr, UINT32 dataSize, UINT16 rowCount) UINT8* pData = NULL; UINT8 initFlag = 0U; UINT8 checkFlag = 0U; - DSU_ITE_NUM_STRU* pCurrentStru = NULL; /*ṹʱָ*/ DSU_ITE_NUM_STRU stru = { 0U }; /*ṹʱָ*/ - UINT16 j = 0U; static UINT32 rowDataLen = 0U; UINT16 wStruDataLen = 0U; UINT16 wDataIndexLen = 0U; diff --git a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.h b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.h index 86bdce0..2d7023a 100644 --- a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.h +++ b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapInit.h @@ -84,6 +84,16 @@ rowCount: **********************************************/ UINT8 initRCNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount); +/********************************************** +ܣʼ[Ŷձ-RC]:--ȦӶʹ + +DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru +DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru +DSU_IDMAP_LEN_STRU *dsuIdmapLenStru +ֵ:2 0ʧ +**********************************************/ +UINT8 initRCNumSndStep(DSU_IDMAP_LEN_STRU *dsuIdmapLenStru, DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru, DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru); + /********************************************** ܣʼ[ATS]: pDataAddr:׵ַ @@ -184,6 +194,17 @@ rowCount: **********************************************/ UINT8 initIvocNum(UINT8 *pDataAddr, UINT32 dataSize, UINT16 rowCount); +/********************************************** +ܣʼ[ŶձIVOC]:----ָӶʹ + +Ŷձ +DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru; +DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru; +DSU_IDMAP_LEN_STRU *dsuIdmapLenStru; +ֵ:2,0ʧ +**********************************************/ +UINT8 initIvocNumSndStep(DSU_IDMAP_INDEX_STRU *dsuIdmapIndexStru, DSU_STATIC_IDMAP_STRU *dsuStaticIdmapStru, DSU_IDMAP_LEN_STRU *dsuIdmapLenStru); + /********************************************** ܣʼ[]: pDataAddr:׵ַ diff --git a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h index d1efd69..82a5423 100644 --- a/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h +++ b/TSCP/src/dqu_common/dqu_idmap_common/dquIdmapQuery.h @@ -380,6 +380,14 @@ UINT16 dquGetIvocIndex(UINT16 dataPos); ***************************************************/ UINT8 dquQueryOutAxleDevId(UINT16 devIndex, UINT32 szOutDevId[2U]); +/************************************************** +*ܣȡݿVOBCűĽṹ +* +* +* ֵVOBCűĽṹ +***************************************************/ +UINT16 dquGetVobcNumLen(void); + #ifdef __cplusplus } #endif diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c b/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c index 58eadb7..4733fee 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbMessageInfo.c @@ -977,18 +977,26 @@ static UINT8 CreateTsdOrSbtMsg(const UINT8* pAppData, UINT16 DataLen, UINT8 appl ret = 1u; /*-< ���ú�������ֵΪ�ɹ�*/ break; /*-< �˳�*/ case APPLCAT_TDM: /*-< TD����*/ - *outPutDataLen = TSD_SIZE; /*-< ����������ݳ���*/ /*��·״̬����*/ pPNode->FsfbLinInfo.RecvLinkStatus = Fsfb_WaitSse; /*-< ���ý�����·״̬Ϊ��SSE*/ /* ����TSD֡ͷ */ SetFsfbMsgHead(applyCat, FSFB_TSD_MSG, pPNode->FsfbLinInfo.sendSrcAdd, pPNode->FsfbLinInfo.sendDestAdd, OutTsdOrSbtMsg); /*-< ���ú�������TSD֡ͷ*/ /*�ж����ݳ����Ƿ�ΪTSD �����ݳ��� */ - if (DataLen != TSD_DF_SIZE) /*-< ���ݳ��ȴ���*/ + if ((TSD_DF_SIZE != DataLen) && (TSD_DF_TWO_SIZE != DataLen)) /*-< ���ݳ��ȴ���*/ { ret = 0u; /*-< ���ú�������ֵΪʧ��*/ } else { + if ((TSD_DF_SIZE == DataLen)) + { + (*outPutDataLen) = TSD_SIZE; /*-< ����������ݳ���*/ + } + else + { + (*outPutDataLen) = TSD_TWO_SIZE; /*-< ����������ݳ���*/ + } + ret = 1u; /*-< ���ú�������ֵΪ�ɹ�*/ } break; /*-< �˳�*/ diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c index a43e1b9..55df05c 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtcl.c @@ -706,6 +706,7 @@ static UINT8 FsfbStructInit(FSFB_INFO_STRU* pFsfbStruct) } else { + ComMemSet(pFsfbStruct->AppArray, sizeof(UINT8) * pFsfbStruct->AppArraySize, 0U); /*-< ���������*/ LongToChar(0, pFsfbStruct->AppArray); /*-< ����������鳤��Ϊ0*/ } @@ -720,6 +721,7 @@ static UINT8 FsfbStructInit(FSFB_INFO_STRU* pFsfbStruct) } else { + ComMemSet(pFsfbStruct->VarArray, sizeof(UINT8) * pFsfbStruct->VarArraySize, 0U); /*-< �����м��������*/ ShortToChar(0u, pFsfbStruct->VarArray); /*-< �����м�������鳤��Ϊ0*/ } diff --git a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h index 1a49282..ee86911 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbProtclConfigMessage.h @@ -35,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 @@ -45,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..56ea088 100644 --- a/TSCP/src/protocol/fsfb/common_fsfb/FsfbRecordDelare.h +++ b/TSCP/src/protocol/fsfb/common_fsfb/FsfbRecordDelare.h @@ -1,6 +1,6 @@ /******************************************************** * -* ļ FsfbRecordDelare.h +* ļ FsfbRecordDelare.h * Ȩ˵ ؿƼ޹˾ * 汾 1.0 * ʱ䣺 2013.09.09 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 f6f171e..9260ac3 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.c +++ b/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.c @@ -41,6 +41,7 @@ static UINT8 StDsuPtclFindSheet(SheetInfo* sheetInfo, UINT8 data[], const UINT32 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); /** * @brief DsuCommonInfoInit ѯʼ @@ -255,7 +256,20 @@ UINT8 DsuGetProtclTypeInfo(UINT16 locTypeId, DSU_PROTCL_TYPE_STRU* dsuProtclType } devNum = 0u; /*-< 豸Ϊ0*/ - StDsuPtclSetDevNum(locType, oppType[i], &outDevIpSheet, &inDevIpSheet, &dupOppHlhtIdLen, dupOppHlhtId, (UINT16)(outInDevIpRowCount), &devNum); /*-< 豸*/ + + StDsuPtclCommRelSetDevNum(locTypeId, oppType[i], &devNum); /*-< ø豸ͨŹϵõ豸*/ + if (0U == devNum) /*-< õ豸*/ + { + StDsuPtclSetDevNum(locType, oppType[i], &outDevIpSheet, &inDevIpSheet, &dupOppHlhtIdLen, dupOppHlhtId, (UINT16)(outInDevIpRowCount), &devNum); /*-< 豸*/ + } + else + { + if (LEU_TYPE == oppType[i]) /*-< ͨΪLEU*/ + { + devNum *= 2U; /*-< LEU·2,ͨ*/ + } + devNum += 1U; /*-< ͳһԣһ·*/ + } /*ӵӦЭ͵ͨ豸*/ switch (oppTypePtl[i]) /*-< ж϶ԷЭ*/ @@ -717,3 +731,48 @@ static void GetCommOppDevNum(SheetInfo* devIpSheet, UINT8 oppType, UINT16* dupOp } } } + +/** + * @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 a670c48..5df16d8 100644 --- a/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.h +++ b/TSCP/src/protocol/protocol_cbtc/common_dqu_protocol/dsuProtclFun.h @@ -47,6 +47,7 @@ extern "C" { #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 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 dcc2033..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 @@ -21,7 +21,6 @@ #define PRTCL_RECORD_SIMPLIFY_BIN /*Ƽ¼*/ #define USE_DSU_SFP /*ʹSFPѯ*/ -#define SWAP_CRC /*CRC*/ #else #endif diff --git a/数据/data_line_BJL10_工程数据(1.2).0.20260210-ts.zip b/数据/data_line_BJL10_工程数据(1.2).0.20260210-ts.zip deleted file mode 100644 index 2461dbe..0000000 --- a/数据/data_line_BJL10_工程数据(1.2).0.20260210-ts.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f2a23966aba7a8761bccf9fe2821d66bb5d2103340030baed8530a81fbc7957a -size 8172278 diff --git a/数据/标准站车车V8.0+公共V31.5+V54.0IVOC+V50.0RCI_CI+V37.0RCI_OC+V22.0ATS+V1.0TMC+V9.0AIM及AID-20260401(1).zip b/数据/标准站车车V8.0+公共V31.5+V54.0IVOC+V50.0RCI_CI+V37.0RCI_OC+V22.0ATS+V1.0TMC+V9.0AIM及AID-20260401(1).zip deleted file mode 100644 index 9660e41..0000000 --- a/数据/标准站车车V8.0+公共V31.5+V54.0IVOC+V50.0RCI_CI+V37.0RCI_OC+V22.0ATS+V1.0TMC+V9.0AIM及AID-20260401(1).zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9abd7242a4fcafef099eadcb600e771b6fc1c2a7b34cf698479245dee5db2d1a -size 33112105 diff --git a/数据/电子地图数据V2.2-CBTC-14-公共31.5+CI50.0+OC37.0-8.zip b/数据/电子地图数据V2.2-CBTC-14-公共31.5+CI50.0+OC37.0-8.zip deleted file mode 100644 index 4ed92a4..0000000 --- a/数据/电子地图数据V2.2-CBTC-14-公共31.5+CI50.0+OC37.0-8.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4443bef5ed0eaf019894e13525d37d1ebe3390060ee4090b0d3b043412c01b20 -size 5611876 diff --git a/数据/电子地图数据V2.2-车车-11-公共31.5+CI50.0+OC37.0+IVOC54.0-6.zip b/数据/电子地图数据V2.2-车车-11-公共31.5+CI50.0+OC37.0+IVOC54.0-6.zip deleted file mode 100644 index df5b392..0000000 --- a/数据/电子地图数据V2.2-车车-11-公共31.5+CI50.0+OC37.0+IVOC54.0-6.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cc54ffd8691e818718c10702f8cb80c536c3c644ac312aedb068930f0783a011 -size 4259937 diff --git a/数据/电子地图数据V2.3-CBTC-23.zip b/数据/电子地图数据V2.3-CBTC-23.zip new file mode 100644 index 0000000..6ed369c --- /dev/null +++ b/数据/电子地图数据V2.3-CBTC-23.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:317f27bac6cf058ba0dd48be8f9b696d6d8198ae06088f663b2860b616b502ad +size 7770464 diff --git a/数据/电子地图数据V2.3-车车-13.zip b/数据/电子地图数据V2.3-车车-13.zip new file mode 100644 index 0000000..47ea567 --- /dev/null +++ b/数据/电子地图数据V2.3-车车-13.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:647c2cd5e43e68537bf4a5bab8f144cb192012119d331691906292f415728027 +size 6086186