Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7dd0b7aa68 | |||
| e0b03e011f | |||
| 18003863ae | |||
| 8e7cd0ea12 | |||
| eb5bdc8177 | |||
| c7c357249a | |||
| 6f48be84e9 | |||
| 65594a600d |
+5
-2
@@ -109,12 +109,15 @@ INCLUDES += -I ./src/APP \
|
||||
-I ./src/MSCP/SFM \
|
||||
-I ./src/MSCP/PFM \
|
||||
-I ./src/MSCP_CFG \
|
||||
|
||||
-I ./src/MSCP/Area\
|
||||
-I ./src/MSCP/OFM\
|
||||
-I ./src/MSCP/Arb
|
||||
#LIBS += -L/path/to/my/lib/$(PLATFORM)/usr/lib -lmylib
|
||||
#LIBS += -L../mylib/$(OUTPUT_DIR) -lmylib
|
||||
|
||||
#Compiler flags for build profiles
|
||||
CCFLAGS_release += -O0
|
||||
CCFLAGS_release += -O2
|
||||
#CCFLAGS_release += -g -O2
|
||||
CCFLAGS_debug += -g -O0 -fno-builtin
|
||||
CCFLAGS_coverage += -g -O0 -ftest-coverage -fprofile-arcs -nopipe -Wc,-auxbase-strip,$@
|
||||
LDFLAGS_coverage += -ftest-coverage -fprofile-arcs
|
||||
|
||||
+231
-35
@@ -226,7 +226,7 @@ void APP_API_Data_Init()
|
||||
UINT8 funcRetVal = 0U;
|
||||
funcRetVal = dquGetFSVersion(DataPath, szFSFILEVersionFS);
|
||||
|
||||
#if (kPLATFORM==kVXWORKS)
|
||||
#if 0//(kPLATFORM==kVXWORKS)
|
||||
/*文件配置*/
|
||||
STRU_APP_CFG_T AppCfgInterface = {
|
||||
.FS_NAME = "RCI.FS", /**< FS文件名称 */
|
||||
@@ -238,16 +238,16 @@ void APP_API_Data_Init()
|
||||
.M_InnetSafe_Enable = 0x55, /**< 内网安全通信功能开关 */
|
||||
.M_InnetRaw_Enable = 0xAA, /**< 内网透传通信功能开关 */
|
||||
.M_OutnetSafe_Enable = 0x55,/**< 外网安全通信功能开关 */
|
||||
.M_OutnetRaw_Enable = 0xAA, /**< 外网透传通信功能开关 */
|
||||
.M_CpuUsageGet_Enable = 0x55,/**< 获取cpu使用率功能开关 */
|
||||
.M_OutnetRaw_Enable = 0x55, /**< 外网透传通信功能开关 */
|
||||
.M_CpuUsageGet_Enable = 0xAA,/**< 获取cpu使用率功能开关 */
|
||||
.M_RemoteUpdate_Enable = 0x55,/**< 远程部署内网安全通信功能开关 */
|
||||
.ID_Maintenance = DEVICE_TYPE_AIM,
|
||||
.Start_Path = "/emmc1", /**< 程序启动路径 */
|
||||
.reboot_replycount = 10, /**< 重启确认报文回复次数 */
|
||||
.M_AutoReboot_Count = 3, /**< 自动重启次数 */
|
||||
.M_AutoReboot_Count = 0, /**< 自动重启次数 */
|
||||
.M_AutoClear_Days = 1, /**< 连续运行多久清空宕机次数的天数 */
|
||||
.CPU[0].IP_2oo2 = "192.168.0.11", /**< 2oo2通信IP */
|
||||
.CPU[0].IP_2x2 = "192.168.1.62", /**< 2x2通信IP */
|
||||
// .CPU[0].IP_2x2 = "192.168.1.62", /**< 2x2通信IP */
|
||||
.CPU[0].IP_Out = "192.168.1.62", /**< 外网通信IP */
|
||||
.CPU[0].IP_Maintain = "192.168.146.101", /**< 维护通信IP */
|
||||
/*适用透传通道-选配*/
|
||||
@@ -257,7 +257,7 @@ void APP_API_Data_Init()
|
||||
.CPU[0].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
|
||||
.CPU[1].IP_2oo2 = "192.168.0.12", /**< 2oo2通信IP */
|
||||
.CPU[1].IP_2x2 = "192.168.2.62", /**< 2x2通信IP */
|
||||
// .CPU[1].IP_2x2 = "192.168.2.62", /**< 2x2通信IP */
|
||||
.CPU[1].IP_Out = "192.168.2.62", /**< 外网通信IP */
|
||||
.CPU[1].IP_Maintain = "192.168.18.102", /**< 维护通信IP */
|
||||
/*适用透传通道-选配*/
|
||||
@@ -267,7 +267,7 @@ void APP_API_Data_Init()
|
||||
.CPU[1].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
|
||||
.CPU[2].IP_2oo2 = "192.168.0.21", /**< 2oo2通信IP */
|
||||
.CPU[2].IP_2x2 = "192.168.1.64", /**< 2x2通信IP */
|
||||
// .CPU[2].IP_2x2 = "192.168.1.64", /**< 2x2通信IP */
|
||||
.CPU[2].IP_Out = "192.168.1.64", /**< 外网通信IP */
|
||||
.CPU[2].IP_Maintain = "192.168.146.103", /**< 维护通信IP */
|
||||
/*适用透传通道-选配*/
|
||||
@@ -277,7 +277,7 @@ void APP_API_Data_Init()
|
||||
.CPU[2].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
|
||||
.CPU[3].IP_2oo2 = "192.168.0.22", /**< 2oo2通信IP */
|
||||
.CPU[3].IP_2x2 = "192.168.2.64", /**< 2x2通信IP */
|
||||
// .CPU[3].IP_2x2 = "192.168.2.64", /**< 2x2通信IP */
|
||||
.CPU[3].IP_Out = "192.168.2.64", /**< 外网通信IP */
|
||||
.CPU[3].IP_Maintain = "192.168.18.104", /**< 维护通信IP */
|
||||
/*适用透传通道-选配*/
|
||||
@@ -338,6 +338,204 @@ void APP_API_Data_Init()
|
||||
.INNET_COM_CFG[0].Port_Safe_P = 55003, /**< 紫网安全端口 */
|
||||
};
|
||||
MSCP_Set_APP_ConfigData(&AppCfgInterface);
|
||||
#else
|
||||
/*↑↑用户初始化代码↑↑*/
|
||||
/*↓↓基本数据初始化配置示例↓↓*/
|
||||
STRU_APP_CFG_T AppCfgInterface = {
|
||||
.FS_NAME = "RCI.FS", /**< FS文件名称 */
|
||||
.APP_NAME = "RCOCI", /**< 应用文件名称 */
|
||||
.CYC_TIME = 300, /**< 系统周期(ms) */
|
||||
.app_num = 1, /**< app任务数1-4 */
|
||||
.M_2oo2_Enable = 0x55, /**< 2oo2功能开关,开0x55,关0xAA */
|
||||
.M_2x2_Enable = 0x55, /**< 2x2功能开关,开0x55,关0xAA*/
|
||||
.M_4x2_Enable = 0x55, /**< 4x2功能开关,开0x55,关0xAA*/
|
||||
.M_Arb_Enable = 0x55, /**< 仲裁功能开关 */
|
||||
.M_2x2_Com_Cfg = 0x00, /**< 2x2通信功能配置,串口0x00,网卡0x01*/
|
||||
.M_InnetSafe_Enable = 0x55, /**< 内网安全通信功能开关,开0x55,关0xAA */
|
||||
.M_InnetRaw_Enable = 0x55, /**< 内网透传通信功能开关,开0x55,关0xAA */
|
||||
.M_OutnetSafe_Enable = 0x55,/**< 外网安全通信功能开关,开0x55,关0xAA */
|
||||
.M_OutnetRaw_Enable = 0x55, /**< 外网透传通信功能开关,开0x55,关0xAA */
|
||||
.M_CpuUsageGet_Enable = 0xAA,/**< 外网透传通信功能开关,开0x55,关0xAA */
|
||||
.M_RemoteUpdate_Enable = 0xAA,/**< 远程部署内网安全通信功能开关,开0x55,关0xAA */
|
||||
.ID_Maintenance = 0xF800, /**< 设置维护终端ID */
|
||||
.Start_Path = "./emmc1", /**< 程序启动路径 */
|
||||
.reboot_replycount = 10, /**< 重启确认报文回复次数 */
|
||||
.M_AutoReboot_Count = 0, /**< 自动重启次数 */
|
||||
.M_AutoClear_Days = 1, /**< 连续运行多久清空宕机次数的天数 */
|
||||
/*CPU1-1 IP配置*/
|
||||
.CPU[0].IP_2oo2 = "192.168.0.11", /**< 2oo2通信IP */
|
||||
.CPU[0].IP_4x2 = "192.168.1.62", /**< 2x2通信IP */
|
||||
.CPU[0].IP_Out = "192.168.1.62", /**< 外网通信IP */
|
||||
.CPU[0].IP_Maintain = "192.168.146.101", /**< 维护通信IP */
|
||||
.CPU[0].IP_Area = "10.3.1.61", /**< 4x2通信IP */
|
||||
.CPU[0].IP_Sync_Time_A = "192.168.1.62", /**< 时间同步网络A网IP */
|
||||
.CPU[0].IP_Sync_Time_B = "10.3.1.61", /**< 时间同步网络B网IP */
|
||||
/*CPU1-1适用透传通道-选配*/
|
||||
.CPU[0].IP_Com = "192.168.1.62", /**< 通用通信IP */
|
||||
.CPU[0].IP_Com_Extend = "192.168.1.62",/**< 通用通信扩展IP */
|
||||
.CPU[0].Logger_PortBase = 55011, /**< 明文日志记录发送端口 */
|
||||
.CPU[0].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*CPU1-2 IP配置*/
|
||||
.CPU[1].IP_2oo2 = "192.168.0.12", /**< 2oo2通信IP */
|
||||
.CPU[1].IP_4x2 = "192.168.2.62", /**< 2x2通信IP */
|
||||
.CPU[1].IP_Out = "192.168.2.62", /**< 外网通信IP */
|
||||
.CPU[1].IP_Maintain = "192.168.18.102", /**< 维护通信IP */
|
||||
.CPU[1].IP_Area = "10.3.1.63", /**< 4x2通信IP */
|
||||
.CPU[1].IP_Sync_Time_A = "192.168.2.62", /**< 时间同步网络A网IP */
|
||||
.CPU[1].IP_Sync_Time_B = "10.3.1.63", /**< 时间同步网络B网IP */
|
||||
/*CPU1-2适用透传通道-选配*/
|
||||
.CPU[1].IP_Com = "192.168.2.62", /**< 通用通信IP */
|
||||
.CPU[1].IP_Com_Extend = "192.168.2.62",/**< 通用通信扩展IP */
|
||||
.CPU[1].Logger_PortBase = 55012, /**< 明文日志记录发送端口 */
|
||||
.CPU[1].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*CPU2-1 IP配置*/
|
||||
.CPU[2].IP_2oo2 = "192.168.0.11", /**< 2oo2通信IP */
|
||||
.CPU[2].IP_4x2 = "192.168.1.64", /**< 2x2通信IP */
|
||||
.CPU[2].IP_Out = "192.168.1.64", /**< 外网通信IP */
|
||||
.CPU[2].IP_Maintain = "192.168.146.103", /**< 维护通信IP */
|
||||
.CPU[2].IP_Area = "10.4.1.62", /**< 4x2通信IP */
|
||||
.CPU[2].IP_Sync_Time_A = "192.168.1.64", /**< 时间同步网络A网IP */
|
||||
.CPU[2].IP_Sync_Time_B = "10.4.1.62", /**< 时间同步网络B网IP */
|
||||
/*CPU2-1适用透传通道-选配*/
|
||||
.CPU[2].IP_Com = "192.168.1.64", /**< 通用通信IP */
|
||||
.CPU[2].IP_Com_Extend = "192.168.1.64",/**< 通用通信扩展IP */
|
||||
.CPU[2].Logger_PortBase = 55021, /**< 明文日志记录发送端口 */
|
||||
.CPU[2].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*CPU2-2 IP配置*/
|
||||
.CPU[3].IP_2oo2 = "192.168.0.12", /**< 2oo2通信IP */
|
||||
.CPU[3].IP_4x2 = "192.168.2.64", /**< 2x2通信IP */
|
||||
.CPU[3].IP_Out = "192.168.2.64", /**< 外网通信IP */
|
||||
.CPU[3].IP_Maintain = "192.168.18.104", /**< 维护通信IP */
|
||||
.CPU[3].IP_Area = "10.4.1.64", /**< 4x2通信IP */
|
||||
.CPU[3].IP_Sync_Time_A = "192.168.2.64", /**< 时间同步网络A网IP */
|
||||
.CPU[3].IP_Sync_Time_B = "10.4.1.64", /**< 时间同步网络B网IP */
|
||||
/*CPU2-2适用透传通道-选配*/
|
||||
.CPU[3].IP_Com = "192.168.2.64", /**< 通用通信IP */
|
||||
.CPU[3].IP_Com_Extend = "192.168.2.64",/**< 通用通信扩展IP */
|
||||
.CPU[3].Logger_PortBase = 55022, /**< 明文日志记录发送端口 */
|
||||
.CPU[3].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*CPU3-1 IP配置*/
|
||||
.CPU[4].IP_2oo2 = "192.168.0.11", /**< 2oo2通信IP */
|
||||
.CPU[4].IP_4x2 = "192.168.1.162", /**< 2x2通信IP */
|
||||
.CPU[4].IP_Out = "192.168.1.162", /**< 外网通信IP */
|
||||
.CPU[4].IP_Maintain = "192.168.146.201", /**< 维护通信IP */
|
||||
.CPU[4].IP_Area = "10.3.1.161", /**< 4x2通信IP */
|
||||
.CPU[4].IP_Sync_Time_A = "192.168.1.162", /**< 时间同步网络A网IP */
|
||||
.CPU[4].IP_Sync_Time_B = "10.3.1.161", /**< 时间同步网络B网IP */
|
||||
/*CPU3-1适用透传通道-选配*/
|
||||
.CPU[4].IP_Com = "192.168.1.162", /**< 通用通信IP */
|
||||
.CPU[4].IP_Com_Extend = "192.168.1.162",/**< 通用通信扩展IP */
|
||||
.CPU[4].Logger_PortBase = 55031, /**< 明文日志记录发送端口 */
|
||||
.CPU[4].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*CPU3-2 IP配置*/
|
||||
.CPU[5].IP_2oo2 = "192.168.0.12", /**< 2oo2通信IP */
|
||||
.CPU[5].IP_4x2 = "192.168.2.162", /**< 2x2通信IP */
|
||||
.CPU[5].IP_Out = "192.168.2.162", /**< 外网通信IP */
|
||||
.CPU[5].IP_Maintain = "192.168.18.202", /**< 维护通信IP */
|
||||
.CPU[5].IP_Area = "10.3.1.163", /**< 4x2通信IP */
|
||||
.CPU[5].IP_Sync_Time_A = "192.168.2.162", /**< 时间同步网络A网IP */
|
||||
.CPU[5].IP_Sync_Time_B = "10.3.1.163", /**< 时间同步网络B网IP */
|
||||
/*CPU3-2适用透传通道-选配*/
|
||||
.CPU[5].IP_Com = "192.168.2.162", /**< 通用通信IP */
|
||||
.CPU[5].IP_Com_Extend = "192.168.2.162",/**< 通用通信扩展IP */
|
||||
.CPU[5].Logger_PortBase = 55032, /**< 明文日志记录发送端口 */
|
||||
.CPU[5].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*CPU4-1 IP配置*/
|
||||
.CPU[6].IP_2oo2 = "192.168.0.11", /**< 2oo2通信IP */
|
||||
.CPU[6].IP_4x2 = "192.168.1.164", /**< 2x2通信IP */
|
||||
.CPU[6].IP_Out = "192.168.1.164", /**< 外网通信IP */
|
||||
.CPU[6].IP_Maintain = "192.168.146.203", /**< 维护通信IP */
|
||||
.CPU[6].IP_Area = "10.4.1.162", /**< 4x2通信IP */
|
||||
.CPU[6].IP_Sync_Time_A = "192.168.1.164", /**< 时间同步网络A网IP */
|
||||
.CPU[6].IP_Sync_Time_B = "10.4.1.162", /**< 时间同步网络B网IP */
|
||||
/*CPU4-1适用透传通道-选配*/
|
||||
.CPU[6].IP_Com = "192.168.1.164", /**< 通用通信IP */
|
||||
.CPU[6].IP_Com_Extend = "192.168.1.164",/**< 通用通信扩展IP */
|
||||
.CPU[6].Logger_PortBase = 55041, /**< 明文日志记录发送端口 */
|
||||
.CPU[6].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*CPU4-2 IP配置*/
|
||||
.CPU[7].IP_2oo2 = "192.168.0.12", /**< 2oo2通信IP */
|
||||
.CPU[7].IP_4x2 = "192.168.2.164", /**< 2x2通信IP */
|
||||
.CPU[7].IP_Out = "192.168.2.164", /**< 外网通信IP */
|
||||
.CPU[7].IP_Maintain = "192.168.18.204", /**< 维护通信IP */
|
||||
.CPU[7].IP_Area = "10.4.1.164", /**< 4x2通信IP */
|
||||
.CPU[7].IP_Sync_Time_A = "192.168.2.164", /**< 时间同步网络A网IP */
|
||||
.CPU[7].IP_Sync_Time_B = "10.4.1.164", /**< 时间同步网络B网IP */
|
||||
/*CPU4-2适用透传通道-选配*/
|
||||
.CPU[7].IP_Com = "192.168.2.164", /**< 通用通信IP */
|
||||
.CPU[7].IP_Com_Extend = "192.168.2.164",/**< 通用通信扩展IP */
|
||||
.CPU[7].Logger_PortBase = 55042, /**< 明文日志记录发送端口 */
|
||||
.CPU[7].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
/*组播地址配置*/
|
||||
.IP_Area_G_Multicast = "239.0.0.10", /**< 组播通信IP */
|
||||
.IP_Area_P_Multicast = "239.0.0.20", /**< 组播通信IP */
|
||||
.Multicast_Flag = 1u, /**< 单播:0 组播:1 */
|
||||
/*通用端口配置,平台固定通信端口禁止使用:51001、51002、51003、52001、52002、52003*/
|
||||
.Port_Outnet_Safe = 54001, /**< 外网安全通信端口 */
|
||||
.Port_Innet_Safe = 53001, /**< 内网安全通信端口 */
|
||||
.Port_Outnet_Raw = 54002, /**< 外网透明传输端口 */
|
||||
.Port_Remote_Update = 50000, /**< 远程部署通信端口 */
|
||||
/*透传配置-选配*/
|
||||
.Port_Innet_Raw_Num = 1, /**< 内网透传端口数量0-9 */
|
||||
.Port_Innet_Raw_Extend_Num = 1, /**< 内网透传扩展端口数量0-9 */
|
||||
/*透传通道-Number 1根据数量两个通道的数量,按序号累加以此类推(0-17)*/
|
||||
.Innet_Raw_Parameter[0].Port_Innet_Raw = 3956, /**< 内网透明传输端口 */
|
||||
.Innet_Raw_Parameter[0].Port_Type_Enable = RAW_COM_UDP, /**< 内网透明UDP传输模式 */
|
||||
.Innet_Raw_Parameter[0].Server_DevId = 0, /**< 服务端设备类型和id */
|
||||
.Innet_Raw_Parameter[0].TIME_STAMP_ENABLE = 0XAA, /**< 2取2乘时间戳使能开关 */
|
||||
.Innet_Raw_Parameter[0].INNET_2oo2_RAW = 0X55, /**< 透传通道2取开关,开0x55,关0xAA */
|
||||
.Innet_Raw_Parameter[0].INNET_2x2_RAW = 0XAA, /**< 透传通道2乘开关,开0x55,关0xAA */
|
||||
.Innet_Raw_Parameter[0].IP_InnetRaw_maddr = "224.0.0.31",/**< 内网透传的组播IP */
|
||||
/*扩展通道-Number 1 根据数量两个通道的数量,按序号累加以此类推(0-17)*/
|
||||
.Innet_Raw_Parameter[1].Port_Innet_Raw = 3957, /**< 内网透明传输端口 */
|
||||
.Innet_Raw_Parameter[1].Port_Type_Enable = RAW_COM_BROADCAST, /**< 内网透明广播传输模式 */
|
||||
.Innet_Raw_Parameter[1].Server_DevId = 0, /**< 服务端设备类型和id */
|
||||
.Innet_Raw_Parameter[1].TIME_STAMP_ENABLE = 0XAA, /**< 2取2乘时间戳使能开关 */
|
||||
.Innet_Raw_Parameter[1].INNET_2oo2_RAW = 0X55, /**< 透传通道2取开关,开0x55,关0xAA */
|
||||
.Innet_Raw_Parameter[1].INNET_2x2_RAW = 0XAA, /**< 透传通道2乘开关,开0x55,关0xAA */
|
||||
.Innet_Raw_Parameter[1].IP_InnetRaw_maddr = "224.0.0.32",/**< 内网透传的组播IP */
|
||||
/*外网通信配置-红网*/
|
||||
.OutNetRed.CC_G_IP_A = "192.168.1.60", /**< 通控的内网IP */
|
||||
.OutNetRed.CC_P_IP_A = "192.168.2.60", /**< 通控的内网IP */
|
||||
.OutNetRed.CC_G_IP_B = "192.168.1.160", /**< 通控的内网IP */
|
||||
.OutNetRed.CC_P_IP_B = "192.168.2.160", /**< 通控的内网IP */
|
||||
.OutNetRed.EXTEND_G_IP_A = "192.168.1.70", /**< 扩展板卡的内网IP */
|
||||
.OutNetRed.EXTEND_P_IP_A = "192.168.2.70", /**< 扩展板卡的内网IP */
|
||||
.OutNetRed.EXTEND_G_IP_B = "192.168.1.71", /**< 扩展板卡的内网IP */
|
||||
.OutNetRed.EXTEND_P_IP_B = "192.168.2.71", /**< 扩展板卡的内网IP */
|
||||
.OutNetRed.OutnetSafe_Port = 54001, /**< 外网安全通信端口 */
|
||||
.OutNetRed.OutnetRaw_Port = 54002, /**< 外网透传通信端口 */
|
||||
/*外网通信配置-蓝网*/
|
||||
.OutNetBlue.CC_G_IP_A = "192.168.1.61", /**< 通控的内网IP */
|
||||
.OutNetBlue.CC_P_IP_A = "192.168.2.61", /**< 通控的内网IP */
|
||||
.OutNetBlue.CC_G_IP_B = "192.168.1.161", /**< 通控的内网IP */
|
||||
.OutNetBlue.CC_P_IP_B = "192.168.2.161", /**< 通控的内网IP */
|
||||
.OutNetBlue.EXTEND_G_IP_A = "192.168.1.170", /**< 扩展板卡的内网IP */
|
||||
.OutNetBlue.EXTEND_P_IP_A = "192.168.2.170", /**< 扩展板卡的内网IP */
|
||||
.OutNetBlue.EXTEND_G_IP_B = "192.168.1.171", /**< 扩展板卡的内网IP */
|
||||
.OutNetBlue.EXTEND_P_IP_B = "192.168.2.171", /**< 扩展板卡的内网IP */
|
||||
.OutNetBlue.OutnetSafe_Port = 54001, /**< 外网安全通信端口 */
|
||||
.OutNetBlue.OutnetRaw_Port = 54002, /**< 外网透传通信端口 */
|
||||
/*日志记录目标设备IP配置*/
|
||||
.Logger_G_IP_A = "192.168.146.100", /**< A地绿网日志记录IP */
|
||||
.Logger_P_IP_A = "192.168.18.100", /**< A地紫网日志记录IP */
|
||||
.Logger_G_IP_B = "192.168.146.200", /**< B地绿网日志记录IP */
|
||||
.Logger_P_IP_B = "192.168.18.200", /**< B地绿网日志记录IP */
|
||||
/*内网通信设备注册最大支持0-255,注意:IP配置方式比较特别,与前面配置区分*/
|
||||
.INNET_COM_NUM = 1, /**< 内网通信设备数量0-255 */
|
||||
.INNET_COM_CFG[0].InnetID = 0xF800, /**< 内网通信ID */
|
||||
.INNET_COM_CFG[0].IP_G = (CM_UINT32)inet_addr("172.25.0.100"),/**< 绿网IP*/
|
||||
.INNET_COM_CFG[0].Port_Raw_G = 55003, /**< 绿网透传端口 */
|
||||
.INNET_COM_CFG[0].Port_Safe_G = 55004, /**< 绿网安全端口 */
|
||||
.INNET_COM_CFG[0].IP_P = (CM_UINT32)inet_addr("172.17.0.100"),/**< 紫网IP */
|
||||
.INNET_COM_CFG[0].Port_Raw_P = 55003, /**< 紫网透传端口 */
|
||||
.INNET_COM_CFG[0].Port_Safe_P = 55004, /**< 紫网安全端口 */
|
||||
/*第三方仲裁通信配置*/
|
||||
.Arb_CFG.IP_Arb_G = "10.3.1.200",
|
||||
.Arb_CFG.IP_Arb_P = "10.4.1.200",
|
||||
};
|
||||
/*调用参数设置初始化接口*/
|
||||
MSCP_Set_APP_ConfigData(&AppCfgInterface);
|
||||
#endif
|
||||
|
||||
/*组FS版本号*/
|
||||
@@ -349,10 +547,10 @@ void APP_API_Data_Init()
|
||||
|
||||
/*组软件版本号*/
|
||||
ii = 0U;
|
||||
appVersBuffer[ii++] = VER_INTE_PROJECT;
|
||||
appVersBuffer[ii++] = VER_INTE_PRODUCT >> 2U;
|
||||
appVersBuffer[ii++] = (VER_INTE_PRODUCT << 6U) + (VER_INTE_EXE & (UINT8)0x3F);
|
||||
appVersBuffer[ii++] = VER_INTE_TIME;
|
||||
appVersBuffer[ii++] = VER_SOFT_PRODUCT;
|
||||
appVersBuffer[ii++] = VER_SOFT_MODUAL_APP >> 2U;
|
||||
appVersBuffer[ii++] = (VER_SOFT_MODUAL_APP << 6U) + (VER_SOFT_MIANVERSION & (UINT8)0x3F);
|
||||
appVersBuffer[ii++] = VER_SOFT_SUBVERSION;
|
||||
/*设置平台调用获取外网信息函数*/
|
||||
MSCP_SetSrcId(SetOutNetPara);
|
||||
/*设置内网参数*/
|
||||
@@ -366,16 +564,16 @@ void APP_API_Data_Init()
|
||||
* - ENUM_CM_TRUE 成功
|
||||
* - ENUM_CM_FALSE 失败(平台立即宕机)
|
||||
* @details
|
||||
* 当本系热备状态为:ENUM_2x2_SHUTDOWN,时
|
||||
* 当本系热备状态为:ENUM_4x2_SHUTDOWN,时
|
||||
* 本函数不执行;
|
||||
* 当本系热备状态为:ENUM_2x2_OFFLINE,ENUM_2x2_PRE_MASTER,ENUM_2x2_SLAVE,时
|
||||
* 当本系热备状态为:ENUM_4x2_OFFLINE,ENUM_4x2_PRE_MASTER,ENUM_4x2_SLAVE,时
|
||||
* 本函数被周期执行,但 ENUM_MSG_OUTNET_SAFE 报文不会真实输出;
|
||||
* 当本系热备状态为:ENUM_2x2_MASTER,时
|
||||
* 当本系热备状态为:ENUM_4x2_MASTER,时
|
||||
* 本函数被周期执行,并且所有输出信息被真实输出。
|
||||
*/
|
||||
ENUM_CM_RETURN APP_API_MainFunc(void)
|
||||
{
|
||||
ENUM_CM_RETURN retVal = ENUM_CM_NULL;
|
||||
ENUM_CM_RETURN retVal = ENUM_CM_FALSE;
|
||||
CM_UINT64 startCycTick = 0u;
|
||||
CM_UINT64 endCycTick = 0u;
|
||||
|
||||
@@ -393,8 +591,9 @@ ENUM_CM_RETURN APP_API_MainFunc(void)
|
||||
endCycTick = MSCP_GetTick();
|
||||
debug_infor_printf("app proc end at %llu us,used %d us\n", endCycTick, (CM_INT32)((endCycTick - startCycTick) / 1000));
|
||||
|
||||
gFollowDataLen = GetCiAppData(gFollowData);
|
||||
MSCP_SetFollowData(gFollowData, gFollowDataLen);
|
||||
//gFollowDataLen = GetCiAppData(gFollowData);
|
||||
memset(gFollowData,0x02,1024*500);
|
||||
MSCP_SetFollowData(gFollowData, 1024*500);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
@@ -405,11 +604,11 @@ ENUM_CM_RETURN APP_API_MainFunc(void)
|
||||
* - ENUM_CM_TRUE 成功
|
||||
* - ENUM_CM_FALSE 失败(平台立即宕机)
|
||||
* @details
|
||||
* 当本系热备状态为:ENUM_2x2_SHUTDOWN,时
|
||||
* 当本系热备状态为:ENUM_4x2_SHUTDOWN,时
|
||||
* 本函数不执行;
|
||||
* 当本系热备状态为:ENUM_2x2_OFFLINE,ENUM_2x2_PRE_MASTER,ENUM_2x2_SLAVE,时
|
||||
* 当本系热备状态为:ENUM_4x2_OFFLINE,ENUM_4x2_PRE_MASTER,ENUM_4x2_SLAVE,时
|
||||
* 本函数被周期执行,但 ENUM_MSG_OUTNET_SAFE 报文不会真实输出;
|
||||
* 当本系热备状态为:ENUM_2x2_MASTER,时
|
||||
* 当本系热备状态为:ENUM_4x2_MASTER,时
|
||||
* 本函数被周期执行,并且所有输出信息被真实输出。
|
||||
*/
|
||||
ENUM_CM_RETURN APP_API_MainFunc2(void)
|
||||
@@ -425,11 +624,11 @@ ENUM_CM_RETURN APP_API_MainFunc2(void)
|
||||
* - ENUM_CM_TRUE 成功
|
||||
* - ENUM_CM_FALSE 失败(平台立即宕机)
|
||||
* @details
|
||||
* 当本系热备状态为:ENUM_2x2_SHUTDOWN,时
|
||||
* 当本系热备状态为:ENUM_4x2_SHUTDOWN,时
|
||||
* 本函数不执行;
|
||||
* 当本系热备状态为:ENUM_2x2_OFFLINE,ENUM_2x2_PRE_MASTER,ENUM_2x2_SLAVE,时
|
||||
* 当本系热备状态为:ENUM_4x2_OFFLINE,ENUM_4x2_PRE_MASTER,ENUM_4x2_SLAVE,时
|
||||
* 本函数被周期执行,但 ENUM_MSG_OUTNET_SAFE 报文不会真实输出;
|
||||
* 当本系热备状态为:ENUM_2x2_MASTER,时
|
||||
* 当本系热备状态为:ENUM_4x2_MASTER,时
|
||||
* 本函数被周期执行,并且所有输出信息被真实输出。
|
||||
*/
|
||||
ENUM_CM_RETURN APP_API_MainFunc3(void)
|
||||
@@ -452,11 +651,11 @@ ENUM_CM_RETURN APP_API_MainFunc4(void)
|
||||
* - ENUM_CM_TRUE 成功
|
||||
* - ENUM_CM_FALSE 失败(平台立即宕机)
|
||||
* @details
|
||||
* 当本系热备状态为:ENUM_2x2_SHUTDOWN,时
|
||||
* 当本系热备状态为:ENUM_4x2_SHUTDOWN,时
|
||||
* 本函数不执行;
|
||||
* 当本系热备状态为:ENUM_2x2_OFFLINE,ENUM_2x2_PRE_MASTER,ENUM_2x2_SLAVE,时
|
||||
* 当本系热备状态为:ENUM_4x2_OFFLINE,ENUM_4x2_PRE_MASTER,ENUM_4x2_SLAVE,时
|
||||
* 本函数被周期执行,但 ENUM_MSG_OUTNET_SAFE 报文不会真实输出;
|
||||
* 当本系热备状态为:ENUM_2x2_MASTER,时
|
||||
* 当本系热备状态为:ENUM_4x2_MASTER,时
|
||||
* 本函数被周期执行,并且所有输出信息被真实输出。
|
||||
*/
|
||||
ENUM_CM_RETURN APP_API_MainFunc5(void)
|
||||
@@ -494,7 +693,7 @@ ENUM_CM_RETURN APP_API_InputFunc(void)
|
||||
* - ENUM_CM_TRUE 成功
|
||||
* - ENUM_CM_FALSE 失败(平台立即宕机)
|
||||
* @details
|
||||
* 当本系热备状态为:ENUM_2x2_OFFLINE,ENUM_2x2_SLAVE,且收到了邻系正确的跟随数据时
|
||||
* 当本系热备状态为:ENUM_4x2_OFFLINE,ENUM_4x2_SLAVE,且收到了邻系正确的跟随数据时
|
||||
* 本函数将在APP_API_MainFunc()之前执行;
|
||||
* 否则,本函数不执行。
|
||||
* 应用跟随数据的最大长度不得超过1024*1000字节
|
||||
@@ -505,7 +704,8 @@ ENUM_CM_RETURN APP_API_FollowUp(IN const CM_UINT8 Data[MSCP_FOLLOW_BUFF_SIZE], I
|
||||
ENUM_CM_RETURN retVal = ENUM_CM_FALSE;
|
||||
UINT8 setRtn = 0u;
|
||||
|
||||
setRtn = SetCiAppData(Data, Len);
|
||||
//setRtn = SetCiAppData(Data, Len);
|
||||
setRtn = 1;
|
||||
if (1u == setRtn)
|
||||
{
|
||||
retVal = ENUM_CM_TRUE;
|
||||
@@ -559,10 +759,6 @@ ENUM_CM_RECCUSEB Is_Send_ExtendBoard(IN const CM_UINT16 dstDevTypeId)
|
||||
{
|
||||
retVal = ENUM_CM_SEB;
|
||||
}
|
||||
else if (CI_SYSTEM_TYPE_ITE == devType)
|
||||
{
|
||||
retVal = ENUM_CM_CCSEB;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = ENUM_CM_CC;
|
||||
@@ -624,8 +820,8 @@ void SetOutNetPara(UINT8* pRxBuf, UINT32 dwLen, ENUM_OUTNET_CHN_T chOutNetType,
|
||||
tempLen = *pCurLen;
|
||||
if ((TRANSMIT_OBJECT_SUM_MAX * TRANSMIT_OBJECT_DEVICE_SUM_MAX) > (tempLen + objLen))
|
||||
{
|
||||
CommonMemCpy((void*)&pOutBuf[tempLen], objLen * sizeof(UINT16), \
|
||||
(const void*)gTransmitObjTypeId, objLen * sizeof(UINT16));
|
||||
CommonMemCpy(&pOutBuf[tempLen], objLen * sizeof(UINT16), \
|
||||
gTransmitObjTypeId, objLen * sizeof(UINT16));
|
||||
*pCurLen = tempLen + objLen;
|
||||
debug_infor_printf("outnet in type len :%d", chOutNetType, objLen);
|
||||
debug_out_array(0xAA, gTransmitObjTypeId, objLen * sizeof(UINT16));
|
||||
|
||||
@@ -40,11 +40,11 @@ extern "C" {
|
||||
* - ENUM_CM_TRUE 成功
|
||||
* - ENUM_CM_FALSE 失败(平台立即宕机)
|
||||
* @note
|
||||
* 当本系热备状态为:ENUM_2x2_SHUTDOWN,时
|
||||
* 当本系热备状态为:ENUM_4x2_SHUTDOWN,时
|
||||
* 本函数不执行;
|
||||
* 当本系热备状态为:ENUM_2x2_OFFLINE,ENUM_2x2_PRE_MASTER,ENUM_2x2_SLAVE,时
|
||||
* 当本系热备状态为:ENUM_4x2_OFFLINE,ENUM_4x2_PRE_MASTER,ENUM_4x2_SLAVE,时
|
||||
* 本函数被周期执行,但 ENUM_MSG_OUTNET_SAFE 报文不会真实输出;
|
||||
* 当本系热备状态为:ENUM_2x2_MASTER,时
|
||||
* 当本系热备状态为:ENUM_4x2_MASTER,时
|
||||
* 本函数被周期执行,并且所有输出信息被真实输出。
|
||||
*/
|
||||
ENUM_CM_RETURN APP_API_MainFunc(void);
|
||||
|
||||
@@ -30,6 +30,6 @@
|
||||
#define VER_INTE_PROJECT 220 /*项目编号*/
|
||||
#define VER_INTE_PRODUCT 40 /*产品编号*/
|
||||
#define VER_INTE_EXE 1 /*可执行编号*/
|
||||
#define VER_INTE_TIME 118 /*集成次数编号*/
|
||||
#define VER_INTE_TIME 77 /*集成次数编号*/
|
||||
|
||||
#endif/*endif of #define _CI_INTEGRATE_CONFIG_H*/
|
||||
@@ -16,7 +16,6 @@
|
||||
#include "NonAutoReturnDataManage.h"
|
||||
#include "DynamicRouteDataManage.h"
|
||||
#include "../Deployment/DeploymentExtern.h"
|
||||
#include "SpeedLimitSecDataManage.h"
|
||||
/*交换变量*/
|
||||
extern UINT16 TransmitStateDataCurSum; /*通信关系状态数据当前总数*/
|
||||
extern UINT8 ComCycNumForCiToAts; /*联锁到ATS通信周期记录*/
|
||||
@@ -689,9 +688,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
UINT32 curIndex = 0u; /*记录移动下标*/
|
||||
UINT32 curResult = 0u; /*拷贝结构中有效的id数据*/
|
||||
UINT8 ii= 0u;
|
||||
UINT32 crcIndex = 0u; /*用于计算CRC的下标*/
|
||||
UINT32 crcLength = 0u; /*用于计算CRC的长度*/
|
||||
UINT32 crcResult = 0u; /*用于存放CRC值*/
|
||||
|
||||
if (NULL != pCiAppDataPointer)
|
||||
{
|
||||
@@ -732,20 +728,10 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &g_AllSnowModel, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝全线湿轨级别*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_AllSnowLevel), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝应急盘继电器有效周期*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &JkjRelayValidCycNum, sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 AllSignalBrightFlag-JkjRelayValidCycNum CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*拷贝总复位状态有效周期*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &ZFWValidCycNum, sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
@@ -786,12 +772,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &SendCiCmdDataStruCurSum, sizeof(UINT16));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT16);
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 ZFWValidCycNum-SendCiCmdDataStruCurSum CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*拷贝与联锁通信的Vobc数目*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &VobcToCiSum, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
@@ -813,38 +793,14 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &g_cTsrSureFlag, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝ZC全线临时限速状态*/
|
||||
/*拷贝全线临时限速状态*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &g_AllLineTsrState, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝ZC全线临时限速速度*/
|
||||
/*拷贝全线临时限速速度*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &g_AllLineTsrSpeed, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝TMC全线限速状态*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&gCacheAllSpeedState), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝TMC全线限速速度*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&gCacheAllSpeedNum), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝台风限速信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(TyphoonSpeedDataStruct), (const void*)(&gTyphSpeedInfo), (UINT32)sizeof(TyphoonSpeedDataStruct));
|
||||
curIndex = curIndex + (UINT32)sizeof(TyphoonSpeedDataStruct);
|
||||
|
||||
/*拷贝临时限速数量*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_TsrTMCSum), (const void*)(&g_TsrTMCSum), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝临时限速数据结构体*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(TsrTMCDataStruct)* TSR_MAX_SUM, (const void*)(&g_TsrTMCDataStru), (UINT32)sizeof(TsrTMCDataStruct)* TSR_MAX_SUM);
|
||||
curIndex = curIndex + (UINT32)sizeof(TsrTMCDataStruct) * TSR_MAX_SUM;
|
||||
|
||||
/*拷贝限速区段信息结构体*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(SpeedLimitSecInfo)* MAX_LINE_SEC_NUM, (const void*)(&gSpeedLimitSecData), (UINT32)sizeof(SpeedLimitSecInfo)* MAX_LINE_SEC_NUM);
|
||||
curIndex = curIndex + (UINT32)sizeof(SpeedLimitSecInfo) * MAX_LINE_SEC_NUM;
|
||||
|
||||
/*拷贝进路数据结构体*/
|
||||
curResult = CopyValidGetDataStru(pCiAppDataPointer + curIndex, (void *)RouteDataStru, ROUTE_SUM_MAX, (UINT16)sizeof(RouteDataStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
@@ -861,12 +817,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
curResult = CopyValidGetDataStru(pCiAppDataPointer + curIndex, (void *)SwitchDataStru, SWITCH_SUM_MAX, (UINT16)sizeof(SwitchDataStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 VobcToCiSum-SwitchDataStru CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*拷贝计轴区段数据结构体*/
|
||||
curResult = CopyValidGetDataStru(pCiAppDataPointer + curIndex, (void *)AxisSectionDataStru, AXIS_SECTION_SUM_MAX, (UINT16)sizeof(AxisSectionDataStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
@@ -907,12 +857,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, NonRouteDataStruArr, NONROUTE_ID_NUM_MAX*sizeof(NonRouteDataStruct));
|
||||
curIndex = curIndex + (UINT32)(NONROUTE_ID_NUM_MAX*sizeof(NonRouteDataStruct));
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 AxisSectionDataStru-NonRouteDataStruArr CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*拷贝指示器数据结构体*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, IndicatorDataStru, (INDICATOR_SUM_MAX)*sizeof(IndicatorDataStruct));
|
||||
curIndex = curIndex + (UINT32)((INDICATOR_SUM_MAX)*sizeof(IndicatorDataStruct));
|
||||
@@ -964,12 +908,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, AllAutoReturnDataStru, (ALL_AUTO_RETURN_SUM_MAX)*sizeof(AllAutoReturnDataStruct));
|
||||
curIndex = curIndex + (UINT32)((ALL_AUTO_RETURN_SUM_MAX)*sizeof(AllAutoReturnDataStruct));
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 IndicatorDataStru-AllAutoReturnDataStru CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*拷贝车库门数据结构体*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, GaragedoorDataStru, (GARAGE_DOOR_SUM_MAX)*sizeof(GaragedoorDataStruct));
|
||||
curIndex = curIndex + (UINT32)((GARAGE_DOOR_SUM_MAX)*sizeof(GaragedoorDataStruct));
|
||||
@@ -1010,12 +948,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, ocHLHTHeadCtxs, (OC_SUM_MAX) * sizeof(HLHTHeadContextStru));
|
||||
curIndex = curIndex + (UINT32)((OC_SUM_MAX) * sizeof(HLHTHeadContextStru));
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 GaragedoorDataStru-ocHLHTHeadCtxs CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*与本CI通信的TMC系统互联互通报文头上下文数据*/
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, tmcHLHTHeadCtxs, (TMC_SUM_MAX) * sizeof(HLHTHeadContextStru));
|
||||
curIndex = curIndex + (UINT32)((TMC_SUM_MAX) * sizeof(HLHTHeadContextStru));
|
||||
@@ -1057,12 +989,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, m_Switches, m_SwitchNum * sizeof(OcDeviceStruct));
|
||||
curIndex = curIndex + (UINT32)(m_SwitchNum * sizeof(OcDeviceStruct));
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 tmcHLHTHeadCtxs-m_Switches CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*与本CI通信的OC DI上下文数据*/
|
||||
curIndex += CopyValidGetDataStru(pCiAppDataPointer + curIndex, (void*)m_OcConvertedPtDataArr, (OC_SUM_MAX), (UINT16)sizeof(OcCollBoardDataStruct));
|
||||
|
||||
@@ -1100,12 +1026,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &CiSendBackDataTempStruSum, sizeof(UINT16));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT16);
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 m_OcConvertedPtDataArr-CiSendBackDataTempStruSum CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*拷贝虚拟联锁数据*/
|
||||
for(ii = 0u;ii<g_VirtualCIStructData.virtualCiNum;ii++)
|
||||
{
|
||||
@@ -1168,22 +1088,10 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &LocalAreaSnowNum, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(AreaSnowInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX), (const void*)(szLocalAreaSnow), (UINT32)(sizeof(AreaSnowInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(AreaSnowInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
/*拷贝本地区间ITE切除信息*/
|
||||
pCiAppDataPointer[curIndex] = gLocalAreaIteCutNum;
|
||||
curIndex += 1U;
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(UINT16) * ALL_AREA_SNOW_SUM_MAX), (const void*)(gSzLocalAreaIteCutId), (UINT32)(sizeof(UINT16) * ALL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(UINT16) * ALL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 m_OcConvertedPtDataArr-CiSendBackDataTempStruSum CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(UINT32)* LOCAL_AREA_SNOW_SUM_MAX), (const void*)(szLocalAreaSnowId), (UINT32)(sizeof(UINT32) * LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(UINT32) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
#if 1
|
||||
/* 拷贝排序信息 */
|
||||
curIndex = as_GetTransferData(pCiAppDataPointer, curIndex);
|
||||
|
||||
@@ -1218,12 +1126,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &gTiocCanntCutReason, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 g_CutoffPointDataBuf-gTiocCanntCutReason CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/*拷贝无直轨计轴占用信息*/
|
||||
curIndex = ToaGetTransferData(pCiAppDataPointer, curIndex);
|
||||
|
||||
@@ -1271,16 +1173,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsDaMsgSnd);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsDaCfmSnd), (const void *)(&g_strAtsDaCfmSnd), (UINT32)sizeof(g_strAtsDaCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsDaCfmSnd);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(&g_strSndAtsCfmFst), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(&g_strSndAtsEaCfmFst), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(&g_strSndAtsWlbCfmFst), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(&g_strSndAtsDaCfmFst), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
|
||||
/*拷贝异地试车线SQAJ状态*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&comm_Train_Test_SQAJ_SCX_State), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
@@ -1301,12 +1193,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(LeuToCiDataStru), (const void *)LeuToCiDataStru, (UINT32)sizeof(LeuToCiDataStru));
|
||||
curIndex = curIndex + (UINT32)((LEU_TO_CI_SUM_MAX) * sizeof(LeuToCiDataStruct));
|
||||
|
||||
/*计算一次CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 ToaGetTransferData-LeuToCiDataStru CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
crcIndex = curIndex;
|
||||
|
||||
/* 拷贝停止运营信息 */
|
||||
curIndex = Deploy_GetTransferData(pCiAppDataPointer, curIndex);
|
||||
|
||||
@@ -1319,21 +1205,13 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
curIndex = curIndex + (UINT32)sizeof(LineCommTrainStruct);
|
||||
|
||||
/*同步相邻联锁区间雨雪发送信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM), (void*)(szSendCiAreaSnow), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM));
|
||||
(void)CommonMemCpy((const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM), (void*)(szSendCiAreaSnow), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiAreaSnowStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*同步相邻联锁区间接收雨雪信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM), (void*)(szRecvCiAreaSnow), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM));
|
||||
(void)CommonMemCpy((const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM), (void*)(szRecvCiAreaSnow), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiAreaSnowStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*同步相邻联锁区间ITE切除接收信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM), (void*)(szRecvCiAreaIteCut), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiAreaIteCutStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*同步相邻联锁区间ITE切除发送信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM), (void*)(szSendCiAreaIteCut), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiAreaIteCutStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*拷贝虚拟无人折返信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(VirtualZDZFAJDataStruct), (const void*)(&VirtualZDZFAJData), (UINT32)sizeof(VirtualZDZFAJDataStruct));
|
||||
curIndex = curIndex + (UINT32)sizeof(VirtualZDZFAJDataStruct);
|
||||
@@ -1347,160 +1225,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
/* 拷贝本地雨雪命令 */
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_LocalSnowModel), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝本地相邻联锁接受命令信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT16), (const void*)(&RecvCiCmdDataStruCurSum), (UINT32)sizeof(UINT16));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT16);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (void*)(&RecvCiCmdDataStru), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiCommandDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*拷贝本地相邻联锁发送命令信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT16), (const void*)(&SendCiCmdDataStruCurSum), (UINT32)sizeof(UINT16));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT16);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (void*)(&SendCiCmdDataStru), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiCommandDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*拷贝本地相邻联锁接受动态进路命令信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&RecvCiDrCmdSum), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (void*)(&RecvCiDrCmdDataStru), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiDrCmdDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*拷贝本地相邻联锁发送动态进路命令信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&SendCiDrCmdSum), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (void*)(&SendCiDrCmdDataStru), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiDrCmdDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*拷贝SSKS闪灯稳灯继电器数据*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(SsksLightRelayDataStruct) * SSKS_LIGHT_RELAY_SUM_MAX), (void*)(&gSsksLightRelayData), (UINT32)(sizeof(SsksLightRelayDataStruct) * SSKS_LIGHT_RELAY_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(SsksLightRelayDataStruct) * SSKS_LIGHT_RELAY_SUM_MAX);
|
||||
|
||||
/*拷贝联络线旁路继电器数据*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ConnectOverrideDataStru) * CONNECT_OVERRIDE_RELAY_SUM_MAX), (void*)(&gConnectOverrideData), (UINT32)(sizeof(ConnectOverrideDataStru) * CONNECT_OVERRIDE_RELAY_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ConnectOverrideDataStru) * CONNECT_OVERRIDE_RELAY_SUM_MAX);
|
||||
|
||||
/*拷贝接触网信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(OhlDataStruct)* OHL_MAX_NUM), (void*)(&OhlDataStru), (UINT32)(sizeof(OhlDataStruct)* OHL_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(OhlDataStruct) * OHL_MAX_NUM);
|
||||
|
||||
/*拷贝全线区段封锁*/
|
||||
(void)CommonMemCpy(pCiAppDataPointer + curIndex, (UINT32)sizeof(UINT8),&g_AllSecFlockState, (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockMsgFst), (const void *)(&g_strAtsAllFlockMsgFst), (UINT32)sizeof(g_strAtsAllFlockMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockMsgFst);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockCfmFst), (const void *)(&g_strAtsAllFlockCfmFst), (UINT32)sizeof(g_strAtsAllFlockCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockCfmFst);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockMsgSnd), (const void *)(&g_strAtsAllFlockMsgSnd), (UINT32)sizeof(g_strAtsAllFlockMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockMsgSnd);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockCfmSnd), (const void *)(&g_strAtsAllFlockCfmSnd), (UINT32)sizeof(g_strAtsAllFlockCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockCfmSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(&g_strSndAtsAllFlockCfmFst), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
|
||||
/*拷贝ECS动态数据*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ECSDataStruct)* ECS_MAX_NUM), (const void*)(&ECSDataStru), (UINT32)(sizeof(ECSDataStruct)* ECS_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ECSDataStruct) * ECS_MAX_NUM); /*计算一次CRC*/
|
||||
|
||||
/*二乘拷贝全线牵引加速度信息*/
|
||||
pCiAppDataPointer[curIndex] = gAllLineAccelerationState;
|
||||
curIndex += 1U;
|
||||
|
||||
pCiAppDataPointer[curIndex] = gAllLineAccelerationValue;
|
||||
curIndex += 1U;
|
||||
|
||||
/*二乘拷贝全线制动率信息*/
|
||||
pCiAppDataPointer[curIndex] = gAllLineBrakeRateState;
|
||||
curIndex += 1U;
|
||||
|
||||
pCiAppDataPointer[curIndex] = gAllLineBrakeRateValue;
|
||||
curIndex += 1U;
|
||||
|
||||
/*二乘拷贝区间牵引加速度信息*/
|
||||
pCiAppDataPointer[curIndex] = gLocalAreaAccelerationNum;
|
||||
curIndex += 1U;
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(AreaAccelerationInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX), (const void*)(gszLocalAreaAcceleration), (UINT32)(sizeof(AreaAccelerationInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(AreaAccelerationInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
/*二乘拷贝区间制动率信息*/
|
||||
pCiAppDataPointer[curIndex] = gLocalAreaBrakeRateNum;
|
||||
curIndex += 1U;
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(AreaBrakeRateInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX), (const void*)(gszLocalAreaBrakeRate), (UINT32)(sizeof(AreaBrakeRateInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(AreaBrakeRateInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
/*拷贝CESB封锁*/
|
||||
(void)CommonMemCpy(pCiAppDataPointer + curIndex, (UINT32)sizeof(UINT8), &g_CesbFlockState, (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
(void)CommonMemCpy(pCiAppDataPointer + curIndex, (UINT32)sizeof(UINT8), &g_ScxCesbData, (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
(void)CommonMemCpy(pCiAppDataPointer + curIndex, (UINT32)sizeof(UINT8), &g_ScxCesbCutData, (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
/*CESB网关信息*/
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbMsgFst), (const void *)(&g_strAtsCesbMsgFst), (UINT32)sizeof(g_strAtsCesbMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbMsgFst);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbCfmFst), (const void *)(&g_strAtsCesbCfmFst), (UINT32)sizeof(g_strAtsCesbCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbCfmFst);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbMsgSnd), (const void *)(&g_strAtsCesbMsgSnd), (UINT32)sizeof(g_strAtsCesbMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbMsgSnd);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbCfmSnd), (const void *)(&g_strAtsCesbCfmSnd), (UINT32)sizeof(g_strAtsCesbCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbCfmSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(&g_strSndAtsCesbCfmFst), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
|
||||
|
||||
|
||||
/*ATS网关下发的解封解锁信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_JieFengJieSuoMsgFst), (const void*)(&g_JieFengJieSuoMsgFst), (UINT32)sizeof(g_JieFengJieSuoMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_JieFengJieSuoMsgFst);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmFst), (const void*)(&g_strAtsJieFengJieSuoCfmFst), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsJieFengJieSuoCfmFst);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_JieFengJieSuoMsgSnd), (const void*)(&g_JieFengJieSuoMsgSnd), (UINT32)sizeof(g_JieFengJieSuoMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_JieFengJieSuoMsgSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmSnd), (const void*)(&g_strAtsJieFengJieSuoCfmSnd), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsJieFengJieSuoCfmSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SndAtsJieFengJieSuoCfmFst), (const void*)(&g_SndAtsJieFengJieSuoCfmFst), (UINT32)sizeof(g_SndAtsJieFengJieSuoCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SndAtsJieFengJieSuoCfmFst);
|
||||
|
||||
/*ATS网关下发的道岔强转信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceMsgFst), (const void*)(&g_SwitchForceMsgFst), (UINT32)sizeof(g_SwitchForceMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceMsgFst);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceCfmFst), (const void*)(&g_SwitchForceCfmFst), (UINT32)sizeof(g_SwitchForceCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceCfmFst);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceMsgSnd), (const void*)(&g_SwitchForceMsgSnd), (UINT32)sizeof(g_SwitchForceMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceMsgSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceCfmSnd), (const void*)(&g_SwitchForceCfmSnd), (UINT32)sizeof(g_SwitchForceCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceCfmSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SndAtsSwitchForceCfmFst), (const void*)(&g_SndAtsSwitchForceCfmFst), (UINT32)sizeof(g_SndAtsSwitchForceCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SndAtsSwitchForceCfmFst);
|
||||
|
||||
|
||||
/*ATS网关下发的计轴预复位信息*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetMsgFst), (const void*)(&g_PhyPreResetMsgFst), (UINT32)sizeof(g_PhyPreResetMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetMsgFst);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetCfmFst), (const void*)(&g_PhyPreResetCfmFst), (UINT32)sizeof(g_PhyPreResetCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetCfmFst);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetMsgSnd), (const void*)(&g_PhyPreResetMsgSnd), (UINT32)sizeof(g_PhyPreResetMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetMsgSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetCfmSnd), (const void*)(&g_PhyPreResetCfmSnd), (UINT32)sizeof(g_PhyPreResetCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetCfmSnd);
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SndAtsPhyPreResetCfmFst), (const void*)(&g_SndAtsPhyPreResetCfmFst), (UINT32)sizeof(g_SndAtsPhyPreResetCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SndAtsPhyPreResetCfmFst);
|
||||
|
||||
/*获取本控区RC和计轴通信中断设置ARB标志*/
|
||||
pCiAppDataPointer[curIndex] = aam_GetLocalAllAxisSecArbFlag();
|
||||
curIndex += 1U;
|
||||
|
||||
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 Deploy_GetTransferData-g_SndAtsPhyPreResetCfmFst CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
}
|
||||
return curIndex;
|
||||
}
|
||||
@@ -1562,10 +1286,6 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
(void)memcpy(&g_AllSnowModel, pCiAppDataPointer + curIndex, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*同步全线湿轨级别*/
|
||||
(void)CommonMemCpy((void*)(&g_AllSnowLevel), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝应急盘继电器有效周期*/
|
||||
(void)memcpy(&JkjRelayValidCycNum, pCiAppDataPointer + curIndex, sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
@@ -1631,38 +1351,14 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
(void)memcpy(&g_cTsrSureFlag, pCiAppDataPointer + curIndex, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝ZC全线临时限速状态*/
|
||||
/*拷贝全线临时限速状态*/
|
||||
(void)memcpy(&g_AllLineTsrState, pCiAppDataPointer + curIndex, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝ZC全线临时限速速度*/
|
||||
/*拷贝全线临时限速速度*/
|
||||
(void)memcpy(&g_AllLineTsrSpeed, pCiAppDataPointer + curIndex, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝TMC全线限速状态*/
|
||||
(void)CommonMemCpy((void*)(&gCacheAllSpeedState), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝TMC全线限速速度*/
|
||||
(void)CommonMemCpy((void*)(&gCacheAllSpeedNum), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝台风限速信息*/
|
||||
(void)CommonMemCpy((void*)(&gTyphSpeedInfo), (UINT32)sizeof(TyphoonSpeedDataStruct), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(TyphoonSpeedDataStruct));
|
||||
curIndex = curIndex + (UINT32)sizeof(TyphoonSpeedDataStruct);
|
||||
|
||||
/*拷贝临时限速数量*/
|
||||
(void)CommonMemCpy((void*)(&g_TsrTMCSum), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝临时限速数据结构体*/
|
||||
(void)CommonMemCpy((void*)(g_TsrTMCDataStru), (UINT32)(sizeof(TsrTMCDataStruct)* TSR_MAX_SUM), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(TsrTMCDataStruct)* TSR_MAX_SUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(TsrTMCDataStruct) * TSR_MAX_SUM);
|
||||
|
||||
/*拷贝限速区段数据结构体*/
|
||||
(void)CommonMemCpy((void*)(gSpeedLimitSecData), (UINT32)(sizeof(SpeedLimitSecInfo)* MAX_LINE_SEC_NUM), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(SpeedLimitSecInfo)* MAX_LINE_SEC_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(SpeedLimitSecInfo) * MAX_LINE_SEC_NUM);
|
||||
|
||||
/*拷贝进路数据结构体*/
|
||||
curResult = CopyValidSetDataStru(pCiAppDataPointer + curIndex, (void *)&RouteDataStru[0], ROUTE_SUM_MAX, (UINT16)sizeof(RouteDataStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
@@ -1952,16 +1648,10 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
LocalAreaSnowNum = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
(void)CommonMemCpy((const void*)(szLocalAreaSnow), (UINT32)(sizeof(AreaSnowInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(AreaSnowInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(AreaSnowInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
/*设置本地区间ITE切除信息*/
|
||||
gLocalAreaIteCutNum = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
(void)CommonMemCpy((const void*)(gSzLocalAreaIteCutId), (UINT32)(sizeof(UINT16) * ALL_AREA_SNOW_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(UINT16) * ALL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(UINT16) * ALL_AREA_SNOW_SUM_MAX);
|
||||
(void)CommonMemCpy((const void*)(szLocalAreaSnowId), (UINT32)(sizeof(UINT32) * LOCAL_AREA_SNOW_SUM_MAX), (void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(UINT32) * LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(UINT32) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
#if 1
|
||||
/* 拷贝排序信息 */
|
||||
curIndex = as_SetTransferData(pCiAppDataPointer, curIndex);
|
||||
|
||||
@@ -2044,15 +1734,6 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
(void)CommonMemCpy((void *)(&g_strAtsDaCfmSnd), (UINT32)sizeof(g_strAtsDaCfmSnd), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsDaCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsDaCfmSnd);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_strSndAtsCfmFst), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
(void)CommonMemCpy((void*)(&g_strSndAtsEaCfmFst), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
(void)CommonMemCpy((void*)(&g_strSndAtsWlbCfmFst), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
(void)CommonMemCpy((void*)(&g_strSndAtsDaCfmFst), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
|
||||
/*拷贝异地试车线SQAJ状态*/
|
||||
(void)CommonMemCpy((void*)(&comm_Train_Test_SQAJ_SCX_State), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
@@ -2073,6 +1754,7 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
(void)CommonMemCpy((void*)(LeuToCiDataStru), (UINT32)sizeof(LeuToCiDataStru), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(LeuToCiDataStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(LeuToCiDataStru);
|
||||
|
||||
#endif
|
||||
/*拷贝停止运营信息*/
|
||||
curIndex = Deploy_SetTransferData(pCiAppDataPointer, curIndex);
|
||||
|
||||
@@ -2092,14 +1774,6 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
(void)CommonMemCpy((void*)(szRecvCiAreaSnow), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaSnowStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiAreaSnowStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*同步相邻联锁区间ITE切除接收信息*/
|
||||
(void)CommonMemCpy((void*)(szRecvCiAreaIteCut), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiAreaIteCutStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*同步相邻联锁区间ITE切除发送信息*/
|
||||
(void)CommonMemCpy((void*)(szSendCiAreaIteCut), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiAreaIteCutStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiAreaIteCutStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*拷贝虚拟无人折返信息*/
|
||||
(void)CommonMemCpy((void*)(&VirtualZDZFAJData), (UINT32)sizeof(VirtualZDZFAJDataStruct), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(VirtualZDZFAJDataStruct));
|
||||
curIndex = curIndex + (UINT32)sizeof(VirtualZDZFAJDataStruct);
|
||||
@@ -2114,156 +1788,7 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
/*同步本地雨雪命令*/
|
||||
(void)CommonMemCpy((void*)(&g_LocalSnowModel), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
/*拷贝本地相邻联锁接受命令信息*/
|
||||
(void)CommonMemCpy((void*)(&RecvCiCmdDataStruCurSum), (UINT32)sizeof(UINT16), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT16));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT16);
|
||||
|
||||
(void)CommonMemCpy((void*)(&RecvCiCmdDataStru), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiCommandDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*拷贝本地相邻联锁发送命令信息*/
|
||||
(void)CommonMemCpy((void*)(&SendCiCmdDataStruCurSum), (UINT32)sizeof(UINT16), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT16));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT16);
|
||||
|
||||
(void)CommonMemCpy((void*)(&SendCiCmdDataStru), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiCommandDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiCommandDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*拷贝本地相邻联锁接受动态进路命令信息*/
|
||||
(void)CommonMemCpy((void*)(&RecvCiDrCmdSum), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&RecvCiDrCmdDataStru), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiDrCmdDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*拷贝本地相邻联锁发送动态进路命令信息*/
|
||||
(void)CommonMemCpy((void*)(&SendCiDrCmdSum), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&SendCiDrCmdDataStru), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ToCiDrCmdDataStruct)* RECVCI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ToCiDrCmdDataStruct) * RECVCI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*同步SSKS闪灯稳灯继电器数据*/
|
||||
(void)CommonMemCpy((void*)(&gSsksLightRelayData), (UINT32)(sizeof(SsksLightRelayDataStruct)* SSKS_LIGHT_RELAY_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(SsksLightRelayDataStruct)* SSKS_LIGHT_RELAY_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(SsksLightRelayDataStruct) * SSKS_LIGHT_RELAY_SUM_MAX);
|
||||
|
||||
/*拷贝联络线旁路继电器数据*/
|
||||
(void)CommonMemCpy((void*)(&gConnectOverrideData), (UINT32)(sizeof(ConnectOverrideDataStru)* CONNECT_OVERRIDE_RELAY_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ConnectOverrideDataStru)* CONNECT_OVERRIDE_RELAY_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ConnectOverrideDataStru) * CONNECT_OVERRIDE_RELAY_SUM_MAX);
|
||||
|
||||
/*拷贝接触网信息*/
|
||||
(void)CommonMemCpy((void*)(&OhlDataStru), (UINT32)(sizeof(OhlDataStruct)* OHL_MAX_NUM), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(OhlDataStruct)* OHL_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(OhlDataStruct) * OHL_MAX_NUM);
|
||||
/*设置全线区段封锁标志*/
|
||||
g_AllSecFlockState = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
/*设置全线区段封锁信息*/
|
||||
(void)CommonMemCpy((void *)(&g_strAtsAllFlockMsgFst), (UINT32)sizeof(g_strAtsAllFlockMsgFst), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockMsgFst);
|
||||
(void)CommonMemCpy((void *)(&g_strAtsAllFlockCfmFst), (UINT32)sizeof(g_strAtsAllFlockCfmFst), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockCfmFst);
|
||||
(void)CommonMemCpy((void *)(&g_strAtsAllFlockMsgSnd), (UINT32)sizeof(g_strAtsAllFlockMsgSnd), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockMsgSnd);
|
||||
(void)CommonMemCpy((void *)(&g_strAtsAllFlockCfmSnd), (UINT32)sizeof(g_strAtsAllFlockCfmSnd), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsAllFlockCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsAllFlockCfmSnd);
|
||||
(void)CommonMemCpy((void*)(&g_strSndAtsAllFlockCfmFst), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
|
||||
/*同步ECS动态数据*/
|
||||
(void)CommonMemCpy((void*)(&ECSDataStru), (UINT32)(sizeof(ECSDataStruct)* ECS_MAX_NUM), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(ECSDataStruct)* ECS_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(ECSDataStruct) * ECS_MAX_NUM);
|
||||
|
||||
/*二乘同步全线牵引加速度信息*/
|
||||
gAllLineAccelerationState = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
gAllLineAccelerationValue = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
/*二乘同步全线制动率信息*/
|
||||
gAllLineBrakeRateState = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
gAllLineBrakeRateValue = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
|
||||
/*二乘同步区间牵引加速度信息*/
|
||||
gLocalAreaAccelerationNum = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
(void)CommonMemCpy((void*)(gszLocalAreaAcceleration), (UINT32)(sizeof(AreaAccelerationInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(AreaAccelerationInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(AreaAccelerationInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
/*二乘同步区间制动率信息*/
|
||||
gLocalAreaBrakeRateNum = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
(void)CommonMemCpy((void*)(gszLocalAreaBrakeRate), (UINT32)(sizeof(AreaBrakeRateInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(AreaBrakeRateInfoStruct)* LOCAL_AREA_SNOW_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(AreaBrakeRateInfoStruct) * LOCAL_AREA_SNOW_SUM_MAX);
|
||||
|
||||
/*设置CESB状态标志*/
|
||||
g_CesbFlockState = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
g_ScxCesbData = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
g_ScxCesbCutData = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
/*同步CESB网关消息*/
|
||||
(void)CommonMemCpy((void *)(&g_strAtsCesbMsgFst), (UINT32)sizeof(g_strAtsCesbMsgFst), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbMsgFst);
|
||||
(void)CommonMemCpy((void *)(&g_strAtsCesbCfmFst), (UINT32)sizeof(g_strAtsCesbCfmFst), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbCfmFst);
|
||||
(void)CommonMemCpy((void *)(&g_strAtsCesbMsgSnd), (UINT32)sizeof(g_strAtsCesbMsgSnd), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbMsgSnd);
|
||||
(void)CommonMemCpy((void *)(&g_strAtsCesbCfmSnd), (UINT32)sizeof(g_strAtsCesbCfmSnd), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsCesbCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsCesbCfmSnd);
|
||||
(void)CommonMemCpy((void*)(&g_strSndAtsCesbCfmFst), (UINT32)sizeof(AtsMsgCfmStru), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsMsgCfmStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsMsgCfmStru);
|
||||
|
||||
|
||||
/*同步ATS网关全站解封解锁消息*/
|
||||
(void)CommonMemCpy((void*)(&g_JieFengJieSuoMsgFst), (UINT32)sizeof(g_JieFengJieSuoMsgFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_JieFengJieSuoMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_JieFengJieSuoMsgFst);
|
||||
(void)CommonMemCpy((void*)(&g_strAtsJieFengJieSuoCfmFst), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsJieFengJieSuoCfmFst);
|
||||
(void)CommonMemCpy((void*)(&g_JieFengJieSuoMsgSnd), (UINT32)sizeof(g_JieFengJieSuoMsgSnd), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_JieFengJieSuoMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_JieFengJieSuoMsgSnd);
|
||||
(void)CommonMemCpy((void*)(&g_strAtsJieFengJieSuoCfmSnd), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmSnd), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_strAtsJieFengJieSuoCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_strAtsJieFengJieSuoCfmSnd);
|
||||
(void)CommonMemCpy((void*)(&g_SndAtsJieFengJieSuoCfmFst), (UINT32)sizeof(g_SndAtsJieFengJieSuoCfmFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SndAtsJieFengJieSuoCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SndAtsJieFengJieSuoCfmFst);
|
||||
|
||||
|
||||
/*同步ATS网关道岔强转消息*/
|
||||
(void)CommonMemCpy((void*)(&g_SwitchForceMsgFst), (UINT32)sizeof(g_SwitchForceMsgFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceMsgFst);
|
||||
(void)CommonMemCpy((void*)(&g_SwitchForceCfmFst), (UINT32)sizeof(g_SwitchForceCfmFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceCfmFst);
|
||||
(void)CommonMemCpy((void*)(&g_SwitchForceMsgSnd), (UINT32)sizeof(g_SwitchForceMsgSnd), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceMsgSnd);
|
||||
(void)CommonMemCpy((void*)(&g_SwitchForceCfmSnd), (UINT32)sizeof(g_SwitchForceCfmSnd), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SwitchForceCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SwitchForceCfmSnd);
|
||||
(void)CommonMemCpy((void*)(&g_SndAtsSwitchForceCfmFst), (UINT32)sizeof(g_SndAtsSwitchForceCfmFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SndAtsSwitchForceCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SndAtsSwitchForceCfmFst);
|
||||
|
||||
/*同步ATS网关计轴预复位消息*/
|
||||
(void)CommonMemCpy((void*)(&g_PhyPreResetMsgFst), (UINT32)sizeof(g_PhyPreResetMsgFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetMsgFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetMsgFst);
|
||||
(void)CommonMemCpy((void*)(&g_PhyPreResetCfmFst), (UINT32)sizeof(g_PhyPreResetCfmFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetCfmFst);
|
||||
(void)CommonMemCpy((void*)(&g_PhyPreResetMsgSnd), (UINT32)sizeof(g_PhyPreResetMsgSnd), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetMsgSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetMsgSnd);
|
||||
(void)CommonMemCpy((void*)(&g_PhyPreResetCfmSnd), (UINT32)sizeof(g_PhyPreResetCfmSnd), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_PhyPreResetCfmSnd));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_PhyPreResetCfmSnd);
|
||||
(void)CommonMemCpy((void*)(&g_SndAtsPhyPreResetCfmFst), (UINT32)sizeof(g_SndAtsPhyPreResetCfmFst), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(g_SndAtsPhyPreResetCfmFst));
|
||||
curIndex = curIndex + (UINT32)sizeof(g_SndAtsPhyPreResetCfmFst);
|
||||
|
||||
/*设置本控区RC和计轴通信中断设置ARB标志*/
|
||||
aam_SetLocalAllAxisSecArbFlag(pCiAppDataPointer[curIndex]);
|
||||
curIndex += 1U;
|
||||
|
||||
#endif
|
||||
rtn = 1u;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,8 +56,6 @@
|
||||
#include "../Route/LogicalRouteDataManage.h"
|
||||
#include "../Route/LongRouteDataManage.h"
|
||||
#include "../ReverseCut/ReverseCutDataManage.h"
|
||||
#include "../SsksLightRelay/SsksLightRelayDataManage.h"
|
||||
#include "AxisAssertManageAPI.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -374,10 +374,11 @@ QueueStruct* Get2oo2CiToAxisDataQueue(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 将队列中的数据传输出去
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
* 参数说明: UINT8* thisString, 本周期数据
|
||||
* 返回值 : 0: 打印失败
|
||||
* 1: 打印成功
|
||||
*/
|
||||
void SendOut_LogBuff(void);
|
||||
void SendOut_LogBuff();
|
||||
|
||||
|
||||
|
||||
@@ -385,7 +386,7 @@ void SendOut_LogBuff(void);
|
||||
|
||||
void debug_infor_printf(char* debug_string, ...);
|
||||
void debug_out_array(UINT8 mode, UINT8* debug_array, UINT16 len);
|
||||
void DarkInfoPack(UINT16 mode, UINT8* debug_array, UINT16 len);
|
||||
|
||||
|
||||
UINT8 OutnetSafeRecv(UINT16* srcTypeId, UINT16* srcLogicId, UINT8* data, UINT32* dataLen, UINT32 dataMaxLen);
|
||||
UINT8 InnetSafeRecv(UINT16* srcTypeId, UINT16* srcLogicId, UINT8* data, UINT32* dataLen, UINT32 dataMaxLen);
|
||||
|
||||
@@ -107,13 +107,7 @@ void SetAutoRouteSetFlag(const UINT16 autoRouteId, const UINT8 setState)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取自动进路动态数据结构体
|
||||
* 参数说明:无
|
||||
* 返 回 值:自动进路动态数据结构体
|
||||
* Created By LQ 2025.05.26
|
||||
*/
|
||||
AutoRouteDataStruct* GetAutoRouteDataStr(void)
|
||||
{
|
||||
return AutoRouteDataStru;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -56,13 +56,7 @@ UINT8 GetAutoRouteSetFlag(const UINT16 autoRouteId);
|
||||
*/
|
||||
void SetAutoRouteSetFlag(const UINT16 autoRouteId, const UINT8 setState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取自动进路动态数据结构体
|
||||
* 参数说明:无
|
||||
* 返 回 值:自动进路动态数据结构体
|
||||
* Created By LQ 2025.05.26
|
||||
*/
|
||||
AutoRouteDataStruct* GetAutoRouteDataStr(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
#define AAM_BAD_NEAR 0x03u /* 坏车接近 */
|
||||
#define AAM_NO_TRAIN_NEAR 0x04u /* 无车接近 */
|
||||
#define AAM_GOOD_OCC 0x05u /* 好车占用 */
|
||||
#define AAM_SLEEP_OCC 0x06u /* 休眠车占用 */
|
||||
|
||||
|
||||
#define AAM_API_AC_ARB 0x01u /* 计轴ARB*/
|
||||
@@ -48,10 +47,6 @@
|
||||
#define AAM_COMM_BAD_ARB_YES (0x55U) /*计轴系统通信中断ARB有效*/
|
||||
#define AAM_COMM_BAD_ARB_NO (0xAAU) /*计轴系统通信中断ARB无效*/
|
||||
|
||||
#define LOCAL_ALL_AXIS_SEC_ARB_DEFAULT ((UINT8)0xFFU) /*本控区RC和计轴通信中断设置ARB标志-默认*/
|
||||
#define LOCAL_ALL_AXIS_SEC_ARB_YES ((UINT8)0x55U) /*本控区RC和计轴通信中断设置ARB标志-有效*/
|
||||
#define LOCAL_ALL_AXIS_SEC_ARB_NO ((UINT8)0xAAU) /*本控区RC和计轴通信中断设置ARB标志-无效*/
|
||||
|
||||
/** 定义计轴诊断信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
@@ -64,6 +59,7 @@ typedef struct
|
||||
UINT8 tailEnterTrainCnt; /* 进入的列车尾数量 */
|
||||
UINT16 tailEnterTrainId[SECTION_REL_ENVELOPE_SUM_MAX]; /* 列车尾进入的计轴 */
|
||||
UINT8 redunOverCanArb; /*冗余结束后能否判为ARB标志 空闲时设置为0x55*/
|
||||
UINT8 AxisCommBadArbFlag; /*计轴通信中断可判ARB有效标志:0x55-有效,0xAA-无效*/
|
||||
}AxisAsserStruct;
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
static AxisAsserStruct gs_AxisAssert[AXIS_SECTION_SUM_MAX] = {0u}; /** 计轴故障诊断数据缓存 */
|
||||
static UINT8 gs_InitEndlineFlag = AAM_END_LINE_UNINIT; /* 尽头线ARB特殊处理标志 */
|
||||
UINT8 gLocalAllAxisSecArbFlag = LOCAL_ALL_AXIS_SEC_ARB_DEFAULT; /*本控区RC和计轴通信中断设置ARB标志-默认*/
|
||||
|
||||
|
||||
/**
|
||||
@@ -542,3 +541,53 @@ void aam_SetAxisRedunCanArbFlag(const UINT16 acIndex, const UINT8 redunOverArbFl
|
||||
; /*不做处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID计轴区段计轴通信中断可判ARB标志
|
||||
* 参数说明:const UINT16 acIndex 计轴索引
|
||||
* const UINT8 cCommBadArbFlag 计轴通信中断可判ARB标志
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.02.24
|
||||
*/
|
||||
void aam_SetAxisCommBadArbFlag(const UINT16 acIndex, const UINT8 cCommBadArbFlag)
|
||||
{
|
||||
|
||||
if ((0U != acIndex) && (AXIS_SECTION_SUM_MAX > acIndex))
|
||||
{
|
||||
if ((AAM_COMM_BAD_ARB_YES == cCommBadArbFlag) || (AAM_COMM_BAD_ARB_NO == cCommBadArbFlag))
|
||||
{
|
||||
gs_AxisAssert[acIndex].AxisCommBadArbFlag = cCommBadArbFlag;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不做处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不做处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID计轴区段计轴通信中断可判ARB标志
|
||||
* 参数说明:const UINT16 acIndex 计轴索引
|
||||
* 返 回 值:0x55 有效
|
||||
* 0xAA 无效
|
||||
* Created By LQ 2025.02.24
|
||||
*/
|
||||
UINT8 aam_GetAxisCommBadArbFlag(const UINT16 acIndex)
|
||||
{
|
||||
UINT8 ret = AAM_COMM_BAD_ARB_NO;
|
||||
|
||||
if ((0U != acIndex) && (acIndex < AXIS_SECTION_SUM_MAX))
|
||||
{
|
||||
ret = gs_AxisAssert[acIndex].AxisCommBadArbFlag;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -7,8 +7,6 @@
|
||||
#include "AxisAssertDefine.h"
|
||||
#include "ELMDataPrepare.h"
|
||||
|
||||
extern UINT8 gLocalAllAxisSecArbFlag; /*本控区RC和计轴通信中断设置ARB标志-默认*/
|
||||
|
||||
/**
|
||||
* @brief 初始化计轴诊断信息
|
||||
* @param[in]
|
||||
@@ -229,4 +227,22 @@ UINT8 aam_GetAxisRedunCanArbFlag(const UINT16 acIndex);
|
||||
*/
|
||||
void aam_SetAxisRedunCanArbFlag(const UINT16 acIndex, const UINT8 redunOverArbFlag);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID计轴区段计轴通信中断可判ARB标志
|
||||
* 参数说明:const UINT16 acIndex 计轴索引
|
||||
* const UINT8 cCommBadArbFlag 计轴通信中断可判ARB标志
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.02.24
|
||||
*/
|
||||
void aam_SetAxisCommBadArbFlag(const UINT16 acIndex, const UINT8 cCommBadArbFlag);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID计轴区段计轴通信中断可判ARB标志
|
||||
* 参数说明:const UINT16 acIndex 计轴索引
|
||||
* 返 回 值:0x55 有效
|
||||
* 0xAA 无效
|
||||
* Created By LQ 2025.02.24
|
||||
*/
|
||||
UINT8 aam_GetAxisCommBadArbFlag(const UINT16 acIndex);
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,6 @@
|
||||
#include "EnvelopeDefine.h"
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief 计轴故障诊断模块初始化
|
||||
* @return CI_ERROR 初始化成功
|
||||
@@ -25,7 +24,7 @@ UINT8 aam_Init(void);
|
||||
* @param[in]
|
||||
* @param[out]
|
||||
* @return
|
||||
* @note edit cgh 20260310
|
||||
* @note
|
||||
*/
|
||||
void aam_MainProcess(void);
|
||||
|
||||
@@ -176,7 +175,7 @@ UINT8 aam_CheckNearbyTrainType(UINT16 ACID);
|
||||
* 函数功能:计轴子系统通信中断ARB处理
|
||||
* 输入参数:无
|
||||
* 返回值:无
|
||||
* by cgh 20260309
|
||||
* Create By LQ 2025.02.23
|
||||
*/
|
||||
void aam_AxisCommBadArbPro(void);
|
||||
|
||||
@@ -185,35 +184,25 @@ void aam_AxisCommBadArbPro(void);
|
||||
* 输入参数:无
|
||||
* 返回值:CI_SUCCESS 1 成功
|
||||
* CI_ERROR 0 失败
|
||||
* by cgh 20260309
|
||||
* Create By LQ 2025.02.23
|
||||
*/
|
||||
UINT8 aam_AxisCommBadArbTrainCheck(void);
|
||||
|
||||
/**
|
||||
* 函数功能:相邻计轴区段列车条件检查
|
||||
* 输入参数:UINT16 wAxisSecId 计轴区段ID
|
||||
* 函数功能:计轴子系统通信中断ARB处理——区段条件检查
|
||||
* 输入参数:无
|
||||
* 返回值:CI_SUCCESS 1 成功
|
||||
* CI_ERROR 0 失败
|
||||
* by cgh 20260309
|
||||
* Create By LQ 2025.02.23
|
||||
*/
|
||||
UINT8 aam_AdjacentAcTrainCheck(UINT16 wAxisSecId);
|
||||
|
||||
/**
|
||||
* 函数功能:检查计轴区段上包络条件是否满足
|
||||
* 输入参数:UINT16 wAxisSecId 计轴区段ID
|
||||
* 返回值:CI_SUCCESS 1 成功
|
||||
* CI_ERROR 0 失败
|
||||
* by cgh 20260309
|
||||
*/
|
||||
UINT8 aam_AxisSecEnvelopeCheck(UINT16 wAxisSecId);
|
||||
UINT8 aam_AxisCommBadArbSecCheck(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置集中区内计轴区段状态
|
||||
* 参数说明:UINT8 chAxisSecState 待设置的计轴区段状态
|
||||
* 功能描述:设置集中区内计轴区段ARB
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* by cgh 20260310
|
||||
*/
|
||||
void SetLocalAllAxisSecState(UINT8 chAxisSecState);
|
||||
void SetRcAxleArb(void);
|
||||
|
||||
/**
|
||||
* @brief 对外接口:获取计轴诊断状态接口
|
||||
@@ -224,60 +213,4 @@ void SetLocalAllAxisSecState(UINT8 chAxisSecState);
|
||||
*/
|
||||
UINT8 aam_GetAxisStatusAPI(UINT16 ACID);
|
||||
|
||||
/**
|
||||
* 函数功能:检查计轴所在物理区段均无故障车
|
||||
* 输入参数:UINT16 ACID 计轴区段id
|
||||
* 返回值:CI_SUCCESS 无故障车
|
||||
* CI_ERROR 存在故障车
|
||||
* Create By fan 2025.06 18
|
||||
*/
|
||||
UINT8 aam_CheckPhyTrain(UINT16 ACID);
|
||||
|
||||
/*
|
||||
* 函数功能:ARB区段连续占用检查
|
||||
* 输入参数:UINT16 wAcId 计轴区段ID
|
||||
* UINT8 cNearAcNum 相邻计轴区段数量
|
||||
* UINT16 pNearAcId[AC_MAXCNT_IN_SWITCH] 相邻计轴区段ID
|
||||
* 返 回 值:CI_SUCCESS 1 成功
|
||||
* CI_ERROR 0 失败
|
||||
* Created By LQ 2025.08.07
|
||||
*/
|
||||
UINT8 aam_ArbContinuousOccCheck(UINT16 wAcId, UINT8 cNearAcNum, UINT16 pNearAcId[AC_MAXCNT_IN_SWITCH]);
|
||||
|
||||
/**
|
||||
* @brief 获取本控区RC和计轴通信中断设置ARB标志
|
||||
* @param[in] void
|
||||
* @param[out] 无
|
||||
* @return 0xFF-默认 0x55U-有效 0xAAU-无效
|
||||
* by cgh 20260307
|
||||
*/
|
||||
UINT8 aam_GetLocalAllAxisSecArbFlag(void);
|
||||
|
||||
/**
|
||||
* @brief 设置本控区RC和计轴通信中断设置ARB标志
|
||||
* @param[in] chLocalAllAxisSecArbFlag 本控区RC和计轴通信中断设置ARB标志
|
||||
* @param[out] 无
|
||||
* @return 无
|
||||
* by cgh 20260307
|
||||
*/
|
||||
void aam_SetLocalAllAxisSecArbFlag(UINT8 chLocalAllAxisSecArbFlag);
|
||||
|
||||
/**
|
||||
* @brief 计轴故障诊断模块正常处理函数
|
||||
* @param[in]
|
||||
* @param[out]
|
||||
* @return
|
||||
* @note by cgh 20260310
|
||||
*/
|
||||
void aam_NormalProcess(void);
|
||||
|
||||
/**
|
||||
* 函数功能:计轴区段空闲检查
|
||||
* 输入参数:UINT16 wAxisSecId 计轴区段ID
|
||||
* 返回值:CI_SUCCESS 1 集合C所有区段条件检查通过
|
||||
* CI_ERROR 0 集合C存在区段条件检查不通过
|
||||
* by cgh 20260309
|
||||
*/
|
||||
UINT8 aam_AxisSecIdleCheck(void);
|
||||
|
||||
#endif /*AXIS_ASSERT_MANAGE_API_H_*/
|
||||
|
||||
@@ -1,177 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ConnectOverrideCfgDataMg.c
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2026-3-11
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 联络线旁路继电器相关配置
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
#include "ConnectOverrideCfgDataMg.h"
|
||||
|
||||
ConnectOverrideCfgDataStru gConnectOverrideRelayCfgStr[CONNECT_OVERRIDE_RELAY_SUM_MAX] = { 0U }; /*联络线旁路继电器信息*/
|
||||
INT16 gConnectOverrideRelaySum = 0; /*联络线旁路继电器数量*/
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID的联络线旁路继电器的索引号
|
||||
* 参数说明:const UINT16 wConnectOverrideId 联络线旁路ID
|
||||
* 返 回 值:CONNECT_OVERRIDE_RELAY_SUM_MAX 获取数据失败
|
||||
* < CONNECT_OVERRIDE_RELAY_SUM_MAX 查找成功
|
||||
* Created By wyd 2026.3.11
|
||||
*/
|
||||
UINT16 GetConnectOverrideCfgBufIndex(const UINT16 wConnectOverrideId)
|
||||
{
|
||||
UINT16 index = CONNECT_OVERRIDE_RELAY_SUM_MAX;
|
||||
UINT16 ii = 0U;
|
||||
|
||||
for (ii = 0U; ii < gConnectOverrideRelaySum; ii++)
|
||||
{
|
||||
if (wConnectOverrideId == gConnectOverrideRelayCfgStr[ii].ConnectOverrideId)
|
||||
{
|
||||
index = ii;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续查找*/
|
||||
}
|
||||
}
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路继电器数量
|
||||
* 参数说明:void
|
||||
* 返 回 值:联络线旁路继电器数量
|
||||
* Created By wyd 2026.3.11
|
||||
*/
|
||||
UINT16 GetConnectOverrideRelaySum(void)
|
||||
{
|
||||
UINT16 retVal = 0U;
|
||||
|
||||
if (0 > gConnectOverrideRelaySum)
|
||||
{
|
||||
retVal = 0U;
|
||||
}
|
||||
else if (CONNECT_OVERRIDE_RELAY_SUM_MAX <= (UINT16)gConnectOverrideRelaySum)
|
||||
{
|
||||
retVal = CONNECT_OVERRIDE_RELAY_SUM_MAX;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = (UINT16)gConnectOverrideRelaySum;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路继电器静态数据
|
||||
* 参数说明:void
|
||||
* 返 回 值:联络线旁路继电器静态数据
|
||||
* Created By wyd 2026.3.11
|
||||
*/
|
||||
ConnectOverrideCfgDataStru* GetConnectOverrideRelayCfgStr(void)
|
||||
{
|
||||
return gConnectOverrideRelayCfgStr;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路开关采集继电器ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线旁路开关采集继电器ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetConnectOverrideRelayId(UINT16 wOverrideId)
|
||||
{
|
||||
UINT16 wIndex = CONNECT_OVERRIDE_RELAY_SUM_MAX;
|
||||
UINT16 retVal = 0u;
|
||||
|
||||
wIndex = GetConnectOverrideCfgBufIndex(wOverrideId);
|
||||
if (CONNECT_OVERRIDE_RELAY_SUM_MAX > wIndex)
|
||||
{
|
||||
retVal = gConnectOverrideRelayCfgStr[wIndex].OverrideRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路关联物理区段ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线旁路关联物理区段ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetConnectOverridePhySecId(UINT16 wOverrideId)
|
||||
{
|
||||
UINT16 wIndex = CONNECT_OVERRIDE_RELAY_SUM_MAX;
|
||||
UINT16 retVal = 0u;
|
||||
|
||||
wIndex = GetConnectOverrideCfgBufIndex(wOverrideId);
|
||||
if (CONNECT_OVERRIDE_RELAY_SUM_MAX > wIndex)
|
||||
{
|
||||
retVal = gConnectOverrideRelayCfgStr[wIndex].RelPhySecId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路关联进路请求继电器ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线关联进路请求继电器ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetOverrideRouteRequestRelayId(UINT16 wOverrideId)
|
||||
{
|
||||
UINT16 wIndex = CONNECT_OVERRIDE_RELAY_SUM_MAX;
|
||||
UINT16 retVal = 0u;
|
||||
|
||||
wIndex = GetConnectOverrideCfgBufIndex(wOverrideId);
|
||||
if (CONNECT_OVERRIDE_RELAY_SUM_MAX > wIndex)
|
||||
{
|
||||
retVal = gConnectOverrideRelayCfgStr[wIndex].RelRouteRequestRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路关联道岔ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线旁路关联道岔ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetConnectOverrideSwitchId(UINT16 wOverrideId)
|
||||
{
|
||||
UINT16 wIndex = CONNECT_OVERRIDE_RELAY_SUM_MAX;
|
||||
UINT16 retVal = 0u;
|
||||
|
||||
wIndex = GetConnectOverrideCfgBufIndex(wOverrideId);
|
||||
if (CONNECT_OVERRIDE_RELAY_SUM_MAX > wIndex)
|
||||
{
|
||||
retVal = gConnectOverrideRelayCfgStr[wIndex].RelSwitchId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ConnectOverrideCfgDataMg.h
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2026-3-11
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 联络线旁路继电器相关配置
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef CONNECT_OVERRIDE_CFGDATA_MG_H
|
||||
#define CONNECT_OVERRIDE_CFGDATA_MG_H
|
||||
|
||||
#include "CommonTypes.h"
|
||||
#include "ConnectOverrideRelayDefine.h"
|
||||
|
||||
/*联络线旁路继电器配置数据结构体*/
|
||||
typedef struct S_ConnectOverrideCfgDataStru
|
||||
{
|
||||
UINT16 ConnectOverrideId; /*联络线旁路继电器ID*/
|
||||
UINT16 BelongOcId; /*继电器所属OC ID*/
|
||||
UINT8 BelongCiId; /*继电器所属联锁ID*/
|
||||
UINT16 OverrideRelayId; /*联络线旁路开关采集继电器ID*/
|
||||
UINT16 RelPhySecId; /*关联物理区段ID*/
|
||||
UINT16 RelRouteRequestRelayId; /*关联进路请求继电器ID*/
|
||||
UINT16 RelSwitchId; /*关联道岔ID*/
|
||||
} ConnectOverrideCfgDataStru;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern ConnectOverrideCfgDataStru gConnectOverrideRelayCfgStr[CONNECT_OVERRIDE_RELAY_SUM_MAX]; /*联络线旁路继电器信息*/
|
||||
extern INT16 gConnectOverrideRelaySum; /*联络线旁路继电器数量*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID的联络线旁路继电器的索引号
|
||||
* 参数说明:const UINT16 wConnectOverrideId 联络线旁路ID
|
||||
* 返 回 值:CONNECT_OVERRIDE_RELAY_SUM_MAX 获取数据失败
|
||||
* < CONNECT_OVERRIDE_RELAY_SUM_MAX 查找成功
|
||||
* Created By wyd 2026.3.11
|
||||
*/
|
||||
UINT16 GetConnectOverrideCfgBufIndex(const UINT16 wConnectOverrideId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路继电器数量
|
||||
* 参数说明:void
|
||||
* 返 回 值:联络线旁路继电器数量
|
||||
* Created By wyd 2026.3.11
|
||||
*/
|
||||
UINT16 GetConnectOverrideRelaySum(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路继电器静态数据
|
||||
* 参数说明:void
|
||||
* 返 回 值:联络线旁路继电器静态数据
|
||||
* Created By wyd 2026.3.11
|
||||
*/
|
||||
ConnectOverrideCfgDataStru* GetConnectOverrideRelayCfgStr(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路开关采集继电器ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线旁路开关采集继电器ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetConnectOverrideRelayId(UINT16 wOverrideId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路关联物理区段ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线旁路关联物理区段ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetConnectOverridePhySecId(UINT16 wOverrideId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路关联进路请求继电器ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线关联进路请求继电器ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetOverrideRouteRequestRelayId(UINT16 wOverrideId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路关联道岔ID
|
||||
* 参数说明:wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:0:查询失败 其他:联络线旁路关联道岔ID
|
||||
* Created By wyd 2026.3.12
|
||||
*/
|
||||
UINT16 GetConnectOverrideSwitchId(UINT16 wOverrideId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,91 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ConnectOverrideDataMg.h
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2025-12-17
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 联络线旁路继电器相关数据
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef CONNECT_OVERRIDE_DATA_MG_H
|
||||
#define CONNECT_OVERRIDE_DATA_MG_H
|
||||
|
||||
#include "CommonTypes.h"
|
||||
#include "../System/CiSystemDefine.h"
|
||||
#include "ConnectOverrideCfgDataMg.h"
|
||||
|
||||
/*联络线旁路继电器动态数据结构体*/
|
||||
typedef struct S_ConnectOverrideDataStru
|
||||
{
|
||||
UINT16 ConnectOverrideId; /*联络线旁路继电器ID*/
|
||||
UINT8 OverrideState; /*旁路状态 0x55:未激活 0xAA:已激活*/
|
||||
UINT8 OverrideReason; /*每一个bit代表一种条件
|
||||
bit0=1:逻辑区段占用且未判ARB
|
||||
bit1=1:区段封锁—ATS设置区段封锁
|
||||
bit2=1:区段封锁—全线区段封锁
|
||||
bit3=1:区段封锁—SPKS激活
|
||||
bit4=1:区段封锁—CESB激活
|
||||
bit5=1:防护区建立
|
||||
bit6-bit7:预留
|
||||
当旁路状态为0xAA(已激活),但旁路条件为0x00(无条件)时,
|
||||
说明该旁路状态激活时存在某种条件,但目前该条件已不满足,
|
||||
且无取消条件触发,此时旁路状态仍保留激活状态。*/
|
||||
UINT32 OverridePressStartCyc; /*采集到旁路按钮正常按下起始周期号(上周期未按下且本周期按下,记录周期号;未按下时清空)*/
|
||||
UINT32 OverrideErrTrigStartCyc; /*采集到旁路按钮误触发按下起始周期号(上周期未按下且本周期按下,记录周期号;未按下时清空)*/
|
||||
UINT8 OverrideErrTrigState; /*旁路开关采集继电器异常吸起标志,0x55未异常吸起,0xaa异常吸起
|
||||
旁路开关正常按下时间达到故障判断时间,或误触发按下时间达到误触发判断时间,设置旁路开关异常吸起标志*/
|
||||
UINT8 OverrideErrDownState; /*旁路开关采集继电器异常落下状态 0x55:未异常落下 0xAA:异常落下
|
||||
OC通信异常或两系板卡状态均故障,设置继电器通信异常落下*/
|
||||
} ConnectOverrideDataStru;
|
||||
|
||||
extern ConnectOverrideDataStru gConnectOverrideData[CONNECT_OVERRIDE_RELAY_SUM_MAX]; /* 联络线旁路继电器动态数据 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 功能描述:获取联络线旁路结构体地址
|
||||
* 参数说明:void
|
||||
* 返 回 值:联络线旁路结构体地址
|
||||
* Created By wyd 20260311
|
||||
*/
|
||||
ConnectOverrideDataStru *GetConnectOverrideData(void);
|
||||
|
||||
/*
|
||||
* 功能描述:联络线旁路主处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By wyd 20260311
|
||||
*/
|
||||
void ConnectOverrideMainProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:根据物理区段ID查询联络线旁路状态
|
||||
* 参数说明:const UINT16 wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:CONNECT_OVERRIDE_STATE_NO:未旁路
|
||||
* CONNECT_OVERRIDE_STATE_YES:已旁路
|
||||
* CI_ERROR:未查询到
|
||||
* Created By wyd 20260313
|
||||
*/
|
||||
UINT8 GetOverrideStateByPhySecId(UINT16 wPhySecId);
|
||||
|
||||
/*
|
||||
* 功能描述:根据逻辑区段ID查询联络线旁路状态
|
||||
* 参数说明:const UINT16 wOverrideId 联络线旁路索引编号
|
||||
* 返 回 值:CONNECT_OVERRIDE_STATE_NO:未旁路
|
||||
* CONNECT_OVERRIDE_STATE_YES:已旁路
|
||||
* CI_ERROR:未查询到
|
||||
* Created By wyd 20260313
|
||||
*/
|
||||
UINT8 GetOverrideStateByLogSecId(UINT16 wLogSecId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,45 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ConnectOverrideRelayDefine.h
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2026-3-11
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 联络线旁路继电器相关常量定义
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef CONNECT_OVERRIDE_DATA_DEFINE_H
|
||||
#define CONNECT_OVERRIDE_DATA_DEFINE_H
|
||||
|
||||
/*联络线旁路继电器数量最大值*/
|
||||
#define CONNECT_OVERRIDE_RELAY_SUM_MAX (UINT16)1U
|
||||
|
||||
/*联络线旁路激活状态*/
|
||||
#define CONNECT_OVERRIDE_STATE_NO (UINT8)0x55u /*联络线旁路未激活*/
|
||||
#define CONNECT_OVERRIDE_STATE_YES (UINT8)0xAAu /*联络线旁路已激活*/
|
||||
|
||||
/*联络线旁路开关采集继电器异常落下状态*/
|
||||
#define CONNECT_OVERRIDE_ERRDOWN_NO (UINT8)0x55u /*联络线旁路开关采集继电器未异常落下*/
|
||||
#define CONNECT_OVERRIDE_ERRDOWN_YES (UINT8)0xAAu /*联络线旁路开关采集继电器异常落下*/
|
||||
|
||||
/*联络线旁路开关采集状态*/
|
||||
#define CONNECT_OVERRIDE_PRESSED_NO (UINT8)0x55u /*联络线旁路开关未有效按下*/
|
||||
#define CONNECT_OVERRIDE_PRESSED_YES (UINT8)0xaau /*联络线旁路开关有效按下*/
|
||||
|
||||
/*联络线旁路原因*/
|
||||
#define OVERRIDE_REASON_NONE (UINT8)0x00u /*联络线旁路原因:无原因*/
|
||||
#define OVERRIDE_REASON_NCT (UINT8)0x01u /*联络线旁路原因:NCT占用且未判ARB*/
|
||||
#define OVERRIDE_REASON_FLOCK_CMD (UINT8)0x02u /*联络线旁路原因:ATS区段封锁*/
|
||||
#define OVERRIDE_REASON_FLOCK_ALL (UINT8)0x04u /*联络线旁路原因:ATS全线封锁*/
|
||||
#define OVERRIDE_REASON_FLOCK_SPKS (UINT8)0x08u /*联络线旁路原因:SPKS激活*/
|
||||
#define OVERRIDE_REASON_FLOCK_CESB (UINT8)0x10u /*联络线旁路原因:CESB激活*/
|
||||
#define OVERRIDE_REASON_EA (UINT8)0x20u /*联络线旁路原因:防护区建立*/
|
||||
|
||||
/*旁路开关采集继电器异常吸起标志*/
|
||||
#define CONNECT_OVERRIDE_ERRTRIG_NO ((UINT8)0x55) /*旁路开关异常吸起标志无效*/
|
||||
#define CONNECT_OVERRIDE_ERRTRIG_YES ((UINT8)0xaa) /*旁路开关异常吸起标志有效*/
|
||||
|
||||
#endif
|
||||
@@ -370,22 +370,27 @@ void CutoffPointOutput(void)
|
||||
UINT16 wPhySecId = 0u;
|
||||
UINT8 chOccState = 0u;
|
||||
UINT8 cDir = 0u;
|
||||
UINT8 cTrainDir = 0u;
|
||||
UINT8 cFunRetVal = CI_ERROR;
|
||||
TRAIN_SEQUANCE_s strTmp = { 0u };
|
||||
CfpTrainInfoStru tmpTrainInfo = { 0u };
|
||||
struct_PathPoint LinkPoint = { 0u };
|
||||
UINT32 dwFindLen = 0u;/*信号机点灯防护距离*/
|
||||
UINT16 wTrainId = 0u;
|
||||
UINT32 dwDis = UINT32_MAX;
|
||||
UINT32 dwDisTail = UINT32_MAX;
|
||||
UINT32 dwDisHead = UINT32_MAX;
|
||||
struct_PathPoint TrainPoint = { 0u };
|
||||
struct_PathPoint TrainHeadPoint = { 0u };
|
||||
struct_PathPoint TrainTailPoint = { 0u };
|
||||
struct_PathPoint CutoffPoint = { 0u };
|
||||
UINT8 cTrainTailDir = 0U; /*列车安全车尾方向*/
|
||||
UINT8 cTrainHeadDir = 0U; /*列车安全车头方向*/
|
||||
UINT32 dwFindLen = 0u;
|
||||
UINT8 chTrainNum = 0u;
|
||||
UINT8 cDirectionPointfirst = 0U; /*方向变化点1*/
|
||||
UINT8 cDirectionPointsecond = 0U; /*方向变化点2*/
|
||||
UINT16 wOtherCfpId = 0u; /*其他分界点ID*/
|
||||
UINT8 chLocalId = 0u; /*本联锁id*/
|
||||
UINT8 chLinkCIId = 0u; /*link所属联锁id*/
|
||||
UINT8 chOtherFlag = FLAG_UNSET;
|
||||
UINT8 chBreakFlag = FLAG_UNSET;
|
||||
UINT32 dwLinkLen = 0U;/*本联锁已计算分界点距离*/
|
||||
|
||||
dwFindLen = GetSystemParaValue(SIGNAL_LIGHTUP_SEC_LEN_ID);
|
||||
dwFindLen *= 100U;
|
||||
chLocalId = GetSystemParaLocalCiId();
|
||||
dwFindLen *= 100u;
|
||||
|
||||
/* 获取本联锁边界点数量 */
|
||||
wCutoffPointSum = GetCfpSum();
|
||||
@@ -400,122 +405,157 @@ void CutoffPointOutput(void)
|
||||
cDir = GetCfpLocDir(wCutoffPointId);
|
||||
|
||||
/* 计算边界点的点灯link */
|
||||
(void)CommonMemSet(wszLinkIdBuf, (UINT32)(sizeof(UINT16)*MAX_CFG_LIGHTUPLINK_NUM), 0U, (UINT32)(sizeof(UINT16)*MAX_CFG_LIGHTUPLINK_NUM));
|
||||
cFunRetVal = CalCutoffPointOccupyLinkSeq(wCutoffPointId, &wLinkSum, wszLinkIdBuf);
|
||||
|
||||
/*重置计算位置 */
|
||||
LinkPoint.wLinkId =0U;
|
||||
LinkPoint.dwOffset = 0U;
|
||||
/* 获取边界点信息 */
|
||||
CutoffPoint.wLinkId = GetCfpLink(wCutoffPointId);
|
||||
CutoffPoint.dwOffset = GetCfpOffset(wCutoffPointId);
|
||||
|
||||
wOtherCfpId = 0U;
|
||||
chOtherFlag = FLAG_UNSET;
|
||||
chBreakFlag = FLAG_UNSET;
|
||||
dwLinkLen = 0U;
|
||||
if ((CI_SUCCESS == cFunRetVal)&&(MAX_CFG_LIGHTUPLINK_NUM>=wLinkSum))
|
||||
wTrainId = 0u;
|
||||
TrainPoint.wLinkId = 0u;
|
||||
TrainPoint.dwOffset = 0u;
|
||||
|
||||
TrainTailPoint.wLinkId = 0U;
|
||||
TrainTailPoint.dwOffset = 0U;
|
||||
TrainHeadPoint.wLinkId = 0U;
|
||||
TrainHeadPoint.dwOffset = 0U;
|
||||
|
||||
if (CI_SUCCESS == cFunRetVal)
|
||||
{
|
||||
/* 区段查找成功,查到区段上的列车 */
|
||||
for (j = 0u;j < wLinkSum;j++)
|
||||
{
|
||||
wLinkId = wszLinkIdBuf[j];
|
||||
chLinkCIId = (UINT8)GetLinkManageTiocById(wLinkId);
|
||||
if (chLinkCIId == chLocalId)
|
||||
{
|
||||
wPhySecId = GetLinkRelatedPhySec(wLinkId);
|
||||
chOccState = GetPhySecCurOccupyState(wPhySecId);
|
||||
chTrainNum = as_GetLinkTrainNum(wLinkId);
|
||||
wPhySecId = GetLinkRelatedPhySec(wLinkId);
|
||||
chOccState = GetPhySecCurOccupyState(wPhySecId);
|
||||
chTrainNum = as_GetLinkTrainNum(wLinkId);
|
||||
|
||||
if ((SECTION_OCCUPY_NO != chOccState) && (0u != chTrainNum))
|
||||
{
|
||||
/* 找到有车占用的区段 */
|
||||
chBreakFlag = FLAG_SET;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
if ((SECTION_OCCUPY_NO != chOccState) && (0u != chTrainNum))
|
||||
{
|
||||
chOtherFlag = FLAG_SET;
|
||||
}
|
||||
if (j < wLinkSum)
|
||||
{
|
||||
/* 更新已经计算的最远无车位置*/
|
||||
LinkPoint.wLinkId = wLinkId;
|
||||
if ((FLAG_SET == chOtherFlag)||(FLAG_SET == chBreakFlag))
|
||||
{
|
||||
if (DIR_SAME == cDir)
|
||||
{
|
||||
LinkPoint.dwOffset = 0U;
|
||||
}
|
||||
else
|
||||
{
|
||||
LinkPoint.dwOffset = GetLinkLengthById(wLinkId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DIR_SAME == cDir)
|
||||
{
|
||||
LinkPoint.dwOffset = GetLinkLengthById(wLinkId);
|
||||
}
|
||||
else
|
||||
{
|
||||
LinkPoint.dwOffset = 0U;
|
||||
}
|
||||
if (j < wLinkSum - 1U)
|
||||
{ /*检查是否有方向变化点,此处检查,当前link已按既定方向查找完,查下一link,若此时中间有方向变化点,则跨过方向变化点,到下一link改变方向查*/
|
||||
cDirectionPointfirst = GetLinkLogicDirChangedById(wszLinkIdBuf[j]);
|
||||
cDirectionPointsecond = GetLinkLogicDirChangedById(wszLinkIdBuf[(j + 1U)]); /*wLinkSum已检查越界*/
|
||||
if (((LINK_DIRCHANGE_BEGIN == cDirectionPointfirst) || (LINK_DIRCHANGE_END == cDirectionPointfirst))
|
||||
&& (cDirectionPointsecond == cDirectionPointfirst))
|
||||
{
|
||||
cDir = ConvertTrainDir(cDir); /*有方向变化点,转换方向*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*没有反向变换点,不考虑变方向*/
|
||||
}
|
||||
}
|
||||
dwLinkLen += GetLinkLengthById(wLinkId); /*未中断遍历,无车且属于本联锁,更新已计算link总长*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*最后一个link 无需更新*/
|
||||
}
|
||||
|
||||
if ((dwFindLen <= dwLinkLen)|| (FLAG_SET == chOtherFlag) || (FLAG_SET == chBreakFlag))
|
||||
{
|
||||
/*距离足够 或查找到相邻RC,或查找到占用,停止计算*/
|
||||
/* 找到有车占用的区段 */
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*无处理*/
|
||||
;
|
||||
}
|
||||
|
||||
/*检查是否有方向变化点,此处检查,当前link已按既定方向查找完,查下一link,若此时中间有方向变化点,则跨过方向变化点,到下一link改变方向查*/
|
||||
if (j < (wLinkSum - 1U))
|
||||
{
|
||||
cDirectionPointfirst = GetLinkLogicDirChangedById(wszLinkIdBuf[j]);
|
||||
cDirectionPointsecond = GetLinkLogicDirChangedById(wszLinkIdBuf[(j + 1U)]); /*todo越界*/
|
||||
if (((LINK_DIRCHANGE_BEGIN == cDirectionPointfirst) || (LINK_DIRCHANGE_END == cDirectionPointfirst))
|
||||
&& (cDirectionPointsecond == cDirectionPointfirst))
|
||||
{
|
||||
cDir = ConvertTrainDir(cDir); /*有方向变化点,转换方向*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*没有反向变换点,不考虑变方向*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*最后一个link不需要考虑方向变化点的问题,防止数组越界*/
|
||||
}
|
||||
}
|
||||
|
||||
/* 获取列车ID 获取距离分界点最近的列车*/
|
||||
if ((j < wLinkSum) && (dwFindLen > dwLinkLen))
|
||||
if (j < wLinkSum)
|
||||
{
|
||||
if (FLAG_UNSET == chOtherFlag)
|
||||
if (DIR_SAME == cDir)
|
||||
{
|
||||
CfpTrainInfoCal(LinkPoint.wLinkId, LinkPoint.dwOffset, dwLinkLen, &tmpTrainInfo, cDir);
|
||||
strTmp = as_GetLinkFirstTrain(wLinkId);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*找到不属于本联锁link 寻找对应联锁及分界点列车信息*/
|
||||
OtherCfpTrainInfoCal(LinkPoint.wLinkId, LinkPoint.dwOffset, dwLinkLen, &tmpTrainInfo);
|
||||
strTmp = as_GetLinkLastTrain(wLinkId);
|
||||
}
|
||||
wTrainId = strTmp.u16TrainID;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 未找到有车占用 或空闲距离足够发送无车 */
|
||||
;
|
||||
}
|
||||
|
||||
if (j == wLinkSum)
|
||||
{
|
||||
/* 未找到有车占用发送无车 */
|
||||
tmpTrainInfo.wTrainId = 0u;
|
||||
tmpTrainInfo.chTrainLevel = 0u;
|
||||
tmpTrainInfo.dwDis = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 存在占用,判断列车类型 */
|
||||
if (NAME_FAILUREAREA == strTmp.u16TrainID)
|
||||
{
|
||||
/* 故障区域 */
|
||||
tmpTrainInfo.wTrainId = SIZE_MAX_LINETRAIN;
|
||||
tmpTrainInfo.chTrainLevel = 0u;
|
||||
|
||||
/* 获取区域位置 */
|
||||
TrainPoint.wLinkId = wLinkId;
|
||||
|
||||
/*选取link上距离分界点最近的点*/
|
||||
if (DIR_SAME == cDir)
|
||||
{
|
||||
TrainPoint.dwOffset = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
TrainPoint.dwOffset = GetLinkLengthById(wLinkId);
|
||||
}
|
||||
|
||||
/* 查询距离 */
|
||||
dwDis = DsuAPointToBPoint(&TrainPoint, &CutoffPoint, &cTrainDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 正常车 */
|
||||
tmpTrainInfo.wTrainId = strTmp.u16TrainID;
|
||||
tmpTrainInfo.chTrainLevel = GetTrainLevel(tmpTrainInfo.wTrainId);
|
||||
|
||||
/*获取安全车尾点*/
|
||||
TrainTailPoint.wLinkId = GetTrainSafeTailLink(wTrainId);
|
||||
TrainTailPoint.dwOffset = GetTrainSafeTailOffset(wTrainId);
|
||||
/*获取安全车头点*/
|
||||
TrainHeadPoint.wLinkId = GetTrainSafeHeadLink(wTrainId);
|
||||
TrainHeadPoint.dwOffset = GetTrainSafeHeadOffset(wTrainId);
|
||||
|
||||
/*获取车尾到分界点距离*/
|
||||
dwDisTail = DsuAPointToBPoint(&TrainTailPoint, &CutoffPoint, &cTrainTailDir);
|
||||
|
||||
/*获取车头到分界点距离*/
|
||||
dwDisHead = DsuAPointToBPoint(&TrainHeadPoint, &CutoffPoint, &cTrainHeadDir);
|
||||
|
||||
if (dwDisTail < dwDisHead)
|
||||
{
|
||||
dwDis = dwDisTail;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwDis = dwDisHead;
|
||||
}
|
||||
}
|
||||
|
||||
if (UINT32_MAX == dwDis)
|
||||
{
|
||||
tmpTrainInfo.dwDis = 0u;
|
||||
}
|
||||
else if(dwFindLen >= dwDis)
|
||||
{
|
||||
tmpTrainInfo.dwDis = dwDis;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 超出范围,无车 */
|
||||
tmpTrainInfo.wTrainId = 0u;
|
||||
tmpTrainInfo.chTrainLevel = 0u;
|
||||
tmpTrainInfo.dwDis = 0u;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1592,140 +1632,3 @@ void SetCfpSignalLightUpFlag(const UINT16 wCfpId, const UINT8 cLightUpFlag)
|
||||
;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 功能描述: 根据其他分界点信息更新本联锁发送分界点列车数据
|
||||
* 参数说明:UINT16 wLinkId 分界点link ,UINT32 dwOffSet偏移量, UINT32 dwLocalOffSet 本联锁已经查找距离
|
||||
* [输出参数]: CfpTrainInfoStru* trainInfo 列车数据
|
||||
* 返回值 :无
|
||||
* Created By fan 2025.05.26
|
||||
*/
|
||||
void OtherCfpTrainInfoCal(UINT16 wLinkId,UINT32 dwOffSet,UINT32 dwLocalOffSet, CfpTrainInfoStru* trainInfo)
|
||||
{
|
||||
UINT16 wCfpId = 0U;/*分界点id*/
|
||||
UINT8 chTransmitStat = TRANSMIT_STATE_BAD;
|
||||
CfpTrainInfoStru strCfpInfo = { 0u };
|
||||
UINT8 chLinkTiocId = 0U;
|
||||
UINT32 dwDdLen = 0U;/*信号机点灯距离*/
|
||||
UINT32 dwLeftOffset = 0U;/*剩余需计算距离*/
|
||||
/*数据初始化*/
|
||||
dwDdLen = GetSystemParaValue(SIGNAL_LIGHTUP_SEC_LEN_ID);
|
||||
dwDdLen *= 100u;
|
||||
wCfpId = GetCfpIdByPoint(wLinkId, dwOffSet);
|
||||
if (NULL != trainInfo)
|
||||
{
|
||||
/*初始化为在该分界点存在故障车*/
|
||||
trainInfo->wTrainId = SIZE_MAX_LINETRAIN;
|
||||
trainInfo->dwDis = dwLocalOffSet;
|
||||
trainInfo->chTrainLevel = 0U;
|
||||
if (dwDdLen > dwLocalOffSet)
|
||||
{
|
||||
dwLeftOffset = dwDdLen - dwLocalOffSet;
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*无处理*/
|
||||
}
|
||||
if (0U != wCfpId)
|
||||
{
|
||||
chLinkTiocId = (UINT8)GetLinkManageTiocById(wLinkId);
|
||||
strCfpInfo = GetCfpOtherOcTrainInfo(wCfpId);
|
||||
chTransmitStat = GetCiTransmitState(CI_SYSTEM_TYPE_CI, chLinkTiocId);
|
||||
if ((TRANSMIT_STATE_GOOD != chTransmitStat) || (UINT16_MAX == strCfpInfo.wTrainId))
|
||||
{
|
||||
;/*通信不良好,或者分界点列车信息获取失败*/
|
||||
}
|
||||
else if ((0u == strCfpInfo.wTrainId) ||
|
||||
((UINT32_MAX != strCfpInfo.dwDis) && (dwLeftOffset < strCfpInfo.dwDis)))
|
||||
{
|
||||
/*相邻Tioc无车 或 距离分界点距离大于剩余查找距离*/
|
||||
trainInfo->wTrainId = 0U;
|
||||
trainInfo->dwDis = 0U;
|
||||
trainInfo->chTrainLevel = 0U;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*传递分界点信息*/
|
||||
trainInfo->wTrainId = strCfpInfo.wTrainId;
|
||||
trainInfo->dwDis = strCfpInfo.dwDis + dwLocalOffSet;
|
||||
trainInfo->chTrainLevel = strCfpInfo.chTrainLevel;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*分界点获取失败*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 本联锁列车数据更新本联锁发送分界点列车数据
|
||||
* 参数说明:UINT16 wLinkId 分界点link ,UINT32 dwOffSet偏移量, UINT32 dwLocalOffSet 本联锁已经查找距离 UINT8 cDir 方向
|
||||
* [输出参数]: CfpTrainInfoStru* trainInfo 列车数据
|
||||
* 返回值 :无
|
||||
* Created By fan 2025.06.04
|
||||
*/
|
||||
void CfpTrainInfoCal(UINT16 wLinkId, UINT32 dwOffSet, UINT32 dwLocalOffSet, CfpTrainInfoStru* trainInfo,UINT8 cDir)
|
||||
{
|
||||
TRAIN_SEQUANCE_s strTmp = { 0u };
|
||||
UINT16 wTrainId = 0u;
|
||||
UINT32 dwDis = UINT32_MAX;
|
||||
UINT32 dwDisTail = UINT32_MAX;
|
||||
UINT32 dwDisHead = UINT32_MAX;
|
||||
struct_PathPoint TrainHeadPoint = { 0u };
|
||||
struct_PathPoint TrainTailPoint = { 0u };
|
||||
struct_PathPoint LinkPoint = { 0u };
|
||||
UINT8 cTrainTailDir = 0U; /*列车安全车尾方向*/
|
||||
UINT8 cTrainHeadDir = 0U; /*列车安全车头方向*/
|
||||
if ((NULL != trainInfo)&&(0U!= wLinkId))
|
||||
{
|
||||
LinkPoint.wLinkId = wLinkId;
|
||||
LinkPoint.dwOffset = dwOffSet;
|
||||
/*占用link属于本联锁*/
|
||||
if (DIR_SAME == cDir)
|
||||
{
|
||||
strTmp = as_GetLinkFirstTrain(wLinkId);
|
||||
}
|
||||
else
|
||||
{
|
||||
strTmp = as_GetLinkLastTrain(wLinkId);
|
||||
}
|
||||
wTrainId = strTmp.u16TrainID;
|
||||
/* 存在占用,判断列车类型 */
|
||||
if (NAME_FAILUREAREA == strTmp.u16TrainID)
|
||||
{
|
||||
/* 故障区域 */
|
||||
trainInfo->wTrainId = SIZE_MAX_LINETRAIN;
|
||||
trainInfo->chTrainLevel = 0u;
|
||||
trainInfo->dwDis = dwLocalOffSet;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 正常车 */
|
||||
trainInfo->wTrainId = strTmp.u16TrainID;
|
||||
trainInfo->chTrainLevel = GetTrainLevel(trainInfo->wTrainId);
|
||||
|
||||
/*获取安全车尾点*/
|
||||
TrainTailPoint.wLinkId = GetTrainSafeTailLink(wTrainId);
|
||||
TrainTailPoint.dwOffset = GetTrainSafeTailOffset(wTrainId);
|
||||
/*获取安全车头点*/
|
||||
TrainHeadPoint.wLinkId = GetTrainSafeHeadLink(wTrainId);
|
||||
TrainHeadPoint.dwOffset = GetTrainSafeHeadOffset(wTrainId);
|
||||
|
||||
/*获取车尾到已计算link最远端距离*/
|
||||
dwDisTail = DsuAPointToBPoint(&TrainTailPoint, &LinkPoint, &cTrainTailDir);
|
||||
|
||||
/*获取车头到已计算link最远端距离*/
|
||||
dwDisHead = DsuAPointToBPoint(&TrainHeadPoint, &LinkPoint, &cTrainHeadDir);
|
||||
|
||||
if (dwDisTail < dwDisHead)
|
||||
{
|
||||
dwDis = dwDisTail;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwDis = dwDisHead;
|
||||
}
|
||||
trainInfo->dwDis = dwLocalOffSet + dwDis;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -350,23 +350,6 @@ UINT8 GetCfpSignalLightUpFlag(const UINT16 wCfpId);
|
||||
*/
|
||||
void SetCfpSignalLightUpFlag(const UINT16 wCfpId, const UINT8 cLightUpFlag);
|
||||
|
||||
/*
|
||||
* 功能描述: 根据其他分界点信息更新本联锁发送分界点列车数据
|
||||
* 参数说明:UINT16 wLinkId 分界点link ,UINT32 dwOffSet偏移量, UINT32 dwLocalOffSet 本联锁已经查找距离
|
||||
* [输出参数]: CfpTrainInfoStru* trainInfo 列车数据
|
||||
* 返回值 :CI_ERROR有车 CI_SUCCESS无车
|
||||
* Created By fan 2025.05.26
|
||||
*/
|
||||
void OtherCfpTrainInfoCal(UINT16 wLinkId, UINT32 dwOffSet, UINT32 dwLocalOffSet, CfpTrainInfoStru* trainInfo);
|
||||
/*
|
||||
* 功能描述: 本联锁列车数据更新本联锁发送分界点列车数据
|
||||
* 参数说明:UINT16 wLinkId 分界点link ,UINT32 dwOffSet偏移量, UINT32 dwLocalOffSet 本联锁已经查找距离 UINT8 cDir 方向
|
||||
* [输出参数]: CfpTrainInfoStru* trainInfo 列车数据
|
||||
* 返回值 :无
|
||||
* Created By fan 2025.06.04
|
||||
*/
|
||||
void CfpTrainInfoCal(UINT16 wLinkId, UINT32 dwOffSet, UINT32 dwLocalOffSet, CfpTrainInfoStru* trainInfo, UINT8 cDir);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -15,14 +15,6 @@
|
||||
#define _DEVICE_DATA_MANAGE_H_
|
||||
|
||||
#include "CommonTypes.h"
|
||||
|
||||
/*区间雨雪信息结构体*/
|
||||
typedef struct S_AreaSnowInfoStruct
|
||||
{
|
||||
UINT16 wAreaId; /*区间ID*/
|
||||
UINT8 cAreaSnowLevel; /*区间湿轨级别*/
|
||||
} AreaSnowInfoStruct;
|
||||
|
||||
#include "../System/CiSystemDefine.h"
|
||||
#include "../error/ErrorDataManage.h"
|
||||
#include "../Transmit/TransmitStateDataManage.h"
|
||||
@@ -164,20 +156,6 @@ typedef struct S_LineCommTrainStruct
|
||||
UINT16 szCommTrainNumID[TRAIN_SUM_MAX]; /*全线通信车ID数组*/
|
||||
}LineCommTrainStruct;
|
||||
|
||||
/*区间牵引加速度信息结构体*/
|
||||
typedef struct S_AreaAccelerationInfoStruct
|
||||
{
|
||||
UINT16 wAreaId; /*区间ID*/
|
||||
UINT8 cAreaAccelerationValue; /*区间牵引加速度值*/
|
||||
} AreaAccelerationInfoStruct;
|
||||
|
||||
/*区间制动率信息结构体*/
|
||||
typedef struct S_AreaBrakeRateInfoStruct
|
||||
{
|
||||
UINT16 wAreaId; /*区间ID*/
|
||||
UINT8 cAreaBrakeRateValue; /*区间制动率值*/
|
||||
} AreaBrakeRateInfoStruct;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern UINT8 AllSignalBrightFlag; /*全站亮灯标志*/
|
||||
|
||||
@@ -203,8 +181,6 @@ extern UINT8 g_AllTsrFlag; /*
|
||||
|
||||
extern UINT8 g_AllSnowModel; /*全线雨雪模式命令*/
|
||||
|
||||
extern UINT8 g_AllSnowLevel; /*全线湿轨级别:0-默认值;1-一级;2-二级*/
|
||||
|
||||
extern UINT8 g_IteLineCutState; /*ITE全线切除状态:0x55:切除ITE;0xAA:使用ITE;0xFF:默认值*/
|
||||
|
||||
extern UINT8 g_AllLineTsrState; /*全线临时限速状态*/
|
||||
@@ -243,28 +219,13 @@ extern UINT8 SwitchBlockLinkState; /*
|
||||
extern CtrlPowerStruct ctrlpowerFlag[VIRTUAL_CI_MAX];
|
||||
|
||||
extern UINT8 LocalAreaSnowNum; /*本地区间雨雪站台数量*/
|
||||
extern AreaSnowInfoStruct szLocalAreaSnow[LOCAL_AREA_SNOW_SUM_MAX]; /*本地区间雨雪数组*/
|
||||
extern UINT32 szLocalAreaSnowId[LOCAL_AREA_SNOW_SUM_MAX]; /*本地区间雨雪站台ID数组*/
|
||||
|
||||
extern LineCommTrainStruct gStrLineCommTrain; /*全线通信车结构体*/
|
||||
|
||||
extern UINT32 gFlyProtectOverCyc; /*飞车宕机报警起始周期*/
|
||||
extern UINT8 g_LocalSnowModel; /*本地雨雪模式命令*/
|
||||
|
||||
extern UINT8 gLocalAreaIteCutNum; /*本地区间ITE切除数量*/
|
||||
extern UINT16 gSzLocalAreaIteCutId[ALL_AREA_SNOW_SUM_MAX]; /*本地区间ITE切除ID数组*/
|
||||
|
||||
extern UINT8 gAllLineAccelerationState; /*全线牵引加速度设置状态:0x55-未设置;0xAA-已设置*/
|
||||
extern UINT8 gAllLineAccelerationValue; /*全线牵引加速度设置值*/
|
||||
|
||||
extern UINT8 gAllLineBrakeRateState; /*全线制动率设置状态:0x55-未设置;0xAA-已设置*/
|
||||
extern UINT8 gAllLineBrakeRateValue; /*全线制动率设置值*/
|
||||
|
||||
extern UINT8 gLocalAreaAccelerationNum; /*本地区间牵引加速度数量*/
|
||||
extern AreaAccelerationInfoStruct gszLocalAreaAcceleration[LOCAL_AREA_SNOW_SUM_MAX]; /*本地区间牵引加速度数组*/
|
||||
|
||||
extern UINT8 gLocalAreaBrakeRateNum; /*本地区间制动率数量*/
|
||||
extern AreaBrakeRateInfoStruct gszLocalAreaBrakeRate[LOCAL_AREA_SNOW_SUM_MAX]; /*本地区间制动率数组*/
|
||||
|
||||
/******************************联锁标志数据管理****************************/
|
||||
|
||||
/*
|
||||
@@ -1406,24 +1367,6 @@ extern UINT8 GetAllSnowModel(void);
|
||||
*/
|
||||
extern void SetAllSnowModel(UINT8 setmodle);
|
||||
|
||||
/*
|
||||
* 功能描述:获取全线湿轨等级
|
||||
* 参数说明:无
|
||||
* 返 回 值:0 默认值
|
||||
* 1 湿轨一级
|
||||
* 2 湿轨二级
|
||||
* Created By LQ 2025.05.28
|
||||
*/
|
||||
UINT8 GetAllSnowLevel(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置全线湿轨等级
|
||||
* 参数说明:UINT8 cLevel 湿轨级别
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.05.28
|
||||
*/
|
||||
void SetAllSnowLevel(UINT8 cLevel);
|
||||
|
||||
/*
|
||||
* 功能描述:获取ITE全线切除状态
|
||||
* 参数说明:void
|
||||
@@ -1767,10 +1710,10 @@ UINT8 GetDiaoCheRouteOpenState(const UINT16 wRouteId);
|
||||
/*
|
||||
* 功能描述:设置本地区间雨雪站台信息
|
||||
* 参数说明:const UINT8 cAreaSnowNum 区间雨雪数量
|
||||
* const AreaSnowInfoStruct pAreaSnowBuf[LOCAL_AREA_SNOW_SUM_MAX] 区间雨雪数组
|
||||
* const UINT32 pAreaSnowIdBuf[] 区间雨雪ID数组
|
||||
* 返回值 :无
|
||||
*/
|
||||
void SetLocalAreaSnowInfo(const UINT8 cAreaSnowNum, const AreaSnowInfoStruct pAreaSnowBuf[LOCAL_AREA_SNOW_SUM_MAX]);
|
||||
void SetLocalAreaSnowInfo(const UINT8 cAreaSnowNum, const UINT32 pAreaSnowIdBuf[]);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间雨雪站台数量
|
||||
@@ -1780,11 +1723,11 @@ void SetLocalAreaSnowInfo(const UINT8 cAreaSnowNum, const AreaSnowInfoStruct pAr
|
||||
UINT8 GetLocalAreaSnowNum(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间雨雪信息
|
||||
* 功能描述:获取本地区间雨雪站台ID
|
||||
* 参数说明:无
|
||||
* 返回值 :区间雨雪信息
|
||||
* 返回值 :区间雨雪站台ID
|
||||
*/
|
||||
AreaSnowInfoStruct* GetLocalAreaSnow(void);
|
||||
UINT32* GetLocalAreaSnowId(void);
|
||||
|
||||
|
||||
/*
|
||||
@@ -1794,7 +1737,7 @@ AreaSnowInfoStruct* GetLocalAreaSnow(void);
|
||||
* 返回值 : 0 第一个锁闭的区段不是故障锁闭
|
||||
* 1 第一个锁闭的区段是故障锁闭
|
||||
*/
|
||||
UINT8 RouteFirstLockErrCheck(UINT16 routeId, UINT16 *pPhySecId);
|
||||
UINT8 RouteFirstLockErrCheck(UINT16 routeId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取全线通信车数据
|
||||
@@ -1881,204 +1824,4 @@ UINT8 GetSwitchUsingValidState(const UINT16 wSwitchId, const UINT8 chFunctionId,
|
||||
*/
|
||||
void DefaultCtrlPowerDeal(const UINT8 virtualCiId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间ITE切除数量
|
||||
* 参数说明:无
|
||||
* 返 回 值:本地区间ITE切除数量
|
||||
* Created By LQ 2025.04.15
|
||||
*/
|
||||
UINT8 GetLocalAreaIteCutNum(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间ITE切除ID数组
|
||||
* 参数说明:无
|
||||
* 返 回 值:本地区间ITE切除ID数组
|
||||
* Created By LQ 2025.04.15
|
||||
*/
|
||||
UINT16* GetLocalAreaIteCutId(void);
|
||||
|
||||
/*
|
||||
* 功能描述:清除本地区间ITE切除信息
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.04.15
|
||||
*/
|
||||
void ClearLocalAreaIteCutInfo(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置本地区间ITE切除信息
|
||||
* 参数说明:const UINT8 cAreaIteCutNum 区间ITE切除数量
|
||||
* const UINT16 pAreaIteCutIdBuf[ALL_AREA_SNOW_SUM_MAX] 区间ID数组
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.04.15
|
||||
*/
|
||||
void SetLocalAreaIteCutInfo(const UINT8 cAreaIteCutNum, const UINT16 pAreaIteCutIdBuf[ALL_AREA_SNOW_SUM_MAX]);
|
||||
|
||||
/*
|
||||
* 功能描述:获取进路内第一个锁闭的逻辑区段ID
|
||||
* 参数说明:UINT16 wRouteId 进路ID
|
||||
* 返 回 值:0 无锁闭的逻辑区段
|
||||
* >0 第一个锁闭的逻辑区段ID
|
||||
* Created By LQ 2025.05.08
|
||||
*/
|
||||
UINT16 GetRouteFirstLockedLogSecId(UINT16 wRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔单操可动作物理区段检查
|
||||
* 参数说明: UINT16 phySecId,物理区段Id
|
||||
* UINT8 oper_src,操作来源
|
||||
* UINT8 sendLevel,发送级别
|
||||
* 返回值 : CI_SUCCESS: 检查成功
|
||||
* CI_ERROR: 检查失败
|
||||
*/
|
||||
UINT8 GetDanCaoPhySecValidState(UINT16 phySecId, UINT8 oper_src, UINT8 sendLevel);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔强扳可动作物理区段检查
|
||||
* 参数说明: UINT16 phySecId,物理区段Id
|
||||
* UINT8 sendLevel,发送级别
|
||||
* 返回值 : CI_SUCCESS: 检查成功
|
||||
* CI_ERROR: 检查失败
|
||||
*/
|
||||
UINT8 GetForcePhySecValidState(UINT16 phySecId, UINT8 sendLevel);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔常态位置检查
|
||||
* 参数说明: UINT16 wSwitchId,道岔Id
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void CheckSwitchNomalPosProc(const UINT16 wSwitchId);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔定反操互斥条件检查
|
||||
* 参数说明: const UINT16 wSwitchId, 道岔ID
|
||||
* 返回值 :CI_SUCCESS: 检查成功
|
||||
* CI_ERROR: 检查失败
|
||||
*/
|
||||
UINT8 CheckSwitchDFMulValid(const UINT16 wSwitchId, const UINT8 chSwitchPos);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔常态位置检查道岔封锁和道岔区段(包含额外物理区段)封锁
|
||||
* 参数说明: UINT16 wSwitchId,道岔Id
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
*/
|
||||
UINT8 GetSwitchAndSecFLockState(const UINT16 wSwitchId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取全线牵引加速度设置状态
|
||||
* 参数说明:无
|
||||
* 返 回 值:0x55 未设置
|
||||
* 0xAA 已设置
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
UINT8 GetAllLineAccelerationState(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取全线牵引加速度设置状态
|
||||
* 参数说明:UINT8 setState 全线牵引加速度设置状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
void SetAllLineAccelerationState(UINT8 setState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取全线牵引加速度设置值
|
||||
* 参数说明:无
|
||||
* 返 回 值:全线牵引加速度设置值
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
UINT8 GetAllLineAccelerationValue(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置全线牵引加速度设置值
|
||||
* 参数说明:UINT8 setValue 全线牵引加速度设置值
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
void SetAllLineAccelerationValue(UINT8 setValue);
|
||||
|
||||
/*
|
||||
* 功能描述:获取全线制动率设置状态
|
||||
* 参数说明:无
|
||||
* 返 回 值:0x55 未设置
|
||||
* 0xAA 已设置
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
UINT8 GetAllLineBrakeRateState(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置全线制动率设置状态
|
||||
* 参数说明:UINT8 setState 全线制动率设置状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
void SetAllLineBrakeRateState(UINT8 setState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取全线牵引加速度设置值
|
||||
* 参数说明:无
|
||||
* 返 回 值:全线牵引加速度设置值
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
UINT8 GetAllLineBrakeRateValue(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置全线牵引加速度设置值
|
||||
* 参数说明:UINT8 setValue 全线牵引加速度设置值
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
void SetAllLineBrakeRateValue(UINT8 setValue);
|
||||
|
||||
/*
|
||||
* 功能描述:设置本地区间牵引加速度信息
|
||||
* 参数说明:const UINT8 cAreaNum 区间数量
|
||||
* const AreaAccelerationInfoStruct pAreaAccBuf[LOCAL_AREA_SNOW_SUM_MAX] 区间牵引加速度数组
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
void SetLocalAreaAccelerationInfo(const UINT8 cAreaNum, const AreaAccelerationInfoStruct pAreaAccBuf[LOCAL_AREA_SNOW_SUM_MAX]);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间牵引加速度数量
|
||||
* 参数说明:无
|
||||
* 返 回 值:区间牵引加速度数量
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
UINT8 GetLocalAreaAccelerationNum(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间牵引加速度信息
|
||||
* 参数说明:无
|
||||
* 返 回 值:区间牵引加速度信息
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
AreaAccelerationInfoStruct* GetLocalAreaAcceleration(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置本地区间制动率信息
|
||||
* 参数说明:const UINT8 cAreaNum 区间数量
|
||||
* const AreaBrakeRateInfoStruct pAreaBrakeBuf[LOCAL_AREA_SNOW_SUM_MAX] 区间制动率数组
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
void SetLocalAreaBrakeRateInfo(const UINT8 cAreaNum, const AreaBrakeRateInfoStruct pAreaBrakeBuf[LOCAL_AREA_SNOW_SUM_MAX]);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间制动率数量
|
||||
* 参数说明:无
|
||||
* 返 回 值:区间制动率数量
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
UINT8 GetLocalAreaBrakeRateNum(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本地区间制动率信息
|
||||
* 参数说明:无
|
||||
* 返 回 值:区间制动率信息
|
||||
* Created By LQ 2026.02.04
|
||||
*/
|
||||
AreaBrakeRateInfoStruct* GetLocalAreaBrakeRate(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,386 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ECSConfigDataManage.c
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2026.01.24
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 环境控制系统配置数据
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#include "ECSConfigDataManage.h"
|
||||
|
||||
ECSConfigDataStruct ECSConfigDataStru[ECS_MAX_NUM] = { 0U }; /*ECS配置数据结构体*/
|
||||
INT16 ECSCurSum = 0; /*ECS当前总数*/
|
||||
UINT16 LocalCiECSIdBuf[ECS_MAX_NUM] = { 0U }; /*定义本地联ECS ID数组*/
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS索引号
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:ECS_MAX_NUM 10 获取数据失败
|
||||
* 其它 ECS索引号
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsConfigBufIndex(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 wRetVal = ECS_MAX_NUM;
|
||||
|
||||
if ((1U <= EcslId) && (ECS_MAX_NUM > EcslId))
|
||||
{
|
||||
wRetVal = EcslId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取ECS当前总数
|
||||
* 参数说明:void
|
||||
* 返 回 值:ECS当前总数
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsCurSum(void)
|
||||
{
|
||||
UINT16 wRetVal = 0U;
|
||||
|
||||
if ((INT16)ECS_MAX_NUM <= ECSCurSum)
|
||||
{
|
||||
wRetVal = ECS_MAX_NUM;
|
||||
}
|
||||
else if (0 > ECSCurSum)
|
||||
{
|
||||
wRetVal = 0U;
|
||||
}
|
||||
else
|
||||
{
|
||||
wRetVal = (UINT16)ECSCurSum;
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定数组下标对应的ECS ID
|
||||
* 参数说明:const UINT16 bufIndex 数组下标
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 ECS ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsId(const UINT16 bufIndex)
|
||||
{
|
||||
UINT16 wRetVal = CI_ERROR;
|
||||
UINT16 wEcsCurNum = 0U;
|
||||
|
||||
wEcsCurNum = GetEcsCurSum();
|
||||
|
||||
if (bufIndex < wEcsCurNum)
|
||||
{
|
||||
wRetVal = LocalCiECSIdBuf[bufIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
wRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS所属控区ID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 控区ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT8 GetEcsBelongCiId(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 cRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
cRetVal = ECSConfigDataStru[bufIndex].cBelongCiId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
cRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:整理读入的ECS配置数据
|
||||
* 参数说明:无
|
||||
* 返 回 值:CI_SUCCESS 1 整理成功
|
||||
* CI_ERROR 0 整理失败
|
||||
* Created By LQ 2026.01.27
|
||||
*/
|
||||
UINT8 EcsConfigDataManage(void)
|
||||
{
|
||||
UINT16 ii = 0U;
|
||||
UINT16 jj = 0U;
|
||||
UINT16 wEcsCurSum = 0U; /*ECS配置数据总数*/
|
||||
UINT8 cLocalCiId = 0U;
|
||||
UINT8 retVal = CI_ERROR;
|
||||
|
||||
wEcsCurSum = GetEcsCurSum();
|
||||
|
||||
if (ECS_MAX_NUM > wEcsCurSum)
|
||||
{
|
||||
retVal = CI_SUCCESS;
|
||||
|
||||
for (ii = 0U; ii < ECS_MAX_NUM; ii++)
|
||||
{
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
|
||||
if (ECSConfigDataStru[ii].cBelongCiId == cLocalCiId)
|
||||
{
|
||||
if (wEcsCurSum > jj)
|
||||
{
|
||||
LocalCiECSIdBuf[jj] = ECSConfigDataStru[ii].wEcsId; /*存储本控区的ECS ID*/
|
||||
jj++;
|
||||
}
|
||||
else
|
||||
{
|
||||
break; /*数量超限,停止遍历*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续初始化*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR; /*数据超限,返回失败*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS起点linkID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 起点linkID
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT16 GetEcsStartLinkId(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16 wRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
wRetVal = ECSConfigDataStru[bufIndex].wStartLinkId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
wRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS起点link偏移量
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:起点link偏移量
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT32 GetEcsStartLinkOff(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT32 dwRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
dwRetVal = ECSConfigDataStru[bufIndex].dwStartLinkOff;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
dwRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return dwRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS终点linkID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 终点linkID
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT16 GetEcsEndLinkId(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16 wRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
wRetVal = ECSConfigDataStru[bufIndex].wEndLinkId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
wRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS终点link偏移量
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:终点link偏移量
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT32 GetEcsEndLinkOff(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT32 dwRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
dwRetVal = ECSConfigDataStru[bufIndex].dwEndLinkOff;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
dwRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return dwRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的物理区段数量
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 ECS关联的物理区段数量
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT8 GetEcsRelPhySecNum(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 cRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
cRetVal = ECSConfigDataStru[bufIndex].cRelPhySecNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
cRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的物理区段ID数组
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 其它 ECS关联的物理区段ID数组
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16* GetEcsRelPhySecId(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16* pRetVal = NULL;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
pRetVal = ECSConfigDataStru[bufIndex].szRelPhySecId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
pRetVal = NULL;
|
||||
}
|
||||
|
||||
return pRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的风向为逻辑正方向的继电器ID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 继电器ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsRelFanUpRelayId(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16 wRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
wRetVal = ECSConfigDataStru[bufIndex].wFanUpRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
wRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的风向为逻辑反方向的继电器ID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 继电器ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsRelFanDownRelayId(const UINT16 EcslId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16 wRetVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEcsConfigBufIndex(EcslId);
|
||||
|
||||
if (ECS_MAX_NUM > bufIndex)
|
||||
{
|
||||
wRetVal = ECSConfigDataStru[bufIndex].wFanDownRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回失败*/
|
||||
wRetVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
@@ -1,163 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ECSConfigDataConfig.h
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2026.01.24
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 环境控制系统配置数据
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _ECS_CONFIG_DATA_MANAGE_H_
|
||||
#define _ECS_CONFIG_DATA_MANAGE_H_
|
||||
|
||||
#include "CommonTypes.h"
|
||||
#include "ECSDefine.h"
|
||||
#include "CiSystemDefine.h"
|
||||
#include "SystemParameterManage.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct S_ECSConfigDataStruct
|
||||
{
|
||||
UINT16 wEcsId; /*ECS ID*/
|
||||
UINT8 cBelongCiId; /*所属CI ID*/
|
||||
UINT16 wStartLinkId; /*隧道起点link ID*/
|
||||
UINT32 dwStartLinkOff; /*隧道起点link偏移量*/
|
||||
UINT16 wEndLinkId; /*隧道终点link ID*/
|
||||
UINT32 dwEndLinkOff; /*隧道终点link偏移量*/
|
||||
UINT8 cRelPhySecNum; /*隧道关联物理区段数量*/
|
||||
UINT16 szRelPhySecId[ECS_REL_PHYSEC_MAX_NUM]; /*隧道关联物理区段ID*/
|
||||
UINT16 wBelongOcId; /*所属OC ID*/
|
||||
UINT16 wFanUpRelayId; /*风向为逻辑正方向的继电器ID*/
|
||||
UINT16 wFanDownRelayId; /*风向为逻辑反方向的继电器ID*/
|
||||
}ECSConfigDataStruct;
|
||||
|
||||
extern ECSConfigDataStruct ECSConfigDataStru[ECS_MAX_NUM]; /*/*ECS配置数据结构体*/
|
||||
extern INT16 ECSCurSum; /*ECS当前总数*/
|
||||
extern UINT16 LocalCiECSIdBuf[ECS_MAX_NUM]; /*定义本地联ECS ID数组*/
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS索引号
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:ECS_MAX_NUM 10 获取数据失败
|
||||
* 其它 ECS索引号
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsConfigBufIndex(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取ECS当前总数
|
||||
* 参数说明:void
|
||||
* 返 回 值:ECS当前总数
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsCurSum(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定数组下标对应的ECS ID
|
||||
* 参数说明:const UINT16 bufIndex 数组下标
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 ECS ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsId(const UINT16 bufIndex);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS所属控区ID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 控区ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT8 GetEcsBelongCiId(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:整理读入的ECS配置数据
|
||||
* 参数说明:无
|
||||
* 返 回 值:CI_SUCCESS 1 整理成功
|
||||
* CI_ERROR 0 整理失败
|
||||
* Created By LQ 2026.01.27
|
||||
*/
|
||||
UINT8 EcsConfigDataManage(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS起点linkID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 起点linkID
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT16 GetEcsStartLinkId(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS起点link偏移量
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:起点link偏移量
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT32 GetEcsStartLinkOff(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS终点linkID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 终点linkID
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT16 GetEcsEndLinkId(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS终点link偏移量
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:终点link偏移量
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT32 GetEcsEndLinkOff(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的物理区段数量
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 ECS关联的物理区段数量
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT8 GetEcsRelPhySecNum(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的物理区段ID数组
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 其它 ECS关联的物理区段ID数组
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16* GetEcsRelPhySecId(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的风向为逻辑正方向的继电器ID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 继电器ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsRelFanUpRelayId(const UINT16 EcslId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联的风向为逻辑反方向的继电器ID
|
||||
* 参数说明:const UINT16 EcslId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 继电器ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsRelFanDownRelayId(const UINT16 EcslId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,293 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ECSDataManage.h
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2026.01.24
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 环境控制系统动态数据
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _ECS_DATA_MANAGE_H_
|
||||
#define _ECS_DATA_MANAGE_H_
|
||||
|
||||
#include "ECSDefine.h"
|
||||
#include "ECSConfigDataManage.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*环境控制系统动态数据结构体*/
|
||||
typedef struct S_ECSDataStruct
|
||||
{
|
||||
UINT16 wEcsId; /*ECS/隧道 ID*/
|
||||
UINT8 cAutoTrigState; /*ECS自动触发状态:0x55-启用,0xAA-停用*/
|
||||
UINT16 wRelTrainId; /*隧道关联列车ID*/
|
||||
UINT32 dwTrainStopStartCycNum; /*关联列车停车起始周期号*/
|
||||
UINT32 dwTrainMoveStartCycNum; /*关联列车移动起始周期号(通信车使用)*/
|
||||
UINT8 cJamState; /*隧道拥堵状态:0x55-拥堵,0xAA-不拥堵*/
|
||||
UINT8 cOccPhySecNum; /*隧道内占用的物理区段数量*/
|
||||
UINT16 szOccPhySecId[ECS_REL_PHYSEC_MAX_NUM]; /*隧道内占用的物理区段ID数组*/
|
||||
}ECSDataStruct;
|
||||
|
||||
extern ECSDataStruct ECSDataStru[ECS_MAX_NUM]; /*环境控制系统动态数据结构体*/
|
||||
|
||||
/*
|
||||
* 功能描述:获取ECS动态数据结构体
|
||||
* 参数说明:
|
||||
* 返 回 值:ECS动态数据结构体
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
ECSDataStruct* GetEcsData(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID ECS自动触发状态
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* const UINT8 cState 自动触发状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
void SetEcsAutoTrigState(const UINT16 wEcsId, const UINT8 cState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS自动触发状态
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 0x55 启用
|
||||
* 0xAA 停用
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT8 GetEcsAutoTrigState(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID ECS关联列车ID
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* const UINT16 wTrainId 列车ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
void SetEcsRelTrainId(const UINT16 wEcsId, const UINT16 wTrainId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS关联列车ID
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:ECS关联列车ID
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT16 GetEcsRelTrainId(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置ECS关联列车停车起始周期
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* const UINT32 dwCycNum 周期号
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
void SetEcsTrainStopStartCycNum(const UINT16 wEcsId, const UINT32 dwCycNum);
|
||||
|
||||
/*
|
||||
* 功能描述:获取ECS关联列车停车起始周期
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:ECS关联列车停车起始周期
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT32 GetEcsTrainStopStartCycNum(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置ECS关联列车移动起始周期
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* const UINT32 dwCycNum 周期号
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
void SetEcsTrainMoveStartCycNum(const UINT16 wEcsId, const UINT32 dwCycNum);
|
||||
|
||||
/*
|
||||
* 功能描述:获取ECS关联列车移动起始周期
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:ECS关联列车停车移动周期
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT32 GetEcsTrainMoveStartCycNum(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID ECS拥堵状态
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* const UINT8 cState 拥堵状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
void SetEcsJamState(const UINT16 wEcsId, const UINT8 cState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS拥堵状态
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 0x55 拥堵
|
||||
* 0xAA 不拥堵
|
||||
* Created By LQ 2026.01.24
|
||||
*/
|
||||
UINT8 GetEcsJamState(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:更新指定ID ECS当前占用的物理区段信息
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* UINT16 pOccPhySecId[ECS_REL_PHYSEC_MAX_NUM] 当前占用的物理区段ID(出参)
|
||||
* 返 回 值:当前占用的物理区段数量
|
||||
* Created By LQ 2026.01.25
|
||||
*/
|
||||
UINT8 GetEcsCurOccPhySecInfo(const UINT16 wEcsId, UINT16 pOccPhySecId[ECS_REL_PHYSEC_MAX_NUM]);
|
||||
|
||||
/*
|
||||
* 功能描述:清除指定ID ECS占用的物理区段信息
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.25
|
||||
*/
|
||||
void ClearEcsOccPhySecInfo(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:更新指定ID ECS占用的物理区段信息
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.25
|
||||
*/
|
||||
void UpdateEcsOccPhySecInfo(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS占用的物理区段数量
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:占用的物理区段数量
|
||||
* Created By LQ 2026.01.25
|
||||
*/
|
||||
UINT8 GetEcsOccPhySecNum(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID ECS占用的物理区段ID
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 非NULL 占用的物理区段ID
|
||||
* Created By LQ 2026.01.25
|
||||
*/
|
||||
UINT16* GetEcsOccPhySecId(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:清除指定ID ECS的动态数据
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void ClearEcsDymData(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:更新ECS关联列车
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void UpdateEcsRelTrain(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:按照通信车监督ECS隧道内列车停车状态
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void MonitorEcsTrainByCommTrain(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:按照非通信车监督ECS隧道内列车停车状态
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void MonitorEcsTrainByBadTrain(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:检查ECS物理区段是否全为非通信车占用
|
||||
* 参数说明:const UINT16 wEcsId
|
||||
* 返 回 值:0 全为UT占用
|
||||
* 1 空闲或存在CT占用
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT8 EcsPhySecUTOccCheck(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:检查ECS物理区段非通信车占用状态是否发生变化
|
||||
* 参数说明:const UINT16 wEcsId
|
||||
* 返 回 值:0 变化
|
||||
* 1 未变化
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT8 EcsPhySecUTOccChangeCheck(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:检查ECS物理区段非通信车占用是否连续
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* UINT8 cPhySecNum 占用的物理区段数量
|
||||
* UINT16 pCurOccPhySecId[ECS_REL_PHYSEC_MAX_NUM] 占用的物理区段ID数组
|
||||
* 返 回 值:0 占用不连续
|
||||
* 1 占用连续
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT8 EcsPhySecUTOccContinusCheck(const UINT16 wEcsId, UINT8 cPhySecNum, UINT16 pCurOccPhySecId[ECS_REL_PHYSEC_MAX_NUM]);
|
||||
|
||||
/*
|
||||
* 功能描述:检查ECS外方物理区段占用状态是否变化
|
||||
* 参数说明:const UINT16 wEcsId ECS ID
|
||||
* 返 回 值:0 变化
|
||||
* 1 未变化
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT8 EcsOutPhySecOccChangeCheck(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取覆盖多个物理区段的ECS外方物理区段ID
|
||||
* 参数说明:const UINT16 wRouteId 进路ID
|
||||
* const UINT16 wCurPhySecId ECS当前物理区段ID
|
||||
* const UINT16 wNextPhySecId ECS下一物理区段ID
|
||||
* UINT16* pEnterPhySecId 驶入ECS隧道的外方物理区段ID(出参)
|
||||
* UINT16* pGoOutPhySecId 驶出ECS隧道的外方物理区段ID(出参)
|
||||
* 返 回 值:0 获取失败
|
||||
* 1 获取成功
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT8 GetMultipleSecEcsOutPhySec(const UINT16 wRouteId, const UINT16 wCurPhySecId, const UINT16 wNextPhySecId, UINT16* pEnterPhySecId, UINT16* pGoOutPhySecId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取仅覆盖一个物理区段的ECS外方物理区段ID
|
||||
* 参数说明:const UINT16 wRouteId 进路ID
|
||||
* const UINT16 wCurPhySecId ECS当前物理区段ID
|
||||
* UINT16* pEnterPhySecId 驶入ECS隧道的外方物理区段ID(出参)
|
||||
* UINT16* pGoOutPhySecId 驶出ECS隧道的外方物理区段ID(出参)
|
||||
* 返 回 值:0 获取失败
|
||||
* 1 获取成功
|
||||
* Created By LQ 2026.01.27
|
||||
*/
|
||||
UINT8 GetSingleSecEcsOutPhySec(const UINT16 wRouteId, const UINT16 wCurPhySecId, UINT16* pEnterPhySecId, UINT16* pGoOutPhySecId);
|
||||
|
||||
/*
|
||||
* 功能描述:更新ECS隧道拥堵状态
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void UpdateEcsJamState(const UINT16 wEcsId);
|
||||
|
||||
/*
|
||||
* 功能描述:ECS风机继电器驱动处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void EcsFanRelayDriveProc(const UINT16 wEcsId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,31 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: ECSDefine.h
|
||||
* 版权说明: 交控科技股份有限公司
|
||||
* 创建时间: 2024.01.24
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 环境控制系统相关常量定义
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _ECS_Define_H_
|
||||
#define _ECS_Define_H_
|
||||
|
||||
#define ECS_MAX_NUM (UINT16)3U /*ECS数量最大值*/
|
||||
|
||||
#define ECS_REL_PHYSEC_MAX_NUM (UINT8)20U /*隧道关联物理区段数量最大值*/
|
||||
|
||||
#define ECS_REL_LOGSEC_MAX_NUM (UINT8)80U /*隧道关联逻辑区段数量最大值*/
|
||||
|
||||
/*ECS自动触发状态*/
|
||||
#define ECS_AUTOTRIG_YES ((UINT8)0x55U) /*启用*/
|
||||
#define ECS_AUTOTRIG_NO ((UINT8)0xAAU) /*停用*/
|
||||
|
||||
/*ECS拥堵状态*/
|
||||
#define ECS_JAM_YES ((UINT8)0x55U) /*拥堵*/
|
||||
#define ECS_JAM_NO ((UINT8)0xAAU) /*不拥堵*/
|
||||
|
||||
#endif
|
||||
@@ -94,16 +94,23 @@ void SetErrorData(const UINT8 FunctionId, const UINT8 DeviceType, const UINT16 D
|
||||
tempErrorDataIndex = ErrorDataCurSum;
|
||||
if (tempErrorDataIndex < ERROR_DATA_SUM_MAX)
|
||||
{
|
||||
/* 记录新数据 */
|
||||
ErrorDataStru[tempErrorDataIndex].FunctionId = FunctionId;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceType = DeviceType;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceId = DeviceId;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceStateType = DeviceStateType;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceState = DeviceState;
|
||||
ErrorDataStru[tempErrorDataIndex].SendLevel = SendLevel;
|
||||
if (ETYPE_PS_FLOCK_SPKSCMD_STATE == DeviceStateType)
|
||||
{
|
||||
SetPhySecSpksCmdFlockErrorData(FunctionId, DeviceType, DeviceId, DeviceStateType, DeviceState, SendLevel);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 记录新数据 */
|
||||
ErrorDataStru[tempErrorDataIndex].FunctionId = FunctionId;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceType = DeviceType;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceId = DeviceId;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceStateType = DeviceStateType;
|
||||
ErrorDataStru[tempErrorDataIndex].DeviceState = DeviceState;
|
||||
ErrorDataStru[tempErrorDataIndex].SendLevel = SendLevel;
|
||||
|
||||
/* 记录未满寻址指向新数据 */
|
||||
ErrorDataCurSum = (UINT16)(tempErrorDataIndex + 1u);
|
||||
/* 记录未满寻址指向新数据 */
|
||||
ErrorDataCurSum = (UINT16)(tempErrorDataIndex + 1u);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
@@ -183,7 +190,7 @@ void SetErrorDataBelongVirCiId(const UINT16 preErrorNum, const UINT8 virCIid)
|
||||
}
|
||||
|
||||
}
|
||||
#if 0
|
||||
|
||||
/*
|
||||
* 功能描述: 设置物理区段封锁类型为SPKS按下且命令封锁时的错误数据
|
||||
* 参数说明: const UINT8 functionId, 函数ID
|
||||
@@ -239,7 +246,6 @@ void SetPhySecSpksCmdFlockErrorData(const UINT8 FunctionId, const UINT8 DeviceTy
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -98,7 +98,6 @@ void DeleteErrorData(const UINT16 Index);
|
||||
* cgh-合并CID-2349-5:
|
||||
*/
|
||||
void SetErrorDataBelongVirCiId(const UINT16 preErrorNum, const UINT8 virCIid);
|
||||
#if 0
|
||||
/*
|
||||
* 功能描述: 设置物理区段封锁类型为SPKS按下且命令封锁时的错误数据
|
||||
* 参数说明: const UINT8 functionId, 函数ID
|
||||
@@ -113,7 +112,6 @@ void SetErrorDataBelongVirCiId(const UINT16 preErrorNum, const UINT8 virCIid);
|
||||
void SetPhySecSpksCmdFlockErrorData(const UINT8 FunctionId, const UINT8 DeviceType, const UINT16 DeviceId,
|
||||
const UINT8 DeviceStateType, const UINT8 DeviceState,
|
||||
const UINT8 SendLevel);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -109,7 +109,6 @@
|
||||
#define EFUNC_ROUTE_FIRST_LOG_UNLOCK ((UINT8)0x50) /*函数:RouteFirstLogSecAutoUnlockProcess进路第一逻辑区段自动解锁检查*/
|
||||
#define EFUNC_SWITCHTESTLOGIC ((UINT8)0x80U) /*函数:SetSwitchTestLogicManage道岔定反位测试*/
|
||||
#define EFUNC_OVERLAP_VALIDMASK_CHECK ((UINT8)0x4A) /*函数:OverlapValidMaskCheck 计算保护区段有效码位检查*/
|
||||
#define EFUNC_ROUTE_LOCK_DRIVE_SWITCH ((UINT8)0xD2) /*RouteLockDriveSwitch 锁闭道岔*/
|
||||
|
||||
/*车辆段联锁逻辑检查*/
|
||||
#define EFUNC_SET_LEAD_ROUTE_CHECK ((UINT8)0x4B) /*办理引导进路检查*/
|
||||
@@ -136,6 +135,7 @@
|
||||
#define EFUNC_CLD_CANCEL_D_TRAIN_ROUTE ((UINT8)0x66) /*取消进路调车*/
|
||||
#define EFUNC_CLD_CLOSE_GARAGEDOOR ((UINT8)0x67) /*关闭车库门*/
|
||||
#define EFUNC_CLD_CHECK_GARAGEDOOR_CLOSE ((UINT8)0xc9) /*车库门关闭条件检查(RC模式下)*/
|
||||
#define EFUNC_CHECK_DIAOCHE_ROUTE_ZRJ ((UINT8)0x68) /* CheckDiaoCheRouteZRJFeasibility 检查调车进路总人解的可行性*/
|
||||
#define EFUNC_CHECK_OPEN_L_ERR_CLD ((UINT8)0x69) /*OpenLTrainRouteErrP*/
|
||||
#define EFUNC_CHECK_OPEN_D_ERR_CLD ((UINT8)0x6a)
|
||||
#define EFUNC_KEEP_L_ERR_CLD ((UINT8)0x6b)
|
||||
@@ -178,8 +178,6 @@
|
||||
#define EFUNC_LOGSEC_LAST_SECLOCK ((UINT8)0x92) /* CheckLogRouteLogSecLastSecLock */
|
||||
|
||||
#define EFUNC_ROUTE_ZHONGTUZHEFAN_UNLOCK ((UINT8)0x94) /* CheckRouteZhefanJiesuo */
|
||||
#define EFUNC_PART_ROUTE_CMD_PROC ((UINT8)0x95) /*RoutePartApplyLogicManage(正线/试车线部分进路命令处理)*/
|
||||
#define EFUNC_PART_ROUTE_CMD_PROC_CLD ((UINT8)0x96) /*RoutePartApplyLogicManageCLD(场段部分进路命令处理)*/
|
||||
|
||||
/*逻辑进路相关报警函数*/
|
||||
#define EFUNC_LogRouteOpenManage ((UINT8)0xC1) /*EFUNC_LogRouteOpenManage逻辑进路信号开放处理*/
|
||||
@@ -189,13 +187,6 @@
|
||||
#define EFUNC_OpenLogRouteSignalProcess ((UINT8)0xC5) /*LogRouteSignalProcess开放逻辑进路信号条件检查*/
|
||||
#define EFUNC_LOGROUTE_LOGIC_RES_APP_CHECK ((UINT8)0xC6) /*逻辑进路逻辑区段资源可用性检查*/
|
||||
#define EFUNC_LogRoureUsingStateCheck ((UINT8)0xC7) /*LogRoutePhySecUseLogicProcess*/
|
||||
/*联络线相关报警函数*/
|
||||
#define EFUNC_ConnectOverrideSetProc ((UINT8)0xCA) /*ConnectOverrideSetProc*/
|
||||
#define EFUNC_ConnectSwitchAlarmProc ((UINT8)0xCB) /*LogSecConnectSwitchAlarmProc*/
|
||||
#define EFUNC_GetDisneyGJDriveState ((UINT8)0xCC) /*GetDisneyGJDriveState*/
|
||||
#define EFUNC_DsnConnectOtherCi ((UINT8)0xCD) /*DsnConnectOtherCiValidCheck*/
|
||||
#define EFUNC_LogSecDsnConnectCheck ((UINT8)0xCE) /*LogSecDsnConnectCheck*/
|
||||
#define EFUNC_RouteCbtcTiranEnterCheck ((UINT8)0xCF) /*RouteCbtcTiranEnterCheck*/
|
||||
/*其他函数*/
|
||||
#define EFUNC_LOGIC_MANAGE_SYETEM ((UINT8)0xF0) /* Logicmanage.c中导致宕机异常 */
|
||||
#define EFUNC_CHECK_ROUTE_SEC_FLOCK ((UINT8)0xF1) /* RouteSecFlockVainCheck */
|
||||
@@ -219,8 +210,6 @@
|
||||
|
||||
#define EFUNC_FIRSTLEAVE_LOGSEC_CHECK ((UINT8)0xD1) /*离去逻辑区段检查RouteLeaveLogSecCheck*/
|
||||
|
||||
#define EFUNC_OVERLAP_ZHAOCHA_CHECK ((UINT8)0xD3) /*保护区段照查条件检查*/
|
||||
|
||||
|
||||
/*************************************************分界线******************************************************************************/
|
||||
/*************************************************分界线******************************************************************************/
|
||||
@@ -228,23 +217,19 @@
|
||||
/* 故障类型*/
|
||||
/* 进路故障类型编码 (UINT8)0x01-(UINT8)0x2f */
|
||||
/* 设备类型 CI_DEVICE_TYPE_ROUTE */
|
||||
#define ETYPE_ROUTE_LEVEL ((UINT8)0x01) /*进路监督级别*/
|
||||
#define ETYPE_ROUTE_TYPE ((UINT8)0x02) /*进路类型*/
|
||||
#define ETYPE_ROUTE_STATE ((UINT8)0x03) /*进路状态*/
|
||||
#define ETYPE_ROUTE_LEAD_PROPERTY ((UINT8)0x04) /*进路引导*/
|
||||
#define ETYPE_ROUTE_CANCEL ((UINT8)0x05) /*进路取消*/
|
||||
#define ETYPE_ROUTE_OVERLAP_UNLOCK ((UINT8)0x06) /*Overlap未锁闭*/
|
||||
#define ETYPE_ROUTE_OVERLAP_OCCUPY ((UINT8)0x07) /*Overlap占用*/
|
||||
#define ETYPE_ROUTE_FLYING_TRAIN ((UINT8)0x08) /*进路飞车*/
|
||||
#define ETYPE_RETURN_ROUTE_STATE ((UINT8)0x09) /*折返进路状态*/
|
||||
#define ETYPE_ROUTE_FIRST_XUANPAI_OVERTIME ((UINT8)0x0a) /*进路初选排超时*/
|
||||
#define ETYPE_ROUTE_APPLY_SWITCH_CHECK ((UINT8)0x0b) /*进路办理道岔状态检查*/
|
||||
#define ETYPE_ROUTE_XUANPAI_OVERTIME ((UINT8)0x10) /*进路选排超时*/
|
||||
#define ETYPE_GROUP_AUTO_ROUTE_STATE ((UINT8)0x16) /*组合自动进路*/
|
||||
#define ETYPE_ROUTE_CONNECT_OVERRIME ((UINT8)0x18) /*(联络线)进路办理超时*/
|
||||
#define ETYPE_ROUTE_APPLY_SWITCH_MOVE ((UINT8)0xA4) /*进路道岔单操中*/
|
||||
#define ETYPE_ROUTE_DSNCONNECT ((UINT8)0x19) /*迪士尼联络线联锁条件*/
|
||||
#define ETYPE_ROUTE_DSNCONNECT_CROSS ((UINT8)0x1A) /*迪士尼联络线跨压*/
|
||||
#define ETYPE_ROUTE_LEVEL ((UINT8)0x01) /*进路监督级别*/
|
||||
#define ETYPE_ROUTE_TYPE ((UINT8)0x02) /*进路类型*/
|
||||
#define ETYPE_ROUTE_STATE ((UINT8)0x03) /*进路状态*/
|
||||
#define ETYPE_ROUTE_LEAD_PROPERTY ((UINT8)0x04) /*进路引导*/
|
||||
#define ETYPE_ROUTE_CANCEL ((UINT8)0x05) /*进路取消*/
|
||||
#define ETYPE_ROUTE_OVERLAP_UNLOCK ((UINT8)0x06) /*Overlap未锁闭*/
|
||||
#define ETYPE_ROUTE_OVERLAP_OCCUPY ((UINT8)0x07) /*Overlap占用*/
|
||||
#define ETYPE_ROUTE_FLYING_TRAIN ((UINT8)0x08) /*进路飞车*/
|
||||
#define ETYPE_RETURN_ROUTE_STATE ((UINT8)0x09) /*折返进路状态*/
|
||||
#define ETYPE_ROUTE_FIRST_XUANPAI_OVERTIME ((UINT8)0x0a) /*进路初选排超时*/
|
||||
#define ETYPE_ROUTE_APPLY_SWITCH_CHECK ((UINT8)0x0b) /*进路办理道岔状态检查*/
|
||||
#define ETYPE_ROUTE_XUANPAI_OVERTIME ((UINT8)0x10) /*进路选排超时*/
|
||||
#define ETYPE_GROUP_AUTO_ROUTE_STATE ((UINT8)0x16) /*组合自动进路*/
|
||||
|
||||
|
||||
#define ETYPE_COMM_WITH_VOBC ((UINT8)0x11) /*与VOBC通信*/
|
||||
@@ -311,17 +296,15 @@
|
||||
|
||||
/* 道岔类型编码 (UINT8)0x61-(UINT8)0x7f */
|
||||
/* 设备类型 CI_DEVICE_TYPE_SWITCH */
|
||||
#define ETYPE_SWT_YLOCK_STATE ((UINT8)0x61) /*道岔引导总锁状态*/
|
||||
#define ETYPE_SWT_FLOCK_STATE ((UINT8)0x62) /*道岔封锁状态*/
|
||||
#define ETYPE_SWT_LOCK_STATUS ((UINT8)0x63) /*道岔锁闭状态*/
|
||||
#define ETYPE_SWT_POSTION_STATE ((UINT8)0x64) /*道岔位置*/
|
||||
#define ETYPE_SWT_MOVE_INVALID ((UINT8)0x65) /*道岔不可动*/
|
||||
#define ETYPE_SWT_MOVE_OVERTIME ((UINT8)0x66) /*道岔动作锁闭超时*/
|
||||
#define ETYPE_SWT_USE_STATE ((UINT8)0x6aU) /*道岔征用*/
|
||||
#define ETYPE_SWT_MOVE_STATE ((UINT8)0x6bU) /*道岔搬动状态*/
|
||||
#define ETYPE_SWT_MOVE_CHECK_RESULT ((UINT8)0x6cU) /*道岔可动性检查结果*/
|
||||
#define ETYPE_SWT_WAIT_MOVE ((UINT8)0x6dU) /*等待道岔动作完成*/
|
||||
#define ETYPE_SWT_CONNECT_RET_FAIL ((UINT8)0x6Eu) /* Point failed to move to normal within 20 seconds of the over switch block being cleared */
|
||||
#define ETYPE_SWT_YLOCK_STATE ((UINT8)0x61) /*道岔引导总锁状态*/
|
||||
#define ETYPE_SWT_FLOCK_STATE ((UINT8)0x62) /*道岔封锁状态*/
|
||||
#define ETYPE_SWT_LOCK_STATUS ((UINT8)0x63) /*道岔锁闭状态*/
|
||||
#define ETYPE_SWT_POSTION_STATE ((UINT8)0x64) /*道岔位置*/
|
||||
#define ETYPE_SWT_MOVE_INVALID ((UINT8)0x65) /*道岔不可动*/
|
||||
#define ETYPE_SWT_MOVE_OVERTIME ((UINT8)0x66) /*道岔动作锁闭超时*/
|
||||
#define ETYPE_SWT_USE_STATE ((UINT8)0x6aU) /*道岔征用*/
|
||||
#define ETYPE_SWT_MOVE_STATE ((UINT8)0x6bU) /*道岔搬动状态*/
|
||||
#define ETYPE_SWT_MOVE_CHECK_RESULT ((UINT8)0x6cU) /*道岔可动性检查结果*/
|
||||
|
||||
/* 继电器故障类型编码 (UINT8)0x81-(UINT8)0x8f */
|
||||
/* 设备类型 CI_DEVICE_TYPE_RELAY */
|
||||
@@ -330,7 +313,6 @@
|
||||
#define ETYPE_CANCLE_ZHAOCHA ((UINT8)0x82) /*取消照查继电器*/
|
||||
#define ETYPE_ZHAOCHA_ROUTE_OVERTIME ((UINT8)0x83) /*进路照查超时*/
|
||||
#define ETYPE_JKJ_WORK ((UINT8)0x84) /*应急盘有效*/
|
||||
#define ETYPE_ZHAOCHA_OVERLAP_OVERTIME ((UINT8)0x86) /*保护区段照查超时*/
|
||||
|
||||
/* 其他联锁条件检查相关故障类型编码 (UINT8)0x91-(UINT8)0x9f */
|
||||
/* 设备类型
|
||||
@@ -397,19 +379,6 @@
|
||||
#define ETYPE_LOGSEC_XIANSU_STATE ((UINT8)0xC5) /*逻辑区段限速设置*/
|
||||
#define ETYPE_LOGSEC_FIRSTLOCK_STATE ((UINT8)0xC6) /*逻辑区段为第一个锁闭区段检查*/
|
||||
#define ETYPE_LOGSEC_CBTC_PROPERTY ((UINT8)0xC7) /*逻辑区段CBTC属性检查*/
|
||||
#define ETYPE_LOGSEC_CONTINUOUS ((UINT8)0xC8) /*逻辑区段连续性检查*/
|
||||
#define ETYPE_LOGSEC_CT_OVERRIDE_FAIL ((UINT8)0xC9) /*逻辑区段有CT列车占用,旁路无效*/
|
||||
#define ETYPE_LOGSEC_EA_BUILD ((UINT8)0xCA) /*逻辑区段防护区建立*/
|
||||
#define ETYPE_LOGSEC_DIRLOC_FAIL ((UINT8)0xCB) /*逻辑区段继电器检查条件不满足(迪士尼联络线)*/
|
||||
|
||||
/*动态路径故障类型*/
|
||||
#define ETYPE_PART_ROUTE_RES ((UINT8)0xD0) /*动态路径资源检查*/
|
||||
#define ETYPE_PART_ROUTE_MATCH_ROUTE ((UINT8)0xD1) /*动态路径匹配进路检查*/
|
||||
#define ETYPE_PART_ROUTE_SCREEN ((UINT8)0xD2) /*动态路径列车筛选检查*/
|
||||
#define ETYPE_PART_ROUTE_REPEAT ((UINT8)0xD3) /*动态路径重复办理检查*/
|
||||
#define ETYPE_PART_ROUTE_SEC_ATTR ((UINT8)0xD4) /*动态路径区段属性检查*/
|
||||
#define ETYPE_PART_ROUTE_TRAIN_COMM ((UINT8)0xD5) /*动态路径列车通信状态检查*/
|
||||
#define ETYPE_PART_ROUTE_TRAIN_POS ((UINT8)0xD6) /*动态路径列车位置检查*/
|
||||
|
||||
/* 系统故障 */
|
||||
/* 设备类型 EFUNC_LOGIC_MANAGE_SYETEM */
|
||||
|
||||
@@ -18,7 +18,8 @@ EsbConfigDataStruct EsbConfigDataStru[ESB_SUM_MAX]; /*
|
||||
UINT16 LocalCiEsbIdBuf[ESB_SUM_MAX] = {0u}; /*定义本地联锁紧急停车按钮ID映射数组*/
|
||||
INT16 EsbCurSum = 0; /*ESB当前总数*/
|
||||
UINT16 totalEsbNum = 0u;/*本联锁和相邻联锁发送给本联锁ESB总数*/
|
||||
CesbConfigDataStruct LocalCesbConfigDataStru;/*定义本联锁全线紧急制动数据*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@@ -662,53 +663,3 @@ UINT8 CheckEsbBelSendRange(const UINT16 wCheckEsbId)
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ESB ID关联的link编号
|
||||
* 参数说明: const UINT16 esbId, 紧急停车按钮
|
||||
* 返回值 : 无
|
||||
*Create fan 2026.02.05
|
||||
*/
|
||||
UINT16 GetEsbRelateLinkId(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16 wLinkId = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
if (bufIndex < ESB_SUM_MAX)
|
||||
{
|
||||
|
||||
wLinkId = EsbConfigDataStru[bufIndex].wRelateLink;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
return wLinkId;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定CESB关联的激活继电器ID
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
*Create fan 2026.02.05
|
||||
*/
|
||||
UINT16 GetCesbRelayId(void)
|
||||
{
|
||||
UINT16 wCesbRelay = 0U;
|
||||
wCesbRelay = LocalCesbConfigDataStru.wCesbRelayId;
|
||||
return wCesbRelay;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定CESB关联的旁路继电器ID
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
*Create fan 2026.02.05
|
||||
*/
|
||||
UINT16 GetCesbCutRelayId(void)
|
||||
{
|
||||
UINT16 wCesbCutRelay = 0U;
|
||||
wCesbCutRelay = LocalCesbConfigDataStru.wCesbCutRelayId;
|
||||
return wCesbCutRelay;
|
||||
}
|
||||
@@ -50,24 +50,14 @@ typedef struct S_EsbConfigDataStruct
|
||||
UINT16 EsbCutoffBuzzRelayId; /*切除蜂鸣器报警继电器ID*/
|
||||
UINT8 ConfigAtsCiEssSteadyMask; /*是否配置了ATS-CI稳灯状态码位0x55 配置;0xaa未配置*/
|
||||
UINT8 ConfigAtsCiEssFlashMask; /*是否配置了ATS-CI闪灯状态码位0x55 配置;0xaa未配置*/
|
||||
UINT16 wRelateLink;/*电子地图配置中关联LINK标号*/
|
||||
} EsbConfigDataStruct;
|
||||
|
||||
/*CESB按钮配置数据结构体*/
|
||||
typedef struct S_CesbConfigDataStruct
|
||||
{
|
||||
UINT16 wCesbId; /*全线紧急按钮ID (配置字段)*/
|
||||
UINT8 BelongCiId; /*所属联锁ID*/
|
||||
UINT16 wCesbRelayId; /*全线紧急停车按钮关联继电器*/
|
||||
UINT16 wCesbCutRelayId; /*全线紧急停车旁路按钮关联继电器*/
|
||||
} CesbConfigDataStruct;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern EsbConfigDataStruct EsbConfigDataStru[ESB_SUM_MAX]; /*定义ESB数据配置结构体,cgh-合并CID-2539-1:此处声明不进行初始化,统一放到InitAllStaticDataStr函数中进行初始化,为解决生成内核过大得问题*/
|
||||
extern UINT16 LocalCiEsbIdBuf[ESB_SUM_MAX]; /*定义本地联锁紧急停车按钮ID映射数组*/
|
||||
extern INT16 EsbCurSum; /*ESB当前总数*/
|
||||
extern UINT16 totalEsbNum;/*本联锁和相邻联锁发送给本联锁ESB总数*/
|
||||
extern CesbConfigDataStruct LocalCesbConfigDataStru;/*定义本联锁全线紧急制动数据*/
|
||||
|
||||
/*
|
||||
* 功能描述: 获取紧急停车当前总数
|
||||
* 参数说明: void
|
||||
@@ -303,30 +293,6 @@ UINT16 GetEsbCutoffBuzzRelayId(const UINT16 esbId);
|
||||
*/
|
||||
UINT8 CheckEsbBelSendRange(const UINT16 wCheckEsbId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ESB ID关联的link编号
|
||||
* 参数说明: const UINT16 esbId, 紧急停车按钮
|
||||
* 返回值 : 无
|
||||
*Create fan 2026.02.05
|
||||
*/
|
||||
UINT16 GetEsbRelateLinkId(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定CESB关联的激活继电器ID
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
*Create fan 2026.02.05
|
||||
*/
|
||||
UINT16 GetCesbRelayId(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定CESB关联的旁路继电器ID
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
*Create fan 2026.02.05
|
||||
*/
|
||||
UINT16 GetCesbCutRelayId(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -11,12 +11,9 @@
|
||||
|
||||
#include "ESBDataManage.h"
|
||||
#include "ESBConfigDataManage.h"
|
||||
#include "../ParsePack/ParsePackGateWayData.h"
|
||||
#include "../QueryFiles/dquCIInterFace.h"
|
||||
|
||||
EsbDataStruct EsbDataStru[ESB_SUM_MAX]; /*定义ESB数据结构体*/
|
||||
UINT8 g_CesbFlockState = CESB_STATE_VALID_NO; /* 全线区段CESB封锁状态 */
|
||||
UINT8 g_ScxCesbData = CESB_STATE_VALID_NO; /*试车线CESB状态*/
|
||||
UINT8 g_ScxCesbCutData = ESB_CUT_NO;/*试车线CESB旁路状态*/
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ESB数据
|
||||
@@ -163,17 +160,12 @@ UINT8 EsbDataManageInit(void)
|
||||
EsbDataStru[esbId].CutStatus = ESB_CUT_NO; /*ESB旁路未按下*/
|
||||
EsbDataStru[esbId].EsbRelateRelayDriveState = ESB_PEPUP_ESSUP_INITION_STA; /*PEP和ESS都无效*/
|
||||
EsbDataStru[esbId].EsbErrorFlag = ESB_ERROR_FLAG_NO; /*自复式ESB未故障*/
|
||||
EsbDataStru[esbId].EsbRelayDownState = ESB_RELAY_ERROR_DOWN_YES; /*紧急关闭按钮采集继电器落下状态初始化为通信异常落下*/
|
||||
EsbDataStru[esbId].CancelEsbErrorFlag = ESB_ERROR_FLAG_NO; /*自复式取消ESB未故障*/
|
||||
EsbDataStru[esbId].EsbPressCycNum = 0U; /*紧急关闭按钮按下周期*/
|
||||
EsbDataStru[esbId].CancelEsbPressCycNum = 0U; /*取消紧急关闭按钮按下周期*/
|
||||
EsbDataStru[esbId].CancelEsbErrTriggerPressCycNum = 0U; /*取消紧急关闭按钮误触发按下周期*/
|
||||
EsbDataStru[esbId].CancelEsbValidFlag = ESB_CANCEL_VALID_NO; /*取消紧急关闭按钮有效标志*/
|
||||
EsbDataStru[esbId].CancelEsbRelayDownState = ESB_RELAY_ERROR_DOWN_YES; /*取消紧急关闭按钮采集继电器落下状态初始化为通信异常落下*/
|
||||
EsbDataStru[esbId].EsbCutPressCycNum = 0U; /*紧急关闭旁路按钮按下周期*/
|
||||
EsbDataStru[esbId].EsbCutErrTriggerPressCycNum = 0U; /*紧急关闭旁路按钮误触发按下周期*/
|
||||
EsbDataStru[esbId].EsbCutErrorFlag = ESB_ERROR_FLAG_NO; /*紧急关闭旁路按钮未故障*/
|
||||
EsbDataStru[esbId].EsbCutRelayDownState = ESB_RELAY_ERROR_DOWN_YES; /*紧急关闭旁路按钮采集继电器落下状态初始化为通信异常落下*/
|
||||
}
|
||||
rtn = CI_SUCCESS;
|
||||
return rtn;
|
||||
@@ -806,646 +798,3 @@ UINT8 GetCancelEsbRelayDownState(const UINT16 esbId)
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急关闭旁路按钮按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* const UINT32 startCycNum 周期号
|
||||
* 输出参数:无
|
||||
* 返 回 值:无
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
void SetEsbCutPressCycNum(const UINT16 esbId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
EsbDataStru[bufIndex].EsbCutPressCycNum = startCycNum; /*紧急旁路按钮正常按下起始周期*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取紧急关闭旁路按钮按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* 输出参数:无
|
||||
* 返 回 值:紧急关闭旁路按钮按下周期
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
UINT32 GetEsbCutPressCycNum(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbDataStru[bufIndex].EsbCutPressCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*下标非法,返回0*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急关闭旁路按钮误触发按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* const UINT32 startCycNum 周期号
|
||||
* 输出参数:无
|
||||
* 返 回 值:无
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
void SetEsbCutErrTrigPressCycNum(const UINT16 esbId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
EsbDataStru[bufIndex].EsbCutErrTriggerPressCycNum = startCycNum; /*紧急旁路按钮误触发按下周期*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取紧急关闭旁路按钮误触发按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* 输出参数:无
|
||||
* 返 回 值:紧急关闭旁路按钮误触发按下周期
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
UINT32 GetEsbCutErrTrigPressCycNum(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbDataStru[bufIndex].EsbCutErrTriggerPressCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*下标非法,返回0*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急关闭旁路按钮采集继电器落下状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* const UINT8 cRelayDownState 继电器落下状态
|
||||
* 返回值:无
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
void SetEsbCutRelayDownState(const UINT16 esbId, const UINT8 cRelayDownState)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((ESB_RELAY_ERROR_DOWN_NO == cRelayDownState) || (ESB_RELAY_ERROR_DOWN_YES == cRelayDownState))
|
||||
{
|
||||
EsbDataStru[bufIndex].EsbCutRelayDownState = cRelayDownState;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*设置状态不合法,不进项状态更新*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*数组下标不合法,不执行状态更新*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取紧急关闭旁路按钮采集继电器落下状态
|
||||
* 参数说明: const UINT16 esbId 紧急停车按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* 0x55: 正常落下
|
||||
* 0xaa: 通信异常落下
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
UINT8 GetEsbCutRelayDownState(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
UINT8 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbDataStru[bufIndex].EsbCutRelayDownState;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*数组下标不合法,不执行状态更新*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急关闭旁路按钮故障标志
|
||||
* 参数说明:const UINT16 esbId, 紧急关闭按钮ID
|
||||
* const UINT8 cEsbCutErrFlag 紧急关闭旁路按钮故障标志
|
||||
* 返回值:无
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
void SetEsbCutErrFlag(const UINT16 esbId, const UINT8 cEsbCutErrFlag)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((ESB_ERROR_FLAG_NO == cEsbCutErrFlag) || (ESB_ERROR_FLAG_YES == cEsbCutErrFlag))
|
||||
{
|
||||
EsbDataStru[bufIndex].EsbCutErrorFlag = cEsbCutErrFlag;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*设置状态不合法,不进项状态更新*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*数组下标不合法,不执行状态更新*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID紧急关闭旁路按钮故障标志
|
||||
* 参数说明: const UINT16 esbId, 紧急关闭按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* 0x55: 未故障
|
||||
* 0xaa: 故障
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
UINT8 GetEsbCutErrFlag(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
UINT8 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (bufIndex < ESB_SUM_MAX)
|
||||
{
|
||||
reVal = EsbDataStru[bufIndex].EsbCutErrorFlag;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*数组下标不合法,不执行状态更新*/
|
||||
}
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急停车按钮采集继电器落下状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* const UINT8 cRelayDownState 继电器落下状态
|
||||
* 返回值:无
|
||||
* Created By LQ 2025.04.01
|
||||
*/
|
||||
void SetEsbRelayDownState(const UINT16 esbId, const UINT8 cRelayDownState)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((ESB_RELAY_ERROR_DOWN_NO == cRelayDownState) || (ESB_RELAY_ERROR_DOWN_YES == cRelayDownState))
|
||||
{
|
||||
EsbDataStru[bufIndex].EsbRelayDownState = cRelayDownState;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*设置状态不合法,不进项状态更新*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*数组下标不合法,不执行状态更新*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取紧急停车按钮采集继电器落下状态
|
||||
* 参数说明: const UINT16 esbId, 紧急停车按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* 0x55: 正常落下
|
||||
* 0xaa: 通信异常落下
|
||||
* Created By LQ 2025.04.01
|
||||
*/
|
||||
UINT8 GetEsbRelayDownState(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
UINT8 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbDataStru[bufIndex].EsbRelayDownState;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*数组下标不合法,不执行状态更新*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置全线区段CESB封锁全局变量状态
|
||||
* @param const UINT8 chState 全线区段CESB封锁状态
|
||||
* @return 无
|
||||
* @note 当输入参数不合法时,设置全线区段CESB封锁
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void SetAllSecCesbState(const UINT8 chState)
|
||||
{
|
||||
if (CESB_STATE_VALID_NO == chState)
|
||||
{
|
||||
g_CesbFlockState = chState;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_CesbFlockState = CESB_STATE_VALID_YES;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取全线区段CESB封锁全局变量状态
|
||||
* @param 无
|
||||
* @return CESB_STATE_VALID_NO:未全线CESB封锁;CESB_STATE_VALID_YES :全线CESB封锁
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
UINT8 GetAllSecCesbState(void)
|
||||
{
|
||||
return g_CesbFlockState;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 全线CEsb封锁取消主处理函数
|
||||
* @param 无
|
||||
* @return 无
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void CancleCesbFlockCmdProc(void)
|
||||
{
|
||||
AtsCESBCancleMsgStru * strMsgFst = NULL;
|
||||
AtsCESBCancleMsgStru * strMsgSnd = NULL;
|
||||
|
||||
/*以下消息获取不会返回NULL*/
|
||||
strMsgFst = GetAtsCesbMsgFst();
|
||||
strMsgSnd = GetAtsCesbMsgSnd();
|
||||
|
||||
if ((strMsgFst->chFlag != FLAG_SET) && (strMsgSnd->chFlag != FLAG_SET))
|
||||
{
|
||||
; /* 没有消息,什么也不做 */
|
||||
}
|
||||
else if ((strMsgFst->chFlag == FLAG_SET) && (strMsgSnd->chFlag != FLAG_SET))
|
||||
{/* 一次消息 */
|
||||
CancelCesbFlockAtsCmdFst();
|
||||
}
|
||||
else
|
||||
{/* 二次消息 */
|
||||
CancelCesbFlockAtsCmdSnd();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 全线CESB首次命令处理函数
|
||||
* @param 无
|
||||
* @return 无
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void CancelCesbFlockAtsCmdFst(void)
|
||||
{
|
||||
AtsCESBCancleMsgStru * strMsgFst = NULL;
|
||||
AtsMsgCfmStru * strCfmFst = NULL;
|
||||
UINT32 dwCycle = 0u;
|
||||
UINT8 chLocalId = 0u;
|
||||
UINT8 szCrcTmp[1024] = { 0u };
|
||||
UINT32 ii = 0u;
|
||||
UINT8 chFunRtn = CI_TIME_OUT;
|
||||
UINT8 chState = 0U; /*全线区段CESB封锁状态*/
|
||||
UINT16 wCesbRelayId = 0u;/*CESB继电器*/
|
||||
UINT8 chCesbState = 0U;/*CESB激活状态*/
|
||||
UINT16 wCesbCutRelayId = 0u;/*CESB旁路继电器*/
|
||||
UINT8 chCesbCutState = 0U;/*CESB旁路状态*/
|
||||
UINT8 localCiType = 0U;/*联锁类型*/
|
||||
chLocalId = GetSystemParaLocalCiId();
|
||||
dwCycle = Get2oo2CurCycleNum();
|
||||
/*以下消息获取不会返回NULL*/
|
||||
strMsgFst = GetAtsCesbMsgFst();
|
||||
strCfmFst = GetAtsCesbCfmFst();
|
||||
chState = GetAllSecCesbState();
|
||||
if (strMsgFst->dwCycle == dwCycle)
|
||||
{
|
||||
strCfmFst->chFlag = FLAG_SET;
|
||||
strCfmFst->chTiocId = chLocalId;
|
||||
strCfmFst->chStation = strMsgFst->chStation;
|
||||
strCfmFst->wIndex = strMsgFst->wIndex;
|
||||
strCfmFst->dwTime = dwCycle;
|
||||
|
||||
/* 取消全线区段CESB封锁 */
|
||||
if (CESB_STATE_VALID_NO == chState)
|
||||
{/* 当前未设置 */
|
||||
strCfmFst->chOpStatus = CONFIRM_CANCLE_CESB_FST_UNSET;
|
||||
}
|
||||
else
|
||||
{
|
||||
localCiType = GetLocalCiType();/*获取联锁类型*/
|
||||
if (CI_TYPE_SCX == localCiType)
|
||||
{
|
||||
/*获取试车线旁路及激活命令状态*/
|
||||
chCesbState = GetScxCesbCmdState();
|
||||
chCesbCutState = GetScxCesbCutCmdState();
|
||||
/*旁路或未激活*/
|
||||
if ((CESB_STATE_VALID_NO == chCesbState) || (ESB_CUT_YES == chCesbCutState))
|
||||
{
|
||||
strCfmFst->chOpStatus = CONFIRM_CANCLE_CESB_FST_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
strCfmFst->chOpStatus = CONFIRM_CANCLE_CESB_RELAY_ACTIVE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wCesbRelayId = GetCesbRelayId();
|
||||
chCesbState = GetRelayCollState(wCesbRelayId);
|
||||
wCesbCutRelayId = GetCesbCutRelayId();
|
||||
chCesbCutState = GetRelayCollState(wCesbCutRelayId);
|
||||
if ((RELAY_STATE_UP == chCesbCutState) || (RELAY_STATE_UP == chCesbState))
|
||||
{
|
||||
strCfmFst->chOpStatus = CONFIRM_CANCLE_CESB_FST_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
strCfmFst->chOpStatus = CONFIRM_CANCLE_CESB_RELAY_ACTIVE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
szCrcTmp[ii] = strMsgFst->chAtsId;
|
||||
ii++;
|
||||
szCrcTmp[ii] = strMsgFst->chStation;
|
||||
ii++;
|
||||
ShortToChar(strMsgFst->wIndex, &szCrcTmp[ii]);
|
||||
ii += 2U;
|
||||
LongToChar(strMsgFst->dwTime, &szCrcTmp[ii]);
|
||||
ii += 4u;
|
||||
strCfmFst->dwCrc32 = Tioc_CommonCrc32(szCrcTmp, ii); /* ATS编号、车站编号、操作站编号、下发时间、命令类型计算CRC */
|
||||
|
||||
if (CONFIRM_CANCLE_CESB_FST_SUCCESS != strCfmFst->chOpStatus)
|
||||
{
|
||||
ClearAtsCesbMsgFirst(); /*处理不成功,需清除一次命令 */
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{/* 接收到ATS一次消息非本周期,超时判断 */
|
||||
chFunRtn = SystemOverTimeCheck(strMsgFst->dwCycle, CONFIRM_TIMEOUT_CC);
|
||||
if (CI_TIME_OUT == chFunRtn)
|
||||
{
|
||||
ClearAtsCesbMsgFirst();
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 取消CESB封锁二次命令处理函数
|
||||
* @param 无
|
||||
* @return 无
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void CancelCesbFlockAtsCmdSnd(void)
|
||||
{
|
||||
AtsCESBCancleMsgStru * strMsgFst = NULL;
|
||||
AtsCESBCancleMsgStru * strMsgSnd = NULL;
|
||||
AtsMsgCfmStru * strCfmFst = NULL;
|
||||
AtsMsgCfmStru * strCfmSnd = NULL;
|
||||
UINT32 dwCycle = 0u;
|
||||
UINT8 chLocalId = 0u;
|
||||
UINT8 chFlag = FLAG_UNSET;
|
||||
UINT8 szCrcTmp[1024] = { 0u };
|
||||
UINT32 ii = 0u;
|
||||
UINT32 dwCrc = 0u;
|
||||
UINT16 wCesbRelayId = 0u;/*CESB继电器*/
|
||||
UINT8 chCesbState = 0U;/*CESB激活状态*/
|
||||
UINT16 wCesbCutRelayId = 0u;/*CESB旁路继电器*/
|
||||
UINT8 chCesbCutState = 0U;/*CESB旁路状态*/
|
||||
UINT8 localCiType = 0U;/*联锁类型*/
|
||||
chLocalId = GetSystemParaLocalCiId();
|
||||
dwCycle = Get2oo2CurCycleNum();
|
||||
strMsgFst = GetAtsCesbMsgFst();
|
||||
strMsgSnd = GetAtsCesbMsgSnd();
|
||||
strCfmFst = GetAtsCesbCfmFst();
|
||||
strCfmSnd = GetAtsCesbCfmSnd();
|
||||
|
||||
if ((NULL != strMsgFst)
|
||||
&& (NULL != strMsgSnd)
|
||||
&& (NULL != strCfmFst)
|
||||
&& (NULL != strCfmSnd))
|
||||
{
|
||||
if (strMsgSnd->dwCycle == dwCycle)
|
||||
{
|
||||
strCfmSnd->chFlag = FLAG_SET;
|
||||
strCfmSnd->chTiocId = chLocalId;
|
||||
strCfmSnd->chStation = strMsgSnd->chStation;
|
||||
strCfmSnd->wIndex = strMsgSnd->wIndex;
|
||||
strCfmSnd->dwTime = dwCycle;
|
||||
|
||||
if (FLAG_SET != strMsgFst->chFlag)
|
||||
{
|
||||
strCfmSnd->chOpStatus = CONFIRM_CANCLE_CESB_SND_FIRST; /* 一次命令未执行,返回未执行首次取消 */
|
||||
chFlag = FLAG_SET;
|
||||
}
|
||||
else if ((strMsgSnd->chAtsId != strMsgFst->chAtsId)
|
||||
|| (strMsgSnd->chStation != strMsgFst->chStation)
|
||||
|| (strMsgSnd->wIndex != strMsgFst->wIndex))
|
||||
{
|
||||
strCfmSnd->chOpStatus = CONFIRM_CANCLE_CESB_SND_UNKNOWN; /* ATS一二次命令帧头输入不一致,返回未知 */
|
||||
chFlag = FLAG_SET;
|
||||
}
|
||||
else
|
||||
{
|
||||
localCiType = GetLocalCiType();/*获取联锁类型*/
|
||||
if (CI_TYPE_SCX == localCiType)
|
||||
{
|
||||
/*获取试车线旁路及激活命令状态*/
|
||||
chCesbState = GetScxCesbCmdState();
|
||||
chCesbCutState = GetScxCesbCutCmdState();
|
||||
/*旁路或未激活成功*/
|
||||
if ((CESB_STATE_VALID_YES == chCesbState) && (ESB_CUT_NO == chCesbCutState))
|
||||
{
|
||||
strCfmSnd->chOpStatus = CONFIRM_CANCLE_CESB_RELAY_ACTIVE; /* 未旁路且CESB仍然有效*/
|
||||
chFlag = FLAG_SET;
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*正线看继电器状态*/
|
||||
wCesbRelayId = GetCesbRelayId();
|
||||
chCesbState = GetRelayCollState(wCesbRelayId);
|
||||
wCesbCutRelayId = GetCesbCutRelayId();
|
||||
chCesbCutState = GetRelayCollState(wCesbCutRelayId);
|
||||
if ((RELAY_STATE_UP != chCesbCutState) && (RELAY_STATE_UP != chCesbState))
|
||||
{
|
||||
strCfmSnd->chOpStatus = CONFIRM_CANCLE_CESB_RELAY_ACTIVE; /* 未旁路且CESB仍然有效*/
|
||||
chFlag = FLAG_SET;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (FLAG_UNSET == chFlag)
|
||||
{
|
||||
szCrcTmp[ii] = strMsgSnd->chTiocId;
|
||||
ii++;
|
||||
LongToChar(strCfmFst->dwTime, &szCrcTmp[ii]);
|
||||
ii += 4u;
|
||||
dwCrc = Tioc_CommonCrc32(szCrcTmp, ii);
|
||||
|
||||
if (dwCrc != strMsgSnd->dwCrc32)
|
||||
{
|
||||
strCfmSnd->chOpStatus = CONFIRM_CANCLE_CESB_SND_CHECKFAIL; /* 计算的CRC32与ATS二次消息CRC32不一致 */
|
||||
chFlag = FLAG_SET;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
ii = 0u;
|
||||
szCrcTmp[ii++] = strMsgSnd->chAtsId;
|
||||
szCrcTmp[ii++] = strMsgSnd->chStation;
|
||||
ShortToChar(strMsgSnd->wIndex, &szCrcTmp[ii]);
|
||||
ii += 2U;
|
||||
LongToChar(strMsgFst->dwTime, &szCrcTmp[ii]);
|
||||
ii += 4u;
|
||||
LongToChar(strMsgSnd->dwTime, &szCrcTmp[ii]);
|
||||
ii += 4u;
|
||||
strCfmSnd->dwCrc32 = Tioc_CommonCrc32(szCrcTmp, ii);
|
||||
if (FLAG_UNSET == chFlag)
|
||||
{
|
||||
strCfmSnd->chOpStatus = CONFIRM_CANCLE_CESB_SND_SUCCESS; /* 检查通过,反馈确认成功 */
|
||||
SetAllSecCesbState(CESB_STATE_VALID_NO); /*设置CESB封锁无效*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /** 非本周期消息,不处理 */
|
||||
}
|
||||
ClearAtsCesbMsgFirst();
|
||||
ClearAtsCesbMsgSecond();
|
||||
}
|
||||
else
|
||||
{
|
||||
; /**不可能分支 不处理 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取试车线CESB命令设置状态
|
||||
* @param 无
|
||||
* @return CESB_STATE_VALID_NO 试车线CESB未激活;CESB_STATE_VALID_YES :试车线CESB激活
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
UINT8 GetScxCesbCmdState(void)
|
||||
{
|
||||
return g_ScxCesbData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置试车线CESB命令状态
|
||||
* @input CESB_STATE_VALID_NO 试车线CESB未激活;CESB_STATE_VALID_YES :试车线CESB激活
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
void SetScxCesbCmdState(UINT8 chCesbCmd)
|
||||
{
|
||||
if ((CESB_STATE_VALID_NO == chCesbCmd)||(CESB_STATE_VALID_YES == chCesbCmd))
|
||||
{
|
||||
g_ScxCesbData = chCesbCmd;
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取全线区段试车线CESB旁路命令设置状态
|
||||
* @param 无
|
||||
* @return ESB_CUT_NO:试车线未CESB旁路;ESB_CUT_YES 试车线CESB旁路有效
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
UINT8 GetScxCesbCutCmdState(void)
|
||||
{
|
||||
return g_ScxCesbCutData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置试车线CESB旁路命令状态
|
||||
* @input ESB_CUT_NO: 试车线未CESB旁路;ESB_CUT_YES : 试车线CESB旁路
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
void SetScxCesbCutCmdState(UINT8 chCesbCmd)
|
||||
{
|
||||
if ((ESB_CUT_NO == chCesbCmd) || (ESB_CUT_YES == chCesbCmd))
|
||||
{
|
||||
g_ScxCesbCutData = chCesbCmd;
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#include "ESBConfigDataManage.h"
|
||||
#include "CommonTypes.h"
|
||||
#include "../System/CiSystemDefine.h"
|
||||
#include "../Section/SectionDefine.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -39,27 +38,17 @@ typedef struct S_EsbDataStruct
|
||||
UINT8 EssSteadyState; /*ESS稳灯状态(用于虚拟联锁向ATS反馈)--0x55 需要设置稳灯;0xaa不需要设置稳灯*/
|
||||
UINT8 EssFlashState; /*ESS闪灯状态(用于虚拟联锁向ATS反馈)--0x55 需要设置闪灯;0xaa不需要设置闪灯*/
|
||||
UINT8 EsbErrorFlag; /*自复式紧急停车按钮故障标志,0x55未故障,0xaa故障*/
|
||||
UINT8 EsbRelayDownState; /*紧急关闭按钮采集继电器落下状态,0x55:正常采集落下,0xaa:通信异常落下*/
|
||||
UINT8 CancelEsbErrorFlag; /*自复式取消紧急停车按钮故障标志,0x55未故障,0xaa故障*/
|
||||
UINT32 EsbPressCycNum; /*紧急关闭按钮按下周期*/
|
||||
UINT32 CancelEsbPressCycNum; /*取消紧急关闭按钮正常按下周期*/
|
||||
UINT32 CancelEsbErrTriggerPressCycNum; /*取消紧急关闭按钮误触发按下周期*/
|
||||
UINT8 CancelEsbValidFlag; /*取消紧急关闭按钮有效标志,0x55无效,0xaa有效*/
|
||||
UINT8 CancelEsbRelayDownState; /*取消紧急关闭按钮采集继电器落下状态,0x55:正常采集落下,0xaa:通信异常落下*/
|
||||
UINT32 EsbCutPressCycNum; /*紧急关闭旁路按钮正常按下周期*/
|
||||
UINT32 EsbCutErrTriggerPressCycNum; /*紧急关闭旁路按钮误触发按下周期*/
|
||||
UINT8 EsbCutErrorFlag; /*紧急关闭旁路按钮故障标志,0x55-未故障,0xaa-故障*/
|
||||
UINT8 EsbCutRelayDownState; /*紧急关闭旁路按钮采集继电器落下状态,0x55-正常采集落下,0xaa-通信异常落下*/
|
||||
} EsbDataStruct;
|
||||
|
||||
|
||||
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern EsbDataStruct EsbDataStru[ESB_SUM_MAX]; /*定义ESB数据结构体*/
|
||||
extern UINT8 g_CesbFlockState ; /* 全线区段CESB封锁状态 */
|
||||
extern UINT8 g_ScxCesbData;/*试车线CESB状态*/
|
||||
extern UINT8 g_ScxCesbCutData;/*试车线CESB旁路状态*/
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ESB数据
|
||||
@@ -321,169 +310,6 @@ void SetCancelEsbRelayDownState(const UINT16 esbId, const UINT8 cRelayDownState)
|
||||
*/
|
||||
UINT8 GetCancelEsbRelayDownState(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急关闭旁路按钮按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* const UINT32 startCycNum 周期号
|
||||
* 输出参数:无
|
||||
* 返 回 值:无
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
void SetEsbCutPressCycNum(const UINT16 esbId, const UINT32 startCycNum);
|
||||
|
||||
/*
|
||||
* 功能描述:获取紧急关闭旁路按钮按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* 输出参数:无
|
||||
* 返 回 值:紧急关闭旁路按钮按下周期
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
UINT32 GetEsbCutPressCycNum(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急关闭旁路按钮误触发按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* const UINT32 startCycNum 周期号
|
||||
* 输出参数:无
|
||||
* 返 回 值:无
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
void SetEsbCutErrTrigPressCycNum(const UINT16 esbId, const UINT32 startCycNum);
|
||||
|
||||
/*
|
||||
* 功能描述:获取紧急关闭旁路按钮误触发按下周期
|
||||
* 输入参数:const UINT16 esbId Esb ID
|
||||
* 输出参数:无
|
||||
* 返 回 值:紧急关闭旁路按钮误触发按下周期
|
||||
* Cretaed By LQ 2025.03.28
|
||||
*/
|
||||
UINT32 GetEsbCutErrTrigPressCycNum(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急关闭旁路按钮采集继电器落下状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* const UINT8 cRelayDownState 继电器落下状态
|
||||
* 返回值:无
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
void SetEsbCutRelayDownState(const UINT16 esbId, const UINT8 cRelayDownState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取紧急关闭旁路按钮采集继电器落下状态
|
||||
* 参数说明: const UINT16 esbId 紧急停车按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* 0x55: 正常落下
|
||||
* 0xaa: 通信异常落下
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
UINT8 GetEsbCutRelayDownState(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急关闭旁路按钮故障标志
|
||||
* 参数说明:const UINT16 esbId, 紧急关闭按钮ID
|
||||
* const UINT8 cEsbCutErrFlag 紧急关闭旁路按钮故障标志
|
||||
* 返回值:无
|
||||
*/
|
||||
void SetEsbCutErrFlag(const UINT16 esbId, const UINT8 cEsbCutErrFlag);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID紧急关闭旁路按钮故障标志
|
||||
* 参数说明: const UINT16 esbId, 紧急关闭按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 紧停旁路按钮故障标志
|
||||
*/
|
||||
UINT8 GetEsbCutErrFlag(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置紧急停车按钮采集继电器落下状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* const UINT8 cRelayDownState 继电器落下状态
|
||||
* 返回值:无
|
||||
* Created By LQ 2025.04.01
|
||||
*/
|
||||
void SetEsbRelayDownState(const UINT16 esbId, const UINT8 cRelayDownState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取紧急停车按钮采集继电器落下状态
|
||||
* 参数说明: const UINT16 esbId, 紧急停车按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* 0x55: 正常落下
|
||||
* 0xaa: 通信异常落下
|
||||
* Created By LQ 2025.04.01
|
||||
*/
|
||||
UINT8 GetEsbRelayDownState(const UINT16 esbId);
|
||||
|
||||
/**
|
||||
* @brief 设置全线区段CESB封锁全局变量状态
|
||||
* @param const UINT8 chState 全线区段CESB封锁状态
|
||||
* @return 无
|
||||
* @note 当输入参数不合法时,设置全线区段CESB封锁
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void SetAllSecCesbState(const UINT8 chState);
|
||||
|
||||
/**
|
||||
* @brief 获取全线区段CESB封锁全局变量状态
|
||||
* @param 无
|
||||
* @return CESB_STATE_VALID_NO:未全线CESB封锁;CESB_STATE_VALID_YES :全线CESB封锁
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
UINT8 GetAllSecCesbState(void);
|
||||
|
||||
/**
|
||||
* @brief 全线CEsb封锁取消主处理函数
|
||||
* @param 无
|
||||
* @return 无
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void CancleCesbFlockCmdProc(void);
|
||||
|
||||
/**
|
||||
* @brief 全线CESB首次命令处理函数
|
||||
* @param 无
|
||||
* @return 无
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void CancelCesbFlockAtsCmdFst(void);
|
||||
|
||||
/**
|
||||
* @brief 取消CESB封锁二次命令处理函数
|
||||
* @param 无
|
||||
* @return 无
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void CancelCesbFlockAtsCmdSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 获取试车线CESB命令设置状态
|
||||
* @param 无
|
||||
* @return CESB_STATE_VALID_NO 试车线CESB未激活;CESB_STATE_VALID_YES :试车线CESB激活
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
UINT8 GetScxCesbCmdState(void);
|
||||
|
||||
/**
|
||||
* @brief 设置试车线CESB命令状态
|
||||
* @input CESB_STATE_VALID_NO 试车线CESB未激活;CESB_STATE_VALID_YES :试车线CESB激活
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
void SetScxCesbCmdState(UINT8 chCesbCmd);
|
||||
|
||||
/**
|
||||
* @brief 获取全线区段试车线CESB旁路命令设置状态
|
||||
* @param 无
|
||||
* @return ESB_CUT_NO:试车线未CESB旁路;ESB_CUT_YES 试车线CESB旁路有效
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
UINT8 GetScxCesbCutCmdState(void);
|
||||
|
||||
/**
|
||||
* @brief 设置试车线CESB旁路命令状态
|
||||
* @input ESB_CUT_NO: 试车线未CESB旁路;ESB_CUT_YES : 试车线CESB旁路
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
void SetScxCesbCutCmdState(UINT8 chCesbCmd);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
#define ESB_STATE_VALID_NO ((UINT8)0x55) /*紧急无效*/
|
||||
#define ESB_STATE_VALID_YES ((UINT8)0xaa) /*紧急有效*/
|
||||
|
||||
/*全线紧急状态*/
|
||||
#define CESB_STATE_VALID_NO ((UINT8)0xAA) /*CESB紧急无效*/
|
||||
#define CESB_STATE_VALID_YES ((UINT8)0x55) /*CESB紧急有效*/
|
||||
|
||||
/*紧急按钮旁路状态*/
|
||||
#define ESB_CUT_NO ((UINT8)0x55) /* 未旁路 */
|
||||
#define ESB_CUT_YES ((UINT8)0xaa) /* 旁路 */
|
||||
|
||||
@@ -1161,7 +1161,7 @@ void elm_CTEnvelopeTrack(void)
|
||||
}
|
||||
else if ((CI_SUCCESS == funRet) && (1u == relEnvelopeCnt))
|
||||
{
|
||||
/* 只有CT包络才涉及B轨UT可追踪功能*/
|
||||
/* 只有CT包络才设计B轨UT可追踪功能*/
|
||||
elm_DealNoCGFollowUt(relEnvelopeID[0u], trainID[cycle]);
|
||||
|
||||
/** 维护日志--调试级别*/
|
||||
@@ -1277,9 +1277,16 @@ void elm_DealNoCGFollowUt(UINT16 wEnvelopeID,UINT16 wTrainId)
|
||||
const EnvelopeStruct* pEnvelop = NULL;
|
||||
UINT8 chNoCGFollowUtSwitch = 0U;
|
||||
ELM_TrainSafeLocStruct safeLoc = { 0U }; /*列车安全位置*/
|
||||
UINT8 chLinkRelPhySecAGorBGAttr = 0U;/*LINK关联物理区段ABD属性*/
|
||||
UINT8 chEnvelopLinkABGAttr = 0U;/*包络相关LINK关联物理区段ABG属性*/
|
||||
UINT16 wLinkRelatedPhySec = 0U;/*LINK关联物理区段*/
|
||||
UINT8 chPhyLjkFlag = 0U;/*列检库属性*/
|
||||
UINT16 wTrainEnterLjkLinkId = 0U;/*列车进入列检库LINK ID*/
|
||||
UINT32 dwCycNum = 0U;/*当前周期号*/
|
||||
UINT16 wTempTrainID = 0U;/*临时记录列车ID*/
|
||||
UINT8 chTempVirHeadScreenFlag = 0U;/*临时虚拟前筛标志*/
|
||||
UINT8 chTempVirTailScreenFlag = 0U;/*临时虚拟后筛标志*/
|
||||
UINT8 chAgLinkExistRelCgFlag = 0U;/*AG是否存在CG标志*/
|
||||
|
||||
/** 获取列车包络 */
|
||||
pEnvelop = elm_GetEnvelopeInfoPtr(wEnvelopeID);
|
||||
@@ -1316,10 +1323,58 @@ void elm_DealNoCGFollowUt(UINT16 wEnvelopeID,UINT16 wTrainId)
|
||||
{
|
||||
if (0U == errorCode)
|
||||
{
|
||||
/*处理AG虚拟筛选标志*/
|
||||
elm_DealAgVirScreenFlag(wEnvelopeID, wTrainId);
|
||||
/*处理BG虚拟筛选标志*/
|
||||
elm_DealBgVirScreenFlag(wEnvelopeID, wTrainId);
|
||||
chLinkRelPhySecAGorBGAttr = GetLinkRelPhySecAGorBGAttr(safeLoc.endPos.Lnk);
|
||||
chEnvelopLinkABGAttr = GetLinkRelPhySecAGorBGAttr(pEnvelop->endPos.Lnk);
|
||||
wLinkRelatedPhySec = GetLinkRelatedPhySec(pEnvelop->endPos.Lnk);
|
||||
chPhyLjkFlag = GetPhySecLjkFlag(wLinkRelatedPhySec);
|
||||
chAgLinkExistRelCgFlag = GetAgLinkExistRelCgFlag(safeLoc.endPos.Lnk);
|
||||
|
||||
/*包络刷新在后,所以此时虽然安全位置进入AG,但包络可能还没进入*/
|
||||
if ((LINK_REL_PHYSEC_AG == chLinkRelPhySecAGorBGAttr) && (0U == pEnvelop->headTrainID)
|
||||
&& (LINK_REL_PHYSEC_DEFAULT == chEnvelopLinkABGAttr) && (PHYSICAL_SECTION_LJK_NO == chPhyLjkFlag)
|
||||
&& (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
/*列车安全车头驶入AG且当前驶入前没有前端可疑且不是从BG过来的车且不存在CG便设置前筛通过标志有效*/
|
||||
SetTrainVirHeadScreenPassFlag(wTrainId,TRAIN_VIR_SCREEN_PASS_FLAG_VALID);
|
||||
SetTrainEnterLjkLinkId(wTrainId, safeLoc.endPos.Lnk);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不设置对应标志,安全位置和包络均进入AG维持原来的标志*/
|
||||
}
|
||||
|
||||
chLinkRelPhySecAGorBGAttr = GetLinkRelPhySecAGorBGAttr(safeLoc.startPos.Lnk);
|
||||
chEnvelopLinkABGAttr = GetLinkRelPhySecAGorBGAttr(pEnvelop->startPos.Lnk);
|
||||
wLinkRelatedPhySec = GetLinkRelatedPhySec(pEnvelop->startPos.Lnk);
|
||||
chPhyLjkFlag = GetPhySecLjkFlag(wLinkRelatedPhySec);
|
||||
chAgLinkExistRelCgFlag = GetAgLinkExistRelCgFlag(safeLoc.startPos.Lnk);
|
||||
|
||||
/*包络刷新在后,所以此时虽然安全位置进入AG,但包络可能还没进入*/
|
||||
if ((LINK_REL_PHYSEC_AG == chLinkRelPhySecAGorBGAttr) && (0U == pEnvelop->tailTrainID)
|
||||
&& (LINK_REL_PHYSEC_DEFAULT == chEnvelopLinkABGAttr) && (PHYSICAL_SECTION_LJK_NO == chPhyLjkFlag)
|
||||
&& (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
/*列车安全车尾驶入AG且当前驶入前没有后端可疑且不是从BG过来的车且不存在CG便设置后筛通过标志有效*/
|
||||
SetTrainVirTailScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_VALID);
|
||||
SetTrainEnterLjkLinkId(wTrainId, safeLoc.startPos.Lnk);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不设置对应标志,安全位置和包络均进入AG维持原来的标志*/
|
||||
}
|
||||
|
||||
wTrainEnterLjkLinkId = GetTrainEnterLjkLinkId(wTrainId);
|
||||
/*列车包络完全进入A轨后,容忍占用到空闲时间,D轨出现计轴区段(道岔位置连通在D轨)采集占用,设置前筛通过标识、后筛通过标识无效*/
|
||||
if ((LINK_REL_PHYSEC_AG == chLinkRelPhySecAGorBGAttr) && (safeLoc.startPos.Lnk == safeLoc.endPos.Lnk)
|
||||
&& (safeLoc.startPos.Lnk == wTrainEnterLjkLinkId) && (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
dwCycNum = Get2oo2CurCycleNum();
|
||||
SetTrainFullEnterLjkCycNum(wTrainId, dwCycNum);
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1517,182 +1572,3 @@ void elm_VirScreenPassMonitor(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 处理AG虚拟筛选标志
|
||||
* @param[in] UINT16 envelopeID 列车包络
|
||||
* @param[in] UINT16 wTrainId 列车ID
|
||||
* @return 无
|
||||
* @note by cgh 20250805
|
||||
*/
|
||||
void elm_DealAgVirScreenFlag(UINT16 wEnvelopeID, UINT16 wTrainId)
|
||||
{
|
||||
UINT8 funRet = CI_ERROR;
|
||||
const EnvelopeStruct* pEnvelop = NULL;
|
||||
ELM_TrainSafeLocStruct safeLoc = { 0U }; /*列车安全位置*/
|
||||
UINT8 chLinkRelPhySecAGorBGAttr = 0U;/*LINK关联物理区段ABG属性*/
|
||||
UINT8 chEnvelopLinkABGAttr = 0U;/*包络相关LINK关联物理区段ABG属性*/
|
||||
UINT16 wLinkRelatedPhySec = 0U;/*LINK关联物理区段*/
|
||||
UINT8 chPhyLjkFlag = 0U;/*列检库属性*/
|
||||
UINT16 wTrainEnterLjkLinkId = 0U;/*列车进入列检库LINK ID*/
|
||||
UINT32 dwCycNum = 0U;/*当前周期号*/
|
||||
UINT8 chAgLinkExistRelCgFlag = 0U;/*AG是否存在CG标志*/
|
||||
|
||||
/** 获取列车包络 */
|
||||
pEnvelop = elm_GetEnvelopeInfoPtr(wEnvelopeID);
|
||||
|
||||
/** 入口参数校验 */
|
||||
if ((NULL != pEnvelop) && (0U < wTrainId) && (LINE_MAX_TRAIN > wTrainId))
|
||||
{
|
||||
funRet = elm_PrepareTrainSafeLoc(wTrainId, &safeLoc);
|
||||
|
||||
if (CI_SUCCESS == funRet)
|
||||
{
|
||||
chLinkRelPhySecAGorBGAttr = GetLinkRelPhySecAGorBGAttr(safeLoc.endPos.Lnk);
|
||||
chEnvelopLinkABGAttr = GetLinkRelPhySecAGorBGAttr(pEnvelop->endPos.Lnk);
|
||||
wLinkRelatedPhySec = GetLinkRelatedPhySec(pEnvelop->endPos.Lnk);
|
||||
chPhyLjkFlag = GetPhySecLjkFlag(wLinkRelatedPhySec);
|
||||
chAgLinkExistRelCgFlag = GetAgLinkExistRelCgFlag(safeLoc.endPos.Lnk);
|
||||
|
||||
/*包络刷新在后,所以此时虽然安全位置进入AG,但包络可能还没进入*/
|
||||
if ((LINK_REL_PHYSEC_AG == chLinkRelPhySecAGorBGAttr) && (0U == pEnvelop->headTrainID)
|
||||
&& (LINK_REL_PHYSEC_DEFAULT == chEnvelopLinkABGAttr) && (PHYSICAL_SECTION_LJK_NO == chPhyLjkFlag)
|
||||
&& (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
/*列车安全车头驶入AG且当前驶入前没有前端可疑且不是从BG过来的车且不存在CG便设置前筛通过标志有效*/
|
||||
SetTrainVirHeadScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_VALID);
|
||||
SetTrainEnterLjkLinkId(wTrainId, safeLoc.endPos.Lnk);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不设置对应标志,安全位置和包络均进入AG维持原来的标志*/
|
||||
}
|
||||
|
||||
chLinkRelPhySecAGorBGAttr = GetLinkRelPhySecAGorBGAttr(safeLoc.startPos.Lnk);
|
||||
chEnvelopLinkABGAttr = GetLinkRelPhySecAGorBGAttr(pEnvelop->startPos.Lnk);
|
||||
wLinkRelatedPhySec = GetLinkRelatedPhySec(pEnvelop->startPos.Lnk);
|
||||
chPhyLjkFlag = GetPhySecLjkFlag(wLinkRelatedPhySec);
|
||||
chAgLinkExistRelCgFlag = GetAgLinkExistRelCgFlag(safeLoc.startPos.Lnk);
|
||||
|
||||
/*包络刷新在后,所以此时虽然安全位置进入AG,但包络可能还没进入*/
|
||||
if ((LINK_REL_PHYSEC_AG == chLinkRelPhySecAGorBGAttr) && (0U == pEnvelop->tailTrainID)
|
||||
&& (LINK_REL_PHYSEC_DEFAULT == chEnvelopLinkABGAttr) && (PHYSICAL_SECTION_LJK_NO == chPhyLjkFlag)
|
||||
&& (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
/*列车安全车尾驶入AG且当前驶入前没有后端可疑且不是从BG过来的车且不存在CG便设置后筛通过标志有效*/
|
||||
SetTrainVirTailScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_VALID);
|
||||
SetTrainEnterLjkLinkId(wTrainId, safeLoc.startPos.Lnk);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不设置对应标志,安全位置和包络均进入AG维持原来的标志*/
|
||||
}
|
||||
|
||||
wTrainEnterLjkLinkId = GetTrainEnterLjkLinkId(wTrainId);
|
||||
/*列车包络完全进入A轨后,容忍占用到空闲时间,D轨出现计轴区段(道岔位置连通在D轨)采集占用,设置前筛通过标识、后筛通过标识无效*/
|
||||
if ((LINK_REL_PHYSEC_AG == chLinkRelPhySecAGorBGAttr) && (safeLoc.startPos.Lnk == safeLoc.endPos.Lnk)
|
||||
&& (safeLoc.startPos.Lnk == wTrainEnterLjkLinkId) && (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
dwCycNum = Get2oo2CurCycleNum();
|
||||
SetTrainFullEnterLjkCycNum(wTrainId, dwCycNum);
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetTrainVirHeadScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_INVALID);
|
||||
SetTrainVirTailScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_INVALID);
|
||||
SetTrainFullEnterLjkCycNum(wTrainId, 0U);
|
||||
SetTrainEnterLjkLinkId(wTrainId, 0U);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 处理BG虚拟筛选标志
|
||||
* @param[in] UINT16 envelopeID 列车包络
|
||||
* @param[in] UINT16 wTrainId 列车ID
|
||||
* @return 无
|
||||
* @note by cgh 20250805
|
||||
*/
|
||||
void elm_DealBgVirScreenFlag(UINT16 wEnvelopeID, UINT16 wTrainId)
|
||||
{
|
||||
UINT8 funRet = CI_ERROR;
|
||||
const EnvelopeStruct* pEnvelop = NULL;
|
||||
ELM_TrainSafeLocStruct safeLoc = { 0U }; /*列车安全位置*/
|
||||
UINT8 chLinkRelPhySecAGorBGAttr = 0U;/*LINK关联物理区段ABG属性*/
|
||||
UINT8 chEnvelopLinkABGAttr = 0U;/*包络相关LINK关联物理区段ABG属性*/
|
||||
UINT8 chAgLinkExistRelCgFlag = 0U;/*AG是否存在CG标志*/
|
||||
|
||||
/** 获取列车包络 */
|
||||
pEnvelop = elm_GetEnvelopeInfoPtr(wEnvelopeID);
|
||||
|
||||
/** 入口参数校验 */
|
||||
if ((NULL != pEnvelop) && (0U < wTrainId) && (LINE_MAX_TRAIN > wTrainId))
|
||||
{
|
||||
funRet = elm_PrepareTrainSafeLoc(wTrainId, &safeLoc);
|
||||
|
||||
if (CI_SUCCESS == funRet)
|
||||
{
|
||||
chLinkRelPhySecAGorBGAttr = GetLinkRelPhySecAGorBGAttr(safeLoc.endPos.Lnk);
|
||||
chEnvelopLinkABGAttr = GetLinkRelPhySecAGorBGAttr(pEnvelop->endPos.Lnk);
|
||||
chAgLinkExistRelCgFlag = GetAgLinkExistRelCgFlag(pEnvelop->endPos.Lnk);
|
||||
|
||||
/*包络刷新在后,所以此时虽然安全位置进入BG,但包络可能还没进入*/
|
||||
if ((LINK_REL_PHYSEC_BG == chLinkRelPhySecAGorBGAttr) && (0U == pEnvelop->headTrainID)
|
||||
&& (LINK_REL_PHYSEC_AG == chEnvelopLinkABGAttr) && (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
/*列车安全车头驶入BG且当前驶入前没有前端可疑且是从AG过来的车且不存在CG便设置前筛通过标志有效*/
|
||||
SetTrainVirHeadScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_INVALID);
|
||||
SetTrainVirTailScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_INVALID);
|
||||
SetTrainFullEnterLjkCycNum(wTrainId, 0U);
|
||||
SetTrainEnterLjkLinkId(wTrainId, 0U);
|
||||
/*先清除再设置,仅为了逻辑清晰一些*/
|
||||
SetTrainVirHeadScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_VALID);
|
||||
SetTrainEnterLjkLinkId(wTrainId, safeLoc.endPos.Lnk);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不设置对应标志,安全位置和包络均进入BG维持原来的标志*/
|
||||
}
|
||||
|
||||
chLinkRelPhySecAGorBGAttr = GetLinkRelPhySecAGorBGAttr(safeLoc.startPos.Lnk);
|
||||
chEnvelopLinkABGAttr = GetLinkRelPhySecAGorBGAttr(pEnvelop->startPos.Lnk);
|
||||
chAgLinkExistRelCgFlag = GetAgLinkExistRelCgFlag(pEnvelop->startPos.Lnk);
|
||||
|
||||
/*包络刷新在后,所以此时虽然安全位置进入BG,但包络可能还没进入*/
|
||||
if ((LINK_REL_PHYSEC_BG == chLinkRelPhySecAGorBGAttr) && (0U == pEnvelop->tailTrainID)
|
||||
&& (LINK_REL_PHYSEC_AG == chEnvelopLinkABGAttr) && (AGLINK_EXIST_REL_CG_NO == chAgLinkExistRelCgFlag))
|
||||
{
|
||||
/*列车安全车尾驶入BG且当前驶入前没有后端可疑且是从AG过来的车且不存在CG便设置后筛通过标志有效*/
|
||||
SetTrainFullEnterLjkCycNum(wTrainId, 0U);
|
||||
SetTrainEnterLjkLinkId(wTrainId, 0U);
|
||||
/*先清除再设置,仅为了逻辑清晰一些*/
|
||||
SetTrainVirTailScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_VALID);
|
||||
SetTrainEnterLjkLinkId(wTrainId, safeLoc.startPos.Lnk);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不设置对应标志,安全位置和包络均进入AG维持原来的标志*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetTrainVirHeadScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_INVALID);
|
||||
SetTrainVirTailScreenPassFlag(wTrainId, TRAIN_VIR_SCREEN_PASS_FLAG_INVALID);
|
||||
SetTrainFullEnterLjkCycNum(wTrainId, 0U);
|
||||
SetTrainEnterLjkLinkId(wTrainId, 0U);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -106,7 +106,7 @@ static UINT8 elm_UKTAdjacentSwProtect(void)
|
||||
nearTrainType = aam_SearchNearbyTrainType(pACIdbuff[cycleAc], EMAP_SAME_DIR, acSameCnt, acSameID);
|
||||
}
|
||||
|
||||
if ((AAM_BAD_NEAR == nearTrainType)|| (AAM_SLEEP_OCC == nearTrainType))
|
||||
if (AAM_BAD_NEAR == nearTrainType)
|
||||
{
|
||||
elm_PrepareClearSwPassTrainFlag(pACIdbuff[cycleAc]);
|
||||
ELM_LOG(ELM_LOG_FATAL,"info:Switch Zone AC%d Clear CT pass flag by PreAC UT.\n",pACIdbuff[cycleAc]);
|
||||
@@ -116,7 +116,7 @@ static UINT8 elm_UKTAdjacentSwProtect(void)
|
||||
/** 查询前方计轴接近车类型*/
|
||||
nearTrainType = aam_SearchNearbyTrainType(pACIdbuff[cycleAc],EMAP_CONVER_DIR,acConvertCnt,acConvertID);
|
||||
|
||||
if ((AAM_BAD_NEAR == nearTrainType) || (AAM_SLEEP_OCC == nearTrainType))
|
||||
if (AAM_BAD_NEAR == nearTrainType)
|
||||
{
|
||||
elm_PrepareClearSwPassTrainFlag(pACIdbuff[cycleAc]);
|
||||
ELM_LOG(ELM_LOG_FATAL,"info:Switch Zone AC%d Clear CT pass flag by backAC UT.\n",pACIdbuff[cycleAc]);
|
||||
@@ -1511,6 +1511,8 @@ void elm_MaintenanceInfo(void)
|
||||
outStringLength++;
|
||||
outString[outStringLength] = pAcAssertInfo->redunOverCanArb; /*冗余结束可判ARB标志*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = pAcAssertInfo->AxisCommBadArbFlag; /*计轴通信中断可判ARB标志*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = pAcAssertInfo->passTrainFlag; /*计轴区段好车通过标志*/
|
||||
outStringLength++;
|
||||
ShortToChar(pAcAssertInfo->passTrainID, &outString[outStringLength]); /*计轴区段好车通过的列车ID*/
|
||||
@@ -2034,8 +2036,6 @@ void elm_SafeProtectProcess(void)
|
||||
UINT8 workFlag = ELM_WORK_ERROR;
|
||||
UINT8 funRet = CI_ERROR;
|
||||
UINT32 errorCode = 0u;
|
||||
UINT8 localCiType = 0U;
|
||||
UINT8 ciTrainTestState = 0U;
|
||||
|
||||
/** 包络管理模块可正常处理标志位 */
|
||||
workFlag = elm_GetELMWorkFlag();
|
||||
@@ -2055,17 +2055,8 @@ void elm_SafeProtectProcess(void)
|
||||
funRet = elm_UTLosingProtect();
|
||||
ASSER_ERROR(CI_ERROR == funRet,errorCode,0x40000000u);
|
||||
|
||||
localCiType = GetLocalCiType();
|
||||
ciTrainTestState = GetCiTrainTestStatus();
|
||||
if ((CI_TYPE_SCX == localCiType) && ((CI_TRAIN_TEST_OFF == ciTrainTestState) || (CI_TRAIN_TEST_STOP == ciTrainTestState)))
|
||||
{
|
||||
ScxClearFlyProtectInfo(); /*试车线在未试车期间,不进行飞车宕机防护处理,同时清除之前的飞车信息,修复CT驶出试车线导致飞车宕机问题*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/** CT/UCT车飞车防护--宕机防护*/
|
||||
elm_FlyingProtect();
|
||||
}
|
||||
/** CT/UCT车飞车防护--宕机防护*/
|
||||
elm_FlyingProtect();
|
||||
|
||||
/** 本OC范围内的计轴映射表合法性校验 */
|
||||
funRet = elm_ACRelEnvelopeCheck();
|
||||
@@ -2604,7 +2595,6 @@ UINT8 elm_UCTEnvelopeLeaveAC(UINT8 flag,IN const EnvelopeStruct* pEnvelope,UINT1
|
||||
UINT16 relEnvelopeID[TRAIN_REL_ENVELOPE_SUM_MAX] = {0u}; /*列车关联的包络索引*/
|
||||
const EnvelopeStruct *pEnvelopeInfo = NULL;
|
||||
const WLTrainStatusInfoStruct* pTemp = NULL;
|
||||
UINT8 chTrainNvramPosFlag = 0U; /*列车NVRAM位置标识*/
|
||||
|
||||
/* 将本周期的的状态设置成上周期的状态 */
|
||||
for (cycle = 1u; cycle < LINE_MAX_TRAIN; cycle++)
|
||||
@@ -2650,19 +2640,10 @@ UINT8 elm_UCTEnvelopeLeaveAC(UINT8 flag,IN const EnvelopeStruct* pEnvelope,UINT1
|
||||
if ((NULL != pEnvelopeInfo) &&
|
||||
((TYPE_CT_ENVELOPE == pEnvelopeInfo->envelopeType) || (TYPE_UCT_ENVELOPE == pEnvelopeInfo->envelopeType)))
|
||||
{
|
||||
chTrainNvramPosFlag = GetTrainNvramPosFlag(cycle);
|
||||
headNeedScreen = LINE_MAX_TRAIN == pEnvelopeInfo->headTrainID ? NEED_SCREEN : UNNEED_SCREEN;
|
||||
tailNeedScreen = LINE_MAX_TRAIN == pEnvelopeInfo->tailTrainID ? NEED_SCREEN : UNNEED_SCREEN;
|
||||
|
||||
if (TRAIN_NVRAM_POS_FLAG_NO == chTrainNvramPosFlag)
|
||||
{
|
||||
headNeedScreen = LINE_MAX_TRAIN == pEnvelopeInfo->headTrainID ? NEED_SCREEN : UNNEED_SCREEN;
|
||||
tailNeedScreen = LINE_MAX_TRAIN == pEnvelopeInfo->tailTrainID ? NEED_SCREEN : UNNEED_SCREEN;
|
||||
|
||||
wls_SetTrainControlStatus(cycle, IN_CONTROL_STATUS, headNeedScreen, tailNeedScreen);
|
||||
}
|
||||
else
|
||||
{
|
||||
ELM_LOG(ELM_LOG_FATAL, " not Add In Control Train,Because UseNvram Pos\n");
|
||||
}
|
||||
wls_SetTrainControlStatus(cycle,IN_CONTROL_STATUS,headNeedScreen,tailNeedScreen);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2783,24 +2764,25 @@ UINT8 elm_UCTEnvelopeLeaveAC(UINT8 flag,IN const EnvelopeStruct* pEnvelope,UINT1
|
||||
* @return CI_ERROR 查询失败
|
||||
CI_SUCCESS 查询成功
|
||||
* @note
|
||||
* edit cgh 20250724 目前只用于RRM
|
||||
* by cgh 20240514 目前只用于RRM
|
||||
*/
|
||||
UINT8 elm_GetNearEnvelopRelSameTra(UINT16 envelopeId, OUT UINT16* preEnvelope, OUT UINT16* backEnvelope)
|
||||
{
|
||||
/*- 局部变量定义 */
|
||||
UINT8 ret = CI_ERROR;
|
||||
UINT8 funRet = CI_ERROR;
|
||||
UINT32 errorCode = 0U; /*错误码*/
|
||||
UINT32 errorCode = 0u; /*错误码*/
|
||||
const EnvelopeStruct* pEnvelop = NULL;
|
||||
UINT8 envelopeCnt = 0U; /* 包络数量 */
|
||||
UINT16 arEnvelopID[TRAIN_SUM_MAX_IN_OC] = { 0U }; /*包络ID数组*/
|
||||
UINT16 acCnt = 0U; /** 前方计轴数量*/
|
||||
UINT16 acID[AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH] = { 0U };
|
||||
UINT16 mergeACIndex = 0U;
|
||||
UINT8 envelopeCnt = 0u; /* 包络数量 */
|
||||
UINT16 arEnvelopID[TRAIN_SUM_MAX_IN_OC] = { 0u }; /*包络ID数组*/
|
||||
UINT16 acCnt = 0u; /** 前方计轴数量*/
|
||||
UINT16 acID[AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH] = { 0u };
|
||||
UINT8 acStatus = ELM_AC_OCC;
|
||||
UINT16 mergeACIndex = 0u;
|
||||
UINT16 mergeACCntMax = (SECTION_IN_ENVELOPE_SUM_MAX + 2U * AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH);
|
||||
UINT16 mergeACID[SECTION_IN_ENVELOPE_SUM_MAX + 2U * AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH] = { 0U };
|
||||
UINT8 includeCnt = 0U;
|
||||
UINT16 includeELMid[TRAIN_SUM_MAX_IN_OC] = { 0U }; /** 重合的包络id */
|
||||
UINT16 mergeACID[SECTION_IN_ENVELOPE_SUM_MAX + 2U * AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH] = { 0u };
|
||||
UINT8 includeCnt = 0u;
|
||||
UINT16 includeELMid[TRAIN_SUM_MAX_IN_OC] = { 0u }; /** 重合的包络id */
|
||||
|
||||
/** 获取列车包络 */
|
||||
pEnvelop = elm_GetEnvelopeInfoPtr(envelopeId);
|
||||
@@ -2809,36 +2791,63 @@ UINT8 elm_UCTEnvelopeLeaveAC(UINT8 flag,IN const EnvelopeStruct* pEnvelope,UINT1
|
||||
if ((NULL == pEnvelop) || (NULL == preEnvelope) || (NULL == backEnvelope))
|
||||
{
|
||||
/** 设置错误码*/
|
||||
ASSER_ERROR(CI_ERROR == funRet, errorCode, 0x80000000U);
|
||||
ASSER_ERROR(CI_ERROR == funRet, errorCode, 0x08000000u);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 查询后方计轴区段*/
|
||||
acCnt = elm_GetEnvelopTailACIDs(pEnvelop, acID);
|
||||
/** 获取车尾包络计轴占用状态 */
|
||||
acStatus = elm_PrepareACStatus(pEnvelop->ACID[0]);
|
||||
|
||||
/** 合并车尾后方的计轴 */
|
||||
mergeACIndex = elm_PrepareMergeUINT16Array(mergeACID, mergeACCntMax, mergeACIndex, acID, (AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH), acCnt);
|
||||
|
||||
/** 合并包络包含的计轴区段 */
|
||||
mergeACIndex = elm_PrepareMergeUINT16Array(mergeACID, mergeACCntMax, mergeACIndex, pEnvelop->ACID, SECTION_IN_ENVELOPE_SUM_MAX, pEnvelop->ACCnt);
|
||||
|
||||
/** 设置错误码*/
|
||||
ASSER_ERROR(mergeACIndex > mergeACCntMax, errorCode, 0x40000000U);
|
||||
|
||||
if (0U == errorCode)
|
||||
/** 判断包络尾是否占用,如果占用,则需要查询下一个计轴*/
|
||||
if (ELM_AC_OCC == acStatus)
|
||||
{
|
||||
(void)CommonMemSet(&acID, (UINT32)((AC_MAXCNT_IN_SWITCH*AC_MAXCNT_IN_SWITCH)*sizeof(UINT16)),0U, (UINT32)((AC_MAXCNT_IN_SWITCH*AC_MAXCNT_IN_SWITCH)*sizeof(UINT16)));/*先清空数组防止脏数据*/
|
||||
/* 查询前方计轴*/
|
||||
acCnt = elm_GetEnvelopHeadACIDs(pEnvelop, acID);
|
||||
/* 查询后方计轴,车尾计轴占用,存在道岔四开,为了确保能然后后端,需要查询安全车尾所属计轴的相邻计轴区段*/
|
||||
acCnt = elm_GetEnvelopTailACIDs(pEnvelop, acID);
|
||||
|
||||
/** 合并车头前方的计轴 */
|
||||
/** 合并车尾后方的计轴 */
|
||||
mergeACIndex = elm_PrepareMergeUINT16Array(mergeACID, mergeACCntMax, mergeACIndex, acID, (AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH), acCnt);
|
||||
|
||||
/** 先合并包络包含的计轴区段 */
|
||||
mergeACIndex = elm_PrepareMergeUINT16Array(mergeACID, mergeACCntMax, mergeACIndex, pEnvelop->ACID, SECTION_IN_ENVELOPE_SUM_MAX, pEnvelop->ACCnt);
|
||||
|
||||
/** 设置错误码*/
|
||||
ASSER_ERROR(mergeACIndex > mergeACCntMax, errorCode, 0x20000000U);
|
||||
ASSER_ERROR(mergeACIndex > mergeACCntMax, errorCode, 0x04000000u);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/** 先合并包络包含的计轴区段 */
|
||||
mergeACIndex = elm_PrepareMergeUINT16Array(mergeACID, mergeACCntMax, mergeACIndex, pEnvelop->ACID, SECTION_IN_ENVELOPE_SUM_MAX, pEnvelop->ACCnt);
|
||||
|
||||
/** 设置错误码*/
|
||||
ASSER_ERROR(mergeACIndex > mergeACCntMax, errorCode, 0x02000000u);
|
||||
}
|
||||
|
||||
if (0u == errorCode)
|
||||
{
|
||||
/** 获取车头包络计轴占用状态 */
|
||||
acStatus = elm_PrepareACStatus(pEnvelop->ACID[pEnvelop->ACCnt - 1U]);
|
||||
|
||||
/** 判断包络头是否占用,如果占用,则需要查询下一个计轴 */
|
||||
if (ELM_AC_OCC == acStatus)
|
||||
{
|
||||
/* 查询前方计轴,此处查询四开道岔的相邻计轴其实属于一个冗余的处理,因为如果车头压入了岔区且占用,直接进行了删车,但是此处再这样处理一个是为了统一设计,另外做一个冗余防护*/
|
||||
acCnt = elm_GetEnvelopHeadACIDs(pEnvelop, acID);
|
||||
|
||||
/** 合并车头前方的计轴 */
|
||||
mergeACIndex = elm_PrepareMergeUINT16Array(mergeACID, mergeACCntMax, mergeACIndex, acID, (AC_MAXCNT_IN_SWITCH * AC_MAXCNT_IN_SWITCH), acCnt);
|
||||
|
||||
/** 设置错误码*/
|
||||
ASSER_ERROR(mergeACIndex > mergeACCntMax, errorCode, 0x04000000u);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/** 无需处理*/
|
||||
}
|
||||
|
||||
/** 判断是否处理成功 */
|
||||
if (0U == errorCode)
|
||||
if (0u == errorCode)
|
||||
{
|
||||
/** 获取前方计轴包含的包络 */
|
||||
envelopeCnt = elm_MergeEnvelope(mergeACID, (UINT8)mergeACIndex, arEnvelopID);
|
||||
@@ -2847,7 +2856,7 @@ UINT8 elm_UCTEnvelopeLeaveAC(UINT8 flag,IN const EnvelopeStruct* pEnvelope,UINT1
|
||||
funRet = elm_FindNearSameTrainEnvelop(pEnvelop, arEnvelopID, envelopeCnt, preEnvelope, backEnvelope, &includeCnt, includeELMid);
|
||||
|
||||
/** 设置错误码*/
|
||||
ASSER_ERROR(CI_SUCCESS != funRet, errorCode, 0x10000000U);
|
||||
ASSER_ERROR(CI_SUCCESS != funRet, errorCode, 0x08000000u);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2861,7 +2870,7 @@ UINT8 elm_UCTEnvelopeLeaveAC(UINT8 flag,IN const EnvelopeStruct* pEnvelope,UINT1
|
||||
}
|
||||
|
||||
/** 设置返回值*/
|
||||
ASSERT_SETRET(0U == errorCode, ret, CI_SUCCESS, CI_ERROR);
|
||||
ASSERT_SETRET(0u == errorCode, ret, CI_SUCCESS, CI_ERROR);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -486,22 +486,4 @@ void elm_FlyingProtect_UCT(void);
|
||||
*/
|
||||
void elm_DeleteUctPassFlag(UINT16 envelopeId);
|
||||
|
||||
/**
|
||||
* @brief 处理AG虚拟筛选标志
|
||||
* @param[in] UINT16 envelopeID 列车包络
|
||||
* @param[in] UINT16 wTrainId 列车ID
|
||||
* @return 无
|
||||
* @note by cgh 20250805
|
||||
*/
|
||||
void elm_DealAgVirScreenFlag(UINT16 wEnvelopeID, UINT16 wTrainId);
|
||||
|
||||
/**
|
||||
* @brief 处理BG虚拟筛选标志
|
||||
* @param[in] UINT16 envelopeID 列车包络
|
||||
* @param[in] UINT16 wTrainId 列车ID
|
||||
* @return 无
|
||||
* @note by cgh 20250805
|
||||
*/
|
||||
void elm_DealBgVirScreenFlag(UINT16 wEnvelopeID, UINT16 wTrainId);
|
||||
|
||||
#endif
|
||||
@@ -6,8 +6,6 @@
|
||||
#include "EnvelopeLogicProcess.h"
|
||||
#include "WholeLineScreenAPI.h"
|
||||
#include "TrainDataManage.h"
|
||||
#include "SystemParameterManage.h"
|
||||
#include "DeviceDataManage.h"
|
||||
|
||||
|
||||
/*================================静态函数声明区==============================*/
|
||||
@@ -565,12 +563,6 @@ void elm_TrainScreen(void)
|
||||
UINT32 errorCode = 0u;
|
||||
UINT8 comstatus = 0U;
|
||||
const EnvelopeStruct* pEnvelop = NULL;
|
||||
UINT8 cLocalCiType = 0U;
|
||||
UINT8 cDsnFuncSwitch = 0U; /*迪士尼功能开关*/
|
||||
UINT8 cCurTrainTestStatus = 0U; /*当前试车状态*/
|
||||
UINT8 cFuncRetVal = CI_ERROR;
|
||||
UINT8 cAcNum = 0U; /*车身占用的计轴区段数量*/
|
||||
UINT16 szAcId[MAX_AC_IN_TRAIN] = { 0U }; /*车身占用的计轴区段ID数组*/
|
||||
|
||||
for (cycle = 1u; cycle < ENVELOPE_SUM_MAX; cycle++)
|
||||
{
|
||||
@@ -587,45 +579,28 @@ void elm_TrainScreen(void)
|
||||
/** 获取列车的通信状态 */
|
||||
comstatus = elm_PrepareTrainCommStatus(pEnvelop->trainID[0u]);
|
||||
/*CT包络且通信正常,才进行筛选*/
|
||||
if ((TYPE_CT_ENVELOPE == pEnvelop->envelopeType) && (ELM_COM_STATUS_OK == comstatus))
|
||||
if ((TYPE_CT_ENVELOPE == pEnvelop->envelopeType)&&(ELM_COM_STATUS_OK ==comstatus))
|
||||
{
|
||||
cLocalCiType = GetLocalCiType();
|
||||
cDsnFuncSwitch = GetCiFunctionSwitchConfig(FUNC_DSN_LINE_SWITCH);
|
||||
cCurTrainTestStatus = GetCiTrainTestStatus(); /*获取试车状态*/
|
||||
cFuncRetVal = CheckTrainIsCompletelyLocal(pEnvelop->trainID[0U], &cAcNum, szAcId); /*判断列车是否完全在本控区*/
|
||||
|
||||
if ((CI_TYPE_SCX == cLocalCiType)
|
||||
&& (FUNC_SWITCH_ON == cDsnFuncSwitch)
|
||||
&& (CI_TRAIN_TEST_ON == cCurTrainTestStatus)
|
||||
&& (CI_SUCCESS == cFuncRetVal))
|
||||
/** 判断前端是否可疑 */
|
||||
if (0u != pEnvelop->headTrainID)
|
||||
{
|
||||
/*DSN试车线在试车中时,RC设置本控区内的通信车无前后端可疑*/
|
||||
(void)elm_SetEnvelopeHeadTrainID(pEnvelop->id, 0U);
|
||||
(void)elm_SetEnvelopeTailTrainID(pEnvelop->id, 0U);
|
||||
/** 处理前端筛选*/
|
||||
elm_TrainHeadScreen(pEnvelop);
|
||||
}
|
||||
else
|
||||
{
|
||||
/** 判断前端是否可疑 */
|
||||
if (0u != pEnvelop->headTrainID)
|
||||
{
|
||||
/** 处理前端筛选*/
|
||||
elm_TrainHeadScreen(pEnvelop);
|
||||
}
|
||||
else
|
||||
{
|
||||
/** 无需处理 */
|
||||
}
|
||||
/** 无需处理 */
|
||||
}
|
||||
|
||||
/** 判断后端是否可疑*/
|
||||
if (0u != pEnvelop->tailTrainID)
|
||||
{
|
||||
/** 处理后端筛选*/
|
||||
elm_TrainTailScreen(pEnvelop);
|
||||
}
|
||||
else
|
||||
{
|
||||
/** 无需处理 */
|
||||
}
|
||||
/** 判断后端是否可疑*/
|
||||
if (0u != pEnvelop->tailTrainID)
|
||||
{
|
||||
/** 处理后端筛选*/
|
||||
elm_TrainTailScreen(pEnvelop);
|
||||
}
|
||||
else
|
||||
{
|
||||
/** 无需处理 */
|
||||
}
|
||||
|
||||
}
|
||||
@@ -659,7 +634,6 @@ void elm_WLScreenProcess(void)
|
||||
UINT8 relEnvelopeCnt= TRAIN_REL_ENVELOPE_SUM_MAX; /*列车关联的包络数量*/
|
||||
UINT16 relEnvelopeID[TRAIN_REL_ENVELOPE_SUM_MAX] = {0u}; /*列车关联的包络索引*/
|
||||
const EnvelopeStruct *pEnvelopeInfo = NULL;
|
||||
UINT8 chTrainNvramPosFlag = 0U; /*列车NVRAM位置标识*/
|
||||
|
||||
/** 获取全线免筛标志 */
|
||||
wlsFlag = wls_GetWLScreenPermitFlag();
|
||||
@@ -679,37 +653,26 @@ void elm_WLScreenProcess(void)
|
||||
((TYPE_CT_ENVELOPE == pEnvelopeInfo->envelopeType) || (TYPE_UCT_ENVELOPE == pEnvelopeInfo->envelopeType)))
|
||||
{
|
||||
ELM_LOG(ELM_LOG_FATAL,"info:ELM%d WLS Process,",pEnvelopeInfo->id);
|
||||
chTrainNvramPosFlag = GetTrainNvramPosFlag(cycle);
|
||||
|
||||
if (TRAIN_NVRAM_POS_FLAG_NO == chTrainNvramPosFlag)
|
||||
if (LINE_MAX_TRAIN == pEnvelopeInfo->headTrainID)
|
||||
{
|
||||
if (LINE_MAX_TRAIN == pEnvelopeInfo->headTrainID)
|
||||
{
|
||||
ELM_LOG(ELM_LOG_FATAL, " delete Head suspicious,");
|
||||
(void)elm_SetEnvelopeHeadTrainID(pEnvelopeInfo->id, 0u);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 不处理 */
|
||||
}
|
||||
|
||||
if (LINE_MAX_TRAIN == pEnvelopeInfo->tailTrainID)
|
||||
{
|
||||
ELM_LOG(ELM_LOG_FATAL, " delete Tail suspicious,");
|
||||
(void)elm_SetEnvelopeTailTrainID(pEnvelopeInfo->id, 0u);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 不处理 */
|
||||
}
|
||||
|
||||
ELM_LOG(ELM_LOG_FATAL," delete Head suspicious,");
|
||||
(void)elm_SetEnvelopeHeadTrainID(pEnvelopeInfo->id,0u);
|
||||
}
|
||||
else
|
||||
{
|
||||
ELM_LOG(ELM_LOG_FATAL, " not finish suspicious,because use nvram pos");
|
||||
/* 不处理 */
|
||||
}
|
||||
|
||||
ELM_LOG(ELM_LOG_FATAL, "\n");
|
||||
if (LINE_MAX_TRAIN == pEnvelopeInfo->tailTrainID)
|
||||
{
|
||||
ELM_LOG(ELM_LOG_FATAL," delete Tail suspicious,");
|
||||
(void)elm_SetEnvelopeTailTrainID(pEnvelopeInfo->id,0u);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 不处理 */
|
||||
}
|
||||
ELM_LOG(ELM_LOG_FATAL,"\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1990,15 +1990,16 @@ static UINT8 elm_UCTEnvelopeHeadHandle(UINT8 endlineFlag, IN const EnvelopeStruc
|
||||
/** 不添加前端可疑 */
|
||||
funRtn = elm_SetEnvelopeHeadTrainID(ptemp->id, pPretemp->headTrainID);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00002000u);
|
||||
/** 则更新车头位置 */
|
||||
funRtn = elm_SetUCTEnvelopeDot(ELM_HEAD, ptemp->ACID[ptemp->ACCnt - 1u], ptemp);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00000800u);
|
||||
}
|
||||
else
|
||||
{
|
||||
funRtn = elm_DeleteCTOrUCTEnvelope(ptemp->id);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00000400u);
|
||||
funRtn = elm_SetEnvelopeHeadTrainID(ptemp->id, LINE_MAX_TRAIN);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00001000u);
|
||||
}
|
||||
|
||||
/** 则更新车头位置 */
|
||||
funRtn = elm_SetUCTEnvelopeDot(ELM_HEAD, ptemp->ACID[ptemp->ACCnt - 1u], ptemp);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00000800u);
|
||||
}
|
||||
ret = 0x55u;
|
||||
}
|
||||
@@ -2270,8 +2271,7 @@ static UINT8 elm_UCTEnvelopeHeadMoving(const EnvelopeStruct *ptemp)
|
||||
UINT8 includeCnt = 0u;
|
||||
UINT16 includeELMid[TRAIN_SUM_MAX_IN_OC] = {0u}; /** 重合的包络id */
|
||||
UINT8 cHeadDirChangeFlag = DIRECTIONPOINT_FLAG_INVALID; /*包络头方向变化点标志*/
|
||||
const EnvelopeStruct* pPretemp = NULL;
|
||||
UINT16 wInputAcId = 0U;
|
||||
|
||||
/** 入口参数校验 */
|
||||
ASSERT_RET_VALUE(NULL == ptemp,ret,0x80000000u);
|
||||
|
||||
@@ -2383,30 +2383,7 @@ static UINT8 elm_UCTEnvelopeHeadMoving(const EnvelopeStruct *ptemp)
|
||||
if (0u == errorCode)
|
||||
{
|
||||
endLineFlag = (0u == acSameCnt) ? CI_SUCCESS : CI_ERROR;
|
||||
wInputAcId = acSameID[0U];
|
||||
pPretemp = elm_GetEnvelopeInfoPtr(preEnvelope);
|
||||
if (NULL != pPretemp)
|
||||
{
|
||||
for (cycle = 0U; cycle < pPretemp->ACCnt; cycle++)
|
||||
{
|
||||
if (ptemp->ACID[ptemp->ACCnt - 1U] == pPretemp->ACID[cycle])
|
||||
{
|
||||
wInputAcId = ptemp->ACID[ptemp->ACCnt - 1U];
|
||||
break; /*前方包络与本包络终点处于同一计轴区段,停止遍历*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续遍历查找*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/*若前方包络位于本包络终点计轴区段,则使用本包络终点计轴区段作为入参,否则使用本包络终点前方计轴区段作为入参*/
|
||||
funRtn = elm_UCTEnvelopeHeadHandle(endLineFlag,ptemp, wInputAcId,preEnvelope, cHeadDirChangeFlag);
|
||||
funRtn = elm_UCTEnvelopeHeadHandle(endLineFlag,ptemp,acSameID[0u],preEnvelope, cHeadDirChangeFlag);
|
||||
ASSER_ERROR(CI_ERROR == funRtn,errorCode,0x00400000u);
|
||||
|
||||
if (CI_ERROR != funRtn)
|
||||
@@ -2657,17 +2634,17 @@ static UINT8 elm_UCTEnvelopeTailHandle(UINT8 endlineFlag, const EnvelopeStruct *
|
||||
|
||||
if (0x55u == funRtn)
|
||||
{
|
||||
funRtn = elm_SetEnvelopeTailTrainID(ptemp->id, pBacktemp->tailTrainID);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00002000u);
|
||||
/** 则更新车尾位置 */
|
||||
funRtn = elm_SetUCTEnvelopeDot(ELM_TAIL, ptemp->ACID[0u], ptemp);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00001000u);
|
||||
/** 不添加前端可疑 */
|
||||
}
|
||||
else
|
||||
{
|
||||
funRtn = elm_DeleteCTOrUCTEnvelope(ptemp->id);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00000800u);
|
||||
funRtn = elm_SetEnvelopeTailTrainID(ptemp->id, LINE_MAX_TRAIN);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00002000u);
|
||||
}
|
||||
|
||||
/** 则更新车尾位置 */
|
||||
funRtn = elm_SetUCTEnvelopeDot(ELM_TAIL, ptemp->ACID[0u], ptemp);
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00001000u);
|
||||
}
|
||||
ret = 0x55u;
|
||||
}
|
||||
@@ -2939,8 +2916,6 @@ static UINT8 elm_UCTEnvelopeTailMoving(const EnvelopeStruct *ptemp)
|
||||
UINT8 includeCnt = 0u;
|
||||
UINT16 includeELMid[TRAIN_SUM_MAX_IN_OC] = {0u}; /** 重合的包络id */
|
||||
UINT8 cTailDirChangeFlag = DIRECTIONPOINT_FLAG_INVALID; /*包络尾方向变化点标志*/
|
||||
const EnvelopeStruct* pBacktemp = NULL;
|
||||
UINT16 wInputAcId = 0U;
|
||||
|
||||
/** 入口参数校验 */
|
||||
ASSERT_RET_VALUE(NULL == ptemp,ret,0x80000000u);
|
||||
@@ -3053,32 +3028,8 @@ static UINT8 elm_UCTEnvelopeTailMoving(const EnvelopeStruct *ptemp)
|
||||
if (0u == errorCode)
|
||||
{
|
||||
endLineFlag = (0u == acConvertCnt) ? CI_SUCCESS : CI_ERROR;
|
||||
wInputAcId = acConvertID[0U];
|
||||
pBacktemp = elm_GetEnvelopeInfoPtr(backEnvelope);
|
||||
if (NULL != pBacktemp)
|
||||
{
|
||||
for (cycle = 0U; cycle < pBacktemp->ACCnt; cycle++)
|
||||
{
|
||||
if (ptemp->ACID[0U] == pBacktemp->ACID[cycle])
|
||||
{
|
||||
wInputAcId = ptemp->ACID[0U];
|
||||
break; /*后方包络与本包络起点处于同一计轴区段,停止遍历*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续遍历查找*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/*若后方包络位于本包络起点计轴区段,则使用本包络起点计轴区段作为入参,否则使用本包络起点后方计轴区段作为入参*/
|
||||
funRtn = elm_UCTEnvelopeTailHandle(endLineFlag, ptemp, wInputAcId, backEnvelope, cTailDirChangeFlag);
|
||||
|
||||
ASSER_ERROR(CI_ERROR == funRtn, errorCode, 0x00400000u);
|
||||
funRtn = elm_UCTEnvelopeTailHandle(endLineFlag,ptemp,acConvertID[0u],backEnvelope, cTailDirChangeFlag);
|
||||
ASSER_ERROR(CI_ERROR == funRtn,errorCode,0x00400000u);
|
||||
|
||||
if (CI_ERROR != funRtn)
|
||||
{
|
||||
@@ -3305,7 +3256,6 @@ static UINT8 elm_ConvertToUCTCheck(const EnvelopeStruct* ptemp)
|
||||
UINT8 chCanUct = FLAG_SET;
|
||||
UINT32 minTrainLength = 0U;
|
||||
UINT32 dwTempLength = 0U;
|
||||
UINT8 chTrainNvramPosFlag = 0U;
|
||||
|
||||
/** 入口参数校验 */
|
||||
ASSERT_RET_VALUE(NULL == ptemp,ret,0x80000000U);
|
||||
@@ -3347,17 +3297,6 @@ static UINT8 elm_ConvertToUCTCheck(const EnvelopeStruct* ptemp)
|
||||
; /* 不满足转为UCT条件 */
|
||||
}
|
||||
|
||||
if (0U == errorCode)
|
||||
{
|
||||
/** 获取列车是否使用NVRAM位置 */
|
||||
chTrainNvramPosFlag = GetTrainNvramPosFlag(ptemp->trainID[0U]);
|
||||
ASSER_ERROR(TRAIN_NVRAM_POS_FLAG_NO != chTrainNvramPosFlag, errorCode, 0x04000000U);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /* 不满足转为UCT条件 */
|
||||
}
|
||||
|
||||
/** 设置函数返回值 */
|
||||
ASSERT_SETRET(0U == errorCode,ret,CI_SUCCESS,CI_ERROR);
|
||||
ASSER_DEBUG(0U != errorCode,ELM_LOG_LOC(ELM_LOG_ERROR,"errorCode:0x%08x info:ELM%d can't convert to UCT!",errorCode,ptemp->id));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,10 +44,8 @@
|
||||
#include "../WashMachine/WashMachineConfigDataManage.h"
|
||||
#include "../WashMachine/WashMachineDataManage.h"
|
||||
#include "../ParsePack/ParsePackOcData.h"
|
||||
#include "../OHL/OHLDataManage.h"
|
||||
#include "ReverseCutDataManage.h"
|
||||
#include "ReverseCutConfigDataManage.h"
|
||||
#include "../SsksLightRelay/SsksLightRelayDefine.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -97,8 +95,8 @@ UINT8 GetSignalShowColor(const UINT16 signalId);
|
||||
/*
|
||||
* 功能描述: 信号机双系板卡故障,信号机当前设置颜色
|
||||
* 参数说明:
|
||||
UINT16 signalId:信号机id
|
||||
UINT8 ocId OC ID
|
||||
UINT16 signalId:信号机id
|
||||
UINT8 ocId OC ID
|
||||
* 返回值 : 信号机颜色
|
||||
*/
|
||||
UINT8 GetOcBoardFaultSignalColor(UINT16 signalId, UINT8 ocId);
|
||||
@@ -271,7 +269,6 @@ void FloodGateDeviceToRelayStateProc(void);
|
||||
* 功能描述: 更新进路的调车同意逻辑状态
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
* BY CGH 20250523
|
||||
*/
|
||||
void RouteDCTYRelayToDeviceStateProc(void);
|
||||
|
||||
@@ -685,14 +682,13 @@ void DetZfsCancelBtnPressStateProc(const UINT16 wSignalId, const UINT16 wCancelD
|
||||
void DetZfsCancelBtnActFlagProc(const UINT16 wSignalId, const UINT16 wCancelDetBtnRelayId);
|
||||
|
||||
/*
|
||||
* 功能描述:驱动自复式扣车相关指示灯
|
||||
* 参数说明:const UINT16 signalId 信号机ID
|
||||
* const UINT16 signalDetDisRelayId 扣车表示灯继电器ID
|
||||
* const UINT16 signalDetCutDisRelayId 扣车旁路表示灯继电器
|
||||
* 返 回 值:无
|
||||
* Modified By LQ 2025.07.03
|
||||
* 功能描述:驱动自复式扣车指示灯
|
||||
* 参数说明:const UINT16 signalId, 信号机ID
|
||||
* const UINT16 signalDetainDisplayId, 扣车表示灯继电器1ID
|
||||
* 返回值:无
|
||||
*
|
||||
*/
|
||||
void DriveZfsDetainBsRelay(const UINT16 signalId, const UINT16 signalDetDisRelayId, const UINT16 signalDetCutDisRelayId);
|
||||
void DriveZfsDetainBsRelay(const UINT16 signalId, const UINT16 signalDetainDisplayId);
|
||||
|
||||
/*
|
||||
* 功能描述:自复式紧急停车按钮处理
|
||||
@@ -760,43 +756,6 @@ UINT8 CheckRelayDriveOutTime(const UINT16 wRelayId, const UINT32 dwTimeOutCycCou
|
||||
*/
|
||||
void SGBJDriveOutputProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:SSKS闪灯稳灯输出处理
|
||||
* 参数说明:void
|
||||
* 返 回 值:void
|
||||
* Created By LQ 2025.12.16
|
||||
*/
|
||||
void SsksFlashSteadyLightOutputProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:SSKS关联驶入存车线进路标志处理
|
||||
* 参数说明:UINT16 wRelayId SSKS闪灯稳灯继电器ID
|
||||
* UINT8 cEnterRouteNum 驶入存车线进路数量
|
||||
* UINT16 szEnterRouteId[SSKS_LIGHT_RELAY_ROUTE_MAX] 驶入存车线进路ID数组
|
||||
* 返 回 值:void
|
||||
* Created By LQ 2025.12.16
|
||||
*/
|
||||
void SsksRelEnterRouteFlagProc(UINT16 wRelayId, UINT8 cEnterRouteNum, UINT16 szEnterRouteId[SSKS_LIGHT_RELAY_ROUTE_MAX]);
|
||||
|
||||
/*
|
||||
* 功能描述:检查进路内方最后一个物理区段的上一个区段是否空闲且解锁
|
||||
* 参数说明:UINT16 wRouteId 进路ID
|
||||
* 返 回 值:0 失败(区段锁闭或占用)
|
||||
* 1 成功(区段未锁闭且空闲)
|
||||
* Created By LQ 2026.03.11
|
||||
*/
|
||||
UINT8 CheckRouteLastPSUnlockAndIdle(UINT16 wRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述:SSKS关联驶出存车线进路标志处理
|
||||
* 参数说明:UINT16 wRelayId SSKS闪灯稳灯继电器ID
|
||||
* UINT8 cExportRouteNum 驶出存车线进路数量
|
||||
* UINT16 szExportRouteId[SSKS_LIGHT_RELAY_ROUTE_MAX] 驶出存车线进路ID数组
|
||||
* 返 回 值:void
|
||||
* Created By LQ 2025.12.16
|
||||
*/
|
||||
void SsksRelExportRouteFlagProc(UINT16 wRelayId, UINT8 cExportRouteNum, UINT16 szExportRouteId[SSKS_LIGHT_RELAY_ROUTE_MAX]);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置继电器驱动起始周期
|
||||
* 参数说明: const UINT16 relayId 继电器ID
|
||||
@@ -894,176 +853,6 @@ UINT8 GetSwitchCollToleratePos(const UINT16 switchId);
|
||||
*/
|
||||
UINT8 CheckSwitchCollTolerateState(UINT16 switchId);
|
||||
|
||||
/*
|
||||
* 功能描述:宁象市域铁路紧急停车按钮处理
|
||||
* 参数说明:UINT16 esbId ESB ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
void EsbNXRailBtnProc(UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:宁象市域铁路紧急停车取消按钮处理
|
||||
* 参数说明:UINT16 esbId ESB ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.03.28
|
||||
*/
|
||||
void EsbNXRailCancelBtnProc(UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:宁象市域铁路紧急停车取消按钮有效标志处理
|
||||
* 参数说明:const UINT16 wEsbId ESB ID
|
||||
* const UINT16 wCancelEsbRelayId ESB取消按钮采集继电器ID
|
||||
* 返回值 :无
|
||||
* Created By LQ 2025.03.30
|
||||
*/
|
||||
void EsbNXRailCancelBtnValidFlagProc(const UINT16 wEsbId, const UINT16 wCancelEsbRelayId);
|
||||
|
||||
/*
|
||||
* 功能描述:宁象市域铁路紧急停车旁路按钮处理
|
||||
* 参数说明:UINT16 esbId ESB ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.03.30
|
||||
*/
|
||||
void EsbNXRailCutBtnProc(UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:宁象市域铁路紧急停车旁路按钮按下状态处理
|
||||
* 参数说明:const UINT16 wEsbId ESB ID
|
||||
* const UINT16 wCutEsbRelayId 紧急旁路按钮采集继电器ID
|
||||
* 返回值 :无
|
||||
* Created By LQ 2025.03.30
|
||||
*/
|
||||
void EsbNXRailCutBtnPressStateProc(const UINT16 wEsbId, const UINT16 wCutEsbRelayId);
|
||||
|
||||
/*
|
||||
* 功能描述:宁象市域铁路ESB指示灯和ESB旁路指示灯输出处理
|
||||
* 参数说明:const UINT16 wEsbId ESB ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.03.30
|
||||
*/
|
||||
void EsbNXRailDisplayDrivOutput(const UINT16 wEsbId);
|
||||
|
||||
/*
|
||||
* 功能描述:屏蔽门异常打开处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.05.23
|
||||
*/
|
||||
void PsdExceptOpenProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:自复式扣车旁路按钮处理
|
||||
* 参数说明:const UINT16 signalId 信号机ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.06.20
|
||||
*/
|
||||
void SignalZfsDetainCutBtnPro(const UINT16 signalId);
|
||||
|
||||
/*
|
||||
* 功能描述:自复式扣车旁路按钮按下状态处理
|
||||
* 参数说明:const UINT16 wSignalId 信号机ID
|
||||
* const UINT16 wDetCutBtnRelayId 扣车旁路按钮采集继电器ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.06.20
|
||||
*/
|
||||
void ZfsDetCutBtnPressStateProc(const UINT16 wSignalId, const UINT16 wDetCutBtnRelayId);
|
||||
|
||||
/*
|
||||
* 功能描述:自复式扣车旁路按钮有效状态处理
|
||||
* 参数说明:const UINT16 wSignalId 信号机ID
|
||||
* const UINT16 wDetCutBtnRelayId 扣车旁路按钮采集继电器ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.06.20
|
||||
*/
|
||||
void ZfsDetCutBtnValidStateProc(const UINT16 wSignalId, const UINT16 wDetCutBtnRelayId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取SPKS按钮采集容忍结果
|
||||
* 参数说明:const UINT16 wSpksId SPKS编号
|
||||
* 返 回 值:CI_ERROR 0 容忍结束
|
||||
* CI_SUCCESS 1 继续容忍
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
UINT8 GetSpksBtnCollTolerateRet(const UINT16 wSpksId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取Psd门开继电器采集容忍结果
|
||||
* 参数说明:const UINT16 wPsdId PSD编号
|
||||
* 返 回 值:CI_ERROR 0 容忍结束
|
||||
* CI_SUCCESS 1 继续容忍
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
UINT8 GetPsdRelayCollTolerateRet(const UINT16 wPsdId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取Esb采集容忍结果
|
||||
* 参数说明:const UINT16 wEsbId ESB编号
|
||||
* 返 回 值:CI_ERROR 0 容忍结束
|
||||
* CI_SUCCESS 1 继续容忍
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
UINT8 GetEsbCollTolerateRet(const UINT16 wEsbId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取扣车按钮1采集容忍结果
|
||||
* 参数说明:const UINT16 wSignalId 信号机编号
|
||||
* 返 回 值:CI_ERROR 0 容忍结束
|
||||
* CI_SUCCESS 1 继续容忍
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
UINT8 GetFstDetBtnCollTolerateRet(const UINT16 wSignalId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取扣车按钮2采集容忍结果
|
||||
* 参数说明:const UINT16 wSignalId 信号机编号
|
||||
* 返 回 值:CI_ERROR 0 容忍结束
|
||||
* CI_SUCCESS 1 继续容忍
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
UINT8 GetSndDetBtnCollTolerateRet(const UINT16 wSignalId);
|
||||
|
||||
/*
|
||||
* 功能描述: 更新接触网状态
|
||||
* 参数说明: void
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void OhlRelayToDeviceStateProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:迪士尼屏蔽门旁路按钮按下状态处理
|
||||
* 参数说明:const UINT16 wPsbId ID
|
||||
* const UINT16 wMutualLockRelayId 旁路按钮采集继电器ID
|
||||
* 返回值 :无
|
||||
* Created By fan 2025.12.17
|
||||
*/
|
||||
void PsdDsnPsdCutBtnPressStateProc(const UINT16 wPsdId, const UINT16 wMutualLockRelayId);
|
||||
|
||||
/*
|
||||
* 功能描述: 处理迪士尼屏蔽门互锁解除继电器状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* Created By fan 2025.12.15
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void DsnPsdMutualLockStateUpdate(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述: 根据PSD状态更新区段的站台门异常打开封锁状态
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
* by fan 20260127
|
||||
*/
|
||||
void PsdRelayToSecFlockStatus(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 更新全线紧急停车逻辑状态
|
||||
* 参数说明: void
|
||||
* 返回值 : 0u: 更新失败
|
||||
* 1: 更新成功
|
||||
* Created By fan 2026.03.10
|
||||
*/
|
||||
void CesbStateUpdateProc(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -451,37 +451,6 @@ void LogRouteCleanOldPhySecLockProc(const UINT16 wPreRouteId);
|
||||
*/
|
||||
void OtherPartRouteCleanLogRouteProc(const UINT16 wCurRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述:处理OC->CI的PSD数据
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
*/
|
||||
void ProcessOCToCiPsdData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 处理OC到CI的不一致继电器数据
|
||||
* 参数说明: void
|
||||
* 返回值 : 0:处理失败
|
||||
* 1:处理成功
|
||||
*/
|
||||
void ProcessOcToCiRelayDiffData(void);
|
||||
|
||||
/*
|
||||
* 功能描述:迪士尼试车线试车状态处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.23
|
||||
*/
|
||||
void DsnScxStateProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:迪士尼试车线物理区段采集占用状态处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.23
|
||||
*/
|
||||
void DsnScxPhySecColOccProc(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "../RemoteRM/RRMDataPrepare.h"
|
||||
#include "NonAutoReturnDataManage.h"
|
||||
#include "InputDataProcess.h"
|
||||
#include "../ECS/ECSDataManage.h"
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@@ -137,12 +137,6 @@ void OutputDataProcess(void)
|
||||
|
||||
/*声光报警器输出处理*/
|
||||
SGBJDriveOutputProc();
|
||||
|
||||
/*SSKS闪灯稳灯输出处理*/
|
||||
SsksFlashSteadyLightOutputProc();
|
||||
|
||||
/*道岔反位使能请求输出处理*/
|
||||
SwitchReverseEnableDriveProc();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -200,9 +194,6 @@ void OutputDataProcess(void)
|
||||
/*无人折返继电器粘连状态处理*/
|
||||
RtnRealyAdhesionStatePro();
|
||||
|
||||
/*ECS监督处理*/
|
||||
EcsMonitorProc();
|
||||
|
||||
/*虚拟设备输出处理*/
|
||||
VirtualDeviceOutputProc();
|
||||
|
||||
@@ -230,9 +221,6 @@ void OutputDataProcess(void)
|
||||
/*更新照查联锁条件检查照查驱动*/
|
||||
UpdateZhaoChaCheckZhaoChaDrive();
|
||||
|
||||
/*联络线进路协议继电器驱动*/
|
||||
RouteConnectPrtlRelayDriveProc();
|
||||
|
||||
/*设置驱动继电器混线状态*/
|
||||
SetDriveRelayHunXianState();
|
||||
|
||||
@@ -399,10 +387,6 @@ UINT8 GetAtsBackInfoParam(const UINT8 functionId,const UINT8 deviceStateType, co
|
||||
returnValue = CI_BACK_ROUTE_XUANPAI_OVERTIME;/*进路选排超时*/
|
||||
break;
|
||||
|
||||
case ETYPE_ROUTE_APPLY_SWITCH_MOVE:
|
||||
returnValue = CI_BACK_SWT_MOVE; /*道岔单操中办理进路*/
|
||||
break;
|
||||
|
||||
/*信号机故障反馈*/
|
||||
case ETYPE_SIG_START_OPEN_STATE:
|
||||
if (SIGNAL_OPEN==deviceState )
|
||||
@@ -599,10 +583,6 @@ UINT8 GetAtsBackInfoParam(const UINT8 functionId,const UINT8 deviceStateType, co
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case ETYPE_SWT_WAIT_MOVE: /*等待道岔动作完成*/
|
||||
returnValue = CI_BACK_SWT_WAIT_MOVE;
|
||||
break;
|
||||
/* zt 删除单轨相关代码 2022-02-15 */
|
||||
|
||||
/*继电器故障反馈*/
|
||||
@@ -918,42 +898,6 @@ UINT8 GetAtsBackInfoParam(const UINT8 functionId,const UINT8 deviceStateType, co
|
||||
case ETYPE_OTHER_DOWNWASH_NOT_ALLOW_PASS:
|
||||
returnValue = CI_BACK_WASH_PASS_ALLOW_NOT; /*洗车库/线未同意通过*/
|
||||
break;
|
||||
case ETYPE_LOGSEC_CONTINUOUS:
|
||||
returnValue = CI_BACK_DYM_ROUTE_CONTINUOUS;
|
||||
break;
|
||||
case ETYPE_PART_ROUTE_RES:
|
||||
returnValue = CI_BACK_DYM_ROUTE_RES;
|
||||
break;
|
||||
case ETYPE_PART_ROUTE_MATCH_ROUTE:
|
||||
returnValue = CI_BACK_DYM_ROUTE_MATCH_ROUTE;
|
||||
break;
|
||||
case ETYPE_PART_ROUTE_SCREEN:
|
||||
returnValue = CI_BACK_DYM_ROUTE_SCREEN;
|
||||
break;
|
||||
case ETYPE_LOGSEC_CBTC_PROPERTY:
|
||||
returnValue = CI_BACK_DYM_ROUTE_SEC_CBTC;
|
||||
break;
|
||||
case ETYPE_PART_ROUTE_REPEAT:
|
||||
returnValue = CI_BACK_DYM_ROUTE_REPEAT;
|
||||
break;
|
||||
case ETYPE_PART_ROUTE_SEC_ATTR:
|
||||
returnValue = CI_BACK_DYM_ROUTE_SEC_ATTR;
|
||||
break;
|
||||
case ETYPE_PART_ROUTE_TRAIN_COMM:
|
||||
returnValue = CI_BACK_DYM_ROUTE_TRAIN_COMM;
|
||||
break;
|
||||
case ETYPE_PART_ROUTE_TRAIN_POS:
|
||||
returnValue = CI_BACK_DYM_ROUTE_TRAIN_POS;
|
||||
break;
|
||||
case ETYPE_LOGSEC_CT_OVERRIDE_FAIL:
|
||||
returnValue = CI_BACK_OVERRIDE_CT_OCCUPY;
|
||||
break;
|
||||
case ETYPE_ROUTE_CONNECT_OVERRIME:
|
||||
returnValue = CI_BACK_CONNECT_ROUTE_OVERRIME;
|
||||
break;
|
||||
case ETYPE_SWT_CONNECT_RET_FAIL:
|
||||
returnValue = CI_BACK_CONNECT_SWITCH_RET_FAIL;
|
||||
break;
|
||||
default:/*数据错误*/
|
||||
returnValue = 0U;
|
||||
break;
|
||||
@@ -972,18 +916,14 @@ CI_SUCCESS
|
||||
*/
|
||||
UINT8 CiToAtsBackInfoFunctionJudge(const UINT8 functionId,const UINT8 deviceType)
|
||||
{
|
||||
UINT8 cRetVal = CI_ERROR;
|
||||
|
||||
if ((functionId > 0U) && (deviceType>0U))
|
||||
if ((functionId > 0u) && (deviceType>0u) )
|
||||
{
|
||||
cRetVal = CI_SUCCESS;
|
||||
return CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
cRetVal = CI_ERROR;
|
||||
return CI_ERROR;
|
||||
}
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
|
||||
|
||||
@@ -1071,10 +1011,6 @@ void IndicatorStateProc(void)
|
||||
UINT8 cCommAxisNum = 0U; /*与本控区具有通信关系的计轴子系统数量*/
|
||||
UINT8* pAxisSysIdBuf = NULL;
|
||||
UINT8 mm = 0U;
|
||||
UINT16 wCutRelayId = 0u;/*旁路继电器ID*/
|
||||
UINT8 chCutRelayState = 0u;/*旁路状态*/
|
||||
UINT8 chScxCesbState = 0U;/*试车线CESB状态*/
|
||||
UINT8 chScxCesbCutState = 0U;/*试车线CESB旁路状态*/
|
||||
|
||||
dianshiLinshixiansuFlag = GetCiFunctionSwitchConfig(FUNC_DIANSHI_LINSHIXIANSU_FLAG);
|
||||
devCurSum = GetIndicatorCurSum(); /*获取指示器当前总数*/
|
||||
@@ -2188,118 +2124,6 @@ void IndicatorStateProc(void)
|
||||
SetIndicatorState(devId, INDICATOR_SHOW_COMM_RED);
|
||||
}
|
||||
}
|
||||
else if (INDICATOR_TYPE_ALLSEC_FLOCK == devType)
|
||||
{
|
||||
chDevStateRtn = GetAllSecFlockState();
|
||||
SetIndicatorState(devId, INDICATOR_SHOW_YES); /*初始化无封锁*/
|
||||
if (ALLFLOCK_SET_YES == chDevStateRtn)
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_SHOW_NO);
|
||||
}
|
||||
}
|
||||
else if (INDICATOR_TYPE_SCX_SHD_ESS == devType)
|
||||
{
|
||||
devRelaySum = GetIndicatorRelaySum(devId); /*获取相关继电器总数*/
|
||||
devRelayIdBuf = GetIndicatorRelayIdBuf(devId); /*获取相关继电器ID buf*/
|
||||
if ((0U == devRelaySum) || (NULL == devRelayIdBuf))
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_SHOW_YES); /*设置亮红灯*/
|
||||
}
|
||||
else
|
||||
{
|
||||
relayCollState = GetRelayCollState(devRelayIdBuf[0]);
|
||||
if (RELAY_STATE_UP == relayCollState)
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_SHOW_NO); /*ESS继电器吸起,试车中,设置亮绿灯*/
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_SHOW_YES); /*ESS继电器落下,未试车,设置亮红灯*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (INDICATOR_TYPE_CESB == devType)
|
||||
{
|
||||
/*旁路有效时发送旁路*/
|
||||
chDevStateRtn = GetAllSecCesbState();/*CESB封锁设置状态*/
|
||||
SetIndicatorState(devId, INDICATOR_CESB_INACTIVE_NOFLOCK); /*初始化未激活 无封锁*/
|
||||
if (CI_TYPE_SCX == chLocalCiType)
|
||||
{
|
||||
/*试车线根据命令设置指示灯*/
|
||||
chScxCesbState = GetScxCesbCmdState();
|
||||
chScxCesbCutState = GetScxCesbCutCmdState();
|
||||
if (ESB_CUT_YES == chScxCesbCutState)
|
||||
{
|
||||
if (CESB_STATE_VALID_NO == chDevStateRtn)
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_CUT_NOFLOCK); /*设置CESB旁路有效 无封锁*/
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_CUT_FLOCK); /*设置CESB旁路有效 存在封锁*/
|
||||
}
|
||||
}
|
||||
else if (CESB_STATE_VALID_NO == chScxCesbState)
|
||||
{
|
||||
/*CESB未激活*/
|
||||
if (CESB_STATE_VALID_NO == chDevStateRtn)
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_INACTIVE_NOFLOCK); /*设置未激活 无封锁*/
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_INACTIVE_FLOCK); /*设置未激活 存在封锁*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未旁路、CESB激活*/
|
||||
SetIndicatorState(devId, INDICATOR_CESB_ACTIVE_FLOCK); /*设置激活*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wCutRelayId = GetCesbCutRelayId();
|
||||
chCutRelayState = GetRelayCollState(wCutRelayId);/*旁路状态*/
|
||||
RelayId = GetCesbRelayId();
|
||||
relayCollState = GetRelayCollState(RelayId); /*继电器采集状态*/
|
||||
if (0U != RelayId)
|
||||
{
|
||||
if (RELAY_STATE_UP == chCutRelayState)
|
||||
{ /*旁路继电器吸起,旁路有效*/
|
||||
if (CESB_STATE_VALID_NO == chDevStateRtn)
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_CUT_NOFLOCK); /*设置CESB旁路有效 无封锁*/
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_CUT_FLOCK); /*设置CESB旁路有效 存在封锁*/
|
||||
}
|
||||
}
|
||||
else if (RELAY_STATE_UP == relayCollState)
|
||||
{
|
||||
/*吸起 CESB未激活*/
|
||||
if (CESB_STATE_VALID_NO == chDevStateRtn)
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_INACTIVE_NOFLOCK); /*设置未激活 无封锁*/
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIndicatorState(devId, INDICATOR_CESB_INACTIVE_FLOCK); /*设置未激活 存在封锁*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未旁路、CESB激活*/
|
||||
SetIndicatorState(devId, INDICATOR_CESB_ACTIVE_FLOCK); /*设置激活*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*未配置CESB继电器时,维持未激活无封锁*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
@@ -7333,7 +7157,7 @@ void AddXiansuPhySecData(const UINT16 wLogSecId,const UINT16 wTrainId)
|
||||
chPhySecFlockType = GetPhySecFLockType(wLogSecRelPhySecId);
|
||||
chPhySecAreaUrgentState = GetPhySecAreaUrgentState(wLogSecRelPhySecId);
|
||||
|
||||
if (((PHYSICAL_SECTION_FLOCK_YES == chPhySecFlockState) && (SEC_FLOCK_TYPE_CMD == (SEC_FLOCK_TYPE_CMD & chPhySecFlockType)))
|
||||
if (((PHYSICAL_SECTION_FLOCK_YES == chPhySecFlockState) && ((PHY_SEC_FLOCK_TYPE_CMD == chPhySecFlockType) || (PHY_SEC_FLOCK_TYPE_SPKSCMD == chPhySecFlockType)))
|
||||
|| (PHYSEC_AREA_URGENT_YES == chPhySecAreaUrgentState))
|
||||
{
|
||||
chAddFlag = CI_SUCCESS;
|
||||
@@ -8714,73 +8538,3 @@ void RtnRealyAdhesionStatePro(void)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:ECS监督处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void EcsMonitorProc(void)
|
||||
{
|
||||
UINT16 wEcsNum = 0U; /*ECS数量*/
|
||||
UINT16 ii = 0U;
|
||||
UINT16 wEcsId = 0U; /*ECS ID*/
|
||||
UINT8 cLocalCiId = 0U;
|
||||
UINT8 cEcsBelongCiId = 0U; /*ECS所属CI*/
|
||||
UINT8 cEcsAutoTrigState = 0U; /*ECS监督状态*/
|
||||
UINT16 wFanUpRelayId = 0U; /*风向为逻辑正方向的继电器ID*/
|
||||
UINT16 wFanDownRelayId = 0U; /*风向为逻辑反方向的继电器ID*/
|
||||
UINT16 wRelTrainId = 0U; /*ECS关联列车ID*/
|
||||
UINT16 wBufIndex = 0U;
|
||||
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
wEcsNum = GetEcsCurSum();
|
||||
for (ii = 0U; ii < wEcsNum; ii++)
|
||||
{
|
||||
wEcsId = GetEcsId(ii);
|
||||
cEcsBelongCiId = GetEcsBelongCiId(wEcsId);
|
||||
if (cEcsBelongCiId == cLocalCiId)
|
||||
{
|
||||
wFanUpRelayId = GetEcsRelFanUpRelayId(wEcsId); /*获取控制风机方向的继电器ID*/
|
||||
wFanDownRelayId = GetEcsRelFanDownRelayId(wEcsId);
|
||||
|
||||
cEcsAutoTrigState = GetEcsAutoTrigState(wEcsId);
|
||||
if (ECS_AUTOTRIG_YES == cEcsAutoTrigState)
|
||||
{
|
||||
/*ECS自动触发启用时,需要周期监督隧道内的拥堵状态,进而驱动相应的继电器吸起/落下*/
|
||||
/*1.更新ECS隧道关联的列车ID(该列车ID用于判断隧道内是通信车还是非通信车)*/
|
||||
UpdateEcsRelTrain(wEcsId);
|
||||
|
||||
/*2.监督ECS隧道内的停车状态*/
|
||||
wRelTrainId = GetEcsRelTrainId(wEcsId); /*获取ECS关联列车ID*/
|
||||
wBufIndex = GetTrainBufIndex(wRelTrainId);
|
||||
if (TRAIN_SUM_MAX > wBufIndex)
|
||||
{
|
||||
/*关联列车ID有效,隧道内存在通信车,按照通信车监督隧道列车停车状态*/
|
||||
MonitorEcsTrainByCommTrain(wEcsId);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*关联列车ID无效,隧道内不存在通信车,按照非通信车监督隧道列车停车状态*/
|
||||
MonitorEcsTrainByBadTrain(wEcsId);
|
||||
}
|
||||
|
||||
/*3.更新ECS隧道拥堵状态*/
|
||||
UpdateEcsJamState(wEcsId);
|
||||
|
||||
/*4.根据ECS隧道拥堵状态,设置继电器驱动状态*/
|
||||
EcsFanRelayDriveProc(wEcsId);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*ESC自动触发停用时,需要周期设置控制风机方向的继电器落下,其它相关状态已在ATS命令处理时清除*/
|
||||
(void)SetRelayDriveState(wFanUpRelayId, RELAY_DRIVE_STATE_DOWN);
|
||||
(void)SetRelayDriveState(wFanDownRelayId, RELAY_DRIVE_STATE_DOWN);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*非本控区ECS,不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -456,14 +456,6 @@ UINT8 FindRouteLeaveAxis(const UINT16 routeId);
|
||||
*/
|
||||
void RtnRealyAdhesionStatePro(void);
|
||||
|
||||
/*
|
||||
* 功能描述:ECS监督处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void EcsMonitorProc(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -18,7 +18,7 @@ UINT16 LocalCiIndicatorIdBuf[INDICATOR_SUM_MAX] = {0u};/*
|
||||
INT16 IndicatorCurSum = 0; /*指示器当前总数*/
|
||||
|
||||
OCStationIndicConfigDataStru g_OCStationIndicConfigDataStru[INDICATOR_SUM_MAX] = { 0u };
|
||||
UINT16 g_OCStationIndicatorCurSum = 0; /*本联锁OC站(集中站和非集中站)指示器总数,不涉及主备跟随,取值范围 [0,2000) 暂无使用*/
|
||||
UINT16 g_OCStationIndicatorCurSum = 0; /*本联锁OC站(集中站和非集中站)指示器总数,不涉及主备跟随,取值范围0-1000*/
|
||||
|
||||
|
||||
|
||||
@@ -457,44 +457,3 @@ UINT8 GetIndicatorRelNonReturnId(UINT16 indicatorId)
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:通过表示灯类型获取表示灯ID
|
||||
* 参数说明:UINT8 cDevType 表示灯类型
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 表示灯ID
|
||||
* Created By LQ 2026.01.23
|
||||
*/
|
||||
UINT16 GetIndicatorIdByDevType(UINT8 cDevType)
|
||||
{
|
||||
UINT16 wRetVal = 0U;
|
||||
UINT16 wDevCurSum = 0U; /*表示灯总数*/
|
||||
UINT16 ii = 0U;
|
||||
UINT16 wDevId = 0U; /*表示灯ID*/
|
||||
UINT8 cIndicatorType = 0U; /*表示灯类型*/
|
||||
|
||||
if (0U != cDevType)
|
||||
{
|
||||
wDevCurSum = GetIndicatorCurSum(); /*获取指示器当前总数*/
|
||||
for (ii = 0U; ii < wDevCurSum; ii++)
|
||||
{
|
||||
wDevId = GetIndicatorId(ii); /*获取表示灯ID*/
|
||||
cIndicatorType = GetIndicatorType(wDevId); /*获取表示灯类型*/
|
||||
if (cDevType == cIndicatorType)
|
||||
{
|
||||
wRetVal = wDevId;
|
||||
break; /*找到目标类型,停止遍历*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续遍历查找*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参非法,返回0*/
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
@@ -185,15 +185,6 @@ UINT8 GetIndicatorDevId(UINT16 indicatorId);
|
||||
*/
|
||||
UINT8 GetIndicatorRelNonReturnId(UINT16 indicatorId);
|
||||
|
||||
/*
|
||||
* 功能描述:通过表示灯类型获取表示灯ID
|
||||
* 参数说明:UINT8 cDevType 表示灯类型
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 其它 表示灯ID
|
||||
* Created By LQ 2026.01.23
|
||||
*/
|
||||
UINT16 GetIndicatorIdByDevType(UINT8 cDevType);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
|
||||
/*总数最大值*/
|
||||
#define INDICATOR_SUM_MAX ((UINT16)2000) /*指示器最大数量,每个联锁40个指示灯,总共按20个联锁 */
|
||||
#define INDICATOR_SUM_MAX ((UINT16)1000) /*指示器最大数量,每个联锁40个指示灯,总共按20个联锁 */
|
||||
#define INDICATOR_RELAY_SUM_MAX ((UINT16)5) /*指示器相关继电器最大数量*/
|
||||
#define RTNINDICATOR_SUM_MAX ((UINT8)2U) /*一个虚拟联锁集中区无人折返最大数量*/
|
||||
|
||||
@@ -132,9 +132,6 @@
|
||||
#define INDICATOR_TYPE_RELAY_HUNXIAN ((UINT8)0x92) /*继电器混线表示灯*/
|
||||
#define INDICATOR_TYPE_AUTORTN_ADHESION ((UINT8)0x62) /*无人折返按钮粘连状态指示灯*/
|
||||
#define INDICATOR_TYPE_COMM_AXIS ((UINT8)0x96) /*与计轴通信状态:1-所有计轴通信正常;3-存在计轴通信异常*/
|
||||
#define INDICATOR_TYPE_ALLSEC_FLOCK ((UINT8)0x65) /*全线区段封锁指示灯*/
|
||||
#define INDICATOR_TYPE_CESB ((UINT8)0x98) /*CESB指示灯*/
|
||||
#define INDICATOR_TYPE_SCX_SHD_ESS ((UINT8)0x97U) /*迪士尼试车线SHD-ESS状态表示灯*/
|
||||
|
||||
|
||||
/*指示灯显示状态*/
|
||||
@@ -184,12 +181,6 @@
|
||||
#define INDICATOR_SHOW_SC_NO ((UINT8)0x55) /*试车指示灯显示无效*/
|
||||
#define INDICATOR_SHOW_SC_YES ((UINT8)0xaa) /*试车指示灯显示有效*/
|
||||
|
||||
#define INDICATOR_CESB_INACTIVE_NOFLOCK ((UINT8)0x01) /* CESB未激活未封锁*/
|
||||
#define INDICATOR_CESB_INACTIVE_FLOCK ((UINT8)0x02) /* CESB未激活且封锁*/
|
||||
#define INDICATOR_CESB_ACTIVE_FLOCK ((UINT8)0x03) /* CESB激活且封锁*/
|
||||
#define INDICATOR_CESB_CUT_FLOCK ((UINT8)0x04) /* CESB旁路且封锁*/
|
||||
#define INDICATOR_CESB_CUT_NOFLOCK ((UINT8)0x05) /* CESB旁路且未封锁*/
|
||||
|
||||
#define INDIC_POWER_I_1 ((UINT8)0x01) /*一路电源1*/
|
||||
#define INDIC_POWER_I_2 ((UINT8)0x02) /*一路电源2*/
|
||||
#define INDIC_POWER_II_1 ((UINT8)0x03) /*二路电源1*/
|
||||
|
||||
@@ -129,9 +129,6 @@ UINT8 InitAllStaticDataStr(void)
|
||||
/*声光报警器配置数据结构体*/
|
||||
chRtn &= CommonMemSet(SGBJConfigDataStru, (UINT32)(SGBJ_SUM_MAX * sizeof(SGBJConfigDataStruct)), 0u, (UINT32)(SGBJ_SUM_MAX * sizeof(SGBJConfigDataStruct)));
|
||||
|
||||
/*ECS配置数据结构体*/
|
||||
chRtn &= CommonMemSet(ECSConfigDataStru, (UINT32)(ECS_MAX_NUM * sizeof(ECSConfigDataStruct)), (UINT8)0U, (UINT32)(ECS_MAX_NUM * sizeof(ECSConfigDataStruct)));
|
||||
|
||||
return chRtn;
|
||||
}
|
||||
|
||||
@@ -670,6 +667,7 @@ UINT8 ReadConfigureData(void)
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
InvSecSum = ReadInvaSectionConfigData(LocalCiId, InvSecConfigDataStru); /*读侵入区段配置数据*/
|
||||
@@ -774,44 +772,6 @@ UINT8 ReadConfigureData(void)
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
/*读SSKS闪灯稳灯继电器配置数据*/
|
||||
if (0U == rtnVal)
|
||||
{
|
||||
gSsksLightRelaySum = ReadSsksLightRelayCfgData(LocalCiId, gSsksLightRelayCfgStr);
|
||||
if (-1 == gSsksLightRelaySum)
|
||||
{
|
||||
rtnVal = 40U; /*读取SSKS闪灯稳灯继电器配置数据失败*/
|
||||
debug_infor_printf((const)"\nReadSsksLightRelayCfgData fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
/*读联络线旁路继电器配置数据*/
|
||||
if (0U == rtnVal)
|
||||
{
|
||||
gConnectOverrideRelaySum = ReadConnectOverrideCfgData(LocalCiId, gConnectOverrideRelayCfgStr);
|
||||
if (-1 == gConnectOverrideRelaySum)
|
||||
{
|
||||
rtnVal = 46U; /*读取联络线旁路继电器配置数据失败*/
|
||||
debug_infor_printf((const)"\nReadConnectOverrideCfgData fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
/*读声光报警器配置数据*/
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
@@ -831,56 +791,6 @@ UINT8 ReadConfigureData(void)
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
OhlCurSum = ReadOhlConfigData(LocalCiId, OhlConfigDataStru);
|
||||
if (-1 == OhlCurSum)
|
||||
{
|
||||
rtnVal = 39U;/*读取接触网数据失败*/
|
||||
debug_infor_printf((const)"ReadOhlConfigData fail.");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0U == rtnVal)
|
||||
{
|
||||
ECSCurSum = ReadEcsConfigData(LocalCiId, ECSConfigDataStru);
|
||||
if (-1 == ECSCurSum)
|
||||
{
|
||||
rtnVal = 43U;/*读取ECS数据失败*/
|
||||
debug_infor_printf((const)"\nReadEcsConfigData fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0U == rtnVal)
|
||||
{
|
||||
RtnTemp = ReadLocalCesbConfigData(LocalCiId, &LocalCesbConfigDataStru);
|
||||
if (0U == RtnTemp)
|
||||
{
|
||||
rtnVal = 45U;/*读取CESB数据失败*/
|
||||
debug_infor_printf((const)"\nReadCesbConfigData fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
/*读系统参数配置数据*/
|
||||
@@ -1009,7 +919,7 @@ UINT8 ReadConfigureData(void)
|
||||
g_ret = ReadEaConfigData(g_szEaConfig);
|
||||
if (-1 == g_ret)
|
||||
{
|
||||
rtnVal = 40u;
|
||||
rtnVal = 37u;
|
||||
debug_infor_printf((const)"ReadEaConfigData errcode =%d, ReadEaConfigData", rtnVal);
|
||||
}
|
||||
else
|
||||
@@ -1069,13 +979,7 @@ UINT8 ReadConfigureData(void)
|
||||
if (CI_SUCCESS == retValue)
|
||||
{
|
||||
/*读取联络线数据*/
|
||||
g_ret = OcConnectConfigDataToDevStruct(SignalConfigDataStru,
|
||||
PhysicalSectionConfigDataStru,
|
||||
SwitchConfigDataStru,
|
||||
OcConnetDataCfgStru,
|
||||
RelayConfigDataStru,
|
||||
RouteConfigDataStru,
|
||||
LogicSectionConfigDataStru);
|
||||
g_ret = OcConnectConfigDataToDevStruct(SignalConfigDataStru, PhysicalSectionConfigDataStru, SwitchConfigDataStru, OcConnetDataCfgStru, RelayConfigDataStru);
|
||||
if (-1 == g_ret)
|
||||
{
|
||||
rtnVal = 35u;
|
||||
@@ -1137,7 +1041,7 @@ UINT8 ReadConfigureData(void)
|
||||
if (0 == g_ret)
|
||||
{
|
||||
debug_infor_printf((const)"PhySectionNearConfigDataManage Error\n");
|
||||
rtnVal = 41u;
|
||||
rtnVal = 37u;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1148,87 +1052,6 @@ UINT8 ReadConfigureData(void)
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0U == rtnVal)
|
||||
{
|
||||
/*读取物理区段在计轴中的索引*/
|
||||
g_ret = (INT16)ReadPhySecIndexInAxle(LocalCiId, PhysicalSectionConfigDataStru);
|
||||
if (0 == g_ret)
|
||||
{
|
||||
debug_infor_printf((const)"ReadPhySecIndexInAxle Error\n");
|
||||
rtnVal = 42u;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0U == rtnVal)
|
||||
{
|
||||
/*ECS关联物理区段初始化*/
|
||||
RtnTemp = EcsIncPhySecInfoInit(ECSConfigDataStru); /*需要在Link后面初始化*/
|
||||
if (0U == RtnTemp)
|
||||
{
|
||||
rtnVal = 44U; /*ECS关联物理区段初始化失败*/
|
||||
debug_infor_printf((const)"\nEcsIncPhySecInfoInit fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
/*迪士尼联络线逻辑区段继电器条件读取*/
|
||||
retValue = OcConnectLogSecCondInit();
|
||||
if (1u == retValue)
|
||||
{
|
||||
ConnectLogSecCondRelayInit(ConnectLogSecCondCfgStru, LogicSectionConfigDataStru);
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnVal = 47u;
|
||||
debug_infor_printf((const)"OcConnectLogSecCondInit errcode =%d, OcConnectLogSecCondInit", rtnVal);
|
||||
}
|
||||
}
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
/*迪士尼共用道岔的逻辑区段整理*/
|
||||
retValue = InitLogSecSwitchShareStatusByPhysec();
|
||||
if (0U == retValue)
|
||||
{
|
||||
rtnVal = 48U;
|
||||
debug_infor_printf((const)"\InitLogSecSwitchShareStatusByPhysec fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
retValue = InitSpeedLimitSecConfigData();
|
||||
if (0U == retValue)
|
||||
{
|
||||
rtnVal = 49U;
|
||||
debug_infor_printf((const)"\InitSpeedLimitSecConfigData fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1425,33 +1248,6 @@ UINT8 DeviceDataManage(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (0U == rtValue)
|
||||
{
|
||||
reval = OhlConfigDataManage();
|
||||
if (CI_ERROR == reval)
|
||||
{
|
||||
rtValue = 1u;
|
||||
}
|
||||
}
|
||||
|
||||
if (0U == rtValue)
|
||||
{
|
||||
/*读取本地ECS ID*/
|
||||
reval = EcsConfigDataManage();
|
||||
if (CI_ERROR == reval)
|
||||
{
|
||||
rtValue = 1U;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回成功*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回失败*/
|
||||
}
|
||||
|
||||
return rtValue;
|
||||
}
|
||||
/*
|
||||
@@ -1484,8 +1280,7 @@ UINT8 SetautoRouteOpposedRoute(UINT16 autoRouteRouteId,UINT8 routeType)
|
||||
autoRouteSum = GetAutoRouteRouteCurSum();/*自动进路数目*/
|
||||
autoReturnSum = GetAutoReturnRouteCurSum();/*自动折返进路数目*/
|
||||
allAutoReturnSum = GetAllAutoReturnRouteCurSum();/*全自动折返进路数目*/
|
||||
if ((AUTO_ROUTE_SUM_MAX <= autoRouteSum) || (AUTO_RETURN_SUM_MAX<=autoReturnSum )
|
||||
||(ALL_AUTO_RETURN_SUM_MAX <= allAutoReturnSum))
|
||||
if ((autoRouteSum >= AUTO_ROUTE_SUM_MAX) || (autoReturnSum >= AUTO_RETURN_SUM_MAX))
|
||||
{/*配置数据总数错误*/
|
||||
returnValue = CI_ERROR;
|
||||
}
|
||||
@@ -2107,26 +1902,18 @@ UINT8 CheckCiHaveZcSumErr(const UINT8 ciId)
|
||||
* OcConnetDataCfgStruct* pConnectCfgData 联络线数据结构体
|
||||
* RelayConfigDataStruct* pRelayCfgData 继电器结构体
|
||||
* 返回值 : 0,成功;-1,失败
|
||||
* NOTE:
|
||||
* NOTE£º¼¯³Ébug YF0083-224
|
||||
*/
|
||||
INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData,
|
||||
PhysicalSectionConfigDataStruct* pPhyCfgData,
|
||||
SwitchConfigDataStruct* pSwitchCfgData,
|
||||
OcConnetDataCfgStruct* pConnectCfgData,
|
||||
RelayConfigDataStruct* pRelayCfgData,
|
||||
RouteConfigDataStruct *pRouteCfgData,
|
||||
LogicSectionConfigDataStruct *pLogSecCfgData)
|
||||
INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData, PhysicalSectionConfigDataStruct* pPhyCfgData, SwitchConfigDataStruct* pSwitchCfgData, OcConnetDataCfgStruct* pConnectCfgData, RelayConfigDataStruct* pRelayCfgData)
|
||||
{
|
||||
/*变量初始化*/
|
||||
UINT16 i = 0u;
|
||||
UINT16 j = 0u;
|
||||
UINT16 k = 0u;
|
||||
UINT16 m = 0U;
|
||||
UINT16 n = 0U;
|
||||
INT8 retValue = -1;
|
||||
|
||||
if ((NULL != pSignalCfgData) && (NULL != pPhyCfgData) && (NULL != pSwitchCfgData)
|
||||
&& (NULL != pConnectCfgData) && (NULL != pRelayCfgData) && (NULL != pRouteCfgData) && (NULL != pLogSecCfgData))
|
||||
if ((NULL != pSignalCfgData) && (NULL != pPhyCfgData) && (NULL != pSwitchCfgData) && ((NULL != pConnectCfgData)))
|
||||
{
|
||||
retValue = 0;
|
||||
for (i = 0u; i < OcConnetDataDevNum; i++)
|
||||
@@ -2228,68 +2015,11 @@ INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData,
|
||||
pSwitchCfgData[j].DsHRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayId;
|
||||
pSwitchCfgData[j].DsDrvHRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
}
|
||||
/*BYPASS*/
|
||||
/*PYPASS*/
|
||||
else if (SWITCH_BYPASSJ_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSwitchCfgData[j].ByPassRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayId;
|
||||
}
|
||||
/*反位使能请求RWM*/
|
||||
else if (SWITCH_RWM_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSwitchCfgData[j].RwmRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
|
||||
/*给迪士尼联络线进路添加关键道岔,遍历所有进路*/
|
||||
for (m = 0u; m < ROUTE_SUM_MAX; m++)
|
||||
{
|
||||
/*判断迪士尼联络线进路类型*/
|
||||
if ((ROUTE_DISNEY_CONNECT_ENDMINE == pRouteCfgData[m].cDisneyConnectRouteAttr)
|
||||
|| (ROUTE_DISNEY_CONNECT_STARTMINE == pRouteCfgData[m].cDisneyConnectRouteAttr))
|
||||
{
|
||||
/*后半段属于本线,或者前半段属于本线,遍历所有道岔*/
|
||||
for (n = 0u; n < (UINT16)pRouteCfgData[m].RouteSwitchSum; n++)
|
||||
{
|
||||
/*判断道岔ID是否为当前RWM继电器对应道岔ID*/
|
||||
if (pRouteCfgData[m].RouteSwitchStru[n].SwitchId == pSwitchCfgData[j].SwitchId)
|
||||
{
|
||||
/*道岔ID一致,赋值联络线关键道岔ID*/
|
||||
pRouteCfgData[m].wRelConnectSwitchId = pSwitchCfgData[j].SwitchId;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续遍历*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*类型不满足,无需添加关键道岔,继续遍历*/
|
||||
}
|
||||
}
|
||||
|
||||
for (m = 0u; m < LOGIC_SECTION_SUM_MAX; m++)
|
||||
{
|
||||
for (n = 0u; n < pLogSecCfgData[m].chLogsecSwitchSum; n++)
|
||||
{
|
||||
if ((pLogSecCfgData[m].LogsecSwitchIdStru[n].SwitchId == pSwitchCfgData[j].SwitchId)
|
||||
&& (SWITCH_POSITION_FANWEI == pLogSecCfgData[m].LogsecSwitchIdStru[n].SwitchPosition))
|
||||
{
|
||||
/*逻辑区段反位包含该继电器,记录联络线道岔ID*/
|
||||
pLogSecCfgData[m].wConnectSwticthId = pSwitchCfgData[j].SwitchId;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续遍历*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*反位使能旁路ENABLE BYPASS*/
|
||||
else if (SWITCH_ENABLE_BYPASS_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSwitchCfgData[j].EnableBypassRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
@@ -2357,6 +2087,7 @@ INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData,
|
||||
return(retValue);
|
||||
}
|
||||
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化OC 联络线接口继电器配置表数据
|
||||
*参数说明:void
|
||||
@@ -2436,132 +2167,6 @@ UINT8 OcConnectConfigDataStructInit(void)
|
||||
return(rtnValue);
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化联络线逻辑区段继电器条件器配置表数据
|
||||
*参数说明:void
|
||||
*返回值:1,成功;0,失败
|
||||
*********************************************/
|
||||
UINT8 OcConnectLogSecCondInit(void)
|
||||
{
|
||||
UINT8 funcRtn = 0u;
|
||||
UINT8* pDataAddr = NULL; /*数据地址*/
|
||||
UINT32 DataSize = 0u; /*数据大小(字节数)*/
|
||||
UINT16 i = 0u;
|
||||
UINT16 j = 0u;
|
||||
UINT16 realRowCount = 0u; /*实际表数据的行数*/
|
||||
UINT8 rtnValue = 0u;
|
||||
|
||||
|
||||
/*读取数据*/
|
||||
/*读取 默认行车序列 数据*/
|
||||
funcRtn = dquGetConfigDataNew((const)DataPath, OC_DATA_TYPE, CONNECT_LOGSEC_COND_ID, &pDataAddr, &DataSize, &realRowCount);
|
||||
if (0u == funcRtn)
|
||||
{
|
||||
/*函数调用失败*/
|
||||
rtnValue = 1u;
|
||||
debug_infor_printf((const)"\nCONNECT_LOGSEC_COND_ID NO IN FS\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnValue = 1u;
|
||||
/*数据正常*/
|
||||
if ((0u != DataSize) && (0u != realRowCount))
|
||||
{
|
||||
if (0u != (DataSize % realRowCount))
|
||||
{
|
||||
debug_infor_printf((const)"\n OC_DATA_TYPE,CONNECT_LOGSEC_COND_ID len %d %d not equal to fs\n", DataSize, realRowCount);
|
||||
DebugPrintAppError(ERROR_fs_columns_len_not_equal_to_ci_software, CI_DEVICE_TYPE_FS_TABLE, ((UINT32)CI_DATA_TYPE << 8) + CONNECT_LOGSEC_COND_ID, PRINT_ONCE);
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*填写设备数量*/
|
||||
ConnectLogSecCondDevNum = realRowCount;
|
||||
/*内存先设为无效*/
|
||||
(void)CommonMemSet(ConnectLogSecCondCfgStru, sizeof(ConnectLogSecDataCfgStru) *OC_CONNECT_LOGSEC_COND_SUM_MAX,
|
||||
0x00u, sizeof(ConnectLogSecDataCfgStru) *OC_CONNECT_LOGSEC_COND_SUM_MAX);
|
||||
|
||||
for (i = 0u; i < realRowCount; i++)
|
||||
{
|
||||
if (OC_CONNECT_LOGSEC_COND_SUM_MAX > i)
|
||||
{
|
||||
ConnectLogSecCondCfgStru[i].LogSecId = dquCiShortFromChar(pDataAddr);
|
||||
pDataAddr += 2u;
|
||||
ConnectLogSecCondCfgStru[i].RelSecDirLockRelayId = ShortFromChar(pDataAddr);
|
||||
pDataAddr += 2u;
|
||||
ConnectLogSecCondCfgStru[i].RelRoutePrtlRelayId = ShortFromChar(pDataAddr);
|
||||
pDataAddr += 2u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*无操作*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
}
|
||||
return(rtnValue);
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 将联络线逻辑区段继电器条件数据初始化到对应设备
|
||||
* 参数说明: ConnectLogSecDataCfgStru *pConnectLogSecCondCfgStru 联络线逻辑区段继电器条件配置数据结构体
|
||||
* LogicSectionConfigDataStruct *pLogicSectionConfigDataStru 逻辑区段配置数据结构体
|
||||
* 返回值 : 0,成功;-1,失败
|
||||
* NOTE:集成bug YF0083-224
|
||||
*/
|
||||
INT8 ConnectLogSecCondRelayInit(ConnectLogSecDataCfgStru *pConnectLogSecCondCfgStru,
|
||||
LogicSectionConfigDataStruct *pLogicSectionConfigDataStru)
|
||||
{
|
||||
/*变量初始化*/
|
||||
UINT16 i = 0u; /*循环变量*/
|
||||
UINT16 j = 0u; /*循环变量*/
|
||||
INT8 retValue = -1; /*返回值*/
|
||||
|
||||
if ((NULL != pConnectLogSecCondCfgStru) && (NULL != pLogicSectionConfigDataStru))
|
||||
{
|
||||
retValue = 0;
|
||||
for (i = 0u; i < ConnectLogSecCondDevNum; i++)
|
||||
{
|
||||
for (j = 0u; j < LOGIC_SECTION_SUM_MAX; j++)
|
||||
{
|
||||
if (pLogicSectionConfigDataStru[j].LogicSectionId == pConnectLogSecCondCfgStru[i].LogSecId)
|
||||
{
|
||||
pLogicSectionConfigDataStru[j].wRelSecDirLockRelayId = pConnectLogSecCondCfgStru[i].RelSecDirLockRelayId;
|
||||
pLogicSectionConfigDataStru[j].wRelRoutePrtlRelayId = pConnectLogSecCondCfgStru[i].RelRoutePrtlRelayId;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续遍历*/
|
||||
}
|
||||
}
|
||||
|
||||
if (LOGIC_SECTION_SUM_MAX == j)
|
||||
{
|
||||
/*联络线逻辑区段继电器条件表配置的逻辑区段未在电子地图找到,返回失败*/
|
||||
retValue = -1;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续遍历*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回失败*/
|
||||
retValue = -1;
|
||||
}
|
||||
|
||||
return(retValue);
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:获取静态数据
|
||||
*参数说明:UINT32* pConfigDataAdderBuf 静态数据存放地址,UINT16 pConfigDataLenBuf 静态数据长度存放地址,UINT16 wBufMaxLen数组容量
|
||||
@@ -3822,39 +3427,3 @@ UINT16 GetTiocDeviceConfigData(UINT32* pConfigDataAddrBuf,UINT16* pConfigDataLen
|
||||
|
||||
return wRetSum;
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:读取指定CI与指定设备通信关系配置数据
|
||||
*参数说明:const UINT8 chCiId 联锁ID
|
||||
* const UINT8 chSystemType 设备类型
|
||||
* UINT8 szDeviceIdBuf[TRANSMIT_OBJECT_DEVICE_SUM_MAX] 输出的设备ID
|
||||
*返回值:通信关系数
|
||||
* by cgh 20250605
|
||||
*********************************************/
|
||||
UINT8 ReadCiTransmitSpecifyDevData(const UINT8 chCiId, const UINT8 chSystemType, UINT8 szDeviceIdBuf[TRANSMIT_OBJECT_DEVICE_SUM_MAX])
|
||||
{
|
||||
UINT16 ii = 0U;
|
||||
UINT8 chReval = 0U;
|
||||
|
||||
if ((0U != chCiId) && (NULL != szDeviceIdBuf))
|
||||
{
|
||||
for (ii = 0U; ii < dquCICfgDtStr.TrsmtRlsDtStrLen; ii++)
|
||||
{
|
||||
if ((chCiId == dquCICfgDtStr.TrsmtRlsDtStr[ii].CiId) && (chSystemType == dquCICfgDtStr.TrsmtRlsDtStr[ii].SystemType))
|
||||
{
|
||||
chReval = dquCICfgDtStr.TrsmtRlsDtStr[ii].DeviceSum;
|
||||
(void)CommonMemCpy((void*)(szDeviceIdBuf), (UINT32)(sizeof(UINT8) * TRANSMIT_OBJECT_DEVICE_SUM_MAX), (const void*)(dquCICfgDtStr.TrsmtRlsDtStr[ii].DeviceIdBuf), (UINT32)(sizeof(UINT8) * TRANSMIT_OBJECT_DEVICE_SUM_MAX));
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
chReval = UINT8_MAX;
|
||||
}
|
||||
|
||||
return chReval;
|
||||
}
|
||||
@@ -142,13 +142,6 @@ UINT8 CheckCiHaveZcSumErr(const UINT8 ciId);
|
||||
*********************************************/
|
||||
UINT8 OcConnectConfigDataStructInit(void);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化联络线逻辑区段继电器条件器配置表数据
|
||||
*参数说明:void
|
||||
*返回值:1,成功;0,失败
|
||||
*********************************************/
|
||||
UINT8 OcConnectLogSecCondInit(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 将联络线接口继电器配置表数据初始化到对应设备
|
||||
* 参数说明: SignalConfigDataStruct* pSignalCfgData 信号机结构体
|
||||
@@ -159,23 +152,7 @@ UINT8 OcConnectLogSecCondInit(void);
|
||||
* 返回值 : 0,成功;-1,失败
|
||||
* NOTE:集成bug YF0083-224
|
||||
*/
|
||||
INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData,
|
||||
PhysicalSectionConfigDataStruct* pPhyCfgData,
|
||||
SwitchConfigDataStruct* pSwitchCfgData,
|
||||
OcConnetDataCfgStruct* pConnectCfgData,
|
||||
RelayConfigDataStruct* pRelayCfgData,
|
||||
RouteConfigDataStruct* pRouteCfgData,
|
||||
LogicSectionConfigDataStruct* pLogSecCfgData);
|
||||
|
||||
/*
|
||||
* 功能描述: 将联络线逻辑区段继电器条件数据初始化到对应设备
|
||||
* 参数说明: ConnectLogSecDataCfgStru *pConnectLogSecCondCfgStru 联络线逻辑区段继电器条件配置数据结构体
|
||||
* LogicSectionConfigDataStruct *pLogicSectionConfigDataStru 逻辑区段配置数据结构体
|
||||
* 返回值 : 0,成功;-1,失败
|
||||
* NOTE:
|
||||
*/
|
||||
INT8 ConnectLogSecCondRelayInit(ConnectLogSecDataCfgStru *pConnectLogSecCondCfgStru,
|
||||
LogicSectionConfigDataStruct *pLogicSectionConfigDataStru);
|
||||
INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData, PhysicalSectionConfigDataStruct* pPhyCfgData, SwitchConfigDataStruct* pSwitchCfgData, OcConnetDataCfgStruct* pConnectCfgData, RelayConfigDataStruct* pRelayCfgData);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:获取静态数据
|
||||
@@ -183,18 +160,6 @@ INT8 ConnectLogSecCondRelayInit(ConnectLogSecDataCfgStru *pConnectLogSecCondCfgS
|
||||
*返回值:静态数据数量
|
||||
*********************************************/
|
||||
UINT16 GetTiocDeviceConfigData(UINT32* pConfigDataAddrBuf, UINT16* pConfigDataLenBuf, UINT16 wBufMaxLen);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:读取指定CI与指定设备通信关系配置数据
|
||||
*参数说明:const UINT8 chCiId 联锁ID
|
||||
* const UINT8 chSystemType 设备类型
|
||||
* UINT8 szDeviceIdBuf[TRANSMIT_OBJECT_DEVICE_SUM_MAX] 输出的设备ID
|
||||
*返回值:通信关系数
|
||||
* by cgh 20250605
|
||||
*********************************************/
|
||||
UINT8 ReadCiTransmitSpecifyDevData(const UINT8 chCiId, const UINT8 chSystemType, UINT8 szDeviceIdBuf[TRANSMIT_OBJECT_DEVICE_SUM_MAX]);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#include "NonAutoReturnConfigDataManage.h"
|
||||
#include "../Deployment/DeploymentExtern.h"
|
||||
#include "NonAutoReturnDataManage.h"
|
||||
#include "../ECS/ECSDataManage.h"
|
||||
|
||||
/****************************初始化动态数据队列********************************************/
|
||||
extern TransmitRelationDataStruct TransmitRelaDataStru[TRANSMIT_OBJECT_SUM_MAX]; /*引用已定义通信关系数据结构体*/
|
||||
@@ -449,12 +448,6 @@ UINT8 InitialProcess(void)
|
||||
|
||||
ret = InitAxleToCiDataStru();
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{
|
||||
ret = InitAxisSecClassData();
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{/*cgh-合并CID-3037-3:*/
|
||||
/*初始化中央联锁结构体*/
|
||||
@@ -463,26 +456,6 @@ UINT8 InitialProcess(void)
|
||||
ret = InitialOCStationIndicStaData();
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{
|
||||
/*初始化SSKS闪灯稳灯继电器动态数据*/
|
||||
ret = InitSsksLightRelayData();
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{
|
||||
/*初始化联络线旁路继电器动态数据*/
|
||||
ret = InitConnectOverrideData();
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{
|
||||
/*初始化无人折返指示灯状态数据*/
|
||||
@@ -499,33 +472,6 @@ UINT8 InitialProcess(void)
|
||||
{/*初始化LEU数据*/
|
||||
(void)InitLEUDataStru();
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{/*初始化接触网数据*/
|
||||
(void)InitOhlDataStru();
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{
|
||||
/*初始化ECS数据*/
|
||||
(void)InitialEcsData();
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回失败*/
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == ret)
|
||||
{
|
||||
/*初始化限速区段数据*/
|
||||
(void)InitTSRSecInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回失败*/
|
||||
}
|
||||
|
||||
|
||||
/*初始化设备打印数据*/
|
||||
(void)RecordDeviceDataLog(CI_ERROR);
|
||||
|
||||
@@ -640,7 +586,6 @@ UINT8 InitialSignalData(void)
|
||||
SignalDataStru[signalId].DetainBtnErrFlag = SIGNAL_ZFS_BTN_ERR_FLAG_NO; /*扣车按钮故障标志*/
|
||||
SignalDataStru[signalId].CancelDetainBtnErrFlag = SIGNAL_ZFS_BTN_ERR_FLAG_NO; /*取消扣车按钮故障标志*/
|
||||
SignalDataStru[signalId].DetainBtnPressCycNum = 0U; /*扣车按钮1按下周期*/
|
||||
SignalDataStru[signalId].DetainSndBtnPressCycNum = 0U; /*扣车按钮2按下周期*/
|
||||
SignalDataStru[signalId].CancelDetainBtnPressCycNum = 0U; /*取消扣车按钮正常按下周期*/
|
||||
SignalDataStru[signalId].CancelDetainErrTrigPressCycNum = 0U; /*取消扣车按钮误触发按下周期*/
|
||||
SignalDataStru[signalId].CancelDetainBtnValidFlag = SIGNAL_CANCEL_DETAIN_VALID_NO; /*取消扣车按钮有效标志*/
|
||||
@@ -649,14 +594,9 @@ UINT8 InitialSignalData(void)
|
||||
SignalDataStru[signalId].VobcCroSigInPhyOccSta = SECTION_OCCUPY_NO; /*初始化信号机内方第一区段为空闲,当占压后再给ZC组确认信息*/
|
||||
SignalDataStru[signalId].cSleepTrainLightUpFlag = SIGNAL_SLEEP_TRAIN_LIGHTUP_NO; /*初始化休眠车点亮信号机标志无效*/
|
||||
SignalDataStru[signalId].cInHumidRailFlag = SIGNAL_IN_HUMID_RAIL_NO;
|
||||
SignalDataStru[signalId].cDetCutBtnState = SIGNAL_DETAIN_CUT_VALID_NO; /*扣车旁路按钮状态*/
|
||||
SignalDataStru[signalId].DetCutBtnPressCycNum = 0U; /*扣车旁路按钮正常按下周期*/
|
||||
SignalDataStru[signalId].DetCutBtnErrTrigPressCycNum = 0U; /*扣车旁路按钮误触发按下周期*/
|
||||
SignalDataStru[signalId].cDetCutBtnErrFlag = SIGNAL_ZFS_BTN_ERR_FLAG_NO; /*扣车旁路按钮故障标志*/
|
||||
SignalDataStru[signalId].cDetCutBtnRelayDownState = SIGNAL_RELAY_ERROR_DOWN_YES; /*扣车旁路按钮采集继电器落下状态初始化为异常落下*/
|
||||
|
||||
/*初始化信号机临时限速状态有效*/
|
||||
SignalDataStru[signalId].LinShiXianSuSetFlag = SIGNAL_LINSHIXIANSUSET_STATE_YES;/*临时限速有效*/
|
||||
SignalDataStru[signalId].cTrainCrossRedSignalFlag = SIGNAL_TRAIN_CROSS_RED_NO; /*初始化闯红灯标志无效*/
|
||||
|
||||
|
||||
routeSum = GetRouteCurSum();
|
||||
@@ -824,7 +764,6 @@ UINT8 InitialSwitchData(void)
|
||||
SwitchDataStru[switchId].SingleSwitchCurPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].SwitchDrivePos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].SwitchExpDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].SwitchReverseEnable = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].switchPreExpDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].SwitMoveStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].SwitDriveStartCycNum = 0u;
|
||||
@@ -854,9 +793,6 @@ UINT8 InitialSwitchData(void)
|
||||
SwitchDataStru[switchId].SwitchCollTolerateCycNum = 0U;
|
||||
SwitchDataStru[switchId].SwitchColPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].switchFaultState = SWITCH_FAULT_STATE_YES; /*置为板卡故障*/
|
||||
SwitchDataStru[switchId].switchNormalPosCycNum = 0u;
|
||||
SwitchDataStru[switchId].switchUnusualLogSecFlag = SWITCH_UNUSUAL_INVALID;
|
||||
SwitchDataStru[switchId].switchMutDrvCycNum = 0u;
|
||||
/*初始化被防护锁闭的进路、保护区段、非进路数量及数组*/
|
||||
for (jj=0; jj<SWITCH_MAX_PROTECT_LOCKED_NUM;jj++)
|
||||
{
|
||||
@@ -909,7 +845,6 @@ UINT8 InitialPhySectionData(void)
|
||||
|
||||
PhysicalSectionDataStru[ii].StopSteadyFlag = PHYSICAL_SECTION_STOPSTEADY_NO;
|
||||
PhysicalSectionDataStru[ii].SecColOccupyStartCycNum = 0u;
|
||||
PhysicalSectionDataStru[ii].SecMergeOccupyStartCycNum = 0U;
|
||||
PhysicalSectionDataStru[ii].SecCurOccupyStartCycNum = 0u;
|
||||
PhysicalSectionDataStru[ii].SecOccuToClearStartCycNum = 0u;
|
||||
PhysicalSectionDataStru[ii].AutoUnlockStartCycNum = 0u;
|
||||
@@ -919,13 +854,10 @@ UINT8 InitialPhySectionData(void)
|
||||
PhysicalSectionDataStru[ii].JumpLockState = PHYSICAL_SECTION_JUMP_LOCK_NO;
|
||||
PhysicalSectionDataStru[ii].SecJumpDelayUnlockStartCycNum = 0u;
|
||||
PhysicalSectionDataStru[ii].JumpLockDelayUnlockFlag = PHYSICAL_JUMPUNLOCK_DELAY_SET_NO;
|
||||
PhysicalSectionDataStru[ii].FLockType = SEC_FLOCK_TYPE_NONE;
|
||||
PhysicalSectionDataStru[ii].FLockType = PHY_SEC_FLOCK_TYPE_NONE;
|
||||
PhysicalSectionDataStru[ii].UtOrCtOccFlag = SECTION_OCCUPY_YES;
|
||||
PhysicalSectionDataStru[ii].UtOrCtOccuStartCycNum = 0u;
|
||||
PhysicalSectionDataStru[ii].PhySecPreResetState = PHYSICAL_SECTION_PRE_RESET_NO;
|
||||
PhysicalSectionDataStru[ii].chPreResetBack = PHY_RESET_BACK_RECIVE_YES;
|
||||
PhysicalSectionDataStru[ii].chDirectResetRst = PHYSICAL_DIRECT_RESET_NO;
|
||||
PhysicalSectionDataStru[ii].chDirectResetBack = PHY_RESET_BACK_RECIVE_YES;
|
||||
PhysicalSectionDataStru[ii].JumpLockStateToZC = PHYSICAL_SECTION_JUMP_LOCK_NO;
|
||||
PhysicalSectionDataStru[ii].wPhyErrUnlockTime = 0U;
|
||||
PhysicalSectionDataStru[ii].cAreaUrgentBrakeState = PHYSEC_AREA_URGENT_NO;
|
||||
@@ -934,7 +866,6 @@ UINT8 InitialPhySectionData(void)
|
||||
PhysicalSectionDataStru[ii].chPreABLTrainFlag = PHYSICAL_SECTION_ABLOCCUPY_DEFAULT;
|
||||
PhysicalSectionDataStru[ii].dwAblTagSetCyc = 0U;
|
||||
PhysicalSectionDataStru[ii].cPhySecInHumidRailFlag = PHYSEC_IN_HUMID_RAIL_NO;
|
||||
PhysicalSectionDataStru[ii].dwMerOccToIdleStartCycNum = 0U;
|
||||
}
|
||||
|
||||
for (ii = 0u; ii < phySectionDataSum; ii++)
|
||||
@@ -1095,8 +1026,6 @@ UINT8 InitialLogicSectionData(void)
|
||||
LogicSectionDataStru[logicSectionId].chLogicSpksFLockState = LOGIC_SECTION_SPKS_FLOCK_NO;/*仅用于ATS显示;逻辑区段不一定关联SPKS,如果初始化成封锁,无法获取SPKS状态,此逻辑区段会一直为封锁状态*/
|
||||
LogicSectionDataStru[logicSectionId].chAblRelLogSecUsableFlag = LOGIC_ABLNEAR_USE_FLAG_NO; /*初始化ABL接近逻辑区段可用标志*/
|
||||
LogicSectionDataStru[logicSectionId].cRouteLeaveLogFlag = LOGSEC_LEAVE_LOGSEC_REPLY_NO; /*离去区段ABL列车检查不通过*/
|
||||
LogicSectionDataStru[logicSectionId].chLogSecProhibitFAOFlag = LOGSEC_PROHIBIT_FAO_NO; /*逻辑区段允许FAO运行*/
|
||||
LogicSectionDataStru[logicSectionId].chLogSecFlockType = SEC_FLOCK_TYPE_NONE;/*未封锁*/
|
||||
LogicSectionDataStru[logicSectionId].chLinShiXianSuSetSpeed = 0U; /*逻辑区段临时限速设置速度值*/
|
||||
for (jj = 0U; jj < LOGIC_SECTION_RES_SUM_MAX; jj++)
|
||||
{
|
||||
@@ -1118,16 +1047,34 @@ UINT8 InitialLogicSectionData(void)
|
||||
LogicSectionDataStru[logicSectionId].LogSecLogLockState = LOG_SECTION_LOGLOCK_NO;
|
||||
}
|
||||
|
||||
if (RC_WORK_MODE_TIOC == RcWorkMode)
|
||||
|
||||
if (RC_WORK_MODE_TIOC == RcWorkMode) /*RC工作模式为TIOC工作模式*/
|
||||
{
|
||||
/* 初始化逻辑区段未设置临时限速 */
|
||||
for (ii = 0u; ii < logicSectionDataSum; ii++)
|
||||
{
|
||||
logicSectionId = GetLogicSecId(ii);
|
||||
LogicSectionDataStru[logicSectionId].LinShiXianSuSetFlag = LOGSEC_LSXS_SET_STATE_NO;
|
||||
if (FUNC_SWITCH_OFF == chTmcSwitch)
|
||||
{
|
||||
LogicSectionDataStru[logicSectionId].LinShiXianSuSetFlag = LOGSEC_LSXS_SET_STATE_NO;
|
||||
}
|
||||
else
|
||||
{
|
||||
LogicSectionDataStru[logicSectionId].LinShiXianSuSetFlag = LOGSEC_LSXS_SET_STATE_YES;
|
||||
}
|
||||
|
||||
}
|
||||
/* 初始化临时限速信息 */
|
||||
SetTsrSum(0u);
|
||||
if (FUNC_SWITCH_OFF == chTmcSwitch)
|
||||
{
|
||||
SetTsrSureFlag(CI_TSR_SURE_YES);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetTsrSureFlag(CI_TSR_SURE_NO);
|
||||
}
|
||||
}
|
||||
|
||||
else if (RC_WORK_MODE_CI == RcWorkMode)
|
||||
{
|
||||
/*RC工作模式为联锁工作模式*/
|
||||
@@ -1416,24 +1363,6 @@ UINT8 InitialPsdData(void)
|
||||
/*视频清客驱动状态初始化为无效。关联列车ID清0*/
|
||||
PsdDataStru[psdId].chVideoQkDriveState = VIDEO_QK_DRIVE_STATE_INVALID;
|
||||
PsdDataStru[psdId].wVideoQkRelateVobcId = 0U;
|
||||
|
||||
/*屏蔽门故障隔离、被隔离、开关状态、开关门故障状态信息初始化*/
|
||||
PsdDataStru[psdId].psdFaultQStataOne = UINT32_MAX;
|
||||
PsdDataStru[psdId].psdFaultQStataTwo = UINT32_MAX;
|
||||
PsdDataStru[psdId].psdDoorIStateOne = UINT32_MAX;
|
||||
PsdDataStru[psdId].psdDoorIStateTwo = UINT32_MAX;
|
||||
PsdDataStru[psdId].psdDoorsStateOne = UINT32_MAX;
|
||||
PsdDataStru[psdId].psdDoorsStateTwo = UINT32_MAX;
|
||||
PsdDataStru[psdId].psdOpenErrState = PSD_OPEN_CLOSE_ERROR;
|
||||
PsdDataStru[psdId].psdCloseErrState = PSD_OPEN_CLOSE_ERROR;
|
||||
|
||||
PsdDataStru[psdId].cPsdExceptOpenState = PSD_EXCEPT_OPEN_YES; /*初始化为PSD异常打开*/
|
||||
PsdDataStru[psdId].dwPsdRelayDownCycNum = 0U; /*PSD门关继电器落下起始周期*/
|
||||
PsdDataStru[psdId].dwPsdMutualLockCollStartCyc = 0U; /*PSD旁路按钮按下起始周期*/
|
||||
PsdDataStru[psdId].dwPsdMutualLockErrCollCyc = 0U;/*PSD旁路按钮误触发按下周期*/
|
||||
PsdDataStru[psdId].dwPsdMutualLockStartCyc = 0U; /*PSD旁路起效周期*/
|
||||
PsdDataStru[psdId].cPsdMutualLockBtnErrState = PSD_BTN_ERROR_FLAG_NO; /*屏蔽门互锁解除按钮故障状态*/
|
||||
PsdDataStru[psdId].cPsdMutualLockBtnErrDownState = PSD_BTN_ERROR_FLAG_NO; /*屏蔽门互锁解除按钮故障落下状态*/
|
||||
}
|
||||
reVal = CI_SUCCESS;
|
||||
return reVal;
|
||||
@@ -1612,8 +1541,6 @@ UINT8 InitialRouteData(void)
|
||||
RouteDataStru[routeId].NeedOpenNotTrueRepeatStartCount = 0u;/*需开放不满足时重开起始周期*/
|
||||
RouteDataStru[routeId].DCQState = ROUTE_DCQ_NOT_REQUEST;/*无调车请求*/
|
||||
RouteDataStru[routeId].DCTYState = ROUTE_DCT_NOT_AGREE; /*无调车同意*/
|
||||
RouteDataStru[routeId].dwDcAgreeBtnPressCycNum = 0U; /*调车同意按钮按下起始周期*/
|
||||
RouteDataStru[routeId].chDcAgreeButtonErrState = ROUTE_DC_AGREE_BUTTON_OK; /*调车同意按钮未故障*/
|
||||
RouteDataStru[routeId].CancleDelayflag = ROUTE_ZQX_DELAY_NO; /*取消进路无延时解锁*/
|
||||
RouteDataStru[routeId].AutoSigCancleState = AUTO_ROUTE_CANCLE_NO; /*自动信号取消状态为无效*/
|
||||
RouteDataStru[routeId].CancleAutoSigCmd = AUTO_ROUTE_CANCLE_CMD_NO; /*设置自动信号取消命令无效*/
|
||||
@@ -1630,21 +1557,17 @@ UINT8 InitialRouteData(void)
|
||||
RouteDataStru[routeId].ITSRouteApplyTrainIdBuf[k] = 0u;
|
||||
}
|
||||
/*cgh-合并CID-2539-10:*/
|
||||
RouteDataStru[routeId].OverlapNeedCIlockFlag = OVERLAPCILOCK_NO; /*保护区段联锁锁闭标志无效*/
|
||||
RouteDataStru[routeId].OverlapLockProcFlag = OVERLAP_LOCK_PROC_NO; /*保护区段不在锁闭过程中*/
|
||||
RouteDataStru[routeId].GroupRouteCmdFlag = ROUTE_GROUPROUTE_CMD_NO; /*进路不存在组合进路命令标志*/
|
||||
RouteDataStru[routeId].AutoTriggerFlag = AUTO_TRIGGER_SET_NO; /*进路没有设置自动触发标志*/
|
||||
RouteDataStru[routeId].dwFirstElockStartCycNum = 0U; /*进路第一个锁闭的逻辑区段延时设置区段故障起始周期号*/
|
||||
RouteDataStru[routeId].cRelZuHeRouteSGBJDelayFlag = ROUTE_SGBJ_DELAY_OPEN_VALID; /*关联组合进路声光报警延时标志有效*/
|
||||
RouteDataStru[routeId].dwDelayOpenStartCycNum = 0U; /*声光报警进路延时开放延时起始周期*/
|
||||
RouteDataStru[routeId].cRouteNeedDriveSGBJFlag = ROUTE_DRIVE_SGBJ_INVALID; /*进路驱动声光报警标志无效*/
|
||||
RouteDataStru[routeId].cRouteDrivedSGBJFlag = ROUTE_HAS_DRIVED_SGBJ_INVALID; /*初始化进路未驱动过声光报警*/
|
||||
RouteDataStru[routeId].chRouteNearSecSearchState = ROUTE_NEAR_SEC_HAVE_UT; /*初始化进路接近区段查询状态为有故障车*/
|
||||
RouteDataStru[routeId].chRouteApplySwitchCheckFlag = ROUTE_APPLY_SWITCH_CHECK_DEF; /*初始化进路办理相邻控区道岔检查标志*/
|
||||
RouteDataStru[routeId].cRouteToLeadFlag = ROUTE_TO_LEAD_FLAG_NO; /*初始化普通进路转引导进路标志为无效*/
|
||||
RouteDataStru[routeId].cRouteRequestDrvState = RELAY_STATE_DOWN; /*初始化URR驱动落下*/
|
||||
RouteDataStru[routeId].cRouteReleaseDrvState = RELAY_STATE_UP; /*初始化UCL驱动吸起*/
|
||||
RouteDataStru[routeId].cRouteAckDrvState = RELAY_STATE_DOWN; /*初始化UAR驱动落下*/
|
||||
RouteDataStru[routeId].OverlapNeedCIlockFlag = OVERLAPCILOCK_NO; /*保护区段联锁锁闭标志无效*/
|
||||
RouteDataStru[routeId].OverlapLockProcFlag = OVERLAP_LOCK_PROC_NO; /*保护区段不在锁闭过程中*/
|
||||
RouteDataStru[routeId].GroupRouteCmdFlag = ROUTE_GROUPROUTE_CMD_NO; /*进路不存在组合进路命令标志*/
|
||||
RouteDataStru[routeId].AutoTriggerFlag = AUTO_TRIGGER_SET_NO; /*进路没有设置自动触发标志*/
|
||||
RouteDataStru[routeId].dwFirstElockStartCycNum = 0U; /*进路第一个锁闭的逻辑区段延时设置区段故障起始周期号*/
|
||||
RouteDataStru[routeId].cRelZuHeRouteSGBJDelayFlag = ROUTE_SGBJ_DELAY_OPEN_VALID; /*关联组合进路声光报警延时标志有效*/
|
||||
RouteDataStru[routeId].dwDelayOpenStartCycNum = 0U; /*声光报警进路延时开放延时起始周期*/
|
||||
RouteDataStru[routeId].cRouteNeedDriveSGBJFlag = ROUTE_DRIVE_SGBJ_INVALID; /*进路驱动声光报警标志无效*/
|
||||
RouteDataStru[routeId].cRouteDrivedSGBJFlag = ROUTE_HAS_DRIVED_SGBJ_INVALID; /*初始化进路未驱动过声光报警*/
|
||||
RouteDataStru[routeId].chRouteNearSecSearchState = ROUTE_NEAR_SEC_HAVE_UT; /*初始化进路接近区段查询状态为有故障车*/
|
||||
RouteDataStru[routeId].chRouteApplySwitchCheckFlag = ROUTE_APPLY_SWITCH_CHECK_DEF; /*初始化进路办理相邻控区道岔检查标志*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2122,9 +2045,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
SwitchDataStru[devId].SwitchCollTolerateCycNum = 0U; /*不使用容忍*/
|
||||
SwitchDataStru[devId].SwitchColPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[devId].switchFaultState = SWITCH_FAULT_STATE_YES; /*置为板卡故障*/
|
||||
SwitchDataStru[devId].switchNormalPosCycNum = 0u;/*常态位置周期*/
|
||||
SwitchDataStru[devId].switchUnusualLogSecFlag = SWITCH_UNUSUAL_INVALID;/*道岔非常态位置逻辑区段延时解锁标志无效*/
|
||||
SwitchDataStru[devId].switchMutDrvCycNum = 0u;/*道岔定反操互斥驱动起始周期*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2184,20 +2104,13 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
PhysicalSectionDataStru[ii].CurAndMergeOccupyState = SECTION_OCCUPY_YES;
|
||||
PhysicalSectionDataStru[ii].PreOccupyState = SECTION_OCCUPY_YES;
|
||||
PhysicalSectionDataStru[ii].CurOccupyState = SECTION_OCCUPY_YES;
|
||||
SetSecMergeOccupyStartCycNum(devId, dwCurCyc); /*与相邻RC/CI通信中断时,设置物理区段融合占用起始周期(不考虑跨线区段)*/
|
||||
SetPhySecMerIdleStartCycNum(devId, 0U);
|
||||
}
|
||||
|
||||
PhysicalSectionDataStru[ii].ArbState = AXIS_SECTION_ARB_NO;
|
||||
PhysicalSectionDataStru[ii].JumpLockState = PHYSICAL_SECTION_JUMP_LOCK_NO;
|
||||
PhysicalSectionDataStru[ii].FLockType = SEC_FLOCK_TYPE_NONE;
|
||||
PhysicalSectionDataStru[ii].FLockType = PHY_SEC_FLOCK_TYPE_NONE;
|
||||
PhysicalSectionDataStru[ii].JumpLockStateToZC = PHYSICAL_SECTION_JUMP_LOCK_NO;
|
||||
PhysicalSectionDataStru[ii].wPhyErrUnlockTime = 0U;
|
||||
|
||||
PhysicalSectionDataStru[ii].PhySecPreResetState = PHYSICAL_SECTION_PRE_RESET_NO;
|
||||
PhysicalSectionDataStru[ii].chPreResetBack = PHY_RESET_BACK_RECIVE_YES;
|
||||
PhysicalSectionDataStru[ii].chDirectResetRst = PHYSICAL_DIRECT_RESET_NO;
|
||||
PhysicalSectionDataStru[ii].chDirectResetBack = PHY_RESET_BACK_RECIVE_YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2310,7 +2223,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
SetSignalDetainBtnActFlag(devId, SIGNAL_ZFS_BTN_ACT_FLAG_YES); /*设置信号机扣车按钮有效状态*/
|
||||
/*由于互联互通需判断保护区段的有效性,而自家CI的相邻CI不会判断。为了保证改动量最小,所以对于非互联互通信号机,其保护区段有效性一直设置为有效,不影响逻辑*/
|
||||
SetSignalProSecValid(devId,SIGNAL_PRO_SEC_VALID);
|
||||
SetDetCutBtnState(devId, SIGNAL_DETAIN_CUT_VALID_NO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2333,10 +2245,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
PsdDataStru[devId].PsdState = PSD_STATE_CLOSE;
|
||||
}
|
||||
PsdDataStru[devId].MutualLockRemoveState = PSD_MUTUALLOCK_REMOVE_NO;
|
||||
PsdDataStru[devId].cPsdExceptOpenState = PSD_EXCEPT_OPEN_YES; /*重置为PSD异常打开*/
|
||||
PsdDataStru[devId].dwPsdMutualLockCollStartCyc = 0U;/*清除旁路采集起始时间*/
|
||||
PsdDataStru[devId].dwPsdMutualLockErrCollCyc = 0U;/*清除误触发采集*/
|
||||
PsdDataStru[devId].dwPsdMutualLockStartCyc = 0U;/*清除旁路有效时间*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2376,7 +2284,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
* 修改:在进路空闲等状态下。通信中断需要进路置成安全状态
|
||||
* 修改20160511:增加自动解锁正常、自动解锁异常两种进路状态不置安全态,
|
||||
当进路状态为自动解锁正常、自动解锁异常置安全态后,进路的保护区段无法解锁
|
||||
* 修改:保留进路状态,避免空闲进路清零后,本联锁始端信号机为终端信号机的折返进路状态非法
|
||||
*/
|
||||
throughRtId = GetRouteThroughRouteId(devId);
|
||||
OverlapLockedId = GetRouteOverlapLockedId(devId);
|
||||
@@ -2395,7 +2302,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
{
|
||||
(void)memset(&RouteDataStru[ii], 0, devLen);
|
||||
RouteDataStru[devId].RouteId = devId;
|
||||
RouteDataStru[devId].RouteState = devState;
|
||||
RouteDataStru[devId].ThroughRouteId = throughRtId;
|
||||
RouteDataStru[devId].OverlapLockedId = OverlapLockedId;
|
||||
}
|
||||
@@ -2749,7 +2655,6 @@ void ResetDynamicStateHlht(const UINT8 ciId)
|
||||
UINT16 ii = 0u;
|
||||
UINT16 devId = 0u;/*不对Id进行清除,清除Id后则设备Id为其他设备属性还存在,Id为静态属性,一旦设置为0后就不能更改*/
|
||||
UINT16 devLen = 0u;
|
||||
UINT8 belongCiId = 0U;
|
||||
|
||||
/*重置非本联锁道岔动态数据*/
|
||||
for (ii = 1u; ii < SWITCH_SUM_MAX; ii++)
|
||||
@@ -2766,7 +2671,6 @@ void ResetDynamicStateHlht(const UINT8 ciId)
|
||||
/*设置道岔当前位置 【挤岔】*/
|
||||
SwitchDataStru[devId].SwitchCurPosition = SWITCH_POSITION_JICHA; /*道岔当前位置*/
|
||||
SwitchDataStru[devId].SingleSwitchCurPosition = SWITCH_POSITION_JICHA; /*单独道岔当前位置*/
|
||||
SwitchDataStru[devId].LockStatus = SWITCH_LOCK_STATUS_NO;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2788,7 +2692,6 @@ void ResetDynamicStateHlht(const UINT8 ciId)
|
||||
PhysicalSectionDataStru[ii].CurAndMergeOccupyState = SECTION_OCCUPY_YES;
|
||||
PhysicalSectionDataStru[ii].PreOccupyState = SECTION_OCCUPY_YES;
|
||||
PhysicalSectionDataStru[ii].CurOccupyState = SECTION_OCCUPY_YES;
|
||||
PhysicalSectionDataStru[ii].PhySecPreResetState = PHYSICAL_SECTION_PRE_RESET_NO;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2872,17 +2775,6 @@ void ResetDynamicStateHlht(const UINT8 ciId)
|
||||
spksDataBuff[devId].cutStatus = SPKS_CUT_NO; /*SPKS旁路状态:未按下*/
|
||||
}
|
||||
}
|
||||
|
||||
for (ii = 1u; ii < AUTO_ROUTE_SUM_MAX; ii++)
|
||||
{
|
||||
devId = ii;
|
||||
belongCiId = GetAutoRouteBelongCiId(devId);
|
||||
if (belongCiId == ciId)
|
||||
{
|
||||
/*非本联锁重置状态*/
|
||||
AutoRouteDataStru[devId].AutoRouteSetFlag = AUTO_ROUTE_SET_NO; /*自动进路未办理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3190,79 +3082,6 @@ UINT8 InitLEUDataStru(void)
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:SSKS闪灯稳灯继电器动态数据初始化
|
||||
* 参数说明:无
|
||||
* 返 回 值:0 失败
|
||||
* 1 成功
|
||||
* Created By LQ 2025.12.15
|
||||
*/
|
||||
UINT8 InitSsksLightRelayData(void)
|
||||
{
|
||||
UINT8 ret = CI_ERROR;
|
||||
SsksLightRelayCfgDataStruct* pSsksLightRelayCfgStr = NULL;
|
||||
UINT16 wSsksLightRelaySum = 0U;
|
||||
UINT16 ii = 0U;
|
||||
|
||||
wSsksLightRelaySum = GetSsksLightRelaySum();
|
||||
pSsksLightRelayCfgStr = GetSsksLightRelayCfgStr();
|
||||
if (NULL != pSsksLightRelayCfgStr)
|
||||
{
|
||||
ret = CI_SUCCESS;
|
||||
for (ii = 0U; ii < wSsksLightRelaySum; ii++)
|
||||
{
|
||||
gSsksLightRelayData[ii].SsksLightRelayId = pSsksLightRelayCfgStr[ii].SsksLightRelayId;
|
||||
gSsksLightRelayData[ii].RelEnterRouteLockFlag = SSKS_LIGHT_ROUTE_LOCK_NO;
|
||||
gSsksLightRelayData[ii].RelExportRouteLockFlag = SSKS_LIGHT_ROUTE_LOCK_NO;
|
||||
gSsksLightRelayData[ii].dwSteadyLightDelayStartCycNum = 0U;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = CI_ERROR;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:联络线旁路继电器动态数据初始化
|
||||
* 参数说明:无
|
||||
* 返 回 值:0 失败
|
||||
* 1 成功
|
||||
* Created By wyd 20260311
|
||||
*/
|
||||
UINT8 InitConnectOverrideData(void)
|
||||
{
|
||||
UINT8 ret = CI_ERROR;
|
||||
ConnectOverrideCfgDataStru* pConnectOverrideCfgStr = NULL;
|
||||
UINT16 wConnectOverrideSum = 0U;
|
||||
UINT16 ii = 0U;
|
||||
|
||||
wConnectOverrideSum = GetConnectOverrideRelaySum();
|
||||
pConnectOverrideCfgStr = GetConnectOverrideRelayCfgStr();
|
||||
if (NULL != pConnectOverrideCfgStr)
|
||||
{
|
||||
ret = CI_SUCCESS;
|
||||
for (ii = 0U; ii < wConnectOverrideSum; ii++)
|
||||
{
|
||||
gConnectOverrideData[ii].ConnectOverrideId = pConnectOverrideCfgStr[ii].ConnectOverrideId;
|
||||
gConnectOverrideData[ii].OverrideState = CONNECT_OVERRIDE_STATE_NO;
|
||||
gConnectOverrideData[ii].OverrideReason = OVERRIDE_REASON_NONE;
|
||||
gConnectOverrideData[ii].OverridePressStartCyc = 0u;
|
||||
gConnectOverrideData[ii].OverrideErrTrigStartCyc = 0u;
|
||||
gConnectOverrideData[ii].OverrideErrDownState = CONNECT_OVERRIDE_ERRDOWN_NO;
|
||||
gConnectOverrideData[ii].OverrideErrTrigState = CONNECT_OVERRIDE_ERRTRIG_NO;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = CI_ERROR;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 初始化无人折返指示灯状态数据
|
||||
* 参数说明: void
|
||||
@@ -3374,90 +3193,3 @@ UINT8 InitialRtnIndicStaData(void)
|
||||
|
||||
return chReval;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:初始化接触网数据
|
||||
* 参数说明:void
|
||||
* 返回值 :返回初始化结果
|
||||
*/
|
||||
UINT8 InitOhlDataStru(void)
|
||||
{
|
||||
UINT16 wOhlCurSum = 0u;/*接触网当前分区数量*/
|
||||
UINT16 ii = 0u; /*游标*/
|
||||
UINT8 chReval = CI_ERROR;
|
||||
UINT16 ohlId = 0u;
|
||||
UINT8 chLocalCiId = 0U; /*本地联锁ID*/
|
||||
UINT8 devBlongCiId = 0U; /*设备所属联锁ID*/
|
||||
|
||||
chLocalCiId = GetSystemParaLocalCiId(); /*获取本地联锁ID*/
|
||||
wOhlCurSum = GetOhlCurSum();
|
||||
if (OHL_MAX_NUM > wOhlCurSum)
|
||||
{
|
||||
chReval = CI_SUCCESS;
|
||||
for (ii = 0u; ii < wOhlCurSum; ii++)
|
||||
{
|
||||
ohlId = GetOhlId(ii);
|
||||
devBlongCiId = GetOhlBelongCiId(ohlId); /*获取设备所属联锁ID*/
|
||||
|
||||
if ((0u != ohlId) && (0U != chLocalCiId) && (chLocalCiId == devBlongCiId))
|
||||
{/*初始化本控区*/
|
||||
OhlDataStru[ohlId].wOhlId = ohlId;
|
||||
OhlDataStru[ohlId].chPowerState = OHL_POWER_ENERGIZED; /*接触网供电状态*/
|
||||
OhlDataStru[ohlId].dwOhlDeEnerCycNum = 0u; /*接触网断电起始周期*/
|
||||
OhlDataStru[ohlId].dwOhlUnknowCycNum = 0u; /*接触网未知起始周期*/
|
||||
OhlDataStru[ohlId].chOhlBypassFlag = OHL_BYPASS_NO;/*接触网旁路状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*返回失败*/
|
||||
}
|
||||
|
||||
return chReval;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:初始化ECS数据
|
||||
* 参数说明:void
|
||||
* 返 回 值:0 初始化失败
|
||||
* 1 初始化成功
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT8 InitialEcsData(void)
|
||||
{
|
||||
UINT8 cRetVal = CI_ERROR;
|
||||
UINT16 wEcsSum = 0U; /*防淹门总数*/
|
||||
UINT16 wEcsId = 0U; /*防淹门ID*/
|
||||
UINT16 ii = 0U; /*游标*/
|
||||
|
||||
wEcsSum = GetEcsCurSum();
|
||||
|
||||
for (ii = 0U; ii < wEcsSum; ii++)
|
||||
{
|
||||
wEcsId = GetEcsId(ii);
|
||||
|
||||
if ((0U < wEcsId) && (ECS_MAX_NUM > wEcsId))
|
||||
{
|
||||
ECSDataStru[wEcsId].wEcsId = wEcsId;
|
||||
ECSDataStru[wEcsId].cAutoTrigState = ECS_AUTOTRIG_YES;
|
||||
ECSDataStru[wEcsId].wRelTrainId = 0U;
|
||||
ECSDataStru[wEcsId].dwTrainStopStartCycNum = 0U;
|
||||
ECSDataStru[wEcsId].dwTrainMoveStartCycNum = 0U;
|
||||
ECSDataStru[wEcsId].cJamState = ECS_JAM_NO;
|
||||
ECSDataStru[wEcsId].cOccPhySecNum = 0U;
|
||||
(void)CommonMemSet(ECSDataStru[wEcsId].szOccPhySecId, (UINT32)(sizeof(UINT16) * ECS_REL_PHYSEC_MAX_NUM), (UINT8)0U, (UINT32)(sizeof(UINT16) * ECS_REL_PHYSEC_MAX_NUM));
|
||||
}
|
||||
else
|
||||
{
|
||||
cRetVal = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
@@ -73,9 +73,6 @@
|
||||
#include "../AutoRoute/AutoRouteDataManage.h"
|
||||
#include "../NonAutoReturn/NonAutoReturnDataManage.h"
|
||||
#include "../VirtualDevice/VirtualDevDataManage.h"
|
||||
#include "../SsksLightRelay/SsksLightRelayDataManage.h"
|
||||
#include "../ConnectOverride/ConnectOverrideDataMg.h"
|
||||
#include "SpeedLimitSecDataManage.h"
|
||||
|
||||
#ifdef SCADE_MODE
|
||||
#include "../LogicManage/General/LogicManageScadeInterface.h"
|
||||
@@ -324,24 +321,6 @@ void InitPlatDataStru(void);
|
||||
*/
|
||||
UINT8 InitLEUDataStru(void);
|
||||
|
||||
/*
|
||||
* 功能描述:SSKS闪灯稳灯继电器动态数据初始化
|
||||
* 参数说明:无
|
||||
* 返 回 值:0 失败
|
||||
* 1 成功
|
||||
* Created By LQ 2025.12.15
|
||||
*/
|
||||
UINT8 InitSsksLightRelayData(void);
|
||||
|
||||
/*
|
||||
* 功能描述:联络线旁路继电器动态数据初始化
|
||||
* 参数说明:无
|
||||
* 返 回 值:0 失败
|
||||
* 1 成功
|
||||
* Created By wyd 20260311
|
||||
*/
|
||||
UINT8 InitConnectOverrideData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 初始化无人折返指示灯状态数据
|
||||
* 参数说明: void
|
||||
@@ -351,22 +330,6 @@ UINT8 InitConnectOverrideData(void);
|
||||
*/
|
||||
UINT8 InitialRtnIndicStaData(void);
|
||||
|
||||
/*
|
||||
* 功能描述:初始化接触网数据
|
||||
* 参数说明:void
|
||||
* 返回值 :返回初始化结果
|
||||
*/
|
||||
UINT8 InitOhlDataStru(void);
|
||||
|
||||
/*
|
||||
* 功能描述:初始化ECS数据
|
||||
* 参数说明:void
|
||||
* 返 回 值:0 初始化失败
|
||||
* 1 初始化成功
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
UINT8 InitialEcsData(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -134,8 +134,6 @@ UINT16 GetInvaSectId(UINT16 invSecAndConSwiId)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
功能描述: 获得侵限区段所有条件道岔数量
|
||||
输入参数: UINT16 invSecAndConSwiId 侵限区段及条件道岔数据ID
|
||||
|
||||
@@ -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)300) /*侵限区段与相关条件道岔数据条目最大数量*/
|
||||
|
||||
#define COND_SWITCH_SUM_MAX ((UINT16)16) /*单一侵限区段与相关条件道岔数据条目内,条件道岔最大数量*/
|
||||
|
||||
|
||||
@@ -36,17 +36,12 @@ OverlapDataStruct Record_OverlapDataStru[OVERLAP_SUM_MAX];/*
|
||||
VirCIKeyDataStru Record_VirCIKeyDataStru[VIRTUAL_CI_MAX]= {0u};/*记录虚拟联锁关键数据*/
|
||||
VirCIKeyDataStru newVirCIKeyDataStru[VIRTUAL_CI_MAX]= {0u};
|
||||
SpksDataStruct Record_spksDataBuff[SPKS_SUM_MAX] = { 0u };
|
||||
SsksLightRelayDataStruct Record_SsksLightRelayDataStr[SSKS_LIGHT_RELAY_SUM_MAX] = { 0U }; /*SSKS闪灯稳灯继电器数据*/
|
||||
TrainInfoStru Record_TrainInfo[TRAIN_SUM_MAX] = { 0u };
|
||||
CfpDataStru Record_CfpInfo[CUTOFF_POINT_SUM_MAX] = { 0u };
|
||||
TsrDataStruct Record_TsrInfo[TSR_MAX_SUM] = { 0u }; /* 参考临时限速动态数据 */
|
||||
OCStationIndicDataStru Record_OCStationIndicBuff[INDICATOR_SUM_MAX] = { 0u };
|
||||
LogicalRouteDataStruct Record_LogicalRouteDataStru[ROUTE_LOGICAL_SUM_MAX] = { 0U };
|
||||
NonAutoReturnDataStruct Record_NonReturnDataStru[NON_AUTO_RETURN_SUM_MAX] = { 0U };
|
||||
OhlDataStruct Record_OhlDataStru[OHL_MAX_NUM] = { 0U };
|
||||
ECSDataStruct Record_EcsDataStru[ECS_MAX_NUM] = { 0U };
|
||||
ConnectOverrideDataStru Record_ConnectOverrideData[CONNECT_OVERRIDE_RELAY_SUM_MAX] = { 0U };
|
||||
SpeedLimitSecInfo Record_TRSDataStru[MAX_LINE_SEC_NUM] = { 0U };
|
||||
|
||||
UINT8 outString[1024*1024] = {0u};/*比较后的设备打印数据缓冲*/
|
||||
extern QueueStruct logPrintfQue; /*日志打印缓存队列*/
|
||||
@@ -480,7 +475,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
TsrDataStruct* pNewTsrInfo = GetTsrData(); /* 临时限速信息 */
|
||||
CfpDataStru * pNewCfpData = GetCfpData();
|
||||
SpksDataStruct* pNewSpksData = GetSpksData();
|
||||
SsksLightRelayDataStruct* pSsksLightRelayData = NULL;
|
||||
OCStationIndicDataStru* pNewOCStationIndicData = GetOCStationIndicDataStru();
|
||||
EsbDataStruct* pNewEsbData = GetEsbData();
|
||||
LogicalRouteDataStruct* pNewLogicalRouteDataStru = GetLogicalRouteStr();
|
||||
@@ -488,14 +482,10 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
UINT8 chEnIndex = 0u;
|
||||
UINT8 chTrainIndex = 0u;
|
||||
UINT16 deviceNum = 0u;
|
||||
UINT16 tsrSecInfoNums = 0u;
|
||||
UINT8 localCiType = 0u;
|
||||
UINT16 wNonAutoReturnCurSum = 0U;/*无人折返按钮当前总数*/
|
||||
NonAutoReturnDataStruct* pNonAutoReturnData = NULL;/*无人折返数据结构体指针*/
|
||||
OhlDataStruct* pOhlDataStruct = NULL;/*接触网数据结构体指针*/
|
||||
ECSDataStruct* pEcsDataStruct = NULL;/*ECS数据结构体指针*/
|
||||
SpeedLimitSecInfo* tsrSecInfo = NULL;/*限速区段数据结构体指针*/
|
||||
ConnectOverrideDataStru *pConnectOverrideInfo = NULL; /*联络线旁路数据结构体指针*/
|
||||
|
||||
|
||||
/*************************************打印物理区段数据********************************************/
|
||||
/*打印区段数据*/
|
||||
@@ -536,13 +526,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].CurMergeOccupyState;/*当前融合占用状态*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].PreAndMergeOccupyState;/*之前与占用融合占用状态*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].CurAndMergeOccupyState;/*当前与占用融合占用状态*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].SectionResetType;/*区段计轴复位类型*/
|
||||
LongToChar(newPhysicalSectionData[deviceId].SectionResetStartCycNum, &outString[outStringLength]);/*区段计轴复位开始周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].PhySecPreResetState;/*计轴预复位状态*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].chPreResetBack;/*预复位命令反馈*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].chDirectResetRst;/*直接复位结果*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].chDirectResetBack;/*直接复位命令反馈*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].StopSteadyFlag;/*停稳状态信息*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].ArbState;/*ARB状态*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].ProtectSecLockDelayTimeFlag;/*保护区段锁闭延时标志(动态字段)*/
|
||||
@@ -553,18 +536,16 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength += 4u;
|
||||
LongToChar(newPhysicalSectionData[deviceId].SecColOccupyStartCycNum, &outString[outStringLength]);/*区段采集占用开始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newPhysicalSectionData[deviceId].SecMergeOccupyStartCycNum, &outString[outStringLength]);/*区段融合占用开始周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(newPhysicalSectionData[deviceId].SecCurOccupyStartCycNum,&outString[outStringLength]);/*区段当前占用开始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newPhysicalSectionData[deviceId].SecOccuToClearStartCycNum,&outString[outStringLength]);/*区段占用变空闲开始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newPhysicalSectionData[deviceId].dwMerOccToIdleStartCycNum, &outString[outStringLength]);/*区段融合空闲开始周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(newPhysicalSectionData[deviceId].AutoUnlockStartCycNum,&outString[outStringLength]);/*自动解锁延时开始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newPhysicalSectionData[deviceId].FaultUnlockStartCycNum,&outString[outStringLength]);/*区故解解锁延时开始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newPhysicalSectionData[deviceId].SectionResetStartCycNum,&outString[outStringLength]);/*区段计轴复位开始周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].FLockType; /*物理区段封锁产生的原因,SPKS或其他原因*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].UtOrCtOccFlag; /*获取物理区段占用标志*/
|
||||
ShortToChar(newPhysicalSectionData[deviceId].SecProUseBelongRouteId,&outString[outStringLength]);/*征用所属进路ID*/
|
||||
@@ -577,8 +558,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].chABLTrainFlag; /*物理区段ABL列车占用状态*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].chPreABLTrainFlag; /*物理区段之前ABL列车占用状态*/
|
||||
outString[outStringLength++] = newPhysicalSectionData[deviceId].cPhySecInHumidRailFlag; /*物理区段湿轨标志:0x55 无效;0xAA 有效*/
|
||||
LongToChar(newPhysicalSectionData[deviceId].UtOrCtOccuStartCycNum, &outString[outStringLength]);/*区段UT或CT占用起始周期号*/
|
||||
outStringLength += 4u;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -673,7 +652,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newSignalData[deviceId].GreenDsBreakFlag;/*绿灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].YellowDsBreakFlag;/*黄灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].WhiteDsBreakFlag;/*白灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].BlueDsBreakFlag;/*蓝灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].RedYellowDsBreakFlag;/*红黄灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].RedWhiteDsBreakFlag;/*红白灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].GreenYellowDsBreakFlag;/*绿黄灯丝断丝标志状态*/
|
||||
@@ -705,10 +683,8 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newSignalData[deviceId].CancelDetainBtnErrFlag; /*取消扣车按钮故障标志*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].CancelDetainBtnValidFlag; /*取消扣车按钮有效标志*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].CancelDetainRelayDownState; /*取消扣车按钮采集继电器落下状态*/
|
||||
LongToChar(newSignalData[deviceId].DetainBtnPressCycNum, &outString[outStringLength]); /*扣车按钮1按下周期*/
|
||||
LongToChar(newSignalData[deviceId].DetainBtnPressCycNum, &outString[outStringLength]); /*扣车按钮按下周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newSignalData[deviceId].DetainSndBtnPressCycNum, &outString[outStringLength]); /*扣车按钮2按下周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(newSignalData[deviceId].CancelDetainBtnPressCycNum, &outString[outStringLength]); /*取消扣车按钮正常按下周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newSignalData[deviceId].CancelDetainErrTrigPressCycNum, &outString[outStringLength]); /*取消扣车按钮误触发按下周期*/
|
||||
@@ -717,18 +693,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength += 2u;
|
||||
outString[outStringLength++] = newSignalData[deviceId].cSleepTrainLightUpFlag; /*休眠车点亮信号机标志:0x55 无效,0xAA 有效*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].cInHumidRailFlag; /*信号机湿轨标志:0x55 无效,0xAA 有效*/
|
||||
outString[outStringLength] = newSignalData[deviceId].cDetCutBtnState; /*扣车旁路按钮状态:0x55-无效,0xAA-有效*/
|
||||
outStringLength++;
|
||||
LongToChar(newSignalData[deviceId].DetCutBtnPressCycNum, &outString[outStringLength]); /*扣车旁路按钮正常按下周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(newSignalData[deviceId].DetCutBtnErrTrigPressCycNum, &outString[outStringLength]); /*扣车旁路按钮误触发按下周期*/
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength] = newSignalData[deviceId].cDetCutBtnErrFlag; /*扣车旁路按钮故障标志:0x55未故障,0xaa故障*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = newSignalData[deviceId].cDetCutBtnRelayDownState; /*扣车旁路按钮采集继电器落下状态:0x55:正常采集落下,0xaa:通信异常落下*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = newSignalData[deviceId].cTrainCrossRedSignalFlag; /*列车闯红灯标志:0x55-无效,0xAA-有效*/
|
||||
outStringLength++;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -798,7 +762,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].EssSteadyState;/*ESS稳灯状态(用于虚拟联锁向ATS反馈)--0x55 需要设置稳灯;0xaa不需要设置稳灯*/
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].EssFlashState;/*ESS闪灯状态(用于虚拟联锁向ATS反馈)--0x55 需要设置闪灯;0xaa不需要设置闪灯*/
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].EsbErrorFlag;/*自复式紧急停车按钮故障标志,0x55未故障,0xaa故障*/
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].EsbRelayDownState;/*紧急关闭按钮采集继电器落下状态,0x55:正常采集落下,0xaa:通信异常落下*/
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].CancelEsbErrorFlag;/*自复式取消紧急停车按钮故障标志,0x55未故障,0xaa故障*/
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].CancelEsbValidFlag;/*取消紧急关闭按钮有效标志,0x55无效,0xaa有效*/
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].CancelEsbRelayDownState;/*取消紧急关闭按钮采集继电器落下状态,0x55:正常采集落下,0xaa:通信异常落下*/
|
||||
@@ -808,12 +771,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength += 4u;
|
||||
LongToChar(pNewEsbData[deviceId].CancelEsbErrTriggerPressCycNum, &outString[outStringLength]);/*取消紧急关闭按钮误触发按下周期*/
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].EsbCutErrorFlag; /*紧急关闭旁路按钮故障标志,0x55未故障,0xaa故障*/
|
||||
outString[outStringLength++] = pNewEsbData[deviceId].EsbCutRelayDownState; /*紧急关闭旁路按钮采集继电器落下状态,0x55:正常采集落下,0xaa:通信异常落下*/
|
||||
LongToChar(pNewEsbData[deviceId].EsbCutPressCycNum, &outString[outStringLength]); /*紧急关闭旁路按钮按下周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(pNewEsbData[deviceId].EsbCutErrTriggerPressCycNum, &outString[outStringLength]); /*紧急关闭旁路按钮误触发按下周期*/
|
||||
outStringLength += 4U;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -931,12 +888,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newSwitchData[deviceId].chSwitchJichaState; /*道岔挤岔状态*/
|
||||
LongToChar(newSwitchData[deviceId].SwitchCollTolerateCycNum, &outString[outStringLength]);/*容忍周期号*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newSwitchData[deviceId].switchNormalPosCycNum, &outString[outStringLength]);/*道岔开始判断常态位置起始周期号*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newSwitchData[deviceId].switchMutDrvCycNum, &outString[outStringLength]);/*道岔驱动起始周期号-定反操互斥*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newSwitchData[deviceId].switchUnusualLogSecFlag;/*道岔非常态位置逻辑区段延时锁闭标志*/
|
||||
outString[outStringLength++] = newSwitchData[deviceId].SwitchReverseEnable;/*道岔反位使能请求(迪士尼联络线)*/
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1043,9 +994,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newRouteData[deviceId].DCQState;/*调车请求状态*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].DCTYState;/*调车同意状态*/
|
||||
LongToChar(newRouteData[deviceId].dwDcAgreeBtnPressCycNum, &outString[outStringLength]);/*调车同意按钮按下起始周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newRouteData[deviceId].chDcAgreeButtonErrState;/*调车同意按钮故障状态*/
|
||||
|
||||
outString[outStringLength++] = newRouteData[deviceId].DCTYNotSatisfySignalReOpenFlag;/*调车同意不满足-信号重开标志*/
|
||||
LongToChar(newRouteData[deviceId].DCTYNotSatisfyStartCount,&outString[outStringLength]);/*调车同意不满足-起始周期*/
|
||||
outStringLength += 4u;
|
||||
@@ -1147,9 +1096,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newRouteData[deviceId].cRouteDrivedSGBJFlag; /*进路驱动声光报警标志:0x55 未驱动过;0xAA 已驱动过*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].chRouteNearSecSearchState; /*进路接近区段查询状态是否有故障车*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].chRouteApplySwitchCheckFlag; /*进路办理相邻控区道岔检查标志*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].cRouteRequestDrvState; /*迪士尼联络线进路请求继电器(URR)驱动状态*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].cRouteReleaseDrvState; /*迪士尼联络线进路释放继电器(UCL)驱动状态*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].cRouteAckDrvState; /*迪士尼联络线进路已设置保留继电器(UAR)驱动状态*/
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1381,8 +1327,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].chLinShiXianSuSetSpeed; /*逻辑区段临时限速值*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].chAblRelLogSecUsableFlag; /*ABL列车关联逻辑区段允许使用标志*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].cRouteLeaveLogFlag; /*离去区段ABL列车检查标志*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].chLogSecFlockType; /*逻辑区段封锁类型*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].chLogSecProhibitFAOFlag;/*逻辑区段禁止FAO运行状态*/
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1584,19 +1528,8 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newPsdData[deviceId].chVideoQkDriveState; /*视频清客驱动状态*/
|
||||
ShortToChar(newPsdData[deviceId].wVideoQkRelateVobcId, &outString[outStringLength]);/*视频清客对应列车ID*/
|
||||
outStringLength += 2u;
|
||||
outString[outStringLength] = newPsdData[deviceId].cPsdExceptOpenState; /*屏蔽门异常打开状态:0x55-异常打开,0xAA-未异常打开*/
|
||||
outStringLength++;
|
||||
LongToChar(newPsdData[deviceId].dwPsdRelayDownCycNum, &outString[outStringLength]); /*PSD门关继电器落下起始周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(newPsdData[deviceId].dwPsdMutualLockCollStartCyc, &outString[outStringLength]); /*PSD旁路继电器吸起起始周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(newPsdData[deviceId].dwPsdMutualLockErrCollCyc, &outString[outStringLength]); /*PSD旁路继电器故障按下周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(newPsdData[deviceId].dwPsdMutualLockStartCyc, &outString[outStringLength]); /*PSD旁路起始周期起始周期*/
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength++] = newPsdData[deviceId].cPsdMutualLockBtnErrState; /*旁路按钮故障状态*/
|
||||
outString[outStringLength++] = newPsdData[deviceId].cPsdMutualLockBtnErrDownState; /*屏蔽门旁路按钮故障落下状态:0x55-未故障,0xAA-故障*/
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2064,8 +1997,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
LongToChar(pNewSpksData[deviceId].flockStartNum, &outString[outStringLength]);
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength++] = pNewSpksData[deviceId].TotalSpksDriveOutDis;
|
||||
LongToChar(pNewSpksData[deviceId].dwSpksBtnPressCycNum, &outString[outStringLength]); /*SPKS按钮按下起始周期号*/
|
||||
outStringLength += 4U;
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -2083,7 +2015,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nSpksData:%d\nspksId(2)-status-cutStatus-flockStartNum(4)-TotalSpksDriveOutDis:%d", (UINT16)sizeof(SpksDataStruct), outStringLength);
|
||||
debug_infor_printf((const)"\nSpksData:%d\spksId(2)-status-cutStatus-flockStartNum(4)-TotalSpksDriveOutDis:%d", (UINT16)sizeof(SpksDataStruct), outStringLength);
|
||||
|
||||
debug_out_array(0xAA, outString, outStringLength);
|
||||
#endif
|
||||
@@ -2183,9 +2115,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
LongToChar(pNewTrainInfoData[deviceId].dwDelayTime, &outString[outStringLength]);/*消息延迟时间*/
|
||||
outStringLength += 4u;
|
||||
|
||||
LongToChar(pNewTrainInfoData[deviceId].dwStartFlyCycNum, &outString[outStringLength]);/*列车飞车起始周期号*/
|
||||
outStringLength += 4U;
|
||||
|
||||
ShortToChar(pNewTrainInfoData[deviceId].wGroupOtherTrainId, &outString[outStringLength]);/* 编组另一列车ID*/
|
||||
outStringLength += 2u;
|
||||
|
||||
@@ -2230,8 +2159,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
ShortToChar(pNewTrainInfoData[deviceId].wNextTioc, &outString[outStringLength]);/*下一TIOC编号,用作RRM*/
|
||||
outStringLength += 2u;
|
||||
outString[outStringLength++] = pNewTrainInfoData[deviceId].chDerailment; /*脱轨状态*/
|
||||
outString[outStringLength++] = pNewTrainInfoData[deviceId].chIntegrityState; /*完整性状态*/
|
||||
outString[outStringLength++] = pNewTrainInfoData[deviceId].chEscapeDoorState; /*逃生门状态*/
|
||||
ShortToChar(pNewTrainInfoData[deviceId].wHeadAxisId, &outString[outStringLength]);/*前方计轴编号*/
|
||||
outStringLength += 2u;
|
||||
outString[outStringLength++] = pNewTrainInfoData[deviceId].wHeadITEResult; /*前方ITE识别结果*/
|
||||
@@ -2799,342 +2726,6 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength = 0u;
|
||||
}
|
||||
|
||||
/*************************************打印SSKS闪灯稳灯数据******************************************************/
|
||||
pSsksLightRelayData = GetSsksLightRelayData();
|
||||
deviceNum = GetSsksLightRelaySum();
|
||||
for (ii = 0U; ii < deviceNum; ii++)
|
||||
{
|
||||
/*比较数据*/
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_SsksLightRelayDataStr[ii]), (UINT16)sizeof(SsksLightRelayDataStruct),
|
||||
(UINT8*)(&pSsksLightRelayData[ii]), (UINT16)sizeof(SsksLightRelayDataStruct));
|
||||
|
||||
if (0U == comparaResult)
|
||||
{
|
||||
/*比较数据一致*/
|
||||
}
|
||||
else if (1U == comparaResult)
|
||||
{
|
||||
/*比较数据不一致*/
|
||||
if (CI_ERROR == Flag)
|
||||
{
|
||||
/*不打印设备数据*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/**************打印数据信息****************/
|
||||
ShortToChar(pSsksLightRelayData[ii].SsksLightRelayId, &outString[outStringLength]); /*SSKS闪灯稳灯继电器ID*/
|
||||
outStringLength += 2U;
|
||||
outString[outStringLength] = pSsksLightRelayData[ii].RelEnterRouteLockFlag; /*关联驶入存车线进路锁闭标志:0x55-无效,0xAA-有效*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = pSsksLightRelayData[ii].RelExportRouteLockFlag; /*关联驶出存车线进路锁闭标志:0x55-无效,0xAA-有效*/
|
||||
outStringLength++;
|
||||
LongToChar(pSsksLightRelayData[ii].dwSteadyLightDelayStartCycNum, &outString[outStringLength]); /*延时驱稳灯起始周期*/
|
||||
outStringLength += 4U;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (outStringLength == 0U)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nSsksLightRelayData:%d\nSsksLightRelayId(2)-RelEnterRouteLockFlag-RelExportRouteLockFlag-dwSteadyLightDelayStartCycNum(4):%d", (UINT16)sizeof(SsksLightRelayDataStruct), outStringLength);
|
||||
|
||||
debug_out_array(0xAAU, outString, outStringLength);
|
||||
|
||||
#endif
|
||||
/*清空打印数据*/
|
||||
CleanString(outString);
|
||||
outStringLength = 0U;
|
||||
}
|
||||
|
||||
/*************************************打印接触网数据******************************************************/
|
||||
pOhlDataStruct = GetOhlData();
|
||||
deviceNum = GetOhlCurSum();
|
||||
for (ii = 0U; ii < deviceNum; ii++)
|
||||
{
|
||||
/*比较数据*/
|
||||
deviceId = GetOhlId(ii);
|
||||
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_OhlDataStru[deviceId]), (UINT16)sizeof(OhlDataStruct),
|
||||
(UINT8*)(&pOhlDataStruct[deviceId]), (UINT16)sizeof(OhlDataStruct));
|
||||
|
||||
if (0U == comparaResult)
|
||||
{
|
||||
/*比较数据一致*/
|
||||
}
|
||||
else if (1U == comparaResult)
|
||||
{
|
||||
/*比较数据不一致*/
|
||||
if (CI_ERROR == Flag)
|
||||
{
|
||||
/*不打印设备数据*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/**************打印数据信息****************/
|
||||
ShortToChar(pOhlDataStruct[deviceId].wOhlId, &outString[outStringLength]); /*接触网分区ID*/
|
||||
outStringLength += 2U;
|
||||
outString[outStringLength] = pOhlDataStruct[deviceId].chPowerState; /*接触网供电状态:0x55-有电,0xAA-无电,0xFF-未知*/
|
||||
outStringLength++;
|
||||
LongToChar(pOhlDataStruct[deviceId].dwOhlDeEnerCycNum, &outString[outStringLength]); /*接触网断电起始周期*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(pOhlDataStruct[deviceId].dwOhlUnknowCycNum, &outString[outStringLength]); /*接触网未知起始周期*/
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength] = pOhlDataStruct[deviceId].chOhlBypassFlag; /*接触网旁路状态:0x55-未旁路,0xAA-旁路*/
|
||||
outStringLength++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (outStringLength == 0U)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nOhlData:%d\nwOhlId(2)-chPowerState-dwOhlDeEnerCycNum(4)-dwOhlUnknowCycNum(4)-chOhlBypassFlag:%d", (UINT16)sizeof(OhlDataStruct), outStringLength);
|
||||
|
||||
debug_out_array(0xAAU, outString, outStringLength);
|
||||
|
||||
#endif
|
||||
/*清空打印数据*/
|
||||
CleanString(outString);
|
||||
outStringLength = 0U;
|
||||
}
|
||||
|
||||
/*************************************打印ECS数据******************************************************/
|
||||
pEcsDataStruct = GetEcsData();
|
||||
deviceNum = GetEcsCurSum();
|
||||
for (ii = 0U; ii < deviceNum; ii++)
|
||||
{
|
||||
/*比较数据*/
|
||||
deviceId = GetEcsId(ii);
|
||||
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_EcsDataStru[deviceId]), (UINT16)sizeof(ECSDataStruct),
|
||||
(UINT8*)(&pEcsDataStruct[deviceId]), (UINT16)sizeof(ECSDataStruct));
|
||||
|
||||
if (0U == comparaResult)
|
||||
{
|
||||
/*比较数据一致*/
|
||||
}
|
||||
else if (1U == comparaResult)
|
||||
{
|
||||
/*比较数据不一致*/
|
||||
if (CI_ERROR == Flag)
|
||||
{
|
||||
/*不打印设备数据*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/**************打印数据信息****************/
|
||||
ShortToChar(pEcsDataStruct[deviceId].wEcsId, &outString[outStringLength]); /*ECS/隧道 ID*/
|
||||
outStringLength += 2U;
|
||||
outString[outStringLength] = pEcsDataStruct[deviceId].cAutoTrigState; /*ECS自动触发状态:0x55-启用,0xAA-停用*/
|
||||
outStringLength++;
|
||||
ShortToChar(pEcsDataStruct[deviceId].wRelTrainId, &outString[outStringLength]); /*隧道关联列车ID*/
|
||||
outStringLength += 2U;
|
||||
LongToChar(pEcsDataStruct[deviceId].dwTrainStopStartCycNum, &outString[outStringLength]); /*关联列车停车起始周期号*/
|
||||
outStringLength += 4U;
|
||||
LongToChar(pEcsDataStruct[deviceId].dwTrainMoveStartCycNum, &outString[outStringLength]); /*关联列车移动起始周期号*/
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength] = pEcsDataStruct[deviceId].cJamState; /*隧道拥堵状态:0x55-拥堵,0xAA-不拥堵*/
|
||||
outStringLength++;
|
||||
|
||||
if (ECS_REL_PHYSEC_MAX_NUM >= pEcsDataStruct[deviceId].cOccPhySecNum)
|
||||
{
|
||||
outString[outStringLength++] = pEcsDataStruct[deviceId].cOccPhySecNum; /*隧道内占用的物理区段数量*/
|
||||
for (jj = 0U; jj < pEcsDataStruct[deviceId].cOccPhySecNum; jj++)
|
||||
{
|
||||
ShortToChar(pEcsDataStruct[deviceId].szOccPhySecId[jj], &outString[outStringLength]); /*隧道内占用的物理区段ID数组*/
|
||||
outStringLength += 2U;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
outString[outStringLength++] = 0U; /*逻辑进路列车脚下逻辑区段数量超限,不打印*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (outStringLength == 0U)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nECSData:%d\nwEcsId(2)-cAutoTrigState-wRelTrainId(2)-dwTrainStopStartCycNum(4)-dwTrainMoveStartCycNum(4)-cJamState-cOccPhySecNum-szOccPhySecId(2*Num):%d", (UINT16)sizeof(ECSDataStruct), outStringLength);
|
||||
|
||||
debug_out_array(0xAAU, outString, outStringLength);
|
||||
|
||||
#endif
|
||||
/*清空打印数据*/
|
||||
CleanString(outString);
|
||||
outStringLength = 0U;
|
||||
}
|
||||
|
||||
/*************************************打印联络线旁路数据******************************************************/
|
||||
pConnectOverrideInfo = GetConnectOverrideData();
|
||||
deviceNum = GetConnectOverrideRelaySum();
|
||||
if (NULL == pConnectOverrideInfo)
|
||||
{
|
||||
/*异常,nothing*/
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ii = 0U; ii < deviceNum; ii++)
|
||||
{
|
||||
/*比较数据*/
|
||||
deviceId = pConnectOverrideInfo[ii].ConnectOverrideId;
|
||||
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_ConnectOverrideData[ii]), (UINT16)sizeof(ConnectOverrideDataStru),
|
||||
(UINT8*)(&pConnectOverrideInfo[ii]), (UINT16)sizeof(ConnectOverrideDataStru));
|
||||
|
||||
if (0U == comparaResult)
|
||||
{
|
||||
/*比较数据一致*/
|
||||
}
|
||||
else if (1U == comparaResult)
|
||||
{
|
||||
/*比较数据不一致*/
|
||||
if (CI_ERROR == Flag)
|
||||
{
|
||||
/*不打印设备数据*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/**************打印数据信息****************/
|
||||
ShortToChar(pConnectOverrideInfo[ii].ConnectOverrideId, &outString[outStringLength]);
|
||||
outStringLength += 2u;
|
||||
outString[outStringLength] = pConnectOverrideInfo[ii].OverrideState;
|
||||
outStringLength += 1u;
|
||||
outString[outStringLength] = pConnectOverrideInfo[ii].OverrideReason;
|
||||
outStringLength += 1u;
|
||||
LongToChar(pConnectOverrideInfo[ii].OverridePressStartCyc, &outString[outStringLength]);
|
||||
outStringLength += 4u;
|
||||
LongToChar(pConnectOverrideInfo[ii].OverrideErrTrigStartCyc, &outString[outStringLength]);
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength] = pConnectOverrideInfo[ii].OverrideErrTrigState;
|
||||
outStringLength += 1u;
|
||||
outString[outStringLength] = pConnectOverrideInfo[ii].OverrideErrDownState;
|
||||
outStringLength += 1u;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (0u == outStringLength)
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nConnectOverrideData:%d\nId(2)-State(1)-Reason(1)-PressCyc(4)-ErrTrigCyc(4)-ErrTrigStt(1)-ErrDownStt(1):%d", (UINT16)sizeof(ConnectOverrideDataStru), outStringLength);
|
||||
|
||||
debug_out_array(0xAAU, outString, outStringLength);
|
||||
|
||||
#endif
|
||||
/*清空打印数据*/
|
||||
CleanString(outString);
|
||||
outStringLength = 0U;
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************打印SpeedLimitSec数据******************************************************/
|
||||
tsrSecInfo = GetSpeedLimitSecInfo();
|
||||
tsrSecInfoNums = GetSpeedLimitSectionSum();
|
||||
|
||||
for (ii = 0; ii < tsrSecInfoNums; ii++)
|
||||
{
|
||||
/*比较数据*/
|
||||
deviceId = GetSpeedLimitSecId(ii);
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_TRSDataStru[deviceId]), (UINT16)sizeof(SpeedLimitSecInfo),
|
||||
(UINT8*)(&tsrSecInfo[deviceId]), (UINT16)sizeof(SpeedLimitSecInfo));
|
||||
|
||||
if (0U == comparaResult)
|
||||
{
|
||||
/*比较数据一致*/
|
||||
}
|
||||
else if (1U == comparaResult)
|
||||
{
|
||||
/*比较数据不一致*/
|
||||
if (CI_ERROR == Flag)
|
||||
{
|
||||
/*不打印设备数据*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/**************打印数据信息****************/
|
||||
ShortToChar(tsrSecInfo[deviceId].secID, &outString[outStringLength]); /*限速区段ID*/
|
||||
outStringLength += 2U;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chTSRSetFlag; /*临时限速设置标志位,0x55设置,0xaa 未设置*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chNRSRSetFlag; /*NR限速设置标志位,0x55设置,0xaa 未设置*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chTFSRSetFlag; /*台风限速设置标志位,0x55设置,0xaa 未设置*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chAllSRSetFlag; /*全线限速设置标志位,0x55设置,0xaa 未设置*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chTSRSetValue; /*临时限速值*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chNRSRSetValue; /*NR限速值*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chTFSRSetValue; /*台风限速值*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = tsrSecInfo[deviceId].chAllSRSetValue; /*全线限速值*/
|
||||
outStringLength++;
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (outStringLength == 0U)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nSLSData:%d\nsecID(2)--TSRSetFlag-NRSRSetFlag-TFSRSetFlag-AllSRSetFlag:%d", (UINT16)sizeof(SpeedLimitSecInfo), outStringLength);
|
||||
|
||||
debug_out_array(0xAAU, outString, outStringLength);
|
||||
|
||||
#endif
|
||||
/*清空打印数据*/
|
||||
CleanString(outString);
|
||||
outStringLength = 0U;
|
||||
}
|
||||
|
||||
|
||||
return returnValue;
|
||||
|
||||
}
|
||||
|
||||
@@ -45,10 +45,6 @@
|
||||
#include "../Route/LogicalRouteDataManage.h"
|
||||
#include "NonAutoReturnDataManage.h"
|
||||
#include "NonAutoReturnConfigDataManage.h"
|
||||
#include "../SsksLightRelay/SsksLightRelayDataManage.h"
|
||||
#include "../ECS/ECSDataManage.h"
|
||||
#include "SpeedLimitSecConfigDataManage.h"
|
||||
#include "../ConnectOverride/ConnectOverrideDataMg.h"
|
||||
|
||||
#ifdef PLATFORM_LABVIEW_DEBUG
|
||||
#include "stdio.h"
|
||||
|
||||
@@ -878,7 +878,7 @@ void PhySecFaultUnlockLogicManage(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
*/
|
||||
|
||||
/*正常情况下区故解绿光带*/
|
||||
phyFaultUnLockRes = PhySecFaultUnlockLogicProcess(phySectionId, CI_ERROR);
|
||||
phyFaultUnLockRes = PhySecFaultUnlockLogicProcess(phySectionId);
|
||||
if (CI_SUCCESS == phyFaultUnLockRes)
|
||||
{ /*成功*/
|
||||
routeDir = GetRouteDirection(lockBelongRouteId);
|
||||
@@ -993,7 +993,7 @@ void PhySecFaultUnlockLogicManage(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
(CICI_RELAY_INTERFACE_CONFIRM_YES == confirmRelayInterfaceFlag)&&
|
||||
(FUNC_SWITCH_ON == funcSwitchSupportRelayInterface))
|
||||
{
|
||||
phyFaultUnLockRes = PhySecFaultUnlockLogicProcess(phySectionId, CI_ERROR);
|
||||
phyFaultUnLockRes = PhySecFaultUnlockLogicProcess(phySectionId);
|
||||
if (CI_SUCCESS == phyFaultUnLockRes)
|
||||
{ /*成功*/
|
||||
routeDir = GetRouteDirection(lockBelongRouteId);
|
||||
@@ -1379,7 +1379,6 @@ void RouteRecoverOpenProc(const UINT16 routeId)
|
||||
UINT8 recoverState = ROUTE_RECOVER_STA_STAY;/*当前恢复重开状态*/
|
||||
UINT8 errType = CI_ERROR;
|
||||
UINT8 localCiType = GetLocalCiType();/*获得联锁类型*/
|
||||
UINT16 wStartSignalId = 0U; /*进路始端信号机ID*/
|
||||
|
||||
routeState = GetRouteState(routeId);
|
||||
recoverState = GetRouteRecoverOpenFlag(routeId);
|
||||
@@ -1397,7 +1396,6 @@ void RouteRecoverOpenProc(const UINT16 routeId)
|
||||
errType = RecoverOpenRouteCheckCLD(routeId);
|
||||
}
|
||||
|
||||
wStartSignalId = GetRouteStartSignalId(routeId); /*获取进路始端信号机ID*/
|
||||
if (errType == CI_SUCCESS)
|
||||
{
|
||||
SetRouteOpenSigStartCycNum(routeId, Get2oo2CurCycleNum());
|
||||
@@ -1412,9 +1410,6 @@ void RouteRecoverOpenProc(const UINT16 routeId)
|
||||
else
|
||||
{
|
||||
SetRouteRecoverState(routeId, ROUTE_RECOVER_STA_STAY);/*一旦出现PSD、SPKS、扣车以外的条件不满足,将进路恢复状态设置为不可恢复*/
|
||||
|
||||
/*开放条件检查失败,设置对应始端信号机扣车旁路按钮无效*/
|
||||
SetDetCutBtnState(wStartSignalId, SIGNAL_DETAIN_CUT_VALID_NO);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1607,7 +1602,6 @@ void SetAtsExpectLockOverlapIdProc(const UINT16 expLkOverlapId,const UINT8 lockT
|
||||
UINT8 CheckPhySecFaultUnlockCanDo(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
{
|
||||
UINT16 lockBelongRouteId = 0u; /*区段锁闭所属进路ID*/
|
||||
UINT16 wTempPhySecId = 0u;
|
||||
UINT8 reVal = CI_ERROR;
|
||||
UINT8 belongvirCIid = 0u;
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
@@ -1673,7 +1667,7 @@ UINT8 CheckPhySecFaultUnlockCanDo(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
/*按顺序解锁进路异常锁闭*/
|
||||
if (CI_SUCCESS == reVal)
|
||||
{
|
||||
isErrLock = RouteFirstLockErrCheck(lockBelongRouteId, &wTempPhySecId);
|
||||
isErrLock = RouteFirstLockErrCheck(lockBelongRouteId);
|
||||
phyLockState = GetPhySecLockState(phySectionId);
|
||||
/*第一个锁闭的区段是故障锁闭*/
|
||||
if (CI_SUCCESS == isErrLock )
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
#include "../LogicManage/TradInterlockLogicManage.h"
|
||||
#include "../Train/TrainDefine.h"
|
||||
#include "LogicalRouteDataManage.h"
|
||||
#include "../EnvelopeManage/EnvelopeManageAPI.h"
|
||||
|
||||
#ifdef SCADE_MODE
|
||||
#include "../LogicManage/General/LogicManageScadeInterface.h"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -365,11 +365,9 @@ void SetOverlapLockState(const UINT16 overlapId, const UINT8 lockState, const UI
|
||||
/*
|
||||
* 功能描述: 办理普通进路逻辑管理
|
||||
* 参数说明: const UINT16 routeId, 进路ID
|
||||
* const UINT8 chSendLevel 命令发送等级
|
||||
* 返回值 : void
|
||||
* BY cgh 20250828
|
||||
*/
|
||||
void SetCommonRouteLogicManage(const UINT16 routeId, const UINT8 chSendLevel);
|
||||
void SetCommonRouteLogicManage(const UINT16 routeId);
|
||||
|
||||
/*
|
||||
* 功能描述: 办理引导进路逻辑管理
|
||||
@@ -949,7 +947,7 @@ UINT8 CheckPhysecFlockReasonSpksId(const UINT16 phySectionId, UINT16* spksId, UI
|
||||
*
|
||||
*修改:mpt 2022年3月9日 增加保护区段人工解锁逻辑
|
||||
*/
|
||||
UINT8 LaborUnlockOverlapProc(const UINT16 overlapId);
|
||||
UINT8 LaborUnlockOverlapProc(const UINT8 overlapId);
|
||||
/*
|
||||
* 功能描述: 设置联锁锁闭保护区段标志管理
|
||||
* 参数说明: const UINT16 routeId, 进路ID
|
||||
@@ -1133,84 +1131,6 @@ void RouteTrainResUnlockManage(void);
|
||||
*/
|
||||
void LeadRouteFirstXuanPaiManage(const UINT16 routeId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置OC-P旁路状态确认标志
|
||||
* 参数说明: UINT8 setFlag,设置标志
|
||||
* UINT16 pscId PSC设备ID
|
||||
* 返回值 :无
|
||||
*/
|
||||
void SetOcPscPlConfirmFlag(UINT8 setFlag, const UINT16 ocPId);
|
||||
|
||||
/*
|
||||
* 功能描述: 保护区段照查条件更新
|
||||
* 参数说明: const UINT16 wRouteId 进路ID
|
||||
* 返回值 :无
|
||||
* by cgh 20250617
|
||||
*/
|
||||
void OverlapZhaoChaRelayUpDateManage(void);
|
||||
/*
|
||||
* 功能描述: 更新列车向后跳跃允许状态处理
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
* Create: fan 20250725
|
||||
*/
|
||||
void TrainJumpBackApplyProc(void);
|
||||
|
||||
/*
|
||||
* @brief 逻辑区段禁止FAO运行处理
|
||||
* @param const UINT8 setFlag 禁止FAO运行的标志
|
||||
* const UINT8 cLogSecSum 逻辑区段数量
|
||||
* const UINT16 pLogSecIdBuff[] 逻辑区段序列
|
||||
*/
|
||||
void LogSecProhibitFAOManage(const UINT8 setFlag, const UINT8 cLogSecSum, const UINT16 pLogSecIdBuff[]);
|
||||
|
||||
/*
|
||||
* 功能描述:信号机列车闯红灯处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.12
|
||||
*/
|
||||
void SignalTrainCrossRedPro(void);
|
||||
|
||||
/*
|
||||
* @brief 接触网旁路处理
|
||||
* @param const UINT16 ohlId 接触网分区ID
|
||||
* const UINT8 setState 旁路标志
|
||||
*/
|
||||
void OhlBypassManage(const UINT16 ohlId, const UINT8 setState);
|
||||
|
||||
/*
|
||||
* @brief 设置逻辑区段封锁命令处理
|
||||
* const UINT8 cLogSecSum 逻辑区段数量
|
||||
* const UINT16 pLogSecIdBuff[] 逻辑区段序列
|
||||
* Created By fan 2026.01.22
|
||||
*/
|
||||
void LogSecFlockCmdSetManage(const UINT8 cLogSecSum, const UINT16 pLogSecIdBuff[]);
|
||||
|
||||
/*
|
||||
* @brief 取消逻辑区段封锁命令处理
|
||||
* const UINT8 cLogSecSum 逻辑区段数量
|
||||
* const UINT16 pLogSecIdBuff[] 逻辑区段序列
|
||||
* Created By fan 2026.01.22
|
||||
*/
|
||||
void LogSecFlockCmdCancleManage(const UINT8 cLogSecSum, const UINT16 pLogSecIdBuff[]);
|
||||
|
||||
/*
|
||||
* 功能描述:ECS自动触发命令处理
|
||||
* 参数说明:const UINT16 EcsId ECS ID
|
||||
* const UINT8 setState 待设置的状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.26
|
||||
*/
|
||||
void EcsAutoTrigCmdPro(const UINT16 EcsId, const UINT8 setState);
|
||||
|
||||
/*
|
||||
* 功能描述:道岔常态位置逻辑处理
|
||||
* 参数说明:const UINT16 EcsId ECS ID
|
||||
* 返 回 值:无
|
||||
*/
|
||||
void SwitchNormalPosProc(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -189,9 +189,6 @@ UINT8 OpenCbtcLTrainRouteErrProcess(const UINT16 routeId, const UINT8 checkStep)
|
||||
UINT8 sendLevel = ESEND_LEVEL_ZERO;
|
||||
UINT8 routeReverseProperty = 0u;
|
||||
UINT8 airShaftRouteType = 0u;
|
||||
UINT8 cDisneyConnectAttr = CI_ERROR; /*联络线进路类型(迪士尼)*/
|
||||
|
||||
cDisneyConnectAttr = GetRouteDisneyConnectAttr(routeId);
|
||||
|
||||
/* 联锁逻辑检查 */
|
||||
/* 进路监督模式为【CBTC】*/
|
||||
@@ -504,37 +501,6 @@ UINT8 OpenCbtcLTrainRouteErrProcess(const UINT16 routeId, const UINT8 checkStep)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if ((CI_SUCCESS == reResult) || (CI_ROUTE_RECOVER_ERR == reResult))
|
||||
{
|
||||
/*迪士尼联络线其他联锁条件检查*/
|
||||
checkResult = DsnConnectOtherCiValidCheck(routeId);
|
||||
if (CI_ERROR == checkResult)
|
||||
{
|
||||
reResult = checkResult;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
|
||||
if ((CI_ERROR == reResult)
|
||||
&& ((ROUTE_DISNEY_CONNECT_ALLOTHER == cDisneyConnectAttr)
|
||||
|| (ROUTE_DISNEY_CONNECT_ENDMINE == cDisneyConnectAttr)))
|
||||
{
|
||||
/*始端不在本线的迪士尼联络线进路,自动重开*/
|
||||
reResult = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return reResult;
|
||||
}
|
||||
|
||||
@@ -557,16 +523,16 @@ UINT8 OpenBlocLTrainRouteErrProcess(const UINT16 routeId)
|
||||
UINT8 checkResult = CI_ERROR; /*检查结果*/
|
||||
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT16 devId = 0u; /*设备ID*/
|
||||
|
||||
/* 取消标志 */
|
||||
|
||||
/* 进路内设备数据 */
|
||||
/* 取消标志 */
|
||||
UINT8 const zxqFlag = GetRouteZongQuXiaoFlag(routeId);
|
||||
UINT8 const zrjFlag = GetRouteZongRenJieFlag(routeId);
|
||||
|
||||
/*故障发送级别*/
|
||||
UINT8 sendLevel = ESEND_LEVEL_ZERO;
|
||||
UINT8 cDisneyConnectAttr = CI_ERROR; /*联络线进路类型(迪士尼)*/
|
||||
|
||||
cDisneyConnectAttr = GetRouteDisneyConnectAttr(routeId);
|
||||
|
||||
/* 联锁逻辑检查 */
|
||||
/* 进路监督模式为【点式】*/
|
||||
@@ -768,37 +734,6 @@ UINT8 OpenBlocLTrainRouteErrProcess(const UINT16 routeId)
|
||||
reResult = checkResult;
|
||||
}
|
||||
}
|
||||
|
||||
if ((CI_SUCCESS == reResult) || (CI_ROUTE_RECOVER_ERR == reResult))
|
||||
{
|
||||
/*迪士尼联络线其他联锁条件检查*/
|
||||
checkResult = DsnConnectOtherCiValidCheck(routeId);
|
||||
if (CI_ERROR == checkResult)
|
||||
{
|
||||
reResult = checkResult;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
|
||||
if ((CI_ERROR == reResult)
|
||||
&& ((ROUTE_DISNEY_CONNECT_ALLOTHER == cDisneyConnectAttr)
|
||||
|| (ROUTE_DISNEY_CONNECT_ENDMINE == cDisneyConnectAttr)))
|
||||
{
|
||||
/*始端不在本线的迪士尼联络线进路,自动重开*/
|
||||
reResult = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/* 返回 */
|
||||
return reResult;
|
||||
}
|
||||
@@ -1161,6 +1096,7 @@ UINT8 OpenBlocReturnRouteErrProcess(const UINT16 routeId)
|
||||
UINT8 checkResult = CI_ERROR; /*检查结果*/
|
||||
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT8 devId = 0u; /*设备Id*/
|
||||
|
||||
/* 进路内设备数据 */
|
||||
/* 取消标志 */
|
||||
@@ -1169,6 +1105,8 @@ UINT8 OpenBlocReturnRouteErrProcess(const UINT16 routeId)
|
||||
|
||||
/*故障发送级别*/
|
||||
UINT8 sendLevel = ESEND_LEVEL_ZERO;
|
||||
UINT16 endSigId = 0u; /*获取中途折返信号机ID*/
|
||||
UINT8 endSigState = SIGNAL_OPEN;
|
||||
|
||||
/* 联锁逻辑检查 */
|
||||
|
||||
@@ -1408,9 +1346,6 @@ UINT8 KeepCbtcLTrainRouteErrProcess(const UINT16 routeId)
|
||||
UINT16 trainEnteringRouteState = 0u;
|
||||
UINT8 signalCrossState = 0u;
|
||||
UINT8 rcWorkMode = 0U; /*rc工作模式*/
|
||||
UINT8 cDisneyConnectAttr = CI_ERROR; /*联络线进路类型(迪士尼)*/
|
||||
|
||||
cDisneyConnectAttr = GetRouteDisneyConnectAttr(routeId);
|
||||
rcWorkMode = GetLocalRcWorkMode();
|
||||
/* 联锁逻辑检查 */
|
||||
|
||||
@@ -1662,36 +1597,6 @@ UINT8 KeepCbtcLTrainRouteErrProcess(const UINT16 routeId)
|
||||
}
|
||||
}
|
||||
|
||||
if ((CI_SUCCESS == reResult) || (CI_ROUTE_RECOVER_ERR == reResult))
|
||||
{
|
||||
/*迪士尼联络线其他联锁条件检查*/
|
||||
checkResult = DsnConnectOtherCiValidCheck(routeId);
|
||||
if (CI_ERROR == checkResult)
|
||||
{
|
||||
reResult = checkResult;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
|
||||
if ((CI_ERROR == reResult)
|
||||
&& ((ROUTE_DISNEY_CONNECT_ALLOTHER == cDisneyConnectAttr)
|
||||
|| (ROUTE_DISNEY_CONNECT_ENDMINE == cDisneyConnectAttr)))
|
||||
{
|
||||
/*始端不在本线的迪士尼联络线进路,自动重开*/
|
||||
reResult = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/* 返回 */
|
||||
return reResult;
|
||||
}
|
||||
@@ -1711,16 +1616,17 @@ UINT8 KeepBlocLTrainRouteErrProcess(const UINT16 routeId)
|
||||
UINT8 const functionId = EFUNC_KEEP_UT_SIGNAL_ERR_ZX;
|
||||
|
||||
/* 局部变量定义初始化 */
|
||||
UINT8 reResult = CI_ERROR; /*返回值*/
|
||||
UINT8 checkResult = CI_ERROR; /*检查结果*/
|
||||
UINT8 reResult = CI_ERROR; /*返回值*/
|
||||
UINT8 checkResult = CI_ERROR; /*检查结果*/
|
||||
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT8 cDisneyConnectAttr = CI_ERROR; /*联络线进路类型(迪士尼)*/
|
||||
/* 取消标志 */
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT16 devId = 0u; /*设备ID*/
|
||||
|
||||
/* 进路内设备数据 */
|
||||
/* 取消标志 */
|
||||
UINT8 const zxqFlag = GetRouteZongQuXiaoFlag(routeId);
|
||||
UINT8 const zrjFlag = GetRouteZongRenJieFlag(routeId);
|
||||
|
||||
cDisneyConnectAttr = GetRouteDisneyConnectAttr(routeId);
|
||||
/*故障发送级别*/
|
||||
UINT8 sendLevel = ESEND_LEVEL_ZERO;
|
||||
|
||||
@@ -1917,36 +1823,6 @@ UINT8 KeepBlocLTrainRouteErrProcess(const UINT16 routeId)
|
||||
}
|
||||
}
|
||||
|
||||
if ((CI_SUCCESS == reResult) || (CI_ROUTE_RECOVER_ERR == reResult))
|
||||
{
|
||||
/*迪士尼联络线其他联锁条件检查*/
|
||||
checkResult = DsnConnectOtherCiValidCheck(routeId);
|
||||
if (CI_ERROR == checkResult)
|
||||
{
|
||||
reResult = checkResult;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing*/
|
||||
}
|
||||
|
||||
if ((CI_ERROR == reResult)
|
||||
&& ((ROUTE_DISNEY_CONNECT_ALLOTHER == cDisneyConnectAttr)
|
||||
|| (ROUTE_DISNEY_CONNECT_ENDMINE == cDisneyConnectAttr)))
|
||||
{
|
||||
/*始端不在本线的迪士尼联络线进路,自动重开*/
|
||||
reResult = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/* 返回 */
|
||||
return reResult;
|
||||
}
|
||||
@@ -2266,8 +2142,10 @@ UINT8 KeepBlocReturnRouteErrProcess(const UINT16 routeId)
|
||||
UINT8 checkResult = CI_ERROR; /*检查结果*/
|
||||
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT16 devId = 0u; /*设备ID*/
|
||||
|
||||
/* 取消标志 */
|
||||
/* 进路内设备数据 */
|
||||
/* 取消标志 */
|
||||
UINT8 const zxqFlag = GetRouteZongQuXiaoFlag(routeId);
|
||||
UINT8 const zrjFlag = GetRouteZongRenJieFlag(routeId);
|
||||
|
||||
@@ -3133,9 +3011,10 @@ UINT8 RecoverOpenRouteCheckCLD(const UINT16 routeId)
|
||||
UINT8 routeType = 0u; /*进路类型*/
|
||||
UINT8 errType = CI_ERROR;/*定义检查失败时的错误类型*/
|
||||
UINT8 jkjRelayValidFlag = 0u; /*初始化应急盘继电器有效状态*/
|
||||
UINT16 jkjRelayId = GetJkjRelayId();
|
||||
jkjRelayValidFlag = GetCiJkjFlag();
|
||||
routeType = GetRouteType(routeId); /*获取进路类型*/
|
||||
if (JKJ_REYLAY_VALID == jkjRelayValidFlag)
|
||||
if ((jkjRelayId > 0u) && (JKJ_REYLAY_VALID == jkjRelayValidFlag))
|
||||
{/*应急盘继电器有效状态,不允许信号重开*/
|
||||
errType = CI_ERROR;
|
||||
}
|
||||
@@ -3181,6 +3060,11 @@ static UINT8 OtherCiValidErrCheck(UINT16 const routeId)
|
||||
UINT8 devState = 0u;
|
||||
UINT8 ret = CI_SUCCESS;
|
||||
|
||||
/*进路始端信号机关联的PSD*/
|
||||
UINT16 rtStartSigId = 0u;/*进路始端信号机ID*/
|
||||
UINT8 psdSum = 0u;/*进路始端信号机关联的PSD数量*/
|
||||
UINT16 *psdIdBuf = NULL;/*进路始端信号机关联的PSD ID数组*/
|
||||
UINT16 j = 0u;/*遍历进路始端信号机关联的PSD ID数组的下标*/
|
||||
UINT8 toOpenCheckFlag = 0u;/*恢复可重开信号的条件标志*/
|
||||
UINT8 otherResult = 0u;/*其他联锁检查条件返回值*/
|
||||
UINT8 cFuncSwitchSpks = 0U; /*SPKS信号重开检查进路级别开关*/
|
||||
@@ -3205,13 +3089,17 @@ static UINT8 OtherCiValidErrCheck(UINT16 const routeId)
|
||||
/* 开始检查 */
|
||||
if ((0u != checkSum) && (NULL != dataOtherCiDevBuf))
|
||||
{
|
||||
/*开始检查*/
|
||||
rtStartSigId = GetRouteStartSignalId(routeId);/*获得进路始端信号机*/
|
||||
psdSum = GetSignalRelatedPsdSum(rtStartSigId);/*获得进路始端信号机关联的PSD数量*/
|
||||
psdIdBuf = GetSignalRelatedPsdBuf(rtStartSigId);/*获得进路始端信号机关联的PSD ID数组*/
|
||||
|
||||
/*开始检查*/
|
||||
for (i = 0u; i < checkSum; i++)
|
||||
{
|
||||
tmpOtherCiDevInfo = &dataOtherCiDevBuf[i];
|
||||
|
||||
toOpenCheckFlag = 0u;/*默认为恢复不可重开*/
|
||||
/*判断检查条件为SPKS或是进站、出战关联的PSD*/
|
||||
/*判断检查条件为SPKS或是本信号机关联的PSD*/
|
||||
if (CI_DEVICE_TYPE_SPKS == tmpOtherCiDevInfo->DevType)
|
||||
{
|
||||
cFuncSwitchSpks = GetCiFunctionSwitchConfig(FUNC_REPEATE_OPEN_CHECK_SPKS);
|
||||
@@ -3227,11 +3115,17 @@ static UINT8 OtherCiValidErrCheck(UINT16 const routeId)
|
||||
}
|
||||
else if (CI_DEVICE_TYPE_PSD == tmpOtherCiDevInfo->DevType)
|
||||
{
|
||||
toOpenCheckFlag = 1U;
|
||||
}
|
||||
else if (CI_DEVICE_TYPE_ESB == tmpOtherCiDevInfo->DevType)
|
||||
{
|
||||
toOpenCheckFlag = 1U;
|
||||
if ((NULL != psdIdBuf) && (0u < psdSum))
|
||||
{
|
||||
for (j = 0u;j < psdSum;j++)
|
||||
{
|
||||
if (psdIdBuf[j] == tmpOtherCiDevInfo->DevId)
|
||||
{
|
||||
toOpenCheckFlag = 1u;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3282,13 +3176,10 @@ static UINT8 RouteSecFLockErrCheck(UINT16 const routeId)
|
||||
UINT16 devId = 0u;
|
||||
UINT8 devState = 0u;
|
||||
UINT8 ret = CI_SUCCESS;
|
||||
UINT8 cRouteFlockCheck = CI_ERROR; /*封锁检查*/
|
||||
UINT8 chFlockType = 0U;/*区段封锁类型*/
|
||||
UINT8 chPassFlockType = SEC_FLOCK_CBTCLASTSEC_PASS;/*不检查的类型*/
|
||||
UINT8 chPassLastFlock = ROUTE_PASS_LAST_FLOCK_NO;/*跳过最后区段配置*/
|
||||
UINT8 chRouteLevel = 0U;/*进路等级*/
|
||||
chRouteLevel = GetRouteLevel(routeId);
|
||||
chPassLastFlock = GetRoutePassLastFlockProperty(routeId);
|
||||
UINT8 fLockType = PHY_SEC_FLOCK_TYPE_NONE;/*物理区段封锁类型变量*/
|
||||
UINT8 cRouteLevel = ROUTE_LEVEL_BLOC; /*进路级别*/
|
||||
UINT8 cFuncSwitchSpks = 0U; /*SPKS信号重开检查进路级别开关*/
|
||||
|
||||
if (0u == checkSum)
|
||||
{
|
||||
/*区段数据错误*/
|
||||
@@ -3301,31 +3192,40 @@ static UINT8 RouteSecFLockErrCheck(UINT16 const routeId)
|
||||
{
|
||||
devId = dataIdBuf[i].PhysicalSectionId;
|
||||
devState = GetPhySecFLockState(devId);
|
||||
chFlockType = GetPhySecFLockType(devId);
|
||||
|
||||
/* 状态如果不是未封锁状态,则认为检查失败 */
|
||||
if (PHYSICAL_SECTION_FLOCK_NO == devState)
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
else if ((ROUTE_LEVEL_CBTC == chRouteLevel)
|
||||
&& (ROUTE_PASS_LAST_FLOCK_YES == chPassLastFlock)
|
||||
&& ((checkSum - 1U) == i)
|
||||
&& (chPassFlockType == (chPassFlockType | chFlockType)))
|
||||
{
|
||||
;/*CBTC进路最后区段 具备不检查ESB/APG/SPKS封锁属性/*/
|
||||
}
|
||||
else if (PHYSICAL_SECTION_FLOCK_YES ==devState )
|
||||
{
|
||||
cRouteFlockCheck = SectionFlockReOpenCheck(devId, routeId);
|
||||
if ((CI_SUCCESS == cRouteFlockCheck)&&(CI_ERROR != ret))
|
||||
fLockType = GetPhySecFLockType(devId);/*获得物理区段封锁类型*/
|
||||
|
||||
if (PHY_SEC_FLOCK_TYPE_SPKS == fLockType)
|
||||
{
|
||||
ret = CI_ROUTE_RECOVER_ERR;
|
||||
if (CI_ERROR != ret)
|
||||
{
|
||||
cFuncSwitchSpks = GetCiFunctionSwitchConfig(FUNC_REPEATE_OPEN_CHECK_SPKS);
|
||||
cRouteLevel = GetRouteLevel(routeId);
|
||||
if ((FUNC_SWITCH_ON == cFuncSwitchSpks) || ((FUNC_SWITCH_OFF == cFuncSwitchSpks) && (ROUTE_LEVEL_CBTC == cRouteLevel)))
|
||||
{
|
||||
/*SPKS信号重开检查进路级别开关打开或(关闭且进路级别为CBTC)*/
|
||||
ret = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -3357,7 +3257,10 @@ static UINT8 OverlapAllSecFLockValidErrCheck(UINT16 const overlapId)
|
||||
UINT16 devId = 0u;
|
||||
UINT8 devState = 0u;
|
||||
UINT8 ret = CI_SUCCESS;
|
||||
UINT8 fLockOpenCheck = CI_ERROR;/*物理区段封锁类型变量*/
|
||||
|
||||
UINT8 fLockType = PHY_SEC_FLOCK_TYPE_NONE;/*物理区段封锁类型变量*/
|
||||
UINT8 cRouteLevel = ROUTE_LEVEL_BLOC; /*进路级别*/
|
||||
UINT8 cFuncSwitchSpks = 0U; /*SPKS信号重开检查进路级别开关*/
|
||||
UINT16 wBelongRouteId = 0U; /*保护区段锁闭所属进路*/
|
||||
|
||||
if ((0U != overlapId) && (OVERLAP_SUM_MAX != overlapId))
|
||||
@@ -3379,12 +3282,29 @@ static UINT8 OverlapAllSecFLockValidErrCheck(UINT16 const overlapId)
|
||||
}
|
||||
else if (PHYSICAL_SECTION_FLOCK_YES == devState)
|
||||
{
|
||||
wBelongRouteId = GetOverlapBelongRouteId(overlapId);
|
||||
fLockOpenCheck = SectionFlockReOpenCheck(devId, wBelongRouteId);/*获得物理区段封锁重开检查*/
|
||||
fLockType = GetPhySecFLockType(devId);/*获得物理区段封锁类型*/
|
||||
|
||||
if ((CI_ERROR != fLockOpenCheck)&&(CI_ERROR != ret))
|
||||
if (PHY_SEC_FLOCK_TYPE_SPKS == fLockType)
|
||||
{
|
||||
ret = CI_ROUTE_RECOVER_ERR;
|
||||
wBelongRouteId = GetOverlapBelongRouteId(overlapId);
|
||||
if ((CI_ERROR != ret) && (CI_ERROR != wBelongRouteId))
|
||||
{
|
||||
cFuncSwitchSpks = GetCiFunctionSwitchConfig(FUNC_REPEATE_OPEN_CHECK_SPKS);
|
||||
cRouteLevel = GetRouteLevel(wBelongRouteId);
|
||||
if ((FUNC_SWITCH_ON == cFuncSwitchSpks) || ((FUNC_SWITCH_OFF == cFuncSwitchSpks) && (ROUTE_LEVEL_CBTC == cRouteLevel)))
|
||||
{
|
||||
/*SPKS信号重开检查进路级别开关打开或(关闭且进路级别为CBTC)*/
|
||||
ret = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3877,23 +3797,6 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*检查照查继电器状态*/
|
||||
if ((CI_SUCCESS == reResult) || (CI_ROUTE_RECOVER_ERR == reResult))
|
||||
{
|
||||
checkResult = OverlapZhaoChaRelayCheck(overlapId, ESEND_LEVEL_ZERO);
|
||||
|
||||
if (CI_ERROR == checkResult)
|
||||
{
|
||||
reResult = checkResult;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4304,28 +4207,6 @@ static UINT8 KeepCbtcRouteSectionErrCheck(const UINT16 routeId)
|
||||
|
||||
#endif
|
||||
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
/*CBTC通过进路需再检查数据中配置的逻辑区段的占用状态*/
|
||||
devId = 0U;
|
||||
devState = 0U;
|
||||
checkResult = RouteCbtcKeepOpenLgcOccCheck(routeId, &devId, &devState);
|
||||
if (CI_SUCCESS == checkResult)
|
||||
{
|
||||
/* 通过检查 */
|
||||
reResult = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*非列车进路或已经检查失败,不处理*/
|
||||
}
|
||||
|
||||
/* 进路内所有区段未被封锁 */
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
@@ -4445,29 +4326,6 @@ static UINT8 OpenCbtcRouteSectionErrCheck(const UINT16 routeId)
|
||||
;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
/*CBTC通过进路需再检查数据中配置的逻辑区段的占用状态*/
|
||||
devId = 0U;
|
||||
devState = 0U;
|
||||
checkResult = RouteCbtcLogSecOccCheck(routeId, &devId, &devState);
|
||||
if (CI_SUCCESS == checkResult)
|
||||
{
|
||||
/* 通过检查 */
|
||||
reResult = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*非列车进路或已经检查失败,不处理*/
|
||||
}
|
||||
|
||||
|
||||
/*使用新增的函数RouteIntruSecVainSPKSErrCheck*/
|
||||
#if 0
|
||||
/*侵限区段侵限条件不满足检查*/
|
||||
@@ -4509,7 +4367,7 @@ static UINT8 OpenCbtcRouteSectionErrCheck(const UINT16 routeId)
|
||||
}
|
||||
#endif
|
||||
/* 进路内所有区段未被封锁 */
|
||||
if (CI_SUCCESS == reResult)
|
||||
if (checkResult == CI_SUCCESS)
|
||||
{
|
||||
checkResult = RouteSecFLockErrCheck(routeId);
|
||||
if ((CI_ERROR == checkResult) || (CI_ROUTE_RECOVER_ERR == checkResult))
|
||||
@@ -4664,8 +4522,10 @@ static UINT8 RouteIntruSecVainSPKSErrCheck(const UINT16 routeId)
|
||||
UINT8 devJumpLockState = 0U;
|
||||
UINT8 intruSwitchPosValid = CI_ERROR;
|
||||
UINT8 reVal = CI_ERROR;
|
||||
UINT8 fLockOpenCheck = CI_ERROR;/*物理区段封锁检查*/
|
||||
UINT8 fLockType = PHY_SEC_FLOCK_TYPE_NONE;/*物理区段封锁类型变量*/
|
||||
UINT8 checkFlockFlag = GetCiFunctionSwitchConfig(FUNC_INTRUSEC_CHECKFLOCK_FLAG);
|
||||
UINT8 cFuncSwitchSpks = 0U; /*SPKS自动信号重开是否检查进路级别开关*/
|
||||
UINT8 cRouteLevel = 0U;
|
||||
UINT8 chPhySecLogLockState = 0U;/*物理区段逻辑锁闭状态*/
|
||||
|
||||
/* 检查侵限状态 */
|
||||
@@ -4678,16 +4538,21 @@ static UINT8 RouteIntruSecVainSPKSErrCheck(const UINT16 routeId)
|
||||
{
|
||||
/*开始检查*/
|
||||
reVal = CI_SUCCESS;/*先将返回值设置成功,若侵限成立则会修改函数返回值为CI_ERROR或CI_ROUTE_RECOVER_ERR*/
|
||||
cFuncSwitchSpks = GetCiFunctionSwitchConfig(FUNC_REPEATE_OPEN_CHECK_SPKS);
|
||||
cRouteLevel = GetRouteLevel(routeId);
|
||||
|
||||
for (i = 0u; i < checkSum; i++)
|
||||
{
|
||||
devId = dataIdBuf[i].SectionId;
|
||||
devState = GetPhySecCurMergeState(devId);/*获取物理区段占用状态*/
|
||||
devFLockState = GetPhySecFLockState(devId);/*获取物理区段封锁状态*/
|
||||
fLockType = GetPhySecFLockType(devId);/*获取物理区段封锁类型*/
|
||||
devLockState = GetPhySecLockState(devId);
|
||||
devJumpLockState = GetPhySecJumpLockState(devId);
|
||||
chPhySecLogLockState = PhySecLogLockStateCheck(devId);
|
||||
|
||||
|
||||
|
||||
/* 检查侵限区段是否占用或封锁*/
|
||||
if ((SECTION_OCCUPY_YES == devState)
|
||||
|| ((PHYSICAL_SECTION_FLOCK_YES == devFLockState) && (FUNC_SWITCH_ON != checkFlockFlag))
|
||||
@@ -4724,11 +4589,10 @@ static UINT8 RouteIntruSecVainSPKSErrCheck(const UINT16 routeId)
|
||||
if (CI_ERROR == intruSwitchPosValid)
|
||||
{
|
||||
/*有岔侵限条件成立*/
|
||||
fLockOpenCheck = SectionFlockReOpenCheck(devId, routeId);
|
||||
if ((PHYSICAL_SECTION_JUMP_LOCK_YES != devJumpLockState) && (PHYSICAL_SECTION_LOCK_NO == devLockState) && (SECTION_OCCUPY_YES != devState)
|
||||
&& (PHYSICAL_SECTION_FLOCK_YES == devFLockState) && (LOG_SECTION_LOGLOCK_NO == chPhySecLogLockState)
|
||||
&& (CI_SUCCESS==fLockOpenCheck))
|
||||
{/*侵限区段未占用且封锁且是由于可重开的封锁(spks或全线封锁),在恢复后可自动重开*/
|
||||
&& (PHYSICAL_SECTION_FLOCK_YES == devFLockState) && (PHY_SEC_FLOCK_TYPE_SPKS == fLockType) && (LOG_SECTION_LOGLOCK_NO == chPhySecLogLockState)
|
||||
&& ((FUNC_SWITCH_ON == cFuncSwitchSpks) || ((FUNC_SWITCH_OFF == cFuncSwitchSpks) && (ROUTE_LEVEL_CBTC == cRouteLevel))))
|
||||
{/*侵限区段未占用且封锁且是由于SPKS按下导致的封锁且(SPKS自动重开开关打开或关闭但进路为CBTC),在SPKS恢复后可自动重开*/
|
||||
reVal = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
@@ -4739,11 +4603,10 @@ static UINT8 RouteIntruSecVainSPKSErrCheck(const UINT16 routeId)
|
||||
}
|
||||
else
|
||||
{
|
||||
fLockOpenCheck = SectionFlockReOpenCheck(devId, routeId);
|
||||
if ((PHYSICAL_SECTION_JUMP_LOCK_YES != devJumpLockState) && (PHYSICAL_SECTION_LOCK_NO == devLockState) && (SECTION_OCCUPY_YES != devState)
|
||||
&& (PHYSICAL_SECTION_FLOCK_YES == devFLockState) && (LOG_SECTION_LOGLOCK_NO == chPhySecLogLockState)
|
||||
&& (CI_SUCCESS == fLockOpenCheck))
|
||||
{/*侵限区段未占用且封锁且是由于可重开的封锁(spks或全线封锁),在恢复后可自动重开恢复后可自动重开*/
|
||||
&& (PHYSICAL_SECTION_FLOCK_YES == devFLockState) && (PHY_SEC_FLOCK_TYPE_SPKS == fLockType) && (LOG_SECTION_LOGLOCK_NO == chPhySecLogLockState)
|
||||
&& ((FUNC_SWITCH_ON == cFuncSwitchSpks) || ((FUNC_SWITCH_OFF == cFuncSwitchSpks) && (ROUTE_LEVEL_CBTC == cRouteLevel))))
|
||||
{/*侵限区段未占用且封锁且是由于SPKS按下导致的封锁且(SPKS自动重开开关打开或关闭但进路为CBTC),在SPKS恢复后可自动重开*/
|
||||
reVal = CI_ROUTE_RECOVER_ERR;
|
||||
}
|
||||
else
|
||||
@@ -4776,21 +4639,26 @@ static UINT8 RouteIntruSecVainSPKSErrCheck(const UINT16 routeId)
|
||||
*/
|
||||
static UINT8 RouteRelayZhaoChaErrCheck(UINT16 const routeId)
|
||||
{
|
||||
/* 局部变量定义初始化 */
|
||||
UINT16 relayId = 0U;
|
||||
UINT8 relayState = 0U;
|
||||
UINT8 zcPhySecSum = 0U; /*照查物理区段数目*/
|
||||
UINT16* pZcPhySecIdBuf = NULL; /*照查物理区段ID数组*/
|
||||
UINT8 ii = 0U;
|
||||
/* 局部变量定义初始化 */
|
||||
UINT16 relayId = 0U;
|
||||
UINT8 relayState = 0U;
|
||||
UINT8 zcPhySecSum = 0U; /*照查物理区段数目*/
|
||||
UINT16* pZcPhySecIdBuf = NULL; /*照查物理区段ID数组*/
|
||||
UINT8 ii = 0U;
|
||||
UINT16 thisRealyId = 0U;
|
||||
UINT8 thisRelayState = 0U;
|
||||
UINT8 thisRelayState = 0U;
|
||||
UINT8 routeState = 0U;
|
||||
UINT8 retVal = CI_ERROR; /*函数返回值*/
|
||||
UINT16 pDevId = 0U;
|
||||
UINT8 pDevState = 0U;
|
||||
UINT8 chRouteLevel = 0U;
|
||||
UINT8 chErrTemp = 0U;
|
||||
|
||||
/* 对端照查检查 */
|
||||
zcPhySecSum = GetRouteThatZhaoChaPhySecSum(routeId); /*获取照查物理区段数目*/
|
||||
/* 对端照查检查 */
|
||||
zcPhySecSum = GetRouteThatZhaoChaPhySecSum(routeId); /*获取照查物理区段数目*/
|
||||
pZcPhySecIdBuf = GetRouteThatZhaoChaPhySecIdBuf(routeId); /*获取照查物理区段ID数组*/
|
||||
/*进路监督级别确认*/
|
||||
chRouteLevel = GetRouteLevel(routeId);
|
||||
|
||||
if (NULL == pZcPhySecIdBuf)
|
||||
{
|
||||
@@ -4800,14 +4668,14 @@ static UINT8 RouteRelayZhaoChaErrCheck(UINT16 const routeId)
|
||||
{
|
||||
retVal = CI_SUCCESS;
|
||||
|
||||
for (ii = 0u; ii < zcPhySecSum; ii++)
|
||||
{
|
||||
retVal = RoutePhySecZhaoChaErrCheck(routeId, pZcPhySecIdBuf[ii]);
|
||||
for (ii = 0u; ii < zcPhySecSum; ii++)
|
||||
{
|
||||
retVal = RoutePhySecZhaoChaErrCheck(routeId,pZcPhySecIdBuf[ii]);
|
||||
if (CI_ERROR == retVal)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (CI_ROUTE_RECOVER_ERR == retVal) /*YF00083-1013,出现一个封锁即跳出,防止两个物理区段,一个封锁在前检查,一个未封锁在后检查覆盖掉retVal的值*/
|
||||
else if(CI_ROUTE_RECOVER_ERR == retVal) /*YF00083-1013,出现一个封锁即跳出,防止两个物理区段,一个封锁在前检查,一个未封锁在后检查覆盖掉retVal的值*/
|
||||
{
|
||||
chErrTemp++; /*有一个SPKS封锁就计数一次*/
|
||||
}
|
||||
@@ -4820,13 +4688,24 @@ static UINT8 RouteRelayZhaoChaErrCheck(UINT16 const routeId)
|
||||
{
|
||||
retVal = CI_ROUTE_RECOVER_ERR; /*出现过一个SPKS封锁,就赋值返回值为SPKS封锁*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((CI_SUCCESS == retVal) || (CI_ROUTE_RECOVER_ERR == retVal))
|
||||
if ((CI_SUCCESS == retVal) || (CI_ROUTE_RECOVER_ERR == retVal))
|
||||
{/*照查物理区段检查通过,检查本端照查继电器*/
|
||||
if (ROUTE_LEVEL_BLOC == chRouteLevel)
|
||||
{
|
||||
thisRealyId = GetRouteThisZhaoChaRelayId(routeId); /*后备模式本端照查继电器ID*/
|
||||
}
|
||||
else if (ROUTE_LEVEL_CBTC == chRouteLevel)
|
||||
{
|
||||
thisRealyId = GetRouteCbtcThisZhaoChaRelayId(routeId);/*CBTC模式本端照查继电器ID*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*非法监督模式,继电器ID为0,在下面不会处理*/
|
||||
}
|
||||
|
||||
thisRealyId = GetRouteThisZhaoChaRelayId(routeId); /*本端照查继电器ID*/
|
||||
thisRelayState = GetRelayCollState(thisRealyId); /*获取指定ID继电器的状态*/
|
||||
routeState = GetRouteState(routeId); /*获取进路状态*/
|
||||
|
||||
@@ -4834,27 +4713,20 @@ static UINT8 RouteRelayZhaoChaErrCheck(UINT16 const routeId)
|
||||
{/*存在本端照查继电器*/
|
||||
if ((ROUTE_STATE_FIRST_LOCKERR == routeState) ||
|
||||
(ROUTE_STATE_YUXIAN_LOCK == routeState) ||
|
||||
(ROUTE_STATE_YUXIAN_OPEN == routeState) ||
|
||||
(ROUTE_STATE_NEAR_OPEN == routeState) ||
|
||||
(ROUTE_STATE_NEAR_LOCK == routeState) ||
|
||||
(ROUTE_STATE_NEAR_LOCKERR == routeState) ||
|
||||
(ROUTE_STATE_DELAY_UNLOCK == routeState) ||
|
||||
(ROUTE_STATE_AUTO_UNLOCK == routeState) ||
|
||||
(ROUTE_STATE_AUTO_UNLOCKERR == routeState) ||
|
||||
(ROUTE_STATE_HALF_UNLOCKDELAY == routeState) ||
|
||||
(ROUTE_STATE_LEAD_LOCKERR == routeState) ||
|
||||
(ROUTE_STATE_LEAD_OPEN == routeState))
|
||||
(ROUTE_STATE_NEAR_OPEN == routeState) ||
|
||||
(ROUTE_STATE_YUXIAN_OPEN == routeState))
|
||||
{
|
||||
/*需判断本端照查的状态*/
|
||||
if (RELAY_STATE_UP == thisRelayState)
|
||||
/*进路状态初锁异常,预先锁闭,接近锁闭异常,接近开放,预先开放,
|
||||
需判断本端照查的状态*/
|
||||
if(RELAY_STATE_UP == thisRelayState)
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else if ((ROUTE_STATE_FIRST_LOCK == routeState) ||
|
||||
(ROUTE_STATE_LEAD_LOCK == routeState))
|
||||
else if (ROUTE_STATE_FIRST_LOCK == routeState)
|
||||
{
|
||||
if (RELAY_STATE_UP == thisRelayState)
|
||||
if(RELAY_STATE_UP == thisRelayState)
|
||||
{
|
||||
/*等待,返回等待标志*/
|
||||
retVal = RELAY_STATE_WAITE;
|
||||
@@ -4868,29 +4740,40 @@ static UINT8 RouteRelayZhaoChaErrCheck(UINT16 const routeId)
|
||||
|
||||
}
|
||||
|
||||
if ((CI_SUCCESS == retVal) || (CI_ROUTE_RECOVER_ERR == retVal))
|
||||
if ((CI_SUCCESS == retVal) || (CI_ROUTE_RECOVER_ERR == retVal))
|
||||
{/*本端照查继电器检查通过,检查对端照查继电器*/
|
||||
|
||||
relayId = GetRouteThatZhaoChaRelayId(routeId); /*对端照查继电器ID*/
|
||||
|
||||
if (0u != relayId)
|
||||
{/*存在对端照查继电器*/
|
||||
|
||||
relayState = GetRelayCollState(relayId);
|
||||
|
||||
/* 照查吸起检查*/
|
||||
if (RELAY_STATE_UP == relayState)
|
||||
{
|
||||
/*检查通过*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
if (ROUTE_LEVEL_BLOC == chRouteLevel)
|
||||
{
|
||||
relayId = GetRouteThatZhaoChaRelayId(routeId); /*后备模式对端照查继电器ID*/
|
||||
}
|
||||
else if (ROUTE_LEVEL_CBTC == chRouteLevel)
|
||||
{
|
||||
relayId = GetRouteCbtcThatZhaoChaRelayId(routeId);/*CBTC模式对端照查继电器ID*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*非法监督模式,继电器ID为0,在下面不会处理*/
|
||||
}
|
||||
|
||||
if(0u != relayId)
|
||||
{/*存在对端照查继电器*/
|
||||
|
||||
relayState = GetRelayCollState(relayId);
|
||||
|
||||
/* 照查吸起检查*/
|
||||
if (RELAY_STATE_UP == relayState)
|
||||
{
|
||||
/*检查通过*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4909,13 +4792,15 @@ UINT8 RoutePhySecZhaoChaErrCheck(UINT16 const routeId ,UINT16 const phySecId)
|
||||
UINT8 secLockedDirection = 0u; /*区段锁闭方向*/
|
||||
UINT8 routeDirection = 0u; /*进路方向*/
|
||||
UINT8 retVal = CI_ERROR; /*函数返回值*/
|
||||
UINT8 fLockOpenCheck = CI_ERROR; /*物理区段封锁重开检查*/
|
||||
UINT8 fLockType = PHY_SEC_FLOCK_TYPE_NONE; /*物理区段封锁类型变量*/
|
||||
UINT8 phyBelongCi = 0u; /*物理区段所属联锁*/
|
||||
UINT8 commState = 0u; /*通信状态*/
|
||||
/*相邻联锁是否支持继电接口*/
|
||||
UINT8 funcSwitchSupportRelayInterface = GetCiFunctionSwitchConfig(FUNC_SWITCH_USE_RELAY_INTERFACE_BETWEEN_NEIGHBOURCI);
|
||||
UINT8 localCi = GetSystemParaLocalCiId(); /*本机联锁*/
|
||||
UINT8 confirmRelayInterfaceFlag = GetCiCiRelayInterfConfirmFlag();/*继电接口确认状态*/
|
||||
UINT8 cFuncSwitchSpks = 0U; /*SPKS信号自动重开开关,0x55检查进路级别,0xaa不检查*/
|
||||
UINT8 cRouteLevel = 0U;
|
||||
|
||||
if ((0U == routeId ) || (0U == phySecId))
|
||||
{
|
||||
@@ -4973,10 +4858,12 @@ UINT8 RoutePhySecZhaoChaErrCheck(UINT16 const routeId ,UINT16 const phySecId)
|
||||
}
|
||||
else if (PHYSICAL_SECTION_FLOCK_YES == secFlockState)
|
||||
{
|
||||
fLockOpenCheck = SectionFlockReOpenCheck(phySecId, routeId);/*物理区段封锁重开检查*/
|
||||
if (CI_SUCCESS == fLockOpenCheck)
|
||||
fLockType = GetPhySecFLockType(phySecId);/*获得物理区段封锁类型*/
|
||||
cFuncSwitchSpks = GetCiFunctionSwitchConfig(FUNC_REPEATE_OPEN_CHECK_SPKS);
|
||||
cRouteLevel = GetRouteLevel(routeId);
|
||||
if ((PHY_SEC_FLOCK_TYPE_SPKS == fLockType) && ((FUNC_SWITCH_ON == cFuncSwitchSpks) || ((FUNC_SWITCH_OFF == cFuncSwitchSpks) && (ROUTE_LEVEL_CBTC == cRouteLevel))))
|
||||
{
|
||||
retVal = CI_ROUTE_RECOVER_ERR; /* 区段封锁且是可重开封锁类型导致封锁,在封锁恢复后可自动重开*/
|
||||
retVal = CI_ROUTE_RECOVER_ERR; /* 状态如果SPKS导致的封锁且SPKS自动重开开关打开或关闭但进路为CBTC,则可以恢复重开*/
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -50,116 +50,58 @@ void JKJRelayLogicProcess(void)
|
||||
{
|
||||
UINT16 wJkjRelayId = 0u;
|
||||
UINT8 JkjRelayState = CI_ERROR;
|
||||
UINT32 yjValidCycNum = 0u;
|
||||
UINT32 JkjRelayCycNum = 0u;
|
||||
UINT32 JkjValidCycNum = 0u;
|
||||
UINT32 curCycNum = 0u;
|
||||
UINT8 checkRes = CI_TIME_OUT;
|
||||
UINT8 ii = 0u;
|
||||
UINT8 haveYjkBreakFlag = 0u;
|
||||
UINT8 ocYjkBreakFlag = 0u;
|
||||
UINT8 tmpRet =CI_ERROR;
|
||||
|
||||
wJkjRelayId = GetJkjRelayId();
|
||||
JkjRelayState = GetRelayCollState(wJkjRelayId); /*JKJ应急盘继电器采集状态*/
|
||||
yjValidCycNum = GetJkjRelayValidCycNum(); /*JKJ应急盘状态有效周期*/
|
||||
curCycNum = Get2oo2CurCycleNum();
|
||||
JkjRelayCycNum = GetRelayStateUpdateCycNum(wJkjRelayId); /*JKJ应急盘继电器状态更新周期*/
|
||||
JkjValidCycNum = GetJkjRelayValidCycNum(); /*JKJ应急盘状态有效周期*/
|
||||
|
||||
for (ii = 0u; ii < m_OcToCiOrginDataNum; ii++)
|
||||
|
||||
|
||||
if ((wJkjRelayId > 0u) && (RELAY_STATE_DOWN == JkjRelayState))
|
||||
{
|
||||
if (OC_HAVE_YJK == m_OcToCiOrginDataArr[ii].chHaveYjk)
|
||||
{/*任意一个OC具备应急控*/
|
||||
haveYjkBreakFlag = 1u;
|
||||
break;
|
||||
curCycNum = Get2oo2CurCycleNum();
|
||||
if (0u == JkjRelayCycNum)
|
||||
{/*若未计时,则设置起始周期*/
|
||||
tmpRet = SetRelayStateUpdateCycNum(wJkjRelayId,curCycNum);
|
||||
if (CI_ERROR == tmpRet)
|
||||
{
|
||||
/*错误处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*继续*/
|
||||
checkRes = SystemOverTimeCheck(JkjRelayCycNum,JKJ_REYLAY_VALID_CYCLE_NUM);
|
||||
if (CI_TIME_OUT == checkRes)
|
||||
{ /*应急盘有效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_VALID); /*设置JKJ应急盘有效标志为有效*/
|
||||
if (0u == JkjValidCycNum) /*之前没有设置应急盘有效开始周期*/
|
||||
{
|
||||
SetJkjRelayValidCycNum(curCycNum); /*设置JKJ应急盘有效周期*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (ii = 0u; ii < m_OcToCiOrginDataNum; ii++)
|
||||
else if ((wJkjRelayId > 0u) && (RELAY_STATE_UP == JkjRelayState))
|
||||
{
|
||||
if (OC_CTLMODE_YJK == m_OcToCiOrginDataArr[ii].chControlMode)
|
||||
{/*任意一个OC是应急控*/
|
||||
ocYjkBreakFlag = 1u;
|
||||
break;
|
||||
}
|
||||
else
|
||||
tmpRet = SetRelayStateUpdateCycNum(wJkjRelayId, 0u); /*清除JKJ继电器有效起始周期号*/
|
||||
if (CI_ERROR == tmpRet)
|
||||
{
|
||||
; /*继续*/
|
||||
/*错误处理*/
|
||||
}
|
||||
}
|
||||
/*应急盘无效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_INVALID); /*设置JKJ应急盘继电器有效标志为无效*/
|
||||
|
||||
if (wJkjRelayId > 0u)
|
||||
{
|
||||
/*配置了继电器*/
|
||||
if (RELAY_STATE_DOWN == JkjRelayState)
|
||||
{/*落下*/
|
||||
if (0u == yjValidCycNum)
|
||||
{/*未计时*/
|
||||
SetJkjRelayValidCycNum(curCycNum); /*设置应急有效周期*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不做处理*/
|
||||
}
|
||||
checkRes = SystemOverTimeCheck(yjValidCycNum, JKJ_REYLAY_VALID_CYCLE_NUM);
|
||||
if (CI_TIME_OUT == checkRes)
|
||||
{ /*应急有效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_VALID); /*设置应急盘有效标志为有效*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不做处理*/
|
||||
}
|
||||
}
|
||||
else if (RELAY_STATE_UP == JkjRelayState)
|
||||
{/*吸起*/
|
||||
/*应急无效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_INVALID); /*设置应急盘有效标志为无效*/
|
||||
SetJkjRelayValidCycNum(0u); /*设置应急无效周期*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*应急无效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_VALID); /*设置应急盘有效标志为无效*/
|
||||
SetJkjRelayValidCycNum(curCycNum); /*设置应急无效周期*/
|
||||
}
|
||||
}
|
||||
else if(1u == haveYjkBreakFlag)
|
||||
{
|
||||
/*OC具备应急控*/
|
||||
if (1u == ocYjkBreakFlag)
|
||||
{/*有一个OC处于应急控,则应急有效*/
|
||||
if (0u == yjValidCycNum)
|
||||
{/*未计时*/
|
||||
SetJkjRelayValidCycNum(curCycNum); /*设置应急有效周期*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不做处理*/
|
||||
}
|
||||
checkRes = SystemOverTimeCheck(yjValidCycNum, JKJ_REYLAY_VALID_CYCLE_NUM);
|
||||
if (CI_TIME_OUT == checkRes)
|
||||
{ /*应急有效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_VALID); /*设置应急盘有效标志为有效*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不做处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{/*应急无效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_INVALID); /*设置应急盘有效标志为无效*/
|
||||
SetJkjRelayValidCycNum(0u); /*设置应急无效周期*/
|
||||
}
|
||||
SetJkjRelayValidCycNum(0u); /*设置JKJ应急盘无效周期*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*JKJ未配置,OC无应急控功能,应急盘无效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_INVALID); /*设置应急盘有效标志为无效*/
|
||||
SetJkjRelayValidCycNum(0u); /*设置应急无效周期*/
|
||||
/*应急盘无效*/
|
||||
SetCiJkjFlag(JKJ_REYLAY_INVALID); /*设置JKJ应急盘继电器有效标志为无效*/
|
||||
SetJkjRelayValidCycNum(0u); /*设置JKJ应急盘继电器无效周期*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -873,6 +815,9 @@ void RouteLogicProcess(void)
|
||||
/*扣车、SPKS、PSD导致信号关闭又重开处理*/
|
||||
RouteRecoverOpenProc(routeId);
|
||||
|
||||
/*进路调车同意逻辑处理*/
|
||||
RouteDCTYLogicM(routeId);
|
||||
|
||||
/*根据进路状态清理相关标志*/
|
||||
ClearSomeFlagDependRouteState(routeId);
|
||||
/*cgh-合并CID-2349-5:*/
|
||||
@@ -3787,7 +3732,7 @@ void SetSwitchPositionM(const UINT16 switchId, const UINT8 switchSetPos)
|
||||
if (CI_SUCCESS == check_Result)
|
||||
{/*单操位置有效*/
|
||||
/*单操道岔处理*/
|
||||
if (CI_SUCCESS == SetSwitchPositionLogicProcess(switchId, switchSetPos, 0u, &chTemp, ESEND_LEVEL_ATS))
|
||||
if (CI_SUCCESS == SetSwitchPositionLogicProcess(switchId, switchSetPos, 0u, &chTemp))
|
||||
{ /*检查通过*/
|
||||
|
||||
(void)SetSwitchDanCaoPosition(switchId, switchSetPos); /*设置单操位置标志*/
|
||||
@@ -4415,22 +4360,37 @@ void NonRouteCancelDeal(UINT8 nonRouteId)
|
||||
void UpdateZhaoChaDeal(const UINT16 routeId, const UINT8 routeState)
|
||||
{
|
||||
UINT16 wSelfRealyId = 0U; /*本模式本端照查ID*/
|
||||
UINT16 wOtherRealyId = 0U; /*本模式本端照查ID*/
|
||||
UINT8 relauDrvState = 0U;
|
||||
UINT8 chRouteLevel = GetRouteLevel(routeId);
|
||||
UINT8 chOverTimeCheck = 0U;
|
||||
UINT32 dwTimeOutCycCount = 0U;
|
||||
UINT32 dwRouteLockStartCycNum = 0U;
|
||||
|
||||
wSelfRealyId = GetRouteThisZhaoChaRelayId(routeId); /*本端照查继电器ID*/
|
||||
dwRouteLockStartCycNum = GetRouteLockStartCycNum(routeId);
|
||||
if (ROUTE_LEVEL_BLOC == chRouteLevel)
|
||||
{
|
||||
wSelfRealyId = GetRouteThisZhaoChaRelayId(routeId); /*后备模式本端照查继电器ID*/
|
||||
wOtherRealyId = GetRouteCbtcThisZhaoChaRelayId(routeId); /*CBTC模式本端照查继电器ID*/
|
||||
}
|
||||
else if (ROUTE_LEVEL_CBTC == chRouteLevel)
|
||||
{
|
||||
wSelfRealyId = GetRouteCbtcThisZhaoChaRelayId(routeId); /*CBTC模式本端照查继电器ID*/
|
||||
wOtherRealyId = GetRouteThisZhaoChaRelayId(routeId); /*后备模式本端照查继电器ID*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*非法监督模式,继电器ID为0,在下面不会处理*/
|
||||
}
|
||||
|
||||
dwTimeOutCycCount = GetSystemParaSignalCloseCyc();
|
||||
|
||||
if (0U < wSelfRealyId)
|
||||
if ((routeState == ROUTE_STATE_IDLE) ||
|
||||
(routeState == ROUTE_STATE_FIRST_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_LEAD_FIRST_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_LEAD_XUANPAI))
|
||||
{
|
||||
if ((routeState == ROUTE_STATE_IDLE) ||
|
||||
(routeState == ROUTE_STATE_FIRST_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_LEAD_FIRST_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_LEAD_XUANPAI))
|
||||
/*进路空闲 两种模式照查都吸起*/
|
||||
if (0U < wSelfRealyId)
|
||||
{
|
||||
relauDrvState = GetRelayDriveState(wSelfRealyId);
|
||||
if (RELAY_DRIVE_STATE_NULL == relauDrvState)
|
||||
@@ -4438,15 +4398,34 @@ void UpdateZhaoChaDeal(const UINT16 routeId, const UINT8 routeState)
|
||||
(void)SetRelayDriveState(wSelfRealyId, RELAY_STATE_UP);
|
||||
}
|
||||
}
|
||||
else
|
||||
if (0U < wOtherRealyId)
|
||||
{
|
||||
relauDrvState = GetRelayDriveState(wOtherRealyId);
|
||||
if (RELAY_DRIVE_STATE_NULL == relauDrvState)
|
||||
{
|
||||
(void)SetRelayDriveState(wOtherRealyId, RELAY_STATE_UP);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*进路锁闭 本模式照查落下,另一模式照查吸起*/
|
||||
if (0U < wOtherRealyId)
|
||||
{
|
||||
relauDrvState = GetRelayDriveState(wOtherRealyId);
|
||||
if (RELAY_DRIVE_STATE_NULL == relauDrvState)
|
||||
{
|
||||
(void)SetRelayDriveState(wOtherRealyId, RELAY_STATE_UP);
|
||||
}
|
||||
}
|
||||
if (0U < wSelfRealyId)
|
||||
{
|
||||
(void)SetRelayDriveState(wSelfRealyId, RELAY_STATE_DOWN);
|
||||
relauDrvState = GetRelayCollState(wSelfRealyId);
|
||||
|
||||
if (RELAY_STATE_DOWN != relauDrvState)
|
||||
{ /*照查继电器未落下*/
|
||||
chOverTimeCheck = SystemOverTimeCheck(dwRouteLockStartCycNum, dwTimeOutCycCount);
|
||||
if (CI_TIME_OUT == chOverTimeCheck)
|
||||
chOverTimeCheck = CheckRelayDriveOutTime(wSelfRealyId, dwTimeOutCycCount);
|
||||
if (CI_ERROR == chOverTimeCheck)
|
||||
{/*照查超时超时*/
|
||||
|
||||
/*xxxxx宕机*/
|
||||
@@ -6145,16 +6124,16 @@ UINT16 GetReturnId(const UINT16 routeId)
|
||||
{
|
||||
/*当前状态是接近锁闭异常*/
|
||||
|
||||
/* 如果是差至,如果列车驶入过进路,同时之前状态必须为接近锁闭开放
|
||||
/* 如果是差至,如果列车驶入过进路,同时之前状态必须为接近锁闭正常(列车压入,信号关闭)
|
||||
* 否则不认为是同一列车跨入中途折返处理
|
||||
*/
|
||||
if((ROUTE_STATE_NEAR_OPEN == preRouteState) && (TRAIN_ENTER_ROUTE_FLAG_YES == GetTrainEnterRouteFlag(routeId)))
|
||||
if((ROUTE_STATE_NEAR_LOCK == preRouteState) && (TRAIN_ENTER_ROUTE_FLAG_YES == GetTrainEnterRouteFlag(routeId)))
|
||||
{
|
||||
returnSigId = GetRouteChaZhiSignalId(routeId); /*获取差置信号机ID*/
|
||||
}
|
||||
else
|
||||
{
|
||||
returnSigId = 0U;
|
||||
returnSigId = 0u;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6187,8 +6166,6 @@ void DTrainReturnUnlockRouteAllLockP(const UINT16 routeId)
|
||||
UINT8 chLockBelRouteType = 0U;/*区段锁闭所属进路进路类型*/
|
||||
UINT8 chTrainEnterRouteFlag = 0U;/*列车驶入进路标志*/
|
||||
UINT8 chRouteInOutSecOccupy = 0U;/*进路内外方同时占压标志*/
|
||||
UINT32 dwRoutLockCycNum = 0U;
|
||||
UINT32 dwReturnRoutLockCycNum = 0U;
|
||||
|
||||
routeState = GetRouteState(routeId); /*获取进路状态*/
|
||||
routeType = GetRouteType(routeId);
|
||||
@@ -6230,16 +6207,14 @@ void DTrainReturnUnlockRouteAllLockP(const UINT16 routeId)
|
||||
wLockRouteStartSigId = GetRouteStartSignalId(lockBelongRouteId);/*获取进路始端信号机ID*/
|
||||
chTrainEnterRouteFlag = CheckTrainEnterRoute(lockBelongRouteId);/*获取列车驶入进路标志*/
|
||||
chRouteInOutSecOccupy = RouteInOutSecOccupy(lockBelongRouteId);/*进路内外方同时占用标志*/
|
||||
dwRoutLockCycNum = GetRouteLockStartCycNum(routeId); /*获取进路锁闭起始周期*/
|
||||
dwReturnRoutLockCycNum = GetRouteLockStartCycNum(lockBelongRouteId);/*获取折出进路锁闭起始周期*/
|
||||
|
||||
if ((ROUTE_STATE_NEAR_OPEN == chLockBelRouteState) && (ROUTE_TYPE_DIAOCHE == chLockBelRouteType) &&
|
||||
(returnSigId == wLockRouteStartSigId) && (dwReturnRoutLockCycNum > dwRoutLockCycNum) &&
|
||||
(returnSigId == wLockRouteStartSigId) &&
|
||||
((CI_SUCCESS == chTrainEnterRouteFlag) ||
|
||||
((CI_SUCCESS == chRouteInOutSecOccupy) && (ROUTE_TYPE_LIECHE == routeType))))
|
||||
{
|
||||
/*折出进路是调车进路&&状态是接近开放&&折出进路始端信号机是本进路折返信号机 &&(有车驶入 或 待解锁进路为列车进路是折出进路时内外方区段同时占压)*/
|
||||
/*by cgh 20250414增加条件:折出进路锁闭时间晚于需中途解锁进路*/
|
||||
|
||||
/*解锁成功*/
|
||||
SetRoutePhySectionLockState(routeId, PHYSICAL_SECTION_LOCK_NO); /*设置进路区段未锁闭*/
|
||||
|
||||
@@ -6249,10 +6224,10 @@ void DTrainReturnUnlockRouteAllLockP(const UINT16 routeId)
|
||||
SetRouteStateDeal(routeId, ROUTE_STATE_IDLE); /*设置进路状态为空闲*/
|
||||
}
|
||||
if ((ROUTE_TYPE_LIECHE == chLockBelRouteType) && (ROUTE_STATE_NEAR_LOCK == chLockBelRouteState)
|
||||
&& (returnSigId == wLockRouteStartSigId) && (dwReturnRoutLockCycNum > dwRoutLockCycNum))
|
||||
&& (returnSigId == wLockRouteStartSigId))
|
||||
{
|
||||
/*折出进路是列车进路 且 进路状态是接近锁闭正常 且 折出进路始端信号机是本进路折返信号机*/
|
||||
/*by cgh 20250414增加条件:折出进路锁闭时间晚于需中途解锁进路*/
|
||||
|
||||
/*解锁成功*/
|
||||
SetRoutePhySectionLockState(routeId, PHYSICAL_SECTION_LOCK_NO); /*设置进路区段未锁闭*/
|
||||
/*设置进路逻辑区段: 未锁闭*/
|
||||
@@ -6290,8 +6265,6 @@ void DTrainRtnUnlockRemoteRAllLockP(const UINT16 routeId)
|
||||
UINT8 chLockBelRouteType = 0U;/*区段锁闭所属进路进路类型*/
|
||||
UINT8 chTrainEnterRouteFlag = 0U;/*列车驶入进路标志*/
|
||||
UINT8 chRouteInOutSecOccupy = 0U;/*进路内外方同时占压标志*/
|
||||
UINT32 dwRoutLockCycNum = 0U;
|
||||
UINT32 dwReturnRoutLockCycNum = 0U;
|
||||
|
||||
routeState = GetRouteState(routeId); /*获取进路状态*/
|
||||
routeType = GetRouteType(routeId);
|
||||
@@ -6339,16 +6312,13 @@ void DTrainRtnUnlockRemoteRAllLockP(const UINT16 routeId)
|
||||
wLockRouteStartSigId = GetRouteStartSignalId(lockBelongRouteId);/*获取进路始端信号机ID*/
|
||||
chTrainEnterRouteFlag = CheckTrainEnterRoute(lockBelongRouteId);/*获取列车驶入进路标志*/
|
||||
chRouteInOutSecOccupy = RouteInOutSecOccupy(lockBelongRouteId);/*进路内外方同时占用标志*/
|
||||
dwRoutLockCycNum = GetRouteLockStartCycNum(routeId); /*获取进路锁闭起始周期*/
|
||||
dwReturnRoutLockCycNum = GetRouteLockStartCycNum(lockBelongRouteId);/*获取折出进路锁闭起始周期*/
|
||||
|
||||
if ((ROUTE_STATE_NEAR_OPEN == chLockBelRouteState) && (ROUTE_TYPE_DIAOCHE == chLockBelRouteType) &&
|
||||
(returnSigId == wLockRouteStartSigId) && (dwReturnRoutLockCycNum > dwRoutLockCycNum) &&
|
||||
(returnSigId == wLockRouteStartSigId) &&
|
||||
((CI_SUCCESS == chTrainEnterRouteFlag) ||
|
||||
((CI_SUCCESS == chRouteInOutSecOccupy) && (ROUTE_TYPE_LIECHE== routeType))))
|
||||
{
|
||||
/*折出进路是调车进路&&状态是接近开放&&折出进路始端信号机是本进路折返信号机 &&(有车驶入 或 待解锁进路为列车进路是折出进路时内外方区段同时占压)*/
|
||||
/*by cgh 20250414增加条件:折出进路锁闭时间晚于需中途解锁进路*/
|
||||
/*解锁成功*/
|
||||
SetRoutePhySectionLockState(routeId, PHYSICAL_SECTION_LOCK_NO); /*设置进路区段未锁闭*/
|
||||
/*设置进路逻辑区段: 未锁闭*/
|
||||
@@ -6356,10 +6326,9 @@ void DTrainRtnUnlockRemoteRAllLockP(const UINT16 routeId)
|
||||
SetRouteStateDeal(routeId, ROUTE_STATE_IDLE); /*设置进路状态为空闲*/
|
||||
}
|
||||
if ((ROUTE_TYPE_LIECHE== chLockBelRouteType) && (ROUTE_STATE_NEAR_LOCK == chLockBelRouteState)
|
||||
&& (returnSigId == wLockRouteStartSigId) && (dwReturnRoutLockCycNum > dwRoutLockCycNum))
|
||||
&& (returnSigId == wLockRouteStartSigId))
|
||||
{
|
||||
/*折出进路是列车进路 且 进路状态是接近锁闭正常 且 折出进路始端信号机是本进路折返信号机*/
|
||||
/*by cgh 20250414增加条件:折出进路锁闭时间晚于需中途解锁进路*/
|
||||
/*解锁成功*/
|
||||
SetRoutePhySectionLockState(routeId, PHYSICAL_SECTION_LOCK_NO); /*设置进路区段未锁闭*/
|
||||
/*设置进路逻辑区段: 未锁闭*/
|
||||
@@ -7121,47 +7090,37 @@ void CancelWashWorkLogicM(void)
|
||||
* 功能描述: 进路调车同意逻辑管理
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
* by cgh 20250523
|
||||
*/
|
||||
void RouteDCTYLogic(UINT16 routeId)
|
||||
void RouteDCTYLogicM(UINT16 routeId)
|
||||
{
|
||||
UINT8 routeType = 0U;
|
||||
UINT8 routeState = 0U;
|
||||
UINT16 routeDCQJId = 0U;
|
||||
UINT16 routeDCQJTwoId = 0U;
|
||||
|
||||
UINT8 routeType = 0u;
|
||||
UINT8 routeState = 0u;
|
||||
UINT16 routeDCQJId = 0u;
|
||||
routeType = GetRouteType(routeId);/*进路类型*/
|
||||
routeState = GetRouteState(routeId);/*进路状态*/
|
||||
routeDCQJId = GetRouteDCQJId(routeId);
|
||||
routeDCQJTwoId = GetRouteDCQJTwoId(routeId);
|
||||
|
||||
if ((0U < routeDCQJId) && (0U < routeDCQJTwoId) && (ROUTE_TYPE_DIAOCHE == routeType))
|
||||
if ((routeDCQJId >0u) && (ROUTE_TYPE_DIAOCHE == routeType))
|
||||
{/*调车请求继电器ID存在,且是调车进路*/
|
||||
if((ROUTE_STATE_FIRST_LOCK == routeState) ||
|
||||
(ROUTE_STATE_FIRST_LOCKERR == routeState) ||
|
||||
(ROUTE_STATE_YUXIAN_LOCK == routeState) ||
|
||||
(ROUTE_STATE_YUXIAN_OPEN == routeState) ||
|
||||
(ROUTE_STATE_NEAR_OPEN == routeState) ||
|
||||
(ROUTE_STATE_NEAR_LOCK == routeState) ||
|
||||
(ROUTE_STATE_NEAR_LOCKERR == routeState)||
|
||||
(ROUTE_STATE_AUTO_UNLOCK == routeState) ||
|
||||
(ROUTE_STATE_AUTO_UNLOCKERR == routeState) ||
|
||||
(ROUTE_STATE_DELAY_UNLOCK == routeState))
|
||||
{
|
||||
/*进路存在锁闭:进路初锁、进路初锁异常、预先锁闭、预先开放、接近开放、接近锁闭异常、接近锁闭正常、延时解锁、自动解锁正常、自动解锁异常*/
|
||||
SetRouteDCQState(routeId,ROUTE_DCQ_REQUEST);/*设置进路调车请求状态调车请求有效*/
|
||||
(ROUTE_STATE_LEAD_LOCK == routeState) ||
|
||||
(ROUTE_STATE_LEAD_LOCKERR == routeState) ||
|
||||
(ROUTE_STATE_LEAD_OPEN == routeState) ||
|
||||
(ROUTE_STATE_DELAY_UNLOCK == routeState) ||
|
||||
(ROUTE_STATE_NEAR_LOCK == routeState))
|
||||
{/*进路是完整锁闭:进路初锁、进路初锁异常、预先锁闭、预先开放、接近开放、接近锁闭异常、接近锁闭正常
|
||||
、引导锁闭、引导锁闭异常、引导开放、延时解锁*/
|
||||
(void)SetRouteDCQState(routeId,ROUTE_DCQ_REQUEST);/*设置进路调车请求状态为调车请求*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*其它情况设置进路调车请求状态为调车请求无效;调车同意状态无效*/
|
||||
SetRouteDCQState(routeId,ROUTE_DCQ_NOT_REQUEST);
|
||||
SetRouteDCTYState(routeId, ROUTE_DCT_NOT_AGREE);
|
||||
{/*非完整锁闭设置进路调车请求状态为非调车请求*/
|
||||
(void)SetRouteDCQState(routeId,ROUTE_DCQ_NOT_REQUEST);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -776,9 +776,8 @@ void CancelWashWorkLogicM(void);
|
||||
* 功能描述: 进路调车同意逻辑管理
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
* by cgh 20250523
|
||||
*/
|
||||
void RouteDCTYLogic(UINT16 routeId);
|
||||
void RouteDCTYLogicM(UINT16 routeId);
|
||||
|
||||
/*
|
||||
* 功能描述: 调车进路调车同意联锁条件检查
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1006,12 +1006,11 @@ UINT8 ChekRoutSwitDrivOvtmStat(const UINT16 routeId);
|
||||
/*
|
||||
* 功能描述: 区段故障解锁
|
||||
* 参数说明: UINT16 const phySectionId
|
||||
* UINT8 const isConnectSec 是否联络线(联络线不报警)CI_SUCCESS是 CI_ERROR否
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* 故障编码: EFUNC_UNLOCK_FAULT_SECTION
|
||||
*/
|
||||
UINT8 PhySecFaultUnlockLogicProcess(const UINT16 phySectionId, UINT8 const isConnectSec);
|
||||
UINT8 PhySecFaultUnlockLogicProcess(const UINT16 phySectionId);
|
||||
|
||||
/*
|
||||
* 功能描述: 检查进路总人解的可行性。只要进路有一个区段可以直接解锁或变绿光带都认为总人解可行。
|
||||
@@ -1022,6 +1021,14 @@ CI_ERROR:
|
||||
*/
|
||||
UINT8 CheckRouteZongRenJieFeasibility(const UINT16 routeId);
|
||||
|
||||
/*
|
||||
* 功能描述: 检查调车进路总人解的可行性。只要进路有一个区段可以直接解锁或变绿光带都认为总人解可行。注:调车进路总人解不可调用该函数
|
||||
* 参数说明: const UINT16 routeId, 进路ID
|
||||
* 返回值 : UINT8
|
||||
CI_SUCCESS:总人解可执行
|
||||
CI_ERROR:总人解不可执行
|
||||
*/
|
||||
UINT8 CheckDiaoCheRouteZRJFeasibility(const UINT16 routeId);
|
||||
|
||||
/*
|
||||
锁闭本联锁保护区段条件检查
|
||||
@@ -1490,7 +1497,6 @@ UINT8 AxisSecAllSwitchPosCheck(UINT16 const axisSecId,UINT16 *pDevId,UINT8 *pDev
|
||||
* 参数说明: UINT16 const routeId, 进路编号
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* qw.liu 修改 进路外方第一区段道岔位置检查不使用接近区段,改为直接查逻辑区段
|
||||
*/
|
||||
UINT8 RouteOutfirstPhySecSwiPosCheck(UINT16 const routeId);
|
||||
/*
|
||||
@@ -1735,16 +1741,6 @@ UINT8 LogicSecFLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pDevState);
|
||||
*/
|
||||
UINT8 LogicSecRelativeSwitchPosCheck(UINT16 const wLgcId, UINT16* pDevId, UINT8* pDevState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取逻辑区段所处道岔位置不一致原因
|
||||
* 参数说明:UINT16 const wLgcId 逻辑区段ID
|
||||
* 返 回 值:1 位置一致
|
||||
* 0x55 道岔在相反位置
|
||||
* 0xAA 道岔失表
|
||||
* Created By LQ 2025.12.19
|
||||
*/
|
||||
UINT8 GetLogSecRelSwPosErrReason(UINT16 const wLgcId);
|
||||
|
||||
/*
|
||||
* 功能描述: 进路VBTC条件下第一逻辑区段检查
|
||||
* 参数说明:
|
||||
@@ -2298,7 +2294,7 @@ UINT16 SearchNonMainRoute(UINT8 cRouteSum, UINT16 wRouteIdBuff[]);
|
||||
UINT8 SwitchRelLogSecLSXSStateCheck(UINT16 switchId, UINT16* pLogSecId, UINT8* pLogState);
|
||||
|
||||
/*
|
||||
* 功能描述: 进路照查容忍条件满足检查
|
||||
* 功能描述: 信号保持开放时进路照查条件满足检查
|
||||
* 参数说明: UINT16 const routeId, 进路号
|
||||
* 返回值 : CI_ERROR 失败
|
||||
* CI_SUCCESS 成功
|
||||
@@ -2618,15 +2614,13 @@ UINT8 CtTrainHeadSuspCheck(const UINT16 wTrainId, const UINT8 cLogSecSeqDir, con
|
||||
* 功能描述:车辆段部分进路的逻辑区段序列和列车位置检查
|
||||
* 输入参数:const UINT8 cLogSecSum 逻辑区段数量
|
||||
* const UINT16* pLogSecIdBuff 逻辑区段序列
|
||||
* const UINT16 wTrainId 列车ID
|
||||
* const UINT8 cFunctionId 函数ID
|
||||
* const UINT8 cSendLevel 报警发送级别
|
||||
* const UINT16 wTrainId
|
||||
* 输出参数:无
|
||||
* 返回值 :CI_ERROR 0 失败
|
||||
* CI_SUCCESS 1 成功
|
||||
* Created By LQ 2024.09.05
|
||||
*/
|
||||
UINT8 LogSecSeqAndTrainPosCheckCLD(const UINT8 cLogSecSum, const UINT16* pLogSecIdBuff, const UINT16 wTrainId, const UINT8 cFunctionId, const UINT8 cSendLevel);
|
||||
UINT8 LogSecSeqAndTrainPosCheckCLD(const UINT8 cLogSecSum, const UINT16* pLogSecIdBuff, const UINT16 wTrainId);
|
||||
|
||||
/*
|
||||
* 功能描述:车辆段部分进路的逻辑区段序列与进路匹配检查
|
||||
@@ -2725,84 +2719,5 @@ UINT8 OverlapProSwUsingCheck(const UINT16 wOverlapId, UINT16* pDevId, UINT8* pDe
|
||||
*/
|
||||
UINT8 RouteRelAllSwitchPosCheck(UINT16 const routeId);
|
||||
|
||||
/*
|
||||
*函数功能:保护区段照查继电器检查
|
||||
*参数说明:const UINT16 wOverlapId保护区段ID
|
||||
* UINT8 chSendLevel, 故障码发送级别
|
||||
*返回值:CI_ERROR 失败
|
||||
* CI_SUCCESS 成功
|
||||
* RELAY_STATE_WAITE 本端照查继电器条件不满足--等待
|
||||
* by cgh 20250617
|
||||
*/
|
||||
UINT8 OverlapZhaoChaRelayCheck(const UINT16 wOverlapId, UINT8 chSendLevel);
|
||||
|
||||
/*
|
||||
* 功能描述: 进路区段全部防护锁闭检查
|
||||
* 参数说明: UINT16 routeId, 进路号
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS 区段状态均为防护锁闭
|
||||
* by fan 20250724
|
||||
*/
|
||||
UINT8 RouteAllSecProtectLockCheck(UINT16 const routeId);
|
||||
|
||||
/*
|
||||
* 功能描述: 逻辑区段关联计轴无休眠车检查
|
||||
* 参数说明: UINT16 logSectionId, 逻辑区段ID
|
||||
* 返回值 : CI_ERROR 存在休眠车
|
||||
* CI_SUCCESS 检查通过
|
||||
* by fan 20250728
|
||||
*/
|
||||
UINT8 LogSecRelateNoSleepTrainCheck(UINT16 const logSectionId);
|
||||
|
||||
/*
|
||||
* 功能描述:校验指定进路是否非场段进路或为场段出库/出段进路
|
||||
* 参数说明:UINT16 wRouteId 进路ID
|
||||
* 返 回 值:CI_ERROR 其它进路
|
||||
* CI_SUCCESS 非场段进路或为场段出库/出段进路
|
||||
* Created By LQ 2025.08.05
|
||||
*/
|
||||
UINT8 RouteCldAttrCheck(UINT16 wRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述:保护区段占用解锁条件检查
|
||||
* 参数说明:UINT16 overlapId 保护区段ID
|
||||
* UINT8 functionId 函数ID
|
||||
* 返 回 值:CI_ERROR 0 失败
|
||||
* CI_SUCCESS 1 成功
|
||||
* Created By LQ 2025.08.18
|
||||
*/
|
||||
UINT8 OverlapOccuUnlockCheck(UINT16 overlapId, UINT8 functionId);
|
||||
|
||||
/*
|
||||
* 功能描述:区段封锁但可重开条件检查:存在spks封锁时检查开关打开或cbtc进路、无CMD封锁
|
||||
* 参数说明:UINT16 wPhySecId 区段ID wRouteId进路ID
|
||||
* 返 回 值:CI_ERROR 0 失败 非可重开封锁
|
||||
* CI_SUCCESS 1 成功 可重开的封锁类型
|
||||
* Created By fan 2025.12.16
|
||||
*/
|
||||
UINT8 SectionFlockReOpenCheck(UINT16 wPhySecId, UINT16 wRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述:CBTC进路逻辑区段占用检查
|
||||
* 参数说明:UINT16 const routeId 进路ID
|
||||
* UINT16 *pDevId 设备Id(出参)
|
||||
* UINT8 *pDevState 设备状态(出参)
|
||||
* 返 回 值:CI_ERROR 0 失败
|
||||
* CI_SUCCESS 1 成功
|
||||
* Created By LQ 2026.01.25
|
||||
*/
|
||||
UINT8 RouteCbtcLogSecOccCheck(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState);
|
||||
|
||||
/*
|
||||
* 功能描述:CBTC进路保持开放阶段逻辑区段占用检查
|
||||
* 参数说明:UINT16 const routeId 进路ID
|
||||
* UINT16 *pDevId 设备Id(出参)
|
||||
* UINT8 *pDevState 设备状态(出参)
|
||||
* 返 回 值:CI_ERROR 0 失败
|
||||
* CI_SUCCESS 1 成功
|
||||
* Created By LQ 2026.03.12
|
||||
*/
|
||||
UINT8 RouteCbtcKeepOpenLgcOccCheck(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -325,11 +325,10 @@ UINT8 PhySectionDelayUnlockProcess(const UINT16 routeId, UINT16* phySectionId);
|
||||
/* C25_解锁进路overlap逻辑处理 */
|
||||
/*
|
||||
* 功能描述: 解锁进路overlap逻辑处理
|
||||
* 参数说明: const UINT16 routeId 进路号
|
||||
* 返回值 : CI_ERROR 0x00 失败
|
||||
* CI_SUCCESS 0x01 成功
|
||||
* CI_UNLOCK_OVERLAP_REQURE 0x02 向ZC/车申请解锁保护区段
|
||||
* CI_OVERLAP_OCC_UNLOCK 0x06 保护区段执行占用特殊解锁
|
||||
* 参数说明: const UINT16 routeId
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* CI_UNLOCK_OVERLAP_REQURE 向ZC申请解锁保护区段
|
||||
* 故障编码: EFUNC_UNLOCK_OVER_LAP
|
||||
*/
|
||||
UINT8 UnlockRouteOverlapLogicProcess(const UINT16 routeId, UINT16* overlapId, UINT16* pTrainId);
|
||||
@@ -368,7 +367,7 @@ UINT8 RoutePhySectionUseLogicProcess(const UINT16 routeId);
|
||||
* 故障编码: EFUNC_SET_SWITCH_POS
|
||||
* cgh-合并CID-3037-6:
|
||||
*/
|
||||
UINT8 SetSwitchPositionLogicProcess(UINT16 const switchId, UINT8 const switchSetPos, const UINT8 chCmdType, UINT8* chSwitchTestFlag, UINT8 sendLevelFlag);
|
||||
UINT8 SetSwitchPositionLogicProcess(UINT16 const switchId, UINT8 const switchSetPos, const UINT8 chCmdType, UINT8* chSwitchTestFlag);
|
||||
|
||||
/* C30_设置道岔单锁*/
|
||||
/*
|
||||
@@ -815,23 +814,6 @@ UINT8 RouteLgcSecResUnlockNextSecCheck(const UINT16 wRouteId, const UINT16 wUnlo
|
||||
*/
|
||||
UINT8 RouteLgcSecResReturnSecCheck(UINT16 wValidReturnSigId, const UINT16 wRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述: 迪士尼联络线其他联锁条件检查
|
||||
* 参数说明: UINT16 routeId 进路ID
|
||||
* 返回值 : CI_ERROR 检查失败
|
||||
* CI_SUCCESS 检查成功
|
||||
* 注意事项: 本函数只检查区段方向、进路协议相关内容
|
||||
*/
|
||||
UINT8 DsnConnectOtherCiValidCheck(UINT16 const routeId);
|
||||
|
||||
/*
|
||||
* 功能描述:迪士尼联络线自动区故解处理
|
||||
* 参数说明:const UINT16 wRouteId 进路ID
|
||||
* 返 回 值:CI_SUCCESS:可以解锁 CI_ERROR:不能解锁
|
||||
* Created By wyd 20260318
|
||||
*/
|
||||
void DsnConnectRouteSecUnlockProc(UINT16 wRouteId);
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* 功能描述: 逻辑区段保护锁闭可用性逻辑处理
|
||||
|
||||
@@ -274,17 +274,15 @@ UINT8 LockLogRouteCheckProcess(UINT16 const logRouteId)
|
||||
* UINT8 pDevState,设备状态
|
||||
* @note:
|
||||
*/
|
||||
UINT8 LogRouteSecFengSuoCheck(UINT16 logRouteId, UINT16* pDevId, UINT8* pDevState)
|
||||
UINT8 LogRoutePhySecFengSuoCheck(UINT16 logRouteId, UINT16* pDevId, UINT8* pDevState)
|
||||
{
|
||||
UINT16* LogSecIdBuff = NULL;
|
||||
UINT16 logSecSum = 0U;
|
||||
UINT16 ii = 0U;
|
||||
UINT16 devId = 0U; /*关联区段ID*/
|
||||
UINT16 devId = 0U; /*¹ØÁªÎïÀíÇø¶ÎID*/
|
||||
UINT8 devState = 0U;
|
||||
UINT8 retval = CI_ERROR;
|
||||
UINT8 chShareSwitchNum = 0U;/*共用道岔区段个数*/
|
||||
UINT16* plogSecIdPBuf = NULL;/*共用道岔区段序列*/
|
||||
UINT8 jj = 0U;
|
||||
|
||||
LogSecIdBuff = GetLogicalRouteInLogSecId(logRouteId);
|
||||
logSecSum = GetLogicalRouteInLogSecSum(logRouteId);
|
||||
if ((NULL != LogSecIdBuff) && (0U != logSecSum) && (NULL!= pDevId) && (NULL != pDevState))
|
||||
@@ -292,48 +290,21 @@ UINT8 LogRouteSecFengSuoCheck(UINT16 logRouteId, UINT16* pDevId, UINT8* pDevStat
|
||||
retval = CI_SUCCESS;
|
||||
for (ii = 0U; ii < logSecSum; ii++)
|
||||
{
|
||||
devId =LogSecIdBuff[ii];
|
||||
devState = GetLogSecFLockType(devId);
|
||||
devId = GetLgcSecRelativePhySecId(LogSecIdBuff[ii]);
|
||||
devState = GetPhySecFLockState(devId);
|
||||
|
||||
/* 状态如果不是未封锁状态,则认为检查失败 */
|
||||
if (SEC_FLOCK_TYPE_NONE != devState )
|
||||
if (PHYSICAL_SECTION_FLOCK_NO != devState )
|
||||
{
|
||||
/*状态不一致返回故障状态*/
|
||||
*pDevId = devId;
|
||||
*pDevState = PHYSICAL_SECTION_FLOCK_YES;
|
||||
*pDevState = devState;
|
||||
retval = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
chShareSwitchNum = GetLogSecSameSwitchSecSum(devId);
|
||||
plogSecIdPBuf = GetLogSecSameSwitchSecId(devId);
|
||||
if ((PHYSICAL_INCLUDE_AXIS_SUM_MAX > chShareSwitchNum) && (NULL != plogSecIdPBuf))
|
||||
{
|
||||
/*检查与逻辑区段共用道岔的逻辑区段封锁状态*/
|
||||
for (jj = 0U; jj < chShareSwitchNum; jj++)
|
||||
{
|
||||
devState = GetLogSecFLockType(plogSecIdPBuf[jj]);/*逻辑区段封锁*/
|
||||
if (SEC_FLOCK_TYPE_NONE != devState)
|
||||
{
|
||||
/*区段处于封锁状态*/
|
||||
/*状态不一致返回故障状态*/
|
||||
*pDevId = plogSecIdPBuf[jj];
|
||||
*pDevState = PHYSICAL_SECTION_FLOCK_YES;
|
||||
retval = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*pDevId = devId;
|
||||
*pDevState = PHYSICAL_SECTION_FLOCK_YES;
|
||||
retval = CI_ERROR;
|
||||
}
|
||||
|
||||
}
|
||||
if (CI_ERROR == retval)
|
||||
{
|
||||
break;/*跳出*/
|
||||
/*¼ÌÐø¼ì²é*/
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -666,7 +637,7 @@ UINT8 LogRouteSectionCheck(UINT16 logRouteId, UINT8 functionId, UINT8 sendLevel)
|
||||
/*逻辑进路关联的物理区段未封锁*/
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = LogRouteSecFengSuoCheck(logRouteId, &devId, &devState);
|
||||
checkResult = LogRoutePhySecFengSuoCheck(logRouteId, &devId, &devState);
|
||||
if (checkResult == CI_SUCCESS)
|
||||
{
|
||||
/* 通过检查 */
|
||||
@@ -675,7 +646,7 @@ UINT8 LogRouteSectionCheck(UINT16 logRouteId, UINT8 functionId, UINT8 sendLevel)
|
||||
else
|
||||
{
|
||||
/* 记录故障码 */
|
||||
SetErrorData(functionId, CI_DEVICE_TYPE_LOGICSEC, devId, ETYPE_PS_FLOCK_STATE, devState, sendLevel);
|
||||
SetErrorData(functionId, CI_DEVICE_TYPE_PHYSEC, devId, ETYPE_PS_FLOCK_STATE, devState, sendLevel);
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
@@ -2039,7 +2010,7 @@ UINT8 KeepLogRouteSectionCheck(UINT16 wLogRouteId, UINT8 functionId, UINT8 sendL
|
||||
UINT8 devState = 0U; /*设备状态*/
|
||||
|
||||
/* 逻辑进路内所有区段未被封锁 */
|
||||
checkResult = LogRouteSecFengSuoCheck(wLogRouteId, &devId, &devState);
|
||||
checkResult = LogRoutePhySecFengSuoCheck(wLogRouteId, &devId, &devState);
|
||||
if (CI_SUCCESS == checkResult)
|
||||
{
|
||||
/* 通过检查 */
|
||||
@@ -2048,7 +2019,7 @@ UINT8 KeepLogRouteSectionCheck(UINT16 wLogRouteId, UINT8 functionId, UINT8 sendL
|
||||
else
|
||||
{
|
||||
/* 记录故障码 */
|
||||
SetErrorData(functionId, CI_DEVICE_TYPE_LOGICSEC, devId, ETYPE_PS_FLOCK_STATE, devState, sendLevel);
|
||||
SetErrorData(functionId, CI_DEVICE_TYPE_PHYSEC, devId, ETYPE_PS_FLOCK_STATE, devState, sendLevel);
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ UINT8 LockLogRouteCheckProcess(UINT16 const logRouteId);
|
||||
* UINT8 sendLevel, 故障码发送级别
|
||||
* @note:
|
||||
*/
|
||||
UINT8 LogRouteSecFengSuoCheck(UINT16 logRouteId, UINT16* pDevId, UINT8* pDevState);
|
||||
UINT8 LogRoutePhySecFengSuoCheck(UINT16 logRouteId, UINT16* pDevId, UINT8* pDevState);
|
||||
|
||||
/**
|
||||
* @brief 逻辑进路逻辑区段锁闭检查
|
||||
|
||||
@@ -181,7 +181,6 @@ UINT8 SetLeadRouteP(const UINT16 routeId)
|
||||
UINT16 devId = 0u; /*设备ID*/
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT8 reResult = CI_SUCCESS; /*返回值*/
|
||||
UINT8 cFuncSwitch = FUNC_SWITCH_ON; /*引导进路是否检查防淹门开关*/
|
||||
|
||||
/* 联锁条件检查 */
|
||||
devId = routeId;
|
||||
@@ -227,17 +226,8 @@ UINT8 SetLeadRouteP(const UINT16 routeId)
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
/*防淹门联锁条件检查*/
|
||||
cFuncSwitch = GetCiFunctionSwitchConfig(FUNC_LEADROUTE_FLOODGATE_CHECK);
|
||||
reResult = BlocRouteFloodGateCheck(routeId,functionId,sendLevel);
|
||||
|
||||
if (FUNC_SWITCH_OFF == cFuncSwitch)
|
||||
{
|
||||
/*引导进路办理不检查防淹门状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*引导进路办理检查防淹门状态*/
|
||||
reResult = BlocRouteFloodGateCheck(routeId, functionId, sendLevel);
|
||||
}
|
||||
}
|
||||
|
||||
return reResult;
|
||||
@@ -2005,6 +1995,8 @@ UINT8 CancelDTrainRouteP(const UINT16 routeId)
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT16 cancleZhaoChaRelayId = 0u; /*取消照查继电器ID*/
|
||||
UINT8 relayState = 0u; /*继电器采集状态*/
|
||||
UINT8 chRouteLevel = 0U;
|
||||
|
||||
|
||||
/* 联锁条件检查 */
|
||||
/*进路内所有区段正常锁闭*/
|
||||
@@ -2042,8 +2034,19 @@ UINT8 CancelDTrainRouteP(const UINT16 routeId)
|
||||
}
|
||||
if (CI_SUCCESS == reResult)
|
||||
{/*检查取消照查继电器状态是否吸起*/
|
||||
cancleZhaoChaRelayId = GetRouteCancleZhaoChaRelayId(routeId); /*取消照查继电器ID*/
|
||||
|
||||
chRouteLevel = GetRouteLevel(routeId);
|
||||
if (ROUTE_LEVEL_BLOC == chRouteLevel)
|
||||
{
|
||||
cancleZhaoChaRelayId = GetRouteCancleZhaoChaRelayId(routeId); /*后备模式取消照查继电器ID*/
|
||||
}
|
||||
else if (ROUTE_LEVEL_CBTC == chRouteLevel)
|
||||
{
|
||||
cancleZhaoChaRelayId = GetRouteCbtcCancelZhaochaRelay(routeId);/*CBTC模式取消照查继电器ID*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*非法监督模式,继电器ID为0,在下面不会处理*/
|
||||
}
|
||||
if((0u != cancleZhaoChaRelayId) && (0xFFFFu != cancleZhaoChaRelayId))
|
||||
{
|
||||
/*取消继电器有效:取消继电器采集状态为:吸起*/
|
||||
@@ -2525,7 +2528,7 @@ UINT8 SetLTrainRouteSwitchCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLeve
|
||||
}
|
||||
else
|
||||
{
|
||||
/*如果是进路防护道岔等待相邻联锁反馈道岔检查状态,先不检查防护道岔是否全在位置,继续等待*/
|
||||
reResultP = CI_ERROR;
|
||||
}
|
||||
|
||||
if (CI_ERROR == reResultP)
|
||||
@@ -4112,7 +4115,6 @@ UINT8 SetLeadRouteCheck(const UINT16 routeId)
|
||||
UINT16 devId = 0u; /*设备ID*/
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
UINT8 reResult = CI_ERROR; /*返回值*/
|
||||
UINT8 cFuncSwitch = FUNC_SWITCH_ON; /*引导进路是否检查防淹门开关*/
|
||||
|
||||
/* 联锁条件检查 */
|
||||
devId = routeId;
|
||||
@@ -4212,18 +4214,7 @@ UINT8 SetLeadRouteCheck(const UINT16 routeId)
|
||||
/*防淹门联锁条件检查*/
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
cFuncSwitch = GetCiFunctionSwitchConfig(FUNC_LEADROUTE_FLOODGATE_CHECK);
|
||||
|
||||
if (FUNC_SWITCH_OFF == cFuncSwitch)
|
||||
{
|
||||
/*引导进路锁闭不检查防淹门状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*引导进路锁闭检查防淹门状态*/
|
||||
reResult = BlocRouteFloodGateCheck(routeId, functionId, sendLevel);
|
||||
}
|
||||
|
||||
reResult = BlocRouteFloodGateCheck(routeId, functionId, sendLevel);
|
||||
if (CI_ERROR == reResult)
|
||||
{
|
||||
/* 失败返回 */
|
||||
|
||||
@@ -113,7 +113,7 @@ UINT8 MainProcess(void)
|
||||
|
||||
cost[2] = MSCP_GetTick();
|
||||
/*退出运营处理*/
|
||||
APP_API_ExitOperation();
|
||||
(void)APP_API_ExitOperation();
|
||||
|
||||
|
||||
/*联锁逻辑处理*/
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
#define MASK_TYPE_SWITCH_BYPASS ((UINT8)0x0D) /*定义道岔旁路码位*/
|
||||
#define MASK_TYPE_SWITCH_OPEN_CAP ((UINT8)0x0E) /*定义道岔所在板卡开盖状态*/
|
||||
#define MASK_TYPE_SWITCH_SUDDEN_JICHA ((UINT8)0x0F) /*定义道岔静态红闪码位*/
|
||||
#define MASK_TYPE_SWITCH_JICHA ((UINT8)0x10) /*定义道岔挤岔码位:28.0.0.14数据结构使用*/
|
||||
|
||||
/*单轨_道岔码位*/
|
||||
/* zt 删除单轨相关代码 2022-02-15 */
|
||||
@@ -63,12 +62,11 @@
|
||||
#define MASK_TYPE_SIGNAL_REDCLOSE ((UINT8)0x15) /*定义信号机红灭码位*/
|
||||
#define MASK_TYPE_SIGNAL_GREENCLOSE ((UINT8)0x16) /*定义信号机绿灭码位*/
|
||||
#define MASK_TYPE_SIGNAL_YELLOWCLOSE ((UINT8)0x17) /*定义信号机黄灭码位*/
|
||||
#define MASK_TYPE_SIGNAL_REDBREAK ((UINT8)0x18) /*定义信号机红断码位--暂无使用*/
|
||||
#define MASK_TYPE_SIGNAL_REDBREAK ((UINT8)0x18) /*定义信号机红断码位*/
|
||||
#define MASK_TYPE_SIGNAL_GREENBREAK ((UINT8)0x19) /*定义信号机绿断码位*/
|
||||
#define MASK_TYPE_SIGNAL_YELLOWBREAK ((UINT8)0x1a) /*定义信号机黄断码位*/
|
||||
#define MASK_TYPE_SIGNAL_WHITEBREAK ((UINT8)0x1b) /*定义信号机白断码位*/
|
||||
#define MASK_TYPE_SIGNAL_BLUEBREAK ((UINT8)0x25) /*定义信号机蓝断码位*/
|
||||
#define MASK_TYPE_SIGNAL_BREAK ((UINT8)0x1c) /*定义信号机断丝码位 (对全电子联锁=红灯断丝)*/
|
||||
#define MASK_TYPE_SIGNAL_BREAK ((UINT8)0x1c) /*定义信号机断丝码位*/
|
||||
#define MASK_TYPE_SIGNAL_FENGSUO ((UINT8)0x1d) /*定义信号机封锁码位*/
|
||||
|
||||
#define MASK_TYPE_SIGNAL_OPENSTATE ((UINT8)0x1e) /*定义信号机开放状态码位*/
|
||||
@@ -92,14 +90,9 @@
|
||||
#define MASK_TYPE_SIGNAL_DET_ERR ((UINT8)0x5c) /*信号机扣车按钮故障状态码位*/
|
||||
#define MASK_TYPE_SIGNAL_AUTO_DERAIN ((UINT8)0x5e) /*信号机自动扣车码位*/
|
||||
|
||||
#define MASK_TYPE_SIGNAL_DET_CUT_VALID ((UINT8)0xA6) /*信号机扣车旁路按钮有效状态码位*/
|
||||
#define MASK_TYPE_SIGNAL_DET_CUT_ERR ((UINT8)0xA7) /*信号机扣车旁路按钮故障状态码位*/
|
||||
|
||||
#define MASK_ZC_CI_SIG_ENGINEERV_NEAR ((UINT8)0x97) /*定义信号机工程车接近码位*/
|
||||
#define MASK_CI_ZC_SIG_ENGINCROSS_STE ((UINT8)0x98) /*定义信号机工程车关灯码位*/
|
||||
|
||||
#define MASK_TYPE_SIGNAL_CROSS_RED ((UINT8)0x9F) /*定义CI-ATS信号机列车闯红灯码位*/
|
||||
|
||||
/*物理区段相关码位*/
|
||||
#define MASK_TYPE_PHYSECTION_OCCUPY ((UINT8)0x25) /*定义物理区段占用码位*/
|
||||
#define MASK_TYPE_PHYSECTION_STARTLOCK ((UINT8)0x26) /*定义物理区段上电锁闭码位*/
|
||||
@@ -119,12 +112,7 @@
|
||||
#define MASK_TYPE_PHYSECTION_HEAD_XTD ((UINT8)0x31) /*定义物理区段运行方向下行状态码位*/
|
||||
#define MASK_TYPE_PHYSECTION_HEAD_STD ((UINT8)0x32) /*定义物理区段运行方向上行状态码位*/
|
||||
#define MASK_TYPE_LIECHE_STOPSTATE ((UINT8)0x3a) /*定义列车停稳信息状态码位*/
|
||||
#define MASK_TYPE_PHYSEC_CENTERDETAIN_UP ((UINT8)0x3d) /*定义物理区段CI-ATS中心上行扣车状态状态码位 (兼容28.0.0.14使用)*/
|
||||
#define MASK_TYPE_PHYSEC_CENTERDETAIN_DOWN ((UINT8)0x3e) /*定义物理区段CI-ATS中心下行扣车状态状态码位 (兼容28.0.0.14使用)*/
|
||||
#define MASK_TYPE_PHYSEC_STATIONDETAIN_UP ((UINT8)0x3f) /*定义物理区段CI-ATS车站上行扣车状态状态码位 (兼容28.0.0.14使用)*/
|
||||
#define MASK_TYPE_PHYSEC_STATIONDETAIN_DOWN ((UINT8)0x40) /*定义物理区段CI-ATS车站下行扣车状态状态码位 (兼容28.0.0.14使用)*/
|
||||
#define MASK_TYPE_AXISSECTION_DETAIN_UP ((UINT8)0x41) /*定义区段CI-ZC上行扣车状态状态码位 (兼容28.0.0.14使用)*/
|
||||
#define MASK_TYPE_AXISSECTION_DETAIN_DOWN ((UINT8)0x42) /*定义区段CI-ZC下行扣车状态状态码位 (兼容28.0.0.14使用)*/
|
||||
|
||||
|
||||
/*逻辑区段相关码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_UTOCCUPY ((UINT8)0x33) /*定义逻辑区段非通信车占用码位*/
|
||||
@@ -142,13 +130,8 @@
|
||||
#define MASK_TYPE_LOGICSECTION_JUMPLOCK ((UINT8)0x9A) /*定义逻辑区段跳跃锁闭码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_ARB ((UINT8)0x9B) /*定义逻辑区段ARB状态码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_SPKS_FLOCK ((UINT8)0x9C) /*定义逻辑区段SPKS封锁状态码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_ALLSEC_FLOCK ((UINT8)0x9D) /*定义逻辑区段全线封锁状态码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_APG_FLOCK ((UINT8)0x9E) /*定义逻辑区段站台门异常打开封锁码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_PROHIBIT_FAO ((UINT8)0x9F) /*定义逻辑区段禁止FAO运行码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_CMD_FLOCK ((UINT8)0xA0) /*定义逻辑区段人工封锁码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_ESB_FLOCK ((UINT8)0xA1) /*定义逻辑区段ESB封锁码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_CESB_FLOCK ((UINT8)0xA2) /*定义逻辑区段CESB封锁码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_OVERRIDE ((UINT8)0xA8) /*定义逻辑区段旁路码位*/
|
||||
|
||||
|
||||
|
||||
/*保护区段相关码位*/
|
||||
#define MASK_TYPE_OVERLAP_LOCKSTATE ((UINT8)0x30) /*定义保护区段锁闭状态码位*/
|
||||
@@ -173,7 +156,6 @@
|
||||
#define MASK_TYPE_ROUTE_DC_QINGQIU ((UINT8)0x51) /*定义进路调车请求状态码位(CI-ATS)*/
|
||||
#define MASK_TYPE_ROUTE_DC_AGREE ((UINT8)0x52) /*定义进路调车同意状态码位(CI-ATS)*/
|
||||
#define MASK_TYPE_ROUTE_AUTO_TRIGGER ((UINT8)0x53) /*定义进路自动触发标码位(CI-ATS)*/
|
||||
#define MASK_TYPE_ROUTE_DC_AGREE_ERR ((UINT8)0x54) /*定义进路调车同意按钮故障状态码位(CI-ATS)*/
|
||||
|
||||
|
||||
/*站台相关码位*/
|
||||
@@ -187,9 +169,6 @@
|
||||
#define MASK_TYPE_ESP_FLASH_STATE ((UINT8)0x9b) /*定义ESS闪灯灯状态码位*/
|
||||
#define MASK_TYPE_CANCEL_ESP_FAULT ((UINT8)0x9c) /*定义取消紧急关闭按钮故障码位*/
|
||||
#define MASK_TYPE_ESP_FAULT ((UINT8)0x9d) /*定义紧急关闭按钮故障码位*/
|
||||
#define MASK_TYPE_CUT_ESP_FAULT ((UINT8)0xA3) /*定义紧急关闭旁路按钮故障码位*/
|
||||
#define MASK_TYPE_ESP_PRESS_STATE ((UINT8)0xA4) /*定义紧急关闭按钮按下状态码位*/
|
||||
#define MASK_TYPE_ESS_STATE ((UINT8)0xA7) /*定义ESS去位/停位状态码位*/
|
||||
|
||||
/*站台安全门相关码位*/
|
||||
#define MASK_TYPE_PSD_STATE ((UINT8)0x60) /*定义站台安全门状态码位-ZC,LEU用*/
|
||||
@@ -207,8 +186,6 @@
|
||||
#define MASK_TYPE_PSD_PDB_FLASH_STATE ((UINT8)0xA0) /*定义清客确认箱PDB按钮指示灯闪灯状态码位*/
|
||||
#define MASK_TYPE_PSD_VIDEO_QK_LU ((UINT8)0xA1) /*定义清客按钮箱视频清客表示灯(绿)状态码位*/
|
||||
#define MASK_TYPE_PSD_VIDEO_QK_HONG ((UINT8)0xA2) /*定义清客按钮箱视频清客表示灯(红)状态码位*/
|
||||
#define MASK_TYPE_PSD_EXCEPT_OPEN ((UINT8)0xA5) /*定义站台安全门异常打开码位*/
|
||||
#define MASK_TYPE_PSD_MUTUALLOCK_BTNERR ((UINT8)0xA6) /*定义站台安全门互锁解除按钮异常码位*/
|
||||
|
||||
/*车库门相关码位*/
|
||||
#define MASK_TYPE_GARAGEDOOR_OPEN_STATE ((UINT8)0x62) /*定义车库门开门状态码位(CI->ATS)*/
|
||||
@@ -244,10 +221,5 @@
|
||||
|
||||
/*防淹门相关码位*/
|
||||
|
||||
/*临时限速相关码位*/
|
||||
#define MASK_TYPE_SPEEDLIMITSEC_STATE ((UINT8)0x9F) /*CI-ATS限速区段临时限速设置码位*/
|
||||
#define MASK_TYPE_SPEEDLIMITTF_STATE ((UINT8)0xa9) /*CI-ATS限速区段台风限速设置码位*/
|
||||
#define MASK_TYPE_SPEEDLIMITTNR_STATE ((UINT8)0xab) /*CI-ATS限速区段NR限速设置码位*/
|
||||
#define MASK_TYPE_SPEEDLIMITQX_STATE ((UINT8)0xac) /*CI-ATS限速区段全线临时限速设置码位*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,267 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: OHLConfigDataManage.c
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间:
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 接触网相关配置
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#include "OHLConfigDataManage.h"
|
||||
|
||||
OHLConfigDataStruct OhlConfigDataStru[OHL_MAX_NUM]; /*定义接触网数据配置结构体*/
|
||||
INT16 OhlCurSum = 0; /*接触网当前总数*/
|
||||
UINT16 LocalCiOhlIdBuf[OHL_MAX_NUM] = { 0u }; /*定义本地联锁接触网ID映射数组*/
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网索引号
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : SWITCH_SUM_MAX: 获取数据失败
|
||||
* <SWITCH_SUM_MAX: 查找成功
|
||||
*/
|
||||
UINT16 GetOhlConfigBufIndex(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 retVal = OHL_MAX_NUM;
|
||||
if ((ohlId >= 1u) && (ohlId < OHL_MAX_NUM))
|
||||
{
|
||||
retVal = ohlId;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取接触网分区当前总数
|
||||
* 参数说明: void
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网分区当前总数
|
||||
*/
|
||||
UINT16 GetOhlCurSum(void)
|
||||
{
|
||||
UINT16 retVal = 0u;
|
||||
if (OhlCurSum >= (INT16)OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OHL_MAX_NUM;
|
||||
}
|
||||
else if (OhlCurSum < 0)
|
||||
{
|
||||
retVal = 0u;
|
||||
}
|
||||
else
|
||||
{/*OhlCurSum在[0,OHL_MAX_NUM)区间强转,保证安全*/
|
||||
retVal = (UINT16)OhlCurSum;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 整理读入的接触网配置数据
|
||||
* 参数说明: 无
|
||||
* 返回值 : CI_SUCCESS,整理成功
|
||||
* CI_ERROR,整理失败
|
||||
*/
|
||||
UINT8 OhlConfigDataManage(void)
|
||||
{
|
||||
UINT16 ii = 0u; /*游标*/
|
||||
UINT16 jj = 0u; /*游标*/
|
||||
UINT16 ohlConfigDataSum = 0u; /*道岔设备配置数据总数*/
|
||||
UINT8 retVal = CI_SUCCESS;
|
||||
UINT8 localCiId = 0u;
|
||||
|
||||
localCiId = GetSystemParaLocalCiId();
|
||||
/*保存道岔ID索引数组*/
|
||||
ohlConfigDataSum = GetOhlCurSum();
|
||||
if (OHL_MAX_NUM <= ohlConfigDataSum)
|
||||
{/*配置数据总数错误*/
|
||||
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ii = 0u; ii < OHL_MAX_NUM; ii++)
|
||||
{
|
||||
if (jj == ohlConfigDataSum)
|
||||
{/*遍历有效数据完毕*/
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if ((OhlConfigDataStru[ii].wOhlId >= 1u) && (OhlConfigDataStru[ii].wOhlId < OHL_MAX_NUM))
|
||||
{/*id有效*/
|
||||
if (localCiId == OhlConfigDataStru[ii].chBelongCiId)
|
||||
{
|
||||
LocalCiOhlIdBuf[jj] = OhlConfigDataStru[ii].wOhlId;
|
||||
jj++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*只处理本控区*/
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网数据
|
||||
* 参数说明:
|
||||
* 返回值 : OHLConfigDataStruct *
|
||||
*/
|
||||
OHLConfigDataStruct* GetOhlConfigData(void)
|
||||
{
|
||||
return OhlConfigDataStru;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定数组下标对应的接触网ID
|
||||
* 参数说明: const UINT16 bufIndex, 数组下标
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网ID
|
||||
*/
|
||||
UINT16 GetOhlId(const UINT16 bufIndex)
|
||||
{
|
||||
UINT16 retVal = CI_ERROR;
|
||||
UINT16 ohlCurNum = 0u; /*接触网当前总数*/
|
||||
ohlCurNum = GetOhlCurSum();
|
||||
if (bufIndex < ohlCurNum)
|
||||
{
|
||||
retVal = LocalCiOhlIdBuf[bufIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网组数
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网组数
|
||||
*/
|
||||
UINT8 GetOhlGroupSum(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlConfigDataStru[bufIndex].chRelayGroupNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网有电继电器ID数组
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : NULL: 获取数据失败
|
||||
* 非NULL: 有电继电器ID数组
|
||||
*/
|
||||
UINT16* GetOhlEnergizedIdBuf(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
UINT16* retVal = NULL;
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取区段数组下标*/
|
||||
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlConfigDataStru[bufIndex].wEnergizedId;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网断电继电器ID数组
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : NULL: 获取数据失败
|
||||
* 非NULL: 断电继电器ID数组
|
||||
*/
|
||||
UINT16* GetOhlDeEnergizedIdBuf(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
UINT16* retVal = NULL;
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取区段数组下标*/
|
||||
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlConfigDataStru[bufIndex].wDeEnergizedId;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网所属Oc ID
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属Oc ID
|
||||
*/
|
||||
UINT16 GetOhlBelongOcId(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
UINT16 retVal = CI_ERROR;
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取区段数组下标*/
|
||||
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlConfigDataStru[bufIndex].wBelongOcId;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网所属联锁ID
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属联锁ID
|
||||
*/
|
||||
UINT8 GetOhlBelongCiId(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlConfigDataStru[bufIndex].chBelongCiId;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
@@ -1,123 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: OHLConfigDataConfig.h
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间:
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 接触网相关配置
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _OHL_CONFIG_DATA_MANAGE_H_
|
||||
#define _OHL_CONFIG_DATA_MANAGE_H_
|
||||
|
||||
#include "CommonTypes.h"
|
||||
#include "OHLDefine.h"
|
||||
#include "../System/CiSystemDefine.h"
|
||||
#include "../System/SystemParameterManage.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct S_OHLConfigDataStruct
|
||||
{
|
||||
UINT16 wOhlId; /*接触网ID*/
|
||||
UINT16 wBelongOcId; /*所属OC ID*/
|
||||
UINT8 chBelongCiId; /*所属CI ID*/
|
||||
UINT8 chRelayGroupNum; /*接触网继电器组数*/
|
||||
UINT16 wEnergizedId[OHL_GROUP_MAX_NUM]; /*有电继电器ID*/
|
||||
UINT16 wDeEnergizedId[OHL_GROUP_MAX_NUM]; /*断电继电器ID*/
|
||||
}OHLConfigDataStruct;
|
||||
|
||||
extern OHLConfigDataStruct OhlConfigDataStru[OHL_MAX_NUM]; /*定义接触网数据配置结构体*/
|
||||
extern INT16 OhlCurSum; /*接触网当前总数*/
|
||||
extern UINT16 LocalCiOhlIdBuf[OHL_MAX_NUM]; /*定义本地联锁接触网ID映射数组*/
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网索引号
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : SWITCH_SUM_MAX: 获取数据失败
|
||||
* <SWITCH_SUM_MAX: 查找成功
|
||||
*/
|
||||
UINT16 GetOhlConfigBufIndex(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取接触网分区当前总数
|
||||
* 参数说明: void
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网分区当前总数
|
||||
*/
|
||||
UINT16 GetOhlCurSum(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 整理读入的接触网配置数据
|
||||
* 参数说明: 无
|
||||
* 返回值 : CI_SUCCESS,整理成功
|
||||
* CI_ERROR,整理失败
|
||||
*/
|
||||
UINT8 OhlConfigDataManage(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网数据
|
||||
* 参数说明:
|
||||
* 返回值 : OHLConfigDataStruct *
|
||||
*/
|
||||
OHLConfigDataStruct* GetOhlConfigData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定数组下标对应的接触网ID
|
||||
* 参数说明: const UINT16 bufIndex, 数组下标
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网ID
|
||||
*/
|
||||
UINT16 GetOhlId(const UINT16 bufIndex);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网组数
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网组数
|
||||
*/
|
||||
UINT8 GetOhlGroupSum(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网有电继电器ID数组
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : NULL: 获取数据失败
|
||||
* 非NULL: 有电继电器ID数组
|
||||
*/
|
||||
UINT16* GetOhlEnergizedIdBuf(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网断电继电器ID数组
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : NULL: 获取数据失败
|
||||
* 非NULL: 断电继电器ID数组
|
||||
*/
|
||||
UINT16* GetOhlDeEnergizedIdBuf(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网所属Oc ID
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属Oc ID
|
||||
*/
|
||||
UINT16 GetOhlBelongOcId(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网所属联锁ID
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属联锁ID
|
||||
*/
|
||||
UINT8 GetOhlBelongCiId(const UINT16 ohlId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,187 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: OHLDataManage.c
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间:
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 接触网相关配置
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#include "OHLDataManage.h"
|
||||
|
||||
OhlDataStruct OhlDataStru[OHL_MAX_NUM]; /*定义接触网数据结构体*/
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网数据
|
||||
* 参数说明:
|
||||
* 返回值 :
|
||||
SwitchDataStruct *
|
||||
*/
|
||||
OhlDataStruct* GetOhlData(void)
|
||||
{
|
||||
return OhlDataStru;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID接触网供电状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT8 powerState, 接触网供电状态
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetOhlPowerState(const UINT16 ohlId, const UINT8 powerState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
|
||||
if ((OHL_POWER_ENERGIZED == powerState) || (OHL_POWER_DE_ENERGIZED == powerState)
|
||||
||(OHL_POWER_UNKNOW == powerState))
|
||||
{
|
||||
OhlDataStru[bufIndex].chPowerState = powerState; /*道岔引导总锁状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网供电状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网供电状态
|
||||
*/
|
||||
UINT8 GetOhlPowerState(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlDataStru[bufIndex].chPowerState;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置接触网断电状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT32 cycNum 周期号
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOhlDeEnerCycNum(const UINT16 ohlId, const UINT32 cycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
OhlDataStru[bufIndex].dwOhlDeEnerCycNum = cycNum;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取接触网断电状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : UINT32 断电状态起始周期
|
||||
*/
|
||||
UINT32 GetOhlDeEnerCycNum(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlDataStru[bufIndex].dwOhlDeEnerCycNum;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置接触网未知状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT32 cycNum 周期号
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOhlUnknowCycNum(const UINT16 ohlId, const UINT32 cycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
OhlDataStru[bufIndex].dwOhlUnknowCycNum = cycNum;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取接触网未知状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : UINT32 未知状态起始周期
|
||||
*/
|
||||
UINT32 GetOhlUnknowCycNum(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlDataStru[bufIndex].dwOhlUnknowCycNum;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置接触网旁路状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT8 bypassFlag 旁路标志
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOhlBypassFlag(const UINT16 ohlId, const UINT8 bypassFlag)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
if ((OHL_BYPASS_YES == bypassFlag) || (OHL_BYPASS_NO == bypassFlag))
|
||||
{
|
||||
OhlDataStru[bufIndex].chOhlBypassFlag = bypassFlag;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取接触网旁路状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : UINT8 接触网旁路状态
|
||||
*/
|
||||
UINT8 GetOhlBypassFlag(const UINT16 ohlId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOhlConfigBufIndex(ohlId); /*获取道岔数组下标*/
|
||||
if (bufIndex < OHL_MAX_NUM)
|
||||
{
|
||||
retVal = OhlDataStru[bufIndex].chOhlBypassFlag;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: OHLDataManage.h
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间:
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 接触网相关配置
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _OHL_DATA_MANAGE_H_
|
||||
#define _OHL_DATA_MANAGE_H_
|
||||
|
||||
#include "OHLDefine.h"
|
||||
#include "OHLConfigDataManage.h"
|
||||
#include "CommonTypes.h"
|
||||
#include "../System/CiSystemDefine.h"
|
||||
#include "../System/SystemParameterManage.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*道岔数据结构体*/
|
||||
typedef struct S_OhlDataStruct
|
||||
{
|
||||
UINT16 wOhlId; /*接触网ID (配置字段)*/
|
||||
UINT8 chPowerState; /*接触网供电状态*/
|
||||
UINT32 dwOhlDeEnerCycNum; /*接触网断电起始周期*/
|
||||
UINT32 dwOhlUnknowCycNum; /*接触网未知起始周期*/
|
||||
UINT8 chOhlBypassFlag; /*接触网旁路状态*/
|
||||
}OhlDataStruct;
|
||||
|
||||
extern OhlDataStruct OhlDataStru[OHL_MAX_NUM]; /*定义道岔数据结构体*/
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网数据
|
||||
* 参数说明:
|
||||
* 返回值 :
|
||||
SwitchDataStruct *
|
||||
*/
|
||||
OhlDataStruct* GetOhlData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID接触网供电状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT8 powerState, 接触网供电状态
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetOhlPowerState(const UINT16 ohlId, const UINT8 powerState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID接触网供电状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 接触网供电状态
|
||||
*/
|
||||
UINT8 GetOhlPowerState(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置接触网断电状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT32 cycNum 周期号
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOhlDeEnerCycNum(const UINT16 ohlId, const UINT32 cycNum);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取接触网断电状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : UINT32 断电状态起始周期
|
||||
*/
|
||||
UINT32 GetOhlDeEnerCycNum(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置接触网未知状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT32 cycNum 周期号
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOhlUnknowCycNum(const UINT16 ohlId, const UINT32 cycNum);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取接触网未知状态起始周期
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : UINT32 未知状态起始周期
|
||||
*/
|
||||
UINT32 GetOhlUnknowCycNum(const UINT16 ohlId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置接触网旁路状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* const UINT8 bypassFlag 旁路标志
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOhlBypassFlag(const UINT16 ohlId, const UINT8 bypassFlag);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取接触网旁路状态
|
||||
* 参数说明: const UINT16 ohlId, 接触网ID
|
||||
* 返回值 : UINT8 接触网旁路状态
|
||||
*/
|
||||
UINT8 GetOhlBypassFlag(const UINT16 ohlId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,29 +0,0 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: OHLDataConfig.h
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间: 2014-12-05
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 接触网相关常量定义
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _OHL_DATA_CONFIG_H_
|
||||
#define _OHL_DATA_CONFIG_H_
|
||||
|
||||
#define OHL_MAX_NUM 3 /*接触网分区数最大值(最大支持2个,以ID为索引)*/
|
||||
#define OHL_GROUP_MAX_NUM 2 /*一个接触网分区继电器最大组数*/
|
||||
|
||||
/*接触网供电状态*/
|
||||
#define OHL_POWER_ENERGIZED ((UINT8)0x55)/*接触网有电*/
|
||||
#define OHL_POWER_DE_ENERGIZED ((UINT8)0xAA)/*接触网无电*/
|
||||
#define OHL_POWER_UNKNOW ((UINT8)0xFF)/*接触网未知*/
|
||||
|
||||
/*接触网旁路状态*/
|
||||
#define OHL_BYPASS_YES ((UINT8)0xAA)/*接触网旁路*/
|
||||
#define OHL_BYPASS_NO ((UINT8)0x55)/*接触网未旁路*/
|
||||
|
||||
#endif
|
||||
@@ -873,53 +873,3 @@ UINT8 GetOverlapProSwitchPos(const UINT16 wOverlapId, const UINT16 wProSwitchId)
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID保护区段本端照查继电器ID
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* 返回值 : 本端照查继电器ID
|
||||
* by cgh 20250617
|
||||
*/
|
||||
UINT16 GetOverlapThisZhaoChaRelayId(const UINT16 overlapId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOverlapConfigBufIndex(overlapId); /*获取数组下标*/
|
||||
|
||||
if (bufIndex < OVERLAP_SUM_MAX)
|
||||
{
|
||||
reVal = OverlapConfigDataStru[bufIndex].wOverlapThisZhaoChaRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID保护区段对端照查继电器ID
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* 返回值 : 对端照查继电器ID
|
||||
* by cgh 20250617
|
||||
*/
|
||||
UINT16 GetOverlapThatZhaoChaRelayId(const UINT16 overlapId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOverlapConfigBufIndex(overlapId); /*获取数组下标*/
|
||||
|
||||
if (bufIndex < OVERLAP_SUM_MAX)
|
||||
{
|
||||
reVal = OverlapConfigDataStru[bufIndex].wOverlapThatZhaoChaRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
@@ -72,8 +72,7 @@ typedef struct S_OverlapConfigDataStruct
|
||||
UINT16 OverlapRouteSum; /*保护区段进路总数*/
|
||||
UINT16 OverlapRouteIdBuf[OVERLAP_ROUTE_SUM_MAX]; /*保护区段进路数组*/
|
||||
UINT16 AxisSecFarId; /*保护区段最远端计轴区段ID*/
|
||||
UINT16 wOverlapThisZhaoChaRelayId; /*保护区段本端照查继电器ID*/
|
||||
UINT16 wOverlapThatZhaoChaRelayId; /*保护区段对端照查继电器ID*/
|
||||
|
||||
} OverlapConfigDataStruct;
|
||||
|
||||
extern OverlapConfigDataStruct OverlapConfigDataStru[OVERLAP_SUM_MAX]; /*定义OVERLAP数据配置结构体,cgh-合并CID-2539-1:此处声明不进行初始化,统一放到InitAllStaticDataStr函数中进行初始化,为解决生成内核过大得问题*/
|
||||
@@ -374,22 +373,6 @@ UINT8 CheckOtherCiOlpHaveLocalCiPSw(const UINT16 wOverlapId);
|
||||
*/
|
||||
UINT8 GetOverlapProSwitchPos(const UINT16 wOverlapId, const UINT16 wProSwitchId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID保护区段本端照查继电器ID
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* 返回值 : 本端照查继电器ID
|
||||
* by cgh 20250617
|
||||
*/
|
||||
UINT16 GetOverlapThisZhaoChaRelayId(const UINT16 overlapId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID保护区段对端照查继电器ID
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* 返回值 : 对端照查继电器ID
|
||||
* by cgh 20250617
|
||||
*/
|
||||
UINT16 GetOverlapThatZhaoChaRelayId(const UINT16 overlapId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -51,7 +51,7 @@ UINT16 GetOverlapBelongRouteId(const UINT16 overlapId)
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID保护区段所属进路
|
||||
* 功能描述: 设置指定ID保护区段组解锁起始周期号
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* const UINT16 belongRouteId, 所属进路号
|
||||
* 返回值 : 无
|
||||
|
||||
@@ -1042,27 +1042,3 @@ UINT8 CheckPsdBelSendRange(const UINT16 wCheckPsdId)
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门控制类型
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 控制类型(0x55 OC-P控制 0xAA RCI控制)
|
||||
*/
|
||||
UINT8 GetPsdControlType(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = PSD_CONTROL_TYPE_RCI;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdConfigDataStru[bufIndex].chPsdControlType;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = PSD_CONTROL_TYPE_RCI;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
@@ -64,10 +64,6 @@ typedef struct S_PsdConfigDataStruct
|
||||
UINT16 wPcbIndicatorRelayId; /*再关门按钮指示灯继电器*/
|
||||
UINT16 wVideoQkLight1RelayId; /*清客按钮箱视频清客指示灯1(绿)继电器*/
|
||||
UINT16 wVideoQkLight2RelayId; /*清客按钮箱视频清客指示灯2(红)继电器*/
|
||||
UINT16 wPsdFstProLinkId; /*屏蔽门防护link1ID*/
|
||||
UINT16 wPsdSndProLinkId; /*屏蔽门防护link2ID*/
|
||||
UINT16 wPsdTrdProLinkId; /*屏蔽门防护link3ID*/
|
||||
UINT8 chPsdControlType; /*屏蔽门控制类型*/
|
||||
} PsdConfigDataStruct;
|
||||
|
||||
|
||||
@@ -415,13 +411,6 @@ UINT16 GetPsdVideoQkLight2RelayId(const UINT16 wDoorId);
|
||||
*/
|
||||
UINT8 CheckPsdBelSendRange(const UINT16 wCheckPsdId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门控制类型
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 控制类型(0x55 OC-P控制 0xAA RCI控制)
|
||||
*/
|
||||
UINT8 GetPsdControlType(const UINT16 doorId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1443,14 +1443,14 @@ UINT8 SetPsdCmdCyclePsc(const UINT16 doorId, const UINT32 doorCycle)
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门旁路标志
|
||||
* 功能描述: 设置指定ID屏蔽门确认PSC互锁解除标志
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 setFlag, 屏蔽门旁路设置状态
|
||||
* 返回值 :无
|
||||
*
|
||||
*/
|
||||
|
||||
void SetPsdConfirmFlag(const UINT16 doorId,const UINT8 setFlag)
|
||||
void SetPsdPscConfirmFlag(const UINT16 doorId,const UINT8 setFlag)
|
||||
{
|
||||
/*变量初始化*/
|
||||
UINT16 bufIndex = 0u;
|
||||
@@ -1467,13 +1467,13 @@ void SetPsdConfirmFlag(const UINT16 doorId,const UINT8 setFlag)
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门旁路标志
|
||||
* 功能描述: 获取指定ID屏蔽门确认PSC旁路标志
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
*
|
||||
* 返回值 : 0: 获取失败
|
||||
* >0: 获取成功
|
||||
*/
|
||||
UINT8 GetPsdPlFlag(const UINT16 doorId)
|
||||
UINT8 GetPsdPscPlFlag(const UINT16 doorId)
|
||||
{
|
||||
/*变量初始化*/
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
@@ -1532,7 +1532,7 @@ void SetNearCiPscPlFlag(const UINT16 psdId,const UINT16 pscId,const UINT8 setFla
|
||||
if(psdCiId == localCiId)
|
||||
{
|
||||
/*设置PSC对应PSD旁路*/
|
||||
SetPsdConfirmFlag(psdId, setFlag);
|
||||
SetPsdPscConfirmFlag(psdId, setFlag);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1544,12 +1544,12 @@ void SetNearCiPscPlFlag(const UINT16 psdId,const UINT16 pscId,const UINT8 setFla
|
||||
else
|
||||
{
|
||||
/*获取PSD旁路标志*/
|
||||
pscPlFlag = GetPsdPlFlag(psdId);
|
||||
pscPlFlag = GetPsdPscPlFlag(psdId);
|
||||
if(psdCiId == localCiId)
|
||||
{
|
||||
if(CI_PSC_PL_CONFIRM_YES == pscPlFlag)
|
||||
{
|
||||
SetPsdConfirmFlag(psdId, CI_PSC_PL_CONFIRM_NO);
|
||||
SetPsdPscConfirmFlag(psdId, CI_PSC_PL_CONFIRM_NO);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2510,587 +2510,3 @@ UINT16 GePsdVideoQkRelateVobcId(const UINT16 wPsdId)
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门异常打开状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* const UINT8 cExceptOpenState 屏蔽门异常打开状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
void SetPsdExceptOpenState(const UINT16 wPsdId, const UINT8 cExceptOpenState)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(wPsdId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if ((PSD_SUM_MAX > bufIndex) && ((PSD_EXCEPT_OPEN_YES == cExceptOpenState) || (PSD_EXCEPT_OPEN_NO == cExceptOpenState)))
|
||||
{
|
||||
PsdDataStru[bufIndex].cPsdExceptOpenState = cExceptOpenState; /*设置屏蔽门异常打开状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门异常打开状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* 返 回 值:0x55 异常打开
|
||||
* 0xAA 未异常打开
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
UINT8 GePsdExceptOpenState(const UINT16 wPsdId)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
UINT8 cRetVal = PSD_EXCEPT_OPEN_YES;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(wPsdId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
cRetVal = PsdDataStru[bufIndex].cPsdExceptOpenState;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回异常打开*/
|
||||
}
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门故障隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 faultQStateOne, 故障隔离信息高四字节
|
||||
* * const UINT32 faultQStateTwo, 故障隔离信息低四字节
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdFaultQState(const UINT16 doorId, const UINT32 faultQStateOne, const UINT32 faultQStateTwo)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
PsdDataStru[bufIndex].psdFaultQStataOne = faultQStateOne;
|
||||
PsdDataStru[bufIndex].psdFaultQStataTwo = faultQStateTwo;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门故障隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节,1u为低四个字节)
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 屏蔽门故障隔离信息
|
||||
*/
|
||||
UINT32 GetPsdFaultQState(const UINT16 doorId, UINT8 psdFlag)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = UINT32_MAX;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if ((PSD_SUM_MAX > bufIndex) && (HIGH_FOUR_CHAR == psdFlag))
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdFaultQStataOne;/*高四字节*/
|
||||
}
|
||||
else if ((PSD_SUM_MAX > bufIndex) && (LOW_FOUR_CHAR == psdFlag))
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdFaultQStataTwo;/*低四字节*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = UINT32_MAX;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门被隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 doorsIStateOne, 被隔离信息高四字节
|
||||
* * const UINT32 doorsIStateTwo, 被隔离信息低四字节
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdDoorIState(const UINT16 doorId, const UINT32 doorsIStateOne, const UINT32 doorsIStateTwo)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
PsdDataStru[bufIndex].psdDoorIStateOne = doorsIStateOne;
|
||||
PsdDataStru[bufIndex].psdDoorIStateTwo = doorsIStateTwo;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门被隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节,1u为低四个字节)
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 屏蔽门被隔离信息
|
||||
*/
|
||||
UINT32 GetPsdDoorIState(const UINT16 doorId, UINT8 psdFlag)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = UINT32_MAX;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if ((PSD_SUM_MAX > bufIndex) && (HIGH_FOUR_CHAR == psdFlag))
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdDoorIStateOne;/*高四字节*/
|
||||
}
|
||||
else if ((PSD_SUM_MAX > bufIndex) && (LOW_FOUR_CHAR == psdFlag))
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdDoorIStateTwo;/*低四字节*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = UINT32_MAX;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门,单扇门开关状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 doorStateOne, 单扇门开关状态高四字节
|
||||
* * const UINT32 doorStateTwo, 单扇门开关状态低四字节
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdDoorState(const UINT16 doorId, const UINT32 doorStateOne, const UINT32 doorStateTwo)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
PsdDataStru[bufIndex].psdDoorsStateOne = doorStateOne;
|
||||
PsdDataStru[bufIndex].psdDoorsStateTwo = doorStateTwo;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门,单扇门开关状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节,1u为低四个字节)
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 屏蔽门单扇门开关状态
|
||||
*/
|
||||
UINT32 GetPsdDoorState(const UINT16 doorId, UINT8 psdFlag)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = UINT32_MAX;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if ((PSD_SUM_MAX > bufIndex) && (HIGH_FOUR_CHAR == psdFlag))
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdDoorsStateOne;/*高四字节*/
|
||||
}
|
||||
else if ((PSD_SUM_MAX > bufIndex) && (LOW_FOUR_CHAR == psdFlag))
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdDoorsStateTwo;/*低四字节*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = UINT32_MAX;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID开门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 openErrState,开门故障状态
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOpenErrState(const UINT16 doorId, const UINT8 openErrState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((PSD_OPEN_CLOSE_NORMAL == openErrState) || (PSD_OPEN_CLOSE_ERROR == openErrState))
|
||||
{
|
||||
PsdDataStru[bufIndex].psdOpenErrState = openErrState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID关门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 closeErrState,关门故障状态
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetCloseErrState(const UINT16 doorId, const UINT8 closeErrState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((PSD_OPEN_CLOSE_NORMAL == closeErrState) || (PSD_OPEN_CLOSE_ERROR == closeErrState))
|
||||
{
|
||||
PsdDataStru[bufIndex].psdCloseErrState = closeErrState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID开门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 开门故障状态
|
||||
*/
|
||||
UINT8 GetOpenErrState(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = PSD_OPEN_CLOSE_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdOpenErrState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID关门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 关门故障状态
|
||||
*/
|
||||
UINT8 GetCloseErrState(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = PSD_OPEN_CLOSE_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].psdCloseErrState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门门关继电器落下起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门开继电器落下起始周期号
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
UINT32 GetPsdRelayDownCycNum(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].dwPsdRelayDownCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门门关继电器落下起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
void SetPsdRelayDownCycNum(const UINT16 doorId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
PsdDataStru[bufIndex].dwPsdRelayDownCycNum = startCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门旁路采集起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门互锁解除继电器吸起起始周期号
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT32 GetPsdMutualLockCollStartCyc(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].dwPsdMutualLockCollStartCyc;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门旁路采集起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By fan 2025.12.16
|
||||
*/
|
||||
void SetPsdMutualLockCollStartCyc(const UINT16 doorId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
PsdDataStru[bufIndex].dwPsdMutualLockCollStartCyc = startCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门故障按下周期号(误触发)
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门互锁解除继电器吸起起始周期号
|
||||
* Created By fan 2025.12.22
|
||||
*/
|
||||
UINT32 GetPsdMutualLockErrCollCyc(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].dwPsdMutualLockErrCollCyc;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门旁路故障按下周期号(误触发)
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By fan 2025.12.22
|
||||
*/
|
||||
void SetPsdMutualLockErrCollCyc(const UINT16 doorId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
PsdDataStru[bufIndex].dwPsdMutualLockErrCollCyc = startCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门旁路起效周期
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门旁路起效起始周期号
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT32 GetPsdMutualLockStartCyc(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].dwPsdMutualLockStartCyc;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID门旁路按钮故障落下状态(OC通信中断导致)
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 chErrState,旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdMutualLockErrDownState(const UINT16 doorId, const UINT8 chErrState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((PSD_BTN_ERROR_FLAG_YES == chErrState) || (PSD_BTN_ERROR_FLAG_NO == chErrState))
|
||||
{
|
||||
PsdDataStru[bufIndex].cPsdMutualLockBtnErrDownState = chErrState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID旁路按钮故障落下状态(OC通信中断导致)
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT8 GetPsdMutualLockErrDownState(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = PSD_BTN_ERROR_FLAG_YES;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].cPsdMutualLockBtnErrDownState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门旁路旁路起效周期
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
void SetPsdMutualLockStartCyc(const UINT16 doorId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
PsdDataStru[bufIndex].dwPsdMutualLockStartCyc = startCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID门旁路按钮故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 chErrState,旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdMutualLockErrState(const UINT16 doorId, const UINT8 chErrState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((PSD_BTN_ERROR_FLAG_YES == chErrState) || (PSD_BTN_ERROR_FLAG_NO == chErrState))
|
||||
{
|
||||
PsdDataStru[bufIndex].cPsdMutualLockBtnErrState = chErrState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID旁路按钮故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT8 GetPsdMutualLockErrState(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = PSD_BTN_ERROR_FLAG_YES;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].cPsdMutualLockBtnErrState;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
@@ -49,6 +49,8 @@ typedef struct S_PsdDataStruct
|
||||
|
||||
UINT16 SrcVobcId;/*操作该屏蔽门的当前VOBC ID*/
|
||||
UINT8 PsdCmd;/*操作屏蔽门的命令*/
|
||||
/*UINT16 ClosedRouteId;*//*因VOBC打开PSD而关闭信号的进路*/
|
||||
/*UINT8 LastDriState;*//*历史驱动状态*/
|
||||
UINT32 CmdSetCycle;/*命令设置周期*/
|
||||
UINT32 CmdSetCyclePsc;/*命令设置周期*/
|
||||
UINT8 PsdRemoraState; /*屏蔽门障碍物状态*/
|
||||
@@ -79,21 +81,6 @@ typedef struct S_PsdDataStruct
|
||||
UINT8 chCleFarePDBFlaLigFlag; /*清客确认箱PDB按钮指示灯闪灯标志*//*by cgh 20230529*/
|
||||
UINT8 chVideoQkDriveState; /*视频清客驱动状态 by cgh 20231214*/
|
||||
UINT16 wVideoQkRelateVobcId; /*视频清客对应列车ID by cgh 20231214*/
|
||||
UINT32 psdFaultQStataOne; /*单扇门故障隔离信息前四个字节*/
|
||||
UINT32 psdFaultQStataTwo; /*单扇门故障隔离信息后四个字节*/
|
||||
UINT32 psdDoorIStateOne; /*单扇门被隔离信息前四字节*/
|
||||
UINT32 psdDoorIStateTwo; /*单扇门被隔离信息后四字节*/
|
||||
UINT32 psdDoorsStateOne; /*每扇屏蔽门的开关状态前四个字节*/
|
||||
UINT32 psdDoorsStateTwo; /*每扇屏蔽门的开关状态后四个字节*/
|
||||
UINT8 psdOpenErrState; /*开门故障状态*/
|
||||
UINT8 psdCloseErrState; /*关门故障状态*/
|
||||
UINT8 cPsdExceptOpenState; /*屏蔽门异常打开状态:0x55-异常打开,0xAA-未异常打开*/
|
||||
UINT32 dwPsdRelayDownCycNum; /*PSD门关继电器落下起始周期*/
|
||||
UINT32 dwPsdMutualLockCollStartCyc;/*PSD旁路按钮正常按下起始周期*/
|
||||
UINT32 dwPsdMutualLockErrCollCyc;/*PSD旁路按钮误触发按下起始周期*/
|
||||
UINT32 dwPsdMutualLockStartCyc;/*PSD旁路起效周期*/
|
||||
UINT8 cPsdMutualLockBtnErrState; /*屏蔽门互锁解除按钮故障状态:0x55-未故障,0xAA-故障*/
|
||||
UINT8 cPsdMutualLockBtnErrDownState; /*屏蔽门旁路按钮故障落下状态:0x55-未故障,0xAA-故障*/
|
||||
} PsdDataStruct;
|
||||
|
||||
extern PsdDataStruct PsdDataStru[PSD_SUM_MAX]; /*定义屏蔽门数据结构体*/
|
||||
@@ -531,23 +518,23 @@ UINT32 GetPsdCmdCyclePsc(const UINT16 doorId);
|
||||
UINT8 SetPsdCmdCyclePsc(const UINT16 doorId, const UINT32 doorCycle);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门旁路标志
|
||||
* 功能描述: 设置指定ID屏蔽门确认PSC互锁解除标志
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 setFlag, 屏蔽门旁路设置状态
|
||||
* 返回值 :无
|
||||
*
|
||||
*/
|
||||
|
||||
void SetPsdConfirmFlag(const UINT16 doorId,const UINT8 setFlag);
|
||||
void SetPsdPscConfirmFlag(const UINT16 doorId,const UINT8 setFlag);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门旁路标志
|
||||
* 功能描述: 获取指定ID屏蔽门确认PSC旁路标志
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
*
|
||||
* 返回值 : 0: 获取失败
|
||||
* >0: 获取成功
|
||||
*/
|
||||
UINT8 GetPsdPlFlag(const UINT16 doorId);
|
||||
UINT8 GetPsdPscPlFlag(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述: PSC同时与另一联锁通信时,PSC旁路命令处理
|
||||
@@ -885,209 +872,6 @@ void SetPsdVideoQkRelateVobcId(const UINT16 wPsdId, const UINT16 wVobcId);
|
||||
*/
|
||||
UINT16 GePsdVideoQkRelateVobcId(const UINT16 wPsdId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门异常打开状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* const UINT8 cExceptOpenState 屏蔽门异常打开状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
void SetPsdExceptOpenState(const UINT16 wPsdId, const UINT8 cExceptOpenState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门异常打开状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* 返 回 值:0x55 异常打开
|
||||
* 0xAA 未异常打开
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
UINT8 GePsdExceptOpenState(const UINT16 wPsdId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门故障隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 faultQStateOne, 故障隔离信息高四字节
|
||||
* * const UINT32 faultQStateTwo, 故障隔离信息低四字节
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdFaultQState(const UINT16 doorId, const UINT32 faultQStateOne, const UINT32 faultQStateTwo);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门故障隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节,1u为低四个字节)
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 屏蔽门故障隔离信息
|
||||
*/
|
||||
UINT32 GetPsdFaultQState(const UINT16 doorId, UINT8 psdFlag);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门被隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 doorsIStateOne, 被隔离信息高四字节
|
||||
* * const UINT32 doorsIStateTwo, 被隔离信息低四字节
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdDoorIState(const UINT16 doorId, const UINT32 doorsIStateOne, const UINT32 doorsIStateTwo);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门被隔离信息
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节,1u为低四个字节)
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 屏蔽门被隔离信息
|
||||
*/
|
||||
UINT32 GetPsdDoorIState(const UINT16 doorId, UINT8 psdFlag);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门,单扇门开关状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 doorStateOne, 单扇门开关状态高四字节
|
||||
* * const UINT32 doorStateTwo, 单扇门开关状态低四字节
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdDoorState(const UINT16 doorId, const UINT32 doorStateOne, const UINT32 doorStateTwo);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门,单扇门开关状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 psdFlag,前四个字节还是后四个字节(0u为高四个字节,1u为低四个字节)
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 屏蔽门单扇门开关状态
|
||||
*/
|
||||
UINT32 GetPsdDoorState(const UINT16 doorId, UINT8 psdFlag);
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID开门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 openErrState,开门故障状态
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetOpenErrState(const UINT16 doorId, const UINT8 openErrState);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID关门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 closeErrState,关门故障状态
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetCloseErrState(const UINT16 doorId, const UINT8 closeErrState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID开门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 开门故障状态
|
||||
*/
|
||||
UINT8 GetOpenErrState(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID关门故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 关门故障状态
|
||||
*/
|
||||
UINT8 GetCloseErrState(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门门关继电器落下起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门开继电器落下起始周期号
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
UINT32 GetPsdRelayDownCycNum(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门门关继电器落下起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
void SetPsdRelayDownCycNum(const UINT16 doorId, const UINT32 startCycNum);
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门旁路采集起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门互锁解除继电器吸起起始周期号
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT32 GetPsdMutualLockCollStartCyc(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门旁路采集起始周期号
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.06.26
|
||||
*/
|
||||
void SetPsdMutualLockCollStartCyc(const UINT16 doorId, const UINT32 startCycNum);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门故障按下周期号(误触发)
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门互锁解除继电器吸起起始周期号
|
||||
* Created By fan 2025.12.22
|
||||
*/
|
||||
UINT32 GetPsdMutualLockErrCollCyc(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门旁路故障按下周期号(误触发)
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By fan 2025.12.22
|
||||
*/
|
||||
void SetPsdMutualLockErrCollCyc(const UINT16 doorId, const UINT32 startCycNum);
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门旁路起效周期
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* 返 回 值:门旁路起效起始周期号
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT32 GetPsdMutualLockStartCyc(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门旁路旁路起效周期
|
||||
* 参数说明:const UINT16 doorId 屏蔽门ID
|
||||
* const UINT32 startCycNum 起始周期号
|
||||
* 返 回 值:无
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
void SetPsdMutualLockStartCyc(const UINT16 doorId, const UINT32 startCycNum);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID门旁路按钮故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 chErrState,旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdMutualLockErrState(const UINT16 doorId, const UINT8 chErrState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID旁路按钮故障状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT8 GetPsdMutualLockErrState(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID门旁路按钮故障落下状态(OC通信中断导致)
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 chErrState,旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void SetPsdMutualLockErrDownState(const UINT16 doorId, const UINT8 chErrState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID旁路按钮故障落下状态(OC通信中断导致)
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : UINT8 旁路故障状态
|
||||
* Created By fan 2025.12.15
|
||||
*/
|
||||
UINT8 GetPsdMutualLockErrDownState(const UINT16 doorId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -67,25 +67,6 @@
|
||||
#define PSD_FAULT_ISOLATION_SCX ((UINT8)0x81U) /*试车线屏蔽门设置故障隔离信息:1和8门隔离*/
|
||||
#define PSD_OPEN_STATE_SCX ((UINT32)0xFFFFFF7EU) /*试车线故障隔离时屏蔽门打开状态,除1和8门外,全部打开*/
|
||||
|
||||
/*屏蔽门驱动电源状态*/
|
||||
#define PSD_DRIVE_POWER_NORMAL ((UINT8)0x55U) /*驱动电源状态正常*/
|
||||
#define PSD_DRIVE_POWER_ERROR ((UINT8)0xAAU) /*驱动电源状态故障*/
|
||||
|
||||
/*屏蔽门控制电源状态*/
|
||||
#define PSD_CONTROL_POWER_NORMAL ((UINT8)0x55U) /*控制电源状态正常*/
|
||||
#define PSD_CONTROL_POWER_ERROR ((UINT8)0xAAU) /*控制电源状态故障*/
|
||||
|
||||
/*屏蔽门边缘控制器状态*/
|
||||
#define PSD_EDGE_CONTROLLER_NORMAL ((UINT8)0x55U) /*边缘控制器状态正常*/
|
||||
#define PSD_EDGE_CONTROLLER_ERROR ((UINT8)0xAAU) /*边缘控制器状态故障*/
|
||||
|
||||
/*屏蔽门障碍物报警状态*/
|
||||
#define PSD_ALARM_OBS_NO ((UINT8)0xAAU) /*无故障物*/
|
||||
#define PSD_ALARM_OBS_YES ((UINT8)0x55U) /*有故障物*/
|
||||
|
||||
/*屏蔽门开关门故障状态*/
|
||||
#define PSD_OPEN_CLOSE_NORMAL ((UINT8)0x55U) /*开关门故障状态为正常*/
|
||||
#define PSD_OPEN_CLOSE_ERROR ((UINT8)0xAAU) /*开关门故障状态为故障*/
|
||||
|
||||
/*燕房线FAO编组信息定义*/
|
||||
#define PSD_FOUR_EDIT_GROUP_FAO_YF ((UINT8)0x01U) /*四编组*/
|
||||
@@ -106,10 +87,6 @@
|
||||
#define PSD_VIRTUAL_ATTR_YES ((UINT8)0x55U) /*是虚拟屏蔽门*/
|
||||
#define PSD_VIRTUAL_ATTR_NO ((UINT8)0xaaU) /*不是虚拟屏蔽门*/
|
||||
|
||||
/*屏蔽门控制类型*/
|
||||
#define PSD_CONTROL_TYPE_OC_P ((UINT8)0x55u) /*由OC-P控制*/
|
||||
#define PSD_CONTROL_TYPE_RCI ((UINT8)0xAAu) /*由RCI控制*/
|
||||
|
||||
/*障碍物信息*/
|
||||
#define PSD_REMORA_YES ((UINT8)0xAAU) /*有障碍物*/
|
||||
#define PSD_REMORA_NO ((UINT8)0x55U) /*已检测且无障碍物*/
|
||||
@@ -195,20 +172,4 @@
|
||||
#define VIDEO_QK_DRIVE_STATE_TESTING ((UINT8)0xccU) /*视频清客驱动状态—检测中*/
|
||||
#define VIDEO_QK_DRIVE_STATE_INVALID ((UINT8)0xffU) /*视频清客驱动状态—无效*/
|
||||
|
||||
/*屏蔽门异常打开状态*/
|
||||
#define PSD_EXCEPT_OPEN_NO ((UINT8)0xAAU) /*未异常打开*/
|
||||
#define PSD_EXCEPT_OPEN_YES ((UINT8)0x55U) /*异常打开*/
|
||||
|
||||
/*OC-P旁路状态确认*/
|
||||
#define OC_PSC_PL_CONFIRM_YES ((UINT8)0xaaU) /*OC-P旁路状态已确认*/
|
||||
#define OC_PSC_PL_CONFIRM_NO ((UINT8)0x55U) /*OC-P旁路状态未确认*/
|
||||
|
||||
/*获取屏蔽门信息*/
|
||||
#define HIGH_FOUR_CHAR ((UINT8)0U) /*高四字节*/
|
||||
#define LOW_FOUR_CHAR ((UINT8)1U) /*低四字节*/
|
||||
|
||||
/*自复式屏蔽门按钮故障标志*/
|
||||
#define PSD_BTN_ERROR_FLAG_NO ((UINT8)0x55) /*自复式屏蔽门按钮故障标志无效*/
|
||||
#define PSD_BTN_ERROR_FLAG_YES ((UINT8)0xaa) /*自复式屏蔽门按钮故障标志有效*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -147,27 +147,7 @@
|
||||
#define ATS_CMD_OPEN_XIANSU_SIGNAL_SECOND ((UINT8)0x9e) /*开放限速信号二次*/
|
||||
#define ATS_CMD_OPEN_XIANSU_SIGNAL_SPECIAL ((UINT8)0xa6) /*限速信号特殊开放*/
|
||||
|
||||
#define ATS_CMD_OC_P_PL_ONE ((UINT8)0xa8) /*设置OC-P旁路一次命令*/
|
||||
#define ATS_CMD_OC_P_PL_TWO ((UINT8)0xa9) /*设置OC-P旁路二次命令*/
|
||||
#define ATS_CMD_QUXIAO_OC_P_PL_ONE ((UINT8)0xaa) /*取消OC-P旁路一次命令*/
|
||||
#define ATS_CMD_QUXIAO_OC_P_PL_TWO ((UINT8)0xab) /*取消OC-P旁路二次命令*/
|
||||
#define ATS_CMD_PROHIBIT_FAO ((UINT8)0xac) /*禁止FAO列车进入逻辑区段命令*/
|
||||
#define ATS_CMD_CANCEL_PROHIBIT_FAO ((UINT8)0xad) /*取消禁止FAO列车进入逻辑区段命令*/
|
||||
#define ATS_CMD_OHL_BYPASS ((UINT8)0xae) /*设置接触网旁路命令*/
|
||||
#define ATS_CMD_CANCEL_OHL_BYPASS ((UINT8)0xaf) /*取消接触网旁路命令*/
|
||||
|
||||
#define ATS_CMD_ECS_USE_START ((UINT8)0xB0U) /*ECS自动触发启用命令*/
|
||||
#define ATS_CMD_ECS_USE_STOP ((UINT8)0xB1U) /*ECS自动触发停用命令*/
|
||||
|
||||
#define ATS_CMD_UNLOCK_STARTSTATE_ONE ((UINT8)0xB2) /*全站解封解锁一次*/
|
||||
#define ATS_CMD_UNLOCK_STARTSTATE_TWO ((UINT8)0xB3) /*全站解封解锁二次*/
|
||||
#define ATS_CMD_LOGSECTION_FLOCK_SET ((UINT8)0xB4) /*逻辑区段封锁*/
|
||||
#define ATS_CMD_LOGSECTION_FLOCK_CANCLE ((UINT8)0xB5) /*逻辑区段解封*/
|
||||
|
||||
#define SCX_ATS_CMD_CESB_ACTIVE_YES ((UINT8)0xB6) /*试车线虚拟CESB激活*/
|
||||
#define SCX_ATS_CMD_CESB_ACTIVE_NO ((UINT8)0xB7) /*试车线虚拟CESB激活*/
|
||||
#define SCX_ATS_CMD_CESB_CUT_YES ((UINT8)0xB8) /*试车线虚拟CESB旁路*/
|
||||
#define SCX_ATS_CMD_CESB_CUT_NO ((UINT8)0xB9) /*试车线虚拟CESB旁路恢复*/
|
||||
|
||||
#define ATS_CMD_GET_CTRL_POWER ((UINT8)0x81) /* 获取联锁控制权*/
|
||||
#define ATS_CMD_RELEASE_CTRL_POWER ((UINT8)0x82) /* 释放联锁控制权*/
|
||||
@@ -233,7 +213,7 @@
|
||||
#define VOBCTOCI_COMMAND_TYPE_PSDCHECK ((UINT8)0x00) /*查询PSD命令*/
|
||||
#define VOBCTOCI_COMMAND_TYPE_PSDOPEN ((UINT8)0x55) /*打开PSD命令*/
|
||||
#define VOBCTOCI_COMMAND_TYPE_PSDCLOSE ((UINT8)0xAA) /*关闭PSD命令*/
|
||||
#define VOBCTOCI_COMMAND_TYPE_PSDCHECK_FAOHLHT ((UINT8)0xFF) /*查询PSD命令(新机场线查询命令)、PSD命令默认值*/
|
||||
#define VOBCTOCI_COMMAND_TYPE_PSDCHECK_FAOHLHT ((UINT8)0xFF) /*查询PSD命令(新机场线查询命令)*/
|
||||
|
||||
/****联锁到ATS反馈信息宏定义****/
|
||||
/*反馈信息类型*/
|
||||
@@ -265,7 +245,6 @@
|
||||
#define CI_BACK_GROUP_AUTO_ROUTE_SET_ERR ((UINT8)0x7e) /*组合自动进路自动属性设置失败*/
|
||||
|
||||
#define CI_BACK_AUTO_TRIGGER_SET_ERR (UINT8)0x85 /*进路的自动触发标志设置失败*/
|
||||
#define CI_BACK_LEAD_ROUTE_CANCEL ((UINT8)0xA4) /*引导进路无法使用总取消解锁反馈*/
|
||||
|
||||
/*信号机故障反馈*/
|
||||
#define CI_BACK_SIG_START_OPEN ((UINT8)0x11) /*进路始端信号机开放*/
|
||||
@@ -319,12 +298,10 @@
|
||||
#define CI_BACK_SWT_POS_ERROR ((UINT8)0x37) /*道岔位置错误*/
|
||||
#define CI_BACK_SWT_MOVE_VALID ((UINT8)0x00) /*道岔不可动作*/
|
||||
#define CI_BACK_SWT_MOVE_OT ((UINT8)0x39) /*道岔动作超时*/
|
||||
#define CI_BACK_SWT_BYPASS_CANCEL_NO ((UINT8)0x93) /*联络线道岔旁路未及时取消*/
|
||||
#define CI_BACK_SWT_MOVE ((UINT8)0xA3) /*道岔转动中*/
|
||||
#define CI_BACK_SWT_BYPASS_CANCEL_NO ((UINT8)0x93) /*联络线道岔旁路未及时取消*/
|
||||
/* zt 删除单轨相关代码 2022-02-15 */
|
||||
#define CI_BACK_SWT_USING ((UINT8)0x3f) /*道岔征用中*/
|
||||
#define CI_BACK_SWT_MOVE_ERR ((UINT8)0x84) /*道岔搬动失败*/
|
||||
#define CI_BACK_SWT_WAIT_MOVE ((UINT8)0xAE) /*等待道岔动作完成后再操作*/
|
||||
|
||||
/*继电器故障反馈*/
|
||||
#define CI_BACK_REL_ZHAOCHA_UP ((UINT8)0x41) /*照查继电器吸起*/
|
||||
@@ -427,16 +404,8 @@
|
||||
#define CI_BACK_SEC_UPDATA_ERROR ((UINT8)0x00) /* 区段更新失败 */
|
||||
#define CI_BACK_SWT_UPDATA_ERROR ((UINT8)0x00) /* 道岔更新失败 */
|
||||
|
||||
/*动态路径命令反馈*/
|
||||
#define CI_BACK_DYM_ROUTE_CONTINUOUS ((UINT8)0xA5) /*动态路径命令条件不满足:逻辑区段不连续*/
|
||||
#define CI_BACK_DYM_ROUTE_RES ((UINT8)0xA6) /*动态路径命令条件不满足:列车占压逻辑区段资源不齐全或不唯一*/
|
||||
#define CI_BACK_DYM_ROUTE_MATCH_ROUTE ((UINT8)0xA7) /*动态路径命令条件不满足:逻辑区段序列未匹配到进路*/
|
||||
#define CI_BACK_DYM_ROUTE_SCREEN ((UINT8)0xA8) /*动态路径命令条件不满足:列车未完成筛选*/
|
||||
#define CI_BACK_DYM_ROUTE_SEC_CBTC ((UINT8)0xA9) /*动态路径命令条件不满足:逻辑区段非CBTC区域*/
|
||||
#define CI_BACK_DYM_ROUTE_REPEAT ((UINT8)0xAA) /*动态路径命令条件不满足:重复办理*/
|
||||
#define CI_BACK_DYM_ROUTE_SEC_ATTR ((UINT8)0xAB) /*动态路径命令条件不满足:场段仅支持休眠唤醒轨一个区段的动态路径办理*/
|
||||
#define CI_BACK_DYM_ROUTE_TRAIN_COMM ((UINT8)0xAC) /*动态路径命令条件不满足:场段RC与列车通信中断*/
|
||||
#define CI_BACK_DYM_ROUTE_TRAIN_POS ((UINT8)0xAD) /*动态路径命令条件不满足:场段列车不完全处在休眠唤醒轨*/
|
||||
|
||||
|
||||
|
||||
#define CI_BACK_DATA_INFO_TYPE_ERR ((UINT8)0xf1) /* CI与其他子系统数据接口信息类型错误 */
|
||||
#define CI_BACK_DATA_SEND_FLAG_ERR ((UINT8)0xf2) /* CI与其他子系统数据发送方标识信息错误 */
|
||||
@@ -447,13 +416,6 @@
|
||||
#define CI_BACK_DATA_APP_LEN_ERR ((UINT8)0xf7) /* CI与其他子系统数据应用层数据长度无效 */
|
||||
#define CI_BACK_DATA_COM_PERIOD ((UINT8)0xf8) /* CI与其他子系统数据通信周期错误 */
|
||||
#define CI_BACK_DATA_VER_CHECK_FAIL ((UINT8)0xfe) /* CI与其他子系统数据版本号校验失败 */
|
||||
|
||||
/*联络线相关反馈*/
|
||||
#define CI_BACK_OVERRIDE_SWITCH_FAIL ((UINT8)0xAF) /* 道岔不在定位,旁路无效 */
|
||||
#define CI_BACK_OVERRIDE_CT_OCCUPY ((UINT8)0xB0) /* CT列车占用,旁路无效 */
|
||||
#define CI_BACK_CONNECT_ROUTE_OVERRIME ((UINT8)0xB1) /* (联络线)进路办理超时 */
|
||||
#define CI_BACK_CONNECT_SWITCH_RET_FAIL ((UINT8)0xB2) /* Point failed to move to normal within 20 seconds of the over switch block being cleared */
|
||||
|
||||
/*应答类型*/
|
||||
#define RESPONSE_FIRST ((UINT8)0xAA) /*一次确认应答命令*/
|
||||
#define RESPONSE_SECOND ((UINT8)0xBB) /*二次确认应答命令*/
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#include "../IO/OutputDataProcess.h"
|
||||
#include "EnvelopeManageAPI.h"
|
||||
#include "../DataManage/PlatDataManage.h"
|
||||
#include "../ECS/ECSDataManage.h"
|
||||
|
||||
/*解包使用*/
|
||||
CommandDataStruct CiRevCmdDataStru[ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX] = {0u}; /*CI操作命令结构体数组*/
|
||||
@@ -123,41 +122,6 @@ static UINT8 TransCiToAtsPSCState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 Psc
|
||||
*/
|
||||
static UINT8 TransCiToAtsPSCtypeState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 PscStatetype, UINT8 PscState, UINT8 BitValY, UINT8 BitValN);
|
||||
|
||||
/*
|
||||
* 功能描述: 转换Ci到ATS中PSD 驱动电源状态信息
|
||||
* 参数说明:入参
|
||||
* UINT8 ciToXianDiData, CI到现地数据信息
|
||||
* UINT8 MoveNum 左移位数
|
||||
* UINT8 PsdState psd驱动电源状态信息
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 转换后输出数据
|
||||
*/
|
||||
static UINT8 TransCiToAtsDrvWorkState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 PsdState);
|
||||
|
||||
/*
|
||||
* 功能描述: 转换Ci到ATS中PSD 控制电源状态信息
|
||||
* 参数说明:入参
|
||||
* UINT8 ciToXianDiData, CI到现地数据信息
|
||||
* UINT8 MoveNum 左移位数
|
||||
* UINT8 PsdState psd控制电源状态信息
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 转换后输出数据
|
||||
*/
|
||||
static UINT8 TransCiToAtsCtlWorkState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 PsdState);
|
||||
|
||||
/*
|
||||
* 功能描述: 转换Ci到ATS中PSD 边缘控制器状态
|
||||
* 参数说明:入参
|
||||
* UINT8 ciToXianDiData, CI到现地数据信息
|
||||
* UINT8 MoveNum 左移位数
|
||||
* UINT8 PsdState psd边缘控制器状态
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 转换后输出数据
|
||||
*/
|
||||
static UINT8 TransCiToAtsPSDEdgeState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 PsdState);
|
||||
|
||||
/*
|
||||
* 功能描述: 解析操作命令数据帧
|
||||
@@ -961,13 +925,6 @@ UINT8 PackCiToAtsOrXianDiData(const UINT8 deviceId, const UINT8 targetDevType, c
|
||||
}
|
||||
}
|
||||
|
||||
/*组OC-PSC一体化数据*/
|
||||
PackOcPscDataToAts(ciToXianDiDataBuffer, &ii);
|
||||
|
||||
/*组PSD数据*/
|
||||
PackPsdDataToAts(ciToXianDiDataBuffer, &ii);
|
||||
|
||||
|
||||
ocDeviceSum = (UINT16)GetCiTransmitSpecifySysDevSum(CI_SYSTEM_TYPE_OC); /*获取通信OC设备总数*/
|
||||
pOcDeviceIdBuf = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_OC); /*获取通信OC设备ID数组*/
|
||||
|
||||
@@ -1080,7 +1037,6 @@ UINT8 PackCiToAtsOrXianDiData(const UINT8 deviceId, const UINT8 targetDevType, c
|
||||
{
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*存在PSC设备,才发送PSD隔离信息给ATS*/
|
||||
if (NULL == pDeviceIdBuf)
|
||||
{
|
||||
@@ -1147,7 +1103,6 @@ UINT8 PackCiToAtsOrXianDiData(const UINT8 deviceId, const UINT8 targetDevType, c
|
||||
/*重新填写PSD数量*/
|
||||
ciToXianDiDataBuffer[ii - (psdSum * 28U) - 1U] = psdSum;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*组RCOCI设备状态 (电源/电源模块状态)2字节*/
|
||||
@@ -1194,15 +1149,6 @@ UINT8 PackCiToAtsOrXianDiData(const UINT8 deviceId, const UINT8 targetDevType, c
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/*组通信联锁信息*/
|
||||
PackCiDataToAts(ciToXianDiDataBuffer, &ii);
|
||||
|
||||
/*组接触网信息*/
|
||||
PackOhlDataToAts(ciToXianDiDataBuffer, &ii);
|
||||
|
||||
/*组ECS自动触发状态*/
|
||||
PackECSStateToAts(ciToXianDiDataBuffer, &ii);
|
||||
|
||||
/*预留40字节*/
|
||||
ii += 40u;
|
||||
}
|
||||
@@ -1421,8 +1367,6 @@ void SetCiSendCmdBackData_OrderBack( const UINT32 commandId,const UINT16 deviceI
|
||||
}
|
||||
}
|
||||
}
|
||||
/*清除暂存一次命令后,将无效命令清除,并将数量置为有效命令的数量 YF0083-Bug-148*/
|
||||
ClearCiSendBackDataTempStruData();
|
||||
|
||||
if (CiSendCmdStruCurSum < CI_TO_ATSORXIANDI_CMD_DATA_STRU_SUM_MAX)
|
||||
{
|
||||
@@ -1758,7 +1702,7 @@ UINT8 GetPscConfirmFlag(UINT8 pscId)
|
||||
if(psdCiId == localCiId)
|
||||
{
|
||||
/*获取PSC对应PSD的互锁解除确认标志*/
|
||||
pscPsdFlag = GetPsdPlFlag(pscToCiDataStru[pscId].psdDataStr[i].psdId);
|
||||
pscPsdFlag = GetPsdPscPlFlag(pscToCiDataStru[pscId].psdDataStr[i].psdId);
|
||||
if(CI_PSC_PL_CONFIRM_YES == pscPsdFlag)
|
||||
{
|
||||
retVal = CI_PSC_PL_CONFIRM_YES;
|
||||
@@ -1903,15 +1847,6 @@ UINT8 FindFirstOrder(UINT8 SecondOrder)
|
||||
case ATS_CMD_SWITCH_FANWEI_TEST_TWO:
|
||||
reVal = ATS_CMD_SWITCH_FANWEI_TEST_ONE; /*道岔反位测试一次命令*/
|
||||
break;
|
||||
case ATS_CMD_OC_P_PL_TWO:
|
||||
reVal = ATS_CMD_OC_P_PL_ONE; /*OC-P旁路一次命令*/
|
||||
break;
|
||||
case ATS_CMD_QUXIAO_OC_P_PL_TWO:
|
||||
reVal = ATS_CMD_QUXIAO_OC_P_PL_ONE; /*取消OC-P旁路一次命令*/
|
||||
break;
|
||||
case ATS_CMD_UNLOCK_STARTSTATE_TWO:
|
||||
reVal = ATS_CMD_UNLOCK_STARTSTATE_ONE; /*迪士尼全站解封解锁*/
|
||||
break;
|
||||
default:
|
||||
reVal = 0u;
|
||||
break;
|
||||
@@ -2607,7 +2542,6 @@ UINT16 TransCiToAtsSwitchZzjInfo(OcToATSSwitchZzjData* ciSendAtsSwitchZzjData, U
|
||||
UINT8 jj = 0U;/*道岔对应转辙机的索引*/
|
||||
UINT8 mm = 0U;/*道岔状态四开时,判断是否有异常情况循环体*/
|
||||
UINT8 chSwitchDriveFlag = 0U;/*道岔驱动过标志*/
|
||||
UINT8 chSingleSwitchCurPosition = 0u;/*道岔当前单独位置*/
|
||||
|
||||
if ((NULL != ciSendAtsSwitchZzjData)
|
||||
&& (NULL != wDataLength))
|
||||
@@ -2677,26 +2611,18 @@ UINT16 TransCiToAtsSwitchZzjInfo(OcToATSSwitchZzjData* ciSendAtsSwitchZzjData, U
|
||||
}
|
||||
else
|
||||
{
|
||||
chSingleSwitchCurPosition = GetSingleSwitchCurPosition(m_OcToCiOrginDataArr[kk].OcDevices[ii].DeviceId);
|
||||
if (SWITCH_POSITION_JICHA == chSingleSwitchCurPosition)
|
||||
chSwitchDriveFlag = GetSwitchDrivedFlag(m_OcToCiOrginDataArr[kk].OcDevices[ii].DeviceId);
|
||||
if (SWITCH_DRIVED_FLAG_YES == chSwitchDriveFlag)
|
||||
{
|
||||
/*道岔当前挤岔,转辙机判断为故障*/
|
||||
ciSendAtsSwitchZzjData[wSwitchNum].szSwitchIncldeZzjState[jj] = OC_TO_ATS_SWITCH_ZZJ_ALARM;
|
||||
/*道岔被驱动过取消驱动,此转辙机状态设置为正常*/
|
||||
ciSendAtsSwitchZzjData[wSwitchNum].szSwitchIncldeZzjState[jj] = OC_TO_ATS_SWITCH_ZZJ_NORMAL;
|
||||
}
|
||||
else
|
||||
{
|
||||
chSwitchDriveFlag = GetSwitchDrivedFlag(m_OcToCiOrginDataArr[kk].OcDevices[ii].DeviceId);
|
||||
if (SWITCH_DRIVED_FLAG_YES == chSwitchDriveFlag)
|
||||
{
|
||||
/*道岔被驱动过取消驱动,此转辙机状态设置为正常*/
|
||||
ciSendAtsSwitchZzjData[wSwitchNum].szSwitchIncldeZzjState[jj] = OC_TO_ATS_SWITCH_ZZJ_NORMAL;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*道岔没被驱动四开,此转辙机状态设置为正常*/
|
||||
ciSendAtsSwitchZzjData[wSwitchNum].szSwitchIncldeZzjState[jj] = OC_TO_ATS_SWITCH_ZZJ_ALARM;
|
||||
}
|
||||
/*道岔没被驱动四开,此转辙机状态设置为正常*/
|
||||
ciSendAtsSwitchZzjData[wSwitchNum].szSwitchIncldeZzjState[jj] = OC_TO_ATS_SWITCH_ZZJ_ALARM;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2745,460 +2671,3 @@ static UINT8 TransCiToAtsPowerModeState(UINT8 ciToXianDiData, UINT8 MoveNum, UIN
|
||||
|
||||
return TransCiSendData;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 转换Ci到ATS中PSD 驱动电源状态信息
|
||||
* 参数说明:入参
|
||||
* UINT8 ciToXianDiData, CI到现地数据信息
|
||||
* UINT8 MoveNum 左移位数
|
||||
* UINT8 PsdState psd驱动电源状态信息
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 转换后输出数据
|
||||
*/
|
||||
static UINT8 TransCiToAtsDrvWorkState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 PsdState)
|
||||
{
|
||||
UINT8 TransCiSendData = 0u;
|
||||
|
||||
if (PSD_DRIVE_POWER_NORMAL == PsdState)
|
||||
{/*PSD 驱动电源状态正常*/
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000011B << MoveNum));
|
||||
}
|
||||
else if (PSD_DRIVE_POWER_ERROR == PsdState)
|
||||
{/*故障*/
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000000B << MoveNum));
|
||||
}
|
||||
else
|
||||
{
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000000B << MoveNum));
|
||||
}
|
||||
|
||||
return TransCiSendData;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 转换Ci到ATS中PSD 控制电源状态信息
|
||||
* 参数说明:入参
|
||||
* UINT8 ciToXianDiData, CI到现地数据信息
|
||||
* UINT8 MoveNum 左移位数
|
||||
* UINT8 PsdState psd控制电源状态信息
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 转换后输出数据
|
||||
*/
|
||||
static UINT8 TransCiToAtsCtlWorkState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 PsdState)
|
||||
{
|
||||
UINT8 TransCiSendData = 0u;
|
||||
|
||||
if (PSD_CONTROL_POWER_NORMAL == PsdState)
|
||||
{/*PSD 控制电源状态正常*/
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000011B << MoveNum));
|
||||
}
|
||||
else if (PSD_CONTROL_POWER_ERROR == PsdState)
|
||||
{/*故障*/
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000000B << MoveNum));
|
||||
}
|
||||
else
|
||||
{
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000000B << MoveNum));
|
||||
}
|
||||
|
||||
return TransCiSendData;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 转换Ci到ATS中PSD 边缘控制器状态
|
||||
* 参数说明:入参
|
||||
* UINT8 ciToXianDiData, CI到现地数据信息
|
||||
* UINT8 MoveNum 左移位数
|
||||
* UINT8 PsdState psd边缘控制器状态
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 转换后输出数据
|
||||
*/
|
||||
static UINT8 TransCiToAtsPSDEdgeState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 PsdState)
|
||||
{
|
||||
UINT8 TransCiSendData = 0u;
|
||||
|
||||
if (PSD_EDGE_CONTROLLER_NORMAL == PsdState)
|
||||
{/*PSD 边缘控制器正常*/
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000001B << MoveNum));
|
||||
}
|
||||
else if (PSD_EDGE_CONTROLLER_ERROR == PsdState)
|
||||
{/*边缘控制器故障*/
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000000B << MoveNum));
|
||||
}
|
||||
else
|
||||
{
|
||||
TransCiSendData = ciToXianDiData | ((UINT8)(BIT_VAL_00000000B << MoveNum));
|
||||
}
|
||||
|
||||
return TransCiSendData;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 组OC-P信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackOcPscDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii)
|
||||
{
|
||||
UINT16 ocPscNum = 0u;
|
||||
UINT16 ocId = 0u; /*psd id*/
|
||||
UINT8 ocPscConfirmFlag = 0u;
|
||||
UINT16 jj = 0u; /*游标*/
|
||||
UINT16 index = 0u;
|
||||
UINT16 temp_index = 0u;
|
||||
|
||||
if ((NULL != ciToXianDiDataBuffer) && (NULL != ii))
|
||||
{
|
||||
index = *ii;
|
||||
|
||||
/*OC一体机总数量,先不组,有psdNum才组*/
|
||||
temp_index = index;
|
||||
index += 2u;
|
||||
|
||||
for (jj = 0u; jj < m_OcToCiOrginDataNum; jj++)
|
||||
{
|
||||
if (0u < m_OcToCiOrginDataArr[jj].OCPsdNum)
|
||||
{/*有PSD数量*/
|
||||
ocPscNum++;
|
||||
|
||||
ShortToChar(m_OcToCiOrginDataArr[jj].OcId, &ciToXianDiDataBuffer[index]);
|
||||
index += 2u;
|
||||
|
||||
/*OC-P驱动电源状态*/
|
||||
ciToXianDiDataBuffer[index] = TransCiToAtsDrvWorkState(ciToXianDiDataBuffer[index], 6u, m_OcToCiOrginDataArr[jj].DrvPowerState);
|
||||
/*OC-P控制电源状态*/
|
||||
ciToXianDiDataBuffer[index] = TransCiToAtsCtlWorkState(ciToXianDiDataBuffer[index], 4u, m_OcToCiOrginDataArr[jj].CtlPowerState);
|
||||
/*边缘控制器1状态*/
|
||||
ciToXianDiDataBuffer[index] = TransCiToAtsPSDEdgeState(ciToXianDiDataBuffer[index], 2u, m_OcToCiOrginDataArr[jj].EdgeCtllerState1);
|
||||
/*边缘控制器2状态*/
|
||||
ciToXianDiDataBuffer[index] = TransCiToAtsPSDEdgeState(ciToXianDiDataBuffer[index], 0u, m_OcToCiOrginDataArr[jj].EdgeCtllerState2);
|
||||
index++;
|
||||
|
||||
ocPscConfirmFlag = GetOcPscConfirmFlag(jj);
|
||||
|
||||
/*旁路状态转换*/
|
||||
ciToXianDiDataBuffer[index] = TransCiToAtsPSCtypeState(ciToXianDiDataBuffer[index], 0u, ocPscConfirmFlag,
|
||||
OC_PSC_PL_CONFIRM_YES, BIT_VAL_00000000B, BIT_VAL_00000001B);
|
||||
|
||||
index++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*组OC-P数量*/
|
||||
ShortToChar(ocPscNum, &ciToXianDiDataBuffer[temp_index]);
|
||||
*ii = index;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 组PSD信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackPsdDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii)
|
||||
{
|
||||
UINT8 psdDeviceSum = 0u;/*PSD设备总数*/
|
||||
UINT16 jj = 0u; /*游标*/
|
||||
UINT16 psdId = 0u;/*psd id*/
|
||||
UINT16 index = 0u;
|
||||
UINT16 index_psd = 0u;/*用于记录组PSD数量的偏移量*/
|
||||
UINT32 tempPack = 0u;
|
||||
UINT8 psdConType = PSD_CONTROL_TYPE_RCI;
|
||||
UINT8 OcPsdSum = 0u; /*属于OC-P的PSD数量*/
|
||||
|
||||
|
||||
if ((NULL != ciToXianDiDataBuffer) && (NULL != ii))
|
||||
{
|
||||
index = *ii;
|
||||
|
||||
psdDeviceSum = GetPsdSum();/*PSD总数*/
|
||||
|
||||
index_psd = index;
|
||||
ciToXianDiDataBuffer[index] = 0u; /*PSD数量先组0*/
|
||||
index += 1u;
|
||||
|
||||
for (jj = 0u; jj < psdDeviceSum; jj++) /*遍历所有的PSD*/
|
||||
{
|
||||
psdId = GetPsdId(jj);/*PSD id*/
|
||||
psdConType = GetPsdControlType(psdId);
|
||||
|
||||
if ((0u != psdId) && (PSD_CONTROL_TYPE_OC_P == psdConType))
|
||||
{
|
||||
OcPsdSum++;
|
||||
|
||||
ShortToChar(0u, &ciToXianDiDataBuffer[index]); /*psd id*/
|
||||
index += 2u;
|
||||
ShortToChar(psdId, &ciToXianDiDataBuffer[index]);
|
||||
index += 2u;
|
||||
|
||||
tempPack = GetPsdFaultQState(psdId, HIGH_FOUR_CHAR);
|
||||
LongToChar(tempPack, &ciToXianDiDataBuffer[index]);/*故障主动隔离信息*/
|
||||
index += 4u;
|
||||
tempPack = GetPsdFaultQState(psdId, LOW_FOUR_CHAR);
|
||||
LongToChar(tempPack, &ciToXianDiDataBuffer[index]);/*故障主动隔离信息*/
|
||||
index += 4u;
|
||||
|
||||
tempPack = GetPsdDoorIState(psdId, HIGH_FOUR_CHAR);
|
||||
LongToChar(tempPack, &ciToXianDiDataBuffer[index]);/*被隔离信息*/
|
||||
index += 4u;
|
||||
tempPack = GetPsdDoorIState(psdId, LOW_FOUR_CHAR);
|
||||
LongToChar(tempPack, &ciToXianDiDataBuffer[index]);/*被隔离信息*/
|
||||
index += 4u;
|
||||
|
||||
tempPack = GetPsdDoorState(psdId, HIGH_FOUR_CHAR);
|
||||
LongToChar(tempPack, &ciToXianDiDataBuffer[index]);/*每扇屏蔽门的开关状态*/
|
||||
index += 4u;
|
||||
tempPack = GetPsdDoorState(psdId, LOW_FOUR_CHAR);
|
||||
LongToChar(tempPack, &ciToXianDiDataBuffer[index]);/*每扇屏蔽门的开关状态*/
|
||||
index += 4u;
|
||||
|
||||
tempPack = GetOpenErrState(psdId);
|
||||
ciToXianDiDataBuffer[index++] = tempPack; /*开门故障状态*/
|
||||
|
||||
tempPack = GetCloseErrState(psdId);
|
||||
ciToXianDiDataBuffer[index++] = tempPack; /*关门故障状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
debug_infor_printf("psd control type:%x\n", psdConType);
|
||||
ciToXianDiDataBuffer[index_psd] = OcPsdSum; /*填入PSD数量*/
|
||||
|
||||
*ii = index;
|
||||
}
|
||||
else
|
||||
{/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取确认OC-P旁路状态
|
||||
* 参数说明: UINT8 index, OC-P系统对应的数组下标
|
||||
*
|
||||
* 返回值 : 0x55 旁路状态已确认
|
||||
* 0xaa 旁路状态未确认
|
||||
*/
|
||||
UINT8 GetOcPscConfirmFlag(UINT8 index)
|
||||
{
|
||||
UINT8 retVal = OC_PSC_PL_CONFIRM_NO;
|
||||
UINT8 i = 0u;
|
||||
UINT8 ocPscPsdFlag = 0u;
|
||||
|
||||
/*防空*/
|
||||
if (OC_SUM_MAX > index)
|
||||
{
|
||||
for (i = 0u; i < m_OcToCiOrginDataArr[index].OCPsdNum; i++)
|
||||
{
|
||||
/*获取OC-P对应PSD的旁路状态*/
|
||||
ocPscPsdFlag = GetPsdPlFlag(m_OcToCiOrginDataArr[index].PsdInfo[i].wPsdId);
|
||||
if (OC_PSC_PL_CONFIRM_YES == ocPscPsdFlag)
|
||||
{
|
||||
retVal = OC_PSC_PL_CONFIRM_YES;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 组通信联锁信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackCiDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii)
|
||||
{
|
||||
UINT16 index = 0u;
|
||||
UINT8 transCiSum = 0u;
|
||||
UINT8* pCiDeviceIdBuf = NULL; /*OC设备ID数组*/
|
||||
UINT8 jj = 0u;
|
||||
UINT8 ciAndCiCommState = 0u;/*ci与ci通信状态*/
|
||||
UINT8 ciToAtsTransState = 0u;
|
||||
UINT8 ciId = 0u;
|
||||
|
||||
if ((NULL != ciToXianDiDataBuffer) && (NULL != ii))
|
||||
{
|
||||
index = *ii;
|
||||
|
||||
transCiSum = GetCiTransmitSpecifySysDevSum(CI_SYSTEM_TYPE_CI);
|
||||
pCiDeviceIdBuf = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_CI);
|
||||
|
||||
ciToXianDiDataBuffer[index++] = transCiSum;/*通信的联锁数量*/
|
||||
if (NULL != pCiDeviceIdBuf)
|
||||
{
|
||||
for (jj = 0u; jj < transCiSum; jj++)
|
||||
{
|
||||
ciId = pCiDeviceIdBuf[jj];/*CI ID*/
|
||||
ciAndCiCommState = Get2oo2CiAndOtherSysCommState(CI_SYSTEM_TYPE_CI, (UINT8)jj);/*与联锁通信状态*/
|
||||
|
||||
ciToXianDiDataBuffer[index++] = 0x00u;
|
||||
ciToXianDiDataBuffer[index++] = ciId; /*组ID*/
|
||||
|
||||
if (TRANSMIT_2OO2_STATE_GOOD == ciAndCiCommState)
|
||||
{/*双网通信良好*/
|
||||
ciToAtsTransState = TRANSMIT_CI_STATE_GOOD;
|
||||
}
|
||||
else if (TRANSMIT_2OO2_STATE_LINK == ciAndCiCommState)
|
||||
{/*单网通信故障*/
|
||||
ciToAtsTransState = TRANSMIT_CI_STATE_LINK;
|
||||
}
|
||||
else if (TRANSMIT_2OO2_STATE_BAD == ciAndCiCommState)
|
||||
{/*双网通信故障*/
|
||||
ciToAtsTransState = TRANSMIT_CI_STATE_BAD;
|
||||
}
|
||||
else
|
||||
{
|
||||
ciToAtsTransState = TRANSMIT_CI_STATE_BAD;
|
||||
}
|
||||
|
||||
ciToXianDiDataBuffer[index++] = ciToAtsTransState;
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
*ii = index;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参检查失败,不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 组接触网信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackOhlDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii)
|
||||
{
|
||||
UINT16 index = 0u;
|
||||
UINT16 tempIndex = 0u;
|
||||
UINT8 ohlNum = 0u; /*接触网分区总数*/
|
||||
UINT16 ohlId = 0u; /*接触网分区ID*/
|
||||
UINT8 ohlPowerState = 0u; /*接触网状态*/
|
||||
UINT8 ohlBypass = 0u; /*接触网旁路状态*/
|
||||
UINT8 jj = 0u;
|
||||
UINT8 chLocalCiId = 0u; /*本地联锁ID*/
|
||||
UINT8 devBlongCiId = 0u; /*设备所属联锁ID*/
|
||||
UINT8 localOhlNum = 0u;
|
||||
|
||||
if ((NULL != ciToXianDiDataBuffer) && (NULL != ii))
|
||||
{
|
||||
index = *ii;
|
||||
|
||||
chLocalCiId = GetSystemParaLocalCiId(); /*获取本地联锁ID*/
|
||||
ohlNum = (UINT8)GetOhlCurSum();
|
||||
if ((0u < ohlNum) && (OHL_MAX_NUM > ohlNum))
|
||||
{
|
||||
tempIndex = index; /*接触网数量*/
|
||||
index = index + 1u;
|
||||
|
||||
for (jj = 0u; jj < ohlNum; jj++)
|
||||
{
|
||||
ohlId = GetOhlId(jj); /*接触网ID*/
|
||||
devBlongCiId = GetOhlBelongCiId(ohlId); /*获取设备所属联锁ID*/
|
||||
if ((0u != ohlId) && (0u != chLocalCiId) && (chLocalCiId == devBlongCiId))
|
||||
{
|
||||
ShortToChar(ohlId, &ciToXianDiDataBuffer[index]); /*接触网 id*/
|
||||
index += 2u;
|
||||
|
||||
ohlPowerState = GetOhlPowerState(ohlId); /*接触网状态*/
|
||||
ciToXianDiDataBuffer[index++] = ohlPowerState;
|
||||
|
||||
ohlBypass = GetOhlBypassFlag(ohlId); /*接触网旁路状态*/
|
||||
ciToXianDiDataBuffer[index++] = ohlBypass;
|
||||
|
||||
localOhlNum++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
ciToXianDiDataBuffer[tempIndex] = localOhlNum;/*接触网数量*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
*ii = index;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参检查失败,不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:组ECS自动触发状态到ATS
|
||||
* 参数说明:UINT8* ciToXianDiDataBuffer 存放信息的buffer(出参)
|
||||
* UINT16* ii 偏移量(出参)
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.23
|
||||
*/
|
||||
void PackECSStateToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii)
|
||||
{
|
||||
UINT16 index = 0U;
|
||||
UINT8 cEcsState = 0U;
|
||||
|
||||
if ((NULL != ciToXianDiDataBuffer) && (NULL != ii))
|
||||
{
|
||||
index = *ii;
|
||||
cEcsState = GetEcsAutoTrigState(1U); /*DSN当前仅一个控区、一个ECS,默认使用ID为1的ECS*/
|
||||
|
||||
ciToXianDiDataBuffer[index] = cEcsState; /*组ECS自动触发状态*/
|
||||
index++;
|
||||
|
||||
*ii = index;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*入参检查失败,不处理*/
|
||||
}
|
||||
}
|
||||
@@ -366,68 +366,6 @@ UINT16 TransCiToAtsSwitchZzjInfo(OcToATSSwitchZzjData* ciSendAtsSwitchZzjData, U
|
||||
*/
|
||||
static UINT8 TransCiToAtsPowerModeState(UINT8 ciToXianDiData, UINT8 MoveNum, UINT8 powerState, UINT8 BitValY, UINT8 BitValN);
|
||||
|
||||
/*
|
||||
* 功能描述: 组OC-P信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackOcPscDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/*
|
||||
* 功能描述: 组PSD信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackPsdDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取确认OC-P旁路状态
|
||||
* 参数说明: UINT8 index, OC-P系统对应的数组下标
|
||||
*
|
||||
* 返回值 : 0x55 旁路状态已确认
|
||||
* 0xaa 旁路状态未确认
|
||||
*/
|
||||
UINT8 GetOcPscConfirmFlag(UINT8 index);
|
||||
|
||||
/*
|
||||
* 功能描述: 组通信联锁信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackCiDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/*
|
||||
* 功能描述: 组接触网信息到ATS
|
||||
* 参数说明:入参
|
||||
* UINT8* ciToXianDiDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* 出参
|
||||
* 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackOhlDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/*
|
||||
* 功能描述:组ECS自动触发状态到ATS
|
||||
* 参数说明:UINT8* ciToXianDiDataBuffer 存放信息的buffer(出参)
|
||||
* UINT16* ii 偏移量(出参)
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.23
|
||||
*/
|
||||
void PackECSStateToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
#include "dsuRsspFunc.h"
|
||||
#include "protclStruct.h"
|
||||
#include "../QueryFiles/dquCIInterFace.h"
|
||||
#include "AxisAssertDataPrepare.h"
|
||||
|
||||
#define PHY_SEC_RESET_CMD (0x0DU) /*直接复位命令码*/
|
||||
#define PHY_SEC_PRE_RESET_CMD (0x0EU) /*预复位命令码*/
|
||||
@@ -27,7 +26,6 @@
|
||||
|
||||
AxisToCiDataStruct axisToCiDataStru[AXIS_TO_CI_SUM_MAX] = {0u}; /*Axis到CI数据帧结构体*/
|
||||
static DSU_RSSP_INFO_STRU_WL dsuRsspInfo = { 0 }; /*RSSPI查询数据信息*/
|
||||
AxisSecClassDataStruct gAxisSecClassData = { 0U }; /*计轴区段分类数据*/
|
||||
|
||||
static UINT8 GalHeadCheck(const UINT32 localEtcsId, const UINT32 remoteEtcsId, const UINT16 devInterfaceType, const UINT8 prtrlVer, const UINT32 dataVer, HLHTGALInfoStruct* pMICommonPackage, UINT32* pErrorCode);
|
||||
static UINT8 GetRsspiAddr(const UINT16 locTypeId, const UINT16 oppTypeId, UINT16* locRsspiAddr, UINT16* oppRsspiAddr);
|
||||
@@ -139,6 +137,7 @@ UINT8 InitAxleToCiDataStru(void)
|
||||
UINT8 belongAxleSysId = 0u; /*物理区段所属计轴ID*/
|
||||
UINT16 axlePhySecSum = 0u; /*计轴系统包含物理区段数目*/
|
||||
UINT8 pyhIsThisLine = 0u;
|
||||
UINT8 cPrtclVerBtwCiAndAxle = 0U; /*联锁和计轴间的协议校验版本号*/
|
||||
|
||||
ciId = GetSystemParaLocalCiId();
|
||||
ciName = (CI_SYSTEM_TYPE_CI) * 256U + ciId;
|
||||
@@ -154,13 +153,22 @@ UINT8 InitAxleToCiDataStru(void)
|
||||
{
|
||||
axleId = deviceIdBuf[i];
|
||||
axleName = (CI_SYSTEM_TYPE_AXIS) * 256u + axleId;
|
||||
cPrtclVerBtwCiAndAxle = GetCiAndAxisPrtclCheckVer(); /*获取协议校验版本号*/
|
||||
|
||||
rtn = dquDevName2HlhtId(axleName, 0U, &axieEtcsId); /*获取计轴互联互通ID*/
|
||||
rtn &= dquDevName2HlhtId(ciName, 0U, &ciEtcsId); /*获取CI互联互通ID*/
|
||||
if (20U <= cPrtclVerBtwCiAndAxle)
|
||||
{
|
||||
rtn = dquDevName2HlhtId(axleName, 0U, &axieEtcsId); /*获取计轴互联互通ID*/
|
||||
rtn &= dquDevName2HlhtId(ciName, 0U, &ciEtcsId); /*获取CI互联互通ID*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*使用设备ID作为互联互通ID*/
|
||||
rtn = GetRsspiAddr(axleName, ciName, &axieEtcsId, &ciEtcsId);
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == rtn) /*GAL层互联互通ID获取成功*/
|
||||
{
|
||||
if (axleId >= AXIS_TO_CI_SUM_MAX)
|
||||
if(axleId>=AXIS_TO_CI_SUM_MAX)
|
||||
{
|
||||
break;/*防护代码,防止越界*/
|
||||
}
|
||||
@@ -188,9 +196,6 @@ UINT8 InitAxleToCiDataStru(void)
|
||||
axisToCiDataStru[axleId].axisDataStr[axlePhySecSum].faultInfo = 0u;
|
||||
axisToCiDataStru[axleId].axisDataStr[axlePhySecSum].showAndReplyInfo = 0u;
|
||||
axisToCiDataStru[axleId].axisDataStr[axlePhySecSum].PreResetRst = RELAY_STATE_DOWN;
|
||||
axisToCiDataStru[axleId].axisDataStr[axlePhySecSum].chPreResetBack = RELAY_STATE_UP;
|
||||
axisToCiDataStru[axleId].axisDataStr[axlePhySecSum].chDirectResetRst = RELAY_STATE_DOWN;
|
||||
axisToCiDataStru[axleId].axisDataStr[axlePhySecSum].chDirectResetBack = RELAY_STATE_UP;
|
||||
axisToCiDataStru[axleId].axisDataStr[axlePhySecSum].State = RELAY_STATE_DOWN;
|
||||
|
||||
axisToCiDataStru[axleId].PhySecIdx[phySecId] = (UINT8)(axlePhySecSum);
|
||||
@@ -250,9 +255,7 @@ UINT8 ParseAxisToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength, cons
|
||||
UINT32 galAxisDataVer = 0u; /*计轴系统数据版本号*/
|
||||
UINT32 ciAndAxisTimeOutCout = 0u; /*联锁与计轴通信中断周期数*/
|
||||
UINT32 ciCurappCycleTime = 0u; /*联锁当前周期*/
|
||||
UINT16 axisDevName = 0U; /*计轴名称:类型+ID*/
|
||||
UINT16 wPhySecCurSum = 0U; /*本控区物理区段数目*/
|
||||
UINT16 wIndexInAxle = 0U; /*物理区段的索引号*/
|
||||
UINT16 axisDevName = 0u; /*计轴名称:类型+ID*/
|
||||
|
||||
deviceSum = GetCiTransmitSpecifySysDevSum(CI_SYSTEM_TYPE_AXIS); /*获取通信Axis设备总数*/
|
||||
deviceIdBuf = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_AXIS); /*获取通信Axis设备ID数组*/
|
||||
@@ -270,9 +273,6 @@ UINT8 ParseAxisToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength, cons
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].faultInfo = 0u;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].showAndReplyInfo = 0u;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].PreResetRst = RELAY_STATE_DOWN;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].chPreResetBack = RELAY_STATE_UP;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].chDirectResetRst = RELAY_STATE_DOWN;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].chDirectResetBack = RELAY_STATE_UP;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].State = RELAY_STATE_DOWN;
|
||||
}
|
||||
|
||||
@@ -450,163 +450,6 @@ UINT8 ParseAxisToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength, cons
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else if (AXIS_TYPE_FUHAOSHENG == acFty)
|
||||
{
|
||||
phySecNum = dataBuf[ii++]; /*获取计轴区段数量*/
|
||||
wPhySecCurSum = axisToCiDataStru[systemId].SectionSum;
|
||||
|
||||
if ((AXIS_TO_CI_SECTION_SUM_MAX > phySecNum) && (wPhySecCurSum == phySecNum))
|
||||
{
|
||||
/*计轴设备工作健康状态只解析不处理*/
|
||||
ii++;
|
||||
for (jj = 0u; jj < phySecNum; jj++)
|
||||
{
|
||||
wIndexInAxle += 1U;
|
||||
retVal = GetInAxlePhySecIdx(systemId, wIndexInAxle, &axisDataStrIdx);
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
if (0x02U == (dataBuf[ii] & 0x03U))
|
||||
{
|
||||
/*10B:区段空闲*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].gdRelayState = RELAY_STATE_UP;
|
||||
}
|
||||
else if((0x00U == (dataBuf[ii] & 0x03U)) || (0x01U == (dataBuf[ii] & 0x03U)))
|
||||
{ /*01B:区段占用*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].gdRelayState = RELAY_STATE_DOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"\nwIndexInAxle:%d OccState ERROR\n", wIndexInAxle);
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
if (0x01U == ((dataBuf[ii] >> 2U) & 0x01U))
|
||||
{
|
||||
/*计轴受扰*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].State = RELAY_STATE_DOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*默认状态*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].State = RELAY_STATE_UP;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
if (0x01U == ((dataBuf[ii] >> 3U) & 0x01U))
|
||||
{
|
||||
/*未接受到计轴立即复位命令*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].chDirectResetBack = RELAY_STATE_DOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*接受到计轴立即复位命令*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].chDirectResetBack = RELAY_STATE_UP;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
if (0x01U == ((dataBuf[ii] >> 4U) & 0x01U))
|
||||
{
|
||||
/*计轴立即复位成功*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].chDirectResetRst = RELAY_STATE_UP;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*计轴立即复位未执行或者执行未成功*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].chDirectResetRst = RELAY_STATE_DOWN;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
if (0x01U == ((dataBuf[ii] >> 5U) & 0x01U))
|
||||
{
|
||||
/*未接受到计轴预复位命令*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].chPreResetBack = RELAY_STATE_DOWN;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*接受到计轴预复位命令*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].chPreResetBack = RELAY_STATE_UP;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
if (0x01U == ((dataBuf[ii] >> 6U) & 0x01U))
|
||||
{
|
||||
/*计轴预复位成功*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].PreResetRst = RELAY_STATE_UP;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*计轴预复位未执行或者执行未成功*/
|
||||
axisToCiDataStru[systemId].axisDataStr[axisDataStrIdx].PreResetRst = RELAY_STATE_DOWN;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
/*计轴区段状态*/
|
||||
ii++;
|
||||
|
||||
if (CI_SUCCESS != retVal)
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
break; /*解析失败,停止解析,返回失败*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续解析*/
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/*包含的计轴磁头数量*/
|
||||
ii++;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"\nAxis phySecNum:%d ERROR,RC wPhySecCurSum::%d\n", phySecNum, wPhySecCurSum);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
@@ -672,9 +515,6 @@ UINT8 ParseAxisToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength, cons
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].faultInfo = 0u;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].showAndReplyInfo = 0u;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].PreResetRst = RELAY_STATE_DOWN;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].chPreResetBack = RELAY_STATE_UP;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].chDirectResetRst = RELAY_STATE_DOWN;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].chDirectResetBack = RELAY_STATE_UP;
|
||||
axisToCiDataStru[systemId].axisDataStr[jj].State = RELAY_STATE_DOWN;
|
||||
}
|
||||
|
||||
@@ -752,12 +592,6 @@ UINT8 PackCiToAxisData(UINT8 axisSysId)
|
||||
UINT16 dstDevId = 0u;
|
||||
UINT8 outnetSafeSendRtn = 0u;
|
||||
UINT16 axisDevName = 0u; /*计轴名称:类型+ID*/
|
||||
UINT8* pDataByteIndex = NULL; /*数据比特位索引地址*/
|
||||
UINT8 chDataCurPos = 0U;/*数据当前位置*/
|
||||
UINT8 chOffset = 0U;/*偏移量*/
|
||||
UINT8 chSecResetBackState = 0U;/*区段复位状态*/
|
||||
UINT16 wIndexInAxle = 0U; /*物理区段的索引号*/
|
||||
|
||||
axisDevName = (CI_SYSTEM_TYPE_AXIS) * 256U + axisSysId;
|
||||
if (AXIS_TO_CI_SUM_MAX > axisSysId)
|
||||
{
|
||||
@@ -908,154 +742,6 @@ UINT8 PackCiToAxisData(UINT8 axisSysId)
|
||||
{
|
||||
}
|
||||
}
|
||||
else if (AXIS_TYPE_FUHAOSHENG == acFty)
|
||||
{
|
||||
phyCount = axisToCiDataStru[axisSysId].SectionSum;
|
||||
CiToAxisDataBuffer[ii] = (UINT8)(phyCount);
|
||||
ii++;
|
||||
|
||||
for (jj = 0U; jj < phyCount; jj++)
|
||||
{
|
||||
/*先处理计轴直接复位*/
|
||||
/*每一个字节存储4个区段复位命令*/
|
||||
chDataCurPos = jj % SEC_NUM_PER_BYTE;
|
||||
|
||||
if (0U == chDataCurPos)
|
||||
{
|
||||
pDataByteIndex = &CiToAxisDataBuffer[ii];
|
||||
ii++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*没有满一个字节,继续等待*/
|
||||
;
|
||||
}
|
||||
|
||||
chOffset = chDataCurPos * BIT_NUM_PER_SEC;
|
||||
|
||||
wIndexInAxle += 1U;
|
||||
phySecId = GetPhyIdByIndexInAxle(axisSysId, wIndexInAxle); /*区段ID*/
|
||||
fwCycle = GetPhySecResetStartCycNum(phySecId);
|
||||
|
||||
if (0U < fwCycle)
|
||||
{
|
||||
resetType = GetPhySecSectionResetType(phySecId);
|
||||
if (PHYSICAL_SECTION_PRE_RESET_NO == resetType)
|
||||
{
|
||||
/*处理直接复位*/
|
||||
chSecResetBackState = GetPhySecDirectResetBack(phySecId);
|
||||
if (PHY_RESET_BACK_RECIVE_NO == chSecResetBackState)
|
||||
{
|
||||
/*发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X02U << chOffset));
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X00U << chOffset));
|
||||
}
|
||||
}
|
||||
else if (PHYSICAL_SECTION_PRE_RESET_YES == resetType)
|
||||
{
|
||||
/*预复位等待不发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X00U << chOffset));
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X00U << chOffset));
|
||||
}
|
||||
|
||||
if (CI_ERROR == retVal)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*继续*/
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
wIndexInAxle = 0U;
|
||||
for (jj = 0U; jj < phyCount; jj++)
|
||||
{
|
||||
/*处理计轴预复位*/
|
||||
/*每一个字节存储4个区段复位命令*/
|
||||
chDataCurPos = jj % SEC_NUM_PER_BYTE;
|
||||
|
||||
if (0U == chDataCurPos)
|
||||
{
|
||||
pDataByteIndex = &CiToAxisDataBuffer[ii];
|
||||
ii++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*没有满一个字节,继续等待*/
|
||||
;
|
||||
}
|
||||
|
||||
chOffset = chDataCurPos * BIT_NUM_PER_SEC;
|
||||
|
||||
wIndexInAxle += 1U;
|
||||
phySecId = GetPhyIdByIndexInAxle(axisSysId, wIndexInAxle); /*区段ID*/
|
||||
fwCycle = GetPhySecResetStartCycNum(phySecId);
|
||||
|
||||
if (0U < fwCycle)
|
||||
{
|
||||
resetType = GetPhySecSectionResetType(phySecId);
|
||||
if (PHYSICAL_SECTION_PRE_RESET_NO == resetType)
|
||||
{
|
||||
/*直接复位等待不发送*/
|
||||
/*不发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X00U << chOffset));
|
||||
}
|
||||
else if (PHYSICAL_SECTION_PRE_RESET_YES == resetType)
|
||||
{
|
||||
chSecResetBackState = GetPhySecPreResetBack(phySecId);
|
||||
if (PHY_RESET_BACK_RECIVE_NO == chSecResetBackState)
|
||||
{
|
||||
/*发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X02U << chOffset));
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X00U << chOffset));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不发送*/
|
||||
*pDataByteIndex = *pDataByteIndex | ((UINT8)(0X00U << chOffset));
|
||||
}
|
||||
|
||||
if (CI_ERROR == retVal)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*继续*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不继续组包*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
@@ -1265,272 +951,6 @@ static UINT8 GetPhySecIdxInAxisDataStr(const UINT8 axleId, const UINT16 phySecId
|
||||
return rtn;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 计算物理区段在计轴系统中的下标
|
||||
* 参数说明: const UINT8 chAxleId, 计轴系统ID
|
||||
* const UINT16 wIndexInAxle, 计轴系统中物理区段的序号
|
||||
* UINT8* pAxleDataStrIdx, 计轴系统里物理区段ID下标
|
||||
* 返回值 : CI_ERROR: 获取失败
|
||||
* CI_SUCCESS: 获取成功
|
||||
* by cgh 20250415
|
||||
*/
|
||||
UINT8 GetInAxlePhySecIdx(const UINT8 chAxleId, const UINT16 wIndexInAxle, UINT8* pAxleDataStrIdx)
|
||||
{
|
||||
UINT8 ret = CI_ERROR; /*返回值*/
|
||||
UINT16 wTempPhyId = 0U; /*临时记录的物理区段ID*/
|
||||
|
||||
if ((NULL != pAxleDataStrIdx) && (AXIS_TO_CI_SUM_MAX > chAxleId))
|
||||
{
|
||||
wTempPhyId = GetPhyIdByIndexInAxle(chAxleId, wIndexInAxle); /*获取计轴系统区段序号对应物理区段ID*/
|
||||
|
||||
if ((0U < wTempPhyId) && (PHYSICAL_SECTION_SUM_MAX > wTempPhyId))
|
||||
{
|
||||
*pAxleDataStrIdx = axisToCiDataStru[chAxleId].PhySecIdx[wTempPhyId];/*AxisDataStr里物理区段ID下标*/
|
||||
}
|
||||
else
|
||||
{
|
||||
*pAxleDataStrIdx = AXISDATASTR_IDX;
|
||||
}
|
||||
if (AXISDATASTR_IDX != (*pAxleDataStrIdx))
|
||||
{
|
||||
ret = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回error*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回error*/
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 初始化计轴区段分类数据
|
||||
* 参数说明:
|
||||
* 返回值 : CI_ERROR: 初始化失败
|
||||
* CI_SUCCESS: 初始化成功
|
||||
* by cgh 20260316
|
||||
*/
|
||||
UINT8 InitAxisSecClassData(void)
|
||||
{
|
||||
UINT8 chReval = CI_ERROR;
|
||||
UINT8 chDeviceSum =0U; /*获取通信Axis设备总数*/
|
||||
UINT8* szDeviceIdBuf = NULL; /*获取通信Axis设备ID数组*/
|
||||
AxisToCiDataStruct* CollAxisDataStru = NULL; /*计轴通信采集数据*/
|
||||
UINT16 wPhySecId = 0U; /*物理区段ID*/
|
||||
UINT8 chPhySecRelAcNum = 0U; /*物理区段关联的计轴区段数目*/
|
||||
UINT16* szPhySecRelAcId = NULL; /*物理区段关联计轴区段ID数组*/
|
||||
UINT16 ii = 0U; /*物理区段ID下标*/
|
||||
UINT8 chAxisSecIndex = 0U; /*计轴区段索引*/
|
||||
UINT8 chAxisSecCbtcProperty = 0U; /*计轴区段CBTC属性*/
|
||||
UINT8 chAdjacentSecTypeCheck = 0U; /*相邻区段类型检查*/
|
||||
|
||||
chDeviceSum = GetCiTransmitSpecifySysDevSum(CI_SYSTEM_TYPE_AXIS); /*获取通信Axis设备总数*/
|
||||
szDeviceIdBuf = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_AXIS); /*获取通信Axis设备ID数组*/
|
||||
CollAxisDataStru = GetCollAxisDataStruct();; /*计轴通信采集数据*/
|
||||
|
||||
/*目前只初始化RC和一个计轴系统通信的场景*/
|
||||
if (1U == chDeviceSum)
|
||||
{
|
||||
/*数据防空*/
|
||||
if ((NULL != szDeviceIdBuf) && (NULL != CollAxisDataStru))
|
||||
{
|
||||
chReval = CI_SUCCESS;
|
||||
/*遍历计轴管辖的区段*/
|
||||
for (ii = 0U; ii < (UINT16)(CollAxisDataStru[szDeviceIdBuf[0]].SectionSum); ii++)
|
||||
{
|
||||
wPhySecId = CollAxisDataStru[szDeviceIdBuf[0]].axisDataStr[ii].PhySecId;
|
||||
chPhySecRelAcNum = GetPAxisSectionSum(wPhySecId);
|
||||
szPhySecRelAcId = GetPAxisSectionIdBuf(wPhySecId);
|
||||
|
||||
/*数组防空*/
|
||||
if (NULL != szPhySecRelAcId)
|
||||
{
|
||||
/*遍历当前物理区段关联的计轴区段*/
|
||||
for (chAxisSecIndex = 0U; chAxisSecIndex < chPhySecRelAcNum; chAxisSecIndex++)
|
||||
{
|
||||
/* 第一步,添加集合A数据:计轴管辖的所有计轴区段数据*/
|
||||
if (gAxisSecClassData.chElementANum < CI_INCLUDE_AXIS_MAX_SUM)
|
||||
{
|
||||
gAxisSecClassData.szElementASecId[gAxisSecClassData.chElementANum] = szPhySecRelAcId[chAxisSecIndex];
|
||||
gAxisSecClassData.chElementANum++;
|
||||
|
||||
chAxisSecCbtcProperty = GetAxisSecCbtcProperty(szPhySecRelAcId[chAxisSecIndex]);
|
||||
|
||||
/*第二步,添加集合B数据:计轴管辖的所有具备CBTC属性的计轴区段数据*/
|
||||
if (AXIS_SEC_CBTC_PROPERTY_YES == chAxisSecCbtcProperty)
|
||||
{
|
||||
gAxisSecClassData.szElementBSecId[gAxisSecClassData.chElementBNum] = szPhySecRelAcId[chAxisSecIndex];
|
||||
gAxisSecClassData.chElementBNum++;
|
||||
|
||||
chAdjacentSecTypeCheck = AxisAdjacentSecTypeCheck(szPhySecRelAcId[chAxisSecIndex]);
|
||||
|
||||
/*第三步,添加集合C数据:计轴管辖的所有具备CBTC属性中不为联络线及非CBTC属性区段相邻区段的计轴区段数据*/
|
||||
if (CI_SUCCESS == chAdjacentSecTypeCheck)
|
||||
{
|
||||
gAxisSecClassData.szElementCSecId[gAxisSecClassData.chElementCNum] = szPhySecRelAcId[chAxisSecIndex];
|
||||
gAxisSecClassData.chElementCNum++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不添加*/
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不添加*/
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/*初始化失败*/
|
||||
chReval = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
chReval = CI_ERROR;
|
||||
}
|
||||
|
||||
if (CI_ERROR == chReval)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*继续检查*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*数据获取失败*/
|
||||
}
|
||||
|
||||
debug_infor_printf((const)"\ngAxisSecClassData.chElementANum : %d\n", gAxisSecClassData.chElementANum);
|
||||
for (ii = 0U; ii < gAxisSecClassData.chElementANum; ii++)
|
||||
{
|
||||
debug_infor_printf((const)"%d/", gAxisSecClassData.szElementASecId[ii]);
|
||||
}
|
||||
|
||||
debug_infor_printf((const)"\ngAxisSecClassData.chElementBNum : %d\n", gAxisSecClassData.chElementBNum);
|
||||
for (ii = 0U; ii < gAxisSecClassData.chElementBNum; ii++)
|
||||
{
|
||||
debug_infor_printf((const)"%d/", gAxisSecClassData.szElementBSecId[ii]);
|
||||
}
|
||||
|
||||
debug_infor_printf((const)"\ngAxisSecClassData.chElementCNum : %d\n", gAxisSecClassData.chElementCNum);
|
||||
for (ii = 0U; ii < gAxisSecClassData.chElementCNum; ii++)
|
||||
{
|
||||
debug_infor_printf((const)"%d/", gAxisSecClassData.szElementCSecId[ii]);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
chReval = CI_SUCCESS;
|
||||
}
|
||||
|
||||
return chReval;
|
||||
}
|
||||
|
||||
/**
|
||||
* 函数功能:计轴区段相邻计轴区段类型检查
|
||||
* 输入参数:UINT16 wAxisSecId 计轴区段ID
|
||||
* 返回值:CI_SUCCESS 1 成功
|
||||
* CI_ERROR 0 失败
|
||||
* by cgh 20260309
|
||||
*/
|
||||
UINT8 AxisAdjacentSecTypeCheck(UINT16 wAxisSecId)
|
||||
{
|
||||
UINT8 chReval = CI_ERROR;
|
||||
UINT8 chAcSameCnt = 0U; /*计轴前方计轴区段数目*/
|
||||
UINT16 szAcSameID[AC_MAXCNT_IN_SWITCH] = { 0U }; /*计轴前方计轴区段数组*/
|
||||
UINT8 chAcConvertCnt = 0U; /*计轴后方计轴区段数目*/
|
||||
UINT16 szAcConvertID[AC_MAXCNT_IN_SWITCH] = { 0U }; /*计轴后方计轴区段数组*/
|
||||
UINT8 chAcIndex = 0U; /*计轴区段索引*/
|
||||
UINT8 chLinkLine = 0U; /*计轴区段联络线属性*/
|
||||
UINT8 chAxisSecCbtcProperty = 0U; /*计轴区段CBTC属性*/
|
||||
|
||||
if ((0U < wAxisSecId) && (AXIS_SECTION_SUM_MAX > wAxisSecId))
|
||||
{
|
||||
/* 查询前方计轴*/
|
||||
chAcSameCnt = aam_PrepareAdjacentAC(wAxisSecId, EMAP_SAME_DIR, szAcSameID);
|
||||
|
||||
/** 查询后方计轴 */
|
||||
chAcConvertCnt = aam_PrepareAdjacentAC(wAxisSecId, EMAP_CONVER_DIR, szAcConvertID);
|
||||
|
||||
if ((UINT8_MAX == chAcSameCnt) || (UINT8_MAX == chAcConvertCnt))
|
||||
{
|
||||
chReval = CI_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
chReval = CI_SUCCESS;
|
||||
/*遍历同向相邻计轴区段*/
|
||||
for (chAcIndex = 0U; chAcIndex < chAcSameCnt; chAcIndex++)
|
||||
{
|
||||
chLinkLine = aam_PrepareACIsLinkingAxle(szAcSameID[chAcIndex]);
|
||||
chAxisSecCbtcProperty = GetAxisSecCbtcProperty(szAcSameID[chAcIndex]);
|
||||
|
||||
/*相邻区段具备联络线属性或非CBTC属性*/
|
||||
if ((CI_SUCCESS == chLinkLine) || (AXIS_SEC_CBTC_PROPERTY_NO == chAxisSecCbtcProperty))
|
||||
{
|
||||
chReval = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*相邻计轴区段不是联络线或具备CBTC属性,继续检查*/
|
||||
}
|
||||
}
|
||||
|
||||
if(CI_SUCCESS == chReval)
|
||||
{
|
||||
for (chAcIndex = 0U; chAcIndex < chAcConvertCnt; chAcIndex++)
|
||||
{
|
||||
chLinkLine = aam_PrepareACIsLinkingAxle(szAcConvertID[chAcIndex]);
|
||||
chAxisSecCbtcProperty = GetAxisSecCbtcProperty(szAcConvertID[chAcIndex]);
|
||||
|
||||
/*相邻区段具备联络线属性或非CBTC属性*/
|
||||
if ((CI_SUCCESS == chLinkLine) || (AXIS_SEC_CBTC_PROPERTY_NO == chAxisSecCbtcProperty))
|
||||
{
|
||||
chReval = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*相邻计轴区段不是联络线或具备CBTC属性,继续检查*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
return chReval;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取计轴区段分类数据
|
||||
* 参数说明:无
|
||||
* 返回值 :计轴区段分类数据
|
||||
* by cgh 20260316
|
||||
*/
|
||||
AxisSecClassDataStruct GetAxisSecClassData(void)
|
||||
{
|
||||
return gAxisSecClassData;
|
||||
}
|
||||
@@ -41,8 +41,7 @@
|
||||
#include "../LogRecord/LogRecord.h"
|
||||
#endif
|
||||
|
||||
#define SEC_NUM_PER_BYTE ((UINT8)4) /*每一个字节包含区段数目*/
|
||||
#define BIT_NUM_PER_SEC ((UINT8)(8 / SEC_NUM_PER_BYTE)) /*每一个区段所占比特位数目*/
|
||||
|
||||
|
||||
/*与联锁通信的区段信息*/
|
||||
typedef struct S_AxisDataStruct
|
||||
@@ -51,10 +50,8 @@ typedef struct S_AxisDataStruct
|
||||
UINT8 gdRelayState; /*股道继电器状态,落下:0x55,吸起:0xaa*/
|
||||
UINT8 showAndReplyInfo; /*bit0、bit1复零反馈,bit2、bit3预留,bit4到bit7表示信息(动态字段)*/
|
||||
UINT8 faultInfo; /*故障信息,bit0区段故障、bit1板卡故障、bit2区段上电、bit3通信故障、bit4负轴故障、bit5磁头故障、bit6预留、bit7轨旁上电(动态字段)*/
|
||||
|
||||
UINT8 PreResetRst; /*预复位结果*/
|
||||
UINT8 chPreResetBack; /*预复位命令反馈*/
|
||||
UINT8 chDirectResetRst; /*直接复位结果*/
|
||||
UINT8 chDirectResetBack; /*直接复位命令反馈*/
|
||||
UINT8 State; /*状态*/
|
||||
|
||||
} AxisCollDataStruct;
|
||||
@@ -70,20 +67,8 @@ typedef struct S_AxisToCiDataStruct
|
||||
AxisCollDataStruct axisDataStr[CI_INCLUDE_AXIS_MAX_SUM]; /*计轴区段信息结构体数组*/
|
||||
}AxisToCiDataStruct;
|
||||
|
||||
/*计轴区段分类数据结构体*/
|
||||
typedef struct S_AxisSecClassDataStruct
|
||||
{
|
||||
UINT8 chElementANum; /*元素A数量*/
|
||||
UINT16 szElementASecId[CI_INCLUDE_AXIS_MAX_SUM]; /*元素A数据*/
|
||||
UINT8 chElementBNum; /*元素B数量*/
|
||||
UINT16 szElementBSecId[CI_INCLUDE_AXIS_MAX_SUM]; /*元素B数据*/
|
||||
UINT8 chElementCNum; /*元素C数量*/
|
||||
UINT16 szElementCSecId[CI_INCLUDE_AXIS_MAX_SUM]; /*元素C数据*/
|
||||
} AxisSecClassDataStruct;
|
||||
|
||||
|
||||
extern AxisToCiDataStruct axisToCiDataStru[AXIS_TO_CI_SUM_MAX]; /*Axis到CI数据帧结构体*/
|
||||
extern AxisSecClassDataStruct gAxisSecClassData;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -141,42 +126,6 @@ UINT8 PackCiToAxisData( UINT8 axisSysId);
|
||||
*/
|
||||
UINT8 InitAxleToCiDataStru(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 计算物理区段在计轴系统中的下标
|
||||
* 参数说明: const UINT8 chAxleId, 计轴系统ID
|
||||
* const UINT16 wIndexInAxle, 计轴系统中物理区段的序号
|
||||
* UINT8* pAxleDataStrIdx, 计轴系统里物理区段ID下标
|
||||
* 返回值 : CI_ERROR: 获取失败
|
||||
* CI_SUCCESS: 获取成功
|
||||
* by cgh 20250415
|
||||
*/
|
||||
UINT8 GetInAxlePhySecIdx(const UINT8 chAxleId, const UINT16 wIndexInAxle, UINT8* pAxleDataStrIdx);
|
||||
|
||||
/*
|
||||
* 功能描述: 初始化计轴区段分类数据
|
||||
* 参数说明:
|
||||
* 返回值 : CI_ERROR: 初始化失败
|
||||
* CI_SUCCESS: 初始化成功
|
||||
* by cgh 20260316
|
||||
*/
|
||||
UINT8 InitAxisSecClassData(void);
|
||||
|
||||
/**
|
||||
* 函数功能:计轴区段相邻计轴区段类型检查
|
||||
* 输入参数:UINT16 wAxisSecId 计轴区段ID
|
||||
* 返回值:CI_SUCCESS 1 成功
|
||||
* CI_ERROR 0 失败
|
||||
* by cgh 20260309
|
||||
*/
|
||||
UINT8 AxisAdjacentSecTypeCheck(UINT16 wAxisSecId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取计轴区段分类数据
|
||||
* 参数说明:无
|
||||
* 返回值 :计轴区段分类数据
|
||||
* by cgh 20260316
|
||||
*/
|
||||
AxisSecClassDataStruct GetAxisSecClassData(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -58,8 +58,6 @@
|
||||
|
||||
#define MANUFAC_DEF_STATUS_PACKET ((UINT16)0x020c) /*厂商自定义信息类型*/
|
||||
|
||||
#define MANUFAC_DEF_INFO_VER_WL ((UINT8)0x01) /*厂商自定义信息版本(微联)*/
|
||||
|
||||
#define PSD_NUM_PER_BYTE ((UINT8)2) /*PSD字节常量*/
|
||||
#define BIT_NUM_PER_PSD ((UINT8)(8U / PSD_NUM_PER_BYTE)) /*PSD字节常量*/
|
||||
#define ESB_NUM_PER_BYTE ((UINT8)4) /*紧急停车按钮字节常量*/
|
||||
@@ -71,9 +69,6 @@
|
||||
#define TSR_NUM_PER_BYTE ((UINT8)4) /*TSR按钮字节常量*/
|
||||
#define BIT_NUM_PER_TSR ((UINT8)(8U / TSR_NUM_PER_BYTE)) /*TSR字节常量*/
|
||||
|
||||
#define DEV_NUM_PER_BYTE ((UINT8)4U) /*每一个字节包含的设备数目*/
|
||||
#define BIT_NUM_PER_DEV ((UINT8)(8U / DEV_NUM_PER_BYTE)) /*每一个设备所占比特位数目*/
|
||||
|
||||
|
||||
#define PACKET_LENGTH_LEN ((UINT8)2) /*数据总长度*/
|
||||
#define PACKET_TYPE_LEN ((UINT8)2) /*数据类型长度*/
|
||||
@@ -100,13 +95,13 @@
|
||||
#define PHYSEC_LOCKDIRECTION_OPPST_YES ((UINT8)0xAA) /*取反*/
|
||||
#define PHYSEC_LOCKDIRECTION_OPPST_DEFAULT ((UINT8)0xFF) /*默认值*/
|
||||
|
||||
#define CICI_VERSION ((UINT16)28) /*cici接口版本号,每次修改接口需要升级版本号——Last Modified On 2025.06.19*/
|
||||
#define CICI_VERSION ((UINT16)23) /*cici接口版本号,每次修改接口需要升级版本号——Last Modified On 2025.03.10*/
|
||||
#define CICI_BEGIN_TO_STATION_LEN ((UINT16)16) /*从开始到站场长度止 cgh增加4个字节CI-CI校验信息*/
|
||||
#define CICI_ONE_SWITCH_LEN ((UINT16)13) /*一个道岔数据长度*/
|
||||
#define CICI_ONE_PHYSEC_LEN ((UINT16)23U)/*一个物理区段数据长度*/
|
||||
#define CICI_ONE_LOGSEC_LEN ((UINT16)10)/*一个逻辑区段数据长度*/
|
||||
#define CICI_ONE_SIGNAL_LEN ((UINT16)11)/*一个信号机数据长度*/
|
||||
#define CICI_ONE_PSD_LEN ((UINT16)5)/*一个屏蔽门数据长度*/
|
||||
#define CICI_ONE_SIGNAL_LEN ((UINT16)9)/*一个信号机数据长度*/
|
||||
#define CICI_ONE_PSD_LEN ((UINT16)4)/*一个屏蔽门数据长度*/
|
||||
#define CICI_ONE_ESB_LEN ((UINT16)4)/*一个ESB数据长度*/
|
||||
#define CICI_ONE_ROUTE_LEN ((UINT16)12)/*一个进路数据长度*/
|
||||
#define CICI_ONE_PHYSEC_LOCKSTATE_LEN ((UINT16)10)/*一个物理区段锁闭状态数据长度*/
|
||||
@@ -238,18 +233,9 @@ extern "C" {
|
||||
UINT8 cSourceCiId; /*发送方联锁ID*/
|
||||
UINT8 cTargetCiId; /*接收方联锁ID*/
|
||||
UINT8 cPlatFormNum; /*区间雨雪站台数量*/
|
||||
AreaSnowInfoStruct szPlatFormInfo[CI_TO_CI_AREA_SNOW_SUM_MAX]; /*区间雨雪信息数组*/
|
||||
UINT32 dwPlatFormId[CI_TO_CI_AREA_SNOW_SUM_MAX]; /*区间雨雪站台互联互通ID数组*/
|
||||
} ToCiAreaSnowStruct;
|
||||
|
||||
/*相邻RC间的区间ITE切除信息*/
|
||||
typedef struct S_ToCiAreaIteCutStruct
|
||||
{
|
||||
UINT8 cSourceCiId; /*发送方联锁ID*/
|
||||
UINT8 cTargetCiId; /*接收方联锁ID*/
|
||||
UINT8 cAreaIteCutNum; /*区间ITE切除数量*/
|
||||
UINT16 wAreaIteCutId[CI_TO_CI_AREA_SNOW_SUM_MAX]; /*区间ID数组*/
|
||||
} ToCiAreaIteCutStruct;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern ToCiCommandDataStruct RecvCiCmdDataStru[RECVCI_CMD_DATA_STRU_SUM_MAX];
|
||||
extern UINT16 RecvCiCmdDataStruCurSum;
|
||||
@@ -266,8 +252,6 @@ extern "C" {
|
||||
extern UINT8 SendCiDrCmdSum;
|
||||
extern ToCiAreaSnowStruct szRecvCiAreaSnow[CI_COM_CI_MAX_NUM];
|
||||
extern ToCiAreaSnowStruct szSendCiAreaSnow[CI_COM_CI_MAX_NUM];
|
||||
extern ToCiAreaIteCutStruct szRecvCiAreaIteCut[CI_COM_CI_MAX_NUM];
|
||||
extern ToCiAreaIteCutStruct szSendCiAreaIteCut[CI_COM_CI_MAX_NUM];
|
||||
|
||||
/*
|
||||
* 功能描述: 解析CI数据
|
||||
@@ -737,23 +721,21 @@ UINT8 CiToCiEnvelopeCheck(const UINT8* dataBuf, UINT16* index);
|
||||
* 功能描述: 添加相邻联锁发送给本联锁的区间雨雪信息
|
||||
* 参数说明: UINT8 cSrcCiId 发送方CI
|
||||
* UINT8 cDstCiId 接收方CI
|
||||
* UINT16 wAreaSnowId 区间ID
|
||||
* UINT8 cAreaSnowLevel 区间湿轨级别
|
||||
* 返 回 值: 无
|
||||
* Modified By LQ 2025.5.28
|
||||
* UINT32 dwAreaSnowId 区间雨雪站台ID
|
||||
* 返回值 : 无
|
||||
* Created By LQ 2023.11.16
|
||||
*/
|
||||
void AddCiRecvAreaSnowInfo(UINT8 cSrcCiId, UINT8 cDstCiId, UINT16 wAreaSnowId, UINT8 cAreaSnowLevel);
|
||||
void AddCiRecvAreaSnowInfo(UINT8 cSrcCiId, UINT8 cDstCiId, UINT32 dwAreaSnowId);
|
||||
|
||||
/*
|
||||
* 功能描述: 添加本联锁发送给指定ID相邻联锁的区间雨雪信息
|
||||
* 参数说明: UINT8 cSrcCiId 发送方CI
|
||||
* UINT8 cDstCiId 接收方CI
|
||||
* UINT16 wAreaId 区间ID
|
||||
* UINT8 cAreaSnowLevel 区间湿轨等级
|
||||
* 返 回 值: 无
|
||||
* Modified By LQ 2025.05.28
|
||||
* UINT32 dwAreaSnowId 区间雨雪站台ID
|
||||
* 返回值 : 无
|
||||
* Created By LQ 2023.11.16
|
||||
*/
|
||||
void AddCiSendAreaSnowInfo(UINT8 cSrcCiId, UINT8 cDstCiId, UINT16 wAreaId, UINT8 cAreaSnowLevel);
|
||||
void AddCiSendAreaSnowInfo(UINT8 cSrcCiId, UINT8 cDstCiId, UINT32 dwAreaSnowId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取相邻联锁发送给本联锁的区间雨雪信息
|
||||
@@ -927,90 +909,6 @@ UINT8 PackHlhtPacketHeadPha1(UINT8 dstCiId, UINT8 * pInputData, UINT16 * pHeadDa
|
||||
*/
|
||||
UINT8 InitNeedOlapUsingOtherCiProSw(void);
|
||||
|
||||
/*
|
||||
* 功能描述:清除相邻联锁发送给本联锁的区间ITE切除信息
|
||||
* 参数说明:const UINT8 cSrcCiId 发送方CI
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.04.14
|
||||
*/
|
||||
void ClearCiRecvAreaIteCutInfo(const UINT8 cSrcCiId);
|
||||
|
||||
/*
|
||||
* 功能描述:清除本联锁发送给相邻联锁的区间ITE切除信息
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.04.14
|
||||
*/
|
||||
void ClearCiSendAreaIteCutInfo(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取相邻联锁发送给本联锁的区间ITE切除信息
|
||||
* 参数说明: 无
|
||||
* 返 回 值: 接收其它联锁的区间ITE切除信息
|
||||
* Created By LQ 2025.04.14
|
||||
*/
|
||||
ToCiAreaIteCutStruct* GetCiRecvAreaIteCutInfo(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本联锁发送给指定ID相邻联锁的区间ITE切除信息
|
||||
* 参数说明:const UINT8 cTargetCiId 目标联锁
|
||||
* 返 回 值:发送给其它联锁的区间ITE切除信息
|
||||
* Created By LQ 2023.11.16
|
||||
*/
|
||||
ToCiAreaIteCutStruct* GetCiSendAreaIteCutInfo(const UINT8 cTargetCiId);
|
||||
|
||||
/*
|
||||
* 功能描述:添加相邻联锁发送给本联锁的区间ITE切除信息
|
||||
* 参数说明:UINT8 cSrcCiId 发送方CI
|
||||
* UINT8 cDstCiId 接收方CI
|
||||
* UINT16 wAreaId 区间ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.04.14
|
||||
*/
|
||||
void AddCiRecvAreaIteCutInfo(UINT8 cSrcCiId, UINT8 cDstCiId, UINT16 wAreaId);
|
||||
|
||||
/*
|
||||
* 功能描述:添加本联锁发送给指定ID相邻联锁的区间ITE切除信息
|
||||
* 参数说明:UINT8 cSrcCiId 发送方CI
|
||||
* UINT8 cDstCiId 接收方CI
|
||||
* UINT16 wAreaId 区间ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.04.14
|
||||
*/
|
||||
void AddCiSendAreaIteCutInfo(UINT8 cSrcCiId, UINT8 cDstCiId, UINT16 wAreaId);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻CI发送的待解析的区间ITE切除数据
|
||||
* 参数说明:const UINT8* dataBuf 待解析的数据;
|
||||
* UINT16* index 索引
|
||||
* 返 回 值:0 校验失败
|
||||
* 1 校验成功
|
||||
* Created By LQ 2024.04.15
|
||||
*/
|
||||
UINT8 CheckCiToCiAreaIteCutData(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:组互联互通厂商自定义帧
|
||||
* 参数说明:UINT8 *pInputData 输入数据指针
|
||||
* UINT16 *pItemLen 该项数据在输入数据中的长度(出参)
|
||||
* const UINT8 dstCiId 目标联锁ID
|
||||
* 返 回 值:CI_SUCCESS 1 组包成功
|
||||
* CI_ERROR 0 组包失败
|
||||
* Created By LQ 2025.05.23
|
||||
*/
|
||||
UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCiId);
|
||||
|
||||
/*
|
||||
* 功能描述:解析互联互通厂商自定义帧
|
||||
* 参数说明:const UINT8 *pInputData 输入数据指针
|
||||
* UINT16 *pItemLen 该项数据在输入数据中的长度
|
||||
* const UINT8 srcCiId 源联锁ID
|
||||
* 返 回 值:CI_SUCCESS 1 解析成功
|
||||
* CI_ERROR 0 解析失败
|
||||
* Created By LQ 2025.05.26
|
||||
*/
|
||||
UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UINT8 srcCiId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,6 @@
|
||||
#include "../ParsePack/ParsePackOcData.h"
|
||||
#include "../DataManage/PlatDataManage.h"
|
||||
#include "../IO/DeviceRelayDataProcess.h"
|
||||
#include "SpeedLimitSecDataManage.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -225,18 +224,6 @@ UINT8 OverlapValidMaskCheck(const UINT16 rtOverlapLockedId);
|
||||
*/
|
||||
UINT8 FloodGateMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dataBuf);
|
||||
|
||||
/*
|
||||
* 功能描述: 限速区段相关码位处理
|
||||
* 参数说明: UINT8 MaskType, 码位类型
|
||||
* UINT16 DeviceId, 设备ID
|
||||
* UINT16 MaskId, 码位ID
|
||||
* UINT8* dataBuf, 数据缓冲区
|
||||
* 返回值 : 0: 码位处理失败
|
||||
* 1: 码位处理成功
|
||||
* BY hh 2026.03.17
|
||||
*/
|
||||
UINT8 SpeedLimitMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dataBuf);
|
||||
|
||||
/*
|
||||
* 功能描述: 组包发送CIM通信状态信息
|
||||
* 参数说明: void
|
||||
@@ -393,20 +380,6 @@ void ParasePlantIOData(UINT8* dataBuf);
|
||||
*/
|
||||
void PackCiToCimFlyProtectData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 组包发送CIM双系IO采集不一致信息
|
||||
* 参数说明: void
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackCiToCimCollDiffData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 组包发送CIM接触网信息
|
||||
* 参数说明: void
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackCiToCimOHLData(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
/*CI 和 CI*/
|
||||
#define RECVCI_CMD_DATA_STRU_SUM_MAX ((UINT16)100) /*CI接受其他联锁数据结构体数组最大值*/
|
||||
#define SENDCI_CMD_DATA_STRU_SUM_MAX ((UINT16)100) /*CI发送到其他联锁数据结构体数组最大值*/
|
||||
#define CI_TO_CI_DATA_LEN_MAX ((UINT16)5700) /*联锁到CI组包数据最大值*/
|
||||
#define CI_TO_CI_DATA_LEN_MAX ((UINT16)5000) /*联锁到CI组包数据最大值*/
|
||||
#define CI_TO_CI_AREA_SNOW_SUM_MAX ((UINT8)4) /*相邻RC间发送的区间雨雪数量最大值*/
|
||||
#define CI_TO_CI_LEAVE_LOGSEC_ROUTE_NUM ((UINT16)100) /*相邻RC间发送的离去逻辑区段检查数量最大值*/
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#define ZC_TO_CI_EB_MAX ((UINT16)254) /*ZC发送CI的区间紧急制动区段数量最大值*/
|
||||
|
||||
/*TIOC 和 TMC*/
|
||||
#define TIOC_TO_TMC_DATA_LEN_MAX ((UINT16)3000) /*RC到TMC组包数据最大值*/
|
||||
#define TIOC_TO_TMC_DATA_LEN_MAX ((UINT16)3000) /*联锁到ZC组包数据最大值*/
|
||||
|
||||
/*CI 和 LEU*/
|
||||
#define LEU_TO_CI_SUM_MAX ((UINT16)9) /*定义联锁可以通信的LEU最大值*/
|
||||
@@ -103,8 +103,6 @@
|
||||
#define CIM_INFO_SIGNAL_DRIVOUT ((UINT16)0x2010) /*发送CIM信号机驱动超时信息*/
|
||||
#define CIM_INFO_UNIT_ALARM ((UINT16)0x2011) /*发送CIM执行单元报警*/
|
||||
#define CIM_INFO_FLYPROTECT_ALARM ((UINT16)0x2012) /*发送CIM飞车宕机报警*/
|
||||
#define CIM_INFO_IO_COLL_DIFF_ALARM ((UINT16)0x2013) /*发送CIM IO双系采集不一致报警*/
|
||||
#define CIM_INFO_OHL_POWER_ALARM ((UINT16)0x2014) /*发送CIM 接触网供电状态报警*/
|
||||
|
||||
#define CI_AND_OTHER_TRANSMIT_GOOD ((UINT8)0x55) /*CI与其他系统双网通信正常*/
|
||||
#define CI_AND_OTHER_TRANSMIT_LINK ((UINT8)0x5A) /*CI与其他系统单网通信正常*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,11 +10,11 @@
|
||||
#define MSG_TYPE_WLB_CONFIRM_FIRST ((UINT8)113u) /*全线列车紧急制动首次确认*/
|
||||
#define MSG_TYPE_WLB_SET_SECOND ((UINT8)114u) /*全线列车紧急制动设置二次*/
|
||||
#define MSG_TYPE_WLB_CONFIRM_SECOND ((UINT8)115u) /*全线列车紧急制动二次确认*/
|
||||
#define MSG_TYPE_DA_REPORT ((UINT8)116u) /*列车状态异常防护区汇报信息*/
|
||||
#define MSG_TYPE_DA_CANCLE_FIRST ((UINT8)117u) /*列车状态异常防护区取消首次消息*/
|
||||
#define MSG_TYPE_DA_CONFIRM_FIRST ((UINT8)118u) /*列车状态异常防护区首次确认消息*/
|
||||
#define MSG_TYPE_DA_CANCLE_SECOND ((UINT8)119u) /*列车状态异常防护区取消再次消息*/
|
||||
#define MSG_TYPE_DA_CONFIRM_SECOND ((UINT8)120u) /*列车状态异常防护区再次确认消息*/
|
||||
#define MSG_TYPE_DA_REPORT ((UINT8)116u) /*脱轨防护区汇报信息*/
|
||||
#define MSG_TYPE_DA_CANCLE_FIRST ((UINT8)117u) /*脱轨防护区取消首次消息*/
|
||||
#define MSG_TYPE_DA_CONFIRM_FIRST ((UINT8)118u) /*脱轨防护区首次确认消息*/
|
||||
#define MSG_TYPE_DA_CANCLE_SECOND ((UINT8)119u) /*脱轨防护区取消再次消息*/
|
||||
#define MSG_TYPE_DA_CONFIRM_SECOND ((UINT8)120u) /*脱轨防护区再次确认消息*/
|
||||
#define MSG_TYPE_REPORT ((UINT8)121u) /*汇报远程筛选列车信息*/
|
||||
#define MSG_TYPE_REQUEST_FIRST ((UINT8)122u) /*首次消息*/
|
||||
#define MSG_TYPE_CONFIRM_FIRST ((UINT8)123u) /*首次确认*/
|
||||
@@ -27,53 +27,28 @@
|
||||
#define MSG_TYPE_EA_CONFIRM_SECOND ((UINT8)130u) /*区间疏散再次确认消息*/
|
||||
#define MSG_TYPE_TRIAN_INFO_REPORT ((UINT8)131u) /*TIOC给ATS发送列车信息*/
|
||||
#define MSG_TYPE_TRAIN_FLY_INFO ((UINT8)132u) /*TIOC给ATS发送飞车宕机报警信息*/
|
||||
#define MSG_TYPE_ALLSECFLOCK_CMD_FIRST ((UINT8)137u) /*全线区段封锁设置一次*/
|
||||
#define MSG_TYPE_ALLSECFLOCK_CONFIRM_FIRST ((UINT8)138u) /*全线区段封锁首次确认*/
|
||||
#define MSG_TYPE_ALLSECFLOCK_CMD_SECOND ((UINT8)139u) /*全线区段封锁设置二次*/
|
||||
#define MSG_TYPE_ALLSECFLOCK_CONFIRM_SECOND ((UINT8)140u) /*全线区段封锁二次确认*/
|
||||
#define MSG_TYPE_CESBFLOCK_CMD_FIRST ((UINT8)141u) /*全线CESB封锁取消一次*/
|
||||
#define MSG_TYPE_CESBFLOCK_CONFIRM_FIRST ((UINT8)142u) /*全线CESB封锁取消首次确认*/
|
||||
#define MSG_TYPE_CESBFLOCK_CMD_SECOND ((UINT8)143u) /*全线CESB封锁取消二次*/
|
||||
#define MSG_TYPE_CESBFLOCK_CONFIRM_SECOND ((UINT8)144u) /*全线CESB封锁取消二次确认*/
|
||||
|
||||
#define MSG_JIEFENGJIESUO_CMD_FIRST ((UINT8)145u) /*全线解封解锁一次*/
|
||||
#define MSG_JIEFENGJIESUO_BACK_FIRST ((UINT8)146u) /*全线解封解锁首次确认*/
|
||||
#define MSG_JIEFENGJIESUO_CMD_SECOND ((UINT8)147u) /*全线解封解锁二次*/
|
||||
#define MSG_JIEFENGJIESUO_BACK_SECOND ((UINT8)148u) /*全线解封解锁二次确认*/
|
||||
|
||||
#define MSG_FORCE_SWITCT_CMD_FIRST ((UINT8)149u) /*道岔强转一次*/
|
||||
#define MSG_FORCE_SWITCT_BACK_FIRST ((UINT8)150u) /*道岔强转首次确认*/
|
||||
#define MSG_FORCE_SWITCT_CMD_SECOND ((UINT8)151u) /*道岔强转二次*/
|
||||
#define MSG_FORCE_SWITCT_BACK_SECOND ((UINT8)152u) /*道岔强转二次确认*/
|
||||
|
||||
#define MSG_PHY_PRE_RESET_CMD_FIRST ((UINT8)153u) /*计轴预复位一次*/
|
||||
#define MSG_PHY_PRE_RESET_BACK_FIRST ((UINT8)154u) /*计轴预复位首次确认*/
|
||||
#define MSG_PHY_PRE_RESET_CMD_SECOND ((UINT8)155u) /*计轴预复位二次*/
|
||||
#define MSG_PHY_PRE_RESET_BACK_SECOND ((UINT8)156u) /*计轴预复位二次确认*/
|
||||
|
||||
#define CONFIRM_UNKNOWN ((UINT8)0u) /*未知*/
|
||||
#define CONFIRM_FIRST_SUCCESS ((UINT8)1u) /*首次确认成功*/
|
||||
#define CONFIRM_FIRST_REPEAT ((UINT8)2u) /*重复确认*/
|
||||
#define CONFIRM_FIRST_TRAINID ((UINT8)3u) /*刷新列车*/
|
||||
#define CONFIRM_FIRST_LGCID ((UINT8)4u) /*确认逻辑区段*/
|
||||
#define CONFIRM_FIRST_OTHER_DEV_OP ((UINT8)14U) /*其它操作站正在操作*/
|
||||
#define CONFIRM_SECOND_SUCCESS ((UINT8)1u) /*二次确认成功*/
|
||||
#define CONFIRM_SECOND_CRC ((UINT8)2u) /*信息帧校验失败*/
|
||||
#define CONFIRM_SECOND_CRC ((UINT8)2u) /*CRC校验失败*/
|
||||
#define CONFIRM_SECOND_TRAINID ((UINT8)3u) /*刷新列车*/
|
||||
#define CONFIRM_SECOND_LGCID ((UINT8)4u) /*确认逻辑区段*/
|
||||
#define CONFIRM_SECOND_FIRST ((UINT8)5u) /*首次筛选确认失败*/
|
||||
#define CONFIRM_SECOND_DIFF ((UINT8)6u) /*二次消息与一次不一致*/
|
||||
|
||||
#define CONFIRM_FIRST_NOT_EA ((UINT8)7u) /*列车未进入疏散*/
|
||||
#define CONFIRM_TRAIN_IN_EA ((UINT8)9u) /*列车正在疏散*/
|
||||
#define CONFIRM_FIRST_EING ((UINT8)9u) /*列车正在疏散*/
|
||||
|
||||
#define CONFIRM_EA_SECOND_CRC ((UINT8)3u) /*信息帧校验失败*/
|
||||
#define CONFIRM_EA_SECOND_CRC ((UINT8)3u) /*CRC失败*/
|
||||
#define CONFIRM_EA_SECOND_FIRST ((UINT8)4u) /*未执行一次命令*/
|
||||
#define CONFIRM_SECOND_NOT_EA ((UINT8)5u) /*列车未进入疏散*/
|
||||
#define CONFIRM_SECOND_EA_TRAINID ((UINT8)8u) /*与首次列车编号不一致*/
|
||||
#define CONFIRM_SECOND_TIOC ((UINT8)10u) /*相邻控区通信中断*/
|
||||
#define CONFIRM_EALINE_DIFFERENT ((UINT8)11U) /*取消防护区域上下行属性与已建立防护区域上下行属性不一致*/
|
||||
#define CONFIRM_EA_SND_LINE_DIFF ((UINT8)11U) /*取消区间疏散一二次命令的线路上下行属性不一致*/
|
||||
|
||||
#define MSG_TYPE_WLB_SET ((UINT8)0xaau) /*全线列车紧急制动设置*/
|
||||
#define MSG_TYPE_WLB_CANCEL ((UINT8)0x55u) /*全线列车紧急制动取消*/
|
||||
@@ -81,9 +56,6 @@
|
||||
#define WLB_TYPE_RC ((UINT8)2u) /*全线列车紧急制动*/
|
||||
#define WLB_TYPE_PHYSEC ((UINT8)3u) /*物理区段紧急制动*/
|
||||
|
||||
#define SEC_ALLFLOCK_CMD_SET ((UINT8)0xaau) /* 全线封锁设置命令 */
|
||||
#define SEC_ALLFLOCK_CMD_CANCLE ((UINT8)0x55u) /* 全线封锁取消命令 */
|
||||
|
||||
#define CONFIRM_WLB_FST_UNKNOWN ((UINT8)0u) /*首次回复未知*/
|
||||
#define CONFIRM_WLB_FST_SUCCESS ((UINT8)1u) /*首次回复成功*/
|
||||
#define CONFIRM_WLB_FST_REPEAT ((UINT8)2u) /*首次回复重复设置*/
|
||||
@@ -91,45 +63,27 @@
|
||||
|
||||
#define CONFIRM_WLB_SND_UNKNOWN ((UINT8)0u) /*二次回复未知*/
|
||||
#define CONFIRM_WLB_SND_SUCCESS ((UINT8)1u) /*二次回复成功*/
|
||||
#define CONFIRM_WLB_SND_CRC ((UINT8)3u) /*信息帧校验失败*/
|
||||
#define CONFIRM_WLB_SND_CRC ((UINT8)3u) /*二次回复CRC失败*/
|
||||
#define CONFIRM_WLB_SND_FIRST ((UINT8)4u) /*二次回复未执行首次确认*/
|
||||
#define CONFIRM_WLB_SND_INFO_DIFF ((UINT8)8u) /*一二次命令信息不一致*/
|
||||
|
||||
#define CONFIRM_DA_FST_UNKNOWN ((UINT8)0u) /*取消列车状态异常防护区域首次回复未知*/
|
||||
#define CONFIRM_DA_FST_SUCCESS ((UINT8)1u) /*取消列车状态异常防护区域首次回复成功*/
|
||||
#define CONFIRM_DA_FST_UNSET ((UINT8)7u) /*取消列车状态异常防护区域首次回复未设置*/
|
||||
#define CONFIRM_DA_FST_DERAIL ((UINT8)9u) /*取消列车状态异常防护区域首次回复当前列车处于脱轨状态*/
|
||||
#define CONFIRM_DA_FST_UNKNOWN ((UINT8)0u) /*取消脱轨防护区首次回复未知*/
|
||||
#define CONFIRM_DA_FST_SUCCESS ((UINT8)1u) /*取消脱轨防护区首次回复成功*/
|
||||
#define CONFIRM_DA_FST_UNSET ((UINT8)7u) /*取消脱轨防护区首次回复未设置*/
|
||||
#define CONFIRM_DA_FST_DERAIL ((UINT8)9u) /*取消脱轨防护区首次回复当前列车处于脱轨状态*/
|
||||
|
||||
#define CONFIRM_DA_SND_UNKNOWN ((UINT8)0u) /*取消列车状态异常防护区域再次回复未知*/
|
||||
#define CONFIRM_DA_SND_SUCCESS ((UINT8)1u) /*取消列车状态异常防护区域再次回复成功*/
|
||||
#define CONFIRM_DA_SND_CRC ((UINT8)3u) /*取消列车状态异常防护区域再次回复信息帧校验失败*/
|
||||
#define CONFIRM_DA_SND_FIRST ((UINT8)4u) /*取消列车状态异常防护区域再次回复未执行首次*/
|
||||
#define CONFIRM_DA_SND_DIFF ((UINT8)8u) /*取消列车状态异常防护区域再次回复列车ID与一次不一致*/
|
||||
#define CONFIRM_DA_SND_DERAIL ((UINT8)9u) /*取消列车状态异常防护区域再次回复列车当前处于脱轨状态*/
|
||||
#define CONFIRM_DA_SND_LINE_DIFF ((UINT8)11U) /*取消列车状态异常防护区域一二次命令线路属性不一致*/
|
||||
|
||||
#define CONFIRM_ALLFLOCK_FST_SUCCESS ((UINT8)1u) /*全线封锁首次回复成功*/
|
||||
#define CONFIRM_ALLFLOCK_FST_REPEAT ((UINT8)2u) /*全线封锁首次回复重复设置*/
|
||||
#define CONFIRM_ALLFLOCK_FST_UNSET ((UINT8)5u) /*全线封锁首次回复未设置*/
|
||||
|
||||
#define CONFIRM_ALLFLOCK_SND_UNKNOWN ((UINT8)0u) /*全线封锁二次回复未知*/
|
||||
#define CONFIRM_ALLFLOCK_SND_SUCCESS ((UINT8)1u) /*全线封锁二次回复成功*/
|
||||
#define CONFIRM_ALLFLOCK_SND_CHECKFAIL ((UINT8)3u) /*全线封锁信息帧校验失败*/
|
||||
#define CONFIRM_ALLFLOCK_SND_FIRST ((UINT8)4u) /*全线封锁二次回复未执行首次确认*/
|
||||
|
||||
#define CONFIRM_CANCLE_CESB_FST_SUCCESS ((UINT8)1u) /*取消CESB首次回复成功*/
|
||||
#define CONFIRM_CANCLE_CESB_FST_UNSET ((UINT8)5u) /*取消CESB首次回复未设置*/
|
||||
|
||||
#define CONFIRM_CANCLE_CESB_SND_UNKNOWN ((UINT8)0u) /*取消CESB二次回复未知*/
|
||||
#define CONFIRM_CANCLE_CESB_SND_SUCCESS ((UINT8)1u) /*取消CESB二次回复成功*/
|
||||
#define CONFIRM_CANCLE_CESB_SND_CHECKFAIL ((UINT8)3u) /*取消CESB信息帧校验失败*/
|
||||
#define CONFIRM_CANCLE_CESB_SND_FIRST ((UINT8)4u) /*取消CESB二次回复未执行首次确认*/
|
||||
#define CONFIRM_CANCLE_CESB_RELAY_ACTIVE ((UINT8)9u) /*取消CESB回复CESB激活*/
|
||||
#define CONFIRM_DA_SND_UNKNOWN ((UINT8)0u) /*取消脱轨防护区再次回复未知*/
|
||||
#define CONFIRM_DA_SND_SUCCESS ((UINT8)1u) /*取消脱轨防护区再次回复成功*/
|
||||
#define CONFIRM_DA_SND_CRC ((UINT8)3u) /*取消脱轨防护区再次回复CRC失败*/
|
||||
#define CONFIRM_DA_SND_FIRST ((UINT8)4u) /*取消脱轨防护区再次回复未执行首次*/
|
||||
#define CONFIRM_DA_SND_DIFF ((UINT8)8u) /*取消脱轨防护区再次回复列车ID与一次不一致*/
|
||||
#define CONFIRM_DA_SND_DERAIL ((UINT8)9u) /*取消脱轨防护区再次回复列车当前处于脱轨状态*/
|
||||
|
||||
#define DA_AREA_UP ((UINT8)0x55u) /* 上行区域 */
|
||||
#define DA_AREA_DOWN ((UINT8)0xaau) /* 下行区域 */
|
||||
#define DA_AREA_ALL ((UINT8)0xffu) /* 上行和下行区域 */
|
||||
|
||||
#define ATS_DA_CMD_TYPE_CANCEL ((UINT8)0x55u) /* ATS取消脱轨防护区命令类型 */
|
||||
|
||||
#define CONFIRM_TIMEOUT_CC ((UINT16)400u) /*首次消息等待二次消息超时时间*/
|
||||
|
||||
#define GATE_WAY_PRTCL_VER ((UINT32)101u) /*协议版本号*/
|
||||
@@ -142,25 +96,6 @@
|
||||
#define EA_AREA_UP ((UINT8)0x55u) /* 上行区域 */
|
||||
#define EA_AREA_DOWN ((UINT8)0xaau) /* 下行区域 */
|
||||
#define EA_AREA_ALL ((UINT8)0xffu) /* 上行和下行区域 */
|
||||
|
||||
|
||||
#define CONFIRM_FST_SUCCESS ((UINT8)1u) /*首次回复成功*/
|
||||
|
||||
|
||||
#define CONFIRM_SND_UNKNOWN ((UINT8)0u) /*二次回复未知,一次二次不同*/
|
||||
#define CONFIRM_SND_SUCCESS ((UINT8)1u) /*二次回复成功*/
|
||||
#define CONFIRM_SND_CHECKFAIL ((UINT8)3u) /*CRC校验失败*/
|
||||
#define CONFIRM_SND_NOTFIRST ((UINT8)4u) /*二次回复未执行首次确认*/
|
||||
|
||||
#define CONFIRM_ID_ILL ((UINT8)5u) /*ID非法*/
|
||||
#define CONFIRM_PHY_PRERESET_ID_DIF ((UINT8)5u)/*一次二次命令ID不一致*/
|
||||
#define CONFIRM_FORCE_SW_ID_DIF ((UINT8)7u) /*一次二次命令ID不一致*/
|
||||
#define CONFIRM_FORCE_SW_CMD_DIF ((UINT8)8u) /*一次二次强转位置不一致*/
|
||||
#define CONFIRM_CMD_INVALID ((UINT8)15u) /*命令无效*/
|
||||
|
||||
#define SWITCH_FORCE_DINGWEI ((UINT8)0x55u) /* 强转定位 */
|
||||
#define SWITCH_FORCE_FANWEI ((UINT8)0xaau) /* 强转反位 */
|
||||
|
||||
/* 远程筛选列车信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
@@ -175,24 +110,23 @@ typedef struct
|
||||
UINT32 dwCycle; /*首次消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT8 chTrainNum; /*列车数量*/
|
||||
AtsScreenTrainInfoStru strTrainInfo[TRAIN_SUM_MAX]; /*列车信息*/
|
||||
}AtsScreenMsgFstStru;
|
||||
|
||||
/* 确认信息结构体 */
|
||||
/* ATS远程筛选确认结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息有效性*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chIndex; /*操作站编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT8 chOpStatus; /*操作结果*/
|
||||
UINT32 dwCrc32; /*CRC*/
|
||||
UINT8 chDaType; /*防护分区类型*/
|
||||
}AtsMsgCfmStru;
|
||||
|
||||
/* ATS远程筛选二次消息结构体 */
|
||||
@@ -202,7 +136,7 @@ typedef struct
|
||||
UINT32 dwCycle; /*首次消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT8 chTrainNum; /*列车数量*/
|
||||
@@ -217,7 +151,7 @@ typedef struct
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwEaTrainId; /*列车互联互通编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
@@ -233,7 +167,7 @@ typedef struct
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT8 chType; /*设置/取消*/
|
||||
@@ -243,91 +177,22 @@ typedef struct
|
||||
UINT16 wBrakeIndex; /*制动ID*/
|
||||
}AtsWlbMsgStru;
|
||||
|
||||
/* ATS取消列车状态异常防护区域信息结构体 */
|
||||
/* ATS取消脱轨防护区信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息接收状态*/
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwDaTrainId; /*列车互联互通编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT8 chType; /*类型*/
|
||||
UINT8 chType; /*建立/取消*/
|
||||
UINT8 chLine; /*线路*/
|
||||
UINT32 dwCrc32; /*CRC值*/
|
||||
}AtsDaMsgStru;
|
||||
|
||||
/* ATS设置/取消全线区段封锁信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息接收状态*/
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT8 chType; /*设置/取消*/
|
||||
UINT32 dwCrc32; /*CRC值*/
|
||||
}AtsAllSecFlockMsgStru;
|
||||
|
||||
/* ATS取消全线CESB封锁信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息接收状态*/
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT32 dwCrc32; /*CRC值*/
|
||||
}AtsCESBCancleMsgStru;
|
||||
|
||||
/* ATS解封解锁信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息接收状态*/
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT32 dwCrc32; /*CRC值*/
|
||||
}AtsJieFengJieSuoMsgStru;
|
||||
|
||||
/* ATS道岔强转信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息接收状态*/
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT8 chCmdType; /*命令类型*/
|
||||
UINT32 dwSiwtchId; /*设备互联互通ID*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT32 dwCrc32; /*CRC值*/
|
||||
}AtsSwitchForceMsgStru;
|
||||
|
||||
/* ATS计轴预复位信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息接收状态*/
|
||||
UINT32 dwCycle; /*消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号*/
|
||||
UINT8 chStation; /*车站编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwPhySecHlhtId; /*设备ID*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT32 dwCrc32; /*CRC值*/
|
||||
}AtsPhyPreResetMsgStru;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern AtsScreenMsgFstStru g_strAtsMsgFst;
|
||||
extern AtsMsgCfmStru g_strAtsCfmFst;
|
||||
@@ -349,41 +214,6 @@ extern AtsMsgCfmStru g_strAtsDaCfmFst;
|
||||
extern AtsDaMsgStru g_strAtsDaMsgSnd;
|
||||
extern AtsMsgCfmStru g_strAtsDaCfmSnd;
|
||||
|
||||
extern AtsMsgCfmStru g_strSndAtsCfmFst; /*第二个ATS的远程筛选首次确认*/
|
||||
extern AtsMsgCfmStru g_strSndAtsEaCfmFst; /*第二个ATS的取消区间疏散首次确认*/
|
||||
extern AtsMsgCfmStru g_strSndAtsWlbCfmFst; /*第二个ATS的设置/取消全线列车紧急制动首次确认*/
|
||||
extern AtsMsgCfmStru g_strSndAtsDaCfmFst; /*第二个ATS的取消脱轨防护区首次确认*/
|
||||
extern AtsMsgCfmStru g_strSndAtsAllFlockCfmFst; /*第二个ATS的设置/取消全线区段封锁首次确认*/
|
||||
|
||||
extern AtsAllSecFlockMsgStru g_strAtsAllFlockMsgFst; /*设置/取消全线区段封锁首次消息*/
|
||||
extern AtsMsgCfmStru g_strAtsAllFlockCfmFst; /*设置/取消全线区段封锁首次确认*/
|
||||
extern AtsAllSecFlockMsgStru g_strAtsAllFlockMsgSnd; /*取消全线区段封锁再次消息*/
|
||||
extern AtsMsgCfmStru g_strAtsAllFlockCfmSnd; /*取消全线区段封锁再次确认*/
|
||||
|
||||
extern AtsCESBCancleMsgStru g_strAtsCesbMsgFst; /*取消全线CESB封锁首次消息*/
|
||||
extern AtsMsgCfmStru g_strAtsCesbCfmFst ; /*取消全线CESB封锁首次确认*/
|
||||
extern AtsCESBCancleMsgStru g_strAtsCesbMsgSnd ; /*取消全线CESB封锁再次消息*/
|
||||
extern AtsMsgCfmStru g_strAtsCesbCfmSnd ; /*取消全线CESB封锁再次确认*/
|
||||
extern AtsMsgCfmStru g_strSndAtsCesbCfmFst; /*第二个ATS的取消CESB封锁首次确认*/
|
||||
|
||||
|
||||
extern AtsJieFengJieSuoMsgStru g_JieFengJieSuoMsgFst ; /*全站解封解锁首次消息*/
|
||||
extern AtsMsgCfmStru g_strAtsJieFengJieSuoCfmFst ; /*全站解封解锁首次确认*/
|
||||
extern AtsJieFengJieSuoMsgStru g_JieFengJieSuoMsgSnd; /*全站解封解锁再次消息*/
|
||||
extern AtsMsgCfmStru g_strAtsJieFengJieSuoCfmSnd; /*全站解封解锁再次确认*/
|
||||
extern AtsMsgCfmStru g_SndAtsJieFengJieSuoCfmFst; /*第二个ATS的解封解锁首次确认*/
|
||||
|
||||
extern AtsSwitchForceMsgStru g_SwitchForceMsgFst; /*道岔强转首次消息*/
|
||||
extern AtsMsgCfmStru g_SwitchForceCfmFst; /*道岔强转首次确认*/
|
||||
extern AtsSwitchForceMsgStru g_SwitchForceMsgSnd; /*道岔强转再次消息*/
|
||||
extern AtsMsgCfmStru g_SwitchForceCfmSnd; /*道岔强转再次确认*/
|
||||
extern AtsMsgCfmStru g_SndAtsSwitchForceCfmFst; /*第二个ATS的道岔强转首次确认*/
|
||||
|
||||
extern AtsPhyPreResetMsgStru g_PhyPreResetMsgFst; /*预复位首次消息*/
|
||||
extern AtsMsgCfmStru g_PhyPreResetCfmFst; /*预复位首次确认*/
|
||||
extern AtsPhyPreResetMsgStru g_PhyPreResetMsgSnd; /*预复位再次消息*/
|
||||
extern AtsMsgCfmStru g_PhyPreResetCfmSnd; /*预复位再次确认*/
|
||||
extern AtsMsgCfmStru g_SndAtsPhyPreResetCfmFst; /*第二个ATS的预复位首次确认*/
|
||||
|
||||
/**
|
||||
* @brief 获取远程筛选ATS首次消息
|
||||
@@ -528,42 +358,42 @@ void ClearAtsWlbMsgFirst(void);
|
||||
void ClearAtsWlbMsgSecond(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消列车状态异常防护区域首次消息
|
||||
* @brief 获取ATS取消脱轨防护区首次消息
|
||||
* @param 无
|
||||
* @return ATS取消列车状态异常防护区域首次消息
|
||||
* @return ATS取消脱轨防护区首次消息
|
||||
*/
|
||||
AtsDaMsgStru* GetAtsDaMsgFst(void);
|
||||
AtsDaMsgStru * GetAtsDaMsgFst(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消列车状态异常防护区域二次消息
|
||||
* @brief 获取ATS取消脱轨防护区二次消息
|
||||
* @param 无
|
||||
* @return ATS取消列车状态异常防护区域二次消息
|
||||
* @return ATS取消脱轨防护区二次消息
|
||||
*/
|
||||
AtsDaMsgStru* GetAtsDaMsgSnd(void);
|
||||
AtsDaMsgStru * GetAtsDaMsgSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消列车状态异常防护区域首次确认
|
||||
* @brief 获取ATS取消脱轨防护区首次确认
|
||||
* @param 无
|
||||
* @return ATS取消列车状态异常防护区域首次确认
|
||||
* @return ATS取消脱轨防护区首次确认
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsDaCfmFst(void);
|
||||
AtsMsgCfmStru * GetAtsDaCfmFst(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消列车状态异常防护区域二次确认
|
||||
* @brief 获取ATS取消脱轨防护区二次确认
|
||||
* @param 无
|
||||
* @return ATS取消列车状态异常防护区域二次确认
|
||||
* @return ATS取消脱轨防护区二次确认
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsDaCfmSnd(void);
|
||||
AtsMsgCfmStru * GetAtsDaCfmSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 清除1次ATS取消列车状态异常防护区域信息
|
||||
* @brief 清除1次ATS取消脱轨防护区信息
|
||||
* @param void
|
||||
* @return void
|
||||
*/
|
||||
void ClearAtsDaMsgFirst(void);
|
||||
|
||||
/**
|
||||
* @brief 清除2次ATS取消列车状态异常防护区域信息
|
||||
* @brief 清除2次ATS取消脱轨防护区信息
|
||||
* @param void
|
||||
* @return void
|
||||
*/
|
||||
@@ -578,297 +408,4 @@ void ClearAtsDaMsgSecond(void);
|
||||
*/
|
||||
UINT8 WlbUrgentIdCheck(const UINT8 cDeviceType, const UINT16 wDeviceId);
|
||||
|
||||
/**
|
||||
* @brief 清除第二个ATS的远程筛选一次确认信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* @note Created By LQ 2025.05.29
|
||||
*/
|
||||
void ClearSndAtsScreenFstCfmMsg(void);
|
||||
|
||||
/**
|
||||
* @brief 清除第二个ATS的取消区间疏散一次确认信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* @note Created By LQ 2025.05.29
|
||||
*/
|
||||
void ClearSndAtsEaFstCfmMsg(void);
|
||||
|
||||
/**
|
||||
* @brief 清除第二个ATS的全线紧急制动一次确认信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* @note Created By LQ 2025.05.29
|
||||
*/
|
||||
void ClearSndAtsWlbFstCfmMsg(void);
|
||||
|
||||
/**
|
||||
* @brief 清除第二个ATS的取消脱轨防护一次确认信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* @note Created By LQ 2025.05.29
|
||||
*/
|
||||
void ClearSndAtsDaFstCfmMsg(void);
|
||||
|
||||
/**
|
||||
* @brief 清除1次ATS设置/取消全线区段封锁信息
|
||||
* @param void
|
||||
* @return void
|
||||
* @note Created By fan 2025.12.13
|
||||
*/
|
||||
void ClearAtsAllFlockMsgFirst(void);
|
||||
|
||||
/**
|
||||
* @brief 清除2次ATS取消全线区段封锁信息
|
||||
* @param void
|
||||
* @return void
|
||||
* @note Created By fan 2025.12.13
|
||||
*/
|
||||
void ClearAtsAllFlockMsgSecond(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS设置/取消全线区段封锁首次消息
|
||||
* @param 无
|
||||
* @return ATS设置/取消区间疏散首次消息
|
||||
* Created By fan 2025.12.13
|
||||
*/
|
||||
AtsAllSecFlockMsgStru * GetAtsFlockMsgFst(void);
|
||||
/**
|
||||
* @brief 获取ATS取消全线区段封锁二次消息
|
||||
* @param 无
|
||||
* @return ATS取消全线列车紧急制动二次消息
|
||||
* Created By fan 2025.12.13
|
||||
*/
|
||||
AtsAllSecFlockMsgStru * GetAtsFlockMsgSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS设置/取消全线区段封锁首次确认
|
||||
* @param 无
|
||||
* @return ATS设置/取消全线区段封锁首次确认
|
||||
* Created By fan 2025.12.13
|
||||
*/
|
||||
AtsMsgCfmStru * GetAtsFlockCfmFst(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消全线区段封锁二次确认
|
||||
* @param 无
|
||||
* @return ATS取消全线区段封锁二次确认
|
||||
* Created By fan 2025.12.13
|
||||
*/
|
||||
AtsMsgCfmStru * GetAtsFlockCfmSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 清除第二个ATS的全线区段封锁一次信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* @note Created By fan 2025.12.15
|
||||
*/
|
||||
void ClearSndAtsAllFlockFstCfmMsg(void);
|
||||
|
||||
|
||||
/**
|
||||
* @brief 清除1次ATS取消全线CESB封锁信息
|
||||
* @param void
|
||||
* @return void
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void ClearAtsCesbMsgFirst(void);
|
||||
|
||||
/**
|
||||
* @brief 清除2次ATS取消全线CESB封锁信息
|
||||
* @param void
|
||||
* @return void
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void ClearAtsCesbMsgSecond(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消全线CESB封锁首次消息
|
||||
* @param 无
|
||||
* @return ATS设置/取消区间疏散首次消息
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
AtsCESBCancleMsgStru * GetAtsCesbMsgFst(void);
|
||||
/**
|
||||
* @brief 获取ATS取消全线CESB封锁二次消息
|
||||
* @param 无
|
||||
* @return ATS取消全线CESB封锁二次消息
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
AtsCESBCancleMsgStru * GetAtsCesbMsgSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消全线CESB封锁首次确认
|
||||
* @param 无
|
||||
* @return ATS设置/取消全线CESB封锁首次确认
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
AtsMsgCfmStru * GetAtsCesbCfmFst(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS取消全线CESB封锁二次确认
|
||||
* @param 无
|
||||
* @return ATS取消全线CESB封锁二次确认
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
AtsMsgCfmStru * GetAtsCesbCfmSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 清除第二个ATS的全线CESB封锁一次信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* Created By fan 2026.02.04
|
||||
*/
|
||||
void ClearSndAtsCesbFstCfmMsg(void);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS全站解封解锁首次消息
|
||||
* @param 无
|
||||
* @return ATS全站解封解锁首次消息
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsJieFengJieSuoMsgStru* GetAtsJieFengJieSuoMsgFst(void);
|
||||
/**
|
||||
* @brief 获取ATS全站解封解锁二次消息
|
||||
* @param 无
|
||||
* @return ATS全站解封解锁二次消息
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsJieFengJieSuoMsgStru* GetAtsJieFengJieSuoMsgSnd(void);
|
||||
/**
|
||||
* @brief 获取ATS全站解封解锁首次确认
|
||||
* @param 无
|
||||
* @return ATS全站解封解锁首次确认
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsJieFengJieSuoCfmFst(void);
|
||||
/**
|
||||
* @brief 获取ATS全站解封解锁二次确认
|
||||
* @param 无
|
||||
* @return ATS全站解封解锁二次确认
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsJieFengJieSuoCfmSnd(void);
|
||||
/**
|
||||
* @brief 清除ATS全站解封解锁首次消息
|
||||
* @param void
|
||||
* @return void
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearAtsJieFengJieSuoMsgFirst(void);
|
||||
/**
|
||||
* @brief 清除ATS全站解封解锁二次消息
|
||||
* @param void
|
||||
* @return void
|
||||
* *Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearAtsJieFengJieSuoMsgSecond(void);
|
||||
/**
|
||||
* @brief 获取ATS道岔强转首次消息
|
||||
* @param 无
|
||||
* @return ATS道岔强转首次消息
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsSwitchForceMsgStru* GetAtsSwitchForceMsgFst(void);
|
||||
/**
|
||||
* @brief 获取ATS道岔强转二次消息
|
||||
* @param 无
|
||||
* @return ATS道岔强转二次消息
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsSwitchForceMsgStru* GetAtsSwitchForceMsgSnd(void);
|
||||
/**
|
||||
* @brief 获取ATS道岔强转首次确认
|
||||
* @param 无
|
||||
* @return ATS道岔强转首次确认
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsSwitchForceCfmFst(void);
|
||||
/**
|
||||
* @brief 获取ATS道岔强转二次确认
|
||||
* @param 无
|
||||
* @return ATS道岔强转二次确认
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsSwitchForceCfmSnd(void);
|
||||
/**
|
||||
* @brief 清除ATS道岔强转首次消息
|
||||
* @param void
|
||||
* @return void
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearAtsSwitchForceMsgFirst(void);
|
||||
/**
|
||||
* @brief 清除ATS道岔强转二次消息
|
||||
* @param void
|
||||
* @return void
|
||||
* *Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearAtsSwitchForceMsgSecond(void);
|
||||
/**
|
||||
* @brief 获取ATS计轴预复位首次消息
|
||||
* @param 无
|
||||
* @return ATS计轴预复位首次消息
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsPhyPreResetMsgStru* GetAtsPhyPreResetMsgFst(void);
|
||||
/**
|
||||
* @brief 获取ATS计轴预复位二次消息
|
||||
* @param 无
|
||||
* @return ATS计轴预复位二次消息
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsPhyPreResetMsgStru* GetAtsPhyPreResetMsgSnd(void);
|
||||
/**
|
||||
* @brief 获取ATS计轴预复位首次确认
|
||||
* @param 无
|
||||
* @return ATS道岔强转首次确认
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsPhyPreResetCfmFst(void);
|
||||
/**
|
||||
* @brief 获取ATS计轴预复位二次确认
|
||||
* @param 无
|
||||
* @return ATS道岔强转二次确认
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
AtsMsgCfmStru* GetAtsPhyPreResetCfmSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 清除ATS计轴预复位首次消息
|
||||
* @param void
|
||||
* @return void
|
||||
* Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearAtsPhyPreResetMsgFirst(void);
|
||||
/**
|
||||
* @brief 清除ATS计轴预复位二次消息
|
||||
* @param void
|
||||
* @return void
|
||||
* *Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearAtsPhyPreResetMsgSecond(void);
|
||||
/**
|
||||
* @brief 清除第二个ATS全站解封解锁一次信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* *Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearSndAtsJieFengJieSuoCfmMsg(void);
|
||||
/**
|
||||
* @brief 清除第二个ATS道岔强转一次信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* *Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearSndAtsSwitchForceCfmMsg(void);
|
||||
/**
|
||||
* @brief 清除第二个ATS计轴复位一次信息
|
||||
* @param 无
|
||||
* @return 无
|
||||
* *Created By mpt 2026.2.8
|
||||
*/
|
||||
void ClearSndAtsPhyPreResetCfmMsg(void);
|
||||
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user