Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e1b5126cd9 | |||
| 66937f1160 | |||
| b7b0dac7d8 | |||
| 3a9ff37074 | |||
| 7e69b7c395 | |||
| 34a4ef5569 | |||
| 2fb0440c91 | |||
| 70bf3e0d36 | |||
| d3f54dc0b4 | |||
| a8d15629ac | |||
| 90001acc01 | |||
| f16a7c94b2 | |||
| a803ab421f | |||
| e14c880a88 | |||
| 2d49b7206a | |||
| b362cb2f91 | |||
| fda6f9f84b | |||
| 1cfb4c2d59 | |||
| 29d8047618 | |||
| 5f90274b7a | |||
| 099fa5a712 | |||
| 520c991568 | |||
| 957ace26d6 | |||
| e0a4ce32c2 | |||
| 6d6ddaec6b |
@@ -1 +1,3 @@
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
+814
@@ -0,0 +1,814 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.1898895178">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1898895178" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1898895178" name="aarch64le-debug" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.1898895178.439655998" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.203259723" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.1556422156" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.1968879177" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1876022724" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1127686504" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.693527478" name="Build Type:" superClass="com.qnx.qcc.option.buildtype"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1352316322" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder arguments="-s" command="make" id="cdt.managedbuild.target.gnu.builder.base.188590944" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.591289016" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.441788077" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.385459622" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.115407820" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1325284031" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.2085985240" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/AxisSort}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.340189104" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.2069067091" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.518642259" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.691157941">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.691157941" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.691157941" name="aarch64le-release" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.691157941.1401546998" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.1429422764" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.151761149" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.338787402" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1463811141" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1011457115" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.1060491868" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="release" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1027291205" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.172580598" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.414331704" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.930754063" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.268084290" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.984303874" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1712037338" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.1880381899" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.1387983109" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.443276640" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.1946208989" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.1923716135">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1923716135" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-coverage">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1923716135" name="aarch64le-coverage" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.1923716135.232544716" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.860429857" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.2053077575" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.297249280" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1799269231" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.2024866919" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.441290721" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="coverage" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.167631540" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.448487023" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1573895293" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.1953871695" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.669934293" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.1705241935" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1830913594" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.704535072" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.2037769893" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.1197282124" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.2045259756" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.1088691470">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1088691470" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-profile">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1088691470" name="aarch64le-profile" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.1088691470.1633521277" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.634956353" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.179660503" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.313606566" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1262746660" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.87427708" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.539075209" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="profile" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.600190288" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.894535644" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1842681380" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.1532817766" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.527375705" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.1591490423" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.2018725012" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.1697962313" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.717422833" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.1693276407" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.1493055817" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.2034181414">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.2034181414" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-profile">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.2034181414" name="aarch64le-profile" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.2034181414.149612478" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.1865511620" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.1511839536" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.591436227" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.918663847" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1470959014" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.796055386" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="profile" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1577154900" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1659640273" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1294027329" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.309638494" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.758367742" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.1736500952" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1947523253" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.1748323435" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.1487064582" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.1936914041" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.268298854" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.1322416424">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1322416424" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1322416424" name="aarch64le-debug" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.1322416424.1503765272" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.451494519" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.416140676" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.865783000" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1430643620" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1342741898" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.1812926040" name="Build Type:" superClass="com.qnx.qcc.option.buildtype"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.385638230" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1755628656" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.245390234" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.1034866566" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.764963368" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.224461901" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.942775645" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.903967461" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.1670335381" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.257258345" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.721284519" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.1771705254">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1771705254" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1771705254" name="aarch64le-release" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.1771705254.704637607" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.928452873" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.805331307" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.210787420" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1738710733" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1396873370" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.551224083" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="release" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.478444913" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.2145709880" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1882728420" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.1958543971" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.333344947" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.2009341474" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.365537856" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.1645365308" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.838515999" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.1752225216" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.1980607405" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.508473458">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.508473458" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.508473458" name="aarch64le-debug" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.508473458.2105641964" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.227360216" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.871471082" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.15784798" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.336109977" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.588147567" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.1574941818" name="Build Type:" superClass="com.qnx.qcc.option.buildtype"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1216394719" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1679627742" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="6" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1984157175" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.112007619" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.163710002" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.520844188" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.20391325" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.680021704" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.314103150" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.1000589579" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.2090876633" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.11197553">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.11197553" moduleId="org.eclipse.cdt.core.settings" name="x86_64-coverage">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.11197553" name="x86_64-coverage" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.11197553.768042893" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.1677690501" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.1763665618" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.2030972224" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.x86_64" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.695756230" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.2085490978" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.1211222878" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="coverage" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.690624196" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1898960536" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1573811045" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.989567208" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.460439821" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.82522484" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1631748443" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.740286393" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.700007729" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.736010980" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.479249048" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.312133252">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.312133252" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-profile">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.312133252" name="aarch64le-profile" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.312133252.1830811651" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.566934566" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.390003139" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.1055315239" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1893807591" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.330319677" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.459217554" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="profile" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.706344691" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.930033839" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1351783745" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.948397116" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.1640423838" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.1521366613" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1374658122" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.1741170874" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.811505509" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.173000416" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.1674246736" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.851831643">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.851831643" moduleId="org.eclipse.cdt.core.settings" name="x86-coverage">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.851831643" name="x86-coverage" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.851831643.838215177" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.666018849" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.652692550" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.1461458931" name="Target CPU:" superClass="com.qnx.qcc.option.cpu"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1997653790" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.570424276" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.11290833" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="coverage" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.470526191" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1110761941" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.530989487" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.1234027203" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.299411087" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.1359968577" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.84630033" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.1948912253" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.1440514454" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.116406286" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.474461871" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.1697766463">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1697766463" moduleId="org.eclipse.cdt.core.settings" name="armv7le-coverage">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1697766463" name="armv7le-coverage" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.1697766463.1693159231" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.917976049" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.106687656" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.1885103417" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1313986256" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1669172336" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.2088343680" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="coverage" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.449222909" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1086123974" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.186026688" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.2090109694" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.85399836" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.562774782" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1438453230" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.378109278" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.1130936801" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.759414821" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.1263698493" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.647166456">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.647166456" moduleId="org.eclipse.cdt.core.settings" name="armv7le-profile">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.647166456" name="armv7le-profile" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.647166456.1508820537" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.1979487242" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.970887142" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.239664321" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1751274850" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1269442265" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.1431865529" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="profile" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.799655379" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.2029839409" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1975279854" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.1510714308" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.897962192" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.576900047" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.661845605" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.251749173" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.1008332808" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.17926043" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.1954231787" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.844978504">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.844978504" moduleId="org.eclipse.cdt.core.settings" name="armv7le-release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.844978504" name="armv7le-release" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.844978504.731469155" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.669877348" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.1918128345" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.194470149" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1545492074" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1562920328" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.1037042803" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="release" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1040005206" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1798779527" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.583776540" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.704432493" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.884747388" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.265358615" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1039080703" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.1634333473" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.2124019965" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.1475234954" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.1459622746" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.qnx.qcc.toolChain.1751632028">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1751632028" moduleId="org.eclipse.cdt.core.settings" name="aarch64le-coverage">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1751632028" name="aarch64le-coverage" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="com.qnx.qcc.toolChain.1751632028.139167443" name="/" resourcePath="">
|
||||
<toolChain id="com.qnx.qcc.toolChain.1922911304" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
|
||||
<option id="com.qnx.qcc.option.os.1932184065" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
|
||||
<option id="com.qnx.qcc.option.cpu.145657146" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.aarch64le" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.1234409396" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
|
||||
<option id="com.qnx.qcc.option.runtime.1033770099" name="C++ Runtime:" superClass="com.qnx.qcc.option.runtime"/>
|
||||
<option id="com.qnx.qcc.option.buildtype.831900883" name="Build Type:" superClass="com.qnx.qcc.option.buildtype" value="coverage" valueType="enumerated"/>
|
||||
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.301470980" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.870136306" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="com.qnx.qcc.tool.compiler.1357395530" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
|
||||
<option id="com.qnx.qcc.option.compiler.optlevel.107758436" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" useByScannerDiscovery="false" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
|
||||
<option id="com.qnx.qcc.option.compiler.includePath.1494855812" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.compiler.2085763103" superClass="com.qnx.qcc.inputType.compiler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.assembler.1269222028" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
|
||||
<option id="com.qnx.qcc.option.assembler.includePath.513613045" name="Include Directories (-I)" superClass="com.qnx.qcc.option.assembler.includePath" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/TSCP/src/APP/ciapp/Train}""/>
|
||||
</option>
|
||||
<inputType id="com.qnx.qcc.inputType.assembler.207312122" superClass="com.qnx.qcc.inputType.assembler"/>
|
||||
</tool>
|
||||
<tool id="com.qnx.qcc.tool.linker.600660352" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
|
||||
<tool id="com.qnx.qcc.tool.archiver.503067367" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/src"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="/public"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="TSCP.null.349235574" name="TSCP"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="aarch64le-debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86_64-debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="armv7le-coverage">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="armv7le-debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86-coverage">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86-profile">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="armv7le-profile">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86_64-coverage">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="aarch64le-profile">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="aarch64le-coverage">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86_64-release">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="armv7le-release">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86-release">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="aarch64le-release">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86_64-profile">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86-debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/TSCP"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.2111653378">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.444211187">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1923716135">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.691157941">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.705038085">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.11197553">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.444971310">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.962019019">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.867349151">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.312133252">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1100278840">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.2034181414">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1697766463">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.314237686">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1771705254">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1273206681">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1322416424">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.844978504">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1898895178">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.508473458">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.24582968">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1194012629">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.647166456">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1701031470">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1088691470">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.851831643">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.330376829">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1751632028">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>TIOC</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
+59
-58
@@ -20,77 +20,23 @@ LD = $(CC)
|
||||
|
||||
#INCLUDES += -I/path/to/my/lib/include
|
||||
#INCLUDES += -I../mylib/public
|
||||
INCLUDES += -I ./src/APP \
|
||||
-I ./src/APP/ciapp/2oo2 \
|
||||
-I ./src/APP/ciapp/AllAutoReturn \
|
||||
-I ./src/APP/ciapp/AutoReturn \
|
||||
-I ./src/APP/ciapp/AutoRoute \
|
||||
-I ./src/APP/ciapp/AxisAssert \
|
||||
-I ./src/APP/ciapp/AxisSort \
|
||||
-I ./src/APP/ciapp/CutoffPoint \
|
||||
-I ./src/APP/ciapp/DataManage \
|
||||
-I ./src/APP/ciapp/DebugPrint \
|
||||
-I ./src/APP/ciapp/Deployment \
|
||||
-I ./src/APP/ciapp/DiffLineDev \
|
||||
-I ./src/APP/ciapp/EnvelopeManage \
|
||||
-I ./src/APP/ciapp/ERROR \
|
||||
-I ./src/APP/ciapp/ESB \
|
||||
-I ./src/APP/ciapp/FloodGate \
|
||||
-I ./src/APP/ciapp/Garagedoor \
|
||||
-I ./src/APP/ciapp/HLHTMsgHead \
|
||||
-I ./src/APP/ciapp/Indicator \
|
||||
-I ./src/APP/ciapp/Initial \
|
||||
-I ./src/APP/ciapp/InvadeSection \
|
||||
-I ./src/APP/ciapp/IO \
|
||||
-I ./src/APP/ciapp/LogicManage \
|
||||
-I ./src/APP/ciapp/LogicProcess \
|
||||
-I ./src/APP/ciapp/LogRecord \
|
||||
-I ./src/APP/ciapp/Main \
|
||||
-I ./src/APP/ciapp/Mask \
|
||||
-I ./src/APP/ciapp/NonAutoReturn \
|
||||
-I ./src/APP/ciapp/NonRoute \
|
||||
-I ./src/APP/ciapp/Overlap \
|
||||
-I ./src/APP/ciapp/ParsePack \
|
||||
-I ./src/APP/ciapp/PSC \
|
||||
-I ./src/APP/ciapp/PSD \
|
||||
-I ./src/APP/ciapp/QueryFiles \
|
||||
-I ./src/APP/ciapp/Relay \
|
||||
-I ./src/APP/ciapp/RemoteRM \
|
||||
-I ./src/APP/ciapp/ReverseCut \
|
||||
-I ./src/APP/ciapp/ReverseRoute \
|
||||
-I ./src/APP/ciapp/Route \
|
||||
-I ./src/APP/ciapp/Section \
|
||||
-I ./src/APP/ciapp/SectionStateProcess \
|
||||
-I ./src/APP/ciapp/SGBJ \
|
||||
-I ./src/APP/ciapp/Signal \
|
||||
-I ./src/APP/ciapp/SPKS \
|
||||
-I ./src/APP/ciapp/Switch \
|
||||
-I ./src/APP/ciapp/System \
|
||||
-I ./src/APP/ciapp/Train \
|
||||
-I ./src/APP/ciapp/Transmit \
|
||||
-I ./src/APP/ciapp/VirtualDevice \
|
||||
-I ./src/APP/ciapp/WashMachine \
|
||||
-I ./src/APP/ciapp/WLScreen \
|
||||
-I ./src/APP/ciapp/WLBrake \
|
||||
-I ./src/APP/PU13_integration_config \
|
||||
-I ./src/commoncode/common \
|
||||
INCLUDES += -I ./src/commoncode/common \
|
||||
-I ./src/commoncode/commoncode_config_vxworks \
|
||||
-I ./src/dqu_common/dqu_idmap_common \
|
||||
-I ./src/dqu_common/dqu_emap_common \
|
||||
-I ./src/dqu_common/dqu_dfs_common \
|
||||
-I ./src/dqu_common/dqu_cbtc_common \
|
||||
-I .\src\protocol\fsfb\common_dqu_fsfb \
|
||||
-I .\src\protocol\fsfb\common_fsfb \
|
||||
-I .\src\protocol\protocol_cbtc\common_protocol_config \
|
||||
-I .\src\protocol\protocol_cbtc\common_dqu_protocol \
|
||||
-I .\src\protocol\protocol_cbtc\common_protocol \
|
||||
-I .\src\protocol\protocol_cbtc\common_protocol_sfp_rsspi-config \
|
||||
-I .\src\protocol\redun_record_cbtc\common_dqu_rp \
|
||||
-I .\src\protocol\redun_record_cbtc\common_redun \
|
||||
-I .\src\protocol\redun_record_cbtc\common_redun_record_config \
|
||||
-I .\src\protocol\rsr_record_cbtc\common_dqu_rsr \
|
||||
-I .\src\protocol\rsr_record_cbtc\common_rsr \
|
||||
-I .\src\protocol\rsr_record_cbtc\common_rsr\rssp \
|
||||
-I .\src\protocol\rsr_record_cbtc\common_rsr\sig \
|
||||
-I .\src\protocol\rsr_record_cbtc\common_rsr \
|
||||
-I .\src\protocol\rsr_record_cbtc\common_rsr_record_config \
|
||||
-I .\src\protocol\rssp_record_cbtc1\common_dqu_rssp \
|
||||
-I .\src\protocol\rssp_record_cbtc1\common_rssp \
|
||||
@@ -101,6 +47,8 @@ INCLUDES += -I ./src/APP \
|
||||
-I .\src\protocol\sfp_record_cbtc1\common_dqu_sfp \
|
||||
-I .\src\protocol\sfp_record_cbtc1\common_sfp \
|
||||
-I .\src\protocol\sfp_record_cbtc1\common_sfp_nr_config \
|
||||
-I .\src\protocol\fsfb\common_dqu_fsfb \
|
||||
-I .\src\protocol\fsfb\common_fsfb \
|
||||
-I ./src/DRV \
|
||||
-I ./src/MSCP \
|
||||
-I ./src/MSCP/CM \
|
||||
@@ -109,7 +57,60 @@ INCLUDES += -I ./src/APP \
|
||||
-I ./src/MSCP/SFM \
|
||||
-I ./src/MSCP/PFM \
|
||||
-I ./src/MSCP_CFG \
|
||||
|
||||
-I ./src/APP \
|
||||
-I ./src/APP/ciapp/2oo2 \
|
||||
-I ./src/APP/ciapp/AllAutoReturn \
|
||||
-I ./src/APP/ciapp/AutoReturn \
|
||||
-I ./src/APP/ciapp/AutoRoute \
|
||||
-I ./src/APP/ciapp/DataManage \
|
||||
-I ./src/APP/ciapp/DebugPrint \
|
||||
-I ./src/APP/ciapp/DiffLineDev \
|
||||
-I ./src/APP/ciapp/ERROR \
|
||||
-I ./src/APP/ciapp/ESB \
|
||||
-I ./src/APP/ciapp/FloodGate \
|
||||
-I ./src/APP/ciapp/Garagedoor \
|
||||
-I ./src/APP/ciapp/HLHTMsgHead \
|
||||
-I ./src/APP/ciapp/Indicator \
|
||||
-I ./src/APP/ciapp/Initial \
|
||||
-I ./src/APP/ciapp/InvadeSection \
|
||||
-I ./src/APP/ciapp/IO \
|
||||
-I ./src/APP/ciapp/LightTestButtonManage \
|
||||
-I ./src/APP/ciapp/LogicManage \
|
||||
-I ./src/APP/ciapp/LogicProcess \
|
||||
-I ./src/APP/ciapp/LogRecord \
|
||||
-I ./src/APP/ciapp/Main \
|
||||
-I ./src/APP/ciapp/Mask \
|
||||
-I ./src/APP/ciapp/NonRoute \
|
||||
-I ./src/APP/ciapp/Overlap \
|
||||
-I ./src/APP/ciapp/ParsePack \
|
||||
-I ./src/APP/ciapp/PSC \
|
||||
-I ./src/APP/ciapp/PSD \
|
||||
-I ./src/APP/ciapp/QueryFiles \
|
||||
-I ./src/APP/ciapp/Relay \
|
||||
-I ./src/APP/ciapp/ReverseRoute \
|
||||
-I ./src/APP/ciapp/Route \
|
||||
-I ./src/APP/ciapp/Section \
|
||||
-I ./src/APP/ciapp/Signal \
|
||||
-I ./src/APP/ciapp/SPKS \
|
||||
-I ./src/APP/ciapp/Switch \
|
||||
-I ./src/APP/ciapp/System \
|
||||
-I ./src/APP/ciapp/Transmit \
|
||||
-I ./src/APP/ciapp/VirtualDevice \
|
||||
-I ./src/APP/ciapp/WashMachine \
|
||||
-I ./src/APP/PU13_integration_config \
|
||||
-I ./src/APP/ciapp/AxisSort \
|
||||
-I ./src/APP/ciapp/Train \
|
||||
-I ./src/APP/ciapp/EnvelopeManage \
|
||||
-I ./src/APP/ciapp/CutoffPoint \
|
||||
-I ./src/APP/ciapp/SectionStateProcess \
|
||||
-I ./src/APP/ciapp/AxisAssert \
|
||||
-I ./src/APP/ciapp/ReverseCut \
|
||||
-I ./src/APP/ciapp/WLScreen \
|
||||
-I ./src/APP/ciapp/WLBrake \
|
||||
-I ./src/APP/ciapp/RemoteRM \
|
||||
-I ./src/APP/ciapp/NonAutoReturn \
|
||||
-include stdarg.h
|
||||
|
||||
#LIBS += -L/path/to/my/lib/$(PLATFORM)/usr/lib -lmylib
|
||||
#LIBS += -L../mylib/$(OUTPUT_DIR) -lmylib
|
||||
|
||||
|
||||
+67
-34
@@ -29,7 +29,7 @@ extern UINT8 LocalCiId; /*系
|
||||
const CM_UINT8 g_SfpInnetParam[] =
|
||||
{
|
||||
|
||||
0,5,/*不同设备通信关系表记录个数*/
|
||||
0,7,/*不同设备通信关系表记录个数*/
|
||||
/*记录的格式如下:*/
|
||||
/* 发起方 发起方发送数据 发起方报文 发起方报文 发起方接收Ack 跟随方 跟随方发送数据 跟随方运行 跟随方报文 此通信关系中成功发送 */
|
||||
/* 设备类型 通信类型 发送周期长度 最大延时 报文最大延时差 设备类型 通信类型 周期长度 最大延时 一包数据所需最小周期数 */
|
||||
@@ -37,7 +37,9 @@ const CM_UINT8 g_SfpInnetParam[] =
|
||||
/*AOM->TIAS*/ 0x15, 0x55, 0x00,0xC8, 0x00,0xC8, 0x00,0xC8, 0x03, 0x55, 0x00,0xC8, 0x00,0xC8, 0x02,
|
||||
/*AOM->ATP*/ 0x14, 0x55, 0x00,0xC8, 0x00,0xC8, 0x00,0xC8, 0x15, 0x55, 0x00,0xC8, 0x00,0xC8, 0x02,
|
||||
/*RC主机->维护机*/ 0xD9, 0x55, 0x01,0x2c, 0x01,0x2C, 0x01,0x2C, 0xf8, 0x55, 0x00,0xc8, 0x00,0xc8, 0x02,
|
||||
/*RC主机->维护机*/ 0xD9, 0x55, 0x01,0x2c, 0x01,0x2C, 0x01,0x2C, 0x30, 0x55, 0x01,0x2c, 0x01,0x2C, 0x02,
|
||||
/*CI主机->维护机*/ 0xDE, 0x55, 0x01,0x2c, 0x01,0x2C, 0x01,0x2C, 0xf8, 0x55, 0x00,0xc8, 0x00,0xc8, 0x02,
|
||||
/*CI主机->维护机*/ 0xDE, 0x55, 0x01,0x2c, 0x01,0x2C, 0x01,0x2C, 0x30, 0x55, 0x01,0x2c, 0x01,0x2C, 0x02,
|
||||
0,2,/*相同设备通信关系表记录个数*/
|
||||
/*记录的格式如下:*/
|
||||
/* 发起方 发起方 发起方发送数据 发起方报文 发起方报文 发起方接收Ack 跟随方 跟随方 跟随方发送数据 跟随方运行 跟随方报文 此通信关系中成功发送 */
|
||||
@@ -244,7 +246,7 @@ void APP_API_Data_Init()
|
||||
cDevType = (UINT8)((locTypeId >> 8U) & 0x00FFU); /*RC/CI类型*/
|
||||
|
||||
|
||||
cRetVal = CiPatternInit((const)DataPath); /*初始化当前联锁类型配置数据*/
|
||||
cRetVal = RciCommonConfigDataInit((const)DataPath); /*初始化当前联锁类型配置数据*/
|
||||
if ((CI_SUCCESS == cRetVal) && (CI_SUCCESS == funcRetVal)) /*初始化当前联锁类型配置数据*/
|
||||
{
|
||||
cSystemWorkType = GetSystemWorkType();
|
||||
@@ -301,12 +303,13 @@ void APP_API_Data_Init()
|
||||
.M_OutnetRaw_Enable = 0xAA, /**< 外网透传通信功能开关 */
|
||||
.M_CpuUsageGet_Enable = 0x55,/**< 获取cpu使用率功能开关 */
|
||||
.M_RemoteUpdate_Enable = 0x55,/**< 远程部署内网安全通信功能开关 */
|
||||
.ID_Maintenance = DEVICE_TYPE_AIM,
|
||||
.ID_Maintenance = {2, DEVICE_TYPE_AIM, 0x3001U},
|
||||
.Start_Path = "/emmc1", /**< 程序启动路径 */
|
||||
.reboot_replycount = 10, /**< 重启确认报文回复次数 */
|
||||
.M_AutoReboot_Count = 3, /**< 自动重启次数 */
|
||||
.M_AutoClear_Days = 1, /**< 连续运行多久清空宕机次数的天数 */
|
||||
.M_Area_Enable = 0, /**< 区域状态开关配置 */
|
||||
.M_AREA_SEB_Enable = 0xAA, /**< RC与CI扩展板卡通信功能开关配置 */
|
||||
|
||||
.CPU[0].Logger_PortBase = 55011, /**< 明文日志记录发送端口 */
|
||||
.CPU[0].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
|
||||
@@ -350,23 +353,35 @@ void APP_API_Data_Init()
|
||||
.OutNetRed.CC_P_IP = "192.168.2.60", /**< 通控的内网IP */
|
||||
.OutNetRed.EXTEND_G_IP = "192.168.1.70", /**< 扩展板卡的内网IP */
|
||||
.OutNetRed.EXTEND_P_IP = "192.168.2.70", /**< 扩展板卡的内网IP */
|
||||
.Another_SEB.EXTEND_R_G_IP = "192.168.1.90", /**< CI扩展板卡的内网IP */
|
||||
.Another_SEB.EXTEND_R_P_IP = "192.168.2.90", /**< CI扩展板卡的内网IP */
|
||||
.Another_SEB.OutnetSafe_R_Port = 54001, /**< 外网安全通信端口 */
|
||||
.OutNetRed.OutnetSafe_Port = 54001, /**< 外网安全通信端口 */
|
||||
.OutNetRed.OutnetRaw_Port = 54002, /**< 外网透传通信端口 */
|
||||
.OutNetRed.InnetRaw_Port = 53003, /**< 内网透传通信端口 */
|
||||
|
||||
.OutNetBlue.CC_G_IP = "192.168.1.61", /**< 通控的内网IP */
|
||||
.OutNetBlue.CC_P_IP = "192.168.2.61", /**< 通控的内网IP */
|
||||
.OutNetBlue.EXTEND_G_IP = "192.168.1.71", /**< 扩展板卡的内网IP */
|
||||
.OutNetBlue.EXTEND_P_IP = "192.168.2.71", /**< 扩展板卡的内网IP */
|
||||
.OutNetBlue.EXTEND_G_IP = "192.168.1.71", /**< 扩展板卡的内网IP */
|
||||
.OutNetBlue.EXTEND_P_IP = "192.168.2.71", /**< 扩展板卡的内网IP */
|
||||
.Another_SEB.EXTEND_B_G_IP = "192.168.1.91", /**< CI扩展板卡的内网IP */
|
||||
.Another_SEB.EXTEND_B_P_IP = "192.168.2.91", /**< CI扩展板卡的内网IP */
|
||||
.Another_SEB.OutnetSafe_B_Port = 54001, /**< 外网安全通信端口 */
|
||||
.OutNetBlue.OutnetSafe_Port = 54001, /**< 外网安全通信端口 */
|
||||
.OutNetBlue.OutnetRaw_Port = 54002, /**< 外网透传通信端口 */
|
||||
.OutNetBlue.InnetRaw_Port = 53003, /**< 内网透传通信端口 */
|
||||
.INNET_COM_NUM = 1, /**< 内网通信设备数量 */
|
||||
|
||||
.INNET_COM_NUM = 2, /**< 内网通信设备数量 */
|
||||
.INNET_COM_CFG[0].InnetID = DEVICE_TYPE_AIM, /**< 内网通信ID */
|
||||
.INNET_COM_CFG[0].Port_Raw_G = 55004, /**< 绿网透传端口 */
|
||||
.INNET_COM_CFG[0].Port_Safe_G = 55003, /**< 绿网安全端口 */
|
||||
.INNET_COM_CFG[0].Port_Raw_P = 55004, /**< 紫网透传端口 */
|
||||
.INNET_COM_CFG[0].Port_Safe_P = 55003, /**< 紫网安全端口 */
|
||||
.INNET_COM_CFG[1].InnetID = 0X3001U, /**< 内网通信ID */
|
||||
.INNET_COM_CFG[1].Port_Safe_G = 55005, /**< 绿网安全端口 */
|
||||
.INNET_COM_CFG[1].Port_Raw_G = 0XFFFF,
|
||||
.INNET_COM_CFG[1].Port_Safe_P = 55005, /**< 紫网安全端口 */
|
||||
.INNET_COM_CFG[1].Port_Raw_P = 0XFFFF,
|
||||
|
||||
};
|
||||
|
||||
@@ -416,10 +431,14 @@ void APP_API_Data_Init()
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetRed.CC_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.60"), (UINT32)sizeof("192.168.2.60"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetRed.EXTEND_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.70"), (UINT32)sizeof("192.168.1.70"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetRed.EXTEND_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.70"), (UINT32)sizeof("192.168.2.70"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_R_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.90"), (UINT32)sizeof("192.168.1.90"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_R_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.90"), (UINT32)sizeof("192.168.2.90"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.CC_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.61"), (UINT32)sizeof("192.168.1.61"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.CC_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.61"), (UINT32)sizeof("192.168.2.61"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.EXTEND_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.71"), (UINT32)sizeof("192.168.1.71"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.EXTEND_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.71"), (UINT32)sizeof("192.168.2.71"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_B_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.91"), (UINT32)sizeof("192.168.1.91"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_B_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.91"), (UINT32)sizeof("192.168.2.91"));
|
||||
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.CPU[0].IP_Maintain), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.146.101"), (UINT32)sizeof("192.168.146.101"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.CPU[1].IP_Maintain), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.18.102"), (UINT32)sizeof("192.168.18.102"));
|
||||
@@ -430,6 +449,8 @@ void APP_API_Data_Init()
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Logger_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.18.100"), (UINT32)sizeof("192.168.18.100"));
|
||||
AppCfgInterface.INNET_COM_CFG[0].IP_G = (CM_UINT32)inet_addr("192.168.146.100");
|
||||
AppCfgInterface.INNET_COM_CFG[0].IP_P = (CM_UINT32)inet_addr("192.168.18.100");
|
||||
AppCfgInterface.INNET_COM_CFG[1].IP_G = (CM_UINT32)inet_addr("192.168.146.100");
|
||||
AppCfgInterface.INNET_COM_CFG[1].IP_P = (CM_UINT32)inet_addr("192.168.18.100");
|
||||
|
||||
}
|
||||
else
|
||||
@@ -476,10 +497,14 @@ void APP_API_Data_Init()
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetRed.CC_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.80"), (UINT32)sizeof("192.168.2.80"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetRed.EXTEND_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.90"), (UINT32)sizeof("192.168.1.90"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetRed.EXTEND_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.90"), (UINT32)sizeof("192.168.2.90"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_R_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.90"), (UINT32)sizeof("192.168.1.90"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_R_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.90"), (UINT32)sizeof("192.168.2.90"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.CC_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.81"), (UINT32)sizeof("192.168.1.81"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.CC_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.81"), (UINT32)sizeof("192.168.2.81"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.EXTEND_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.91"), (UINT32)sizeof("192.168.1.91"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.OutNetBlue.EXTEND_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.91"), (UINT32)sizeof("192.168.2.91"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_B_G_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.1.91"), (UINT32)sizeof("192.168.1.91"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Another_SEB.EXTEND_B_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.2.91"), (UINT32)sizeof("192.168.2.91"));
|
||||
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.CPU[0].IP_Maintain), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.148.101"), (UINT32)sizeof("192.168.148.101"));
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.CPU[1].IP_Maintain), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.20.102"), (UINT32)sizeof("192.168.20.102"));
|
||||
@@ -490,6 +515,8 @@ void APP_API_Data_Init()
|
||||
(void)CommonMemCpy((void*)(AppCfgInterface.Logger_P_IP), (UINT32)sizeof(CM_CHAR) * 32, (const void*)("192.168.20.100"), (UINT32)sizeof("192.168.20.100"));
|
||||
AppCfgInterface.INNET_COM_CFG[0].IP_G = (CM_UINT32)inet_addr("192.168.148.100");
|
||||
AppCfgInterface.INNET_COM_CFG[0].IP_P = (CM_UINT32)inet_addr("192.168.20.100");
|
||||
AppCfgInterface.INNET_COM_CFG[1].IP_G = (CM_UINT32)inet_addr("192.168.148.100");
|
||||
AppCfgInterface.INNET_COM_CFG[1].IP_P = (CM_UINT32)inet_addr("192.168.20.100");
|
||||
|
||||
}
|
||||
if(SYSTEM_WORK_MODE_ONLY == cSystemWorkType)
|
||||
@@ -504,7 +531,8 @@ void APP_API_Data_Init()
|
||||
{
|
||||
/*RC区域开关设置为0xAA*/
|
||||
AppCfgInterface.M_Area_Enable = 0xAAu;
|
||||
|
||||
/**< RC与CI扩展板卡通信功能开关配置 */
|
||||
AppCfgInterface.M_AREA_SEB_Enable = 0x55u;
|
||||
|
||||
}
|
||||
else
|
||||
@@ -700,44 +728,27 @@ ENUM_CM_RECCUSEB Is_Send_ExtendBoard(IN const CM_UINT16 dstDevTypeId)
|
||||
{
|
||||
ENUM_CM_RECCUSEB retVal = ENUM_CM_CC; /*返回值*/
|
||||
CM_UINT8 devType = 0U; /*设备类型*/
|
||||
CM_UINT8 devId = 0U; /*设备ID*/
|
||||
CM_UINT16 wAtsGtWayDevTypeId = 0U;
|
||||
UINT8 chLocalCiType = 0U; /*本联锁属性*/
|
||||
UINT8 chDstCiType = 0U; /*本联锁属性*/
|
||||
UINT8 chCldScxCommMode = 0U;
|
||||
UINT8 chWorkType = 0U; /*双系工作模式*/
|
||||
UINT8 cControlState = 0U;/*主备用模式*/
|
||||
UINT8 cRcWorkMode = 0u;/*RC工作模式*/
|
||||
UINT8 chResult = CI_ERROR; /*联锁属性检查结果*/
|
||||
UINT8 serialGroup = 0U; /*串口通信组索引*/
|
||||
|
||||
wAtsGtWayDevTypeId = GetTiocTrnsmtGtwyDevTypeId();
|
||||
/**使用通控板与ATS网关通信*/
|
||||
if (dstDevTypeId != wAtsGtWayDevTypeId)
|
||||
{
|
||||
devType = (CM_UINT8)((dstDevTypeId >> 8) & 0xFF);
|
||||
devId = (CM_UINT8)(dstDevTypeId & 0xFF);
|
||||
chWorkType = GetSystemWorkType();
|
||||
cControlState = GetLocalCiBackUpPattern();
|
||||
cRcWorkMode = GetLocalRcWorkMode();
|
||||
|
||||
chLocalCiType = GetLocalCiType();
|
||||
chDstCiType = GetCiType(devId);
|
||||
chCldScxCommMode = GetCiFunctionSwitchConfig(SCX_CLD_INTERFACE_TYPE);
|
||||
chResult = IsSerialDevice(dstDevTypeId, &serialGroup);
|
||||
|
||||
if ((SCX_CLD_SERIAL_PORT_COMM == chCldScxCommMode) && (CI_SYSTEM_TYPE_RCI == devType))
|
||||
{
|
||||
if (((CI_TYPE_CLD == chLocalCiType) && (CI_TYPE_SCX == chDstCiType)) || ((CI_TYPE_SCX == chLocalCiType) && (CI_TYPE_CLD == chDstCiType)))
|
||||
{
|
||||
/*串口通信要求双方一个为车辆段一个为试车线*/
|
||||
chResult = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*CI类型错误,返回失败*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不为串口通信,此时不对本地CI类型及对方CI类型进行判断*/
|
||||
}
|
||||
|
||||
if ((CI_SYSTEM_TYPE_XIANDI == devType) || (CI_SYSTEM_TYPE_ATS == devType) || (CI_SYSTEM_TYPE_LEU == devType)
|
||||
if ((CI_SYSTEM_TYPE_XIANDI == devType) || (CI_SYSTEM_TYPE_ATS == devType)
|
||||
|| (CI_SUCCESS == chResult)
|
||||
|| (CI_SYSTEM_TYPE_VOBC_BACKUP == devType)) /*现地,ATS,LEU,使用串口的相邻CI*/
|
||||
|| (CI_SYSTEM_TYPE_VOBC_BACKUP == devType)) /*现地,ATS,使用串口的相邻CI*/
|
||||
{
|
||||
retVal = ENUM_CM_SEB;
|
||||
}
|
||||
@@ -745,6 +756,28 @@ ENUM_CM_RECCUSEB Is_Send_ExtendBoard(IN const CM_UINT16 dstDevTypeId)
|
||||
{
|
||||
retVal = ENUM_CM_CCSEB;
|
||||
}
|
||||
else if (CI_SYSTEM_TYPE_LEU == devType)
|
||||
{
|
||||
if ((SYSTEM_WORK_MODE_ALL == chWorkType) && (RC_WORK_MODE_TIOC == cRcWorkMode))
|
||||
{
|
||||
/*双系统,并且当前是RC*/
|
||||
if (SYSTEM_WORK_MODE_MAIN == cControlState)
|
||||
{
|
||||
/*是RC主用时,需要用CI的串口板进行LEU通信*/
|
||||
retVal = ENUM_CM_SEB_ANOTHER;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*RC备用,禁止发送*/
|
||||
retVal = ENUM_CM_FORBIDDEN;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*单系统,或当前是CI*/
|
||||
retVal = ENUM_CM_SEB;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = ENUM_CM_CC;
|
||||
|
||||
@@ -30,6 +30,6 @@
|
||||
#define VER_INTE_PROJECT 220 /*项目编号*/
|
||||
#define VER_INTE_PRODUCT 40 /*产品编号*/
|
||||
#define VER_INTE_EXE 1 /*可执行编号*/
|
||||
#define VER_INTE_TIME 105 /*集成次数编号*/
|
||||
#define VER_INTE_TIME 131 /*集成次数编号*/
|
||||
|
||||
#endif/*endif of #define _CI_INTEGRATE_CONFIG_H*/
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "NonAutoReturnDataManage.h"
|
||||
#include "DynamicRouteDataManage.h"
|
||||
#include "../Deployment/DeploymentExtern.h"
|
||||
#include "ParsePackPlatformData.h"
|
||||
/*��������*/
|
||||
extern UINT16 TransmitStateDataCurSum; /*ͨ�Ź�ϵ״̬���ݵ�ǰ����*/
|
||||
extern UINT8 ComCycNumForCiToAts; /*������ATSͨ�����ڼ�¼*/
|
||||
@@ -414,6 +415,58 @@ UINT32 CopyValidSetDataStru(const UINT8 *pCurCiAppDataPointer, void *pDataStru,
|
||||
return curIndex;
|
||||
}
|
||||
|
||||
/*
|
||||
* ���������� ����RCͨ�ŵ�VOBC��Ч���ݵ���Ӧ��ȫ������
|
||||
* ����˵����
|
||||
�������
|
||||
const UINT8 *pCurCiAppDataPointer:��ǰ����ָ��
|
||||
UINT16 struNum:���鳤��,
|
||||
UINT16 struLength:�ṹ�峤��
|
||||
�������
|
||||
void *pDataStru:�ṹ��ָ��,
|
||||
* ����ֵ �� �������ݵij���
|
||||
*/
|
||||
UINT32 CopyValidSetRcVobcDataStru(const UINT8* pCurCiAppDataPointer, void* pDataStru, UINT16 struNum, UINT16 struLength)
|
||||
{
|
||||
UINT32 curIndex = 0u;
|
||||
UINT16 i = 0u;
|
||||
UINT16 ValidIdNum = 0u;
|
||||
void* pDstAddr = NULL;
|
||||
|
||||
/*�����*/
|
||||
if ((NULL != pCurCiAppDataPointer) && (NULL != pDataStru) && (0u != struNum) && (0u != struLength))
|
||||
{
|
||||
/*��ȡ�ܵ���ЧID����*/
|
||||
ValidIdNum = ShortFromChar(pCurCiAppDataPointer);
|
||||
|
||||
curIndex += (UINT32)sizeof(UINT16);
|
||||
|
||||
for (i = 0u; i < ValidIdNum; i++)
|
||||
{
|
||||
if (i < struNum)
|
||||
{
|
||||
pDstAddr = (UINT8*)pDataStru + struLength * i;
|
||||
(void)CommonMemCpy((void*)pDstAddr, (UINT32)struLength, (const void*)(pCurCiAppDataPointer + curIndex), (UINT32)struLength);
|
||||
curIndex += (UINT32)struLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
curIndex += (UINT32)struLength;
|
||||
|
||||
debug_infor_printf((const)"ERROR: SetValidIdNum = %d\n", i);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
curIndex = 0u;
|
||||
|
||||
debug_infor_printf((const)"ERROR: Parameter is invailid\n");
|
||||
}
|
||||
|
||||
return curIndex;
|
||||
}
|
||||
|
||||
/*
|
||||
* ���������� ����ͨ�ų���Ч���ݵ���Ӧ��ȫ������
|
||||
* ����˵����
|
||||
@@ -1141,8 +1194,6 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &g_VirtualCIStructData.virtualCi[ii].chAllSwitchYLockFlag, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(VirCIRtnIndicatorState) * RTNINDICATOR_SUM_MAX), (void*)(&g_VirtualCIStructData.virtualCi[ii].VirCIRtnIndicatorStaData), (UINT32)(sizeof(VirCIRtnIndicatorState) * RTNINDICATOR_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(VirCIRtnIndicatorState) * RTNINDICATOR_SUM_MAX);
|
||||
|
||||
(void)memcpy(pCiAppDataPointer + curIndex, &g_VirtualCIStructData.virtualCi[ii].autoTriggerflag, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
@@ -1511,10 +1562,98 @@ UINT32 GetCiAppData(UINT8 *pCiAppDataPointer)
|
||||
(void)CommonMemCpy(pCiAppDataPointer + curIndex, (UINT32)sizeof(UINT32),&gSystemUpdateMainUseCycNum, (UINT32)sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
|
||||
/*CIͬ�����뱾CIͨ�ŵ�CI������ͨ����ͷ����������*/
|
||||
curResult = CopyValidGetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), ciHLHTHeadCtxsCiToRc);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*CIͬ�����뱾CIͨ�ŵ�RC������ͨ����ͷ����������*/
|
||||
curResult = CopyValidGetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), gSzRcHLHTHeadCtxsCiToRc);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*��������RC���͵�֡����*/
|
||||
(void)CommonMemCpy(pCiAppDataPointer + curIndex, (UINT32)(sizeof(NeighborCiInfoStruct) * CI_COM_CI_MAX_NUM), &szNeighborCiInfo, (UINT32)(sizeof(NeighborCiInfoStruct) * CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(NeighborCiInfoStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*�Գ����복���β���ͨ�Žӿ�ʱ������SQJ״̬*/
|
||||
pCiAppDataPointer[curIndex] = comm_Train_Test_SQJ_CLD_State;
|
||||
curIndex += 1U;
|
||||
|
||||
/*�Գ����복���β���ͨ�Žӿ�ʱ������TYSJ״̬*/
|
||||
pCiAppDataPointer[curIndex] = comm_Train_Test_TYSJ_CLD_State;
|
||||
curIndex += 1U;
|
||||
|
||||
/*����CI��������ṹ������*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX), (void*)(&CiRevCmdDataStru), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(CommandDataStruct) * ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*����CI��������ṹ�����鳤��*/
|
||||
ShortToChar(CiRevCmdStruCurSum, &pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2U;
|
||||
|
||||
/*����ATS���ֵص�CI�ź��ؿ���������ṹ������*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX), (void*)(&ATSorXDToCiCmdRtnToTRDataStru), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(CommandDataStruct) * ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*����ATS���ֵص�CI�ź��ؿ���������ṹ�����鳤��*/
|
||||
ShortToChar(ATSorXDToCiCmdReturnToTRCurSum, &pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2U;
|
||||
|
||||
/*��������TIOC������ͨ�ų��ṹ������*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(TiocTransmitCtStruct)* TRANSMIT_OBJECT_DEVICE_SUM_MAX), (void*)(&g_szTiocCt), (UINT32)(sizeof(TiocTransmitCtStruct)* TRANSMIT_OBJECT_DEVICE_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(TiocTransmitCtStruct) * TRANSMIT_OBJECT_DEVICE_SUM_MAX);
|
||||
|
||||
/*��������վ̨����CIͨ�����ݽṹ������*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(PlatformToCiDataStruct)* PLATFORM_TO_CI_SUM_MAX), (void*)(&platformToCiDataStru), (UINT32)(sizeof(PlatformToCiDataStruct)* PLATFORM_TO_CI_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(PlatformToCiDataStruct) * PLATFORM_TO_CI_SUM_MAX);
|
||||
|
||||
/*����Psc-CI�Ľṹ������*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(PSCToCiDataStruct)* PSC_TO_CI_SUM_MAX), (void*)(&PscToCiDataStru), (UINT32)(sizeof(PSCToCiDataStruct)* PSC_TO_CI_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(PSCToCiDataStruct) * PSC_TO_CI_SUM_MAX);
|
||||
|
||||
/*������̬�����г��ṹ������*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(TrainDyInfoStru)* TRAIN_DYN_TEST_SUM_MAX), (void*)(&gszDyTestInfo), (UINT32)(sizeof(TrainDyInfoStru)* TRAIN_DYN_TEST_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(TrainDyInfoStru) * TRAIN_DYN_TEST_SUM_MAX);
|
||||
|
||||
/*������̬�����г�����*/
|
||||
pCiAppDataPointer[curIndex] = gDyTestNum;
|
||||
curIndex += 1U;
|
||||
|
||||
/*ZC����������CBTC�г���ѹ��Ϣ*/
|
||||
pCiAppDataPointer[curIndex] = gCbtcCrossNumZc;
|
||||
curIndex += 1u;
|
||||
|
||||
for (ii = 0u; ii < gCbtcCrossNumZc; ii++)
|
||||
{
|
||||
ShortToChar(gCbtcCrossStructZc[ii].wSignalId, &pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2u;
|
||||
pCiAppDataPointer[curIndex] = gCbtcCrossStructZc[ii].wTrainId;
|
||||
curIndex += 1u;
|
||||
}
|
||||
/*ATS/�ֵ�/����һ�����ȷ����Ϣͬ��*/
|
||||
/*������������*/
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(&gDansuoCancleMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(&gDansuoCancleReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
/*�����������*/
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(&gSwitchUnflockMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(&gSwitchUnflockReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
/*��������*/
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(&gSecUnflockMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(&gSecUnflockReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
/*�źŻ��������*/
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(&gSignalUnflockMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(&gSignalUnflockReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
/*����һ��CRC*/
|
||||
crcLength = curIndex - crcIndex;
|
||||
crcResult = Tioc_CommonCrc32(pCiAppDataPointer + crcIndex, crcLength);
|
||||
debug_infor_printf((const)"2oo2 RecvCiCmdDataStruCurSum-vobcToRcHLHTHeadCtxs CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
debug_infor_printf((const)"2oo2 RecvCiCmdDataStruCurSum-FollowUpCmd CRC:%x, Length:%d\n", crcResult, crcLength);
|
||||
}
|
||||
return curIndex;
|
||||
}
|
||||
@@ -1948,9 +2087,6 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
(void)memcpy(&g_VirtualCIStructData.virtualCi[ii].chAllSwitchYLockFlag,pCiAppDataPointer + curIndex, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].VirCIRtnIndicatorStaData), (UINT32)(RTNINDICATOR_SUM_MAX * sizeof(VirCIRtnIndicatorState)), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(RTNINDICATOR_SUM_MAX * sizeof(VirCIRtnIndicatorState)));
|
||||
curIndex = curIndex + (UINT32)(RTNINDICATOR_SUM_MAX * sizeof(VirCIRtnIndicatorState));
|
||||
|
||||
(void)memcpy(&g_VirtualCIStructData.virtualCi[ii].autoTriggerflag,pCiAppDataPointer + curIndex, sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
@@ -2279,7 +2415,7 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
|
||||
/*������RCͨ�ŵ�Vobc��Ϣ*/
|
||||
(void)CommonMemSet(&VobcToRcDataStru, (UINT32)((VOBC_TO_CI_SUM_MAX) * sizeof(VobcToRcDataStruct)), 0U, (UINT32)((VOBC_TO_CI_SUM_MAX) * sizeof(VobcToRcDataStruct))); /*����սṹ���ֹ������*/
|
||||
curResult = CopyValidSetDataStru(pCiAppDataPointer + curIndex, VobcToRcDataStru, VOBC_TO_CI_SUM_MAX, (UINT16)sizeof(VobcToRcDataStruct));
|
||||
curResult = CopyValidSetRcVobcDataStru(pCiAppDataPointer + curIndex, VobcToRcDataStru, VOBC_TO_CI_SUM_MAX, (UINT16)sizeof(VobcToRcDataStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*������RCͨ�ŵ�Vobc����*/
|
||||
@@ -2293,6 +2429,95 @@ UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len)
|
||||
/*����������������*/
|
||||
(void)CommonMemCpy(&gSystemUpdateMainUseCycNum, (UINT32)sizeof(UINT32), pCiAppDataPointer + curIndex, (UINT32)sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
|
||||
/*CIͬ�����뱾CIͨ�ŵ�CI������ͨ����ͷ����������*/
|
||||
curResult = CopyValidSetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), ciHLHTHeadCtxsCiToRc);/*�洢��CI�������ݽṹ��*/
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*CIͬ�����뱾CIͨ�ŵ�RC������ͨ����ͷ����������*/
|
||||
curResult = CopyValidSetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), gSzRcHLHTHeadCtxsCiToRc);/*�洢��CI�������ݽṹ��*/
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*ͬ������RC���͵�֡����*/
|
||||
(void)CommonMemCpy(&szNeighborCiInfo, (UINT32)(sizeof(NeighborCiInfoStruct)* CI_COM_CI_MAX_NUM), pCiAppDataPointer + curIndex, (UINT32)(sizeof(NeighborCiInfoStruct)* CI_COM_CI_MAX_NUM));
|
||||
curIndex = curIndex + (UINT32)(sizeof(NeighborCiInfoStruct) * CI_COM_CI_MAX_NUM);
|
||||
|
||||
/*�Գ����복���β���ͨ�Žӿ�ʱ������SQJ״̬*/
|
||||
comm_Train_Test_SQJ_CLD_State = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
/*�Գ����복���β���ͨ�Žӿ�ʱ������TYSJ״̬*/
|
||||
comm_Train_Test_TYSJ_CLD_State = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
/*����CI��������ṹ������*/
|
||||
(void)CommonMemCpy((void*)(&CiRevCmdDataStru), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(CommandDataStruct) * ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*����CI��������ṹ�����鳤��*/
|
||||
CiRevCmdStruCurSum = ShortFromChar(&pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2U;
|
||||
|
||||
/*����ATS���ֵص�CI�ź��ؿ���������ṹ������*/
|
||||
(void)CommonMemCpy((void*)(&ATSorXDToCiCmdRtnToTRDataStru), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(CommandDataStruct)* ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(CommandDataStruct) * ATSORXIANDI_TO_CI_CMD_DATA_STRU_SUM_MAX);
|
||||
|
||||
/*����ATS���ֵص�CI�ź��ؿ���������ṹ�����鳤��*/
|
||||
ATSorXDToCiCmdReturnToTRCurSum = ShortFromChar(&pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2U;
|
||||
|
||||
/*��������TIOC������ͨ�ų��ṹ������*/
|
||||
(void)CommonMemCpy((void*)(&g_szTiocCt), (UINT32)(sizeof(TiocTransmitCtStruct)* TRANSMIT_OBJECT_DEVICE_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(TiocTransmitCtStruct)* TRANSMIT_OBJECT_DEVICE_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(TiocTransmitCtStruct) * TRANSMIT_OBJECT_DEVICE_SUM_MAX);
|
||||
|
||||
/*��������վ̨����CIͨ�����ݽṹ������*/
|
||||
(void)CommonMemCpy((void*)&platformToCiDataStru, (UINT32)(sizeof(PlatformToCiDataStruct)* PLATFORM_TO_CI_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(PlatformToCiDataStruct)* PLATFORM_TO_CI_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(PlatformToCiDataStruct) * PLATFORM_TO_CI_SUM_MAX);
|
||||
|
||||
/*����Psc-CI�Ľṹ������*/
|
||||
(void)CommonMemCpy((void*)(&PscToCiDataStru), (UINT32)(sizeof(PSCToCiDataStruct)* PSC_TO_CI_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(PSCToCiDataStruct)* PSC_TO_CI_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(PSCToCiDataStruct) * PSC_TO_CI_SUM_MAX);
|
||||
|
||||
/*������̬�����г��ṹ������*/
|
||||
(void)CommonMemCpy((void*)(&gszDyTestInfo), (UINT32)(sizeof(TrainDyInfoStru)* TRAIN_DYN_TEST_SUM_MAX), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(sizeof(TrainDyInfoStru)* TRAIN_DYN_TEST_SUM_MAX));
|
||||
curIndex = curIndex + (UINT32)(sizeof(TrainDyInfoStru) * TRAIN_DYN_TEST_SUM_MAX);
|
||||
|
||||
/*������̬�����г�����*/
|
||||
gDyTestNum = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1U;
|
||||
|
||||
/*ZC����������CBTC�г���ѹ��Ϣ*/
|
||||
gCbtcCrossNumZc = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1u;
|
||||
|
||||
for (ii = 0u; ii < gCbtcCrossNumZc; ii++)
|
||||
{
|
||||
gCbtcCrossStructZc[ii].wSignalId = ShortFromChar(&pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2u;
|
||||
gCbtcCrossStructZc[ii].wTrainId = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1u;
|
||||
}
|
||||
/*ͬ��һ���������*/
|
||||
/*��������*/
|
||||
(void)CommonMemCpy((void *)(&gDansuoCancleMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(&gDansuoCancleReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
/*�������*/
|
||||
(void)CommonMemCpy((void *)(&gSwitchUnflockMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(&gSwitchUnflockReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
/*����*/
|
||||
(void)CommonMemCpy((void *)(&gSecUnflockMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(&gSecUnflockReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
/*�źŻ����*/
|
||||
(void)CommonMemCpy((void *)(&gSignalUnflockMsgFst), (UINT32)sizeof(AtsFollowUpCmdFstStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(AtsFollowUpCmdFstStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(AtsFollowUpCmdFstStru);
|
||||
(void)CommonMemCpy((void *)(&gSignalUnflockReplyFst), (UINT32)sizeof(RCIFollowUpReplyStru), (const void *)(pCiAppDataPointer + curIndex), (UINT32)sizeof(RCIFollowUpReplyStru));
|
||||
curIndex = curIndex + (UINT32)sizeof(RCIFollowUpReplyStru);
|
||||
rtn = 1U;
|
||||
}
|
||||
}
|
||||
@@ -2747,12 +2972,12 @@ UINT32 GetCiGeneralData(UINT8* pCiAppDataPointer)
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*ͬ����������������ѩ������Ϣ*/
|
||||
curResult = CopyValidGetDataStru(pCiAppDataPointer + curIndex, (void*)(szSendCiAreaSnow), CI_COM_CI_MAX_NUM, (UINT16)sizeof(ToCiAreaSnowStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
(void)CommonMemCpy((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);
|
||||
|
||||
/*ͬ�������������������ѩ��Ϣ*/
|
||||
curResult = CopyValidGetDataStru(pCiAppDataPointer + curIndex, (void*)(szRecvCiAreaSnow), CI_COM_CI_MAX_NUM, (UINT16)sizeof(ToCiAreaSnowStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
(void)CommonMemCpy((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);
|
||||
|
||||
/* ����������ѩ���� */
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_LocalSnowModel), (UINT32)sizeof(UINT8));
|
||||
@@ -2776,6 +3001,64 @@ UINT32 GetCiGeneralData(UINT8* pCiAppDataPointer)
|
||||
/*����OCԭʼ����*/
|
||||
curResult = CopyValidGetOcOrginData(pCiAppDataPointer + curIndex, OC_SUM_MAX, &m_OcToCiOrginDataArr[0]);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*�뱾CIͨ�ŵ�CI������ͨ����ͷ����������*/
|
||||
curResult = CopyValidGetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), ciHLHTHeadCtxs);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*�뱾CIͨ�ŵ�Rc������ͨ����ͷ����������*/
|
||||
curResult = CopyValidGetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), gSzRcHLHTHeadCtxs);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*ZC����������CBTC�г���ѹ��Ϣ*/
|
||||
pCiAppDataPointer[curIndex] = gCbtcCrossNumZc;
|
||||
curIndex += 1u;
|
||||
|
||||
for (ii = 0u; ii < gCbtcCrossNumZc; ii++)
|
||||
{
|
||||
ShortToChar(gCbtcCrossStructZc[ii].wSignalId, &pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2u;
|
||||
pCiAppDataPointer[curIndex] = gCbtcCrossStructZc[ii].wTrainId;
|
||||
curIndex += 1u;
|
||||
}
|
||||
/*����������������*/
|
||||
for (ii = 0U; ii < g_VirtualCIStructData.virtualCiNum; ii++)
|
||||
{
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_VirtualCIStructData.virtualCi[ii].virtualCiId), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_VirtualCIStructData.virtualCi[ii].chAllSignalBrightFlag) , (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_VirtualCIStructData.virtualCi[ii].chAllSwitchYLockFlag), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8) , (const void*)(&g_VirtualCIStructData.virtualCi[ii].autoTriggerflag) , (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_VirtualCIStructData.virtualCi[ii].cimode), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_VirtualCIStructData.virtualCi[ii].chLabourCancelLinShiXianState) , (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwFlag), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8), (const void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwjHunXianFLag) , (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT32), (const void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwStartCycNum) , (UINT32)sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT32), (const void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwValidCycNum) , (UINT32)sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
|
||||
/*ָʾ��״̬����*/
|
||||
(void)CommonMemCpy((void*)(pCiAppDataPointer + curIndex), (UINT32)(VIRTUAL_CI_INDICATOR_SUM_MAX) * sizeof(IndicatorDataStruct) ,(const void*)(&g_VirtualCIStructData.virtualCi[ii].IndicatorData) , (UINT32)(VIRTUAL_CI_INDICATOR_SUM_MAX) * sizeof(IndicatorDataStruct));
|
||||
curIndex = curIndex + (UINT32)((VIRTUAL_CI_INDICATOR_SUM_MAX) * sizeof(IndicatorDataStruct));
|
||||
}
|
||||
}
|
||||
|
||||
return curIndex;
|
||||
@@ -3034,12 +3317,12 @@ UINT8 SetCiGeneralData(const UINT8* pCiAppDataPointer, const UINT32 len)
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*ͬ����������������ѩ������Ϣ*/
|
||||
curResult = CopyValidSetDataStru(pCiAppDataPointer + curIndex, (void*)(szSendCiAreaSnow), CI_COM_CI_MAX_NUM, (UINT16)sizeof(ToCiAreaSnowStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
(void)CommonMemCpy((void*)(szSendCiAreaSnow), (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);
|
||||
|
||||
/*ͬ�������������������ѩ��Ϣ*/
|
||||
curResult = CopyValidSetDataStru(pCiAppDataPointer + curIndex, (void*)(szRecvCiAreaSnow), CI_COM_CI_MAX_NUM, (UINT16)sizeof(ToCiAreaSnowStruct));
|
||||
curIndex = curIndex + curResult;
|
||||
(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);
|
||||
|
||||
/* ����������ѩ���� */
|
||||
(void)CommonMemCpy((void*)(&g_LocalSnowModel), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
@@ -3064,6 +3347,64 @@ UINT8 SetCiGeneralData(const UINT8* pCiAppDataPointer, const UINT32 len)
|
||||
curResult = CopyValidSetOcOrginData(pCiAppDataPointer + curIndex, OC_SUM_MAX, &m_OcToCiOrginDataArr[0]);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*�뱾����ͨ�ŵ�CI������ͨ����ͷ����������*/
|
||||
curResult = CopyValidSetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), ciHLHTHeadCtxsCiToRc);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*�뱾����ͨ�ŵ�Rc������ͨ����ͷ����������*/
|
||||
curResult = CopyValidSetHlhtHeadCtxs(pCiAppDataPointer + curIndex, CI_SUM_MAX, (UINT16)sizeof(HLHTHeadContextStru), gSzRcHLHTHeadCtxsCiToRc);
|
||||
curIndex = curIndex + curResult;
|
||||
|
||||
/*ZC����������CBTC�г���ѹ��Ϣ*/
|
||||
gCbtcCrossNumZc = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1u;
|
||||
|
||||
for (ii = 0u; ii < gCbtcCrossNumZc; ii++)
|
||||
{
|
||||
gCbtcCrossStructZc[ii].wSignalId = ShortFromChar(&pCiAppDataPointer[curIndex]);
|
||||
curIndex += 2u;
|
||||
gCbtcCrossStructZc[ii].wTrainId = pCiAppDataPointer[curIndex];
|
||||
curIndex += 1u;
|
||||
}
|
||||
|
||||
/*����������������*/
|
||||
for (ii = 0U; ii < g_VirtualCIStructData.virtualCiNum; ii++)
|
||||
{
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].virtualCiId) , (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].chAllSignalBrightFlag), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].chAllSwitchYLockFlag), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].autoTriggerflag), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].cimode) , (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].chLabourCancelLinShiXianState) , (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwFlag), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwjHunXianFLag), (UINT32)sizeof(UINT8), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT8));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT8);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwStartCycNum) , (UINT32)sizeof(UINT32), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
|
||||
(void)CommonMemCpy((void*)(&g_VirtualCIStructData.virtualCi[ii].ZfwValidCycNum), (UINT32)sizeof(UINT32), (const void*)(pCiAppDataPointer + curIndex), (UINT32)sizeof(UINT32));
|
||||
curIndex = curIndex + (UINT32)sizeof(UINT32);
|
||||
|
||||
/*ָʾ��״̬����*/
|
||||
(void)CommonMemCpy((void*)(g_VirtualCIStructData.virtualCi[ii].IndicatorData), (UINT32)(VIRTUAL_CI_INDICATOR_SUM_MAX) * sizeof(IndicatorDataStruct), (const void*)(pCiAppDataPointer + curIndex), (UINT32)(VIRTUAL_CI_INDICATOR_SUM_MAX) * sizeof(IndicatorDataStruct));
|
||||
curIndex = curIndex + (UINT32)((VIRTUAL_CI_INDICATOR_SUM_MAX) * sizeof(IndicatorDataStruct));
|
||||
}
|
||||
|
||||
rtn = 1u;
|
||||
}
|
||||
else
|
||||
@@ -3219,6 +3560,8 @@ UINT32 CopyValidGetSigDataCC(UINT8* pCurCiAppDataPointer, UINT16 struNum, Signal
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstSignalDataStruCC[i].SignalCrossState;
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstSignalDataStruCC[i].wCrossTacsTrainId;
|
||||
curIndex++;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3285,6 +3628,8 @@ UINT32 CopyValidSetSigDataCC(UINT8* pCurCiAppDataPointer, UINT16 struNum, Signal
|
||||
curIndex++;
|
||||
pstSignalDataStruCC[devId].SignalCrossState = *(pCurCiAppDataPointer + curIndex);
|
||||
curIndex++;
|
||||
pstSignalDataStruCC[devId].wCrossTacsTrainId = *(pCurCiAppDataPointer + curIndex);
|
||||
curIndex++;
|
||||
|
||||
}
|
||||
else
|
||||
@@ -3458,19 +3803,19 @@ UINT32 CopyValidGetLogicSecDataCC(UINT8* pCurCiAppDataPointer, UINT16 struNum,Lo
|
||||
|
||||
for (j = 0U; j < pstLogSecDataStruCC[i].chTrainInfoSum; j++)
|
||||
{
|
||||
ShortToChar(pstLogSecDataStruCC[i].szTrainResData->wTrainId, (pCurCiAppDataPointer + curIndex));
|
||||
ShortToChar(pstLogSecDataStruCC[i].szTrainResData[j].wTrainId, (pCurCiAppDataPointer + curIndex));
|
||||
curIndex += 2U;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData->chTrainApplyState;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData[j].chTrainApplyState;
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData->chLogicResUsable;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData[j].chLogicResUsable;
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData->chLogicReturnState;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData[j].chLogicReturnState;
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData->chLogicUnlockState;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData[j].chLogicUnlockState;
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData->chTrainLevel;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szTrainResData[j].chTrainLevel;
|
||||
curIndex++;
|
||||
LongToChar(pstLogSecDataStruCC[i].szTrainResData->dwRcvUnlockCmdCyc, (pCurCiAppDataPointer + curIndex));
|
||||
LongToChar(pstLogSecDataStruCC[i].szTrainResData[j].dwRcvUnlockCmdCyc, (pCurCiAppDataPointer + curIndex));
|
||||
curIndex += 4U;
|
||||
}
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].cResReqOtherCIId;
|
||||
@@ -3495,11 +3840,11 @@ UINT32 CopyValidGetLogicSecDataCC(UINT8* pCurCiAppDataPointer, UINT16 struNum,Lo
|
||||
curIndex++;
|
||||
for (j = 0U; j < pstLogSecDataStruCC[i].chLogSecLockBelLogRouteSum; j++)
|
||||
{
|
||||
ShortToChar(pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData->wLogSecLockBelLogRouteId, (pCurCiAppDataPointer + curIndex));
|
||||
ShortToChar(pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData[j].wLogSecLockBelLogRouteId, (pCurCiAppDataPointer + curIndex));
|
||||
curIndex += 2U;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData->chLogSecLockBelLogRouteState;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData[j].chLogSecLockBelLogRouteState;
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData->wLogSecLockBelLogRouteDir;
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].szLogSecLockBelLogRouteData[j].wLogSecLockBelLogRouteDir;
|
||||
curIndex++;
|
||||
}
|
||||
*(pCurCiAppDataPointer + curIndex) = pstLogSecDataStruCC[i].LogSecLogLockState;
|
||||
@@ -3857,7 +4202,7 @@ UINT32 CopyGetZcSignalDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
/*�����*/
|
||||
if (NULL != pCurCiAppDataPointer)
|
||||
{
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
wSignalSum = GetSignalCurSum();
|
||||
@@ -3865,12 +4210,12 @@ UINT32 CopyGetZcSignalDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
{
|
||||
wSignalId = GetSignalId(ii);
|
||||
wBufIndex = GetSignalConfigBufIndex(wSignalId);
|
||||
cSignalBlongCiId = GetSignalBelongCiId(ii);
|
||||
cSignalBlongCiId = GetSignalBelongCiId(wSignalId);
|
||||
if (cLocalCiId == cSignalBlongCiId)
|
||||
{
|
||||
/*�������������źŻ�����*/
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(SignalDataStructZC), (const void*)(&gZcToCiDymDataStru.szSignalDataStruZc[wBufIndex]), sizeof(SignalDataStructZC));
|
||||
dwCurIndex += sizeof(SignalDataStructZC);
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(SignalDataStructZC)), (const void*)(&gZcToCiDymDataStru.szSignalDataStruZc[wBufIndex]), (UINT32)(sizeof(SignalDataStructZC)));
|
||||
dwCurIndex += (UINT32)(sizeof(SignalDataStructZC));
|
||||
wValidDevNum++;
|
||||
}
|
||||
else
|
||||
@@ -3911,7 +4256,7 @@ UINT32 CopySetZcSignalDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
/*��ȡ���豸����*/
|
||||
wValidDevNum = ShortFromChar(pCurCiAppDataPointer);
|
||||
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
/*ͬ��ǰ������*/
|
||||
(void)CommonMemSet((void*)(gZcToCiDymDataStru.szSignalDataStruZc), (UINT32)(sizeof(SignalDataStructZC) * SIGNAL_SUM_MAX), (UINT8)0U, (UINT32)(sizeof(SignalDataStructZC) * SIGNAL_SUM_MAX));
|
||||
@@ -3923,14 +4268,14 @@ UINT32 CopySetZcSignalDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
wBufIndex = GetSignalConfigBufIndex(wSignalId);
|
||||
if (wBufIndex < SIGNAL_SUM_MAX)
|
||||
{
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.szSignalDataStruZc[wBufIndex]), sizeof(SignalDataStructZC), (const void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(SignalDataStructZC));
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.szSignalDataStruZc[wBufIndex]), (UINT32)(sizeof(SignalDataStructZC)), (const void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(SignalDataStructZC)));
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nCopySetZcSignalDymDataStru: wSignalId[%d] Is Invalid\n", wSignalId);
|
||||
}
|
||||
|
||||
dwCurIndex += sizeof(SignalDataStructZC);
|
||||
dwCurIndex += (UINT32)(sizeof(SignalDataStructZC));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -3962,7 +4307,7 @@ UINT32 CopyGetZcLogSecDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
/*�����*/
|
||||
if (NULL != pCurCiAppDataPointer)
|
||||
{
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
wLogSecSum = GetLogicSecCurSum();
|
||||
@@ -3970,12 +4315,12 @@ UINT32 CopyGetZcLogSecDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
{
|
||||
wLogSecId = GetLogicSecId(ii);
|
||||
wBufIndex = GetlogSectionBufIndex(wLogSecId);
|
||||
cLogSecBlongCiId = GetLogSecBelongCiId(ii);
|
||||
cLogSecBlongCiId = GetLogSecBelongCiId(wLogSecId);
|
||||
if (cLocalCiId == cLogSecBlongCiId)
|
||||
{
|
||||
/*����������������������*/
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(LogicSectionDataStructZC), (const void*)(&gZcToCiDymDataStru.LogicSectionDataStruZc[wBufIndex]), sizeof(LogicSectionDataStructZC));
|
||||
dwCurIndex += sizeof(LogicSectionDataStructZC);
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(LogicSectionDataStructZC)), (const void*)(&gZcToCiDymDataStru.LogicSectionDataStruZc[wBufIndex]), (UINT32)(sizeof(LogicSectionDataStructZC)));
|
||||
dwCurIndex += (UINT32)(sizeof(LogicSectionDataStructZC));
|
||||
wValidDevNum++;
|
||||
}
|
||||
else
|
||||
@@ -4016,7 +4361,7 @@ UINT32 CopySetZcLogSecDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
/*��ȡ���豸����*/
|
||||
wValidDevNum = ShortFromChar(pCurCiAppDataPointer);
|
||||
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
/*ͬ��ǰ������*/
|
||||
(void)CommonMemSet((void*)(gZcToCiDymDataStru.LogicSectionDataStruZc), (UINT32)(sizeof(LogicSectionDataStructZC) * LOGIC_SECTION_SUM_MAX), (UINT8)0U, (UINT32)(sizeof(LogicSectionDataStructZC) * LOGIC_SECTION_SUM_MAX));
|
||||
@@ -4028,14 +4373,14 @@ UINT32 CopySetZcLogSecDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
wBufIndex = GetlogSectionBufIndex(wLogSecId);
|
||||
if (wBufIndex < LOGIC_SECTION_SUM_MAX)
|
||||
{
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.LogicSectionDataStruZc[wBufIndex]), sizeof(LogicSectionDataStructZC), (const void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(LogicSectionDataStructZC));
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.LogicSectionDataStruZc[wBufIndex]), (UINT32)(sizeof(LogicSectionDataStructZC)), (const void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(LogicSectionDataStructZC)));
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nCopySetZcLogSecDymDataStru: wLogSecId[%d] Is Invalid\n", wLogSecId);
|
||||
}
|
||||
|
||||
dwCurIndex += sizeof(LogicSectionDataStructZC);
|
||||
dwCurIndex += (UINT32)(sizeof(LogicSectionDataStructZC));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4067,7 +4412,7 @@ UINT32 CopyGetZcAxisSecDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
/*�����*/
|
||||
if (NULL != pCurCiAppDataPointer)
|
||||
{
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
wAxisSecSum = GetAxisSecCurSum();
|
||||
@@ -4075,12 +4420,12 @@ UINT32 CopyGetZcAxisSecDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
{
|
||||
wAxisSecId = GetAxisSecId(ii);
|
||||
wBufIndex = GetAxisSecConfigBufIndex(wAxisSecId);
|
||||
cAxisSecBlongCiId = GetAxisSectionBelongCiId(ii);
|
||||
cAxisSecBlongCiId = GetAxisSectionBelongCiId(wAxisSecId);
|
||||
if (cLocalCiId == cAxisSecBlongCiId)
|
||||
{
|
||||
/*������������������������*/
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(AxisSectionDataStructZC), (const void*)(&gZcToCiDymDataStru.AxisSectionDataStruZc[wBufIndex]), sizeof(AxisSectionDataStructZC));
|
||||
dwCurIndex += sizeof(AxisSectionDataStructZC);
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(AxisSectionDataStructZC)), (const void*)(&gZcToCiDymDataStru.AxisSectionDataStruZc[wBufIndex]), (UINT32)(sizeof(AxisSectionDataStructZC)));
|
||||
dwCurIndex += (UINT32)(sizeof(AxisSectionDataStructZC));
|
||||
wValidDevNum++;
|
||||
}
|
||||
else
|
||||
@@ -4121,7 +4466,7 @@ UINT32 CopySetZcAxisSecDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
/*��ȡ���豸����*/
|
||||
wValidDevNum = ShortFromChar(pCurCiAppDataPointer);
|
||||
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
/*ͬ��ǰ������*/
|
||||
(void)CommonMemSet((void*)(gZcToCiDymDataStru.AxisSectionDataStruZc), (UINT32)(sizeof(AxisSectionDataStructZC) * AXIS_SECTION_SUM_MAX), (UINT8)0U, (UINT32)(sizeof(AxisSectionDataStructZC) * AXIS_SECTION_SUM_MAX));
|
||||
@@ -4133,14 +4478,14 @@ UINT32 CopySetZcAxisSecDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
wBufIndex = GetAxisSecConfigBufIndex(wAxisSecId);
|
||||
if (wBufIndex < AXIS_SECTION_SUM_MAX)
|
||||
{
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.AxisSectionDataStruZc[wBufIndex]), sizeof(AxisSectionDataStructZC), (const void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(AxisSectionDataStructZC));
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.AxisSectionDataStruZc[wBufIndex]), (UINT32)(sizeof(AxisSectionDataStructZC)), (const void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(AxisSectionDataStructZC)));
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nCopySetZcAxisSecDymDataStru: wAxisSecId[%d] Is Invalid\n", wAxisSecId);
|
||||
}
|
||||
|
||||
dwCurIndex += sizeof(AxisSectionDataStructZC);
|
||||
dwCurIndex += (UINT32)(sizeof(AxisSectionDataStructZC));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4172,7 +4517,7 @@ UINT32 CopyGetZcPhySecDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
/*�����*/
|
||||
if (NULL != pCurCiAppDataPointer)
|
||||
{
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
wPhySecSum = GetPhySecCurSum();
|
||||
@@ -4180,12 +4525,12 @@ UINT32 CopyGetZcPhySecDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
{
|
||||
wPhySecId = GetPhySecId(ii);
|
||||
wBufIndex = GetPhySecConfigBufIndex(wPhySecId);
|
||||
cPhySecBlongCiId = GetPhySecBelongCiId(ii);
|
||||
cPhySecBlongCiId = GetPhySecBelongCiId(wPhySecId);
|
||||
if (cLocalCiId == cPhySecBlongCiId)
|
||||
{
|
||||
/*������������������������*/
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(PhysicalSectionDataStructZC), (const void*)(&gZcToCiDymDataStru.PhysicalSectionDataStruZc[wBufIndex]), sizeof(PhysicalSectionDataStructZC));
|
||||
dwCurIndex += sizeof(PhysicalSectionDataStructZC);
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(PhysicalSectionDataStructZC)), (const void*)(&gZcToCiDymDataStru.PhysicalSectionDataStruZc[wBufIndex]), (UINT32)(sizeof(PhysicalSectionDataStructZC)));
|
||||
dwCurIndex += (UINT32)(sizeof(PhysicalSectionDataStructZC));
|
||||
wValidDevNum++;
|
||||
}
|
||||
else
|
||||
@@ -4226,7 +4571,7 @@ UINT32 CopySetZcPhySecDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
/*��ȡ���豸����*/
|
||||
wValidDevNum = ShortFromChar(pCurCiAppDataPointer);
|
||||
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
/*ͬ��ǰ������*/
|
||||
(void)CommonMemSet((void*)(gZcToCiDymDataStru.PhysicalSectionDataStruZc), (UINT32)(sizeof(PhysicalSectionDataStructZC) * PHYSICAL_SECTION_SUM_MAX), (UINT8)0U, (UINT32)(sizeof(PhysicalSectionDataStructZC) * PHYSICAL_SECTION_SUM_MAX));
|
||||
@@ -4238,14 +4583,14 @@ UINT32 CopySetZcPhySecDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
wBufIndex = GetPhySecConfigBufIndex(wPhySecId);
|
||||
if (wBufIndex < PHYSICAL_SECTION_SUM_MAX)
|
||||
{
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.PhysicalSectionDataStruZc[wBufIndex]), sizeof(PhysicalSectionDataStructZC), (const void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(PhysicalSectionDataStructZC));
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.PhysicalSectionDataStruZc[wBufIndex]), (UINT32)(sizeof(PhysicalSectionDataStructZC)), (const void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(PhysicalSectionDataStructZC)));
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nCopySetZcPhySecDymDataStru: wPhySecId[%d] Is Invalid\n", wPhySecId);
|
||||
}
|
||||
|
||||
dwCurIndex += sizeof(PhysicalSectionDataStructZC);
|
||||
dwCurIndex += (UINT32)(sizeof(PhysicalSectionDataStructZC));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4277,7 +4622,7 @@ UINT32 CopyGetZcRouteDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
/*�����*/
|
||||
if (NULL != pCurCiAppDataPointer)
|
||||
{
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
wRouteSum = GetRouteCurSum();
|
||||
@@ -4285,12 +4630,12 @@ UINT32 CopyGetZcRouteDymDataStru(UINT8* pCurCiAppDataPointer)
|
||||
{
|
||||
wRouteId = GetRouteId(ii);
|
||||
wBufIndex = GetRouteConfigBufIndex(wRouteId);
|
||||
cRouteBlongCiId = GetRouteBelongCiId(ii);
|
||||
cRouteBlongCiId = GetRouteBelongCiId(wRouteId);
|
||||
if (cLocalCiId == cRouteBlongCiId)
|
||||
{
|
||||
/*��������������·����*/
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(RouteDataStructZC), (const void*)(&gZcToCiDymDataStru.szRouteDataStruZc[wBufIndex]), sizeof(RouteDataStructZC));
|
||||
dwCurIndex += sizeof(RouteDataStructZC);
|
||||
(void)CommonMemCpy((void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(RouteDataStructZC)), (const void*)(&gZcToCiDymDataStru.szRouteDataStruZc[wBufIndex]), (UINT32)(sizeof(RouteDataStructZC)));
|
||||
dwCurIndex += (UINT32)(sizeof(RouteDataStructZC));
|
||||
wValidDevNum++;
|
||||
}
|
||||
else
|
||||
@@ -4331,7 +4676,7 @@ UINT32 CopySetZcRouteDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
/*��ȡ���豸����*/
|
||||
wValidDevNum = ShortFromChar(pCurCiAppDataPointer);
|
||||
|
||||
dwCurIndex += sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
dwCurIndex += (UINT32)(sizeof(UINT16)); /*�������ֽ��豸����*/
|
||||
|
||||
/*ͬ��ǰ������*/
|
||||
(void)CommonMemSet((void*)(gZcToCiDymDataStru.szRouteDataStruZc), (UINT32)(sizeof(RouteDataStructZC) * ROUTE_SUM_MAX), (UINT8)0U, (UINT32)(sizeof(RouteDataStructZC) * ROUTE_SUM_MAX));
|
||||
@@ -4343,14 +4688,14 @@ UINT32 CopySetZcRouteDymDataStru(const UINT8* pCurCiAppDataPointer)
|
||||
wBufIndex = GetRouteConfigBufIndex(wRouteId);
|
||||
if (wBufIndex < ROUTE_SUM_MAX)
|
||||
{
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.szRouteDataStruZc[wBufIndex]), sizeof(RouteDataStructZC), (const void*)(pCurCiAppDataPointer + dwCurIndex), sizeof(RouteDataStructZC));
|
||||
(void)CommonMemCpy((void*)(&gZcToCiDymDataStru.szRouteDataStruZc[wBufIndex]), (UINT32)(sizeof(RouteDataStructZC)), (const void*)(pCurCiAppDataPointer + dwCurIndex), (UINT32)(sizeof(RouteDataStructZC)));
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nCopySetZcRouteDymDataStru: wRouteId[%d] Is Invalid\n", wRouteId);
|
||||
}
|
||||
|
||||
dwCurIndex += sizeof(RouteDataStructZC);
|
||||
dwCurIndex += (UINT32)(sizeof(RouteDataStructZC));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4396,7 +4741,7 @@ UINT32 CopyValidSetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo
|
||||
{
|
||||
m_OcToCiOrginDataNum = (UINT8)ValidIdNum;
|
||||
/*����*/
|
||||
//printf("m_OcToCiOrginDataNum = %d\n", m_OcToCiOrginDataNum);
|
||||
debug_infor_printf((char*)"m_OcToCiOrginDataNum = %d\n", m_OcToCiOrginDataNum);
|
||||
(void)CommonMemSet(OcRecvData, (UINT32)((OC_SUM_MAX)* sizeof(OcToCiOriginDataStruct)), 0U, (UINT32)((OC_SUM_MAX)* sizeof(OcToCiOriginDataStruct))); /*����սṹ���ֹ������*/
|
||||
for (i = 0U; i < ValidIdNum; i++)
|
||||
{
|
||||
@@ -4432,6 +4777,8 @@ UINT32 CopyValidSetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo
|
||||
curIndex++;
|
||||
pOcDevice->BoardState[j] = *(pCurCiAppDataPointer + curIndex);
|
||||
curIndex++;
|
||||
pOcDevice->MainStandbyState[j] = *(pCurCiAppDataPointer + curIndex);
|
||||
curIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4577,7 +4924,6 @@ UINT32 CopyValidSetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo
|
||||
UINT32 CopyValidGetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcToCiOriginDataStruct OcRecvData[])
|
||||
{
|
||||
UINT32 curIndex = 0U;
|
||||
UINT16 ValidIdNum = 0U;
|
||||
UINT16 i = 0U;
|
||||
UINT16 k = 0U;
|
||||
UINT8 j = 0U;
|
||||
@@ -4598,9 +4944,8 @@ UINT32 CopyValidGetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo
|
||||
ShortToChar(m_OcToCiOrginDataNum, pCurCiAppDataPointer);
|
||||
curIndex += (UINT32)sizeof(UINT16); /*�������ֽ��豸����*/
|
||||
//printf("m_OcToCiOrginDataNum = %d\n", m_OcToCiOrginDataNum);
|
||||
if (struNum > ValidIdNum)
|
||||
{
|
||||
for (i = 0U; i < m_OcToCiOrginDataNum; i++)
|
||||
|
||||
for (i = 0U; i < m_OcToCiOrginDataNum; i++)
|
||||
{
|
||||
ShortToChar(OcRecvData[i].OcId, (pCurCiAppDataPointer + curIndex));
|
||||
curIndex += 2U;
|
||||
@@ -4631,6 +4976,8 @@ UINT32 CopyValidGetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pOcDevice->BoardState[j];
|
||||
curIndex++;
|
||||
*(pCurCiAppDataPointer + curIndex) = pOcDevice->MainStandbyState[j];
|
||||
curIndex++;
|
||||
}
|
||||
}
|
||||
ShortToChar(OcRecvData[i].OcGdNum, (pCurCiAppDataPointer + curIndex));
|
||||
@@ -4747,7 +5094,7 @@ UINT32 CopyValidGetOcOrginData(UINT8* pCurCiAppDataPointer, UINT16 struNum, OcTo
|
||||
LongToChar(OcRecvData[i].ComStartCycle, (pCurCiAppDataPointer + curIndex));
|
||||
curIndex += 4U;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
#include "../Route/LogicalRouteDataManage.h"
|
||||
#include "../Route/LongRouteDataManage.h"
|
||||
#include "../ReverseCut/ReverseCutDataManage.h"
|
||||
#include "../AxisSort/AxisSort.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -153,6 +154,20 @@ UINT32 CopyValidSetVobcBackHlht(const UINT8 *pCurCiAppDataPointer, UINT16 struNu
|
||||
*/
|
||||
UINT32 CopyValidSetVobcDataStru(const UINT8* pCurCiAppDataPointer, VobcToCiDataStruct* pDataStru, UINT16 struNum);
|
||||
|
||||
/*
|
||||
* 功能描述: 拷贝RC通信的VOBC有效数据到对应的全局数组
|
||||
* 参数说明:
|
||||
输入参数
|
||||
const UINT8 *pCurCiAppDataPointer:当前数据指针
|
||||
UINT16 struNum:数组长度,
|
||||
UINT16 struLength:结构体长度
|
||||
输出参数
|
||||
void *pDataStru:结构体指针,
|
||||
* 返回值 : 拷贝数据的长度
|
||||
*/
|
||||
UINT32 CopyValidSetRcVobcDataStru(const UINT8* pCurCiAppDataPointer, void* pDataStru, UINT16 struNum, UINT16 struLength);
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述:拷贝ITE有效数据到对应的全局数组
|
||||
* 参数说明:const UINT8 *pCurCiAppDataPointer:当前数据指针
|
||||
|
||||
@@ -125,6 +125,27 @@ UINT8 GetAllAutoReturnRouteBelongCiId(const UINT16 allAutoReturnId)
|
||||
|
||||
return belongCiId;
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取指定ID全自动折返所属虚拟联锁ID
|
||||
* 参数说明: const UINT16 allAutoReturnId, 全自动折返ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属虚拟联锁ID
|
||||
* add by mpt 20260107
|
||||
*/
|
||||
UINT8 GetAllAutoRetRoutBelongVirCiId(const UINT16 allAutoReturnId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 belongVirCiId = CI_ERROR;
|
||||
|
||||
bufIndex = GetAllAutoReturnBufIndex(allAutoReturnId); /*获取全自动折返数组下标*/
|
||||
|
||||
if (bufIndex < ALL_AUTO_RETURN_SUM_MAX)
|
||||
{
|
||||
belongVirCiId = AllAutoReturnConfigDataStru[bufIndex].BelongVirCiId;
|
||||
}
|
||||
|
||||
return belongVirCiId;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID全自动折返包含进路ID数组
|
||||
|
||||
@@ -34,6 +34,7 @@ typedef struct S_AllAutoReturnConfigDataStruct
|
||||
{
|
||||
UINT16 AllAutoReturnId; /*全自动折返ID (配置字段)*/
|
||||
UINT8 BelongCiId; /*所属联锁ID*/
|
||||
UINT8 BelongVirCiId; /*虚拟联锁ID*/
|
||||
UINT8 RouteSum; /*全自动折返包含进路数目 (配置字段)*/
|
||||
UINT16 RouteIdBuf[ALL_AUTO_RETURN_INCLROUTE_SUM_MAX]; /*全自动折返进路ID数组 (配置字段)*/
|
||||
UINT16 RebackRouteIdBuf[ALL_AUTO_RETURN_REBACKROUTE_SUM_MAX]; /*全自动折返包含折出进路数组(配置字段)*/
|
||||
@@ -92,6 +93,14 @@ UINT8 GetAllAutoReturnIncludeRouteSum(const UINT16 allAutoReturnId);
|
||||
* >0: 所属联锁ID
|
||||
*/
|
||||
UINT8 GetAllAutoReturnRouteBelongCiId(const UINT16 allAutoReturnId);
|
||||
/*
|
||||
* 功能描述: 获取指定ID全自动折返所属虚拟联锁ID
|
||||
* 参数说明: const UINT16 allAutoReturnId, 全自动折返ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属虚拟联锁ID
|
||||
* add by mpt 20260107
|
||||
*/
|
||||
UINT8 GetAllAutoRetRoutBelongVirCiId(const UINT16 allAutoReturnId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID全自动折返包含进路ID数组
|
||||
|
||||
@@ -119,6 +119,27 @@ UINT8 GetAutoReturnRouteBelongCiId(const UINT16 autoReturnId)
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取指定ID自动折返所属虚拟联锁ID
|
||||
* 参数说明: const UINT16 autoReturnId, 自动折返ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属联锁ID
|
||||
* add by mpt 20260107
|
||||
*/
|
||||
UINT8 GetAutoReturnRouteBelongVirCiId(const UINT16 autoReturnId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 returnValue = CI_ERROR;
|
||||
|
||||
bufIndex = GetAutoReturnBufIndex(autoReturnId); /*获取自动折返数组下标*/
|
||||
|
||||
if (bufIndex < AUTO_RETURN_SUM_MAX)
|
||||
{
|
||||
returnValue = AutoReturnConfigDataStru[bufIndex].BelongVirCiId;
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID自动折返包含进路ID数组
|
||||
|
||||
@@ -34,6 +34,7 @@ typedef struct S_AutoReturnConfigDataStruct
|
||||
{
|
||||
UINT16 AutoReturnId; /*自动折返ID (配置字段)*/
|
||||
UINT8 BelongCiId; /*所属联锁ID*/
|
||||
UINT8 BelongVirCiId; /*所属虚拟联锁ID*/
|
||||
UINT8 RouteSum; /*自动折返包含进路数目 (配置字段)*/
|
||||
UINT16 RouteIdBuf[AUTO_RETURN_INCLROUTE_SUM_MAX]; /*自动折返进路包含进路ID数组 (配置字段)*/
|
||||
UINT8 AutoReturnOpposedReturnIdSum; /*自动折返抵触自动折返进路数目 (配置字段)*/
|
||||
@@ -88,6 +89,14 @@ UINT8 GetAutoReturnIncludeRouteSum(const UINT16 autoReturnId);
|
||||
* >0: 所属联锁ID
|
||||
*/
|
||||
UINT8 GetAutoReturnRouteBelongCiId(const UINT16 autoReturnId);
|
||||
/*
|
||||
* 功能描述: 获取指定ID自动折返所属虚拟联锁ID
|
||||
* 参数说明: const UINT16 autoReturnId, 自动折返ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属联锁ID
|
||||
* add by mpt 20260107
|
||||
*/
|
||||
UINT8 GetAutoReturnRouteBelongVirCiId(const UINT16 autoReturnId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID自动折返包含进路ID数组
|
||||
|
||||
@@ -97,6 +97,26 @@ UINT8 GetAutoRouteBelongCiId(const UINT16 autoRouteId)
|
||||
}
|
||||
return belongCiId;
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取指定ID自动进路所属虚拟联锁ID
|
||||
* 参数说明: const UINT16 autoRouteId, 自动进路ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属联锁ID
|
||||
* add by mpt 20260107
|
||||
*/
|
||||
UINT8 GetAutoRouteBelongVirCiId(const UINT16 autoRouteId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 belongVirCiId = CI_ERROR;
|
||||
|
||||
bufIndex = GetAutoRouteBufIndex(autoRouteId); /*获取自动进路数组下标*/
|
||||
|
||||
if (bufIndex < AUTO_ROUTE_SUM_MAX)
|
||||
{
|
||||
belongVirCiId = AutoRouteConfigDataStru[bufIndex].BelongVirCiId;
|
||||
}
|
||||
return belongVirCiId;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -32,6 +32,7 @@ typedef struct S_AutoRouteConfigDataStruct
|
||||
{
|
||||
UINT16 AutoRouteId; /*自动进路ID (配置字段)*/
|
||||
UINT8 BelongCiId; /*所属联锁ID*/
|
||||
UINT8 BelongVirCiId; /*所属虚拟联锁ID*/
|
||||
UINT8 RouteSum; /*自动进路包含进路数目 (配置字段)*/
|
||||
UINT16 RouteIdBuf[AUTO_ROUTE_INCLROUTE_SUM_MAX]; /*自动进路进路ID数组 (配置字段)*/
|
||||
UINT8 AutoRouteOpposedRouteIdSum; /*自动通过进路抵触自动通过进路数目 (配置字段)*/
|
||||
@@ -89,6 +90,13 @@ UINT16 GetAutoRouteBufIndex(const UINT16 AutoRouteId);
|
||||
* >0: 所属联锁ID
|
||||
*/
|
||||
UINT8 GetAutoRouteBelongCiId(const UINT16 autoRouteId);
|
||||
/*
|
||||
* 功能描述: 获取指定ID自动进路所属虚拟联锁ID
|
||||
* 参数说明: const UINT16 autoRouteId, 自动进路ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 所属联锁ID
|
||||
*/
|
||||
UINT8 GetAutoRouteBelongVirCiId(const UINT16 autoRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID自动进路包含进路数目
|
||||
|
||||
@@ -394,7 +394,7 @@ static UINT8 aam_AxisErrorJudge(UINT16 acID,UINT16 acIndex)
|
||||
; /*继续处理*/
|
||||
}
|
||||
/** 判断相邻范围内计轴坏车最近占用时间检查通过 */
|
||||
if ((CI_ERROR == chNearbyCheck))
|
||||
if (CI_ERROR == chNearbyCheck)
|
||||
{
|
||||
/*有 坏车接近 或左右相邻计轴均无车接近 立即清除冗余计时*/
|
||||
if ((AAM_BAD_NEAR == sameTrainType) || (AAM_BAD_NEAR == convertTrainType))
|
||||
@@ -423,7 +423,6 @@ static UINT8 aam_AxisErrorJudge(UINT16 acID,UINT16 acIndex)
|
||||
/** 冗余计时位加1*/
|
||||
aam_AddRedunTime(acIndex, maxRedunTimes);
|
||||
}
|
||||
|
||||
/** 计轴故障的判断 */
|
||||
tmpRedunTime = aam_GetRedunTime(acIndex);
|
||||
tmppassTrainType = aam_GetPassTrainFlag(acIndex);
|
||||
@@ -2111,7 +2110,7 @@ UINT8 aam_ArbContinuousOccCheck(UINT16 wAcId, UINT8 cNearAcNum, UINT16 pNearAcId
|
||||
UINT8 cRetVal = CI_ERROR;
|
||||
UINT16 wBufIndex = 0U;
|
||||
UINT16 wCurRelPhySecId = 0U; /*本计轴区段所属物理区段ID*/
|
||||
UINT8 dwCiAndAxleTransBadEnsureCnt = 0U; /*判断与计轴通信中断周期数*/
|
||||
UINT32 dwCiAndAxleTransBadEnsureCnt = 0U; /*判断与计轴通信中断周期数*/
|
||||
UINT32 dwCurAxleOccStartCycNum = 0U; /*本计轴区段占用起始周期*/
|
||||
UINT8 ii = 0U;
|
||||
UINT16 wNearRelPhySecId = 0U; /*相邻计轴区段所属物理区段ID*/
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
static UINT16 g_pSortLinkNum; /* 本控区的Link数量 */
|
||||
static UINT16 g_pSortLinkIndex[AS_LINK_MAX + 1U]; /* 本控区的Link索引 */
|
||||
|
||||
static AS_SORT_INFO_s g_pSortLinkInfo[AS_LINK_MAX + 1U]; /*link排序*/
|
||||
AS_SORT_INFO_s g_pSortLinkInfo[AS_LINK_MAX + 1U]; /*link排序*/
|
||||
|
||||
/* 通信车序列,在SortCT阶段完成CT车排序 */
|
||||
static UINT16 s_pCTSortIndex[SIZE_MAX_LINE_TRAIN_NUM]; /*本信息不周期清空*/
|
||||
@@ -2188,12 +2188,34 @@ UINT32 as_GetTransferData(OUT UINT8 * pDataBuff, IN UINT32 curIndex)
|
||||
{
|
||||
UINT32 ret = curIndex;
|
||||
UINT32 copyIndex = curIndex;
|
||||
UINT16 wLinkNum = 0U;
|
||||
UINT16 u16Index = 0U;
|
||||
UINT16 wTmpLinkId = 0U;
|
||||
UINT8 chLocalId = GetSystemParaLocalCiId();
|
||||
UINT8 chLinkCIId = 0U;/*link所属联锁*/
|
||||
UINT32 dwLinkNumIndex =0U;/*数量位置 */
|
||||
if (NULL != pDataBuff)
|
||||
{
|
||||
(void)CommonMemCpy(&pDataBuff[copyIndex], (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM), s_pCTSortIndex, (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM));
|
||||
copyIndex += (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM);
|
||||
(void)CommonMemCpy(&pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u), s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u));
|
||||
copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u);
|
||||
(void)CommonMemCpy(&pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)), s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)));
|
||||
copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U));
|
||||
/*拷贝link列车排序*/
|
||||
dwLinkNumIndex = copyIndex;
|
||||
copyIndex += 2U;
|
||||
for (u16Index = 1U; u16Index <= g_pSortLinkNum; u16Index++)
|
||||
{
|
||||
wTmpLinkId = g_pSortLinkInfo[u16Index].u16ID;
|
||||
chLinkCIId = (UINT8)GetLinkManageTiocById(wTmpLinkId);
|
||||
if ((0U != chLocalId) && (chLinkCIId == chLocalId))
|
||||
{
|
||||
/*仅拷贝本联锁*/
|
||||
(void)CommonMemCpy(&pDataBuff[copyIndex],(UINT32)(sizeof(AS_SORT_INFO_s)), &g_pSortLinkInfo[u16Index], (UINT32)(sizeof(AS_SORT_INFO_s)));
|
||||
copyIndex += (UINT32)(sizeof(AS_SORT_INFO_s));
|
||||
wLinkNum++;
|
||||
}
|
||||
}
|
||||
ShortToChar(wLinkNum, &pDataBuff[dwLinkNumIndex]); /* 写入有车占用的计轴区段数量 */
|
||||
ret = copyIndex;
|
||||
}
|
||||
else
|
||||
@@ -2215,12 +2237,29 @@ UINT32 as_SetTransferData(IN UINT8 * pDataBuff, IN UINT32 curIndex)
|
||||
{
|
||||
UINT32 ret = curIndex;
|
||||
UINT32 copyIndex = curIndex;
|
||||
UINT16 wLinkNum = 0U;
|
||||
UINT16 jj = 0U;
|
||||
UINT16 wTmpLinkId =0U;
|
||||
UINT16 wLinkIndex = 0U;
|
||||
if (NULL != pDataBuff)
|
||||
{
|
||||
(void)CommonMemCpy(s_pCTSortIndex, (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM), &pDataBuff[copyIndex], (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM));
|
||||
copyIndex += (UINT32)(sizeof(UINT16) * SIZE_MAX_LINE_TRAIN_NUM);
|
||||
(void)CommonMemCpy(s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u), &pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u));
|
||||
copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * SIZE_MAX_COM_VOBC_NUM + 1u);
|
||||
(void)CommonMemCpy(s_pCTSortInfo, (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)), &pDataBuff[copyIndex], (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U)));
|
||||
copyIndex += (UINT32)(sizeof(CT_SORT_INFO_s) * (SIZE_MAX_COM_VOBC_NUM + 1U));
|
||||
/*拷贝列车排序*/
|
||||
wLinkNum = ShortFromChar(&pDataBuff[copyIndex]);
|
||||
copyIndex += 2u;
|
||||
for (jj = 0U; jj < wLinkNum; jj++)
|
||||
{
|
||||
wTmpLinkId = ShortFromCharLE(&pDataBuff[copyIndex]);
|
||||
wLinkIndex = g_pSortLinkIndex[wTmpLinkId];
|
||||
if ((DEFAULT_ZERO < wLinkIndex) && (wLinkIndex < AS_LINK_MAX+1U))
|
||||
{
|
||||
(void)CommonMemCpy(&g_pSortLinkInfo[wLinkIndex], (UINT32)(sizeof(AS_SORT_INFO_s)), &pDataBuff[copyIndex], (UINT32)(sizeof(AS_SORT_INFO_s)));
|
||||
copyIndex += (UINT32)(sizeof(AS_SORT_INFO_s));
|
||||
}
|
||||
}
|
||||
ret = copyIndex;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -48,5 +48,5 @@ typedef struct
|
||||
UINT16 TrainEnveLopeID[ENVELOPE_SUM_MAX]; /*所有包络ID信息*/
|
||||
}s_TRAIN_ENVELOPE_ID;
|
||||
|
||||
|
||||
extern AS_SORT_INFO_s g_pSortLinkInfo[AS_LINK_MAX + 1U]; /*link排序*/
|
||||
#endif /* INC_AXIS_SORT_INC */
|
||||
@@ -792,6 +792,7 @@ void SetCfpLocalOcCtData(const UINT16 wCfpId)
|
||||
UINT8 chSendNum = 0u;
|
||||
UINT8 chFunRtn = CI_ERROR;
|
||||
struct_PathPoint strPoint = { 0u };
|
||||
UINT8 dir = 0u;
|
||||
|
||||
wIndex = GetCfpBufIndex(wCfpId);
|
||||
/* 输入合法 */
|
||||
@@ -812,7 +813,9 @@ void SetCfpLocalOcCtData(const UINT16 wCfpId)
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].dwDelay = GetTrainMsgDelayTime(szCtTrainId[chCtIndex]);
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].wSpeed = GetTrainSpeed(szCtTrainId[chCtIndex]);
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].chSpeedDir = GetTrainSpeedDir(szCtTrainId[chCtIndex]);
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].chTrainDir = GetTrainDir(szCtTrainId[chCtIndex]);
|
||||
|
||||
dir = GetTrainDir(szCtTrainId[chCtIndex]); /*获取列车的逻辑方向*/
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].chTrainDir = ConvertDirectionToLogic(dir); /*将逻辑方向转换为运营方向*/
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].wMaxHeadLink = GetTrainMaxHeadLink(szCtTrainId[chCtIndex]);
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].dwMaxHeadOff = GetTrainMaxHeadOffset(szCtTrainId[chCtIndex]);
|
||||
g_CutoffPointDataBuf[wIndex].szLocalCtTrain[chSendNum].wMinHeadLink = GetTrainMinHeadLink(szCtTrainId[chCtIndex]);
|
||||
@@ -1629,7 +1632,7 @@ void OtherCfpTrainInfoCal(UINT16 wLinkId,UINT32 dwOffSet,UINT32 dwLocalOffSet, C
|
||||
{
|
||||
chLinkTiocId = (UINT8)GetLinkManageTiocById(wLinkId);
|
||||
strCfpInfo = GetCfpOtherOcTrainInfo(wCfpId);
|
||||
chTransmitStat = GetCiTransmitState(CI_SYSTEM_TYPE_RCI, chLinkTiocId);
|
||||
chTransmitStat = GetRcPbTacsTransmitState(chLinkTiocId);
|
||||
if ((TRANSMIT_STATE_GOOD != chTransmitStat) || (UINT16_MAX == strCfpInfo.wTrainId))
|
||||
{
|
||||
;/*通信不良好,或者分界点列车信息获取失败*/
|
||||
|
||||
@@ -105,37 +105,34 @@ SAME_LINE_ERR,
|
||||
*/
|
||||
UINT8 IsSameLineCI(const UINT8 ciA, const UINT8 ciB)
|
||||
{
|
||||
UINT32 etcsIdA, etcsIdB;
|
||||
UINT16 u16CiA, u16CiB;
|
||||
UINT32 etcsIdA = 0U;
|
||||
UINT32 etcsIdB = 0U;
|
||||
UINT16 u16CiA = 0U;
|
||||
UINT16 u16CiB = 0U;
|
||||
UINT8 retVal = SAME_LINE_ERR;
|
||||
UINT8 cbtcSysType = DQU_CBTC_FAO;
|
||||
UINT8 dquDevNameA = CI_ERROR;
|
||||
UINT8 dquDevNameB = CI_ERROR;
|
||||
UINT8 chCiAFactoryType = 0U;
|
||||
UINT8 chCiBFactoryType = 0U;
|
||||
|
||||
u16CiA = (UINT16)((CI_SYSTEM_TYPE_RCI * 256u) + ciA);
|
||||
u16CiB = (UINT16)((CI_SYSTEM_TYPE_RCI * 256u) + ciB);
|
||||
u16CiA = (UINT16)((CI_SYSTEM_TYPE_RCI * 256U) + ciA);
|
||||
u16CiB = (UINT16)((CI_SYSTEM_TYPE_RCI * 256U) + ciB);
|
||||
|
||||
cbtcSysType = GetCbtcSysType();
|
||||
dquDevNameA = dquDevName2HlhtId(u16CiA,0U,&etcsIdA);
|
||||
dquDevNameB = dquDevName2HlhtId(u16CiB,0U,&etcsIdB);
|
||||
|
||||
dquDevNameA = dquDevName2HlhtId(u16CiA,0u,&etcsIdA);
|
||||
|
||||
dquDevNameB = dquDevName2HlhtId(u16CiB,0u,&etcsIdB);
|
||||
|
||||
if(DQU_CBTC_CPK == cbtcSysType)
|
||||
/*需要增加互联互通的判断*/
|
||||
if ((CI_SUCCESS == dquDevNameA) && (CI_SUCCESS == dquDevNameB))
|
||||
{
|
||||
retVal = SAME_LINE_YES;
|
||||
}
|
||||
else if(DQU_CBTC_FAO == cbtcSysType)
|
||||
{
|
||||
retVal = SAME_LINE_YES;
|
||||
}
|
||||
else if(DQU_CBTC_HLT == cbtcSysType)
|
||||
{
|
||||
/*需要增加互联互通的判断*/
|
||||
if ((CI_SUCCESS == dquDevNameA) && (CI_SUCCESS == dquDevNameB))
|
||||
/*根据互联互通ETCS编号的定义,从低到高第三个字节为线路编号*/
|
||||
if ((etcsIdA & ((UINT32)0x00ff0000)) == (etcsIdB & ((UINT32)0x00ff0000)))
|
||||
{
|
||||
/*根据互联互通ETCS编号的定义,从低到高第三个字节为线路编号*/
|
||||
if ((etcsIdA&((UINT32)0x00ff0000)) == (etcsIdB & ((UINT32)0x00ff0000)))
|
||||
retVal = SAME_LINE_YES;
|
||||
|
||||
/*同一条线路,一期二期使用不同厂家联锁,也判为不同线路,接口走互联互通*/
|
||||
chCiAFactoryType = GetCiFactoryType(ciA);
|
||||
chCiBFactoryType = GetCiFactoryType(ciB);
|
||||
if (chCiAFactoryType == chCiBFactoryType)
|
||||
{
|
||||
retVal = SAME_LINE_YES;
|
||||
}
|
||||
@@ -146,17 +143,14 @@ UINT8 IsSameLineCI(const UINT8 ciA, const UINT8 ciB)
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = SAME_LINE_ERR;
|
||||
retVal = SAME_LINE_NO;
|
||||
}
|
||||
}/* zt 删除单轨相关代码 2022-02-15 */
|
||||
else if (DQU_CBTC_CC == cbtcSysType)
|
||||
{
|
||||
retVal = SAME_LINE_YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
retVal = SAME_LINE_ERR;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
/*
|
||||
@@ -204,7 +198,7 @@ UINT32 GetCiTranCiDataCheckVer(const UINT8 ciId, const UINT16 deviceName)
|
||||
UINT8 ii = 0U;
|
||||
UINT8 chBreakFlag = 0U;
|
||||
UINT8 chDevType = 0U;
|
||||
chDevType = (UINT8)((deviceName & 0xFF00) >> 8U);
|
||||
chDevType = (UINT8)((deviceName & 0xFF00u) >> 8U);
|
||||
if ((ciId > 0U) && (ciId < CI_SUM_MAX) &&
|
||||
((RC_WORK_MODE_CI == chDevType)||(RC_WORK_MODE_TIOC == chDevType)))
|
||||
{
|
||||
|
||||
@@ -216,46 +216,6 @@ UINT8 GetLabourCancelLinShiXianState(void)
|
||||
return LabourCancelLinShiXianState;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
功能描述:人工取消临时限速状态迁移处理
|
||||
参数说明:setFlag 状态
|
||||
返回值:无
|
||||
*/
|
||||
void LabourCancelLSXianStaMoveProc(UINT8 setFlag)
|
||||
{
|
||||
UINT8 linShiXianState = 0u;
|
||||
UINT8 wholelinShiXianState = 0u;
|
||||
linShiXianState = GetLabourCancelLinShiXianState();
|
||||
wholelinShiXianState = GetWholeLineLinShiXianSuFlag();
|
||||
switch(setFlag)
|
||||
{
|
||||
case LINSHIXIANSU_COMM_GOOD_STATE:/*与ZC通信正常状态*/
|
||||
if((LINSHIXIANSU_COMM_BAD_STATE == linShiXianState) ||
|
||||
(LINSHIXIANSU_LABOURCANCLE_YES_STATE == linShiXianState))
|
||||
{/*前一状态为: 通信故障且未进行人工取消 || 通信故障且进行了人工取消 则进行状态迁移*/
|
||||
LabourCancelLinShiXianState = setFlag;
|
||||
}
|
||||
break;
|
||||
case LINSHIXIANSU_COMM_BAD_STATE:/*与ZC通信故障状态*/
|
||||
if((LINSHIXIANSU_COMM_GOOD_STATE == linShiXianState) && (WHOLE_LINE_LINSHIXIANSUSET_YES == wholelinShiXianState))
|
||||
{/*前一状态为:通信正常状态且临时限速标志为设置 则进行状态迁移*/
|
||||
LabourCancelLinShiXianState = setFlag;
|
||||
}
|
||||
break;
|
||||
case LINSHIXIANSU_LABOURCANCLE_YES_STATE:/*已经进行了人工取消临时限速*/
|
||||
if(LINSHIXIANSU_COMM_BAD_STATE == linShiXianState)
|
||||
{/*前一状态为:通信故障状态 则进行状态迁移*/
|
||||
LabourCancelLinShiXianState = setFlag;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/*不可达分支*/
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
/*
|
||||
功能描述:人工取消临时限速状态迁移处理
|
||||
参数说明:setFlag 状态,UINT8 virCIid 虚拟联锁ID
|
||||
@@ -1332,17 +1292,13 @@ edit cgh 20241203
|
||||
UINT8 RouteLockDriveSwitch(const UINT16 routeId, const UINT8 NeedForDrvRoutAssoSwit)
|
||||
{
|
||||
UINT8 ii = 0u;
|
||||
UINT8 switchSum = 0u;
|
||||
UINT16 switchId = 0u;
|
||||
UINT8 switchExpPosition = SWITCH_POSITION_INVALID; /*道岔期望位置*/
|
||||
UINT8 switchDancaoPosition = SWITCH_POSITION_INVALID; /*单操有效位置*/
|
||||
RouteSwitchStruct* pRouteSwitchStru = NULL; /*道岔数据结构指针*/
|
||||
UINT8 innerSwitchRetVal = CI_ERROR; /*检查进路内道岔是否可被驱动的结果*/
|
||||
UINT8 assocSwitchRetVal = CI_ERROR; /*检查带动道岔是否可被驱动的结果*/
|
||||
UINT8 assocSwitchSum = 0u; /*道岔数目*/
|
||||
RouteAssocSwitchStruct routeAssocSwitchStru = {0,0}; /*道岔数据*/
|
||||
UINT8 routeProtectSwitchSum = 0u; /*防护道岔数目*/
|
||||
RouteProtectSwitchStruct* pRouteProtectSwitchStru = NULL; /*防护道岔数据*/
|
||||
UINT8 chAutoCheck = 0U;
|
||||
UINT8 chSendLevel = 0U;
|
||||
chAutoCheck = AutoSignalOrRouteValid(routeId);
|
||||
@@ -1710,7 +1666,6 @@ void DriveSignalOpen(const UINT16 signalId, const UINT16 routeId)
|
||||
|
||||
UINT8 bCiSwitchShowGreenYellow = FUNC_SWITCH_OFF;/*ci显示绿黄开关,默认是关闭的*/
|
||||
UINT8 belongVirCI= 0u;
|
||||
UINT8 includeVirFlag= GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 sigalMaintainState = 0u;
|
||||
UINT8 signalIsfushiFlag = 0u;
|
||||
UINT8 signalCurDriveColor = 0u;
|
||||
@@ -1804,27 +1759,23 @@ void DriveSignalOpen(const UINT16 signalId, const UINT16 routeId)
|
||||
}
|
||||
|
||||
/*虚拟联锁兼容*/
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
belongVirCI = GetSignalBelongVirCiId(signalId);
|
||||
allSignalBrightFlag = GetVirCIAllSignalBrightState(belongVirCI);/*本虚拟联锁全站亮灯标志*/
|
||||
}
|
||||
else
|
||||
{
|
||||
allSignalBrightFlag = GetAllSignalBrightFlag(); /*全站亮灯标志*/
|
||||
}
|
||||
belongVirCI = GetSignalBelongVirCiId(signalId);
|
||||
allSignalBrightFlag = GetVirCIAllSignalBrightState(belongVirCI);/*本虚拟联锁全站亮灯标志*/
|
||||
|
||||
|
||||
|
||||
lightExtinctState = GetSignalLightExtinctState(signalId);/*信号机亮灭状态*/
|
||||
sigalMaintainState = GetSignalMaintainState(signalId);/*信号机维修点灯状态*/
|
||||
|
||||
chRoutelightFlag = GetSignalShine(signalId);
|
||||
if (SIGNAL_LIGHT_CONFIG_CBTC_CLOSE == chRoutelightFlag)
|
||||
chRoutelightFlag = GetSignalShineBit2(signalId);
|
||||
if (SIGNAL_LIGHT_CONFIG_CBTC_LIGHT_BIT2 == chRoutelightFlag)
|
||||
{
|
||||
lightExtinctState = SIGNAL_LIGHT_EXTICT_STATE_YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*数据配置常亮,CBTC接近时灭灯,驱动亮灯;配置其他依据亮灭灯状态*/
|
||||
|
||||
}
|
||||
signalIsfushiFlag = GetSignalIsfushiFlag(signalId);
|
||||
signalCurDriveColor = GetSignalCurDriveColor(signalId);
|
||||
@@ -2085,7 +2036,6 @@ UINT8 DriveSignalClose(const UINT16 signalId)
|
||||
UINT8 belongVirCIid = 0u;
|
||||
UINT8 detainOpenRedBright = 0u;
|
||||
UINT8 signalDetainFlag = 0u;
|
||||
UINT8 includeVirFlag= GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 sigalMaintainState = 0u;
|
||||
UINT8 signalIsfushiFlag = 0u;
|
||||
UINT16 wSigInFirstPhyId = 0U;
|
||||
@@ -2100,16 +2050,11 @@ UINT8 DriveSignalClose(const UINT16 signalId)
|
||||
}
|
||||
else
|
||||
{
|
||||
/*虚拟联锁兼容*/
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
belongVirCIid = GetSignalBelongVirCiId(signalId);
|
||||
allSignalBrightFlag = GetVirCIAllSignalBrightState(belongVirCIid); /*全站亮灯标志*/
|
||||
}
|
||||
else
|
||||
{
|
||||
allSignalBrightFlag = GetAllSignalBrightFlag(); /*全站亮灯标志*/
|
||||
}
|
||||
|
||||
|
||||
belongVirCIid = GetSignalBelongVirCiId(signalId);
|
||||
allSignalBrightFlag = GetVirCIAllSignalBrightState(belongVirCIid); /*全站亮灯标志*/
|
||||
|
||||
/*无论什么时候,复示信号机关闭都驱动红灭*/
|
||||
signalIsfushiFlag = GetSignalIsfushiFlag(signalId);
|
||||
if (SIGNALTYPE_FUSHI_YES == signalIsfushiFlag)
|
||||
@@ -2128,8 +2073,8 @@ UINT8 DriveSignalClose(const UINT16 signalId)
|
||||
routeState = GetRouteState(routeId);/*获取进路状态*/
|
||||
wStartSignalId = GetRouteStartSignalId(routeId);
|
||||
|
||||
chRoutelightFlag = GetSignalShine(signalId);
|
||||
if (SIGNAL_LIGHT_CONFIG_CBTC_CLOSE == chRoutelightFlag)
|
||||
chRoutelightFlag = GetSignalShineBit2(signalId);
|
||||
if (SIGNAL_LIGHT_CONFIG_CBTC_LIGHT_BIT2 == chRoutelightFlag)
|
||||
{
|
||||
lightExtinctState = SIGNAL_LIGHT_EXTICT_STATE_YES;
|
||||
}
|
||||
@@ -3287,7 +3232,6 @@ UINT8 GetSwitchRouteLockState(UINT16 switchId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT16 belongSecId = 0u; /*所属区段ID*/
|
||||
UINT16 doubleSwitchId = 0u; /*双动道岔ID*/
|
||||
UINT8 belongPhySecState = 0u; /*所属物理区段的进路状态*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
|
||||
@@ -3309,21 +3253,7 @@ UINT8 GetSwitchRouteLockState(UINT16 switchId)
|
||||
}
|
||||
else
|
||||
{
|
||||
doubleSwitchId = GetDSwitchOtherId(switchId);/*获取双动道岔ID*/
|
||||
if (doubleSwitchId != 0u)
|
||||
{/*双动道岔非空*/
|
||||
|
||||
belongSecId = GetSwitchPhySectionId(doubleSwitchId);
|
||||
belongPhySecState = GetPhySecLockState(belongSecId);
|
||||
|
||||
if ((PHYSICAL_SECTION_LOCK_NORMAL == belongPhySecState) ||
|
||||
(PHYSICAL_SECTION_LOCK_PROTECT == belongPhySecState) ||
|
||||
(PHYSICAL_SECTION_LOCK_DELAY == belongPhySecState) ||
|
||||
(PHYSICAL_SECTION_LOCK_FAULTDELAY == belongPhySecState))
|
||||
{
|
||||
reVal = CI_SUCCESS;
|
||||
}
|
||||
}
|
||||
/*双动道岔锁闭状态不处理*/
|
||||
}
|
||||
}
|
||||
return reVal;
|
||||
@@ -4378,7 +4308,6 @@ void YLockSignalOpenManage(void)
|
||||
UINT8 belongVirCI = 0u;
|
||||
UINT8 flag = 0u;
|
||||
UINT8 yLockState = 0u;
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
|
||||
|
||||
/*处理信号机*/
|
||||
@@ -4390,15 +4319,12 @@ void YLockSignalOpenManage(void)
|
||||
|
||||
signalId = GetSignalId(ii); /*获取信号机ID*/
|
||||
belongCiId = GetSignalBelongCiId(signalId); /*获取进路所属联锁ID*/
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
belongVirCI = GetSignalBelongVirCiId(signalId); /*获取信号机所属虚拟联锁ID*/
|
||||
yLockState = GetVirCIAllSwitchYLockState(belongVirCI);
|
||||
}
|
||||
else
|
||||
{
|
||||
yLockState = GetAllSwitchYLockFlag();
|
||||
}
|
||||
|
||||
|
||||
belongVirCI = GetSignalBelongVirCiId(signalId); /*获取信号机所属虚拟联锁ID*/
|
||||
yLockState = GetVirCIAllSwitchYLockState(belongVirCI);
|
||||
|
||||
|
||||
|
||||
if ((0u == signalId) || (signalId >= SIGNAL_SUM_MAX))
|
||||
{
|
||||
@@ -5071,15 +4997,15 @@ void SetPhySecSpksFLockBySpksId(UINT16 spksId,UINT8 spksStatus)
|
||||
*/
|
||||
UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const chkDevStatus)
|
||||
{
|
||||
UINT8 devState = 0u;
|
||||
UINT8 tmpDevState = 0u;
|
||||
UINT8 tmpPsdVobcCmd = 0u;
|
||||
UINT8 tmpColor = 0u;
|
||||
UINT8 ttmpDevState = 0u;
|
||||
UINT8 psdMutualLockState = 0u;
|
||||
UINT16 tempdevId = 0u; /*临时设备ID*/
|
||||
UINT8 tempdevState = 0u; /*临时设备状态*/
|
||||
|
||||
UINT8 devState = 0U;
|
||||
UINT8 tmpDevState = 0U;
|
||||
UINT8 tmpPsdVobcCmd = 0U;
|
||||
UINT8 tmpColor = 0U;
|
||||
UINT8 ttmpDevState = 0U;
|
||||
UINT8 psdMutualLockState = 0U;
|
||||
UINT16 tempdevId = 0U; /*临时设备ID*/
|
||||
UINT8 tempdevState = 0U; /*临时设备状态*/
|
||||
UINT8 chPsdExceptState = 0U;
|
||||
switch(devType)
|
||||
{
|
||||
case CI_DEVICE_TYPE_SWITCH: /*道岔*/
|
||||
@@ -5094,12 +5020,12 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c
|
||||
}
|
||||
else
|
||||
{
|
||||
devState = 0u;
|
||||
devState = 0U;
|
||||
}
|
||||
break;
|
||||
case CI_DEVICE_TYPE_SIGNAL: /*信号机*/
|
||||
tmpColor = GetSignalCurColor(devId);
|
||||
if (tmpColor > 0u)
|
||||
if (0U < tmpColor)
|
||||
{
|
||||
tmpDevState = GetSignalOpenCloseState(tmpColor);
|
||||
if (SIGNAL_OPEN == tmpDevState)
|
||||
@@ -5113,7 +5039,7 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c
|
||||
}
|
||||
else
|
||||
{
|
||||
devState = 0u;
|
||||
devState = 0U;
|
||||
}
|
||||
break;
|
||||
case CI_DEVICE_TYPE_ROUTE: /*进路*/
|
||||
@@ -5147,44 +5073,55 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c
|
||||
}
|
||||
else
|
||||
{
|
||||
devState = 0u;
|
||||
devState = 0U;
|
||||
}
|
||||
break;
|
||||
case CI_DEVICE_TYPE_PSD: /*站台屏蔽门*/
|
||||
tmpDevState = GetPsdState(devId);
|
||||
tmpPsdVobcCmd = GetPsdVobcCmd(devId);
|
||||
psdMutualLockState = GetPsdMutualLockRemoveState(devId);
|
||||
if ((PSD_MUTUALLOCK_REMOVE_YES == psdMutualLockState) || (PSD_ATS_MUTUALLOCK_REMOVE_YES == psdMutualLockState)
|
||||
|| (PSD_ATS_AND_JD_MUTUALLOCK_REMOVE_YES == psdMutualLockState))
|
||||
chPsdExceptState = GePsdExceptState(devId);
|
||||
|
||||
if (PSD_EXCEPT_NO != chPsdExceptState)
|
||||
{
|
||||
/* 采集到互锁解除,则直接认为屏蔽门关闭 */
|
||||
devState = OTHER_CI_PSD_STATUS_CLOSE;
|
||||
}
|
||||
else if (PSD_STATE_OPEN == tmpDevState)
|
||||
{
|
||||
if (tmpPsdVobcCmd == VOBCTOCI_COMMAND_TYPE_PSDOPEN)
|
||||
{
|
||||
/* 收到VOBCToCI打开屏蔽门命令,则直接认为屏蔽门占用打开 */
|
||||
devState = OTHER_CI_PSD_STATUS_OCCUPY_OPEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 未收到VOBCToCI打开屏蔽门命令,则直接认为屏蔽门打开 */
|
||||
devState = OTHER_CI_PSD_STATUS_OPEN;
|
||||
}
|
||||
}
|
||||
else if (PSD_STATE_CLOSE == tmpDevState)
|
||||
{
|
||||
/* 未采集到互锁解除,则直接认为屏蔽门关闭 */
|
||||
devState = OTHER_CI_PSD_STATUS_CLOSE;
|
||||
devState = OTHER_CI_PSD_STATUS_OPEN; /* 屏蔽门异常状态,则认为打开 */
|
||||
}
|
||||
else
|
||||
{
|
||||
devState = 0u;
|
||||
if ((PSD_MUTUALLOCK_REMOVE_YES == psdMutualLockState) || (PSD_ATS_MUTUALLOCK_REMOVE_YES == psdMutualLockState)
|
||||
|| (PSD_ATS_AND_JD_MUTUALLOCK_REMOVE_YES == psdMutualLockState))
|
||||
{
|
||||
/* 采集到互锁解除,则直接认为屏蔽门关闭 */
|
||||
devState = OTHER_CI_PSD_STATUS_CLOSE;
|
||||
}
|
||||
else if (PSD_STATE_OPEN == tmpDevState)
|
||||
{
|
||||
if (VOBCTOCI_COMMAND_TYPE_PSDOPEN == tmpPsdVobcCmd)
|
||||
{
|
||||
/* 收到VOBCToCI打开屏蔽门命令,则直接认为屏蔽门占用打开 */
|
||||
devState = OTHER_CI_PSD_STATUS_OCCUPY_OPEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 未收到VOBCToCI打开屏蔽门命令,则直接认为屏蔽门打开 */
|
||||
devState = OTHER_CI_PSD_STATUS_OPEN;
|
||||
}
|
||||
}
|
||||
else if (PSD_STATE_CLOSE == tmpDevState)
|
||||
{
|
||||
/* 未采集到互锁解除,则直接认为屏蔽门关闭 */
|
||||
devState = OTHER_CI_PSD_STATUS_CLOSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
devState = 0U;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case CI_DEVICE_TYPE_PSD_EXCEPT_OPEN: /*站台屏蔽门(异常打开)*/
|
||||
devState = GePsdExceptOpenState(devId);
|
||||
case CI_DEVICE_TYPE_PSD_EXCEPT_OPEN: /*站台屏蔽门(异常)*/
|
||||
devState = GePsdExceptState(devId);
|
||||
/*宁象需求:屏蔽门异常打开又关闭、尚未取消异常状态时不开放信号*/
|
||||
break;
|
||||
case CI_DEVICE_TYPE_GARAGEDOOR: /*车库门*/
|
||||
tmpDevState = GetGaragedoorState(devId);
|
||||
@@ -5198,7 +5135,7 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c
|
||||
}
|
||||
else
|
||||
{
|
||||
devState = 0u;
|
||||
devState = 0U;
|
||||
}
|
||||
break;
|
||||
case CI_DEVICE_TYPE_WASHMACHINE: /* 洗车机 */
|
||||
@@ -5221,7 +5158,7 @@ UINT8 GetOtherCiDevStatus(UINT16 const devType,UINT16 const devId,UINT16 const c
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ttmpDevState == SPKS_CUT_NO)
|
||||
if (SPKS_CUT_NO == ttmpDevState)
|
||||
{
|
||||
devState = OTHER_CI_SPKS_YES;
|
||||
}
|
||||
@@ -5983,6 +5920,8 @@ UINT8 CheckJumpLockApply(UINT16 axisSectionId)
|
||||
UINT8 routeTrainNear = 0u;
|
||||
UINT8 physicalCheck = 0u;
|
||||
UINT8 phyPLockRouteState = 0u;
|
||||
UINT16 devId = 0u; /*设备ID*/
|
||||
UINT8 devState = 0u; /*设备状态*/
|
||||
|
||||
physicalSecId = GetAxisSecRelativePhySecId(axisSectionId);
|
||||
routeRlockId = GetPhySecRLockBelongRouteId(physicalSecId);/*物理区段进路锁闭所属进路ID*/
|
||||
@@ -6127,6 +6066,21 @@ UINT8 CheckJumpLockApply(UINT16 axisSectionId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == reVal)
|
||||
{/*检查防护道岔位置*/
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
reVal = AxisSecAllProtSwitchPosCheck(axisSectionId, &devId, &devState);
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == reVal)
|
||||
{/*检查防护道岔封锁状态*/
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
reVal = AxisSecProtSwitchFLockCheck(axisSectionId, &devId, &devState);
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
@@ -6256,7 +6210,8 @@ UINT8 CheckLogJumpLockApply(UINT16 logSectionId)
|
||||
UINT8 logSecLockState = 0U;
|
||||
UINT8 logSecLockRouteNum = 0U;
|
||||
UINT8 chFailStep = 0U;
|
||||
|
||||
UINT8 cYLockAlarmFlag = FLAG_UNSET; /*引导总锁报警标志*/
|
||||
|
||||
bufIndex = GetlogSectionBufIndex(logSectionId); /*获取区段数组下标*/
|
||||
/**区段下标合法*/
|
||||
if (LOGIC_SECTION_SUM_MAX > bufIndex)
|
||||
@@ -6521,6 +6476,28 @@ UINT8 CheckLogJumpLockApply(UINT16 logSectionId)
|
||||
reVal = CI_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == reVal)
|
||||
{/*防护道岔封锁状态检查*/
|
||||
devId = 0u; /*设备ID*/
|
||||
devState = 0u; /*设备状态*/
|
||||
reVal = LogicSecRltvPrtctSwFLockCheck(logSectionId, &devId, &devState, &cYLockAlarmFlag);/*封锁检查*/
|
||||
if (CI_SUCCESS != reVal)
|
||||
{
|
||||
chFailStep = 13U;
|
||||
}
|
||||
}
|
||||
if (CI_SUCCESS == reVal)
|
||||
{/*防护道岔位置检查*/
|
||||
devId = 0u; /*设备ID*/
|
||||
devState = 0u; /*设备状态*/
|
||||
reVal = LogicSecRltvPrtctSwPosCheck(logSectionId, &devId, &devState);/*位置检查*/
|
||||
if (CI_SUCCESS != reVal)
|
||||
{
|
||||
chFailStep = 14U;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -6822,10 +6799,17 @@ UINT8 JumpLockDriveSwitch(const UINT16 axisSecId)
|
||||
AxisSwitchStruct* pRouteSwitchStru = NULL; /*道岔数据结构指针*/
|
||||
UINT8 innerSwitchRetVal = CI_ERROR; /*检查计轴区段内道岔是否可被驱动的结果*/
|
||||
|
||||
|
||||
AxisSwitchStruct* pProtectSwitchStru = NULL; /*防护道岔数据结构指针*/
|
||||
UINT8 protectSwitchSum = 0u;
|
||||
|
||||
switchSum = GetAxisSwitchSum(axisSecId);
|
||||
pRouteSwitchStru = GetAxisSwitchIdStru(axisSecId);
|
||||
|
||||
if((0u == axisSecId) || (axisSecId >= AXIS_SECTION_SUM_MAX))
|
||||
protectSwitchSum = GetAxisSecRelateProSwSum(axisSecId);
|
||||
pProtectSwitchStru = GetAxisSecRelateProSwStru(axisSecId);
|
||||
|
||||
if((0u == axisSecId) || (axisSecId >= AXIS_SECTION_SUM_MAX)||(NULL == pRouteSwitchStru) || (NULL == pProtectSwitchStru))
|
||||
{
|
||||
innerSwitchRetVal = CI_ERROR;
|
||||
}
|
||||
@@ -6853,6 +6837,32 @@ UINT8 JumpLockDriveSwitch(const UINT16 axisSecId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (innerSwitchRetVal == CI_SUCCESS)
|
||||
{
|
||||
/* 单操相反位置取消驱动检查 */
|
||||
for (ii = 0u; ii < protectSwitchSum; ii++)
|
||||
{
|
||||
switchId = pProtectSwitchStru[ii].SwitchId;
|
||||
switchExpPosition = pProtectSwitchStru[ii].SwitchPosition;
|
||||
switchDancaoPosition = GetSwitchDanCaoPostition(switchId);
|
||||
|
||||
if ((SWITCH_POSITION_INVALID == switchDancaoPosition)
|
||||
||
|
||||
(switchDancaoPosition == switchExpPosition))
|
||||
{/*单操无效 或者 单操位置与动作位置一样*/
|
||||
innerSwitchRetVal = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*单操到相反位置取消道岔的驱动*/
|
||||
innerSwitchRetVal = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(innerSwitchRetVal == CI_SUCCESS)
|
||||
{
|
||||
@@ -6872,7 +6882,7 @@ UINT8 JumpLockDriveSwitch(const UINT16 axisSecId)
|
||||
|
||||
|
||||
/*
|
||||
功能描述: 驱动计轴区段内道岔处理
|
||||
功能描述: 驱动计轴区段内道岔,计轴区段关联防护道岔处理
|
||||
输入参数: const UINT16 axisSecId 计轴区段ID
|
||||
输出参数: const UINT8 DrivFlag 道岔驱动标志
|
||||
返回值: 无
|
||||
@@ -6884,22 +6894,36 @@ void AxisSecDrvInnerSwitch(const UINT16 axisSecId, const UINT8 DrivFlag)
|
||||
UINT8 switchExpPos = 0u; /*道岔期望位置*/
|
||||
AxisSwitchStruct* pAxisSecSwitchStru = NULL; /*道岔数据*/
|
||||
UINT8 ii = 0u; /*循环变量*/
|
||||
UINT8 funRtn = CI_ERROR;
|
||||
|
||||
AxisSwitchStruct* pProtectSwitchStru = NULL; /*防护道岔数据结构指针*/
|
||||
UINT8 protectSwitchSum = 0u;
|
||||
|
||||
switchSum = GetAxisSwitchSum(axisSecId); /*获取计轴区段道岔数目*/
|
||||
pAxisSecSwitchStru = GetAxisSwitchIdStru(axisSecId); /*获取计轴区段内道岔数据*/
|
||||
|
||||
protectSwitchSum = GetAxisSecRelateProSwSum(axisSecId);
|
||||
pProtectSwitchStru = GetAxisSecRelateProSwStru(axisSecId);
|
||||
|
||||
if(SWITCH_NEED_DRIV_TRUE == DrivFlag)
|
||||
{/*需要驱动计轴区段内道岔*/
|
||||
if ((NULL != pAxisSecSwitchStru) && (NULL != pProtectSwitchStru))
|
||||
{
|
||||
if (SWITCH_NEED_DRIV_TRUE == DrivFlag)
|
||||
{/*需要驱动计轴区段内道岔*/
|
||||
|
||||
for (ii = 0u; ii < switchSum; ii++)
|
||||
{
|
||||
switchId = pAxisSecSwitchStru[ii].SwitchId;
|
||||
switchExpPos = pAxisSecSwitchStru[ii].SwitchPosition;
|
||||
(void)SwitchDriveProcess(switchId, switchExpPos); /*设置计轴区段内道岔的驱动状态为驱动中*/
|
||||
}
|
||||
|
||||
for (ii = 0u; ii < protectSwitchSum; ii++)
|
||||
{
|
||||
switchId = pProtectSwitchStru[ii].SwitchId;
|
||||
switchExpPos = pProtectSwitchStru[ii].SwitchPosition;
|
||||
(void) SwitchDriveProcess(switchId, switchExpPos); /*设置计轴区段防护道岔的驱动状态为驱动中*/
|
||||
}
|
||||
|
||||
for(ii = 0u; ii < switchSum; ii++)
|
||||
{
|
||||
switchId = pAxisSecSwitchStru[ii].SwitchId;
|
||||
switchExpPos = pAxisSecSwitchStru[ii].SwitchPosition;
|
||||
funRtn = SwitchDriveProcess(switchId, switchExpPos); /*设置计轴区段内道岔的驱动状态为驱动中*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7353,7 +7377,7 @@ UINT8 GetSwitchLogSecLockState(UINT16 switchId, UINT16* logOccOrLockId, UINT8* p
|
||||
UINT8 retValue = CI_ERROR;
|
||||
UINT8 chLogSecLogLockState = 0U; /*逻辑区段逻辑锁闭状态*/
|
||||
UINT8 cLockBelongLogicRouteNum = 0U; /*逻辑区段逻辑锁闭所属逻辑进路数量*/
|
||||
|
||||
UINT8 chLogSecJumpLockState = 0U;
|
||||
/*获取道岔关联逻辑区段信息*/
|
||||
logSecSum = GetSwitchLogSecSum(switchId);
|
||||
logSecBuf = GetSwitchLogSecBuf(switchId);
|
||||
@@ -7377,8 +7401,9 @@ UINT8 GetSwitchLogSecLockState(UINT16 switchId, UINT16* logOccOrLockId, UINT8* p
|
||||
/*检查逻辑区段逻辑锁闭状态*/
|
||||
chLogSecLogLockState = GetLogSecLogLockState(logSecBuf[i]);
|
||||
cLockBelongLogicRouteNum = GetLogSecLockBelLogRouteSum(logSecBuf[i]);
|
||||
chLogSecJumpLockState = GetLogSecJumpLockState(logSecBuf[i]);
|
||||
|
||||
if ((LOG_SECTION_LOGLOCK_NO == chLogSecLogLockState) && (0U == cLockBelongLogicRouteNum))
|
||||
if ((LOG_SECTION_LOGLOCK_NO == chLogSecLogLockState) && (0U == cLockBelongLogicRouteNum)&&(LOGIC_SECTION_JUMP_LOCK_NO== chLogSecJumpLockState))
|
||||
{
|
||||
retValue = CI_SUCCESS;
|
||||
}
|
||||
@@ -8998,7 +9023,7 @@ void SetCtrlPower(const UINT8 virtualCiId, const UINT8 ctrlPowerFlag, const UINT
|
||||
UINT8 i = 0u;
|
||||
UINT8 cimode = 0u;
|
||||
UINT8 virtualCiNum = 0u;
|
||||
cimode = GetCiModeFlag();
|
||||
cimode = GetVirCImode(virtualCiId);
|
||||
virtualCiNum = GetVirtualCINum();
|
||||
if (CI_MODE_ATS != cimode)
|
||||
{
|
||||
@@ -9105,7 +9130,6 @@ void SetSigleRouteAutoTriggerManage(UINT8 virCIid, UINT16 routeId, UINT8 setFlag
|
||||
{
|
||||
UINT8 chkFState = CI_ERROR;
|
||||
UINT8 chkFloodState = CI_ERROR;
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 belongCiId = 0u; /*进路所属联锁ID*/
|
||||
UINT8 localCiId = 0u; /*本地联锁ID*/
|
||||
UINT8 belongVirCI = 0u;
|
||||
@@ -9123,14 +9147,13 @@ void SetSigleRouteAutoTriggerManage(UINT8 virCIid, UINT16 routeId, UINT8 setFlag
|
||||
belongCiId = GetRouteBelongCiId(routeId); /*获取进路所属联锁ID*/
|
||||
if (ROUTE_TYPE_AUTO_TRIGGER == autoTriggerType)
|
||||
{
|
||||
if (FUNC_SWITCH_ON == includeVirFlag)
|
||||
|
||||
belongVirCI = GetRouteBelongVirCiId(routeId);
|
||||
if (belongVirCI != virCIid)
|
||||
{
|
||||
belongVirCI = GetRouteBelongVirCiId(routeId);
|
||||
if (belongVirCI != virCIid)
|
||||
{
|
||||
flag = 1u;
|
||||
}
|
||||
flag = 1u;
|
||||
}
|
||||
|
||||
|
||||
if ((0u == routeId) || (routeId >= ROUTE_SUM_MAX) || (belongCiId != localCiId) || (1u == flag))
|
||||
{
|
||||
@@ -9242,7 +9265,6 @@ void SetSigleRouteAutoTriggerManage(UINT8 virCIid, UINT16 routeId, UINT8 setFlag
|
||||
*/
|
||||
void CancelSigleRouteAutoTrigger(UINT8 virCIid, UINT16 routeId, UINT8 setFlag)
|
||||
{
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 belongCiId = 0u; /*进路所属联锁ID*/
|
||||
UINT8 localCiId = 0u; /*本地联锁ID*/
|
||||
UINT8 belongVirCI = 0u;
|
||||
@@ -9252,14 +9274,13 @@ void CancelSigleRouteAutoTrigger(UINT8 virCIid, UINT16 routeId, UINT8 setFlag)
|
||||
localCiId = GetSystemParaLocalCiId(); /*获取本机联锁ID*/
|
||||
belongCiId = GetRouteBelongCiId(routeId); /*获取进路所属联锁ID*/
|
||||
flag = 0u;
|
||||
if (FUNC_SWITCH_ON == includeVirFlag)
|
||||
|
||||
belongVirCI = GetRouteBelongVirCiId(routeId);
|
||||
if (belongVirCI != virCIid)
|
||||
{
|
||||
belongVirCI = GetRouteBelongVirCiId(routeId);
|
||||
if (belongVirCI != virCIid)
|
||||
{
|
||||
flag = 1u;
|
||||
}
|
||||
flag = 1u;
|
||||
}
|
||||
|
||||
|
||||
if ((0u == routeId) || (routeId >= ROUTE_SUM_MAX) || (belongCiId != localCiId) || (1u == flag))
|
||||
{
|
||||
@@ -11623,4 +11644,156 @@ void SetLocalSnowModelCC(UINT8 setmodle)
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取虚拟联锁类型
|
||||
* 参数说明: UINT8 chVirCiId 虚拟联锁ID
|
||||
* 返回值 :
|
||||
CI_TYPE_ZX ((UINT8)0x01) 正线联锁
|
||||
CI_TYPE_CLD ((UINT8)0x04) 车辆段联锁
|
||||
CI_TYPE_SCX ((UINT8)0x02) 试车线
|
||||
add by mpt 20260104
|
||||
*/
|
||||
UINT8 GetLocalVirCiType(UINT8 chVirCiId)
|
||||
{
|
||||
UINT8 cLocalCiId = 0U;
|
||||
UINT8 ret = 0U;
|
||||
|
||||
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
if (chVirCiId == 200U + cLocalCiId)
|
||||
{
|
||||
ret = CI_TYPE_SCX;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = GetLocalCiType();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
/*
|
||||
* 功能描述:判断本联锁临时限速状态
|
||||
* 参数说明:无
|
||||
* 返 回 值:临时限速有效返回失败,清除或与限速确认返回成功
|
||||
* Created :LYJ
|
||||
*/
|
||||
|
||||
UINT8 CheckLocalCiLSXSStata(void)
|
||||
{
|
||||
UINT8 chRet = 0U;
|
||||
UINT8 chVirCINum = 0U;
|
||||
UINT8 i = 0U;
|
||||
UINT8 chXiansuState = 0U;
|
||||
UINT8 chVirtualCIid = 0U;
|
||||
UINT8 chTsrSureFlag = 0U;
|
||||
|
||||
chTsrSureFlag = GetTsrSureFlag(); /*获取临时限速确认标志*/
|
||||
if (CI_TSR_SURE_YES == chTsrSureFlag)
|
||||
{
|
||||
chRet = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*临时限速未确认,判断是否做了限速清除*/
|
||||
|
||||
chVirCINum = GetVirtualCINum();
|
||||
for (i = 0U; i < chVirCINum; i++)
|
||||
{
|
||||
chVirtualCIid = GetVirtualCIid(i);
|
||||
chXiansuState = GetVirCILabourCancelLSXianSta(chVirtualCIid);
|
||||
if ((LINSHIXIANSU_COMM_GOOD_STATE == chXiansuState) || (LINSHIXIANSU_LABOURCANCLE_YES_STATE == chXiansuState))
|
||||
{
|
||||
chRet = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
chRet = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return chRet;
|
||||
}
|
||||
|
||||
/*
|
||||
功能描述:
|
||||
清除逻辑区段关联道岔单操位置
|
||||
输入参数:
|
||||
const UINT16 逻辑区段ID
|
||||
输出参数:
|
||||
无.
|
||||
返回值:
|
||||
无
|
||||
add by mpt 20260403
|
||||
*/
|
||||
void ClearLogSeceSwitchDanCaoPos(const UINT16 logicSecId)
|
||||
{
|
||||
UINT8 switchSum = 0u; /*道岔数目*/
|
||||
UINT16 switchId = 0u; /*道岔ID*/
|
||||
UINT8 ii = 0u; /*循环变量*/
|
||||
UINT8 checkSum = 0u;
|
||||
LogsecSwitchStruct* dataIdBuf = NULL;
|
||||
|
||||
UINT8 chLogicSecSwitchSum = 0U;/*逻辑区段道岔数目*/
|
||||
LogsecSwitchStruct* pLogicSecSwitchIdData = NULL;/*逻辑区段道岔ID数据*/
|
||||
|
||||
chLogicSecSwitchSum = GetLogicSecSwitchSum(logicSecId);/*逻辑区段道岔数目*/
|
||||
pLogicSecSwitchIdData = GetLogicSecSwitchIdStru(logicSecId);/*逻辑区段道岔ID数据*/
|
||||
|
||||
checkSum = GetLgcRelateProSwSum(logicSecId);/*获取指定ID逻辑区段关联防护道岔数目*/
|
||||
dataIdBuf = GetLgcRelateProSwStru(logicSecId);
|
||||
|
||||
|
||||
|
||||
if (NULL != pLogicSecSwitchIdData)
|
||||
{
|
||||
for (ii = 0u; ii < chLogicSecSwitchSum; ii++)
|
||||
{
|
||||
switchId = pLogicSecSwitchIdData[ii].SwitchId;
|
||||
/*设置该道岔期望驱动位置为无效*/
|
||||
(void)SetSwitchDanCaoPosition(switchId, SWITCH_POSITION_INVALID);
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL != dataIdBuf)
|
||||
{
|
||||
for (ii = 0u; ii < checkSum; ii++)
|
||||
{
|
||||
switchId = dataIdBuf[ii].SwitchId;
|
||||
/*设置该道岔期望驱动位置为无效*/
|
||||
(void) SetSwitchDanCaoPosition(switchId, SWITCH_POSITION_INVALID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
功能描述:
|
||||
清除计轴区段关联道岔单操位置
|
||||
输入参数:
|
||||
const UINT16 计轴区段ID
|
||||
输出参数:
|
||||
无.
|
||||
返回值:
|
||||
无
|
||||
add by mpt 20260403
|
||||
*/
|
||||
void ClearAxisSeceSwitchDanCaoPos(const UINT16 axisSecId)
|
||||
{
|
||||
UINT16* pLogSectionIdBuf = NULL;
|
||||
UINT8 chLogSectionSum = 0U;
|
||||
UINT8 ii = 0U;
|
||||
|
||||
pLogSectionIdBuf = GetAxisSecLogSectionIdBuf(axisSecId);
|
||||
chLogSectionSum = GetAxisSecLogSectionSum(axisSecId);
|
||||
|
||||
if (NULL != pLogSectionIdBuf)
|
||||
{
|
||||
for (ii = 0U; ii < chLogSectionSum; ii++)
|
||||
{
|
||||
/*清除逻辑区段道岔道岔标志*/
|
||||
ClearLogSeceSwitchDanCaoPos(pLogSectionIdBuf[ii]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,8 +72,13 @@ typedef struct S_AreaSnowInfoStruct
|
||||
* 其他联锁条件状态定义
|
||||
*--------------------------------------------------------------------------*/
|
||||
/* 其他联锁条件检查配置状态相关定义 */
|
||||
#define LOCAL_AREA_SNOW_SUM_MAX ((UINT8)20) /*本控区及相邻控区发送的区间雨雪站台数量*/
|
||||
#define ALL_AREA_SNOW_SUM_MAX ((UINT8)254) /*TMC发送的全线区间雨雪站台数量*/
|
||||
#define LOCAL_AREA_SNOW_SUM_MAX ((UINT8)20) /*本控区及相邻控区发送的区间雨雪站台数量*/
|
||||
#define ALL_AREA_SNOW_SUM_MAX ((UINT8)254) /*TMC发送的全线区间雨雪站台数量*/
|
||||
#define ALL_CBTC_CROSS_SUM_MAX ((UINT8)253) /*CBTC跨压最大数量*/
|
||||
#define ALL_TACS_CROSS_SUM_MAX ((UINT8)253) /*TACS跨压最大数量*/
|
||||
#define CROSS_SIGNAL_ID_MAX ((UINT16)1499) /*跨压信号机ID最大值*/
|
||||
#define CBTC_CROSS_ID_MAX ((UINT8)253) /*CBTC跨压最大列车ID*/
|
||||
#define TACS_CROSS_ID_MAX ((UINT8)253) /*TACS跨压最大列车ID*/
|
||||
|
||||
/* 1 信号机
|
||||
开放0x55
|
||||
@@ -221,8 +226,6 @@ extern UINT8 comm_Train_Test_YSKJ_SCX_State; /*
|
||||
extern UINT8 comm_Train_Test_SQJ_CLD_State; /*试车线与车辆段采用通信接口时车辆段SQJ状态*/
|
||||
extern UINT8 comm_Train_Test_TYSJ_CLD_State; /*试车线与车辆段采用通信接口时车辆段TYSJ状态*/
|
||||
|
||||
extern UINT8 ZCToCIAutoRtnIndict_Flash_Sta; /*ZC给CI的无人折返灯闪灯状态*/
|
||||
extern UINT8 ZCToCIAutoRtnIndict_Steady_Sta; /*ZC给CI的无人折返灯稳灯状态*/
|
||||
extern UINT8 AutoTriggerFlag; /*自动触发标志初始化为未设置*/
|
||||
|
||||
extern UINT8 CiCiRelayInterfaceConfirmFlag;/*继电接口确认标志*/
|
||||
@@ -295,13 +298,6 @@ void SetStartLockFlag(UINT8 setFlag);
|
||||
LINSHIXIANSU_COMM_BAD_YES_LABOURCANCLE_STATE
|
||||
*/
|
||||
UINT8 GetLabourCancelLinShiXianState(void);
|
||||
|
||||
/*
|
||||
功能描述:人工取消临时限速状态迁移处理
|
||||
参数说明:setFlag 状态
|
||||
返回值:无
|
||||
*/
|
||||
void LabourCancelLSXianStaMoveProc(UINT8 setFlag);
|
||||
/*
|
||||
功能描述:人工取消临时限速状态迁移处理
|
||||
参数说明:setFlag 状态,UINT8 virCIid 虚拟联锁ID
|
||||
@@ -1972,5 +1968,46 @@ UINT8 GetLocalSnowModelCC(void);
|
||||
* Created By LQ 2025.11.06
|
||||
*/
|
||||
void SetLocalSnowModelCC(UINT8 setmodle);
|
||||
/*
|
||||
* 功能描述: 获取虚拟联锁类型
|
||||
* 参数说明: UINT8 chVirCiId 虚拟联锁ID
|
||||
* 返回值 :
|
||||
CI_TYPE_ZX ((UINT8)0x01) 正线联锁
|
||||
CI_TYPE_CLD ((UINT8)0x04) 车辆段联锁
|
||||
CI_TYPE_SCX ((UINT8)0x02) 试车线
|
||||
add by mpt 20260104
|
||||
*/
|
||||
UINT8 GetLocalVirCiType(UINT8 chVirCiId);
|
||||
/*
|
||||
* 功能描述:判断本联锁临时限速状态
|
||||
* 参数说明:无
|
||||
* 返 回 值:临时限速有效返回失败,清除或与ZC通信正常返回成功
|
||||
* Created :LYJ
|
||||
*/
|
||||
|
||||
UINT8 CheckLocalCiLSXSStata(void);
|
||||
/*
|
||||
功能描述:
|
||||
清除逻辑区段关联道岔单操位置
|
||||
输入参数:
|
||||
const UINT16 逻辑区段ID
|
||||
输出参数:
|
||||
无.
|
||||
返回值:
|
||||
无
|
||||
add by mpt 20260403
|
||||
*/
|
||||
void ClearLogSeceSwitchDanCaoPos(const UINT16 logicSecId);
|
||||
/*
|
||||
功能描述:
|
||||
清除计轴区段关联道岔单操位置
|
||||
输入参数:
|
||||
const UINT16 计轴区段ID
|
||||
输出参数:
|
||||
无.
|
||||
返回值:
|
||||
无
|
||||
add by mpt 20260403
|
||||
*/
|
||||
void ClearAxisSeceSwitchDanCaoPos(const UINT16 axisSecId);
|
||||
#endif
|
||||
|
||||
@@ -111,6 +111,10 @@
|
||||
#define EFUNC_OVERLAP_VALIDMASK_CHECK ((UINT8)0x4A) /*函数:OverlapValidMaskCheck 计算保护区段有效码位检查*/
|
||||
#define EFUNC_ROUTE_LOCK_DRIVE_SWITCH ((UINT8)0xD2) /*RouteLockDriveSwitch 锁闭道岔*/
|
||||
#define EFUNC_ROUTE_COUPLINK_SET ((UINT8)0xD7) /*SetCouplinkRouteLogicManage 办理联挂进路逻辑管理*/
|
||||
#define EFUNC_FOLLOWUP_SWITCH_DANSUO_CANCLE ((UINT8)0xD8) /*FollowUpSwitchUnFlockCheck 一二次道岔单解命令*/
|
||||
#define EFUNC_FOLLOWUP_SWITCH_UNFLOCK ((UINT8)0xD9) /*FollowUpSwitchUnFlockCheck 一二次道岔解封命令*/
|
||||
#define EFUNC_FOLLOWUP_SEC_UNFLOCK ((UINT8)0xDA) /*FollowUpSecUnFlockCheck 一二次区段解封命令*/
|
||||
#define EFUNC_FOLLOWUP_SIGNAL_UNFLOCK ((UINT8)0xDB) /*FollowUpSwitchUnFlockCheck 一二次信号解封命令*/
|
||||
|
||||
/*车辆段联锁逻辑检查*/
|
||||
#define EFUNC_SET_LEAD_ROUTE_CHECK ((UINT8)0x4B) /*办理引导进路检查*/
|
||||
@@ -217,7 +221,10 @@
|
||||
|
||||
#define EFUNC_PARSE_LOCAL_CI2RC_DATA ((UINT8)0xD4U) /*函数:ParseCiToLocalRcDataFrame*/
|
||||
#define EFUNC_PARSE_LOCAL_RC2CI_DATA ((UINT8)0xD5U) /*函数:ParseRcToLocalCiDataFrame*/
|
||||
|
||||
#define EFUNC_PARSE_LOCAL_CI2CI_DATA ((UINT8)0xD6U) /*函数:ParseCiToCiDataFrame*/
|
||||
#define EFUNC_PARSE_LOCAL_OC2CI_DATA ((UINT8)0xD7U) /*函数:ParseOcToCiDataFrame*/
|
||||
#define EFUNC_CONNECT_ROUTE_RELEASE ((UINT8)0xD8U) /*函数:ConnectRouteReleaseManage*/
|
||||
#define EFUNC_PARSE_GATEWAY2CI_DATA ((UINT8)0xD9U) /*函数:ParseGateWayToCiDataProc*/
|
||||
|
||||
/*************************************************分界线******************************************************************************/
|
||||
/*************************************************分界线******************************************************************************/
|
||||
@@ -240,6 +247,7 @@
|
||||
#define ETYPE_GROUP_AUTO_ROUTE_STATE ((UINT8)0x16) /*组合自动进路*/
|
||||
#define ETYPE_ROUTE_APPLY_SWITCH_MOVE ((UINT8)0xA4) /*进路道岔单操中*/
|
||||
#define ETYPE_COUPLINK_ROUTE_IDLE ((UINT8)0xA5) /*联挂进路内无被联挂车*/
|
||||
#define ETYPE_CONNECT_ROUTE_RELEASE ((UINT8)0xA6) /*联络线接车进路解锁条件不满足*/
|
||||
|
||||
|
||||
#define ETYPE_COMM_WITH_VOBC ((UINT8)0x11) /*与VOBC通信*/
|
||||
@@ -251,6 +259,8 @@
|
||||
|
||||
#define ETYPE_COMM_WITH_TMC ((UINT8)0x17) /*与TMC通信*/
|
||||
#define ETYPE_COMM_WITH_RC ((UINT8)0x18U) /*与RC通信*/
|
||||
#define ETYPE_COMM_WITH_OC ((UINT8)0x19U) /*与OC通信*/
|
||||
#define ETYPE_COMM_WITH_GATEWAY ((UINT8)0x1AU) /*与网关通信*/
|
||||
|
||||
/* 信号机故障类型编码 (UINT8)0x21-(UINT8)0x3f */
|
||||
/* 设备类型 CI_DEVICE_TYPE_SIGNAL */
|
||||
|
||||
@@ -662,4 +662,55 @@ UINT8 CheckEsbBelSendRange(const UINT16 wCheckEsbId)
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急停车按钮关联的同站紧急按钮数量
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:同站紧急按钮数量
|
||||
* Created By LQ 2025.12.30
|
||||
*/
|
||||
UINT8 GetEsbRelOnePlatEsbNum(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 reVal = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbConfigDataStru[bufIndex].RelOnePlatEsbNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回0*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急停车按钮关联的同站紧急按钮ID数组
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 其它 同站紧急按钮ID数组
|
||||
* Created By LQ 2025.12.30
|
||||
*/
|
||||
UINT16* GetEsbRelOnePlatEsbId(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT16* reVal = NULL;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbConfigDataStru[bufIndex].RelOnePlatEsbId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回NULL*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "CommonTypes.h"
|
||||
#include "../System/CiSystemDefine.h"
|
||||
#include "../System/SystemParameterManage.h"
|
||||
#include "dquStructInit.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -50,6 +51,8 @@ typedef struct S_EsbConfigDataStruct
|
||||
UINT16 EsbCutoffBuzzRelayId; /*切除蜂鸣器报警继电器ID*/
|
||||
UINT8 ConfigAtsCiEssSteadyMask; /*是否配置了ATS-CI稳灯状态码位0x55 配置;0xaa未配置*/
|
||||
UINT8 ConfigAtsCiEssFlashMask; /*是否配置了ATS-CI闪灯状态码位0x55 配置;0xaa未配置*/
|
||||
UINT8 RelOnePlatEsbNum; /*关联同站ESB数量*/
|
||||
UINT16 RelOnePlatEsbId[ESB_PROTECT_LINK_NUM]; /*关联同站ESB ID数组*/
|
||||
} EsbConfigDataStruct;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
@@ -293,6 +296,23 @@ UINT16 GetEsbCutoffBuzzRelayId(const UINT16 esbId);
|
||||
*/
|
||||
UINT8 CheckEsbBelSendRange(const UINT16 wCheckEsbId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急停车按钮关联的同站紧急按钮数量
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:同站紧急按钮数量
|
||||
* Created By LQ 2025.12.30
|
||||
*/
|
||||
UINT8 GetEsbRelOnePlatEsbNum(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急停车按钮关联的同站紧急按钮ID数组
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 其它 同站紧急按钮ID数组
|
||||
* Created By LQ 2025.12.30
|
||||
*/
|
||||
UINT16* GetEsbRelOnePlatEsbId(const UINT16 esbId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -171,6 +171,8 @@ UINT8 EsbDataManageInit(void)
|
||||
EsbDataStru[esbId].EsbCutErrTriggerPressCycNum = 0U; /*紧急关闭旁路按钮误触发按下周期*/
|
||||
EsbDataStru[esbId].EsbCutErrorFlag = ESB_ERROR_FLAG_NO; /*紧急关闭旁路按钮未故障*/
|
||||
EsbDataStru[esbId].EsbCutRelayDownState = ESB_RELAY_ERROR_DOWN_YES; /*紧急关闭旁路按钮采集继电器落下状态初始化为通信异常落下*/
|
||||
EsbDataStru[esbId].cOnePlatEsbState = ESB_STATE_VALID_NO; /*初始化同站紧急按钮未激活*/
|
||||
EsbDataStru[esbId].cOnePlatEsbCutState = ESB_CUT_NO; /*初始化同站紧急旁路按钮未激活*/
|
||||
}
|
||||
rtn = CI_SUCCESS;
|
||||
return rtn;
|
||||
@@ -1072,4 +1074,303 @@ UINT8 GetEsbRelayDownState(const UINT16 esbId)
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID紧急停车按钮状态(融合了旁路状态)
|
||||
* 参数说明: const UINT16 esbId, 紧急停车按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 紧急停车按钮状态
|
||||
*/
|
||||
UINT8 GetEsbMergeState(const UINT16 esbId)
|
||||
{
|
||||
|
||||
UINT8 reVal = CI_ERROR;
|
||||
UINT8 chEsbState = 0U;
|
||||
UINT8 chEsbCutState = 0U;
|
||||
|
||||
|
||||
chEsbState = GetEsbState(esbId);
|
||||
chEsbCutState = GetEsbCutState(esbId);
|
||||
if (ESB_CUT_YES == chEsbCutState)
|
||||
{
|
||||
reVal = ESB_STATE_VALID_NO;/*未按下*/
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ESB_STATE_VALID_NO == chEsbState)
|
||||
{
|
||||
reVal = ESB_STATE_VALID_NO;/*未按下*/
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = ESB_STATE_VALID_YES;
|
||||
}
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急按钮同站紧急按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 0x55 紧急未激活
|
||||
* 0xAA 紧急激活
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
UINT8 GetOnePlatEsbState(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbDataStru[bufIndex].cOnePlatEsbState;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回失败*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮同站紧急按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbState 紧急按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetOnePlatEsbState(const UINT16 esbId, const UINT8 esbState)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((ESB_STATE_VALID_NO == esbState) || (ESB_STATE_VALID_YES == esbState))
|
||||
{
|
||||
EsbDataStru[bufIndex].cOnePlatEsbState = esbState; /*同站紧急按钮激活状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急按钮同站紧急旁路按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 0x55 旁路未激活
|
||||
* 0xAA 旁路激活
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
UINT8 GetOnePlatEsbCutState(const UINT16 esbId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = EsbDataStru[bufIndex].cOnePlatEsbCutState;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*返回失败*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮同站紧急旁路按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbCutState 紧急旁路按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetOnePlatEsbCutState(const UINT16 esbId, const UINT8 esbCutState)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
|
||||
if (ESB_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((ESB_CUT_NO == esbCutState) || (ESB_CUT_YES == esbCutState))
|
||||
{
|
||||
EsbDataStru[bufIndex].cOnePlatEsbCutState = esbCutState; /*同站紧急按钮激活状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:清除同站紧急按钮及旁路按钮激活状态
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.30
|
||||
*/
|
||||
void ClearOnePlatEsbAndCutState(void)
|
||||
{
|
||||
UINT16 wEsbTotalSum = 0U; /*ESB总数*/
|
||||
UINT16 ii = 0U;
|
||||
UINT16 wEsbId = 0U; /*ESB ID*/
|
||||
|
||||
wEsbTotalSum = GetTotalEsbCurNum();
|
||||
|
||||
/*重置所有紧急按钮的同站紧急按钮及旁路按钮为未激活状态*/
|
||||
for (ii = 0U; ii < wEsbTotalSum; ii++)
|
||||
{
|
||||
wEsbId = GetEsbId(ii);
|
||||
SetOnePlatEsbState(wEsbId, ESB_STATE_VALID_NO);
|
||||
SetOnePlatEsbCutState(wEsbId, ESB_CUT_NO);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮关联的其它同站紧急按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbState 紧急按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetRelOtherOnePlatEsbState(const UINT16 esbId, const UINT8 esbState)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 cRelOnePlatEsbNum = 0U; /*关联的其它同站紧急按钮数量*/
|
||||
UINT16* pRelOnePlatEsbId = NULL; /*关联的其它同站紧急按钮ID*/
|
||||
UINT8 ii = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
cRelOnePlatEsbNum = GetEsbRelOnePlatEsbNum(esbId);
|
||||
pRelOnePlatEsbId = GetEsbRelOnePlatEsbId(esbId);
|
||||
|
||||
if ((ESB_SUM_MAX > bufIndex) && (0U < cRelOnePlatEsbNum) && (NULL != pRelOnePlatEsbId))
|
||||
{
|
||||
if ((ESB_STATE_VALID_NO == esbState) || (ESB_STATE_VALID_YES == esbState))
|
||||
{
|
||||
for (ii = 0U; ii < cRelOnePlatEsbNum; ii++)
|
||||
{
|
||||
SetOnePlatEsbState(pRelOnePlatEsbId[ii], esbState);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮关联的其它同站紧急旁路按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbCutState 紧急旁路按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetRelOtherOnePlatEsbCutState(const UINT16 esbId, const UINT8 esbCutState)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 cRelOnePlatEsbNum = 0U; /*关联的其它同站紧急按钮数量*/
|
||||
UINT16* pRelOnePlatEsbId = NULL; /*关联的其它同站紧急按钮ID*/
|
||||
UINT8 ii = 0U;
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
cRelOnePlatEsbNum = GetEsbRelOnePlatEsbNum(esbId);
|
||||
pRelOnePlatEsbId = GetEsbRelOnePlatEsbId(esbId);
|
||||
|
||||
if ((ESB_SUM_MAX > bufIndex) && (0U < cRelOnePlatEsbNum) && (NULL != pRelOnePlatEsbId))
|
||||
{
|
||||
if ((ESB_CUT_NO == esbCutState) || (ESB_CUT_YES == esbCutState))
|
||||
{
|
||||
for (ii = 0U; ii < cRelOnePlatEsbNum; ii++)
|
||||
{
|
||||
SetOnePlatEsbCutState(pRelOnePlatEsbId[ii], esbCutState);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:检查指定ID紧急按钮关联的其它同站紧急按钮状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* 返 回 值:1 紧急无效或旁路有效
|
||||
* 0 紧急有效
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
UINT8 CheckRelOtherOnePlatEsbState(const UINT16 esbId)
|
||||
{
|
||||
UINT8 cRetVal = CI_ERROR;
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 cRelOnePlatEsbNum = 0U; /*关联的其它同站紧急按钮数量*/
|
||||
UINT16* pRelOnePlatEsbId = NULL; /*关联的其它同站紧急按钮ID*/
|
||||
UINT8 ii = 0U;
|
||||
UINT8 cEsbState = 0U; /*紧急按钮状态*/
|
||||
UINT8 cEsbCutState = 0U; /*紧急按钮旁路状态*/
|
||||
|
||||
bufIndex = GetEsbConfigBufIndex(esbId); /*获取数组下标*/
|
||||
cRelOnePlatEsbNum = GetEsbRelOnePlatEsbNum(esbId);
|
||||
pRelOnePlatEsbId = GetEsbRelOnePlatEsbId(esbId);
|
||||
|
||||
if ((ESB_SUM_MAX > bufIndex) && (NULL != pRelOnePlatEsbId))
|
||||
{
|
||||
cRetVal = CI_SUCCESS;
|
||||
for (ii = 0U; ii < cRelOnePlatEsbNum; ii++)
|
||||
{
|
||||
cEsbState = GetEsbState(pRelOnePlatEsbId[ii]);
|
||||
cEsbCutState = GetEsbCutState(pRelOnePlatEsbId[ii]);
|
||||
|
||||
if ((ESB_STATE_VALID_NO == cEsbState) || (ESB_CUT_YES == cEsbCutState))
|
||||
{
|
||||
/*继续检查*/
|
||||
}
|
||||
else
|
||||
{
|
||||
cRetVal = CI_ERROR; /*存在一个ESB紧急有效且旁路无效,返回0*/
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cRetVal = CI_ERROR; /*入参非法,返回0*/
|
||||
}
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
@@ -49,6 +49,8 @@ typedef struct S_EsbDataStruct
|
||||
UINT32 EsbCutErrTriggerPressCycNum; /*紧急关闭旁路按钮误触发按下周期*/
|
||||
UINT8 EsbCutErrorFlag; /*紧急关闭旁路按钮故障标志,0x55-未故障,0xaa-故障*/
|
||||
UINT8 EsbCutRelayDownState; /*紧急关闭旁路按钮采集继电器落下状态,0x55-正常采集落下,0xaa-通信异常落下*/
|
||||
UINT8 cOnePlatEsbState; /*同站紧急按钮激活状态:0x55-未激活,0xAA-激活*/
|
||||
UINT8 cOnePlatEsbCutState; /*同站紧急旁路按钮激活状态:0x55-未激活,0xAA-激活*/
|
||||
} EsbDataStruct;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
@@ -406,6 +408,86 @@ void SetEsbRelayDownState(const UINT16 esbId, const UINT8 cRelayDownState);
|
||||
* Created By LQ 2025.04.01
|
||||
*/
|
||||
UINT8 GetEsbRelayDownState(const UINT16 esbId);
|
||||
/*
|
||||
* 功能描述: 获取指定ID紧急停车按钮状态(融合了旁路状态)
|
||||
* 参数说明: const UINT16 esbId, 紧急停车按钮ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 紧急停车按钮状态
|
||||
*/
|
||||
UINT8 GetEsbMergeState(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急按钮同站紧急按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 0x55 紧急未激活
|
||||
* 0xAA 紧急激活
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
UINT8 GetOnePlatEsbState(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮同站紧急按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbState 紧急按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetOnePlatEsbState(const UINT16 esbId, const UINT8 esbState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID紧急按钮同站紧急旁路按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急停车按钮ID
|
||||
* 返 回 值:0 获取数据失败
|
||||
* 0x55 旁路未激活
|
||||
* 0xAA 旁路激活
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
UINT8 GetOnePlatEsbCutState(const UINT16 esbId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮同站紧急旁路按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbCutState 紧急旁路按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetOnePlatEsbCutState(const UINT16 esbId, const UINT8 esbCutState);
|
||||
|
||||
/*
|
||||
* 功能描述:清除同站紧急按钮及旁路按钮激活状态
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.30
|
||||
*/
|
||||
void ClearOnePlatEsbAndCutState(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮关联的其它同站紧急按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbState 紧急按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetRelOtherOnePlatEsbState(const UINT16 esbId, const UINT8 esbState);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID紧急按钮关联的其它同站紧急旁路按钮激活状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* const UINT8 esbCutState 紧急旁路按钮状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
void SetRelOtherOnePlatEsbCutState(const UINT16 esbId, const UINT8 esbCutState);
|
||||
|
||||
/*
|
||||
* 功能描述:检查指定ID紧急按钮关联的其它同站紧急按钮状态
|
||||
* 参数说明:const UINT16 esbId 紧急按钮ID
|
||||
* 返 回 值:1 紧急无效或旁路有效
|
||||
* 0 紧急有效
|
||||
* Created By LQ 2025.12.29
|
||||
*/
|
||||
UINT8 CheckRelOtherOnePlatEsbState(const UINT16 esbId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -1529,7 +1529,7 @@ UINT8 elm_PrepareEnvelopeIsSelf(IN const EnvelopeStruct* ptemp)
|
||||
/** 在一个OC*/
|
||||
ret = ELM_BELONG_OWNER;
|
||||
}
|
||||
else if((localOCid != pointABelongOcid) && (localOCid != pointBBelongOcid))
|
||||
else if ((localOCid != pointABelongOcid) && (localOCid != pointBBelongOcid))
|
||||
{
|
||||
/** 不在同一OC*/
|
||||
ret = ELM_BELONG_OTHER;
|
||||
@@ -1683,8 +1683,8 @@ UINT8 elm_PrepareOCCommStatus(UINT8 OCID)
|
||||
UINT8 ret = ELM_COM_STATUS_ERROR;
|
||||
UINT8 funRtn = TRANSMIT_STATE_BAD;
|
||||
|
||||
/** 获取OC通信状态 */
|
||||
funRtn = GetCiTransmitState(CI_SYSTEM_TYPE_RCI,OCID);
|
||||
/** 获取Rc通信状态 */
|
||||
funRtn = GetRcPbTacsTransmitState(OCID);
|
||||
|
||||
/** 设置函数返回值 */
|
||||
ASSERT_SETRET(TRANSMIT_STATE_GOOD == funRtn,ret,ELM_COM_STATUS_OK,ELM_COM_STATUS_ERROR)
|
||||
|
||||
@@ -156,6 +156,7 @@ UINT8 HLHTRecvCommonPacketHeadCheck(UINT16 LocalDevName, UINT16 RemoteDevName, U
|
||||
|
||||
if ((CI_SYSTEM_TYPE_CI == devType) || (CI_SYSTEM_TYPE_RC == devType))
|
||||
{
|
||||
/*修改:根据发送方类型获取电子地图校验*/
|
||||
emapVer = GetCiTranCiDataCheckVer((UINT8)(RemoteDevName & 0x00FFU), LocalDevName);
|
||||
emapCheckVer = CI_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
HLHTHeadContextStru ciHLHTHeadCtxs[CI_SUM_MAX]={0U};/*存放与本控区通信的相邻CI互联互通报文头上下文数据*/
|
||||
HLHTHeadContextStru gSzRcHLHTHeadCtxs[CI_SUM_MAX] = { 0U }; /*存放与本控区通信的相邻RC互联互通报文头上下文数据*/
|
||||
HLHTHeadContextStru ciHLHTHeadCtxsCiToRc[CI_SUM_MAX] = { 0U };/*存放本控区CI同步的相邻CI互联互通报文头上下文数据*/
|
||||
HLHTHeadContextStru gSzRcHLHTHeadCtxsCiToRc[CI_SUM_MAX] = { 0U }; /*存放本控区CI同步的相邻RC互联互通报文头上下文数据*/
|
||||
HLHTHeadContextStru vobcHLHTHeadCtxs[VOBC_SUM_MAX]={0U};/*存放与本CI通信的VOBC互联互通报文头上下文数据*/
|
||||
HLHTHeadContextStru vobcBackupHLHTHeadCtxs[VOBC_BACKUP_SUM_MAX] = { 0U };/*存放与本CI通信的后备模式VOBC互联互通报文头上下文数据*/
|
||||
HLHTHeadContextStru zcHLHTHeadCtxs[ZC_SUM_MAX]={0U};/*存放与本CI通信的ZC互联互通报文头上下文数据*/
|
||||
@@ -576,7 +578,7 @@ static UINT8 GetHLHTHeadCtxTmepVars(const UINT8 devType, UINT16 *devMaxSum, HLHT
|
||||
UINT8 retVal = CI_ERROR;
|
||||
UINT16 maxDevSum = 0u;
|
||||
HLHTHeadContextStru *tempHeadCtxPtr = NULL;
|
||||
UINT8 chSystemWorkType = GetSystemWorkType();; /*系统工作类型*/
|
||||
UINT8 chSystemWorkType = GetSystemWorkType();/*系统工作类型*/
|
||||
UINT8 cRcWorkMode = 0U;/*本系统当前工作模式*/
|
||||
|
||||
cRcWorkMode = GetLocalRcWorkMode();
|
||||
@@ -699,7 +701,7 @@ static void ProcHlhtHeadCtxTimeOutDiffSys(const UINT32 timeoutSnCount, const UIN
|
||||
HLHTHeadContextStru tempHeadCtx = { 0u };
|
||||
UINT8 headValid = 0u;
|
||||
INT32 remainValidiy;/*剩余的时间*/
|
||||
|
||||
UINT8 chRcID = 0U;
|
||||
if (NULL != headCtxs)
|
||||
{
|
||||
for (i = 0u;i < headCount;i++)
|
||||
@@ -737,21 +739,9 @@ static void ProcHlhtHeadCtxTimeOutDiffSys(const UINT32 timeoutSnCount, const UIN
|
||||
|
||||
if (0u == headValid)
|
||||
{
|
||||
if ((headCtxs == axleHLHTHeadCtxs) || (headCtxs == gSzRcAxleHLHTHeadCtxs)) /*计轴系统中断时,GAL层对方序号,收到对方数据时本方序号,设置0xFFFFFFFF*/
|
||||
{
|
||||
headCtxs[i].logId = 0u;
|
||||
headCtxs[i].sourceRecvOppMsgSN = 0u;
|
||||
headCtxs[i].sourcePreOwnMsgSN = 0u;
|
||||
headCtxs[i].sourceComPeriod = 0u;
|
||||
headCtxs[i].sourceCrntOwnMsgSN = 0xFFFFFFFFu;
|
||||
headCtxs[i].ciPreRecvOwnSn = 0xFFFFFFFFu;
|
||||
}
|
||||
else
|
||||
{
|
||||
(void)CommonMemSet(&(headCtxs[i]), (UINT32)sizeof(HLHTHeadContextStru), 0u, (UINT32)sizeof(HLHTHeadContextStru));
|
||||
headCtxs[i].sourceCrntOwnMsgSN = 0xFFFFFFFFu;
|
||||
headCtxs[i].ciPreRecvOwnSn = 0xFFFFFFFFu;
|
||||
}
|
||||
(void)CommonMemSet(&(headCtxs[i]), (UINT32)sizeof(HLHTHeadContextStru), 0u, (UINT32)sizeof(HLHTHeadContextStru));
|
||||
headCtxs[i].sourceCrntOwnMsgSN = 0xFFFFFFFFu;
|
||||
headCtxs[i].ciPreRecvOwnSn = 0xFFFFFFFFu;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1289,5 +1279,51 @@ HLHTHeadContextStru* GetCiToRcHLHTOcHeadCtx(const UINT8 ocId)
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return pstrRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定CI的CI-RC同步CI互联互通报文头上下文数据
|
||||
* 参数说明:const UINT8 chDevId 设备ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 非NULL 获取数据成功
|
||||
* Created By fan 2025.12.31
|
||||
*/
|
||||
HLHTHeadContextStru* GetCiToRcWithCiHeadCtx(const UINT8 chDevId)
|
||||
{
|
||||
HLHTHeadContextStru* pstrRetVal = NULL;
|
||||
|
||||
if ((0U < chDevId) && (CI_SUM_MAX > chDevId))
|
||||
{
|
||||
pstrRetVal = &ciHLHTHeadCtxsCiToRc[chDevId];
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return pstrRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定CI的CI-RC同步RC互联互通报文头上下文数据
|
||||
* 参数说明:const UINT8 chDevId 设备ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 非NULL 获取数据成功
|
||||
* Created By fan 2025.12.31
|
||||
*/
|
||||
HLHTHeadContextStru* GetCiToRcWithRcHeadCtx(const UINT8 chDevId)
|
||||
{
|
||||
HLHTHeadContextStru* pstrRetVal = NULL;
|
||||
|
||||
if ((0U < chDevId) && (CI_SUM_MAX > chDevId))
|
||||
{
|
||||
pstrRetVal = &gSzRcHLHTHeadCtxsCiToRc[chDevId];
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return pstrRetVal;
|
||||
}
|
||||
@@ -40,6 +40,8 @@ extern "C" {
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern HLHTHeadContextStru ciHLHTHeadCtxs[CI_SUM_MAX];/*存放与本控区通信的相邻CI互联互通报文头上下文数据*/
|
||||
extern HLHTHeadContextStru gSzRcHLHTHeadCtxs[CI_SUM_MAX]; /*存放与本控区通信的相邻RC互联互通报文头上下文数据*/
|
||||
extern HLHTHeadContextStru ciHLHTHeadCtxsCiToRc[CI_SUM_MAX];/*存放与本控区通信的相邻CI互联互通报文头上下文数据*/
|
||||
extern HLHTHeadContextStru gSzRcHLHTHeadCtxsCiToRc[CI_SUM_MAX]; /*存放与本控区通信的相邻RC互联互通报文头上下文数据*/
|
||||
extern HLHTHeadContextStru vobcHLHTHeadCtxs[VOBC_SUM_MAX];/*存放与本CI通信的VOBC互联互通报文头上下文数据*/
|
||||
extern HLHTHeadContextStru vobcBackupHLHTHeadCtxs[VOBC_BACKUP_SUM_MAX];/*存放与本CI通信的后备模式VOBC互联互通报文头上下文数据*/
|
||||
extern HLHTHeadContextStru zcHLHTHeadCtxs[ZC_SUM_MAX];/*存放与本CI通信的ZC互联互通报文头上下文数据*/
|
||||
@@ -298,6 +300,23 @@ extern "C" {
|
||||
* Created By fan 2025.11.12
|
||||
*/
|
||||
HLHTHeadContextStru* GetCiToRcHLHTOcHeadCtx(const UINT8 ocId);
|
||||
/*
|
||||
* 功能描述:获取指定CI的CI-RC同步CI互联互通报文头上下文数据
|
||||
* 参数说明:const UINT8 chDevId 设备ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 非NULL 获取数据成功
|
||||
* Created By fan 2025.12.31
|
||||
*/
|
||||
HLHTHeadContextStru* GetCiToRcWithCiHeadCtx(const UINT8 chDevId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定CI的CI-RC同步RC互联互通报文头上下文数据
|
||||
* 参数说明:const UINT8 chDevId 设备ID
|
||||
* 返 回 值:NULL 获取数据失败
|
||||
* 非NULL 获取数据成功
|
||||
* Created By fan 2025.12.31
|
||||
*/
|
||||
HLHTHeadContextStru* GetCiToRcWithRcHeadCtx(const UINT8 chDevId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -137,12 +137,14 @@ void SwitchDeviceToRelayStateProc(void);
|
||||
*/
|
||||
void PhySecRelayToDeviceStateProc(void);
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* 功能描述: 更新区段计轴复位继电器状态
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
*/
|
||||
void PhySecResetToRelayStateProc(void);
|
||||
#endif
|
||||
/*
|
||||
* 功能描述: 更新区段计轴复位继电器状态
|
||||
* 参数说明: void
|
||||
@@ -184,10 +186,9 @@ UINT8 PsdDeviceToRelayStateProc(void);
|
||||
/*
|
||||
* 功能描述: 更新洗车机继电器状态
|
||||
* 参数说明: void
|
||||
* 返回值 : 0: 更新失败
|
||||
* 1: 更新成功
|
||||
* 返回值 : void
|
||||
*/
|
||||
UINT8 WashMachineDevToRelayStaProc(void);
|
||||
void WashMachineDevToRelayStaProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 更新紧急停车按钮逻辑状态
|
||||
@@ -224,10 +225,9 @@ void GaragedoorDevToRelayStaProc(void);
|
||||
/*
|
||||
* 功能描述: 更新洗车机的逻辑状态
|
||||
* 参数说明: void
|
||||
* 返回值 : 0: 更新失败
|
||||
* 1: 更新成功
|
||||
* 返回值 : void
|
||||
*/
|
||||
UINT8 WashMachineToDeviceStateProc(void);
|
||||
void WashMachineToDeviceStateProc(void);
|
||||
/*
|
||||
* 功能描述: 更新Spks按钮逻辑状态
|
||||
* 参数说明: void
|
||||
@@ -326,12 +326,17 @@ void OcSwitchDeviceOutput(void);
|
||||
UINT8 GetOcSignalColor(UINT16 signalId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取OC道岔设备颜色
|
||||
* 功能描述: 获取OC道岔设备状态
|
||||
* 参数说明:
|
||||
UINT16 signalId:信号机id
|
||||
* 返回值 : void
|
||||
UINT16 switchId:道岔id
|
||||
UINT8 mainControlOCId 主控OCId
|
||||
* 返回值 :
|
||||
* ((UINT8)0x01) 道岔定位
|
||||
* ((UINT8)0x02) 道岔反位
|
||||
* ((UINT8)0x04) 道岔四开
|
||||
* ((UINT8)0x08) 道岔移动
|
||||
*/
|
||||
UINT8 GetOcSwitchState(UINT16 switchId);
|
||||
UINT8 GetOcSwitchState(UINT16 switchId, UINT8 mainControlOCId);
|
||||
|
||||
/*
|
||||
* 功能描述: 间隙探测脉冲接口方式启动驱动处理
|
||||
@@ -803,7 +808,7 @@ UINT8 WashMachineWorkModeRelayProc(const UINT16 washMachineId);
|
||||
* CI_SUCCESS: 更新成功
|
||||
* by cgh 20231113
|
||||
*/
|
||||
UINT8 DownWashDevToRelayStaProc(const UINT16 washMachineId);
|
||||
void DownWashDevToRelayStaProc(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式洗车线关联进路状态检查
|
||||
@@ -991,6 +996,212 @@ UINT8 GetSndDetBtnCollTolerateRet(const UINT16 wSignalId);
|
||||
*/
|
||||
void SetAllSingleSwitchZzjState(UINT16 switchCurSum);
|
||||
|
||||
/*
|
||||
* 功能描述: 指定洗车机ID降级模式洗车按钮状态更新
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachineButtonStateProc(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 指定洗车机ID降级模式请求信息处理
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachineApplyStateProc(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 指定洗车机ID降级模式洗车请求信息处理
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachineApplyProc(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 指定洗车机ID降级模式反向通过请求信息处理
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachinePassApplyProc(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 洗车线控制室更新洗车同意按钮逻辑
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachineButtonUpdate(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: DCC更新洗车同意按钮逻辑
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachineDCCButtonUpdate(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 融合洗车同意状态
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void FusionWashMachineAllowState(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 洗车线控制室更新反向洗车同意按钮逻辑
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachinePassButtonUpdate(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: DCC更新反向洗车同意按钮逻辑
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void WashMachineDCCPassButtonUpdate(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 融合反向通过同意按钮状态
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void FusionWashMachinePassAllowState(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式洗车线洗车请求指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachineApplyLight(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式DCC洗车请求指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachineDccApplyLight(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式洗车线洗车反向通过请求指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachinePassApplyLight(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式DCC洗车反向通过请求指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachineDccPassApplyLight(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式洗车同意指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachineAllowLight(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式DCC洗车同意指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachineDccAllowLight(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式洗车同意反向通过指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachinePassAllowLight(const UINT16 washMachineId);
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 降级模式DCC洗车同意反向通过指示灯
|
||||
* 参数说明: const UINT16 washMachineId 洗车机ID
|
||||
* 返回值 :void
|
||||
*/
|
||||
void WashMachineDccPassAllowLight(const UINT16 washMachineId);
|
||||
|
||||
/*
|
||||
* 功能描述: 更新屏蔽门对应IBP盘发车按钮继电器状态
|
||||
* 参数说明: const UINT16 wPsdId 屏蔽门ID
|
||||
* 返回值 : CI_ERROR: 更新失败
|
||||
* CI_SUCCESS: 更新成功
|
||||
*/
|
||||
UINT8 PsdIbpRelToDevStaProc(const UINT16 wPsdId);
|
||||
|
||||
/*
|
||||
* 功能描述:同站紧急按钮及旁路按钮状态处理
|
||||
* 参数说明:void
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.12.30
|
||||
*/
|
||||
void OnePlatEsbAndCutBtnProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:取消当前未异常打开的站台门的异常状态
|
||||
* 参数说明: const UINT16 doorId,屏蔽门ID
|
||||
* 返回值 :无
|
||||
*Create fan 2026.03.26
|
||||
*/
|
||||
void CancelPsdExceptState(UINT16 doorId);
|
||||
/*
|
||||
* 功能描述: 设置道岔的每一个OC的主控状态
|
||||
* 参数说明:
|
||||
UINT16 switchId:道岔id
|
||||
* 返回值 :void
|
||||
* add by mpt 20260326
|
||||
*/
|
||||
void SetOcSwitchControlState(UINT16 switchId);
|
||||
/*
|
||||
* 功能描述: 仲裁当前道岔的主控OC
|
||||
* 参数说明: UINT16 switchCurSum 道岔总数
|
||||
* 返回值 : 无
|
||||
* add by mpt 20260326
|
||||
*/
|
||||
void SetAllSwitchCurMainControlOC(UINT16 switchCurSum);
|
||||
/*
|
||||
* 功能描述: OC道岔主控命令生成处理
|
||||
* 参数说明: UINT16 switchId 道岔ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void OutSwitchControlModeCmd(UINT16 switchId);
|
||||
/*
|
||||
* 功能描述: 道岔无主控时产生主备控命令处理
|
||||
* 参数说明: UINT16 switchId
|
||||
* 返回值 : void
|
||||
*/
|
||||
void SwitchMainControlCmdOut(UINT16 switchId, UINT8 ocId);
|
||||
/*
|
||||
* 功能描述: OC道岔主控状态管理
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
*/
|
||||
void OcSwitchControlModeCmdOutput(void);
|
||||
/*
|
||||
* 功能描述: 双主防护模块
|
||||
* 参数说明: UINT16 switchId 道岔ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void SwitchDoubleMainProtect(UINT16 switchId);
|
||||
/*
|
||||
* 功能描述:道岔寻表模块
|
||||
* 参数说明: UINT16 switchId 道岔ID
|
||||
* 返回值 : void
|
||||
* add by mpt 20260328
|
||||
*/
|
||||
void FindSwitchPostionCmdOut(UINT16 switchId);
|
||||
|
||||
/*
|
||||
* 功能描述: 更新倒切柜状态
|
||||
* 参数说明: void
|
||||
* 返回值 : 无
|
||||
* Create Fan 20260608
|
||||
*/
|
||||
void ReverseStateUpdateProc(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
+1475
-2436
File diff suppressed because it is too large
Load Diff
@@ -128,14 +128,6 @@ void ProcessPscToCiData(void);
|
||||
*/
|
||||
UINT8 ProcessAtsOrXianDiToCiData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 处理车辆段的ATS或现地到CI数据
|
||||
* 参数说明: void
|
||||
* 返回值 : 0:处理失败
|
||||
* 1:处理成功
|
||||
*/
|
||||
UINT8 ProcessAtsOrXianDiToCiDataCld(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 处理设备逻辑状态
|
||||
* 参数说明: void
|
||||
@@ -304,7 +296,7 @@ UINT8 CheckOrderWhetherDoing(UINT8 virCIid,UINT8 belongVirCIid,UINT8 orderType,U
|
||||
* UINT8 MaskType 码位类型
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void DealAutoReturnMask_UseVirCI(UINT16 DeviceId,UINT16*maskBuf,UINT8 MaskType,UINT16 index);
|
||||
void DealAutoReturnMask(UINT16 DeviceId,UINT8* pMaskBuf,UINT8 MaskType,UINT16 index);
|
||||
/*
|
||||
* 功能描述: 获取全站维修点灯状态
|
||||
* 参数说明: UINT8 virCIid 虚拟联锁ID
|
||||
@@ -545,6 +537,13 @@ void SignalTrainCrossPro(void);
|
||||
* 返回值 : void
|
||||
*/
|
||||
void ProcessIvocToRCData(void);
|
||||
/*
|
||||
* 功能描述: Vobc点连式信息清除
|
||||
* 参数说明: UINT16 wTrainId:VOBCid
|
||||
* 返回值 : void
|
||||
* by lyj 20260316
|
||||
*/
|
||||
void VobcBlocLinkDataClear(const UINT16 wTrainId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+1409
-1083
File diff suppressed because it is too large
Load Diff
@@ -92,6 +92,7 @@ UINT8 CiToAtsBackInfoFunctionJudge(const UINT8 functionId,const UINT8 deviceType
|
||||
*/
|
||||
void IndicatorStateProc(void);
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* 功能描述: 指示器状态处理
|
||||
* 参数说明: void
|
||||
@@ -99,6 +100,7 @@ void IndicatorStateProc(void);
|
||||
*/
|
||||
void IndicatorStateProc_UseVirCI(UINT8 virCIid);
|
||||
|
||||
#endif
|
||||
/*
|
||||
* 功能描述: 非进路继电器状态处理
|
||||
* 参数说明: void
|
||||
@@ -147,12 +149,7 @@ void SignaDsBreakAlarmIndicator_Vir(UINT8 virCIid,UINT8 devId);
|
||||
*/
|
||||
void CiToCiOutputCmdProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 根据无人折返指示灯的闪灯和稳灯状态驱动继电器或设置状态
|
||||
* 参数说明: 无
|
||||
* 返回值 : 无
|
||||
*/
|
||||
static void AutoRtnIndictStatusProc_VirCI(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取组合自动进路所属虚拟联锁ID
|
||||
* 参数说明: groupAutoRouteId 组合自动进路的ID
|
||||
@@ -463,6 +460,93 @@ void RtnRealyAdhesionStatePro(void);
|
||||
* by cgh 20250928
|
||||
*/
|
||||
UINT16 GetOverlapLaborUnlockBackTime(const UINT16 overlapId);
|
||||
/*
|
||||
* 功能描述: 设置联锁I系II系工作状态指示灯
|
||||
* 参数说明: const UINT16 wFIndicatorId I系指示灯id
|
||||
* const UINT16 wSIndicatorId II系指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260105
|
||||
*/
|
||||
void SetWorkStatusIndicator(const UINT16 wFIndicatorId, const UINT16 wSIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置信号故障关闭指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260105
|
||||
*/
|
||||
void SetSigFaultCloseIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置道岔挤岔指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260105
|
||||
*/
|
||||
void SetSwitchJiChaIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置车库门故障指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260105
|
||||
*/
|
||||
void SetGDoorFaultIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置继电器混线指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260105
|
||||
*/
|
||||
void SetRealyHunXianIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置应急盘指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260106
|
||||
*/
|
||||
void SetYjpIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置试车请求指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260106
|
||||
*/
|
||||
void SetSCApplyIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置试车同意指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260106
|
||||
*/
|
||||
void SetSCAllowIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 设置试车结束指示灯
|
||||
* 参数说明: const UINT16 wIndicatorId 指示灯id
|
||||
* 返回值 : 无
|
||||
* by lyj 20260106
|
||||
*/
|
||||
void SetSCOverIndicator(const UINT16 wIndicatorId);
|
||||
/*
|
||||
* 功能描述: 处理点连式列车发送数据信息
|
||||
* 参数说明: void
|
||||
* 返回值 : 无
|
||||
* by lyj 20260314
|
||||
*/
|
||||
void VobcBlocLinkOutputProcess(void);
|
||||
/*
|
||||
* 功能描述: 处理点连式列车进路信息
|
||||
* 参数说明: const UINT16 wTrainId 列车ID
|
||||
* 返回值 : 计算结果
|
||||
* by lyj 20260316
|
||||
*/
|
||||
|
||||
UINT8 BlocLinkTrainRouteMange(const UINT16 wTrainId);
|
||||
/*
|
||||
* 功能描述: 处理点连式列车逻辑区段信息
|
||||
* 参数说明: const UINT16 wTrainId 列车ID
|
||||
* 返回值 : 计算结果
|
||||
* by lyj 20260316
|
||||
*/
|
||||
|
||||
UINT8 BlocLinkTrainLogSecMange(const UINT16 wTrainId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -423,7 +423,7 @@ UINT8 GetIndicatorDevId(UINT16 indicatorId)
|
||||
* >0u: 报警灯设备ID
|
||||
* by cgh 20240910
|
||||
*/
|
||||
UINT8 GetIndicatorRelNonReturnId(UINT16 indicatorId)
|
||||
UINT16 GetIndicatorRelNonReturnId(UINT16 indicatorId)
|
||||
{
|
||||
|
||||
UINT16 wRetVal = CI_ERROR;
|
||||
@@ -456,4 +456,30 @@ UINT8 GetIndicatorRelNonReturnId(UINT16 indicatorId)
|
||||
}
|
||||
|
||||
return wRetVal;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 根据指示灯ID获取指示灯虚拟联锁ID
|
||||
* 参数说明: UINT16 wIndicId 指示灯ID
|
||||
* 返回值 : 0u: 获取数据失败
|
||||
* >0u: 虚拟联锁ID
|
||||
* BY:lyj 20260105
|
||||
*/
|
||||
UINT8 GetIndicBelongRtuId(UINT16 wIndicId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetIndicatorConfigBufIndex(wIndicId); /*获取指示器相关继电器数组下标*/
|
||||
|
||||
if (INDICATOR_SUM_MAX > bufIndex)
|
||||
{
|
||||
reVal = IndicatorConfigDataStru[bufIndex].chBelongVirCIid;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,8 @@ typedef struct S_IndicatorConfigDataStruct
|
||||
UINT8 AvalibleFlag;/*指示灯有效标志位 0x55无效 0xAA进路相关 0xAA继电器相关*/
|
||||
UINT8 IdSum; /*相关Id数量(配置字段)*/
|
||||
UINT16 IdBuf[INDICATOR_RELAY_SUM_MAX]; /*相关ID (配置字段)*/
|
||||
UINT8 BjdDeviceId; /*报警灯设备ID*/
|
||||
UINT8 BjdDeviceId; /*报警灯设备ID*/
|
||||
UINT8 chBelongVirCIid; /*所属虚拟联锁ID*/
|
||||
} IndicatorConfigDataStruct;
|
||||
|
||||
/*cgh-合并ECI11.0:OC站表示灯 OC站指一级集中站(CI+OC)的现地工作站、二级集中站(OC)的有岔非集现地工作站,中央联锁工作站*/
|
||||
@@ -183,7 +184,15 @@ UINT8 GetIndicatorDevId(UINT16 indicatorId);
|
||||
* >0u: 报警灯设备ID
|
||||
* by cgh 20240910
|
||||
*/
|
||||
UINT8 GetIndicatorRelNonReturnId(UINT16 indicatorId);
|
||||
UINT16 GetIndicatorRelNonReturnId(UINT16 indicatorId);
|
||||
/*
|
||||
* 功能描述: 根据指示灯ID获取指示灯虚拟联锁ID
|
||||
* 参数说明: UINT16 wIndicId 指示灯ID
|
||||
* 返回值 : 0u: 获取数据失败
|
||||
* >0u: 虚拟联锁ID
|
||||
* BY:lyj 20260105
|
||||
*/
|
||||
UINT8 GetIndicBelongRtuId(UINT16 wIndicId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -64,7 +64,10 @@
|
||||
#define INDICATOR_TYPE_SWITCH_JICHA ((UINT8)0x24) /* 道岔挤岔状态 */
|
||||
#define INDICATOR_TYPE_GD_DAD ((UINT8)0x25) /* 车库门故障报警状态 */
|
||||
#define INDICATOR_TYPE_XICHEJI_ALLOW_STATE ((UINT8)0x26) /* 非FAO线路同意洗车状态指示灯 */
|
||||
#define INDICATOR_TYPE_DOWNWASH_ALLOW_PASS_STATE ((UINT8)0x29) /* 降级模式洗车同意通过指示灯 */
|
||||
#define INDICATOR_TYPE_DOWNWASH_ALLOW_PASS ((UINT8)0x29) /* 降级模式洗车同意通过指示灯 */
|
||||
#define INDICATOR_TYPE_DOWNWASH_APPLY ((UINT8)0x63) /* 降级模式洗车请求指示灯 */
|
||||
#define INDICATOR_TYPE_DOWNWASH_PASS_APPLY ((UINT8)0x64) /* 降级模式反向通过请求指示灯 */
|
||||
#define INDICATOR_TYPE_XDC_DCGDJ ((UINT8)0x65) /* 蓄电池供电报警指示灯 */
|
||||
|
||||
#define INDICATOR_TYPE_ATS_CONFIRM_RELAY_INTERFACE ((UINT8)0x27) /*相邻联锁继电接口确认状态指示灯*/
|
||||
|
||||
|
||||
@@ -129,6 +129,9 @@ UINT8 InitAllStaticDataStr(void)
|
||||
/*声光报警器配置数据结构体*/
|
||||
chRtn &= CommonMemSet(SGBJConfigDataStru, (UINT32)(SGBJ_SUM_MAX * sizeof(SGBJConfigDataStruct)), 0u, (UINT32)(SGBJ_SUM_MAX * sizeof(SGBJConfigDataStruct)));
|
||||
|
||||
/*试灯数据配置结构体*/
|
||||
chRtn &= CommonMemSet(LightTestButtonConfigDataStru, (UINT32)(LIGHTTESTBUTTON_BUTTON_MAX_NUM * sizeof(LightTestButtonConfigDataStruct)), 0u, (UINT32)(LIGHTTESTBUTTON_BUTTON_MAX_NUM * sizeof(LightTestButtonConfigDataStruct)));
|
||||
|
||||
return chRtn;
|
||||
}
|
||||
|
||||
@@ -246,6 +249,7 @@ UINT8 ReadConfigureData(void)
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
PhysicalSectionCurSum = ReadPhySicalSectionConfigData(LocalCiId, PhysicalSectionConfigDataStru);/*读物理区段配置数据*/
|
||||
@@ -446,6 +450,13 @@ UINT8 ReadConfigureData(void)
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
IndicatorCurSum = ReadIndicatorConfigData(LocalCiId, IndicatorConfigDataStru); /*读指示灯报警灯配置数据*/
|
||||
if (-1 == IndicatorCurSum)
|
||||
{
|
||||
rtnVal = 20u;/*读取指示灯报警灯配置数据失败*/
|
||||
debug_infor_printf((const)"ReadIndicatorConfigData fail.");
|
||||
}
|
||||
#if 0
|
||||
includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
if (FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
@@ -468,15 +479,7 @@ UINT8 ReadConfigureData(void)
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
IndicatorCurSum = ReadIndicatorConfigData(LocalCiId, IndicatorConfigDataStru); /*读指示灯报警灯配置数据*/
|
||||
if (-1 == IndicatorCurSum)
|
||||
{
|
||||
rtnVal = 20u;/*读取指示灯报警灯配置数据失败*/
|
||||
debug_infor_printf((const)"ReadIndicatorConfigData fail.");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -528,7 +531,7 @@ UINT8 ReadConfigureData(void)
|
||||
g_ret = ReadReverseCutConfigData(LocalCiId, gstReverseCutCfgData);
|
||||
if (-1 == g_ret)
|
||||
{
|
||||
rtnVal = 28u;/*读保护区段配置数据失败*/
|
||||
rtnVal = 28u;/*读倒切配置数据失败-OC配置数据表单30*/
|
||||
debug_infor_printf((const)"ReadReverseCutConfigData fail.");
|
||||
}
|
||||
else if (0 < g_ret)
|
||||
@@ -552,7 +555,23 @@ UINT8 ReadConfigureData(void)
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
LightTestButtonCurSum = ReadLightTestConfigData(LocalCiId, LightTestButtonConfigDataStru); /*读OC试灯按钮配置数据*/
|
||||
if (-1 == LightTestButtonCurSum)
|
||||
{
|
||||
rtnVal = 44u;/*读取OC试灯按钮数据失败*/
|
||||
debug_infor_printf((const)"\nReadLightTestConfigData fail.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
CiToAtsMaskCurSum = ReadCiToAtsMaskConfigData(LocalCiId, CiToAtsMaskConfigDataStru); /*读CI-ATS配置数据*/
|
||||
@@ -791,6 +810,25 @@ UINT8 ReadConfigureData(void)
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
g_ret = ReadReverseSwitchConfigData(LocalCiId, &gLocalReverseData);
|
||||
if (-1 == g_ret)
|
||||
{
|
||||
rtnVal = 39u;/*读板卡配置数据失败-OC配置数据表单40、41*/
|
||||
debug_infor_printf((const)"ReadReverseSwitchConfigData fail.");
|
||||
}
|
||||
else
|
||||
{
|
||||
/*无操作*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
/*读系统参数配置数据*/
|
||||
@@ -1097,6 +1135,17 @@ UINT8 ReadConfigureData(void)
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
if (0u == rtnVal)
|
||||
{
|
||||
/*设置试车线与车辆段合设配置*/
|
||||
g_ret = (INT16)SetCldAndScxMergeConfig();
|
||||
if (0 == g_ret)
|
||||
{
|
||||
debug_infor_printf((const)"SetCldAndScxMergeConfig fail.\r\n");
|
||||
rtnVal = 44u;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1114,7 +1163,6 @@ UINT8 ReadConfigureData(void)
|
||||
UINT8 DeviceDataManage(void)
|
||||
{
|
||||
UINT8 rtValue = 0u;
|
||||
UINT8 includeVirFlag= GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 reval = CI_ERROR;
|
||||
/*整理继电器数据*/
|
||||
if (CI_ERROR == RelayConfigDataManage())
|
||||
@@ -1238,6 +1286,7 @@ UINT8 DeviceDataManage(void)
|
||||
{
|
||||
rtValue = 0u;
|
||||
}
|
||||
#if 0
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
reval = InitVirCIlocalCiIndicatorIdBuf();
|
||||
@@ -1246,14 +1295,16 @@ UINT8 DeviceDataManage(void)
|
||||
rtValue = 1u;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (0U == rtValue)
|
||||
{
|
||||
reval = IndicatorConfigDataManage();
|
||||
if(CI_ERROR == reval)
|
||||
if (CI_ERROR == reval)
|
||||
{
|
||||
rtValue = 1u;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (0U == rtValue)
|
||||
{
|
||||
@@ -1979,6 +2030,23 @@ INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData, Phys
|
||||
pSignalCfgData[j].DxRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayId;
|
||||
pSignalCfgData[j].DxDrvRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
}
|
||||
else if (SIGNAL_DJ_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSignalCfgData[j].FirDsRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayId;
|
||||
pSignalCfgData[j].wFirstDsDrvRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
}
|
||||
else if (SIGNAL_MAINJ_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSignalCfgData[j].wMainDrvRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
}
|
||||
else if (SIGNAL_ACKJ_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSignalCfgData[j].wAckDrvRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
}
|
||||
else if (SINNAL_CMAINJ_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSignalCfgData[j].wCMainDrvRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
@@ -2055,6 +2123,11 @@ INT8 OcConnectConfigDataToDevStruct(SignalConfigDataStruct* pSignalCfgData, Phys
|
||||
{
|
||||
pSwitchCfgData[j].ByPassRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayId;
|
||||
}
|
||||
/*IBP*/
|
||||
else if(SWITCH_IBP_TYPE == pConnectCfgData[i].OcConnetRelayDataBuf[k].RelayType)
|
||||
{
|
||||
pSwitchCfgData[j].IbpDrvRelayId = pConnectCfgData[i].OcConnetRelayDataBuf[k].DrvRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
#include "../Route/LongRouteConfigDataManage.h"
|
||||
#include "../SGBJ/SGBJConfigDataManage.h"
|
||||
#include "../VirtualDevice/VirtualDevDataManage.h"
|
||||
#include "LightTestButtonConfigDataManage.h"
|
||||
|
||||
extern INT16 trackCheckRes;
|
||||
extern INT16 g_ret;
|
||||
|
||||
@@ -480,6 +480,8 @@ UINT8 InitialProcess(void)
|
||||
{/*初始化LEU数据*/
|
||||
(void)InitLEUDataStru();
|
||||
}
|
||||
|
||||
|
||||
/*初始化设备打印数据*/
|
||||
(void)RecordDeviceDataLog(CI_ERROR);
|
||||
|
||||
@@ -496,6 +498,7 @@ UINT8 InitialProcess(void)
|
||||
|
||||
TiocTransCtInit();
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -514,10 +517,8 @@ UINT8 InitialSignalData(void)
|
||||
UINT16 routeSum = 0u; /*进路总数*/
|
||||
UINT16 routeId = 0u; /*进路ID*/
|
||||
UINT8 belongCiId = 0u; /*信号机所属CI的id*/
|
||||
UINT16 ciToLeuMaskSum = 0u; /*CI-LEU码位总数*/
|
||||
UINT16 startSignalId = 0u; /*始端信号机ID*/
|
||||
UINT8 ret = CI_SUCCESS;
|
||||
|
||||
UINT8 localCi = 0u;/*本CI编号*/
|
||||
UINT8 sameLine = SAME_LINE_ERR;/*信号机与本CI是否属于同一线路*/
|
||||
UINT16 outSecId = 0u;/*信号机外方物理区段*/
|
||||
@@ -525,11 +526,8 @@ UINT8 InitialSignalData(void)
|
||||
UINT8 outSecSameLine = SAME_LINE_ERR;/*信号机外方物理区段与本CI是否属于同一线路*/
|
||||
UINT16 detainBtnRelayId = 0U; /*扣车按钮采集继电器1ID*/
|
||||
UINT8 wRouteLeadProperty = 0U;
|
||||
|
||||
localCi = GetSystemParaLocalCiId();
|
||||
|
||||
signalDataSum = GetTotalSignalCurNum(); /*本联锁和相邻联锁发送给本联锁的信号机总数目*/
|
||||
ciToLeuMaskSum = GetSendMaskSum(CI_SYSTEM_TYPE_LEU);
|
||||
|
||||
if (signalDataSum >= SIGNAL_SUM_MAX)
|
||||
{/*配置数据总数错误*/
|
||||
@@ -685,6 +683,7 @@ UINT8 InitialSignalData(void)
|
||||
SignalDataStruCC[signalId].cSleepTrainLightUpFlag = SIGNAL_SLEEP_TRAIN_LIGHTUP_NO; /*初始化休眠车点亮信号机标志无效*/
|
||||
SignalDataStruCC[signalId].LightExtinctState = SIGNAL_LIGHT_EXTICT_STATE_YES; /*信号机亮灭状态CC(0x55:灭灯,0xaa:亮灯)*/
|
||||
SignalDataStruCC[signalId].SignalCrossState = SIGNAL_CROSS_STATE_NO; /*通信车跨压通过信号机状态CC(0x55:未跨压,0xaa:跨压)*/
|
||||
SignalDataStruCC[signalId].wCrossTacsTrainId = 0u; /*通信车跨压通过信号机TACS主控列车ID*/
|
||||
|
||||
/*初始化ZC发送的信号机动态数据*/
|
||||
gZcToCiDymDataStru.szSignalDataStruZc[signalId].SignalId = signalId;
|
||||
@@ -735,23 +734,43 @@ UINT8 InitialWashMachineData(void)
|
||||
WashMachineDataStru[washMachinelId].TrainEmergencyStopState = WASHMACHINE_COL_FALUT_YES;
|
||||
WashMachineDataStru[washMachinelId].HeadWashAllowState = WASHMACHINE_COL_HEADWASH_NO;
|
||||
WashMachineDataStru[washMachinelId].TailWashAllowState = WASHMACHINE_COL_TAILWASH_NO;
|
||||
WashMachineDataStru[washMachinelId].chCoupingWashAllowState = WASHMACHINE_COL_COUPINGWASH_NO;
|
||||
WashMachineDataStru[washMachinelId].WashTrainRequestDrvState = WASHMACHINE_DRVSTATE_REQ_FALSE;
|
||||
WashMachineDataStru[washMachinelId].TrainHeadStopSteadyDrvState = WASHMACHINE_HEAD_STEADY_NO;
|
||||
WashMachineDataStru[washMachinelId].TrainTailStopSteadyDrvState = WASHMACHINE_TAIL_STEADY_NO;
|
||||
WashMachineDataStru[washMachinelId].chCoupingStopSteadyDrvState = WASHMACHINE_COUPING_STEADY_NO;
|
||||
WashMachineDataStru[washMachinelId].TrainOutWashTrainPortAllowState = WASHMACHINE_COL_OUT_NO;
|
||||
WashMachineDataStru[washMachinelId].PauseTrainWashRequestDrvState = WASHMACHINE_PAUSE_DRVREQ_FALSE;
|
||||
WashMachineDataStru[washMachinelId].PaseWashMachineRequesDrvtState = PASS_WASHMACHINE_DRVREQ_FALSE;
|
||||
WashMachineDataStru[washMachinelId].WashMachineWorkModeDrvtState = WASHMACHINE_WORKMODE_INVALID_DRV;
|
||||
WashMachineDataStru[washMachinelId].WashWorkModeRelayDrvCycle = 0U;
|
||||
WashMachineDataStru[washMachinelId].WashmachineXTACurState = XTA_STATE_RAISE_UP;/*洗车同意按钮当前状态:初始化为抬起*/
|
||||
WashMachineDataStru[washMachinelId].WashmachineXTAPreState = XTA_STATE_RAISE_UP;/*洗车同意按钮之前状态:初始化为抬起*/
|
||||
WashMachineDataStru[washMachinelId].WashmachineXTALogicState = XTA_STATE_RAISE_UP;/*洗车同意按钮逻辑状态:初始化为抬起*/
|
||||
WashMachineDataStru[washMachinelId].WashmachineXTAPressDownCycle = 0u;/*洗车同意按钮按下周期:初始化为0*/
|
||||
WashMachineDataStru[washMachinelId].WashModeState = XTA_MODE_STATE_NO;/*洗车模式,初始化为OXFF*/
|
||||
WashMachineDataStru[washMachinelId].chSetWashWorkModeBack = WASH_WORKMODE_BACK_DEFAULT;/*洗车机工作模式反馈,初始化为OX00*/
|
||||
WashMachineDataStru[washMachinelId].chDownWashAllowState = WASH_COL_STATE_ALLOW_NO;/*降级模式洗车同意状态*/
|
||||
WashMachineDataStru[washMachinelId].chDownWashAllowPassState = WASH_COL_STATE_ALLOW_PASS_NO;/*降级模式洗车同意通过状态*/
|
||||
|
||||
WashMachineDataStru[washMachinelId].chDownWashReqState = WASH_REQ_STATE_ALLOW_NO; /*降级模式洗车请求状态*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashReqCycle = 0U; /*降级模式洗车请求周期*/
|
||||
WashMachineDataStru[washMachinelId].chDownWashPassReqState = WASH_REQ_STATE_ALLOW_NO; /*降级模式反向洗车请求状态*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashPassReqCycle = 0U; /*降级模式反向洗车请求周期*/
|
||||
WashMachineDataStru[washMachinelId].chDownWashAllowColState = WASH_COL_STATE_ALLOW_NO; /*降级模式洗车线洗车同意状态(动态字段:采集)*/
|
||||
WashMachineDataStru[washMachinelId].chDownDccWashAllowColState = WASH_COL_STATE_ALLOW_NO; /*降级模式DCC洗车同意状态(动态字段:采集)*/
|
||||
|
||||
WashMachineDataStru[washMachinelId].chDownWashAllowPassColState = WASH_COL_STATE_ALLOW_NO; /*降级模式洗车线洗车同意反向通过状态(动态字段:采集)*/
|
||||
WashMachineDataStru[washMachinelId].chDownDccWashAllowPassColState = WASH_COL_STATE_ALLOW_NO; /*降级模式DCC洗车同意反向通过状态(动态字段:采集)*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashAllowCycle = 0U; /*降级模式洗车线洗车同意按钮按下起始周期*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashDccAllowCycle = 0U; /*降级模式DCC洗车同意按钮按下起始周期*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashAllowPassCycle = 0U; /*降级模式洗车线反向通过洗车同意按钮按下起始周期*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashDccAllowPassCycle = 0U; /*降级模式DCC反向通过洗车同意按钮按下起始周期*/
|
||||
WashMachineDataStru[washMachinelId].chDownWashAllowErrState = WASH_BUTTON_STATE_ERR_NO; /*洗车线洗车同意按钮粘连状态*/
|
||||
WashMachineDataStru[washMachinelId].chDownDccWashAllowErrState = WASH_BUTTON_STATE_ERR_NO; /*DCC洗车同意按钮粘连状态*/
|
||||
WashMachineDataStru[washMachinelId].chDownWashAllowPassErrState = WASH_BUTTON_STATE_ERR_NO; /*洗车线反向通过同意按钮粘连状态*/
|
||||
WashMachineDataStru[washMachinelId].chDownDccWashAllowPassErrState = WASH_BUTTON_STATE_ERR_NO; /*DCC反向通过同意按钮粘连状态*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashBtVadCycle = 0U; /*降级模式洗车线洗车同意按钮有效周期*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashDccBtVadCycle = 0U; /*降级模式DCC洗车同意按钮有效周期*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashBtVadPassCycle = 0U; /*降级模式洗车线反向通过洗车同意按钮有效周期*/
|
||||
WashMachineDataStru[washMachinelId].dwDownWashDccBtVadPassCycle = 0U; /*降级模式DCC反向通过洗车同意按钮有效周期*/
|
||||
|
||||
}
|
||||
ret = CI_SUCCESS;
|
||||
return ret;
|
||||
@@ -771,67 +790,99 @@ UINT8 InitialSwitchData(void)
|
||||
UINT16 ii = 0u; /*游标*/
|
||||
UINT16 jj = 0u; /*游标*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
UINT8 chSwitchIncludeOcNum = 0U;
|
||||
UINT8 ocId = 0u;
|
||||
UINT8 kk = 0u;
|
||||
|
||||
switchDataSum = GetTotalSwitchCurNum(); /*本联锁和相邻联锁发送给本联锁的道岔总数目*/
|
||||
/*数值大于SWITCH_SUM_MAX会返回0*/
|
||||
for (ii = 0u; ii < switchDataSum; ii++)
|
||||
{
|
||||
switchId = GetSwitchId(ii);/*获取配置文件中该索引下的道岔ID*/
|
||||
{
|
||||
switchId = GetSwitchId(ii);/*获取配置文件中该索引下的道岔ID*/
|
||||
|
||||
SwitchDataStru[switchId].SwitchId = switchId;
|
||||
SwitchDataStruCC[switchId].SwitchId = switchId;
|
||||
SwitchDataStru[switchId].YLockState = SWITCH_LOCK_YINZONG_NO;
|
||||
SwitchDataStru[switchId].LockStatus = SWITCH_LOCK_STATUS_NO;
|
||||
SwitchDataStru[switchId].FLockState = SWITCH_LOCK_FENGSUO_NO;
|
||||
SwitchDataStru[switchId].SwitchPrePosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].SwitchCurPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].SingleSwitchCurPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].SwitchDrivePos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].SwitchExpDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].switchPreExpDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].SwitMoveStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].SwitDriveStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].chSwitchDrivedFlag = SWITCH_DRIVED_FLAG_NO;
|
||||
SwitchDataStru[switchId].SwitchDanCaoPostition = SWITCH_POSITION_INVALID;
|
||||
SwitchDataStru[switchId].switchDrivingState = SWIT_DRIV_IDLE_TIME;
|
||||
SwitchDataStru[switchId].switchDrivOvtmDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].switchFaultState = SWITCH_FAULT_STATE_YES;
|
||||
/* zt 删除单轨相关代码 2022-02-15 */
|
||||
SwitchDataStru[switchId].switchKRState = SWITCH_KERAO_STATE_YES;
|
||||
SwitchDataStru[switchId].switchLastValidDrvPosCycleNum = 0u;
|
||||
SwitchDataStru[switchId].switchLastValidDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].UsingBelongOverlapId = 0u;
|
||||
SwitchDataStru[switchId].DFHRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].SigleDFHRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].PLockedRouteNum = 0u;
|
||||
SwitchDataStruCC[switchId].PLockedLogRouteNum = 0u;
|
||||
SwitchDataStru[switchId].PLockedOverlapNum = 0u;
|
||||
SwitchDataStru[switchId].PLockedNonRouteNum = 0u;
|
||||
SwitchDataStru[switchId].YCRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].SigleYCRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].ConnetSwitchDsState = CONNECT_SWITCH_DANSUO_NO;
|
||||
SwitchDataStru[switchId].SwitchByPassState = SWITCH_BYPASS_NO;
|
||||
SwitchDataStru[switchId].SwitchBypassStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].chSwitchJichaState = 0U;
|
||||
SwitchDataStru[switchId].cSwitchUsingState = SWITCH_USING_NO;
|
||||
SwitchDataStru[switchId].SwitchCollTolerateCycNum = 0U;
|
||||
SwitchDataStru[switchId].SwitchColPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].switchFaultState = SWITCH_FAULT_STATE_YES; /*置为板卡故障*/
|
||||
/*初始化被防护锁闭的进路、保护区段、非进路数量及数组*/
|
||||
for (jj=0; jj<SWITCH_MAX_PROTECT_LOCKED_NUM;jj++)
|
||||
{
|
||||
SwitchDataStru[switchId].PLockedRouteIdArr[jj] = 0u;
|
||||
SwitchDataStruCC[switchId].PLockedLogRouteIdArr[jj] = 0u;
|
||||
SwitchDataStru[switchId].PLockedOverlapIdArr[jj] = 0u;
|
||||
SwitchDataStru[switchId].PLockedNonRouteIdArr[jj] = 0u;
|
||||
}
|
||||
/*初始化道岔转辙机数量、状态*/
|
||||
SwitchDataStru[switchId].chSwitchIncldeZzjNum = 0u;
|
||||
for (jj = 0; jj < SWITCH_ZZJ_POWER_STATE_MAX_NUM; jj++)
|
||||
{
|
||||
SwitchDataStru[switchId].szSwitchIncldeZzjState[jj] = OC_SWITCH_POSITION_SIKAI;
|
||||
}
|
||||
SwitchDataStru[switchId].SwitchId = switchId;
|
||||
SwitchDataStruCC[switchId].SwitchId = switchId;
|
||||
SwitchDataStru[switchId].YLockState = SWITCH_LOCK_YINZONG_NO;
|
||||
SwitchDataStru[switchId].LockStatus = SWITCH_LOCK_STATUS_NO;
|
||||
SwitchDataStru[switchId].FLockState = SWITCH_LOCK_FENGSUO_NO;
|
||||
SwitchDataStru[switchId].SwitchPrePosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].SwitchCurPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].SingleSwitchCurPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].SwitchDrivePos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].SwitchExpDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].switchPreExpDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].SwitMoveStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].SwitDriveStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].chSwitchDrivedFlag = SWITCH_DRIVED_FLAG_NO;
|
||||
SwitchDataStru[switchId].SwitchDanCaoPostition = SWITCH_POSITION_INVALID;
|
||||
SwitchDataStru[switchId].switchDrivingState = SWIT_DRIV_IDLE_TIME;
|
||||
SwitchDataStru[switchId].switchDrivOvtmDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].switchFaultState = SWITCH_FAULT_STATE_YES;
|
||||
/* zt 删除单轨相关代码 2022-02-15 */
|
||||
SwitchDataStru[switchId].switchKRState = SWITCH_KERAO_STATE_YES;
|
||||
SwitchDataStru[switchId].switchLastValidDrvPosCycleNum = 0u;
|
||||
SwitchDataStru[switchId].switchLastValidDrvPos = SWITCH_DRIVE_POS_INVALID;
|
||||
SwitchDataStru[switchId].UsingBelongOverlapId = 0u;
|
||||
SwitchDataStru[switchId].DFHRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].SigleDFHRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].PLockedRouteNum = 0u;
|
||||
SwitchDataStruCC[switchId].PLockedLogRouteNum = 0u;
|
||||
SwitchDataStru[switchId].PLockedOverlapNum = 0u;
|
||||
SwitchDataStru[switchId].PLockedNonRouteNum = 0u;
|
||||
SwitchDataStru[switchId].YCRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].SigleYCRelayValidCycNum = 0u;
|
||||
SwitchDataStru[switchId].ConnetSwitchDsState = CONNECT_SWITCH_DANSUO_NO;
|
||||
SwitchDataStru[switchId].SwitchByPassState = SWITCH_BYPASS_NO;
|
||||
SwitchDataStru[switchId].SwitchBypassStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].chSwitchJichaState = 0U;
|
||||
SwitchDataStru[switchId].cSwitchUsingState = SWITCH_USING_NO;
|
||||
SwitchDataStru[switchId].SwitchCollTolerateCycNum = 0U;
|
||||
SwitchDataStru[switchId].SwitchColPosition = SWITCH_POSITION_SIKAI;
|
||||
SwitchDataStru[switchId].switchFaultState = SWITCH_FAULT_STATE_YES; /*置为板卡故障*/
|
||||
/*初始化被防护锁闭的进路、保护区段、非进路数量及数组*/
|
||||
for (jj=0; jj<SWITCH_MAX_PROTECT_LOCKED_NUM;jj++)
|
||||
{
|
||||
SwitchDataStru[switchId].PLockedRouteIdArr[jj] = 0u;
|
||||
SwitchDataStruCC[switchId].PLockedLogRouteIdArr[jj] = 0u;
|
||||
SwitchDataStru[switchId].PLockedOverlapIdArr[jj] = 0u;
|
||||
SwitchDataStru[switchId].PLockedNonRouteIdArr[jj] = 0u;
|
||||
}
|
||||
/*初始化道岔转辙机数量、状态*/
|
||||
SwitchDataStru[switchId].chSwitchIncldeZzjNum = 0u;
|
||||
for (jj = 0; jj < SWITCH_ZZJ_POWER_STATE_MAX_NUM; jj++)
|
||||
{
|
||||
SwitchDataStru[switchId].szSwitchIncldeZzjState[jj] = OC_SWITCH_POSITION_SIKAI;
|
||||
}
|
||||
|
||||
chSwitchIncludeOcNum = GetSwitchIncludeOcNum(switchId);
|
||||
SwitchDataStru[switchId].chSwitchBelongOcNum = chSwitchIncludeOcNum;
|
||||
for (jj = 0u; jj < chSwitchIncludeOcNum; jj++)
|
||||
{/*从静态数据读取OCID赋值给动态数据*/
|
||||
ocId = GetSwitchIncludeOCId(switchId, jj);
|
||||
SwitchDataStru[switchId].belongOCData[jj].OcId = ocId;
|
||||
SwitchDataStru[switchId].belongOCData[jj].OutControlCmd = STANDBY_CONTROL;
|
||||
SwitchDataStru[switchId].belongOCData[jj].PlusBoxSate = SWITCH_BOX_FAULT;
|
||||
for (kk = 0u; kk < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; kk++)
|
||||
{
|
||||
SwitchDataStru[switchId].belongOCData[jj].BoardStateBuf[kk] = SWITCH_BOARD_FAULT;
|
||||
}
|
||||
SwitchDataStru[switchId].belongOCData[jj].controlMode = STANDBY_CONTROL;
|
||||
SwitchDataStru[switchId].belongOCData[jj].FindCmdStartCycNum = 0u;
|
||||
SwitchDataStru[switchId].belongOCData[jj].FindPostionCmd = NO_FIND_CMD;
|
||||
SwitchDataStru[switchId].belongOCData[jj].OutMainControlCmdCycNum = 0u;
|
||||
}
|
||||
|
||||
for (jj = 0u; jj < SWITCH_REDUN_COLL_MAX; jj++)
|
||||
{
|
||||
SwitchDataStru[switchId].RedunCollData[jj].dwRedunJudgHunXianStCyc = 0u;
|
||||
SwitchDataStru[switchId].RedunCollData[jj].dwRedunRealHunXianStCyc = 0u;
|
||||
SwitchDataStru[switchId].RedunCollData[jj].cHunXianRecovStt = REDUN_HX_RECOV_ALL;
|
||||
SwitchDataStru[switchId].RedunCollData[jj].dwRedunFaultStCyc = 0u;
|
||||
SwitchDataStru[switchId].RedunCollData[jj].cCollPos = SWITCH_POSITION_INVALID;
|
||||
SwitchDataStru[switchId].RedunCollData[jj].cCombineStt = 0u;
|
||||
SwitchDataStru[switchId].RedunCollData[jj].cCurrHunxianStt = RELAY_HUNXIAN_STATE_NO;
|
||||
}
|
||||
}
|
||||
reVal = CI_SUCCESS;
|
||||
return reVal;
|
||||
}
|
||||
@@ -1028,6 +1079,7 @@ UINT8 InitialLogicSectionData(void)
|
||||
UINT16 ii = 0u; /*游标*/
|
||||
UINT16 jj = 0u; /*游标*/
|
||||
UINT8 kk = 0u; /*游标*/
|
||||
UINT8 mm = 0u; /*游标*/
|
||||
UINT16 zcToCiMaskSum = 0u; /*ZC-CI码位总数*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
UINT8 chTmcSwitch = 0u;
|
||||
@@ -1072,7 +1124,8 @@ UINT8 InitialLogicSectionData(void)
|
||||
LogicSectionDataStru[logicSectionId].chLogicSpksFLockState = LOGIC_SECTION_SPKS_FLOCK_NO;/*仅用于ATS显示;逻辑区段不一定关联SPKS,如果初始化成封锁,无法获取SPKS状态,此逻辑区段会一直为封锁状态*/
|
||||
LogicSectionDataStru[logicSectionId].chLinShiXianSuSetSpeed = 0U; /*逻辑区段临时限速设置速度值*/
|
||||
LogicSectionDataStru[logicSectionId].chLogSecEmergXianSu = LOGSEC_EMERG_XS_SET_NO; /*逻辑区段紧急临时限速*/
|
||||
|
||||
LogicSectionDataStru[logicSectionId].chLogSecCbtcArbState = LGC_SECTION_ARB_NO;
|
||||
LogicSectionDataStru[logicSectionId].chLogSecPbTacsArbState = LGC_SECTION_ARB_NO;
|
||||
/*初始化车车结构体成员*/
|
||||
LogicSectionDataStruCC[logicSectionId].LogicSectionId = logicSectionId;
|
||||
LogicSectionDataStruCC[logicSectionId].chResShareFlag = LOGIC_SECTION_RES_SHARE_NO;
|
||||
@@ -1085,14 +1138,10 @@ UINT8 InitialLogicSectionData(void)
|
||||
LogicSectionDataStruCC[logicSectionId].LogErrlockStartCycNum = 0U;
|
||||
LogicSectionDataStruCC[logicSectionId].chAblRelLogSecUsableFlag = LOGIC_ABLNEAR_USE_FLAG_NO; /*初始化ABL接近逻辑区段可用标志*/
|
||||
LogicSectionDataStruCC[logicSectionId].cRouteLeaveLogFlag = LOGSEC_LEAVE_LOGSEC_REPLY_NO; /*离去区段ABL列车检查不通过*/
|
||||
for (jj = 0U; jj < LOGIC_SECTION_RES_SUM_MAX; jj++)
|
||||
for (mm = 0U; mm < LOGIC_SECTION_RES_SUM_MAX; mm++)
|
||||
{
|
||||
LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].wTrainId = 0U;
|
||||
LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chLogicResUsable = LOGIC_SECTION_RES_UNUSABLE;
|
||||
LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chLogicReturnState = LOGIC_SECTION_TRAIN_RETURN_NO;
|
||||
LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chTrainApplyState = LOGIC_SECTION_TRAIN_APPLY_NO;
|
||||
LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].chLogicUnlockState = LOGIC_SECTION_TRAIN_UNLOCK_NO;
|
||||
LogicSectionDataStruCC[logicSectionId].szTrainResData[jj].dwRcvUnlockCmdCyc = 0U;
|
||||
/*重置资源信息结构体*/
|
||||
ResetResInfoStruct(logicSectionId, mm);
|
||||
}
|
||||
LogicSectionDataStruCC[logicSectionId].chLogSecLockBelLogRouteSum = 0U;
|
||||
for (jj = 0U; jj < LOGSEC_RELATE_ROUTE_SUM_MAX; jj++)
|
||||
@@ -1337,6 +1386,7 @@ UINT8 InitialPsdData(void)
|
||||
UINT16 wCleFarePCBButRelayId = 0U;/*清客确认箱关门按钮继电器ID*/
|
||||
UINT16 wPsdButtenRelayId2 = 0U;
|
||||
psdDataSum = GetTotalPsdCurNum();/*本联锁和相邻联锁发送给本联锁的Psd总数目*/
|
||||
UINT16 wibpButtonRelayId = 0U; /*IBP盘发车继电器ID*/
|
||||
/*数值大于等于PSD_SUM_MAX会返回0*/
|
||||
|
||||
/*屏蔽门所属联锁ID?待处理?*/
|
||||
@@ -1407,6 +1457,7 @@ UINT8 InitialPsdData(void)
|
||||
PsdDataStru[psdId].StartDetectionCycNum = 0u;
|
||||
PsdDataStru[psdId].StartDetectionState = JXTC_START_DETECTION_NO;
|
||||
PsdDataStru[psdId].StopDetectionState = JXTC_STOP_DETECTION_YES;
|
||||
PsdDataStru[psdId].StopDetectionCycNum = 0u;
|
||||
PsdDataStru[psdId].VOBCDoorState = PSD_DOOR_CLOSEDANDLOCKED_INVALID;
|
||||
PsdDataStru[psdId].PCBPressCycNum = 0u;
|
||||
PsdDataStru[psdId].POBPressCycNum = 0u;
|
||||
@@ -1424,6 +1475,7 @@ UINT8 InitialPsdData(void)
|
||||
PsdDataStru[psdId].steadyLightFlag = QK_BUTTON_STEADY_LIGHT_NO;
|
||||
|
||||
PsdDataStru[psdId].dwCleFarePCBPressCycNum = 0U;
|
||||
PsdDataStru[psdId].IBPPressCycNum = 0U;
|
||||
/*清客确认箱PCB按钮状态初始化处理*/
|
||||
wCleFarePCBButRelayId = GetCleFarePCBButRelayId(psdId);
|
||||
if ((0u == wCleFarePCBButRelayId) || (UINT16_MAX == wCleFarePCBButRelayId))
|
||||
@@ -1453,8 +1505,10 @@ UINT8 InitialPsdData(void)
|
||||
PsdDataStru[psdId].psdOpenErrState = PSD_OPEN_CLOSE_ERROR;
|
||||
PsdDataStru[psdId].psdCloseErrState = PSD_OPEN_CLOSE_ERROR;
|
||||
|
||||
PsdDataStru[psdId].cPsdExceptOpenState = PSD_EXCEPT_OPEN_YES; /*初始化为PSD异常打开*/
|
||||
PsdDataStru[psdId].cPsdExceptOpenState = PSD_EXCEPT_NO; /*初始化为PSD未异常*/
|
||||
PsdDataStru[psdId].dwPsdRelayDownCycNum = 0U; /*PSD门关继电器落下起始周期*/
|
||||
PsdDataStru[psdId].JXTCMutualLockFaultState = JXTC_MUTUALLOCKFAULT_NO;
|
||||
PsdDataStru[psdId].JXTCMutualLockStartCycNum = 0u;
|
||||
|
||||
/*初始化车车结构体成员*/
|
||||
PsdDataStruCC[psdId].PsdId = psdId;
|
||||
@@ -1462,6 +1516,18 @@ UINT8 InitialPsdData(void)
|
||||
PsdDataStruCC[psdId].SrcVobcId = 0U;
|
||||
PsdDataStruCC[psdId].PsdCmd = PSD_DEFAULT_CONTROL_CMD;
|
||||
PsdDataStruCC[psdId].CmdSetCycle = 0U;
|
||||
|
||||
wibpButtonRelayId = GetIbpConfmRelayId(psdId);
|
||||
if ((0u == wibpButtonRelayId) || (UINT16_MAX == wibpButtonRelayId))
|
||||
{
|
||||
PsdDataStru[psdId].ibpButtonState = PLATFORM_DEPAR_BUTTON_STATE_INVALID;
|
||||
}
|
||||
else
|
||||
{
|
||||
PsdDataStru[psdId].ibpButtonState = PSD_RELATED_BUTTON_STATE_DEFAULT; /*IBP盘发车按钮状态初始化*/
|
||||
}
|
||||
/*初始化零速状态*/
|
||||
PsdDataStru[psdId].chTrainZeroSpeedState = PSD_TRAIN_ZERO_SPEED_YES; /*零速*/
|
||||
}
|
||||
reVal = CI_SUCCESS;
|
||||
return reVal;
|
||||
@@ -1569,6 +1635,7 @@ UINT8 InitialOverlapData(void)
|
||||
OverlapDataStru[overlapId].cProSwitchCheckResultFlag = PROSWITCH_CHECK_RESULT_DEFAULT;
|
||||
OverlapDataStru[overlapId].cProSwitchCheckStartFlag = PROSWITCH_CHECK_START_INVALID;
|
||||
OverlapDataStru[overlapId].chPreLaborUnlockState = PRO_PRE_LABOR_UNLOCK_STATE_NO;
|
||||
OverlapDataStru[overlapId].dwAtsLastTimeLockCyc = 0U;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1662,6 +1729,9 @@ UINT8 InitialRouteData(void)
|
||||
RouteDataStru[routeId].chRoutCouplinkFlag = ROUTE_COUPLINK_FLAG_NO; /*初始化联挂标志无效*/
|
||||
RouteDataStru[routeId].chCouplinkSuccessFlag = ROUTE_COUPLINK_RESULT_NOT; /*初始化联挂成功标志为未收到*/
|
||||
RouteDataStru[routeId].chCouplinkErrorFlag = ROUTE_COUPLINK_RESULT_NOT; /*初始化联挂失败标志为未收到*/
|
||||
RouteDataStru[routeId].dwRouteIdleCycNum = 0U; /*进路空闲起始周期号*/
|
||||
RouteDataStru[routeId].chRouteConnReleaseFlag = ROUTE_CONNECT_RELEASE_NO; /*进路联络线解锁标志*/
|
||||
|
||||
|
||||
/*初始化车车结构体成员*/
|
||||
RouteDataStruCC[routeId].RouteId = routeId;
|
||||
@@ -1886,46 +1956,23 @@ UINT8 InitialIndicatorStateData(void)
|
||||
UINT8 j = 0u;
|
||||
UINT8 virCINum = 0u;
|
||||
UINT8 virCIid = 0u;
|
||||
UINT8 includeVirFlag= GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
|
||||
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
/*虚拟联锁兼容*/
|
||||
virCINum = GetVirtualCINum();
|
||||
for(j=0u;(j < virCINum)&&(j<VIRTUAL_CI_MAX);j++)
|
||||
{
|
||||
virCIid = GetVirtualCIid(j);
|
||||
configStruSum = (UINT8)GetVirCIIndicatorConfigDataNum(virCIid);
|
||||
for(kk = 0u;kk<configStruSum;kk++)
|
||||
{
|
||||
indicatorId = (UINT8)GetVirCIlocalCiIndicatorId(virCIid,kk);
|
||||
if((VIRTUAL_CI_INDICATOR_SUM_MAX > indicatorId))
|
||||
{
|
||||
g_VirtualCIStructData.virtualCi[j].IndicatorData[indicatorId].IndicatorId = indicatorId;
|
||||
g_VirtualCIStructData.virtualCi[j].IndicatorData[indicatorId].IndicatorState = 0u;
|
||||
}
|
||||
}
|
||||
}
|
||||
configStruSum = GetIndicatorCurSum();
|
||||
if (configStruSum >= INDICATOR_SUM_MAX)
|
||||
{/*配置数据总数错误*/
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
configStruSum = GetIndicatorCurSum();
|
||||
if (configStruSum >= INDICATOR_SUM_MAX)
|
||||
{/*配置数据总数错误*/
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
else
|
||||
for (ii = 0u; ii < configStruSum; ii++)
|
||||
{
|
||||
for (ii = 0u; ii < configStruSum; ii++)
|
||||
{
|
||||
indicatorId = GetIndicatorId(ii);
|
||||
indicatorId = GetIndicatorId(ii);
|
||||
|
||||
IndicatorDataStru[indicatorId].IndicatorId = indicatorId;
|
||||
IndicatorDataStru[indicatorId].IndicatorState = 0u;
|
||||
}
|
||||
IndicatorDataStru[indicatorId].IndicatorId = indicatorId;
|
||||
IndicatorDataStru[indicatorId].IndicatorState = 0u;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return reVal;
|
||||
@@ -2124,9 +2171,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
UINT8 funcSwitchSupportRelayInterface = GetCiFunctionSwitchConfig(FUNC_SWITCH_USE_RELAY_INTERFACE_BETWEEN_NEIGHBOURCI);
|
||||
UINT8 localCi = GetSystemParaLocalCiId();/*本机联锁*/
|
||||
UINT8 confirmRelayInterfaceFlag = GetCiCiRelayInterfConfirmFlag();/*继电接口确认状态*/
|
||||
UINT16 wCfpSum = 0u;
|
||||
UINT16 wCfpId = 0u;
|
||||
UINT16 wCfpOtherCiid = 0U; /*分界点关联的相邻联锁ID*/
|
||||
UINT8 chOverlapCiId = 0u;
|
||||
UINT32 dwCurCyc = Get2oo2CurCycleNum();
|
||||
UINT8 chSearchCiId = 0U;/*查询到的联锁ID*/
|
||||
@@ -2207,7 +2251,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
PhysicalSectionDataStru[ii].chABLTrainFlag = PHYSICAL_SECTION_ABLOCCUPY_YES;
|
||||
PhysicalSectionDataStru[ii].chPreABLTrainFlag = PHYSICAL_SECTION_ABLOCCUPY_NO;
|
||||
PhysicalSectionDataStru[ii].dwAblTagSetCyc = dwCurCyc;
|
||||
SetPhySecUTTrainFlag(PhysicalSectionDataStru[ii].PhysicalSectionId, PHYSICAL_AXIS_UT_YES); /*物理区段坏车占用标志设置*/
|
||||
|
||||
if ((localCi !=phyBelongCi) && (TRANSMIT_STATE_BAD == commState) &&
|
||||
(localCi ==phySecRepGjBelongCi)&&
|
||||
@@ -2289,12 +2332,6 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
LogicSectionDataStru[logicSectionId].LogLockState = LOG_SECTION_LOCK_EXCEPT;
|
||||
}
|
||||
}
|
||||
|
||||
if (LOG_SECTION_LOGLOCK_NORMAL == LogicSectionDataStruCC[logicSectionId].LogSecLogLockState)
|
||||
{
|
||||
LogicSectionDataStruCC[logicSectionId].LogSecLogLockState = LOG_SECTION_LOGLOCK_EXCEPT; /*与相邻联锁断通信,将相邻联锁逻辑正常锁闭的逻辑区段置为逻辑异常锁闭*/
|
||||
}
|
||||
|
||||
if ((localCi !=phyBelongCi) && (TRANSMIT_STATE_BAD == commState) &&
|
||||
(localCi ==phySecRepGjBelongCi)&&
|
||||
(CICI_RELAY_INTERFACE_CONFIRM_YES == confirmRelayInterfaceFlag)&&
|
||||
@@ -2322,7 +2359,9 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
LogicSectionDataStruCC[logicSectionId].cRouteLeaveLogFlag = LOGSEC_LEAVE_LOGSEC_REPLY_NO; /*离去区段ABL列车检查不通过*/
|
||||
LogicSectionDataStru[logicSectionId].chLogicProResUsable = LOGIC_SECTION_PRO_RES_UNUSABLE;
|
||||
LogicSectionDataStru[logicSectionId].chLogSecEmergXianSu = LOGSEC_EMERG_XS_SET_YES; /*逻辑区段紧急临时限速设置状态*/
|
||||
}
|
||||
LogicSectionDataStru[logicSectionId].chLogSecCbtcArbState = LGC_SECTION_ARB_NO;
|
||||
LogicSectionDataStru[logicSectionId].chLogSecPbTacsArbState = LGC_SECTION_ARB_NO;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
@@ -2374,7 +2413,7 @@ 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].cPsdExceptOpenState = PSD_EXCEPT_YES; /*重置为PSD异常*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2518,6 +2557,7 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
}
|
||||
|
||||
}
|
||||
/*重置非本联锁spks动态数据*/
|
||||
for (ii = 1u; ii < SPKS_SUM_MAX; ii ++)
|
||||
{
|
||||
devId = (ii);
|
||||
@@ -2564,7 +2604,7 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
devId = (ii);
|
||||
devLen = (UINT16)sizeof(OverlapDataStruct);
|
||||
chOverlapCiId = GetOverlapBelongCiId(devId);
|
||||
if((chOverlapCiId == ciId) && (devId > 0u) && (devId < OVERLAP_SUM_MAX))
|
||||
if((chOverlapCiId == ciId))
|
||||
{
|
||||
OverlapDataStru[devId].BelongRouteId = 0u;
|
||||
OverlapDataStru[devId].UnlockStartCycNum = 0u;
|
||||
@@ -2583,8 +2623,9 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
OverlapDataStru[devId].cProSwitchCheckResultFlag = PROSWITCH_CHECK_RESULT_INVALID;
|
||||
OverlapDataStru[devId].cProSwitchCheckStartFlag = PROSWITCH_CHECK_START_INVALID;
|
||||
OverlapDataStru[devId].chPreLaborUnlockState = PRO_PRE_LABOR_UNLOCK_STATE_NO;
|
||||
OverlapDataStru[devId].dwAtsLastTimeLockCyc = 0U;
|
||||
}
|
||||
else if ((chOverlapCiId == localCi) && (devId > 0U) && (devId < OVERLAP_SUM_MAX))
|
||||
else if ((chOverlapCiId == localCi))
|
||||
{
|
||||
cOverlapRelProSwNum = GetOverlapRelatedProtSwitSum(devId); /*获取保护区段关联的防护道岔信息*/
|
||||
pOverlapRelProSwStru = GetOverlapRelatedProtSwitStru(devId);
|
||||
@@ -2624,6 +2665,81 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
}
|
||||
}
|
||||
|
||||
/*重置自动通过进路数据*/
|
||||
/*cgh-合并CID-2539-7:*/
|
||||
for (ii = 1u; ii < AUTO_ROUTE_SUM_MAX; ii++)
|
||||
{
|
||||
devId = ii;
|
||||
belongCiId = GetAutoRouteBelongCiId(devId);
|
||||
if (belongCiId == ciId)
|
||||
{
|
||||
/*非本联锁重置状态*/
|
||||
AutoRouteDataStru[devId].AutoRouteSetFlag = AUTO_ROUTE_SET_NO; /*自动进路未办理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述:重置相邻Rc通信中断动态数据
|
||||
* 参数说明:const UINT8 ciId, 重置联锁ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void ResetDynamicRcState(const UINT8 ciId)
|
||||
{
|
||||
UINT16 ii = 0u;
|
||||
UINT16 logicSectionDataSum = 0u; /*逻辑区段总数*/
|
||||
UINT16 logicSectionId = 0u; /*逻辑区段ID*/
|
||||
UINT8 belongCiId = 0u;
|
||||
/*相邻联锁是否支持继电接口*/
|
||||
UINT16 wCfpSum = 0u;
|
||||
UINT16 wCfpId = 0u;
|
||||
UINT16 wCfpOtherCiid = 0U; /*分界点关联的相邻联锁ID*/
|
||||
UINT8 cPhySecCurMerOccState = 0U; /*物理区段融合占用状态*/
|
||||
|
||||
/*重置非本联锁物理区段动态数据*/
|
||||
for (ii = 1U; ii < PHYSICAL_SECTION_SUM_MAX; ii++)
|
||||
{
|
||||
belongCiId = GetPhySecBelongCiId(ii);
|
||||
if (belongCiId == ciId)
|
||||
{
|
||||
cPhySecCurMerOccState = GetPhySecCurMergeState(ii);
|
||||
if (SECTION_OCCUPY_YES == cPhySecCurMerOccState)
|
||||
{
|
||||
SetPhySecUTTrainFlag(PhysicalSectionDataStru[ii].PhysicalSectionId, PHYSICAL_AXIS_UT_YES); /*物理区段坏车占用标志设置*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*当前空闲,不设置坏车占用*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 不是指定联锁,则不处理 */
|
||||
}
|
||||
}
|
||||
|
||||
logicSectionDataSum = GetTotalLogSecCurNum();/*本联锁和相邻联锁发送给本联锁的逻辑区段总数目*/
|
||||
/*重置非本联锁逻辑区段动态数据*/
|
||||
for (ii = 0u; ii < logicSectionDataSum; ii++)
|
||||
{
|
||||
logicSectionId = GetLogicSecId(ii);/*获取配置文件中该索引下的逻辑区段ID*/
|
||||
belongCiId = GetLogSecBelongCiId(logicSectionId);
|
||||
|
||||
/*与相邻联锁断通信,将相邻联锁逻辑正常锁闭的逻辑区段置为逻辑异常锁闭*/
|
||||
if (belongCiId == ciId)
|
||||
{
|
||||
if (LOG_SECTION_LOGLOCK_NORMAL == LogicSectionDataStruCC[logicSectionId].LogSecLogLockState)
|
||||
{
|
||||
LogicSectionDataStruCC[logicSectionId].LogSecLogLockState = LOG_SECTION_LOGLOCK_EXCEPT;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/* 重置相邻联锁发来的包络信息 */
|
||||
wCfpSum = GetCfpSum();
|
||||
for (ii = 0u; ii < wCfpSum; ii++)
|
||||
@@ -2639,20 +2755,7 @@ void ResetDynamicState(const UINT8 ciId)
|
||||
;
|
||||
}
|
||||
}
|
||||
/*重置自动通过进路数据*/
|
||||
/*cgh-合并CID-2539-7:*/
|
||||
for (ii = 1u; ii < AUTO_ROUTE_SUM_MAX; ii++)
|
||||
{
|
||||
devId = ii;
|
||||
belongCiId = GetAutoRouteBelongCiId(devId);
|
||||
if (belongCiId == ciId)
|
||||
{
|
||||
/*非本联锁重置状态*/
|
||||
AutoRouteDataStru[devId].AutoRouteSetFlag = AUTO_ROUTE_SET_NO; /*自动进路未办理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 将自动进路和对应的自动信号ID关联
|
||||
* 参数说明: void
|
||||
@@ -3292,56 +3395,6 @@ UINT8 InitialRtnIndicStaData(void)
|
||||
; /*返回失败*/
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == chReval)
|
||||
{
|
||||
for (jj = 0; jj < g_VirtualCIStructData.virtualCiNum; jj++)
|
||||
{
|
||||
/*给虚拟联锁的指示灯设备ID赋值*/
|
||||
for (kk = 0U; kk < g_VirtualCIStructData.virtualCi[jj].IndicatorConfigDataNum; kk++)
|
||||
{
|
||||
indicatorType = g_VirtualCIStructData.virtualCi[jj].IndicatorConfigData[kk].IndicatorType;
|
||||
if ((INDICATOR_TYPE_EXPRESS_RETURN == indicatorType) && (RTNINDICATOR_SUM_MAX > rtnIndicatorSum))
|
||||
{
|
||||
g_VirtualCIStructData.virtualCi[jj].VirCIRtnIndicatorStaData[rtnIndicatorSum].VirCiIndicatorDevId = g_VirtualCIStructData.virtualCi[jj].IndicatorConfigData[kk].BjdDeviceId;
|
||||
rtnIndicatorSum++;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (RTNINDICATOR_SUM_MAX <= rtnIndicatorSum)
|
||||
{
|
||||
/*一个虚拟联锁集中区最大只有两个无人折返指示灯ID*/
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
/*将每个虚拟联锁包含的无人折返指示灯状态初始化为无效*/
|
||||
for (kk = 0U; kk < RTNINDICATOR_SUM_MAX; kk++)
|
||||
{
|
||||
if (RTNINDICATOR_SUM_MAX > rtnIndicatorSum)
|
||||
{/*当本集中区没有无人折返指示灯设备只有一个时,其余数据初始化为0*/
|
||||
g_VirtualCIStructData.virtualCi[jj].VirCIRtnIndicatorStaData[rtnIndicatorSum].VirCiIndicatorDevId = 0U;
|
||||
rtnIndicatorSum++;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
g_VirtualCIStructData.virtualCi[jj].VirCIRtnIndicatorStaData[kk].VirCiFlashState = VOBCTOCIAUTORTN_INDICT_MASK_INVALID;
|
||||
g_VirtualCIStructData.virtualCi[jj].VirCIRtnIndicatorStaData[kk].VirCiSteadyState = VOBCTOCIAUTORTN_INDICT_MASK_INVALID;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return chReval;
|
||||
}
|
||||
@@ -3397,7 +3450,7 @@ void ResetLocalRcDynamicState(void)
|
||||
if (cBelongCiId == cLocalCiId)
|
||||
{
|
||||
SetSignalLightExtinctStateCC(wSignalId, SIGNAL_LIGHT_EXTICT_STATE_YES); /*设置RC信号机亮灭状态为亮灯*/
|
||||
SetSignalCrossStateCC(wSignalId, SIGNAL_CROSS_STATE_NO); /*设置RC信号机跨压状态为未跨压*/
|
||||
SetSignalCrossStateCC(wSignalId, SIGNAL_CROSS_STATE_NO, 0u); /*设置RC信号机跨压状态为未跨压*/
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3410,7 +3463,7 @@ void ResetLocalRcDynamicState(void)
|
||||
for (jj = 0U; jj < wAxisSecNum; jj++)
|
||||
{
|
||||
wAxisSecId = GetAxisSecId(jj);
|
||||
cBelongCiId = GetAxisBelongTioc(wAxisSecId);
|
||||
cBelongCiId = (UINT8)GetAxisBelongTioc(wAxisSecId);
|
||||
if (cBelongCiId == cLocalCiId)
|
||||
{
|
||||
SetAxisSecArbStateCC(wAxisSecId, AXIS_SECTION_ARB_NO); /*设置RC计轴区段ARB状态为未ARB*/
|
||||
@@ -3609,4 +3662,5 @@ void ResetDevStateProcess(void)
|
||||
(void)InitLEUDataStru();
|
||||
|
||||
TiocTransCtInit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -243,7 +243,12 @@ UINT8 InitialPhySecIdBufOfOtherCi(void);
|
||||
* 返回值 : void
|
||||
*/
|
||||
void ResetDynamicState(const UINT8 ciId);
|
||||
|
||||
/*
|
||||
* 功能描述:重置相邻Rc通信中断动态数据
|
||||
* 参数说明:const UINT8 ciId, 重置联锁ID
|
||||
* 返回值 : void
|
||||
*/
|
||||
void ResetDynamicRcState(const UINT8 ciId);
|
||||
|
||||
/*
|
||||
* 功能描述: 初始化全自动折返进路数据
|
||||
@@ -346,6 +351,8 @@ void ResetLocalRcDynamicState(void);
|
||||
*/
|
||||
void ResetDevStateProcess(void);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#ifndef __INVADESECTION_DEFINE_H_
|
||||
#define __INVADESECTION_DEFINE_H_
|
||||
|
||||
#define INVA_SECT_N_COND_SWIT_SUM_MAX ((UINT16)400) /*侵限区段与相关条件道岔数据条目最大数量*/
|
||||
#define INVA_SECT_N_COND_SWIT_SUM_MAX ((UINT16)800) /*侵限区段与相关条件道岔数据条目最大数量*/
|
||||
|
||||
#define COND_SWITCH_SUM_MAX ((UINT16)16) /*单一侵限区段与相关条件道岔数据条目内,条件道岔最大数量*/
|
||||
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: LightTestButtonConfigDataManage.c
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间: 2025-12-09
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 试灯按钮配置数据管理
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#include "LightTestButtonConfigDataManage.h"
|
||||
|
||||
LightTestButtonConfigDataStruct LightTestButtonConfigDataStru[LIGHTTESTBUTTON_BUTTON_MAX_NUM] = {0}; /*定义试灯按钮数据配置结构体*/
|
||||
INT16 LightTestButtonCurSum = 0; /*试灯按钮当前总数*/
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮当前总数
|
||||
* 参数说明: void
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 试灯按钮当前总数
|
||||
*/
|
||||
UINT16 GetLightTestButtonCurSum(void)
|
||||
{
|
||||
UINT16 retVal = 0u;
|
||||
if (LIGHTTESTBUTTON_BUTTON_MAX_NUM <= ((UINT16)LightTestButtonCurSum))
|
||||
{
|
||||
retVal = LIGHTTESTBUTTON_BUTTON_MAX_NUM;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = (UINT16)LightTestButtonCurSum;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮的ID
|
||||
* 参数说明: UINT16 index 试灯按钮索引
|
||||
* 返回值 UINT16 retVal 试灯按钮ID
|
||||
*/
|
||||
UINT16 GetLightTestButtonId(UINT16 index)
|
||||
{
|
||||
UINT16 retVal = 0u;
|
||||
UINT16 lightTestButtonCurSum = GetLightTestButtonCurSum();
|
||||
if (index < lightTestButtonCurSum)
|
||||
{
|
||||
retVal = LightTestButtonConfigDataStru[index].LightTestButtonId;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮ID对应的继电器数据
|
||||
* 参数说明: UINT16 lightTestButtonId 试灯按钮ID
|
||||
* 返回值 :
|
||||
LightTestButtonConfigDataStruct *
|
||||
*/
|
||||
LightTestButtonConfigDataStruct *GetLightTestButtonConfigData(UINT16 lightTestButtonId)
|
||||
{
|
||||
LightTestButtonConfigDataStruct *retVal = NULL;
|
||||
UINT16 i = 0u;
|
||||
UINT16 lightTestButtonCurSum = GetLightTestButtonCurSum();
|
||||
|
||||
for (i = 0u; i < lightTestButtonCurSum; i++)
|
||||
{
|
||||
if (lightTestButtonId == LightTestButtonConfigDataStru[i].LightTestButtonId)
|
||||
{
|
||||
retVal = &LightTestButtonConfigDataStru[i];
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮ID对应继电器的总数量
|
||||
* 参数说明: UINT16 lightTestButtonId 试灯按钮ID
|
||||
* 返回值 : UINT16 lightTestButtonRelayNum 继电器数量
|
||||
*/
|
||||
UINT16 GetLightTestButtonRelayNum(UINT16 lightTestButtonId)
|
||||
{
|
||||
UINT16 lightTestButtonRelayNum = 0u;
|
||||
LightTestButtonConfigDataStruct *lightTestButtonConfigData = GetLightTestButtonConfigData(lightTestButtonId);
|
||||
if (NULL != lightTestButtonConfigData)
|
||||
{
|
||||
lightTestButtonRelayNum = lightTestButtonConfigData->LightTestButtonRelayNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /* 不处理 */
|
||||
}
|
||||
return lightTestButtonRelayNum;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮ID对应继电器ID
|
||||
* 参数说明: UINT16 lightTestButtonId 试灯按钮ID
|
||||
* UINT16 index 继电器索引
|
||||
* 返回值 : UINT16 lightTestButtonRelayId 继电器ID
|
||||
*/
|
||||
UINT16 GetLightTestButtonRelayId(UINT16 lightTestButtonId, UINT16 index)
|
||||
{
|
||||
UINT16 lightTestButtonRelayId = 0u;
|
||||
LightTestButtonConfigDataStruct *lightTestButtonConfigData = GetLightTestButtonConfigData(lightTestButtonId);
|
||||
if (NULL != lightTestButtonConfigData)
|
||||
{
|
||||
if (index < lightTestButtonConfigData->LightTestButtonRelayNum)
|
||||
{
|
||||
lightTestButtonRelayId = lightTestButtonConfigData->LightRelayId[index];
|
||||
}
|
||||
else
|
||||
{
|
||||
; /* 不处理 */
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /* 不处理 */
|
||||
}
|
||||
return lightTestButtonRelayId;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: LightTestButtonConfigDataManage.h
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间: 2025-12-09
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 试灯按钮配置数据管理头文件
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _LIGHTTESTBUTTON_CONFIG_DATA_MANAGE_H_
|
||||
#define _LIGHTTESTBUTTON_CONFIG_DATA_MANAGE_H_
|
||||
|
||||
|
||||
#include "LightTestButtonDefine.h"
|
||||
|
||||
|
||||
typedef struct S_LightTestButtonConfigDataStruct
|
||||
{
|
||||
UINT16 LightTestButtonId; /* 试灯按钮ID (配置字段) */
|
||||
UINT16 BelongOcId; /* 所属OC ID (配置字段) */
|
||||
UINT8 LightTestButtonType; /* 试灯按钮类型 (配置字段) */
|
||||
UINT16 LightTestButtonRelayNum; /* 试灯表示灯继电器数量 */
|
||||
UINT16 LightRelayId[LIGHTTESTBUTTON_LIGHT_SUPPORT_MAX_NUM]; /* 试灯表示灯继电器ID数组 */
|
||||
}LightTestButtonConfigDataStruct;
|
||||
|
||||
|
||||
extern LightTestButtonConfigDataStruct LightTestButtonConfigDataStru[LIGHTTESTBUTTON_BUTTON_MAX_NUM]; /*定义试灯按钮数据配置结构体*/
|
||||
extern INT16 LightTestButtonCurSum; /*试灯按钮当前总数*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮当前总数
|
||||
* 参数说明: void
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 信试灯按钮当前总数
|
||||
*/
|
||||
UINT16 GetLightTestButtonCurSum(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮的ID
|
||||
* 参数说明: UINT16 index 试灯按钮索引
|
||||
* 返回值 UINT16 retVal 试灯按钮ID
|
||||
*/
|
||||
UINT16 GetLightTestButtonId(UINT16 index);
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮ID对应的继电器数据
|
||||
* 参数说明: UINT16 lightTestButtonId 试灯按钮ID
|
||||
* 返回值 :
|
||||
LightTestButtonConfigDataStruct *
|
||||
*/
|
||||
LightTestButtonConfigDataStruct *GetLightTestButtonConfigData(UINT16 lightTestButtonId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮ID对应继电器的总数量
|
||||
* 参数说明: UINT16 lightTestButtonId 试灯按钮ID
|
||||
* 返回值 : UINT16 lightTestButtonRelayNum 继电器数量
|
||||
*/
|
||||
UINT16 GetLightTestButtonRelayNum(UINT16 lightTestButtonId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试灯按钮ID对应继电器ID
|
||||
* 参数说明: UINT16 lightTestButtonId 试灯按钮ID
|
||||
* UINT16 index 继电器索引
|
||||
* 返回值 : UINT16 lightTestButtonRelayId 继电器ID
|
||||
*/
|
||||
UINT16 GetLightTestButtonRelayId(UINT16 lightTestButtonId, UINT16 index);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,63 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: LightTestButtonDataManage.c
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间: 2025-12-09
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 试灯按钮数据管理
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#include "LightTestButtonDataManage.h"
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 试灯按钮处理函数
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
*/
|
||||
void LightTestButtonDataManageProc(void)
|
||||
{
|
||||
UINT16 i = 0u; /*循环变量*/
|
||||
UINT16 j = 0u; /*循环变量*/
|
||||
|
||||
UINT16 lightTestButtonId = 0u; /* 试灯按钮ID */
|
||||
UINT16 lightTestButtonRelayNum = 0u; /* 试灯按钮ID数量 */
|
||||
UINT16 lightRelayId = 0u; /* 试灯表示灯继电器ID */
|
||||
UINT16 ligthtRelatNum = 0u; /* 试灯表示灯继电器数量 */
|
||||
|
||||
UINT8 lightTestButtonState = RELAY_STATE_DOWN; /*试灯按钮状态*/
|
||||
|
||||
lightTestButtonRelayNum = GetLightTestButtonCurSum(); /*获取试灯按钮总数量*/
|
||||
|
||||
for(i = 0u; i < lightTestButtonRelayNum; i++)
|
||||
{
|
||||
/* 获取对应试灯按钮ID*/
|
||||
lightTestButtonId = GetLightTestButtonId(i);
|
||||
/*获取试灯按钮继电器采集状态*/
|
||||
lightTestButtonState = GetRelayCollState(lightTestButtonId);
|
||||
if(RELAY_STATE_UP == lightTestButtonState) /*试灯按钮按下*/
|
||||
{
|
||||
/* 试灯表示灯继电器数量*/
|
||||
ligthtRelatNum = GetLightTestButtonRelayNum(lightTestButtonId);
|
||||
for(j = 0u; j < ligthtRelatNum; j++)
|
||||
{
|
||||
/* 获取对应试灯表示灯继电器ID*/
|
||||
lightRelayId = GetLightTestButtonRelayId(lightTestButtonId,j);
|
||||
/*设置试灯表示灯继电器吸起*/
|
||||
(void)SetRelayDriveState(lightRelayId, RELAY_DRIVE_STATE_UP);
|
||||
|
||||
}
|
||||
}
|
||||
else if(RELAY_STATE_DOWN == lightTestButtonState) /*试灯按钮未按下*/
|
||||
{
|
||||
/* 不处理即可 */
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 不处理 */
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
/********************************************************
|
||||
* 文 件 名: LightTestButtonDataManage.h
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间: 2025-12-09
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 试灯按钮数据管理头文件
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _LIGHTTEST_BUTTON_DATA_MANAGE_H_
|
||||
#define _LIGHTTEST_BUTTON_DATA_MANAGE_H_
|
||||
|
||||
|
||||
#include "LightTestButtonDefine.h"
|
||||
#include "LightTestButtonConfigDataManage.h"
|
||||
#include "RelayDefine.h"
|
||||
#include "RelayDataManage.h"
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 试灯按钮处理函数
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
*/
|
||||
void LightTestButtonDataManageProc(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,33 @@
|
||||
/********************************************************
|
||||
*
|
||||
* 文 件 名: LightTestButtonDefine.h
|
||||
* 版权说明: 北京交控科技有限公司
|
||||
* 创建时间: 2025-12-09
|
||||
* 作 者: 联锁组
|
||||
* 功能描述: 试灯按钮配置数据头文件
|
||||
* 函数包括:
|
||||
* 使用注意:
|
||||
* 修改记录:
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
#ifndef _LIGHTTESTBUTTON_DEFINE_H_
|
||||
#define _LIGHTTESTBUTTON_DEFINE_H_
|
||||
|
||||
#include "CommonTypes.h"
|
||||
|
||||
/* 试灯表示灯最大数量 */
|
||||
#define LIGHTTESTBUTTON_LIGHT_MAX_NUM ((UINT8)13U)
|
||||
|
||||
/* 试灯表示灯支持最大数 */
|
||||
#define LIGHTTESTBUTTON_LIGHT_SUPPORT_MAX_NUM ((UINT8)208U)
|
||||
|
||||
/* 试灯按钮可配置最大数量 */
|
||||
#define LIGHTTESTBUTTON_BUTTON_MAX_NUM ((UINT16)70U)
|
||||
|
||||
/* 武汉新港OC采集试灯按钮类型 */
|
||||
#define LIGHTTESTBUTTON_TYPE_XINGANG ((UINT8)0xaaU)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "LogRecord.h"
|
||||
#include "../ParsePack/ParsePackVobcData.h"
|
||||
#include "../ParsePack/ParsePackZcData.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
|
||||
@@ -497,6 +498,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
OCStationIndicDataStru* pNewOCStationIndicData = GetOCStationIndicDataStru();
|
||||
EsbDataStruct* pNewEsbData = GetEsbData();
|
||||
LogicalRouteDataStruct* pNewLogicalRouteDataStru = GetLogicalRouteStr();
|
||||
CbtcCrossStructZC* pCbtcCrossStructZCStru = GetCbtcCrossStructZc();
|
||||
UINT16 wCfpId = 0u;
|
||||
UINT8 chEnIndex = 0u;
|
||||
UINT8 chTrainIndex = 0u;
|
||||
@@ -505,6 +507,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
UINT16 wNonAutoReturnCurSum = 0U;/*无人折返按钮当前总数*/
|
||||
NonAutoReturnDataStruct* pNonAutoReturnData = NULL; /*无人折返数据结构体指针*/
|
||||
NonAutoReturnDataStructCC* pNonReturnDataStruCC = NULL; /*无人折返数据结构体指针-CC*/
|
||||
UINT8 chThisOCBoardState = 0U;
|
||||
|
||||
/*************************************打印物理区段数据********************************************/
|
||||
/*打印区段数据*/
|
||||
@@ -701,6 +704,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newSignalData[deviceId].DoubleGreenDsBreakFlag;/*双绿灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].DoubleYellowDsBreakFlag;/*双黄灯丝断丝标志状态*/
|
||||
outString[outStringLength++] = newSignalData[deviceId].MaintainLightState;/*信号机维修点灯状态*/
|
||||
outString[outStringLength++] = pSignalDataCC[deviceId].wCrossTacsTrainId;/*TACS跨压列车ID*/
|
||||
|
||||
if (MAX_SIGNAL_LIGHTUPLINK_NUM < pSignalDataCC[deviceId].wSignalLightUpLinkIdSum)
|
||||
{
|
||||
@@ -833,6 +837,11 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength += 4u;
|
||||
LongToChar(pNewEsbData[deviceId].EsbCutErrTriggerPressCycNum, &outString[outStringLength]); /*紧急关闭旁路按钮误触发按下周期*/
|
||||
outStringLength += 4U;
|
||||
|
||||
outString[outStringLength] = pNewEsbData[deviceId].cOnePlatEsbState;/*同站紧急按钮激活状态:0x55-未激活,0xAA-激活*/
|
||||
outStringLength++;
|
||||
outString[outStringLength] = pNewEsbData[deviceId].cOnePlatEsbCutState;/*同站紧急旁路按钮激活状态:0x55-未激活,0xAA-激活*/
|
||||
outStringLength++;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -950,6 +959,56 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newSwitchData[deviceId].chSwitchJichaState; /*道岔挤岔状态*/
|
||||
LongToChar(newSwitchData[deviceId].SwitchCollTolerateCycNum, &outString[outStringLength]);/*容忍周期号*/
|
||||
outStringLength += 4u;
|
||||
|
||||
LongToChar(newSwitchData[deviceId].SwitchOutputDrvCmdCycNum, &outString[outStringLength]);/*驱动起始周期*/
|
||||
outStringLength += 4u;
|
||||
|
||||
outString[outStringLength++] = newSwitchData[deviceId].mainControlOcId;/*主控OC*/
|
||||
|
||||
outString[outStringLength++] = newSwitchData[deviceId].chSwitchBelongOcNum;/*道岔所属OC数*/
|
||||
for (jj = 0U; jj < newSwitchData[deviceId].chSwitchBelongOcNum; jj++)
|
||||
{
|
||||
outString[outStringLength++] = newSwitchData[deviceId].belongOCData[jj].OcId;/*道岔所属OC*/
|
||||
outString[outStringLength++] = newSwitchData[deviceId].belongOCData[jj].controlMode;/*OC当前主控状态*/
|
||||
outString[outStringLength++] = newSwitchData[deviceId].belongOCData[jj].OutControlCmd;/*发送OC当前主控命令*/
|
||||
outString[outStringLength++] = newSwitchData[deviceId].belongOCData[jj].PlusBoxSate;/*插箱状态*/
|
||||
chThisOCBoardState = GetSwitchThisOCBoardState(deviceId, newSwitchData[deviceId].belongOCData[jj].OcId);
|
||||
outString[outStringLength++] = chThisOCBoardState;/*双系板卡故障状态*/
|
||||
|
||||
LongToChar(newSwitchData[deviceId].belongOCData[jj].OutMainControlCmdCycNum, &outString[outStringLength]);/*升主控命令周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newSwitchData[deviceId].belongOCData[jj].FindPostionCmd;/*寻表命令*/
|
||||
LongToChar(newSwitchData[deviceId].belongOCData[jj].FindCmdStartCycNum, &outString[outStringLength]);/*寻表命令起始周期*/
|
||||
outStringLength += 4u;
|
||||
}
|
||||
|
||||
outString[outStringLength++] = newSwitchData[deviceId].PLockedAxisSecNum;/*被防护锁闭的计轴区段ID*/
|
||||
for (jj = 0; jj < SWITCH_MAX_PROTECT_LOCKED_NUM; jj++)
|
||||
{
|
||||
ShortToChar(newSwitchData[deviceId].PLockedAxisSecIdArr[jj], &outString[outStringLength]);
|
||||
outStringLength += 2u;
|
||||
}
|
||||
|
||||
outString[outStringLength] = newSwitchData[deviceId].cMainOcCollPos;
|
||||
outStringLength += 1u;
|
||||
|
||||
for (jj = 0u; jj < SWITCH_REDUN_COLL_MAX; jj++)
|
||||
{
|
||||
LongToChar(newSwitchData[deviceId].RedunCollData[jj].dwRedunJudgHunXianStCyc, &outString[outStringLength]);
|
||||
outStringLength += 4u;
|
||||
LongToChar(newSwitchData[deviceId].RedunCollData[jj].dwRedunRealHunXianStCyc, &outString[outStringLength]);
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength] = newSwitchData[deviceId].RedunCollData[jj].cHunXianRecovStt;
|
||||
outStringLength += 1u;
|
||||
LongToChar(newSwitchData[deviceId].RedunCollData[jj].dwRedunFaultStCyc, &outString[outStringLength]);
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength] = newSwitchData[deviceId].RedunCollData[jj].cCombineStt;
|
||||
outStringLength += 1u;
|
||||
outString[outStringLength] = newSwitchData[deviceId].RedunCollData[jj].cCollPos;
|
||||
outStringLength += 1u;
|
||||
outString[outStringLength] = newSwitchData[deviceId].RedunCollData[jj].cCurrHunxianStt;
|
||||
outStringLength += 1u;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1168,6 +1227,7 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newRouteData[deviceId].chRoutCouplinkFlag; /*进路联挂标志*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].chCouplinkSuccessFlag; /*进路联挂成功*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].chCouplinkErrorFlag; /*进路联挂失败*/
|
||||
outString[outStringLength++] = newRouteData[deviceId].chRouteConnReleaseFlag; /*进路联络线解锁标志*/
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1339,6 +1399,9 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength++;
|
||||
outString[outStringLength] = pLogicSecDataCC[deviceId].TXOccupyState;/*逻辑区段通信车占用状态CC(0x55-无车或非通信车占用,0xAA-通信车占用)*/
|
||||
outStringLength++;
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].chLogSecCbtcArbState;/*逻辑区段CBTC_ARB状态*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].chLogSecPbTacsArbState;/*逻辑区段PB_TACS_ARB状态*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].chArbState;/*逻辑区段ARB状态*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].LogLockState;/*逻辑区段锁闭状态*/
|
||||
outString[outStringLength++] = newLogicSecData[deviceId].LogLockDir;/*逻辑区段锁闭方向*/
|
||||
outString[outStringLength++] = pLogicSecDataCC[deviceId].chResShareFlag;/*逻辑区段共享标志 0x55共享 0xAA非共享*/
|
||||
@@ -1480,9 +1543,12 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].TrainEmergencyStopState;/*列车紧急停车状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].HeadWashAllowState;/*允许车头清洗状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].TailWashAllowState;/*允许车尾清洗状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chCoupingWashAllowState;/*允许联挂端清洗状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].WashTrainRequestDrvState;/*洗车请求驱动状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].TrainHeadStopSteadyDrvState;/*车头停稳驱动状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].TrainTailStopSteadyDrvState;/*车尾停稳驱动状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chCoupingStopSteadyDrvState; /*联挂端停稳驱动状态*/
|
||||
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].TrainOutWashTrainPortAllowState;/*允许出洗车库状态*/
|
||||
ShortToChar(newWashMachineData[deviceId].CurVobcId, &outString[outStringLength]);/*当前洗车的VOBC ID*/
|
||||
outStringLength += 2u;
|
||||
@@ -1490,18 +1556,46 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].PauseTrainWashRequestDrvState;/*暂停洗车请求驱动状态(动态字段:驱动)*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].PaseWashMachineRequesDrvtState;/*通过洗车机请求驱动状态(动态字段:驱动)*/
|
||||
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].WashmachineXTACurState;/*洗车同意按钮当前状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].WashmachineXTAPreState;/*洗车同意按钮上周期状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].WashmachineXTALogicState;/*洗车机按钮逻辑状态*/
|
||||
LongToChar(newWashMachineData[deviceId].WashmachineXTAPressDownCycle,&outString[outStringLength]);/*洗车机洗车同意按钮按下起始周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].WashMachineWorkModeDrvtState;/*洗车机洗车模式驱动状态(动态字段:驱动)*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].WashModeState;/*洗车机洗车模式采集状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chSetWashWorkModeBack;/*设置洗车机工作模式反馈*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowState;/*降级模式洗车同意状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowPassState;/*降级模式洗车同意通过状态*/
|
||||
LongToChar(newWashMachineData[deviceId].WashWorkModeRelayDrvCycle, &outString[outStringLength]);/*洗车模式继电器驱动起始周期号*/
|
||||
outStringLength += 4u;
|
||||
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowState;/**降级模式洗车同意状态(动态字段:融合)*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowPassState;/*降级模式洗车同意通过状态(动态字段:融合)*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashReqState;/*降级模式洗车请求状态*/
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashReqCycle, &outString[outStringLength]);/*降级模式洗车请求周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashPassReqState;/*降级模式反向洗车请求状态*/
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashPassReqCycle, &outString[outStringLength]);/*降级模式反向洗车请求周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowColState;/*降级模式洗车线洗车同意状态*/
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashAllowCycle, &outString[outStringLength]);/*降级模式洗车线洗车同意按钮按下起始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashBtVadCycle, &outString[outStringLength]);/*降级模式洗车线洗车同意按钮有效周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownDccWashAllowColState;/*降级模式DCC洗车同意状态*/
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashDccAllowCycle, &outString[outStringLength]);/*降级模式DCC洗车同意按钮按下起始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashDccBtVadCycle, &outString[outStringLength]);/*降级模式DCC洗车同意按钮有效周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowErrState;/*降级模式洗车线洗车同意粘连状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownDccWashAllowErrState;/*降级模式DCC洗车同意粘连状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowPassColState;/*降级模式洗车线洗车同意反向通过状态*/
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashAllowPassCycle, &outString[outStringLength]);/*降级模式洗车线反向通过洗车同意按钮按下起始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashBtVadPassCycle, &outString[outStringLength]);/*降级模式洗车线反向通过洗车同意按钮有效周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownDccWashAllowPassColState;/*降级模式DCC洗车同意反向通过状态*/
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashDccAllowPassCycle, &outString[outStringLength]);/*降级模式DCC反向通过洗车同意按钮按下起始周期*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newWashMachineData[deviceId].dwDownWashDccBtVadPassCycle, &outString[outStringLength]);/*降级模式DCC反向通过洗车同意按钮有效周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownWashAllowPassErrState;/*降级模式洗车线洗车同意反向通过粘连状态*/
|
||||
outString[outStringLength++] = newWashMachineData[deviceId].chDownDccWashAllowPassErrState;/*降级模式DCC洗车同意反向通过粘连状态*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1595,6 +1689,8 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newPsdData[deviceId].StartDetectionState;/*启动探测状态*/
|
||||
outString[outStringLength++] = newPsdData[deviceId].StopDetectionState; /*停止探测状态*/
|
||||
LongToChar(newPsdData[deviceId].StopDetectionCycNum,&outString[outStringLength]);/*停止探测周期*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newPsdData[deviceId].VOBCDoorState; /*VOBC车门状态*/
|
||||
LongToChar(newPsdData[deviceId].PCBPressCycNum,&outString[outStringLength]);/*PCB按下起始周期*/
|
||||
outStringLength += 4u;
|
||||
@@ -1624,6 +1720,16 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength++;
|
||||
LongToChar(newPsdData[deviceId].dwPsdRelayDownCycNum, &outString[outStringLength]); /*PSD门关继电器落下起始周期*/
|
||||
outStringLength += 4U;
|
||||
|
||||
outString[outStringLength] = newPsdData[deviceId].JXTCMutualLockFaultState; /*间隙探测旁路按钮故障状态*/
|
||||
outStringLength++;
|
||||
LongToChar(newPsdData[deviceId].JXTCMutualLockStartCycNum, &outString[outStringLength]); /*间隙探测旁路按钮按压起始周期*/
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength++] = newPsdData[deviceId].ibpButtonState;/*IBP盘发车按钮状态*/
|
||||
LongToChar(newPsdData[deviceId].IBPPressCycNum, &outString[outStringLength]); /*IBP盘发车按钮按下周期*/
|
||||
outStringLength += 4U;
|
||||
outString[outStringLength] = newPsdData[deviceId].chTrainZeroSpeedState; /*非零速状态*/
|
||||
outStringLength++;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1667,14 +1773,14 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
deviceId = GetGaragedoorId(ii);
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_GaragedoorDataStru[deviceId]), (UINT16)sizeof(GaragedoorDataStruct),
|
||||
(UINT8*)(&newGaragedoorData[deviceId]), (UINT16)sizeof(GaragedoorDataStruct));
|
||||
comparaResult += DeviceCompara((UINT8*)(&Record_GaragedoorDataStruCC[deviceId]), (UINT16)sizeof(GaragedoorDataStructCC),
|
||||
comparaResultCC = DeviceCompara((UINT8*)(&Record_GaragedoorDataStruCC[deviceId]), (UINT16)sizeof(GaragedoorDataStructCC),
|
||||
(UINT8*)(&pGaragedoorDataCC[deviceId]), (UINT16)sizeof(GaragedoorDataStructCC));
|
||||
|
||||
if (0u==comparaResult)
|
||||
if ((0U == comparaResult) && (0U == comparaResultCC))
|
||||
{/*比较数据一致*/
|
||||
|
||||
}
|
||||
else if (1u==comparaResult )
|
||||
else if ((1U == comparaResult) || (1U == comparaResultCC))
|
||||
{/*比较数据不一致*/
|
||||
|
||||
if (CI_ERROR==Flag)
|
||||
@@ -1746,14 +1852,14 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
deviceId = GetFloodGateId(ii);
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_FloodGateDataStru[deviceId]), (UINT16)sizeof(FloodGateDataStruct),
|
||||
(UINT8*)(&pNewFloodGateData[deviceId]), (UINT16)sizeof(FloodGateDataStruct));
|
||||
comparaResult += DeviceCompara((UINT8*)(&Record_FloodGateDataStruCC[deviceId]), (UINT16)sizeof(FloodGateDataStructCC),
|
||||
comparaResultCC = DeviceCompara((UINT8*)(&Record_FloodGateDataStruCC[deviceId]), (UINT16)sizeof(FloodGateDataStructCC),
|
||||
(UINT8*)(&pNewFloodGateDataCC[deviceId]), (UINT16)sizeof(FloodGateDataStructCC));
|
||||
|
||||
if (0u==comparaResult )
|
||||
if ((0U == comparaResult) && (0U == comparaResultCC))
|
||||
{/*比较数据一致*/
|
||||
|
||||
}
|
||||
else if (1u==comparaResult )
|
||||
else if ((1U == comparaResult) || (1U == comparaResultCC))
|
||||
{/*比较数据不一致*/
|
||||
|
||||
if (CI_ERROR==Flag )
|
||||
@@ -1829,14 +1935,14 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
deviceId = GetOverlapId(ii);
|
||||
comparaResult = DeviceCompara((UINT8*)(&Record_OverlapDataStru[deviceId]), (UINT16)sizeof(OverlapDataStruct),
|
||||
(UINT8*)(&newOverlapData[deviceId]), (UINT16)sizeof(OverlapDataStruct));
|
||||
comparaResult += DeviceCompara((UINT8*)(&Record_OverlapDataStruCC[deviceId]), (UINT16)sizeof(OverlapDataStructCC),
|
||||
comparaResultCC = DeviceCompara((UINT8*)(&Record_OverlapDataStruCC[deviceId]), (UINT16)sizeof(OverlapDataStructCC),
|
||||
(UINT8*)(&pOverlapDataCC[deviceId]), (UINT16)sizeof(OverlapDataStructCC));
|
||||
|
||||
if (0u==comparaResult)
|
||||
if ((0U == comparaResult) && (0U == comparaResultCC))
|
||||
{/*比较数据一致*/
|
||||
|
||||
}
|
||||
else if (1u==comparaResult )
|
||||
else if ((1U == comparaResult) || (1U == comparaResultCC))
|
||||
{/*比较数据不一致*/
|
||||
|
||||
if (CI_ERROR != Flag)
|
||||
@@ -1851,6 +1957,9 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
outStringLength += 4u;
|
||||
LongToChar(newOverlapData[deviceId].XuanPaiStartCycNum,&outString[outStringLength]);/*保护区段选排开始周期号*/
|
||||
outStringLength += 4u;
|
||||
LongToChar(newOverlapData[deviceId].dwAtsLastTimeLockCyc, &outString[outStringLength]);/*最近一次ATS锁闭保护区段周期号*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = newOverlapData[deviceId].OverlapFromSetRouteCmdFlag; /*保护区段由进路办理时连带的标志*/
|
||||
outString[outStringLength++] = newOverlapData[deviceId].chPreLaborUnlockState; /*之前人工解锁状态*/
|
||||
outString[outStringLength++] = newOverlapData[deviceId].OverlapUnlockApplyFlag;/*向ZC申请解锁保护区段解锁标志*/
|
||||
outString[outStringLength++] = newOverlapData[deviceId].OverlapCanLaborUnlockFlag;/*保护区段可以人工解锁标志*/
|
||||
@@ -2365,6 +2474,17 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
|
||||
outString[outStringLength++] = pNewTrainInfoData[deviceId].chtrainControlMode;/*当前控车模式*/
|
||||
outString[outStringLength++] = pNewTrainInfoData[deviceId].chTrainPostionMode; /*列车位置模式,0无位置,1使用IVOC位置,2使用VOBC位置*/
|
||||
ShortToChar(pNewTrainInfoData[deviceId].wMinSafeHeadLink, &outString[outStringLength]);/*延时小前所处link*/
|
||||
outStringLength += 2u;
|
||||
LongToChar(pNewTrainInfoData[deviceId].dwMinSafeHeadOffset, &outString[outStringLength]);/*延时小前所处link偏移量*/
|
||||
outStringLength += 4u;
|
||||
outString[outStringLength++] = pNewTrainInfoData[deviceId].chMinSafeHeadDir;/* 延时小前方向 */
|
||||
|
||||
outString[outStringLength] = pNewTrainInfoData[deviceId].chPbtacsTransState; /*RC与PBTACS列车通信状态:0x55-通信正常,0xAA-通信中断,0xFF-未知*/
|
||||
outStringLength++;
|
||||
|
||||
LongToChar(pNewTrainInfoData[deviceId].dwPbtacsTransBadCyc, &outString[outStringLength]); /*RC与PBTACS列车通信中断周期*/
|
||||
outStringLength += 4U;
|
||||
}
|
||||
|
||||
|
||||
@@ -2833,10 +2953,46 @@ UINT8 RecordDeviceDataLog(UINT8 Flag)
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nNonAutoReturnData:%d", (UINT16)sizeof(NonAutoReturnDataStruct), outStringLength);
|
||||
debug_infor_printf((const)"\nNonAutoReturnData:%d, length:%d", (UINT16)sizeof(NonAutoReturnDataStruct), outStringLength);
|
||||
|
||||
debug_out_array(0xAA, outString, outStringLength);
|
||||
|
||||
#endif
|
||||
|
||||
/*清空打印数据*/
|
||||
CleanString(outString);
|
||||
outStringLength = 0u;
|
||||
}
|
||||
|
||||
/*************************************打印CBTC跨压数据********************************************/
|
||||
/*打印CBTC跨压数据*/
|
||||
deviceNum = GetCbtcCrossNumZc();/* 获取边界点数量 */
|
||||
|
||||
for (ii = 0U; ii < deviceNum; ii++)
|
||||
{
|
||||
if ((CI_SUCCESS != returnValue) || (NULL == pCbtcCrossStructZCStru))
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
ShortToChar(pCbtcCrossStructZCStru[ii].wSignalId, &outString[outStringLength]);/*CBTC跨压信号机ID*/
|
||||
outStringLength += 2u;
|
||||
outString[outStringLength] = pCbtcCrossStructZCStru[ii].wTrainId; /*CBTC跨压列车ID*/
|
||||
outStringLength++;
|
||||
}
|
||||
|
||||
if (0u == outStringLength)
|
||||
{
|
||||
/*nothing*/
|
||||
debug_infor_printf((const)"\nCbtcCrossData:0u");
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
debug_infor_printf((const)"\nCbtcCrossData:%d:", outStringLength);
|
||||
|
||||
debug_out_array(0xAA, outString, outStringLength);
|
||||
#endif
|
||||
|
||||
/*清空打印数据*/
|
||||
@@ -3003,7 +3159,7 @@ UINT8 DeviceCompara(UINT8* deviceStruAddr1, const UINT16 deviceStruLen1,
|
||||
void GetVirCIKeyDataStru(void)
|
||||
{
|
||||
UINT8 ii = 0u;
|
||||
UINT8 jj = 0U;
|
||||
|
||||
|
||||
for(ii=0u;ii<g_VirtualCIStructData.virtualCiNum;ii++)
|
||||
{
|
||||
@@ -3022,12 +3178,6 @@ void GetVirCIKeyDataStru(void)
|
||||
newVirCIKeyDataStru[ii].ZfwValidCycNum = g_VirtualCIStructData.virtualCi[ii].ZfwValidCycNum;
|
||||
|
||||
|
||||
for (jj = 0U; jj < RTNINDICATOR_SUM_MAX; jj++)
|
||||
{
|
||||
newVirCIKeyDataStru[ii].RtnIndicatorKeyData[jj].PrintVirCiIndicatorDevId = g_VirtualCIStructData.virtualCi[ii].VirCIRtnIndicatorStaData[jj].VirCiIndicatorDevId;
|
||||
newVirCIKeyDataStru[ii].RtnIndicatorKeyData[jj].PrintVirCiFlashState = g_VirtualCIStructData.virtualCi[ii].VirCIRtnIndicatorStaData[jj].VirCiFlashState;
|
||||
newVirCIKeyDataStru[ii].RtnIndicatorKeyData[jj].PrintVirCiSteadyState = g_VirtualCIStructData.virtualCi[ii].VirCIRtnIndicatorStaData[jj].VirCiSteadyState;
|
||||
}
|
||||
newVirCIKeyDataStru[ii].ZfwjHunXianFLag = g_VirtualCIStructData.virtualCi[ii].ZfwjHunXianFLag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "../Section/LogicSectionDataManage.h"
|
||||
#include "LogicalRouteDataManage.h"
|
||||
#include "../LogicProcess/LogicalRouteLogicCheck.h"
|
||||
#include "../Overlap/OverlapDataManage.h"
|
||||
|
||||
/* C01_进路监督级别确认 */
|
||||
/*
|
||||
@@ -594,7 +595,7 @@ void SetRouteRelProSwitchLockSta(const UINT16 routeId, const UINT8 lockCommand)
|
||||
cSwitchCurPos = GetSwitchCurPosition(protectSwitchId);
|
||||
cFuncRet = checkSwtLastValDrvPosStayorNot(protectSwitchId, routeProtectSwitchStru[ii].ProtectPosition);
|
||||
if ((SWITCH_LOCK_PROTECT_CANCEL == lockCommand)
|
||||
|| ((SWITCH_LOCK_PROTECT_SET == lockCommand) && (cSwitchCurPos == routeProtectSwitchStru[ii].ProtectPosition) && (CI_SUCCESS == cFuncRet)))
|
||||
|| ((cSwitchCurPos == routeProtectSwitchStru[ii].ProtectPosition) && (CI_SUCCESS == cFuncRet)))
|
||||
{
|
||||
SetSwitchLockStatus(SWITCH_PLOCKTYPE_ROUTE, routeId, protectSwitchId, lockCommand); /*设置道岔防护锁闭状态*/
|
||||
/*RC 13.0.0 修:不检查防护道岔中双动道岔另一端*/
|
||||
@@ -801,7 +802,6 @@ void PhySecFaultUnlockLogicManage(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
UINT8 goExec = CI_ERROR;
|
||||
UINT8 autoTriggerType = 0U;
|
||||
UINT8 belongvirCIid = 0U;
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 chPhyIncLogSum = 0U; /*包含逻辑区段数目*/
|
||||
UINT16* pPhyIncLogId = NULL; /*物理区段包含逻辑区段ID数组*/
|
||||
UINT16 wLogLockBelongRouteId = 0U; /*逻辑区段锁闭所属进路ID*/
|
||||
@@ -1038,21 +1038,13 @@ void PhySecFaultUnlockLogicManage(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
}
|
||||
}
|
||||
else if((phyBelongCi == localCiId)&&(TRANSMIT_STATE_GOOD == commState))
|
||||
{
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
belongvirCIid = GetPhySecBelongVirCiId(phySectionId);
|
||||
if((belongvirCIid == virCIid)&&(0u != virCIid))/*区故解可以由相邻虚拟联锁现地操作,不相邻不能操作*/
|
||||
{
|
||||
/*进路属于相邻联锁,且区段属于本联锁时,传递区段故障解锁命令 */
|
||||
AddCiSendToCiCmdInfo(CI_CMD_SECTION_FAULT_UNLOCK,phySectionId,0u,routeBelongCi);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
belongvirCIid = GetPhySecBelongVirCiId(phySectionId);
|
||||
if((belongvirCIid == virCIid)&&(0u != virCIid))/*区故解可以由相邻虚拟联锁现地操作,不相邻不能操作*/
|
||||
{
|
||||
/*进路属于相邻联锁,且区段属于本联锁时,传递区段故障解锁命令 */
|
||||
AddCiSendToCiCmdInfo(CI_CMD_SECTION_FAULT_UNLOCK,phySectionId,0u,routeBelongCi);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1392,6 +1384,12 @@ void RouteRecoverOpenProc(const UINT16 routeId)
|
||||
UINT8 errType = CI_ERROR;
|
||||
UINT8 localCiType = GetLocalCiType();/*获得联锁类型*/
|
||||
UINT16 wStartSignalId = 0U; /*进路始端信号机ID*/
|
||||
UINT8 chVirCiId = 0U;/*虚拟联锁*/
|
||||
UINT8 chLocalVirCiType = 0U;
|
||||
|
||||
|
||||
chVirCiId = GetRouteBelongVirCiId(routeId);
|
||||
chLocalVirCiType = GetLocalVirCiType(chVirCiId);
|
||||
|
||||
routeState = GetRouteState(routeId);
|
||||
recoverState = GetRouteRecoverOpenFlag(routeId);
|
||||
@@ -1400,7 +1398,7 @@ void RouteRecoverOpenProc(const UINT16 routeId)
|
||||
{
|
||||
if (ROUTE_RECOVER_STA_WAIT == recoverState)
|
||||
{
|
||||
if ((CI_TYPE_ZX == localCiType) || (CI_TYPE_SCX == localCiType))
|
||||
if ((CI_TYPE_ZX == chLocalVirCiType) || (CI_TYPE_SCX == chLocalVirCiType))
|
||||
{
|
||||
errType = RecoverOpenRouteCheck(routeId);
|
||||
}
|
||||
@@ -1445,7 +1443,6 @@ void SetAtsExpectLockOverlapIdProc(const UINT16 expLkOverlapId,const UINT8 lockT
|
||||
UINT16 ii = 0u;
|
||||
UINT16 routeOverlapSum = 0u; /*进路保护区段数目*/
|
||||
UINT16 routeId = 0u; /*进路ID*/
|
||||
UINT16 routedLockOverlapId = 0u; /*进路锁闭过OverlapId*/
|
||||
UINT8 retVal = CI_SUCCESS; /*执行检查*/
|
||||
UINT8 routeState = 0u; /*进路状态*/
|
||||
UINT16 preOverlepId = 0u;
|
||||
@@ -1455,9 +1452,9 @@ void SetAtsExpectLockOverlapIdProc(const UINT16 expLkOverlapId,const UINT8 lockT
|
||||
UINT8 flag = 0u;
|
||||
UINT8 belongCiId = 0u;
|
||||
UINT8 localCiId = GetSystemParaLocalCiId(); /*获取本机联锁ID*/
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 virCIid = 0u;
|
||||
UINT8 ciCtrModeFlag = 0u;
|
||||
UINT32 dwCurCycNum = Get2oo2CurCycleNum();
|
||||
|
||||
if ((0u == expLkOverlapId) || (UINT16_MAX == expLkOverlapId))
|
||||
{/*判断输入参数有效性*/
|
||||
@@ -1498,9 +1495,9 @@ void SetAtsExpectLockOverlapIdProc(const UINT16 expLkOverlapId,const UINT8 lockT
|
||||
if (routeOverlapSum >= 1u)
|
||||
{/*只有当进路的保护区段数目大于等于1个时,ATS或现地才发送期望锁闭保护区段ID*/
|
||||
/*输入参数保护区段ID是否属于当前进路 且进路保护区段未锁闭过*/
|
||||
if (1u == checkExpOverlapBelongToRtOrNot(routeId,expLkOverlapId))
|
||||
if (1u == checkExpOverlapBelongToRtOrNot(routeId, expLkOverlapId))
|
||||
{/*期望锁闭的保护区段ID属于进路的保护区段ID*/
|
||||
flag = 1u;/*有任意一条匹配到了,则置为1*/
|
||||
flag = 1u;/*有任意一条匹配到了,则置为1*/
|
||||
retVal = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
@@ -1525,79 +1522,62 @@ void SetAtsExpectLockOverlapIdProc(const UINT16 expLkOverlapId,const UINT8 lockT
|
||||
/*判断当前保护区段所属联锁控制模式是否可以响应锁闭保护区段命令*/
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
virCIid= GetOverlapBelongVirCiId(expLkOverlapId);
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
ciCtrModeFlag = GetVirCImode(virCIid);/*获取联锁控制模式*/
|
||||
}
|
||||
else
|
||||
{
|
||||
ciCtrModeFlag = GetCiModeFlag(); /*获取联锁控制模式*/
|
||||
}
|
||||
virCIid = GetOverlapBelongVirCiId(expLkOverlapId);
|
||||
|
||||
if((CI_MODE_CI_LOCAL ==ciCtrModeFlag)||(0u ==ciCtrModeFlag))/*处于联锁控或者获取错误,发送现地不能响应人工锁闭命令*/
|
||||
ciCtrModeFlag = GetVirCImode(virCIid);/*获取联锁控制模式*/
|
||||
if ((CI_MODE_CI_LOCAL == ciCtrModeFlag) || (0u == ciCtrModeFlag))/*处于联锁控或者获取错误,发送现地不能响应人工锁闭命令*/
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
/*add by shl*/
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/*判断进路状态,是否满足锁闭保护区段条件,若满足则设置期望锁闭保护区段*/
|
||||
routeState = GetRouteState(routeId);
|
||||
|
||||
routedLockOverlapId = GetRouteOverlapLockedId(routeId); /*获取进路锁闭过保护区段ID*/
|
||||
|
||||
if (0u == routedLockOverlapId)
|
||||
{
|
||||
/*判断进路状态,是否满足锁闭保护区段条件,若满足则设置期望锁闭保护区段*/
|
||||
routeState = GetRouteState(routeId);
|
||||
|
||||
if ((routeState == ROUTE_STATE_FIRST_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_FIRST_LOCK) ||
|
||||
(routeState == ROUTE_STATE_FIRST_LOCKERR) ||
|
||||
(routeState == ROUTE_STATE_YUXIAN_OPEN) ||
|
||||
(routeState == ROUTE_STATE_YUXIAN_LOCK) ||
|
||||
(routeState == ROUTE_STATE_NEAR_OPEN) ||
|
||||
(routeState == ROUTE_STATE_NEAR_LOCK) ||
|
||||
(routeState == ROUTE_STATE_NEAR_LOCKERR) ||
|
||||
(routeState == ROUTE_STATE_AUTO_UNLOCK) ||
|
||||
(routeState == ROUTE_STATE_HALF_UNLOCK)
|
||||
)
|
||||
{/*设置指定ID进路的期望锁闭保护区段ID*/
|
||||
if(LABOR_LOCK_OVERLAP == lockType)/*人工锁闭*/
|
||||
if ((routeState == ROUTE_STATE_FIRST_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_XUANPAI) ||
|
||||
(routeState == ROUTE_STATE_FIRST_LOCK) ||
|
||||
(routeState == ROUTE_STATE_FIRST_LOCKERR) ||
|
||||
(routeState == ROUTE_STATE_YUXIAN_OPEN) ||
|
||||
(routeState == ROUTE_STATE_YUXIAN_LOCK) ||
|
||||
(routeState == ROUTE_STATE_NEAR_OPEN) ||
|
||||
(routeState == ROUTE_STATE_NEAR_LOCK) ||
|
||||
(routeState == ROUTE_STATE_NEAR_LOCKERR) ||
|
||||
(routeState == ROUTE_STATE_AUTO_UNLOCK) ||
|
||||
(routeState == ROUTE_STATE_HALF_UNLOCK)
|
||||
)
|
||||
{/*设置指定ID进路的期望锁闭保护区段ID*/
|
||||
if (LABOR_LOCK_OVERLAP == lockType)/*人工锁闭*/
|
||||
{
|
||||
SetOverlapAtsOrlaborLockCmdFlag(expLkOverlapId, LOCK_OVERLAP_CMD_YES);/*设置保护区段锁闭命令标志,用于保护区段解锁倒计时计算*/
|
||||
SetOverlaplaborLockCmdFlag(expLkOverlapId, LOCK_OVERLAP_CMD_YES);/*设置人工锁闭标志,用于人工命令一次有效处理*/
|
||||
ClearPreLoaborUnlockState(expLkOverlapId);
|
||||
}
|
||||
else if (ATS_LOCK_OVERLAP == lockType)/*ATS锁闭*/
|
||||
{
|
||||
phySectionId = GetRouteLastPhySectionId(routeId);
|
||||
phySectionSta = GetPhySecCurMergeState(phySectionId);
|
||||
if (SECTION_OCCUPY_YES == phySectionSta)
|
||||
{
|
||||
SetOverlapAtsOrlaborLockCmdFlag(expLkOverlapId,LOCK_OVERLAP_CMD_YES);/*设置保护区段锁闭命令标志,用于保护区段解锁倒计时计算*/
|
||||
SetOverlaplaborLockCmdFlag(expLkOverlapId,LOCK_OVERLAP_CMD_YES);/*设置人工锁闭标志,用于人工命令一次有效处理*/
|
||||
SetOverlapAtsOrlaborLockCmdFlag(expLkOverlapId, LOCK_OVERLAP_CMD_YES);/*设置保护区段锁闭命令标志*/
|
||||
}
|
||||
else if(ATS_LOCK_OVERLAP == lockType)/*ATS锁闭*/
|
||||
{
|
||||
phySectionId = GetRouteLastPhySectionId(routeId);
|
||||
phySectionSta = GetPhySecCurMergeState(phySectionId);
|
||||
if(SECTION_OCCUPY_YES==phySectionSta)
|
||||
{
|
||||
SetOverlapAtsOrlaborLockCmdFlag(expLkOverlapId,LOCK_OVERLAP_CMD_YES);/*设置保护区段锁闭命令标志*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*什么也不做*/
|
||||
}
|
||||
SetRouteAtsExpLkOverlapId(routeId,expLkOverlapId);
|
||||
SetOverlapFromSetRouteCmdFlag(expLkOverlapId, OVERLAP_ROUTE_FLAG_NO);/*清除标志*/
|
||||
retVal = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
/*什么也不做*/
|
||||
}
|
||||
|
||||
|
||||
SetRouteAtsExpLkOverlapId(routeId, expLkOverlapId);
|
||||
SetOverlapFromSetRouteCmdFlag(expLkOverlapId, OVERLAP_ROUTE_FLAG_NO);/*清除标志*/
|
||||
SetOverlapAtsLastTimeLockCyc(expLkOverlapId, dwCurCycNum);
|
||||
retVal = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1621,7 +1601,6 @@ UINT8 CheckPhySecFaultUnlockCanDo(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
UINT16 lockBelongRouteId = 0u; /*区段锁闭所属进路ID*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
UINT8 belongvirCIid = 0u;
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 isErrLock = CI_ERROR;
|
||||
UINT8 phyLockState = 0U;
|
||||
|
||||
@@ -1647,38 +1626,33 @@ UINT8 CheckPhySecFaultUnlockCanDo(const UINT16 phySectionId,const UINT8 virCIid)
|
||||
}
|
||||
if(CI_SUCCESS == reVal)
|
||||
{
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
|
||||
belongvirCIid = GetRouteBelongVirCiId(lockBelongRouteId);
|
||||
if(0u < virCIid)
|
||||
{
|
||||
belongvirCIid = GetRouteBelongVirCiId(lockBelongRouteId);
|
||||
if(0u < virCIid)
|
||||
{
|
||||
if(virCIid == belongvirCIid)
|
||||
{
|
||||
reVal = CI_SUCCESS; /*本Rtu(虚拟联锁现地)可以操作属于本虚拟联锁的进路锁闭的物理区段区故解,无论该物理区段是否属于该Rtu*/
|
||||
}
|
||||
else
|
||||
{
|
||||
belongvirCIid = GetPhySecBelongVirCiId(phySectionId);
|
||||
if(belongvirCIid == virCIid)
|
||||
{
|
||||
reVal = CI_SUCCESS;/*本虚拟联锁物理区段由相邻虚拟联锁进路锁闭的,可以在该物理区段所属Rtu上操作区故解*/
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
if(virCIid == belongvirCIid)
|
||||
{
|
||||
reVal = CI_SUCCESS; /*本Rtu(虚拟联锁现地)可以操作属于本虚拟联锁的进路锁闭的物理区段区故解,无论该物理区段是否属于该Rtu*/
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = CI_ERROR;
|
||||
belongvirCIid = GetPhySecBelongVirCiId(phySectionId);
|
||||
if(belongvirCIid == virCIid)
|
||||
{
|
||||
reVal = CI_SUCCESS;/*本虚拟联锁物理区段由相邻虚拟联锁进路锁闭的,可以在该物理区段所属Rtu上操作区故解*/
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
reVal = CI_SUCCESS;
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*按顺序解锁进路异常锁闭*/
|
||||
@@ -1901,8 +1875,9 @@ void SetRouteOvlpOtherCiShrFlg(const UINT16 wRouteId, const UINT16 wOverlapId,co
|
||||
void ClearSomeFlagDependRouteState(const UINT16 routeId)
|
||||
{
|
||||
UINT8 routeState = GetRouteState(routeId);
|
||||
UINT16 startSignalId = 0u;
|
||||
UINT16 EnginVehicCroCloBelongRoute = 0u;
|
||||
UINT16 startSignalId = 0U;
|
||||
UINT16 EnginVehicCroCloBelongRoute = 0U;
|
||||
UINT8 chZrenjieFlag = 0U;
|
||||
|
||||
/*清理工程车跨压关信号所属进路,清理工程车跨压状态*/
|
||||
if ((ROUTE_STATE_YUXIAN_LOCK != routeState)
|
||||
@@ -1951,6 +1926,17 @@ void ClearSomeFlagDependRouteState(const UINT16 routeId)
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
/*无总人解标志且不处于延时解锁状态,清除联络线解锁标志*/
|
||||
chZrenjieFlag = GetRouteZongRenJieFlag(routeId);
|
||||
if ((ROUTE_ZONGRENJIE_SET_NO == chZrenjieFlag) && (ROUTE_STATE_DELAY_UNLOCK != routeState))
|
||||
{
|
||||
SetRouteConnectReleaseFlag(routeId, ROUTE_CONNECT_RELEASE_NO); /*清除联络线解锁标志*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3424,14 +3410,12 @@ void OtherCiLogSecFaultUnlockProcess(const UINT16 wLogSectionId, const UINT8 chV
|
||||
UINT8 chLogFaultUnLockRes = 0U;/*逻辑区段故障解锁条件检查结果*/
|
||||
UINT8 chLogSecBelongRouteDir = 0U;/*逻辑区段锁闭所属进路方向*/
|
||||
UINT8 chRouteLogSecHaveUnLock = 0u;/*进路逻辑区段是否已解锁*/
|
||||
UINT8 chIncludeVirFlag = 0U;/*是否支持虚拟联锁*/
|
||||
UINT8 chBelongVirCiId = 0U;/*逻辑区段所属虚拟联锁ID*/
|
||||
UINT16 wLogSecBelongPhySecId = 0U;/*逻辑区段所属物理区段ID*/
|
||||
|
||||
chLocalCiId = GetSystemParaLocalCiId(); /*获取本机联锁ID*/
|
||||
wLogLockBelongRouteId = GetLogSecLockBelongRoute(wLogSectionId);
|
||||
chFuncSwitch = GetCiFunctionSwitchConfig(FUNC_SWITCH_USE_RELAY_INTERFACE_BETWEEN_NEIGHBOURCI);
|
||||
chIncludeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
chConfirmRelayInterfaceFlag = GetCiCiRelayInterfConfirmFlag();/*继电接口确认状态*/
|
||||
|
||||
if ((0U < wLogLockBelongRouteId) && (ROUTE_SUM_MAX > wLogLockBelongRouteId))
|
||||
@@ -3465,21 +3449,15 @@ void OtherCiLogSecFaultUnlockProcess(const UINT16 wLogSectionId, const UINT8 chV
|
||||
else if ((chLocalCiId == chLogSecBelongCiId) && (TRANSMIT_STATE_GOOD == chCommState))
|
||||
{
|
||||
wLogSecBelongPhySecId = GetLgcSecRelativePhySecId(wLogSectionId);
|
||||
if (FUNC_SWITCH_ON == chIncludeVirFlag)
|
||||
{
|
||||
chBelongVirCiId = GetLogSecBelongVirCiId(wLogSectionId);
|
||||
if ((chVirCIid == chBelongVirCiId) && (0U != chVirCIid))
|
||||
{
|
||||
/*进路属于相邻联锁,且区段属于本联锁时,传递区段故障解锁命令 */
|
||||
AddCiSendToCiCmdInfo(CI_CMD_SECTION_FAULT_UNLOCK, wLogSecBelongPhySecId, 0U, chRouteBelongCiId);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
chBelongVirCiId = GetLogSecBelongVirCiId(wLogSectionId);
|
||||
if ((chVirCIid == chBelongVirCiId) && (0U != chVirCIid))
|
||||
{
|
||||
/*进路属于相邻联锁,且区段属于本联锁时,传递区段故障解锁命令 */
|
||||
AddCiSendToCiCmdInfo(CI_CMD_SECTION_FAULT_UNLOCK, wLogSecBelongPhySecId, 0U, chRouteBelongCiId);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3500,7 +3478,6 @@ UINT8 CheckLogSecFaultUnlockCanDo(const UINT16 wLogSectionId, const UINT8 chVirC
|
||||
UINT16 wLockBelongRouteId = 0U; /*区段锁闭所属进路ID*/
|
||||
UINT8 reVal = CI_ERROR;
|
||||
UINT8 chBelongvirCIid = 0U;
|
||||
UINT8 chIncludeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
|
||||
if ((0u == wLogSectionId) || (LOGIC_SECTION_SUM_MAX <= wLogSectionId))
|
||||
{
|
||||
@@ -3523,38 +3500,32 @@ UINT8 CheckLogSecFaultUnlockCanDo(const UINT16 wLogSectionId, const UINT8 chVirC
|
||||
}
|
||||
if (CI_SUCCESS == reVal)
|
||||
{
|
||||
if (FUNC_SWITCH_ON == chIncludeVirFlag)
|
||||
|
||||
chBelongvirCIid = GetRouteBelongVirCiId(wLockBelongRouteId);
|
||||
if (0U < chVirCIid)
|
||||
{
|
||||
chBelongvirCIid = GetRouteBelongVirCiId(wLockBelongRouteId);
|
||||
if (0U < chVirCIid)
|
||||
if (chVirCIid == chBelongvirCIid)
|
||||
{
|
||||
if (chVirCIid == chBelongvirCIid)
|
||||
{
|
||||
reVal = CI_SUCCESS; /*本Rtu(虚拟联锁现地)可以操作属于本虚拟联锁的进路锁闭的逻辑区段区故解,无论该逻辑区段是否属于该Rtu*/
|
||||
}
|
||||
else
|
||||
{
|
||||
chBelongvirCIid = GetLogSecBelongVirCiId(wLogSectionId);
|
||||
if (chVirCIid == chBelongvirCIid)
|
||||
{
|
||||
reVal = CI_SUCCESS;/*本虚拟联锁逻辑区段由相邻虚拟联锁进路锁闭的,可以在该逻辑区段所属Rtu上操作区故解*/
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
reVal = CI_SUCCESS; /*本Rtu(虚拟联锁现地)可以操作属于本虚拟联锁的进路锁闭的逻辑区段区故解,无论该逻辑区段是否属于该Rtu*/
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = CI_ERROR;
|
||||
chBelongvirCIid = GetLogSecBelongVirCiId(wLogSectionId);
|
||||
if (chVirCIid == chBelongvirCIid)
|
||||
{
|
||||
reVal = CI_SUCCESS;/*本虚拟联锁逻辑区段由相邻虚拟联锁进路锁闭的,可以在该逻辑区段所属Rtu上操作区故解*/
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = CI_SUCCESS;
|
||||
reVal = CI_ERROR;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return reVal;
|
||||
@@ -4512,7 +4483,6 @@ void DriveLogRouteSignalClose(const UINT16 wLogSignalId)
|
||||
UINT8 sigalMaintainState = 0u;
|
||||
UINT8 detainOpenRedBright = 0u;
|
||||
UINT8 signalDetainFlag = 0u;
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
if ((0u == wLogSignalId) || (SIGNAL_SUM_MAX <= wLogSignalId))
|
||||
{
|
||||
/*不做处理*/
|
||||
@@ -4520,15 +4490,11 @@ void DriveLogRouteSignalClose(const UINT16 wLogSignalId)
|
||||
else
|
||||
{
|
||||
/*虚拟联锁兼容*/
|
||||
if (FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
belongVirCIid = GetSignalBelongVirCiId(wLogSignalId);
|
||||
allSignalBrightFlag = GetVirCIAllSignalBrightState(belongVirCIid); /*全站亮灯标志*/
|
||||
}
|
||||
else
|
||||
{
|
||||
allSignalBrightFlag = GetAllSignalBrightFlag(); /*全站亮灯标志*/
|
||||
}
|
||||
|
||||
belongVirCIid = GetSignalBelongVirCiId(wLogSignalId);
|
||||
allSignalBrightFlag = GetVirCIAllSignalBrightState(belongVirCIid); /*全站亮灯标志*/
|
||||
|
||||
|
||||
|
||||
/*无论什么时候,复示信号机关闭都驱动红灭*/
|
||||
signalIsfushiFlag = GetSignalIsfushiFlag(wLogSignalId);
|
||||
@@ -5127,7 +5093,6 @@ void LogRouteErrLockFaultManage(const UINT16 wPhySectionId)
|
||||
void SetAtsLockOverlapHaveRouteId(const UINT16 expLkOverlapId, const UINT16 routeId)
|
||||
{
|
||||
UINT16 routeOverlapSum = 0U; /*进路保护区段数目*/
|
||||
UINT16 routedLockOverlapId = 0U; /*进路锁闭过OverlapId*/
|
||||
UINT8 retVal = CI_SUCCESS; /*返回值*/
|
||||
UINT8 routeState = 0U; /*进路状态*/
|
||||
UINT16 preOverlepId = 0U;
|
||||
@@ -5136,11 +5101,11 @@ void SetAtsLockOverlapHaveRouteId(const UINT16 expLkOverlapId, const UINT16 rout
|
||||
UINT8 phySectionSta = 0U;
|
||||
UINT8 belongCiId = 0U;
|
||||
UINT8 localCiId = GetSystemParaLocalCiId(); /*获取本机联锁ID*/
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 virCIid = 0U;
|
||||
UINT8 ciCtrModeFlag = 0U;
|
||||
UINT8 routeStateFlag = 0U;
|
||||
UINT8 flag = 0U;
|
||||
UINT32 dwCurCycNum = Get2oo2CurCycleNum();
|
||||
|
||||
routeStateFlag = GetRouteStateFlag(routeId);
|
||||
|
||||
@@ -5203,14 +5168,8 @@ void SetAtsLockOverlapHaveRouteId(const UINT16 expLkOverlapId, const UINT16 rout
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
virCIid = GetOverlapBelongVirCiId(expLkOverlapId);
|
||||
if (FUNC_SWITCH_ON == includeVirFlag)
|
||||
{
|
||||
ciCtrModeFlag = GetVirCImode(virCIid);/*获取联锁控制模式*/
|
||||
}
|
||||
else
|
||||
{
|
||||
ciCtrModeFlag = GetCiModeFlag(); /*获取联锁控制模式*/
|
||||
}
|
||||
ciCtrModeFlag = GetVirCImode(virCIid);/*获取联锁控制模式*/
|
||||
|
||||
|
||||
if ((CI_MODE_CI_LOCAL == ciCtrModeFlag) || (0U == ciCtrModeFlag))/*处于联锁控或者获取错误,发送现地不能响应人工锁闭命令*/
|
||||
{
|
||||
@@ -5220,54 +5179,50 @@ void SetAtsLockOverlapHaveRouteId(const UINT16 expLkOverlapId, const UINT16 rout
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
routedLockOverlapId = GetRouteOverlapLockedId(routeId); /*获取进路锁闭过保护区段ID*/
|
||||
/*判断进路状态,是否满足锁闭保护区段条件,若满足则设置期望锁闭保护区段*/
|
||||
routeState = GetRouteState(routeId);
|
||||
|
||||
if (0U == routedLockOverlapId)
|
||||
if ((ROUTE_STATE_FIRST_XUANPAI == routeState)
|
||||
|| (ROUTE_STATE_XUANPAI == routeState)
|
||||
|| (ROUTE_STATE_FIRST_LOCK == routeState)
|
||||
|| (ROUTE_STATE_FIRST_LOCKERR == routeState)
|
||||
|| (ROUTE_STATE_YUXIAN_OPEN == routeState)
|
||||
|| (ROUTE_STATE_YUXIAN_LOCK == routeState)
|
||||
|| (ROUTE_STATE_NEAR_OPEN == routeState)
|
||||
|| (ROUTE_STATE_NEAR_LOCK == routeState)
|
||||
|| (ROUTE_STATE_NEAR_LOCKERR == routeState)
|
||||
|| ((ROUTE_STATE_AUTO_UNLOCK == routeState) && (ROUTE_STATE_FLAG_YES == routeStateFlag))
|
||||
)
|
||||
{
|
||||
/*判断进路状态,是否满足锁闭保护区段条件,若满足则设置期望锁闭保护区段*/
|
||||
routeState = GetRouteState(routeId);
|
||||
|
||||
if ((ROUTE_STATE_FIRST_XUANPAI == routeState)
|
||||
|| (ROUTE_STATE_XUANPAI == routeState)
|
||||
|| (ROUTE_STATE_FIRST_LOCK == routeState)
|
||||
|| (ROUTE_STATE_FIRST_LOCKERR == routeState)
|
||||
|| (ROUTE_STATE_YUXIAN_OPEN == routeState)
|
||||
|| (ROUTE_STATE_YUXIAN_LOCK == routeState)
|
||||
|| (ROUTE_STATE_NEAR_OPEN == routeState)
|
||||
|| (ROUTE_STATE_NEAR_LOCK == routeState)
|
||||
|| (ROUTE_STATE_NEAR_LOCKERR == routeState)
|
||||
|| ((ROUTE_STATE_AUTO_UNLOCK == routeState) && (ROUTE_STATE_FLAG_YES == routeStateFlag))
|
||||
)
|
||||
{/*设置指定ID进路的期望锁闭保护区段ID*/
|
||||
/*仅处理ATS办理保护区段,不处理人工办理保护区段*/
|
||||
phySectionId = GetRouteLastPhySectionId(routeId);
|
||||
phySectionSta = GetPhySecCurMergeState(phySectionId);
|
||||
if (SECTION_OCCUPY_YES == phySectionSta)
|
||||
{
|
||||
SetOverlapAtsOrlaborLockCmdFlag(expLkOverlapId, LOCK_OVERLAP_CMD_YES);/*设置保护区段锁闭命令标志,用于保护区段解锁倒计时计算*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*nothing do*/
|
||||
}
|
||||
|
||||
SetRouteAtsExpLkOverlapId(routeId, expLkOverlapId);/*设置期望锁闭保护区段*/
|
||||
|
||||
SetOverlapFromSetRouteCmdFlag(expLkOverlapId, OVERLAP_ROUTE_FLAG_YES);/*设置保护区段由进路连带标识*/
|
||||
|
||||
retVal = CI_SUCCESS;
|
||||
/*设置指定ID进路的期望锁闭保护区段ID*/
|
||||
/*仅处理ATS办理保护区段,不处理人工办理保护区段*/
|
||||
phySectionId = GetRouteLastPhySectionId(routeId);
|
||||
phySectionSta = GetPhySecCurMergeState(phySectionId);
|
||||
if (SECTION_OCCUPY_YES == phySectionSta)
|
||||
{
|
||||
SetOverlapAtsOrlaborLockCmdFlag(expLkOverlapId, LOCK_OVERLAP_CMD_YES);/*设置保护区段锁闭命令标志,用于保护区段解锁倒计时计算*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
/*nothing do*/
|
||||
}
|
||||
|
||||
SetRouteAtsExpLkOverlapId(routeId, expLkOverlapId);/*设置期望锁闭保护区段*/
|
||||
|
||||
SetOverlapFromSetRouteCmdFlag(expLkOverlapId, OVERLAP_ROUTE_FLAG_YES);/*设置保护区段由进路连带标识*/
|
||||
|
||||
SetOverlapAtsLastTimeLockCyc(expLkOverlapId, dwCurCycNum);
|
||||
retVal = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*当前进路保护区段已锁,不处理*/
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
; /*当前进路保护区段已锁,不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
if (0U == flag)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -628,14 +628,6 @@ void StartTrianTestManage(void);
|
||||
*/
|
||||
void StopTrianTestManage(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 取消临时限速设置
|
||||
* 参数说明: 无
|
||||
* 返回值 :
|
||||
CI_ERROR 失败
|
||||
CI_SUCCESS 成功
|
||||
*/
|
||||
UINT8 CancleLinShiXianSuManage(void);
|
||||
/*
|
||||
* 功能描述: 取消临时限速设置
|
||||
* 参数说明: 无
|
||||
@@ -1169,6 +1161,130 @@ void SetCouplinkRouteLogicManage(const UINT16 wRouteId);
|
||||
* 返回值 :
|
||||
*/
|
||||
void lockSwitchLogicManage(void);
|
||||
/*
|
||||
* 功能描述: 计轴区段跳跃锁闭状态机管理
|
||||
* 参数说明: const UINT16 axisSecId, 计轴区段ID
|
||||
* 返回值 : void
|
||||
* add by mpt 20260407
|
||||
*/
|
||||
void AxisJumpLockStateManage(const UINT16 axisSectionId);
|
||||
|
||||
/*
|
||||
* 功能描述: 试车状态管理逻辑处理中获取本联锁是否具备试车功能(拆分复杂度使用)
|
||||
*参数说明:无
|
||||
* 返回值 :CI_SUCCESS 是试车线(含合设) CI_ERROR
|
||||
*/
|
||||
UINT8 GetLocalCiIsScx(void);
|
||||
/*
|
||||
* 功能描述: 联络线进路解锁管理
|
||||
* 参数说明: const UINT16 wRouteId 进路ID
|
||||
* 返回值 : 无
|
||||
* Create:lyj 20260603
|
||||
*/
|
||||
void ConnectRouteReleaseManage(const UINT16 wRouteId);
|
||||
|
||||
/*
|
||||
* 功能描述: 新增一二次命令管理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
* BY fan 20260602
|
||||
*/
|
||||
void AtsFollowUpCmdProcess(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔单解命令管理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
* BY fan 20260602
|
||||
*/
|
||||
void FollowUpDansuoCanclMsgProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔单解命令状态检查,返回成功或检查失败原因
|
||||
* 参数说明:
|
||||
UINT16 wDevId命令中设备
|
||||
UINT16 wMsgType, 命令类型
|
||||
* 返回值 :
|
||||
1 成功
|
||||
2:道岔未设置单锁
|
||||
3:道岔不属于本集中区
|
||||
5:已办理非进路调车
|
||||
* BY fan 20260603
|
||||
*/
|
||||
UINT8 FollowUpDansuoCancleCheck(UINT16 wDevId, UINT16 wMsgType);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔解封命令管理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
* BY fan 20260602
|
||||
*/
|
||||
void FollowUpSwitchUnFlockMsgProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 道岔解封命令状态检查,返回成功或检查失败原因,二次操作时执行命令
|
||||
* 参数说明:
|
||||
UINT16 wDevId命令中设备
|
||||
UINT16 wMsgType, 命令类型
|
||||
* 返回值 :
|
||||
1 成功
|
||||
2:道岔未设置封锁
|
||||
3:道岔不属于本集中区
|
||||
5:已办理非进路调车
|
||||
* BY fan 20260603
|
||||
*/
|
||||
UINT8 FollowUpSwitchUnFlockCheck(UINT16 wDevId, UINT16 wMsgType);
|
||||
|
||||
/*
|
||||
* 功能描述: 区段解封命令管理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
* BY fan 20260604
|
||||
*/
|
||||
void FollowUpSecUnFlockMsgProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 区段解封命令状态检查,返回成功或检查失败原因,二次操作时执行命令
|
||||
* 参数说明:
|
||||
UINT16 wDevId命令中设备
|
||||
UINT16 wMsgType, 命令类型
|
||||
* 返回值 :
|
||||
1 成功
|
||||
2:未设置人工区段封锁
|
||||
3:不属于本集中区
|
||||
* BY fan 20260604
|
||||
*/
|
||||
UINT8 FollowUpSecUnFlockCheck(UINT16 wDevId, UINT16 wMsgType);
|
||||
|
||||
/*
|
||||
* 功能描述: 信号机解封命令管理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
* BY fan 20260604
|
||||
*/
|
||||
void FollowUpSignalUnFlockMsgProc(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 信号机解封命令状态检查,返回成功或检查失败原因,二次操作时执行命令
|
||||
* 参数说明:
|
||||
UINT16 wDevId命令中设备
|
||||
UINT16 wMsgType, 命令类型
|
||||
* 返回值 :
|
||||
1 成功
|
||||
2:未设置信号机封锁
|
||||
3:不属于本集中区
|
||||
5:所属非进路已办理
|
||||
* BY fan 20260604
|
||||
*/
|
||||
UINT8 FollowUpSignalUnFlockCheck(UINT16 wDevId, UINT16 wMsgType);
|
||||
|
||||
/*
|
||||
* 功能描述:信号已开放进路的共享资源处理
|
||||
* 参数说明:无
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.06.09
|
||||
*/
|
||||
void OpenedRouteShareResPro(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -3107,6 +3107,7 @@ static UINT8 OtherCiValidErrCheck(UINT16 const routeId)
|
||||
UINT8 toOpenCheckFlag = 0u;/*恢复可重开信号的条件标志*/
|
||||
UINT8 otherResult = 0u;/*其他联锁检查条件返回值*/
|
||||
UINT8 cFuncSwitchSpks = 0U; /*SPKS信号重开检查进路级别开关*/
|
||||
UINT8 cPsdExceptOpenState = 0U; /*PSD异常打开状态*/
|
||||
|
||||
if (routeLevel == ROUTE_LEVEL_BLOC)
|
||||
{
|
||||
@@ -3132,7 +3133,7 @@ static UINT8 OtherCiValidErrCheck(UINT16 const routeId)
|
||||
psdSum = GetSignalRelatedPsdSum(rtStartSigId);/*获得进路始端信号机关联的PSD数量*/
|
||||
psdIdBuf = GetSignalRelatedPsdBuf(rtStartSigId);/*获得进路始端信号机关联的PSD ID数组*/
|
||||
|
||||
/*开始检查*/
|
||||
/*开始检查*/
|
||||
for (i = 0u; i < checkSum; i++)
|
||||
{
|
||||
tmpOtherCiDevInfo = &dataOtherCiDevBuf[i];
|
||||
@@ -3160,8 +3161,16 @@ static UINT8 OtherCiValidErrCheck(UINT16 const routeId)
|
||||
{
|
||||
if (psdIdBuf[j] == tmpOtherCiDevInfo->DevId)
|
||||
{
|
||||
toOpenCheckFlag = 1u;
|
||||
break;
|
||||
cPsdExceptOpenState = GePsdExceptState(tmpOtherCiDevInfo->DevId);
|
||||
if (PSD_EXCEPT_NO == cPsdExceptOpenState)
|
||||
{
|
||||
toOpenCheckFlag = 1U; /*PSD未异常,设置可自动重开*/
|
||||
}
|
||||
else
|
||||
{
|
||||
toOpenCheckFlag = 0U; /*存在PSD异常,停止遍历,设置不可自动重开*/
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3670,7 +3679,7 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
}
|
||||
}
|
||||
|
||||
if(CI_TRADITION_RAILWAY == lineIdentity)
|
||||
if (CI_TRADITION_RAILWAY == lineIdentity)
|
||||
{
|
||||
/*保护区段道岔【位置正确】*/
|
||||
if (CI_SUCCESS == reResult)
|
||||
@@ -3693,6 +3702,7 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
else
|
||||
{
|
||||
/* zt 删除单轨相关代码 2022-02-15 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
|
||||
/*保护区段 内所有道岔【未封锁】*/
|
||||
@@ -3731,46 +3741,39 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
}
|
||||
}
|
||||
|
||||
if (FUNC_SWITCH_ON == cSndSideProFuncSwitch)
|
||||
/*保护区段关联防护道岔【位置正确】*/
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
/*二级侧防开关配置为支持二级侧防时,可不检查保护区段防护道岔位置及可动性,通过检查侧防条件防护*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*保护区段关联防护道岔【位置正确】*/
|
||||
if (CI_SUCCESS == reResult)
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = OvlpRelatedProtSwitchPosCheck(overlapId, &devId, &devState);
|
||||
if (checkResult == CI_SUCCESS)
|
||||
{
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = OvlpRelatedProtSwitchPosCheck(overlapId, &devId, &devState);
|
||||
if (checkResult == CI_SUCCESS)
|
||||
{
|
||||
/* 通过检查 */
|
||||
reResult = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
/* 通过检查 */
|
||||
reResult = CI_SUCCESS;
|
||||
}
|
||||
|
||||
/*保护区段关联防护道岔【防护锁闭】或【单锁且防护锁闭】*/
|
||||
if (CI_SUCCESS == reResult)
|
||||
else
|
||||
{
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = OvlpRelatedProtSwitchLockCheck(overlapId, &devId, &devState);
|
||||
if (checkResult == CI_SUCCESS)
|
||||
{
|
||||
/* 通过检查 */
|
||||
reResult = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
/*保护区段关联防护道岔【防护锁闭】或【单锁且防护锁闭】*/
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = OvlpRelatedProtSwitchLockCheck(overlapId, &devId, &devState);
|
||||
if (checkResult == CI_SUCCESS)
|
||||
{
|
||||
/* 通过检查 */
|
||||
reResult = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 失败返回 */
|
||||
reResult = CI_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3792,7 +3795,7 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
if (FUNC_SWITCH_ON == cSndSideProFuncSwitch)
|
||||
{
|
||||
/*仅在二级侧防开关配置为支持二级侧防时才进行侧防条件检查*/
|
||||
/*检查保护区段侧防道岔区段状态*/
|
||||
/*检查保护区段侧防道岔区段状态*/
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = OlapSideProtectConditionCheck(overlapId, 0U, 0U);
|
||||
@@ -3823,7 +3826,7 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
{
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = OverlapAllSecJumpLockStateCheck(overlapId,&devId,&devState);
|
||||
checkResult = OverlapAllSecJumpLockStateCheck(overlapId, &devId, &devState);
|
||||
if (CI_ERROR == checkResult)
|
||||
{
|
||||
reResult = checkResult;
|
||||
@@ -3844,7 +3847,7 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
{
|
||||
devId = 0u;
|
||||
devState = 0u;
|
||||
checkResult = OverlapFloodGateStateCheck(overlapId,&devId,&devStateType,&devState);
|
||||
checkResult = OverlapFloodGateStateCheck(overlapId, &devId, &devStateType, &devState);
|
||||
if (CI_ERROR == checkResult)
|
||||
{
|
||||
reResult = checkResult;
|
||||
@@ -3863,11 +3866,11 @@ static UINT8 OpenBlocRouteOverlapErrCheck(const UINT16 routeId)
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4169,12 +4172,15 @@ static UINT8 KeepCbtcRouteSectionErrCheck(const UINT16 routeId)
|
||||
UINT8 preLogDevState = 0u; /*之前逻辑区段占用状态*/
|
||||
UINT8 LogSecCurCtOrUtOcc = 0U; /*逻辑区段当前占用状态*/
|
||||
UINT8 cLocalCiType = 0U; /*本控区类型*/
|
||||
UINT8 chRouteBelongVirCiId = 0U;
|
||||
|
||||
rcWorkMode = GetLocalRcWorkMode();
|
||||
|
||||
/* 联锁逻辑检查 */
|
||||
reResult = CI_SUCCESS;
|
||||
cLocalCiType = GetLocalCiType();
|
||||
chRouteBelongVirCiId = GetRouteBelongVirCiId(routeId);
|
||||
cLocalCiType = GetLocalVirCiType(chRouteBelongVirCiId);
|
||||
if (CI_TYPE_CLD != cLocalCiType)
|
||||
{
|
||||
/*非车辆段,按CBTC既有逻辑处理*/
|
||||
@@ -4322,10 +4328,12 @@ static UINT8 OpenCbtcRouteSectionErrCheck(const UINT16 routeId)
|
||||
UINT8 cLocalCiType = 0U; /*本控区类型*/
|
||||
UINT8 chRouteCouplinkFlag = 0U;
|
||||
UINT8 chSigCrossState = 0U;
|
||||
UINT8 chRouteBelongVirCiId = 0U;
|
||||
rcWorkMode = GetLocalRcWorkMode();
|
||||
|
||||
/* 联锁逻辑检查 */
|
||||
cLocalCiType = GetLocalCiType();
|
||||
chRouteBelongVirCiId = GetRouteBelongVirCiId(routeId);
|
||||
cLocalCiType = GetLocalVirCiType(chRouteBelongVirCiId);
|
||||
if (CI_TYPE_CLD != cLocalCiType)
|
||||
{
|
||||
/*非车辆段,按CBTC既有逻辑处理*/
|
||||
|
||||
@@ -229,6 +229,7 @@ void NonRouteLogicProcess(void)
|
||||
{
|
||||
NonRouteCancelDeal(pNonRoute->NonRouteId); /*非进路取消处理*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,22 +241,42 @@ void NonRouteLogicProcess(void)
|
||||
*/
|
||||
void NonRouteXuanPaiDeal(UINT8 nonRouteId)
|
||||
{
|
||||
UINT8 reResult = CI_ERROR;
|
||||
NonRouteDataStruct *pNonRoute = GetNonRouteDataById(nonRouteId);
|
||||
if (CI_SUCCESS == LockNonRouteP(nonRouteId))
|
||||
reResult = LockNonRouteP(nonRouteId);
|
||||
if (CI_SUCCESS == reResult)
|
||||
{ /*锁闭成功*/
|
||||
|
||||
if (CI_SUCCESS == CheckNonRouteSwitchPosRight(nonRouteId,0u,0u))
|
||||
{ /*进路道岔位置正确*/
|
||||
SetNonRouteStateDeal(nonRouteId,NONROUTE_STATE_LOCK); /*设置非进路为锁闭*/
|
||||
reResult = CheckNonRouteSwitchPosRight(nonRouteId, 0U, 0U);
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
/*进路道岔位置正确*/
|
||||
/*侵限区段侵限条件不满足检查*/
|
||||
reResult = NonRouteIntruSecVainCheck(nonRouteId, EFUNC_CLD_LOCK_NONROUTE, ESEND_LEVEL_ATS);
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
SetNonRouteStateDeal(nonRouteId, NONROUTE_STATE_LOCK); /*设置非进路为锁闭*/
|
||||
}
|
||||
else
|
||||
{
|
||||
SetNonRouteStateDeal(nonRouteId, NONROUTE_STATE_IDLE); /*设置非进路为空闲*/
|
||||
/* NonRouteIntruSecVainCheck函数已经有故障码,不再记录*/
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{ /*道岔未动作到位*/
|
||||
|
||||
/*非进路锁闭驱动道岔*/
|
||||
if (CI_ERROR == NonRouteLockDrvSwitchDeal(nonRouteId))
|
||||
reResult = NonRouteLockDrvSwitchDeal(nonRouteId);
|
||||
if (CI_SUCCESS == reResult)
|
||||
{
|
||||
SetNonRouteStateDeal(nonRouteId,NONROUTE_STATE_IDLE); /*设置非进路为空闲*/
|
||||
/*继续驱动道岔*/
|
||||
}
|
||||
else
|
||||
{
|
||||
SetNonRouteStateDeal(nonRouteId, NONROUTE_STATE_IDLE); /*设置非进路为空闲*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -6026,6 +6047,8 @@ void DTrainReturnUnlockP(void)
|
||||
UINT16 routeId = 0u; /*进路ID*/
|
||||
UINT8 belongCiId = 0u; /*进路所属联锁ID*/
|
||||
UINT16 ii = 0u; /*循环索引*/
|
||||
UINT8 belongVirCIid = 0U;
|
||||
UINT8 chLocalVirCiType = 0U;
|
||||
|
||||
|
||||
routeCurSum = GetRouteCurSum(); /*获取进路总数*/
|
||||
@@ -6047,9 +6070,13 @@ void DTrainReturnUnlockP(void)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/*调车中途折返进路完整锁闭处理*/
|
||||
DTrainReturnUnlockRouteAllLockP(routeId);
|
||||
belongVirCIid = GetRouteBelongVirCiId(routeId);
|
||||
chLocalVirCiType = GetLocalVirCiType(belongVirCIid);
|
||||
if (CI_TYPE_CLD == chLocalVirCiType)
|
||||
{
|
||||
/*调车中途折返进路完整锁闭处理*/
|
||||
DTrainReturnUnlockRouteAllLockP(routeId);
|
||||
}
|
||||
}
|
||||
|
||||
/*处理调车中途折返*/
|
||||
@@ -6068,9 +6095,13 @@ void DTrainReturnUnlockP(void)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/*调车中途折返进路部分锁闭处理*/
|
||||
DTrainRtnUnlockRoutePartLockP(routeId);
|
||||
belongVirCIid = GetRouteBelongVirCiId(routeId);
|
||||
chLocalVirCiType = GetLocalVirCiType(belongVirCIid);
|
||||
if (CI_TYPE_CLD == chLocalVirCiType)
|
||||
{
|
||||
/*调车中途折返进路部分锁闭处理*/
|
||||
DTrainRtnUnlockRoutePartLockP(routeId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6089,6 +6120,11 @@ UINT16 GetReturnId(const UINT16 routeId)
|
||||
UINT8 preRouteState = 0u; /* 之前进路状态 */
|
||||
UINT16 ii = 0u;
|
||||
UINT8 toGo = CI_SUCCESS;
|
||||
UINT8 chRouteState = 0U;
|
||||
UINT8 chRoutePhysicalType = 0U;
|
||||
UINT8 chAllLockSecNoOccupyCheck = 0U;
|
||||
UINT8 chTrainEnterRouteFlag = 0U;
|
||||
|
||||
routeState = GetRouteState(routeId); /*获取进路状态*/
|
||||
preRouteState = GetRoutePreState(routeId);/*获取进路前一状态*/
|
||||
|
||||
@@ -6098,7 +6134,8 @@ UINT16 GetReturnId(const UINT16 routeId)
|
||||
toGo = CI_ERROR;
|
||||
}
|
||||
|
||||
if ((CI_ERROR == RouteAllLockSecNoOccupyCheck(routeId)) && (CI_SUCCESS == toGo))
|
||||
chAllLockSecNoOccupyCheck = RouteAllLockSecNoOccupyCheck(routeId);
|
||||
if ((CI_ERROR == chAllLockSecNoOccupyCheck) && (CI_SUCCESS == toGo))
|
||||
{ /*进路区段不是都空闲*/
|
||||
|
||||
toGo = CI_ERROR;
|
||||
@@ -6119,8 +6156,10 @@ UINT16 GetReturnId(const UINT16 routeId)
|
||||
/*获取所有满足道岔条件的进路ID*/
|
||||
for (ii = 0u; ii < starSigRouteSum; ii++)
|
||||
{
|
||||
chRouteState = GetRouteState(starSigRouteBuf[ii]);
|
||||
chRoutePhysicalType = CheckRoutePhysicalType(starSigRouteBuf[ii]);
|
||||
/*B库改为两条进路,当8编组车占压两条进路时,此时BG2进路解锁需要检查以差值信号机为始端的进路的状态*/
|
||||
if ((ROUTE_STATE_IDLE == GetRouteState(starSigRouteBuf[ii])) &&(CI_SUCCESS == CheckRoutePhysicalType(starSigRouteBuf[ii])))
|
||||
if ((ROUTE_STATE_IDLE == chRouteState) &&(CI_SUCCESS == chRoutePhysicalType))
|
||||
{
|
||||
/*以并置信号机为始端的进路均为空闲且进路包含的区段均为列检库区段,且并置信号机为虚拟信号机,
|
||||
该种算法目前只限制在库线中中途折返场景(SIGNAL_VIRTUAL_YES == GetSignalVirtualAttr(returnSigId))*/
|
||||
@@ -6148,7 +6187,8 @@ UINT16 GetReturnId(const UINT16 routeId)
|
||||
/* 如果是差至,如果列车驶入过进路,同时之前状态必须为接近锁闭开放
|
||||
* 否则不认为是同一列车跨入中途折返处理
|
||||
*/
|
||||
if((ROUTE_STATE_NEAR_OPEN == preRouteState) && (TRAIN_ENTER_ROUTE_FLAG_YES == GetTrainEnterRouteFlag(routeId)))
|
||||
chTrainEnterRouteFlag = GetTrainEnterRouteFlag(routeId);
|
||||
if((ROUTE_STATE_NEAR_OPEN == preRouteState) && (TRAIN_ENTER_ROUTE_FLAG_YES == chTrainEnterRouteFlag))
|
||||
{
|
||||
returnSigId = GetRouteChaZhiSignalId(routeId); /*获取差置信号机ID*/
|
||||
}
|
||||
@@ -6498,103 +6538,134 @@ UINT16 GetRouteBingZhiSignalId(const UINT16 routeId)
|
||||
*/
|
||||
UINT16 GetRouteChaZhiSignalId(const UINT16 routeId)
|
||||
{
|
||||
UINT16 startSigId = 0u; /*始端信号机ID*/
|
||||
UINT16 signalSum = 0u; /*信号机总数*/
|
||||
UINT16 signalId = 0u; /*信号机ID*/
|
||||
UINT16 routeSecSum = 0u; /*进路区段总数*/
|
||||
RoutePhysicalSectionStruct *pRoutePhySecStru = NULL; /*进路区段数据*/
|
||||
UINT16 returnOutSecId = 0u; /*折返信号机外方区段ID*/
|
||||
UINT16 returnInSecId = 0u; /*折返信号机内方区段ID*/
|
||||
UINT16 lockBelongRouteId = 0u; /*锁闭所属进路ID*/
|
||||
UINT16 outSecId = 0u; /*外方区段ID*/
|
||||
UINT16 ii = 0u;
|
||||
UINT16 tmpSigId = 0u;
|
||||
|
||||
UINT16 startSigId = 0U; /*始端信号机ID*/
|
||||
UINT16 signalSum = 0U; /*信号机总数*/
|
||||
UINT16 signalId = 0U; /*信号机ID*/
|
||||
UINT16 routeSecSum = 0U; /*进路区段总数*/
|
||||
RoutePhysicalSectionStruct* pRoutePhySecStru = NULL; /*进路区段数据*/
|
||||
UINT16 returnOutSecId = 0U; /*折返信号机外方区段ID*/
|
||||
UINT16 returnInSecId = 0U; /*折返信号机内方区段ID*/
|
||||
UINT16 lockBelongRouteId = 0U; /*锁闭所属进路ID*/
|
||||
UINT16 outSecId = 0U; /*外方区段ID*/
|
||||
UINT16 ii = 0U;
|
||||
UINT16 tmpSigId = 0U;
|
||||
UINT8 chPhySecType = 0U;
|
||||
UINT16 wTempPhySecId = 0U;
|
||||
UINT16 wReturnSignal = 0U;
|
||||
UINT16 wTempSigId = 0U;
|
||||
UINT8 chPhyLockState = 0U;
|
||||
UINT16 wLockRouteId = 0U;
|
||||
UINT16 wTempSigOutPhyId = 0U;
|
||||
UINT16 wTempSigInPhyId = 0U;
|
||||
|
||||
startSigId = GetRouteStartSignalId(routeId); /*获取进路始端信号机ID*/
|
||||
signalSum = GetSignalCurSum(); /*获取信号机总数*/
|
||||
|
||||
if (PHYSICAL_SEC_TYPE_NOSWITCH == GetPhySecType(GetSignalOutFirstPhySecId(startSigId)))
|
||||
outSecId = GetSignalOutFirstPhySecId(startSigId);
|
||||
chPhySecType = GetPhySecType(outSecId);
|
||||
if (PHYSICAL_SEC_TYPE_NOSWITCH == chPhySecType)
|
||||
{ /*无岔区段*/
|
||||
|
||||
for (ii = 0u; ii < signalSum; ii++)
|
||||
{
|
||||
signalId = GetSignalId(ii); /*获取信号机ID*/
|
||||
wTempPhySecId = GetSignalOutFirstPhySecId(signalId);
|
||||
|
||||
if ((GetSignalOutFirstPhySecId(startSigId) == GetSignalOutFirstPhySecId(signalId)) &&
|
||||
(startSigId != signalId))
|
||||
if ((outSecId == wTempPhySecId) && (startSigId != signalId))
|
||||
{
|
||||
return signalId;
|
||||
wReturnSignal = signalId;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{ /*有岔*/
|
||||
|
||||
outSecId = GetSignalOutFirstPhySecId(startSigId); /*进路始端信号机外方区段ID*/
|
||||
lockBelongRouteId = GetPhySecRLockBelongRouteId(outSecId); /*区段锁闭所属进路ID*/
|
||||
|
||||
routeSecSum = GetRoutePhysicalSectionSum(lockBelongRouteId); /*获取进路区段总数*/
|
||||
pRoutePhySecStru = GetRouteSectionData(lockBelongRouteId); /*获取进路区段数据*/
|
||||
|
||||
if ((0u == routeSecSum) || (NULL == pRoutePhySecStru))
|
||||
if ((0U == routeSecSum) || (NULL == pRoutePhySecStru))
|
||||
{
|
||||
return 0u;
|
||||
}
|
||||
if (routeSecSum == 1u)
|
||||
{
|
||||
/*if ((PHYSICAL_SECTION_LOCK_NORMAL == GetPhySecLockState(pRoutePhySecStru[0].PhysicalSectionId)) &&
|
||||
(lockBelongRouteId == GetPhySecRLockBelongRouteId(pRoutePhySecStru[0].PhysicalSectionId)))*/
|
||||
{
|
||||
returnOutSecId = pRoutePhySecStru[0].PhysicalSectionId;/*折返信号机外方区段ID*/
|
||||
|
||||
tmpSigId = GetRouteStartSignalId(lockBelongRouteId);/*折返信号机内方区段ID*/
|
||||
|
||||
returnInSecId = GetSignalOutFirstPhySecId(tmpSigId);
|
||||
}
|
||||
}
|
||||
else if (routeSecSum > 1u)
|
||||
{
|
||||
for (ii = 0u; ii < routeSecSum; ii++)
|
||||
{
|
||||
|
||||
if ((PHYSICAL_SECTION_LOCK_NORMAL == GetPhySecLockState(pRoutePhySecStru[ii].PhysicalSectionId)) &&
|
||||
(lockBelongRouteId == GetPhySecRLockBelongRouteId(pRoutePhySecStru[ii].PhysicalSectionId)))
|
||||
{ /*本进路第一个锁闭的区段*/
|
||||
|
||||
returnOutSecId = pRoutePhySecStru[ii].PhysicalSectionId; /*折返信号机外方区段ID*/
|
||||
|
||||
if (ii > 0u)
|
||||
{
|
||||
returnInSecId = pRoutePhySecStru[ii-1U].PhysicalSectionId; /*折返信号机内方区段ID*/
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*不处理*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*无操作*/
|
||||
}
|
||||
if ((0u == returnOutSecId) || (0u == returnInSecId))
|
||||
{
|
||||
return 0u;
|
||||
}
|
||||
|
||||
for (ii = 0u; ii < signalSum; ii++)
|
||||
{
|
||||
signalId = GetSignalId(ii); /*获取信号机ID*/
|
||||
|
||||
if ((returnOutSecId == GetSignalOutFirstPhySecId(signalId)) &&
|
||||
(returnInSecId == GetSignalInFirstPhySecId(signalId, routeId)))
|
||||
if (1U == routeSecSum)
|
||||
{
|
||||
return signalId;
|
||||
returnOutSecId = pRoutePhySecStru[0U].PhysicalSectionId;/*折返信号机外方区段ID*/
|
||||
|
||||
tmpSigId = GetRouteStartSignalId(lockBelongRouteId);/*折返信号机内方区段ID*/
|
||||
|
||||
returnInSecId = GetSignalOutFirstPhySecId(tmpSigId);
|
||||
}
|
||||
else if (1U < routeSecSum)
|
||||
{
|
||||
for (ii = 0U; ii < routeSecSum; ii++)
|
||||
{
|
||||
|
||||
chPhyLockState = GetPhySecLockState(pRoutePhySecStru[ii].PhysicalSectionId);
|
||||
wLockRouteId = GetPhySecRLockBelongRouteId(pRoutePhySecStru[ii].PhysicalSectionId);
|
||||
if ((PHYSICAL_SECTION_LOCK_NORMAL == chPhyLockState) &&
|
||||
(lockBelongRouteId == wLockRouteId))
|
||||
{ /*本进路第一个锁闭的区段*/
|
||||
|
||||
returnOutSecId = pRoutePhySecStru[ii].PhysicalSectionId; /*折返信号机外方区段ID*/
|
||||
|
||||
if (0U < ii)
|
||||
{
|
||||
returnInSecId = pRoutePhySecStru[ii - 1U].PhysicalSectionId; /*折返信号机内方区段ID*/
|
||||
}
|
||||
else
|
||||
{
|
||||
wTempSigId = GetRouteStartSignalId(lockBelongRouteId);/*获取锁闭进路的外方第一区段*/
|
||||
returnInSecId = GetSignalOutFirstPhySecId(wTempSigId);
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*无操作*/
|
||||
}
|
||||
}
|
||||
|
||||
if ((0U == returnOutSecId) || (0U == returnInSecId))
|
||||
{
|
||||
/*无操作*/
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ii = 0u; ii < signalSum; ii++)
|
||||
{
|
||||
signalId = GetSignalId(ii); /*获取信号机ID*/
|
||||
wTempSigOutPhyId = GetSignalOutFirstPhySecId(signalId);
|
||||
wTempSigInPhyId = GetSignalInFirstPhySecId(signalId, routeId);
|
||||
if ((returnOutSecId == wTempSigOutPhyId) &&
|
||||
(returnInSecId == wTempSigInPhyId))
|
||||
{
|
||||
wReturnSignal = signalId;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*无操作*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return 0u;
|
||||
return wReturnSignal;
|
||||
}
|
||||
|
||||
|
||||
@@ -7100,23 +7171,187 @@ UINT8 CLDPhySectionFaultUnlockDeal(const UINT16 phySectionId,const UINT16 lockBe
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 取消洗车逻辑管理
|
||||
* 参数说明: void
|
||||
* 功能描述: 取消洗车命令处理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
by hh 20251208
|
||||
*/
|
||||
void CancelWashWorkLogicM(void)
|
||||
{/*取消洗车命令*/
|
||||
UINT16 washMachineId = 0u;
|
||||
washMachineId = GetWashMachineId(0u);
|
||||
#if 0
|
||||
SetCancelWashMachineFlag(washMachineId,CANCEL_WASH_FLAG_SET_YES);
|
||||
#endif
|
||||
if (washMachineId >0u)
|
||||
{/*收到现地取消洗车命令,直接把洗车同意按钮状逻辑态置为抬起*/
|
||||
(void)SetWashmachineXTALogicState(washMachineId,XTA_STATE_RAISE_UP);
|
||||
{
|
||||
UINT16 washMachineId = 0U; /*洗车机ID*/
|
||||
UINT16 wDownWashRelateRouteFirstId = 0U; /*降级模式洗车线控制台表示灯1关联进路ID*/
|
||||
UINT8 chRouteState = 0U;/*进路状态*/
|
||||
UINT8 downWashAllowState = 0U;/*降级模式洗车同意状态(融合)*/
|
||||
UINT8 washMachineButtonType = GetCiFunctionSwitchConfig(FUNC_WDOWNWASH_ZIFUSHI_BUTTON); /*降级模式洗车同意按钮自复式类型*/
|
||||
washMachineId = GetWashMachineId(0U);
|
||||
|
||||
if ((FUNC_SWITCH_ON == washMachineButtonType) && (washMachineId > 0u) && (washMachineId < WASHMACHINE_SUM_MAX))
|
||||
{
|
||||
downWashAllowState = GetDownWashAllowState(washMachineId);
|
||||
|
||||
if (WASH_COL_STATE_ALLOW_YES == downWashAllowState)
|
||||
{
|
||||
wDownWashRelateRouteFirstId = GetDownWashRelateRoute1Id(washMachineId);
|
||||
chRouteState = GetRouteState(wDownWashRelateRouteFirstId);
|
||||
|
||||
if (ROUTE_STATE_IDLE == chRouteState)
|
||||
{
|
||||
/*设置降级模式洗车线和DCC的洗车同意按钮状态无效*/
|
||||
SetDownWashAllowColState(washMachineId, WASH_COL_STATE_ALLOW_NO);
|
||||
/*清除洗车线洗车同意按钮有效周期*/
|
||||
SetDownWashBtVadCycle(washMachineId, 0U);
|
||||
SetDownDccWashAllowColState(washMachineId, WASH_COL_STATE_ALLOW_NO);
|
||||
/*清除DCC洗车同意按钮有效周期*/
|
||||
SetDownWashDccBtVadCycle(washMachineId, 0U);
|
||||
SetDownWashReqState(washMachineId, WASH_REQ_STATE_ALLOW_NO);
|
||||
SetDownWashReqCycle(washMachineId, 0U);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*向ATS报警进路未取消,请先取消进路 0XB5*/
|
||||
SetCiSendCmdBackInfoData(CI_BACK_ROUTE_IDLE_NOT, CI_DEVICE_TYPE_ROUTE, wDownWashRelateRouteFirstId, 0U, 0U);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*向ATS报警"当前洗车机洗车同意按钮未按下,不需要取消 0XB6"*/
|
||||
SetCiSendCmdBackInfoData(CI_BACK_WASH_BUTTON_PRESS_NOT, CI_DEVICE_TYPE_WASHMACHINE, washMachineId, 0U, 0U);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*其他情况不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 请求洗车命令处理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
*by hh 20251208
|
||||
*/
|
||||
void ReqWashWorkLogicM(void)
|
||||
{
|
||||
UINT32 curCycle = Get2oo2CurCycleNum(); /*当前周期号*/
|
||||
UINT8 downWashReqState = WASH_REQ_STATE_ALLOW_NO; /*洗车机洗车请求状态*/
|
||||
UINT16 wMachineId = 0U; /*洗车机ID*/
|
||||
UINT8 washMachineButtonType = GetCiFunctionSwitchConfig(FUNC_WDOWNWASH_ZIFUSHI_BUTTON); /*降级模式洗车同意按钮自复式类型*/
|
||||
wMachineId = GetWashMachineId(0U);
|
||||
|
||||
if((FUNC_SWITCH_ON == washMachineButtonType) && (wMachineId >0u) && (wMachineId < WASHMACHINE_SUM_MAX))
|
||||
{
|
||||
downWashReqState = GetDownWashReqState(wMachineId);
|
||||
if (WASH_REQ_STATE_ALLOW_NO == downWashReqState)
|
||||
{
|
||||
/*设置降级模式洗车请求有效*/
|
||||
SetDownWashReqState(wMachineId, WASH_REQ_STATE_ALLOW_YES);
|
||||
/*设置降级模式洗车请求周期号有效*/
|
||||
SetDownWashReqCycle(wMachineId, curCycle);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*向ATS报警当前洗车机洗车请求有效,请勿重复操作 0xB3*/
|
||||
SetCiSendCmdBackInfoData(CI_BACK_WASH_APPLY_NOT, CI_DEVICE_TYPE_WASHMACHINE, wMachineId, 0U, 0U);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 反向通过请求命令处理
|
||||
* 参数说明:无
|
||||
* 返回值 : void
|
||||
*by hh 20251208
|
||||
*/
|
||||
void ReqPassWashWorkLogicM(void)
|
||||
{
|
||||
UINT32 curCycle = Get2oo2CurCycleNum(); /*当前周期号*/
|
||||
UINT8 downWashPassReqState = WASH_REQ_STATE_ALLOW_NO; /*反向洗车请求状态*/
|
||||
UINT16 wMachineId = 0U; /*洗车机ID*/
|
||||
UINT8 washMachineButtonType = GetCiFunctionSwitchConfig(FUNC_WDOWNWASH_ZIFUSHI_BUTTON); /*降级模式洗车同意按钮自复式类型*/
|
||||
wMachineId = GetWashMachineId(0U);
|
||||
|
||||
if ((FUNC_SWITCH_ON == washMachineButtonType) && (wMachineId > 0u) && (wMachineId < WASHMACHINE_SUM_MAX))
|
||||
{
|
||||
downWashPassReqState = GetDownWashPassReqState(wMachineId);
|
||||
|
||||
if (WASH_REQ_STATE_ALLOW_NO == downWashPassReqState)
|
||||
{
|
||||
/*设置降级模式反向洗车请求有效*/
|
||||
SetDownWashPassReqState(wMachineId, WASH_REQ_STATE_ALLOW_YES);
|
||||
/*设置降级模式反向洗车请求周期号有效*/
|
||||
SetDownWashPassReqCycle(wMachineId, curCycle);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetCiSendCmdBackInfoData(CI_BACK_WASH_PASSAPPLY_NOT, CI_DEVICE_TYPE_WASHMACHINE, wMachineId, 0U, 0U);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 取消反向通过请求命令处理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
*by hh 20251208
|
||||
*/
|
||||
void CancelPassWashWorkLogicM(void)
|
||||
{
|
||||
UINT16 wDownWashRelateRouteSecId = 0U; /*降级模式洗车线控制台表示灯2关联进路ID*/
|
||||
UINT8 chRouteState = 0U;/*进路状态*/
|
||||
UINT8 downWashAllowPassState = 0U;/*降级模式反向通过洗车同意状态(融合)*/
|
||||
UINT16 wMachineId = 0U; /*洗车机ID*/
|
||||
UINT8 washMachineButtonType = GetCiFunctionSwitchConfig(FUNC_WDOWNWASH_ZIFUSHI_BUTTON); /*降级模式洗车同意按钮自复式类型*/
|
||||
wMachineId = GetWashMachineId(0U);
|
||||
if ((FUNC_SWITCH_ON == washMachineButtonType) && (wMachineId > 0u && wMachineId < WASHMACHINE_SUM_MAX))
|
||||
{
|
||||
downWashAllowPassState = GetDownWashAllowPassState(wMachineId);
|
||||
|
||||
if (WASH_COL_STATE_ALLOW_YES == downWashAllowPassState)
|
||||
{
|
||||
wDownWashRelateRouteSecId = GetDownWashRelateRoute2Id(wMachineId);
|
||||
chRouteState = GetRouteState(wDownWashRelateRouteSecId);
|
||||
|
||||
if (ROUTE_STATE_IDLE == chRouteState)
|
||||
{
|
||||
/*设置降级模式洗车线和DCC的反向洗车同意按钮状态无效*/
|
||||
SetDownWashAllowPassColState(wMachineId, WASH_COL_STATE_ALLOW_NO);
|
||||
/*清除洗车线反向通过同意按钮有效周期*/
|
||||
SetDownWashBtVadPassCycle(wMachineId, 0U);
|
||||
SetDownDccWashAllowPassColState(wMachineId, WASH_COL_STATE_ALLOW_NO);
|
||||
/*清除DCC反向通过同意按钮有效周期*/
|
||||
SetDownWashDccBtVadPassCycle(wMachineId, 0U);
|
||||
SetDownWashPassReqState(wMachineId, WASH_REQ_STATE_ALLOW_NO);
|
||||
SetDownWashPassReqCycle(wMachineId, 0U);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*向ATS报警进路未取消,请先取消进路 0XB5*/
|
||||
SetCiSendCmdBackInfoData(CI_BACK_ROUTE_IDLE_NOT, CI_DEVICE_TYPE_ROUTE, wDownWashRelateRouteSecId, 0U, 0U);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/*向ATS报警"洗车机XXX反向通过同意按钮未按下,不需要取消 0XB7"*/
|
||||
SetCiSendCmdBackInfoData(CI_BACK_WASH_PASSBUTTON_PRESS_NOT, CI_DEVICE_TYPE_WASHMACHINE, wMachineId, 0U, 0U);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*其他情况不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 进路调车同意逻辑管理
|
||||
* 参数说明: void
|
||||
|
||||
@@ -766,12 +766,37 @@ UINT16 GetReturnId(const UINT16 routeId);
|
||||
void DTrainRtnUnlockRemoteRAllLockP(const UINT16 routeId);
|
||||
|
||||
/*
|
||||
* 功能描述: 取消洗车逻辑管理
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
* 功能描述: 取消洗车命令处理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
by hh 20251208
|
||||
*/
|
||||
void CancelWashWorkLogicM(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 请求洗车命令处理
|
||||
* 参数说明: 无
|
||||
* 返回值 : void
|
||||
*by hh 20251208
|
||||
*/
|
||||
void ReqWashWorkLogicM(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 反向通过请求命令处理
|
||||
* 参数说明:无
|
||||
* 返回值 : void
|
||||
*by hh 20251208
|
||||
*/
|
||||
void ReqPassWashWorkLogicM(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 取消反向通过请求洗车逻辑管理
|
||||
* 参数说明: const UINT16 wMachineId 洗车机ID
|
||||
* 返回值 : void
|
||||
*by hh 20251208
|
||||
*/
|
||||
void CancelPassWashWorkLogicM(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 进路调车同意逻辑管理
|
||||
* 参数说明: void
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2919,6 +2919,127 @@ UINT8 AutoReturnRouteCouplinkCheck(const UINT16 wAutoRouteId, const UINT8 chFunc
|
||||
* by lyj 20250929
|
||||
*/
|
||||
UINT8 AllAutoReturnRCouplinkCheck(const UINT16 wAutoRouteId, const UINT8 chFunctionId);
|
||||
/*
|
||||
* 功能描述: 区段征用、区段防护道岔区段征用、区段内道岔道岔征用检查、区段内防护道岔道岔征用
|
||||
* 参数说明:const UINT16 axisSecId 计轴区段ID
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
UINT8 JumpPhySectionUseCheck(const UINT16 axisSecId);
|
||||
/*
|
||||
* 功能描述:区段防护道岔区段、防护道岔征用检查
|
||||
* 参数说明:const UINT16 axisSecId 计轴区段ID
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
UINT8 JumpPhySectionPortectUseCheck(const UINT16 axisSecId);
|
||||
/*
|
||||
* 功能描述:逻辑区段防护道岔区段征用、道岔征用检查
|
||||
* 参数说明:const UINT16 axisSecId 计轴区段ID
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
UINT8 JumpLogicSecPortectUseCheck(const UINT16 wLgcId);
|
||||
/*
|
||||
* 功能描述:计轴区段所在道岔道岔征用检查
|
||||
* 参数说明:const UINT16 axisSecId 计轴区段ID
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
UINT8 JumpPhySectionSwitchUseCheck(const UINT16 axisSecId);
|
||||
/*
|
||||
* 功能描述:设置跳跃锁闭防护道岔区段征用状态
|
||||
* 参数说明:const UINT16 axisSecId 计轴区段ID
|
||||
* const UINT8 state 状态
|
||||
* 返回值 : void
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
void SetJumpPhySectionPortectSecUse(const UINT16 axisSecId, const UINT8 state);
|
||||
/*
|
||||
* 功能描述:设置逻辑区段的防护道岔区段征用
|
||||
* 参数说明:const UINT16 axisSecId 计轴区段ID
|
||||
* const UINT8 state 状态
|
||||
* 返回值 : void
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
void SetJumpLogicSecPortectUse(const UINT16 wLgcId, const UINT8 state);
|
||||
/*
|
||||
* 功能描述: 检查计轴区段跳跃锁闭是否有防护道岔驱动超时
|
||||
* 参数说明: const UINT16 routeId, 进路ID
|
||||
* 返回值 : UINT8
|
||||
CI_SUCCESS:计轴区段防护道岔无道岔驱动超时
|
||||
CI_ERROR:计轴区段防护道岔驱动超时
|
||||
add by mpt 20260331
|
||||
*/
|
||||
UINT8 ChekJumpLockProtectSwitDrivOvtmStat(const UINT16 axisSecId);
|
||||
/*
|
||||
* 功能描述: 计轴区段道岔封锁状态检查
|
||||
* 参数说明: UINT16 const axisSecId, 计轴区段编号
|
||||
* UINT16 *pDevId, 设备Id(返回)
|
||||
* UINT8 *pDevState, 设备状态(返回)
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* Add by mpt 20260331
|
||||
*/
|
||||
UINT8 AxisSecProtSwitchFLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState);
|
||||
/*
|
||||
* 功能描述: 计轴区段的防护道岔位置和动作有效性检查
|
||||
* 参数说明: UINT16 const axisSecId, 计轴区段编号
|
||||
* UINT16 *pDevId, 设备Id(返回)
|
||||
* UINT8 *pDevState, 设备状态(返回)
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
UINT8 AxisSecPorteSwitchPosMoveCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState, UINT8 funcId, UINT8 sendLevel);
|
||||
/*
|
||||
* 功能描述: 计轴区段所有防护道岔位置正确检查
|
||||
* 参数说明: UINT16 const axisSecId, 计轴区段编号
|
||||
* UINT16 *pDevId, 设备Id(返回)
|
||||
* UINT8 *pDevState, 设备状态(返回)
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* add mpt 20260331
|
||||
*/
|
||||
UINT8 AxisSecAllProtSwitchPosCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState);
|
||||
/*
|
||||
* 功能描述: 设置计轴区段关联防护道岔防护锁闭状态
|
||||
* 参数说明: const UINT16 axisSecId, 计轴区段ID
|
||||
* const UINT8 lockCommand, 锁闭状态
|
||||
* 返回值 : void
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
void SetAxisRelProSwitchLockSta(const UINT16 axisSecId, const UINT8 lockCommand);
|
||||
/*
|
||||
* 功能描述: 计轴区段关联防护道岔防护锁闭检查
|
||||
* 参数说明: UINT16 const routeId, 计轴区段号
|
||||
* UINT16 *pDevId, 设备Id(返回)
|
||||
* UINT8 *pDevState, 设备状态(返回)
|
||||
* 返回值 : CI_ERROR
|
||||
* CI_SUCCESS
|
||||
* add mpt 20260331
|
||||
*/
|
||||
UINT8 AxisRelatedProSwitchLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState);
|
||||
/*
|
||||
* 功能描述: 设置逻辑区段关联防护道岔防护锁闭状态
|
||||
* 参数说明: const UINT16 axisSecId, 计轴区段ID
|
||||
* const UINT8 lockCommand, 锁闭状态
|
||||
* 返回值 : void
|
||||
* add by mpt 20260331
|
||||
*/
|
||||
void SetLogSecRelProSwitchLockSta(const UINT16 wLgcId, const UINT8 lockCommand);
|
||||
/*
|
||||
* 功能描述:计轴区段所有道岔是否全部征用
|
||||
* 参数说明:const UINT16 axisSecId 计轴区段ID
|
||||
* 返回值 : CI_ERROR 未全部征用
|
||||
* CI_SUCCESS 全部征用
|
||||
* add by mpt 20260403
|
||||
*/
|
||||
UINT8 JumpPhySecAllUseCheck(const UINT16 axisSecId);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -692,11 +692,12 @@ void RouteLgcSecResReleaseProcess(const UINT16 wRouteId);
|
||||
/*
|
||||
* 功能描述: 检查保护区段人工解锁是否可执行
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* const UINT16 wRouteId 进路ID
|
||||
* 返回值 : CI_SUCCESS:成功
|
||||
CI_ERROR:失败
|
||||
* edit cgh 20250928
|
||||
*/
|
||||
UINT8 CheckOverlapLaborUnlock(const UINT16 overlapId);
|
||||
UINT8 CheckOverlapLaborUnlock(const UINT16 overlapId, const UINT16 wRouteId);
|
||||
/*
|
||||
* 功能描述: 计算保护区段解锁倒计时开始周期
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
@@ -840,6 +841,13 @@ UINT8 SetRouteCouplinkProcess(const UINT16 wRouteId, const UINT8 functionId, con
|
||||
* Create: 20250919
|
||||
*/
|
||||
void UpdateRouteCouplinkFlag(const UINT16 wRouteId);
|
||||
/*
|
||||
* 功能描述: 联络线接车进路解锁处理
|
||||
* 参数说明: const UINT16 wRouteId 进路ID
|
||||
* 返回值 : 无
|
||||
* Create: lyj 20260603
|
||||
*/
|
||||
void ConnectRouteReleaseProc(const UINT16 wRouteId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -1598,12 +1598,14 @@ UINT8 SetNonRouteP(UINT8 nonRouteId)
|
||||
reResult = NonRouteRelProSwiPosMovValCheck(nonRouteId,functionId,sendLevel);
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*修复缺陷YF0083-2105---LYJ--20260128*/
|
||||
if (CI_SUCCESS == reResult)
|
||||
{/*侵限区段侵限条件不满足检查*/
|
||||
reResult = NonRouteIntruSecVainCheck(nonRouteId,functionId,sendLevel);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
return reResult;
|
||||
}
|
||||
@@ -1721,14 +1723,6 @@ UINT8 LockNonRouteP(UINT8 nonRouteId)
|
||||
|
||||
reResult = NonRouteRelProSwiPosMovValCheck(nonRouteId,functionId,sendLevel);
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == reResult)
|
||||
{/*侵限区段侵限条件不满足检查*/
|
||||
reResult = NonRouteIntruSecVainCheck(nonRouteId,functionId,sendLevel);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return reResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -118,6 +118,8 @@
|
||||
#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_PHYSECTION_INTRUSION ((UINT8)0x5a) /*定义物理区段侵限状态码位(CI->ZC)*/
|
||||
#define MASK_TYPE_PHYSECTION_ATS_FLOCK ((UINT8)0x5b) /*定义物理区段由ATS封锁状态码位(CI->ZC)*/
|
||||
#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使用)*/
|
||||
@@ -139,9 +141,10 @@
|
||||
#define MASK_TYPE_DOWNWARD_DIRECTION ((UINT8)0x94) /*定义逻辑区段下行锁闭码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_PROTECTLOCK ((UINT8)0x99) /*定义逻辑区段防护锁闭码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_JUMPLOCK ((UINT8)0x9A) /*定义逻辑区段跳跃锁闭码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_ARB ((UINT8)0x9B) /*定义逻辑区段ARB状态码位*/
|
||||
#define MASK_TYPE_LOGSEC_CBTC_ARB ((UINT8)0x9B) /*定义逻辑区段CBTC_ARB状态码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_SPKS_FLOCK ((UINT8)0x9C) /*定义逻辑区段SPKS封锁状态码位*/
|
||||
#define MASK_TYPE_LOGICSECTION_EMERG_XIANSU ((UINT8)0x9D) /*定义逻辑区段紧急临时限速码位*/
|
||||
#define MASK_TYPE_LOGSEC_PB_TACS_ARB ((UINT8)0xB3) /*定义逻辑区段PB_TACS_ARB状态码位*/
|
||||
|
||||
|
||||
/*保护区段相关码位*/
|
||||
@@ -184,7 +187,9 @@
|
||||
#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_CUT_ESP_STATE ((UINT8)0xA4) /*定义紧急关闭旁路按钮激活状态码位*/
|
||||
#define MASK_TYPE_ONEPLAT_ESP_STATE ((UINT8)0xAB) /*定义紧急关闭按钮同站紧急按钮激活状态码位*/
|
||||
#define MASK_TYPE_ONEPLAT_CUT_ESP_STATE ((UINT8)0xAC) /*定义紧急关闭按钮同站旁路按钮激活状态码位*/
|
||||
|
||||
/*站台安全门相关码位*/
|
||||
#define MASK_TYPE_PSD_STATE ((UINT8)0x60) /*定义站台安全门状态码位-ZC,LEU用*/
|
||||
@@ -202,8 +207,11 @@
|
||||
#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_EXCEPT ((UINT8)0xA5) /*定义站台安全门异常码位 CI-ATS、CI-ZC*/
|
||||
#define MASK_TYPE_PSD_JXTCPANGLU_FAULT ((UINT8)0xAA) /*定义间隙探测旁路按钮故障码位*/
|
||||
#define MASK_TYPE_PSD_IBP_STATE ((UINT8)0xAD) /*定义IBP盘按钮状态码位*/
|
||||
#define MASK_TYPE_PSD_IBP_FAULT ((UINT8)0xAE) /*定义IBP盘按钮故障码位*/
|
||||
#define MASK_TYPE_PSD_JXTC_STATE ((UINT8)0xAF) /*定义间隙探测状态码位*/
|
||||
/*车库门相关码位*/
|
||||
#define MASK_TYPE_GARAGEDOOR_OPEN_STATE ((UINT8)0x62) /*定义车库门开门状态码位(CI->ATS)*/
|
||||
#define MASK_TYPE_GARAGEDOOR_CLOSE_STATE ((UINT8)0x63) /*定义车库门关门状态码位(CI->ATS)*/
|
||||
@@ -235,6 +243,10 @@
|
||||
/*洗车机相关码位*/
|
||||
#define MASK_TYPE_WASHMACHINE_READYSTATE ((UINT8)0x74) /*定义洗车机就绪状态码位*/
|
||||
#define MASK_TYPE_WASHMACHINE_WORKMODE ((UINT8)0x9E) /*定义洗车机工作模式码位*/
|
||||
#define MASK_TYPE_WASHMACHINE_ZNTBUTTN ((UINT8)0x9F) /*定义CI-ATS洗车机降级模式洗车线洗车同意按钮粘连码位,0有粘连,1为无粘连*/
|
||||
#define MASK_TYPE_DCCWASHACHINE_ZNTBUTTN ((UINT8)0xb0) /*定义CI-ATS洗车机降级模式DCC洗车同意按钮粘连码位,0有粘连,1为无粘连*/
|
||||
#define MASK_TYPE_PASSWASHMACHINE_ZNTBUTTN ((UINT8)0xb1) /*定义CI-ATS洗车机降级模式洗车线洗车反向通过同意按钮粘连码位,0有粘连,1为无粘连*/
|
||||
#define MASK_TYPE_DCCPASSWASHMACHINE_ZNTBUTTN ((UINT8)0xb2) /*定义CI-ATS洗车机降级模式DCC洗车反向通过同意按钮粘连码位,0有粘连,1为无粘连*/
|
||||
|
||||
/*防淹门相关码位*/
|
||||
|
||||
|
||||
@@ -365,6 +365,24 @@ UINT16 GetSCXColAgreeTryRelayIdById(UINT8 nonRouteId)
|
||||
return collAgreeTryTrainRelayId;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试车线采集的轨旁试车指示器继电器ID
|
||||
* 参数说明: UINT8 nonRouteId 非进路id
|
||||
* 返回值 : 试车线采集的轨旁试车指示器继电器ID
|
||||
*/
|
||||
UINT16 GetWaysideTryTrainIndRelayId(UINT8 nonRouteId)
|
||||
{
|
||||
UINT16 collAgreeTryTrainRelayId = 0u;
|
||||
|
||||
NonRouteConfigDataStruct* pNonRouteConfig = GetNonRouteConfigDataPtrById(nonRouteId);
|
||||
if (pNonRouteConfig != NULL)
|
||||
{
|
||||
collAgreeTryTrainRelayId = pNonRouteConfig->ColWaysideTryTrainIndRelayId; /* 试车线采集的轨旁试车指示器继电器ID */
|
||||
}
|
||||
|
||||
return collAgreeTryTrainRelayId;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:根据道岔id查找对应的非进路
|
||||
* 参数说明:swId-道岔id
|
||||
|
||||
@@ -82,6 +82,7 @@ typedef struct S_NonRouteConfigDataStruct
|
||||
UINT16 AgreeTryTrainRelayId; /*同意试车继电器ID (配置字段)*/
|
||||
UINT16 DrvApplyTryTrainRelayId; /* 试车线驱动的申请试车继电器ID */
|
||||
UINT16 ColAgreeTryTrainRelayId; /* 试车线采集的同意试车继电器ID */
|
||||
UINT16 ColWaysideTryTrainIndRelayId; /* 试车线采集的轨旁试车指示器继电器ID */
|
||||
} NonRouteConfigDataStruct;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
@@ -268,6 +269,14 @@ UINT8 GetnonRouteIdbelongVirCIid(UINT8 nonRouteId);
|
||||
*/
|
||||
UINT8 GetnonRouteIdbelongCIid(UINT8 nonRouteId);
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 获取试车线采集的轨旁试车指示器继电器ID
|
||||
* 参数说明: UINT8 nonRouteId 非进路id
|
||||
* 返回值 : 试车线采集的轨旁试车指示器继电器ID
|
||||
*/
|
||||
UINT16 GetWaysideTryTrainIndRelayId(UINT8 nonRouteId);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
|
||||
/*·Ç½øÂ·µ÷³µ×´Ì¬*/
|
||||
#define NONROUTE_STATE_INVALID ((UINT8)0x0) /*·Ç½øÂ·×´Ì¬ÎÞЧ*/
|
||||
#define NONROUTE_STATE_INVALID ((UINT8)0x0) /*·Ç½øÂ·×´Ì¬ÎÞЧ*/
|
||||
#define NONROUTE_STATE_IDLE ((UINT8)0x01) /*·Ç½øÂ·¿ÕÏÐ*/
|
||||
#define NONROUTE_STATE_XUANPAI ((UINT8)0x02) /*·Ç½øÂ·Ñ¡ÅÅ*/
|
||||
#define NONROUTE_STATE_LOCK ((UINT8)0x04) /*·Ç½øÂ·Ëø±Õ*/
|
||||
|
||||
@@ -97,7 +97,7 @@ void SetOverlapRelateProtSwLockSta(const UINT16 overlapId, const UINT8 lockComma
|
||||
overlapProtectSwitchSum = GetOverlapRelatedProtSwitSum(overlapId); /*获取防护道岔数目*/
|
||||
overlapProtectSwitchStru = GetOverlapRelatedProtSwitStru(overlapId); /*获取防护道岔数据*/
|
||||
|
||||
if (0u == overlapProtectSwitchSum)
|
||||
if ((0U == overlapProtectSwitchSum) || (NULL == overlapProtectSwitchStru))
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
@@ -842,13 +842,13 @@ UINT8 GetOverlapFromSetRouteCmdFlag(const UINT16 overlapId)
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 清保护区段人工或ATS锁闭命令标志
|
||||
* 功能描述: 清除保护区段个别标志
|
||||
* 参数说明: const UINT16 routeId, 进路ID
|
||||
* const UINT16 overlapId, 保护区段ID
|
||||
* 返回值:无
|
||||
* by cgh 20240920
|
||||
* by cgh 20260106
|
||||
*/
|
||||
void CleanOverlapAtsOrlaborLockFlag(const UINT16 routeId, const UINT16 overlapId)
|
||||
void CleanOverlapSpecificFlag(const UINT16 routeId, const UINT16 overlapId)
|
||||
{
|
||||
UINT16 overlapRouteSum = 0U; /*保护区段进路数量*/
|
||||
UINT16* pOverlapRouteBuf = NULL; /*保护区段进路数据*/
|
||||
@@ -856,6 +856,8 @@ void CleanOverlapAtsOrlaborLockFlag(const UINT16 routeId, const UINT16 overlapId
|
||||
UINT16 routeLastPhyId = 0U; /*进路最后一个物理区段ID*/
|
||||
UINT8 routeLastPhyState = 0U; /*进路最后一个物理区段融合占用状态*/
|
||||
UINT16 ii = 0U; /*游标*/
|
||||
UINT32 dwUnlockStartCycNum = 0U; /*保护区段解锁起始周期号*/
|
||||
UINT32 dwAtsLastTimeLockCyc = 0U; /*最近一次ATS锁闭保护区段周期号*/
|
||||
|
||||
overlapRouteSum = GetOverlapRouteIdSum(overlapId); /*获取保护区段进路数量*/
|
||||
pOverlapRouteBuf = GetOverlapRouteIdBuf(overlapId); /*获取保护区段进路数据*/
|
||||
@@ -876,6 +878,32 @@ void CleanOverlapAtsOrlaborLockFlag(const UINT16 routeId, const UINT16 overlapId
|
||||
{
|
||||
SetOverlapAtsOrlaborLockCmdFlag(overlapId, LOCK_OVERLAP_CMD_NO);
|
||||
}
|
||||
|
||||
dwUnlockStartCycNum = GetOverlapUnlockStartCycNum(overlapId);
|
||||
dwAtsLastTimeLockCyc = GetOverlapAtsLastTimeLockCyc(overlapId);
|
||||
|
||||
if (0U == dwUnlockStartCycNum)
|
||||
{
|
||||
/*说明是人工解锁,人工解锁就不保留之前的命令了*/
|
||||
SetRouteAtsExpLkOverlapId(routeId, 0U);
|
||||
SetOverlapFromSetRouteCmdFlag(overlapId, OVERLAP_ROUTE_FLAG_NO);/*清除保护区段建立命令由进路命令连带下发标志*/
|
||||
}
|
||||
else
|
||||
{
|
||||
atsExpLockOverlapId = GetRouteAtsExpLkOverlapId(routeId);
|
||||
|
||||
if ((dwAtsLastTimeLockCyc <= dwUnlockStartCycNum) && (0U < dwAtsLastTimeLockCyc)
|
||||
&& (overlapId == atsExpLockOverlapId))
|
||||
{
|
||||
/*ATS最后一次下发锁闭保护区段命令时保护区段未自动解锁*/
|
||||
SetRouteAtsExpLkOverlapId(routeId, 0U);
|
||||
SetOverlapFromSetRouteCmdFlag(overlapId, OVERLAP_ROUTE_FLAG_NO);/*清除保护区段建立命令由进路命令连带下发标志*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1151,4 +1179,108 @@ void SetOverlapBelPhyStopSteadyFlag(const UINT16 wOverlapId, const UINT8 chSetFl
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/* 功能描述:清除期望保护区段关联所有进路的所有保护区段人工锁闭过标志
|
||||
* 参数说明: const UINT16 expLkOverlapId, ATS或现地发送的期望锁闭区段ID
|
||||
* 返回值 : 无
|
||||
* by cgh 20260106
|
||||
*/
|
||||
void ClearPreLoaborUnlockState(const UINT16 expLkOverlapId)
|
||||
{
|
||||
UINT8 overlapSum = 0U;
|
||||
UINT16* overlapIdBuf = NULL;
|
||||
UINT16 ii = 0U;
|
||||
UINT8 jj = 0U;
|
||||
UINT8 localCiId = 0U; /*本联锁集中区ID*/
|
||||
UINT8 OverlapBelongCiId = 0U;
|
||||
UINT16 overlapRouteSum = 0U;/*保护区段关联进路数量*/
|
||||
UINT16* overlapRouteBuf = NULL;/*保护区段关联进路数据*/
|
||||
|
||||
overlapRouteSum = GetOverlapRouteIdSum(expLkOverlapId);/*获取保护区段关联进路总数*/
|
||||
overlapRouteBuf = GetOverlapRouteIdBuf(expLkOverlapId);/*获取进路数据*/
|
||||
localCiId = GetSystemParaLocalCiId(); /*获取本机联锁ID*/
|
||||
|
||||
if ((0U != overlapRouteSum) && (NULL != overlapRouteBuf))
|
||||
{
|
||||
for (ii = 0U; ii < overlapRouteSum; ii++)
|
||||
{
|
||||
overlapSum = GetRouteOverlapSum(overlapRouteBuf[ii]); /*获取Overlap总数*/
|
||||
overlapIdBuf = GetRouteOverlapIdBuf(overlapRouteBuf[ii]); /*获取Overlap ID BUF*/
|
||||
|
||||
if ((0U == overlapSum) || (NULL == overlapIdBuf))
|
||||
{
|
||||
;/*数据异常*/
|
||||
}
|
||||
else
|
||||
{
|
||||
for (jj = 0U; jj < overlapSum; jj++)
|
||||
{
|
||||
OverlapBelongCiId = GetOverlapBelongCiId(overlapIdBuf[jj]);
|
||||
if (OverlapBelongCiId == localCiId)
|
||||
{
|
||||
SetOverlapPreLoaborUnlockState(overlapIdBuf[jj], PRO_PRE_LABOR_UNLOCK_STATE_NO);
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*相邻联锁的不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID保护区段最近一次ATS锁闭保护区段周期号
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* 返回值 : 最近一次ATS锁闭保护区段周期号
|
||||
* BY CGH 20260106
|
||||
*/
|
||||
UINT32 GetOverlapAtsLastTimeLockCyc(const UINT16 overlapId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT32 reVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetOverlapConfigBufIndex(overlapId); /*获取数组下标*/
|
||||
|
||||
if (bufIndex < OVERLAP_SUM_MAX)
|
||||
{
|
||||
reVal = OverlapDataStru[bufIndex].dwAtsLastTimeLockCyc;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return reVal;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID保护区段最近一次ATS锁闭保护区段周期号
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* const UINT32 dwAtsLastTimeLockCyc, 最近一次ATS锁闭保护区段周期号
|
||||
* 返回值 void
|
||||
* by cgh 20250928
|
||||
*/
|
||||
void SetOverlapAtsLastTimeLockCyc(const UINT16 overlapId, const UINT32 dwAtsLastTimeLockCyc)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
|
||||
bufIndex = GetOverlapConfigBufIndex(overlapId); /*获取数组下标*/
|
||||
|
||||
if (bufIndex < OVERLAP_SUM_MAX)
|
||||
{
|
||||
OverlapDataStru[bufIndex].dwAtsLastTimeLockCyc = dwAtsLastTimeLockCyc; /*设置解锁起始周期号*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -46,6 +46,7 @@ typedef struct S_OverlapDataStruct
|
||||
UINT8 cProSwitchCheckResultFlag; /*跨控区防护道岔检查结果标志(0xFF:默认值,0x55:失败,0xAA:成功)*/
|
||||
UINT8 cProSwitchCheckStartFlag; /*跨控区防护道岔检查开始标志(0x55:检查开始,0xAA:检查停止)*/
|
||||
UINT8 chPreLaborUnlockState; /*之前人工解锁状态*/
|
||||
UINT32 dwAtsLastTimeLockCyc; /*最近一次ATS锁闭保护区段周期号*/
|
||||
} OverlapDataStruct;
|
||||
|
||||
/*保护区段数据结构体*/
|
||||
@@ -89,11 +90,11 @@ OverlapDataStructCC* GetOverlapDataCC(void);
|
||||
UINT16 GetOverlapBelongRouteId(const UINT16 overlapId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID保护区段组解锁起始周期号
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* 功能描述: 设置指定ID保护区段所属进路
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* const UINT16 belongRouteId, 所属进路号
|
||||
* 返回值 : 无
|
||||
*
|
||||
*
|
||||
*/
|
||||
void SetOverlapBelongRouteId(const UINT16 overlapId, const UINT16 belongRouteId);
|
||||
|
||||
@@ -335,13 +336,13 @@ void SetOverlapFromSetRouteCmdFlag(const UINT16 overlapId, const UINT8 setFlag);
|
||||
UINT8 GetOverlapFromSetRouteCmdFlag(const UINT16 overlapId);
|
||||
|
||||
/*
|
||||
* 功能描述: 清保护区段人工或ATS锁闭命令标志
|
||||
* 功能描述: 清除保护区段个别标志
|
||||
* 参数说明: const UINT16 routeId, 进路ID
|
||||
* const UINT16 overlapId, 保护区段ID
|
||||
* 返回值:无
|
||||
* by cgh 20240920
|
||||
* by cgh 20260106
|
||||
*/
|
||||
void CleanOverlapAtsOrlaborLockFlag(const UINT16 routeId, const UINT16 overlapId);
|
||||
void CleanOverlapSpecificFlag(const UINT16 routeId, const UINT16 overlapId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置保护区段防护道岔检查结果标志
|
||||
@@ -415,6 +416,30 @@ UINT8 OverlapLockRouteCheck(const UINT16 wOverlapId);
|
||||
*/
|
||||
void SetOverlapBelPhyStopSteadyFlag(const UINT16 wOverlapId, const UINT8 chSetFlag);
|
||||
|
||||
/* 功能描述:清除期望保护区段关联所有进路的所有保护区段人工锁闭过标志
|
||||
* 参数说明: const UINT16 expLkOverlapId, ATS或现地发送的期望锁闭区段ID
|
||||
* 返回值 : 无
|
||||
* by cgh 20260106
|
||||
*/
|
||||
void ClearPreLoaborUnlockState(const UINT16 expLkOverlapId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID保护区段最近一次ATS锁闭保护区段周期号
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* 返回值 : 最近一次ATS锁闭保护区段周期号
|
||||
* BY CGH 20260106
|
||||
*/
|
||||
UINT32 GetOverlapAtsLastTimeLockCyc(const UINT16 overlapId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID保护区段最近一次ATS锁闭保护区段周期号
|
||||
* 参数说明: const UINT16 overlapId, 保护区段ID
|
||||
* const UINT32 dwAtsLastTimeLockCyc, 最近一次ATS锁闭保护区段周期号
|
||||
* 返回值 void
|
||||
* by cgh 20250928
|
||||
*/
|
||||
void SetOverlapAtsLastTimeLockCyc(const UINT16 overlapId, const UINT32 dwAtsLastTimeLockCyc);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1159,3 +1159,75 @@ UINT8 GetPsdIncloudeEsbNum(const UINT16 psdId)
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门IBP盘发车按钮继电器ID
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: IBP盘发车按钮继电器ID
|
||||
*/
|
||||
UINT16 GetIbpConfmRelayId(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT16 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdConfigDataStru[bufIndex].wIbpRelayId;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 设置倒切板卡
|
||||
* 参数说明: const UINT16 PsdId, 屏蔽门ID,UINT16 wBoardId 板卡Id
|
||||
* 返回值 : CI_SUCCESS CI_ERROR
|
||||
*/
|
||||
UINT8 SetPsdRelateReverseRelay(const UINT16 PsdId, UINT16 wBoardId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 chRet = CI_ERROR;
|
||||
bufIndex = GetPsdConfigBufIndex(PsdId); /*获取数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
PsdConfigDataStru[bufIndex].wReverseBoardId = wBoardId;
|
||||
chRet = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
return chRet;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取倒切板卡
|
||||
* 参数说明: const UINT16 wPsdId, 屏蔽门ID
|
||||
* 返回值 : UINT16_MAX: 获取数据失败
|
||||
* 0: 无倒切
|
||||
* [1,65534]板卡ID
|
||||
*/
|
||||
UINT16 GetPsdRelateReverseBoardId(const UINT16 wPsdId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT16 retVal = UINT16_MAX;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(wPsdId); /*获取数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdConfigDataStru[bufIndex].wReverseBoardId;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = UINT16_MAX;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ typedef struct S_PsdConfigDataStruct
|
||||
UINT16 OpenFourEditGroupDriveRelayId; /*打开四编组屏蔽门的驱动继电器(配置字段)*/
|
||||
UINT16 OpenSixEditGroupDriveRelayId; /*打开六编组屏蔽门的驱动继电器(配置字段)*/
|
||||
UINT16 OpenEightEditGroupDriveRelayId; /*打开八编组屏蔽门的驱动继电器(配置字段)*/
|
||||
UINT16 DoorStateRelayId; /*门开采集继电器ID (配置字段)*/
|
||||
UINT16 DoorStateRelayId; /*门开采集继电器ID (配置字段)*/
|
||||
UINT16 wDoorStateRelayId2; /*门开采集继电器ID2(配置字段) 迪斯尼*/
|
||||
UINT16 wRelayDoorButtonId; /*屏蔽门再关门按钮继电器*/
|
||||
UINT16 doorReopenRelayId; /*站台门再次开门继电器*/
|
||||
@@ -72,6 +72,8 @@ typedef struct S_PsdConfigDataStruct
|
||||
UINT8 chPsdControlType; /*屏蔽门控制类型*/
|
||||
UINT16 IncloudeEsbIdBuf[PSD_INCLUDE_ESB_NUM]; /*屏蔽门包含ESB ID*/
|
||||
UINT8 IncloudeEsbNum; /*包含ESB数量*/
|
||||
UINT16 wIbpRelayId; /*IBP盘发车按钮继电器ID*/
|
||||
UINT16 wReverseBoardId; /*所属倒切板卡Id*/
|
||||
} PsdConfigDataStruct;
|
||||
|
||||
|
||||
@@ -451,6 +453,32 @@ UINT8 GetPsdIncloudeEsbNum(const UINT16 psdId);
|
||||
* 返回值 :ESB ID数组
|
||||
*/
|
||||
UINT16* GetPsdIncloudeEsbIdBuf(const UINT16 psdId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门IBP盘发车按钮继电器ID
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: IBP盘发车按钮继电器ID
|
||||
*/
|
||||
UINT16 GetIbpConfmRelayId(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置倒切板卡
|
||||
* 参数说明: const UINT16 PsdId, 屏蔽门ID,UINT16 wBoardId 板卡Id
|
||||
* 返回值 : CI_SUCCESS CI_ERROR
|
||||
*/
|
||||
UINT8 SetPsdRelateReverseRelay(const UINT16 PsdId,UINT16 wBoardId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取倒切板卡
|
||||
* 参数说明: const UINT16 wPsdId, 屏蔽门ID
|
||||
* 返回值 : UINT16_MAX: 获取数据失败
|
||||
* 0: 无倒切
|
||||
* [1,65534]板卡ID
|
||||
*/
|
||||
UINT16 GetPsdRelateReverseBoardId(const UINT16 wPsdId);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -851,7 +851,7 @@ UINT32 GetStartDetectionCycNum(const UINT16 doorId)
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetStartDetectionState(const UINT16 doorId, const UINT32 detectionState)
|
||||
void SetStartDetectionState(const UINT16 doorId, const UINT8 detectionState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
@@ -861,7 +861,7 @@ void SetStartDetectionState(const UINT16 doorId, const UINT32 detectionState)
|
||||
{
|
||||
if ((JXTC_START_DETECTION_NO == detectionState) || (JXTC_START_DETECTION_YES == detectionState) )
|
||||
{
|
||||
PsdDataStru[bufIndex].StartDetectionState = (UINT8)(detectionState);
|
||||
PsdDataStru[bufIndex].StartDetectionState = detectionState;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -906,7 +906,7 @@ UINT8 GetStartDetectionState(const UINT16 doorId)
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetStopDetectionState(const UINT16 doorId, const UINT32 detectionState)
|
||||
void SetStopDetectionState(const UINT16 doorId, const UINT8 detectionState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
@@ -916,7 +916,7 @@ void SetStopDetectionState(const UINT16 doorId, const UINT32 detectionState)
|
||||
{
|
||||
if ((JXTC_STOP_DETECTION_NO == detectionState) || (JXTC_STOP_DETECTION_YES == detectionState) )
|
||||
{
|
||||
PsdDataStru[bufIndex].StopDetectionState = (UINT8)(detectionState);
|
||||
PsdDataStru[bufIndex].StopDetectionState = detectionState;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -952,6 +952,54 @@ UINT8 GetStopDetectionState(const UINT16 doorId)
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定PSD停止探测周期号
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 startCycNum, 起始周期号
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetStopDetectionCycNum(const UINT16 doorId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
PsdDataStru[bufIndex].StopDetectionCycNum = startCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取停止探测起始周期号
|
||||
* 参数说明: const UINT16 doorId, 进路ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 起始周期号
|
||||
*/
|
||||
UINT32 GetStopDetectionCycNum(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].StopDetectionCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* 功能描述: 设置因VOBC关PSD而需要被重开的进路
|
||||
@@ -1357,7 +1405,7 @@ UINT16 GetPsdEditGroupInfoFromPsdData(const UINT16 doorId)
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetVOBCDoorState(const UINT16 doorId, const UINT32 doorState)
|
||||
void SetVOBCDoorState(const UINT16 doorId, const UINT8 doorState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
@@ -1367,7 +1415,7 @@ void SetVOBCDoorState(const UINT16 doorId, const UINT32 doorState)
|
||||
{
|
||||
if ((PSD_DOOR_CLOSEDANDLOCKED_VALID == doorState) || (PSD_DOOR_CLOSEDANDLOCKED_INVALID == doorState))
|
||||
{
|
||||
PsdDataStru[bufIndex].VOBCDoorState = (UINT8)(doorState);
|
||||
PsdDataStru[bufIndex].VOBCDoorState = doorState;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1517,7 +1565,6 @@ UINT8 GetPsdPlFlag(const UINT16 doorId)
|
||||
void SetNearCiPscPlFlag(const UINT16 psdId,const UINT16 pscId,const UINT8 setFlag)
|
||||
{
|
||||
/*变量初始化*/
|
||||
UINT8 i = 0u;
|
||||
UINT8 transmitState = 0u;
|
||||
UINT8 localCiId = 0u;
|
||||
UINT8 psdCiId = 0u;
|
||||
@@ -2527,21 +2574,21 @@ UINT16 GePsdVideoQkRelateVobcId(const UINT16 wPsdId)
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门异常打开状态
|
||||
* 功能描述:设置指定ID屏蔽门异常状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* const UINT8 cExceptOpenState 屏蔽门异常打开状态
|
||||
* const UINT8 cExceptOpenState 屏蔽门异常状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
void SetPsdExceptOpenState(const UINT16 wPsdId, const UINT8 cExceptOpenState)
|
||||
void SetPsdExceptState(const UINT16 wPsdId, const UINT8 cExceptOpenState)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(wPsdId); /*获取屏蔽门数组下标*/
|
||||
bufIndex = GetPsdConfigBufIndex(wPsdId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if ((PSD_SUM_MAX > bufIndex) && ((PSD_EXCEPT_OPEN_YES == cExceptOpenState) || (PSD_EXCEPT_OPEN_NO == cExceptOpenState)))
|
||||
if ((PSD_SUM_MAX > bufIndex) && ((PSD_EXCEPT_YES == cExceptOpenState) || (PSD_EXCEPT_NO == cExceptOpenState)))
|
||||
{
|
||||
PsdDataStru[bufIndex].cPsdExceptOpenState = cExceptOpenState; /*设置屏蔽门异常打开状态*/
|
||||
PsdDataStru[bufIndex].cPsdExceptOpenState = cExceptOpenState; /*设置屏蔽门异常状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2550,16 +2597,16 @@ void SetPsdExceptOpenState(const UINT16 wPsdId, const UINT8 cExceptOpenState)
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门异常打开状态
|
||||
* 功能描述:获取指定ID屏蔽门异常状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* 返 回 值:0x55 异常打开
|
||||
* 0xAA 未异常打开
|
||||
* 返 回 值:0x55 异常(曾异常打开未解除)
|
||||
* 0xAA 未异常
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
UINT8 GePsdExceptOpenState(const UINT16 wPsdId)
|
||||
UINT8 GePsdExceptState(const UINT16 wPsdId)
|
||||
{
|
||||
UINT16 bufIndex = 0U;
|
||||
UINT8 cRetVal = PSD_EXCEPT_OPEN_YES;
|
||||
UINT8 cRetVal = PSD_EXCEPT_YES;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(wPsdId); /*获取屏蔽门数组下标*/
|
||||
|
||||
@@ -3117,3 +3164,310 @@ void SetPsdEditGroupInfoData(const UINT16 doorId, const UINT16 wPsdEditGroupInfo
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门间隙探测互锁解除故障状态
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* 返 回 值: 0 返回失败
|
||||
* 0< 间隙探测互锁解除故障状态
|
||||
*/
|
||||
UINT8 GetPsdJXTCMutualLockFaultState(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].JXTCMutualLockFaultState;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门间隙探测互锁解除故障状态
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 wJXTCMutualLockFaultState 间隙探测互锁解除故障状态
|
||||
* 返 回 值:无
|
||||
*/
|
||||
void SetPsdJXTCMutualLockFaultState(const UINT16 doorId, const UINT8 wJXTCMutualLockFaultState)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
if ((JXTC_MUTUALLOCKFAULT_YES == wJXTCMutualLockFaultState)
|
||||
|| (JXTC_MUTUALLOCKFAULT_NO == wJXTCMutualLockFaultState))
|
||||
{
|
||||
PsdDataStru[bufIndex].JXTCMutualLockFaultState = wJXTCMutualLockFaultState; /*间隙探测互锁解除故障状态*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门间隙探测互锁解除时间
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* 返 回 值: 0 返回失败
|
||||
* 0< 屏蔽门间隙探测互锁解除时间
|
||||
*/
|
||||
UINT32 GetPsdJXTCMutualLockStartCycNum(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].JXTCMutualLockStartCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门间隙探测互锁解除起始时间
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 cycnum 互锁解除起始时间
|
||||
* 返 回 值:无
|
||||
*/
|
||||
void SetPsdJXTCMutualLockStartCycNum(const UINT16 doorId, const UINT32 cycnum)
|
||||
{
|
||||
UINT16 bufIndex = 0U; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (PSD_SUM_MAX > bufIndex)
|
||||
{
|
||||
PsdDataStru[bufIndex].JXTCMutualLockStartCycNum = cycnum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门IBP盘发车按钮状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 setFlag 需设置的按钮状态
|
||||
* 返回值 : CI_ERROR 失败
|
||||
* CI_SUCCESS 成功
|
||||
*/
|
||||
UINT8 SetPsdButtonIbpState(const UINT16 doorId, const UINT8 setFlag)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = 0u;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
if ((PLATFORM_DEPAR_BUTTON_STATE_VALID == setFlag) || (PLATFORM_DEPAR_BUTTON_STATE_INVALID == setFlag)
|
||||
||(PLATFORM_DEPAR_BUTTON_STATE_FAULT == setFlag))
|
||||
{
|
||||
PsdDataStru[bufIndex].ibpButtonState = setFlag; /*设置按钮状态*/
|
||||
retVal = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门IBP盘发车按钮状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 :0: 获取数据失败
|
||||
* >0: IBP盘发车按钮状态
|
||||
*/
|
||||
UINT8 GetPsdButtonIbpState(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = 0u;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].ibpButtonState;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门IBP按下起始周期号
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 startCycNum, 起始周期号
|
||||
* 返回值 : 0: 设置数据失败
|
||||
* >0: 设置数据成功
|
||||
*/
|
||||
UINT8 SetIBPPressCycNum(const UINT16 doorId, const UINT32 startCycNum)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
PsdDataStru[bufIndex].IBPPressCycNum = startCycNum;
|
||||
retVal = CI_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门IBP按下起始周期号
|
||||
* 参数说明: const UINT16 doorId,屏蔽门ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 起始周期号
|
||||
*/
|
||||
UINT32 GetIBPPressCycNum(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT32 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].IBPPressCycNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门状态给 VOBC
|
||||
* 参数说明: const UINT16 doorId,屏蔽门ID
|
||||
* 返回值 :屏蔽门状态
|
||||
*/
|
||||
UINT8 GetPsdStateToVobc(const UINT16 doorId)
|
||||
{
|
||||
UINT8 chPsdState = 0U;
|
||||
UINT8 chPsdPlState = 0U;
|
||||
UINT8 chExceptOpenState = 0U;
|
||||
UINT8 chRet = 0U;
|
||||
chPsdPlState = GetPsdMutualLockRemoveState(doorId); /*屏蔽门互锁解除*/
|
||||
if ((PSD_MUTUALLOCK_REMOVE_YES == chPsdPlState) || (PSD_ATS_MUTUALLOCK_REMOVE_YES == chPsdPlState) || (PSD_ATS_AND_JD_MUTUALLOCK_REMOVE_YES == chPsdPlState))
|
||||
{
|
||||
/*屏蔽门互锁解除*/
|
||||
chRet = CI_IVOC_PSD_STATE_PANGLU;
|
||||
}
|
||||
else
|
||||
{
|
||||
chPsdState = GetPsdState(doorId);
|
||||
if (PSD_STATE_CLOSE == chPsdState)
|
||||
{/*屏蔽门关*/
|
||||
chRet = CI_IVOC_PSD_STATE_CLOSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*屏蔽门开, 判断是否异常*/
|
||||
chExceptOpenState = GePsdExceptState(doorId);
|
||||
if (PSD_EXCEPT_NO == chExceptOpenState)
|
||||
{
|
||||
chRet = CI_IVOC_PSD_STATE_OPEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*屏蔽门异常打开*/
|
||||
chRet = CI_IVOC_PSD_STATE_OPEN_EXCEPT;
|
||||
}
|
||||
}
|
||||
}
|
||||
return chRet;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置列车非零速状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 detectionState, 非零速状态
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetTrainZeroSpeedState(const UINT16 doorId, const UINT8 detectionState)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
if ((PSD_TRAIN_ZERO_SPEED_NO == detectionState) || (PSD_TRAIN_ZERO_SPEED_YES == detectionState))
|
||||
{
|
||||
PsdDataStru[bufIndex].chTrainZeroSpeedState = detectionState;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不做处理*/
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 功能描述: 获取列车非零速状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 非零速状态
|
||||
*/
|
||||
UINT8 GetTrainZeroSpeedState(const UINT16 doorId)
|
||||
{
|
||||
UINT16 bufIndex = 0u; /*数组下标*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
|
||||
bufIndex = GetPsdConfigBufIndex(doorId); /*获取屏蔽门数组下标*/
|
||||
|
||||
if (bufIndex < PSD_SUM_MAX)
|
||||
{
|
||||
retVal = PsdDataStru[bufIndex].chTrainZeroSpeedState;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
@@ -59,6 +59,7 @@ typedef struct S_PsdDataStruct
|
||||
UINT32 StartDetectionCycNum; /*开启探测周期*/
|
||||
UINT8 StartDetectionState; /*启动探测状态*/
|
||||
UINT8 StopDetectionState; /*停止探测状态*/
|
||||
UINT32 StopDetectionCycNum; /*停止探测周期*/
|
||||
UINT8 VOBCDoorState; /*VOBC车门状态*/
|
||||
UINT32 PCBPressCycNum; /*PCB按下起始周期*/
|
||||
UINT32 POBPressCycNum; /*POB按下起始周期*/
|
||||
@@ -92,6 +93,12 @@ typedef struct S_PsdDataStruct
|
||||
UINT8 psdCloseErrState; /*关门故障状态*/
|
||||
UINT8 cPsdExceptOpenState; /*屏蔽门异常打开状态:0x55-异常打开,0xAA-未异常打开*/
|
||||
UINT32 dwPsdRelayDownCycNum; /*PSD门关继电器落下起始周期*/
|
||||
|
||||
UINT8 JXTCMutualLockFaultState; /*间隙探测互锁解除按钮故障状态 (动态字段)*/
|
||||
UINT32 JXTCMutualLockStartCycNum; /*间隙探测互锁解除起始时间*/
|
||||
UINT8 ibpButtonState; /*IBP盘发车按钮状态(动态字段)*/
|
||||
UINT32 IBPPressCycNum; /*IBP按下起始周期*/
|
||||
UINT8 chTrainZeroSpeedState; /*列车非零速状态*/
|
||||
} PsdDataStruct;
|
||||
|
||||
/*屏蔽门数据结构体*/
|
||||
@@ -380,7 +387,7 @@ UINT32 GetStartDetectionCycNum(const UINT16 doorId);
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetStartDetectionState(const UINT16 doorId, const UINT32 detectionState);
|
||||
void SetStartDetectionState(const UINT16 doorId, const UINT8 detectionState);
|
||||
/*
|
||||
* 功能描述: 获取开始启动探测状态
|
||||
* 参数说明: const UINT16 routeId, 进路ID
|
||||
@@ -396,7 +403,7 @@ UINT8 GetStartDetectionState(const UINT16 doorId);
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetStopDetectionState(const UINT16 doorId, const UINT32 detectionState);
|
||||
void SetStopDetectionState(const UINT16 doorId, const UINT8 detectionState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取停止探测状态
|
||||
@@ -406,6 +413,23 @@ void SetStopDetectionState(const UINT16 doorId, const UINT32 detectionState);
|
||||
*/
|
||||
UINT8 GetStopDetectionState(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定PSD停止探测周期号
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 startCycNum, 起始周期号
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetStopDetectionCycNum(const UINT16 doorId, const UINT32 startCycNum);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取停止探测起始周期号
|
||||
* 参数说明: const UINT16 doorId, 进路ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 起始周期号
|
||||
*/
|
||||
UINT32 GetStopDetectionCycNum(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门开门按钮状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
@@ -518,7 +542,7 @@ UINT16 GetPsdEditGroupInfoFromPsdData(const UINT16 doorId);
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetVOBCDoorState(const UINT16 doorId, const UINT32 doorState);
|
||||
void SetVOBCDoorState(const UINT16 doorId, const UINT8 doorState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取VOBC2CI车门状态信息
|
||||
@@ -902,22 +926,22 @@ void SetPsdVideoQkRelateVobcId(const UINT16 wPsdId, const UINT16 wVobcId);
|
||||
UINT16 GePsdVideoQkRelateVobcId(const UINT16 wPsdId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门异常打开状态
|
||||
* 功能描述:设置指定ID屏蔽门异常状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* const UINT8 cExceptOpenState 屏蔽门异常打开状态
|
||||
* const UINT8 cExceptOpenState 屏蔽门异常状态
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
void SetPsdExceptOpenState(const UINT16 wPsdId, const UINT8 cExceptOpenState);
|
||||
void SetPsdExceptState(const UINT16 wPsdId, const UINT8 cExceptOpenState);
|
||||
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门异常打开状态
|
||||
* 功能描述:获取指定ID屏蔽门异常状态
|
||||
* 参数说明:const UINT16 wPsdId 屏蔽门ID
|
||||
* 返 回 值:0x55 异常打开
|
||||
* 0xAA 未异常打开
|
||||
* 返 回 值:0x55 异常(曾异常打开未解除)
|
||||
* 0xAA 未异常
|
||||
* Created By LQ 2025.05.22
|
||||
*/
|
||||
UINT8 GePsdExceptOpenState(const UINT16 wPsdId);
|
||||
UINT8 GePsdExceptState(const UINT16 wPsdId);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门故障隔离信息
|
||||
@@ -1097,6 +1121,88 @@ UINT16 GetPsdEditGroupInfoData(const UINT16 doorId);
|
||||
* 返 回 值:无
|
||||
*/
|
||||
void SetPsdEditGroupInfoData(const UINT16 doorId, const UINT16 wPsdEditGroupInfo);
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门间隙探测互锁解除故障状态
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* 返 回 值: 0 返回失败
|
||||
* 0< 间隙探测互锁解除故障状态
|
||||
*/
|
||||
UINT8 GetPsdJXTCMutualLockFaultState(const UINT16 doorId);
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门间隙探测互锁解除故障状态
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT8 wJXTCMutualLockFaultState 间隙探测互锁解除故障状态
|
||||
* 返 回 值:无
|
||||
*/
|
||||
void SetPsdJXTCMutualLockFaultState(const UINT16 doorId, const UINT8 wJXTCMutualLockFaultState);
|
||||
/*
|
||||
* 功能描述:获取指定ID屏蔽门间隙探测互锁解除时间
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* 返 回 值: 0 返回失败
|
||||
* 0< 屏蔽门间隙探测互锁解除时间
|
||||
*/
|
||||
UINT32 GetPsdJXTCMutualLockStartCycNum(const UINT16 doorId);
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门间隙探测互锁解除起始时间
|
||||
* 参数说明:const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 cycnum 互锁解除起始时间
|
||||
* 返 回 值:无
|
||||
*/
|
||||
void SetPsdJXTCMutualLockStartCycNum(const UINT16 doorId, const UINT32 cycnum);
|
||||
|
||||
/*
|
||||
* 功能描述: 设置指定ID屏蔽门IBP盘发车按钮状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* UINT8 setFlag 需设置的按钮状态
|
||||
* 返回值 : PSD_BUTTON_PANGLU_STATE_VALID 0x55 有效
|
||||
* PSD_BUTTON_PANGLU_STATE_INVALID 0xaa 无效
|
||||
*/
|
||||
UINT8 SetPsdButtonIbpState(const UINT16 doorId, const UINT8 setFlag);
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门IBP按下起始周期号
|
||||
* 参数说明: const UINT16 doorId,屏蔽门ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 起始周期号
|
||||
*/
|
||||
UINT32 GetIBPPressCycNum(const UINT16 doorId);
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门IBP盘发车按钮状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 :0: 获取数据失败
|
||||
* >0: IBP盘发车按钮状态
|
||||
*/
|
||||
UINT8 GetPsdButtonIbpState(const UINT16 doorId);
|
||||
/*
|
||||
* 功能描述:设置指定ID屏蔽门IBP按下起始周期号
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 startCycNum, 起始周期号
|
||||
* 返回值 : 0: 设置数据失败
|
||||
* >0: 设置数据成功
|
||||
*/
|
||||
UINT8 SetIBPPressCycNum(const UINT16 doorId, const UINT32 startCycNum);
|
||||
/*
|
||||
* 功能描述: 获取指定ID屏蔽门状态给 VOBC
|
||||
* 参数说明: const UINT16 doorId,屏蔽门ID
|
||||
* 返回值 :屏蔽门状态
|
||||
*/
|
||||
UINT8 GetPsdStateToVobc(const UINT16 doorId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置列车非零速状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* const UINT32 detectionState, 非零速状态
|
||||
* 返回值 : 无
|
||||
*
|
||||
*/
|
||||
void SetTrainZeroSpeedState(const UINT16 doorId, const UINT8 detectionState);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取列车非零速状态
|
||||
* 参数说明: const UINT16 doorId, 屏蔽门ID
|
||||
* 返回值 : 0: 获取数据失败
|
||||
* >0: 非零速状态
|
||||
*/
|
||||
UINT8 GetTrainZeroSpeedState(const UINT16 doorId);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
/*屏蔽门总数最大值*/
|
||||
#define PSD_SUM_MAX ((UINT16)90U) /*定义屏蔽门数量最大值*/
|
||||
#define PSD_SUM_MAX ((UINT16)200U) /*定义屏蔽门数量最大值*/
|
||||
|
||||
/*和屏蔽门关联的出站进路数目最大值*/
|
||||
#define RALATED_OUT_STATION_ROUTE_SUM_MAX ((UINT16)10U) /*屏蔽门关联的出站进路数目最大值*/
|
||||
@@ -135,6 +135,7 @@
|
||||
#define PLATFORM_DEPAR_BUTTON_STATE_VALID ((UINT8)0x55U) /*有效*/
|
||||
#define PLATFORM_DEPAR_BUTTON_STATE_INVALID ((UINT8)0xaaU) /*无效*/
|
||||
#define PLATFORM_DEPAR_BUTTON_NO ((UINT8)0xccU) /*无站台发车按钮*/
|
||||
#define PLATFORM_DEPAR_BUTTON_STATE_FAULT ((UINT8)0xffU) /*站台发车按钮故障(IBP)*/
|
||||
|
||||
/*站台按钮旁路状态*/
|
||||
#define PSD_BUTTON_PANGLU_STATE_VALID ((UINT8)0x55U) /*有效*/
|
||||
@@ -197,9 +198,13 @@
|
||||
#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) /*异常打开*/
|
||||
/*屏蔽门异常状态*/
|
||||
#define PSD_EXCEPT_NO ((UINT8)0xAAU) /*未异常*/
|
||||
#define PSD_EXCEPT_YES ((UINT8)0x55U) /*异常(曾异常打开未取消)*/
|
||||
|
||||
/*屏蔽门异常取消方式*/
|
||||
#define PSD_EXCEPT_CANCLE_ATS ((UINT8)0xAAU) /*ATS命令取消*/
|
||||
#define PSD_EXCEPT_CANCLE_RCI ((UINT8)0x55U) /*未异常打开时联锁自动取消异常*/
|
||||
|
||||
/*OC-P旁路状态确认*/
|
||||
#define OC_PSC_PL_CONFIRM_YES ((UINT8)0xaaU) /*OC-P旁路状态已确认*/
|
||||
@@ -210,5 +215,21 @@
|
||||
#define LOW_FOUR_CHAR ((UINT8)1U) /*低四字节*/
|
||||
|
||||
|
||||
/*间隙探测互锁解除故障状态*/
|
||||
#define JXTC_MUTUALLOCKFAULT_YES ((UINT8)0x55U) /*间隙探测互锁解除按钮故障*/
|
||||
#define JXTC_MUTUALLOCKFAULT_NO ((UINT8)0xaaU) /*间隙探测互锁解除按钮未故障*/
|
||||
#define JXTC_MUTUALLOCKFAULT_NOCHECK ((UINT8)0xFFU) /*间隙探测互锁解除按钮未检测*/
|
||||
|
||||
|
||||
#define PSD_INCLUDE_ESB_NUM ((UINT8)10U) /*ESB个数*/
|
||||
|
||||
/*CI-VOBC屏蔽门状态*/
|
||||
#define CI_IVOC_PSD_STATE_CLOSE ((UINT8)0xAAU) /*CI到IVOC屏蔽门关闭*/
|
||||
#define CI_IVOC_PSD_STATE_OPEN ((UINT8)0x55U) /*CI到IVOC屏蔽门打开*/
|
||||
#define CI_IVOC_PSD_STATE_PANGLU ((UINT8)0xCCU) /*CI到IVOC屏蔽门互锁解除*/
|
||||
#define CI_IVOC_PSD_STATE_OPEN_EXCEPT ((UINT8)0x33U) /*CI到IVOC屏蔽门异常打开*/
|
||||
|
||||
#define PSD_TRAIN_ZERO_SPEED_YES ((UINT8)0x55U) /*列车零速*/
|
||||
#define PSD_TRAIN_ZERO_SPEED_NO ((UINT8)0xAAU) /*列车非零速*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
#define ATS_CMD_SECTION_FENGSUO_CANCEL ((UINT8)0x61) /*区段解封*/
|
||||
#define ATS_CMD_PHYSEC_PRE_RESET_ONE ((UINT8)0x62) /*计轴预复位一次*/
|
||||
#define ATS_CMD_PHYSEC_PRE_RESET_TWO ((UINT8)0x63) /*计轴预复位二次*/
|
||||
#define ATS_CMD_CANCEL_XICHE ((UINT8)0x64) /*现地取消洗车命令*/
|
||||
#define ATS_CMD_CANCEL_XICHE ((UINT8)0x64) /*取消降级模式洗车命令*/
|
||||
#define ATS_CMD_PHYSEC_GENERAL_RESET_SET ((UINT8)0x65) /*计轴总复位命令*/
|
||||
#define ATS_CMD_PHYSEC_GENERAL_RESET_CANCEL ((UINT8)0x66) /*取消计轴总复位命令*/
|
||||
#define ATS_CMD_CICI_NET_TO_RELAY_ONE ((UINT8)0x68) /*联锁与联锁网络接口转继电接口一次命令*/
|
||||
@@ -115,10 +115,9 @@
|
||||
#define ATS_CMD_PSC_PL_ONE ((UINT8)0x70) /*设置PSC旁路一次命令*/
|
||||
#define ATS_CMD_PSC_PL_TWO ((UINT8)0x71) /*设置PSC旁路二次命令*/
|
||||
#define ATS_CMD_QUXIAO_PSC_PL_ONE ((UINT8)0x72) /*取消PSC旁路一次命令*/
|
||||
#define ATS_CMD_QUXIAO_PSC_PL_TWO ((UINT8)0x73) /*取消PSC旁路二次命令*/
|
||||
#define ATS_CMD_ROUTE_GROUP_AUTO_SET ((UINT8)0x74) /*办理组合自动进路命令*/
|
||||
#define ATS_CMD_ROUTE_GROUP_AUTO_CANCLE ((UINT8)0x75) /*取消组合自动进路命令*/
|
||||
|
||||
#define ATS_CMD_QUXIAO_PSC_PL_TWO ((UINT8)0x73) /*取消PSC旁路二次命令*/
|
||||
#define ATS_CMD_ROUTE_GROUP_AUTO_SET ((UINT8)0x74) /*办理组合自动进路命令*/
|
||||
#define ATS_CMD_ROUTE_GROUP_AUTO_CANCLE ((UINT8)0x75) /*取消组合自动进路命令*/
|
||||
#define ATS_CMD_SIGNALMAINTAINSTATE_ONE ((UINT8)0x76) /*信号机维修点灯一次*/
|
||||
#define ATS_CMD_SIGNALMAINTAINSTATE_TWO ((UINT8)0x77) /*信号机维修点灯二次*/
|
||||
#define ATS_CMD_CANCEL_SIG_MAINTAIN_ONE ((UINT8)0x78) /*取消信号机维修点灯一次*/
|
||||
@@ -127,11 +126,9 @@
|
||||
#define ATS_CMD_CANCEL_SW_ALARM_TWO ((UINT8)0x7b) /*取消转辙机封连报警二次命令*/
|
||||
#define ATS_CMD_RECOVER_SW_ALARM_ONE ((UINT8)0x7c) /*恢复转辙机封连报警一次命令*/
|
||||
#define ATS_CMD_RECOVER_SW_ALARM_TWO ((UINT8)0x7d) /*恢复转辙机封连报警二次命令*/
|
||||
|
||||
#define LABOR_CMD_CANCEL_OVERLAP_ONE ((UINT8)0x7e) /* 人工取消保护区段一次命令 */
|
||||
#define LABOR_CMD_CANCEL_OVERLAP_TWO ((UINT8)0x7f) /* 人工取消保护区段二次命令 */
|
||||
#define LABOR_CMD_SET_UP_OVERLAP ((UINT8)0x80) /* 人工建立保护区段命令,合代码暂时改成80 */
|
||||
|
||||
#define ATS_CMD_ROUTE_APPLY ((UINT8)0x92) /*申请路径*/
|
||||
#define ATS_CMD_ROUTE_APPLY_CANCLE ((UINT8)0x93) /*取消申请路径*/
|
||||
#define ATS_CMD_ROUTE_PART_APPLY ((UINT8)0x94) /*申请部分路径*/
|
||||
@@ -143,22 +140,18 @@
|
||||
#define ATS_CMD_OPEN_XIANSU_SIGNAL_FIRST ((UINT8)0x9d) /*开放限速信号一次*/
|
||||
#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_GET_CTRL_POWER ((UINT8)0x81) /* 获取联锁控制权*/
|
||||
#define ATS_CMD_RELEASE_CTRL_POWER ((UINT8)0x82) /* 释放联锁控制权*/
|
||||
|
||||
#define ATS_CMD_ROUTE_AUTO_TRIGGER_SET (UINT8)0x83 /*单个进路自动触发进路办理 */
|
||||
#define ATS_CMD_ROUTE_CANCLE_AUTO_TRIGGER (UINT8)0x84 /*单个进路取消自动触发进路 */
|
||||
#define ATS_CMD_SWITCH_DINGWEI_TEST_ONE ((UINT8)0x85) /* 道岔定位测试一次命令*/
|
||||
#define ATS_CMD_SWITCH_DINGWEI_TEST_TWO ((UINT8)0x86) /* 道岔定位测试二次命令*/
|
||||
#define ATS_CMD_SWITCH_FANWEI_TEST_ONE ((UINT8)0x87) /* 道岔反位测试一次命令*/
|
||||
#define ATS_CMD_SWITCH_FANWEI_TEST_TWO ((UINT8)0x88) /*道岔反位测试二次命令*/
|
||||
|
||||
#define SCX_ATS_CMD_ESS_GO_POSITION (UINT8)0x89 /*ESS去位命令*/
|
||||
#define SCX_ATS_CMD_ESS_STOP_POSITION (UINT8)0x90 /*ESS停位命令*/
|
||||
#define ATS_CMD_STATION_QK_SET (UINT8)0x91 /*站台清客标志设置 */
|
||||
@@ -167,6 +160,12 @@
|
||||
#define ATS_CMD_EMERG_XS_CANCEL_ONE (UINT8)0xAE /*取消紧急临时限速一次命令 */
|
||||
#define ATS_CMD_EMERG_XS_CANCEL_TWO (UINT8)0xAF /*取消紧急临时限速二次命令 */
|
||||
#define ATS_CMD_COUPLING_ROUTE_SET (UINT8)0xB0 /*联挂进路办理 */
|
||||
#define ATS_CMD_APPLY_XICHE ((UINT8)0xB1) /*降级模式洗车请求*/
|
||||
#define ATS_CMD_APPLY_PASSXICHE ((UINT8)0xB2) /*现地请求反向洗车命令-降级模式*/
|
||||
#define ATS_CMD_CANCEL_PASSXICHE ((UINT8)0xB3) /*现地取消反向洗车命令-降级模式*/
|
||||
#define ATS_CMD_CANCEL_PSD_EXCEPT ((UINT8)0xBA) /*现地取消站台门异常状态*/
|
||||
#define ATS_CMD_CONNECT_ROUTE_RELEASE_ONE ((UINT8)0xBB) /*联络线接车进路解锁一次*/
|
||||
#define ATS_CMD_CONNECT_ROUTE_RELEASE_TWO ((UINT8)0xBC) /*联络线接车进路解锁二次*/
|
||||
|
||||
/****联锁到其他联锁的命令宏定义****/
|
||||
#define CI_CMD_PHYSEC_USING_APPLY ((UINT16)0x0001) /*物理区段征用申请*/
|
||||
@@ -239,7 +238,7 @@
|
||||
#define CI_BACK_ROUTE_LOCK_NOTALL ((UINT8)0x06) /*进路不完整锁闭?新增?*/
|
||||
|
||||
#define CI_BACK_ROUTE_LEVEL_CBTC ((UINT8)0x08) /*进路监督级别不为点式?未使用?*/
|
||||
#define CI_BACK_ROUTE_LEVEL_BLOC ((UINT8)0x00) /*进路监督级别不为CBTC?未使用?*/
|
||||
#define CI_BACK_ROUTE_LEVEL_BLOC ((UINT8)0xBA) /*进路监督级别不为CBTC*/
|
||||
#define CI_BACK_ROUTE_TYPE_ERROR ((UINT8)0x00) /*进路类型异常?未使用?*/
|
||||
#define CI_BACK_ROUTE_STATE_ERROR ((UINT8)0x59) /*进路建立条件不满足*/
|
||||
#define CI_BACK_RETURN_ROUTE_STATE_ERROR ((UINT8)0x5A) /*折返进路不允许追踪办理*/
|
||||
@@ -249,9 +248,10 @@
|
||||
|
||||
#define CI_BACK_GROUP_AUTO_ROUTE_SET_ERR ((UINT8)0x7e) /*组合自动进路自动属性设置失败*/
|
||||
|
||||
#define CI_BACK_AUTO_TRIGGER_SET_ERR (UINT8)0x85 /*进路的自动触发标志设置失败*/
|
||||
#define CI_BACK_AUTO_TRIGGER_SET_ERR ((UINT8)0x85) /*进路的自动触发标志设置失败*/
|
||||
#define CI_BACK_LEAD_ROUTE_CANCEL ((UINT8)0xA4) /*引导进路无法使用总取消解锁反馈*/
|
||||
#define CI_BACK_COUPLINK_ROUTE_IDLE ((UINT8)0xAF) /*联挂进路内无被联挂车*/
|
||||
#define CI_BACK_CONNECT_ROUTE_RELEASE ((UINT8)0xBB) /*联络线接车进路解锁条件不满足*/
|
||||
|
||||
/*信号机故障反馈*/
|
||||
#define CI_BACK_SIG_START_OPEN ((UINT8)0x11) /*进路始端信号机开放*/
|
||||
@@ -341,6 +341,14 @@
|
||||
#define CI_BACK_OTHER_ROUTE_NOT_OPEN ((UINT8)0x9D) /*进路其他联锁条件需开放进路未开放*/
|
||||
#define CI_BACK_WASH_PASS_ALLOW_NOT ((UINT8)0x9E) /*洗车库/线未同意通过*/
|
||||
|
||||
#define CI_BACK_WASH_APPLY_NOT ((UINT8)0xB3) /*洗车机洗车请求有效,请勿重复操作*/
|
||||
#define CI_BACK_WASH_PASSAPPLY_NOT ((UINT8)0xB4) /*洗车机反向通过请求有效,请勿重复操作*/
|
||||
#define CI_BACK_ROUTE_IDLE_NOT ((UINT8)0xB5) /*进路未空闲,请先取消进路*/
|
||||
#define CI_BACK_WASH_BUTTON_PRESS_NOT ((UINT8)0xB6) /*洗车同意按钮未按下,不需要取消*/
|
||||
#define CI_BACK_WASH_PASSBUTTON_PRESS_NOT ((UINT8)0xB7) /*洗车反向通过同意按钮未按下,不需要取消*/
|
||||
#define CI_BACK_WASH_APPLY_BUTTON_NOT ((UINT8)0xB8) /*洗车机XXX洗车同意按钮在规定时间内未按下,洗车请求失效*/
|
||||
#define CI_BACK_WASH_PASS_BUTTON_NOT ((UINT8)0xB9) /*洗车机XXX反向同意按钮在规定时间内未按下,反向通过请求失效*/
|
||||
|
||||
/* 设置与取消物理区段故障列车占用反馈 */
|
||||
#define CI_BACK_SPE_TRAIN_DIR_ERR ((UINT8)0x86) /*设置物理区段故障车占用:与已存在的故障车方向不一致*/
|
||||
#define CI_BACK_SPE_LOOK_DIR_ERR ((UINT8)0x87) /*设置物理区段故障车占用:与物理区段锁闭方向不一致*/
|
||||
@@ -464,6 +472,48 @@
|
||||
#define CI_BACK_ALLAUTO_RETURN_FLOOD_STATE_ERR ((UINT8)0x9C) /*全自动折返进路存在防淹门不满足*/
|
||||
#define CI_BACK_ALLAUTO_RETURN_COUPROUTE_SET ((UINT8)0xB2) /*全自动折返联挂进路已办理*/
|
||||
|
||||
#define ATS_CI_INFO_TYPE_FIRST_LEN ((UINT16)11) /*ATS首次命令长度*/
|
||||
#define ATS_CI_INFO_TYPE_SND_LEN ((UINT16)15) /*ATS再次命令长度*/
|
||||
|
||||
/* ATS二次命令帧首次消息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*首次消息接收状态*/
|
||||
UINT32 dwCycle; /*首次消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号:不为0时发送网关*/
|
||||
UINT8 chRtuId; /*Rtu编号:不为0时发送现地,全0发ATS*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*请求时间*/
|
||||
UINT16 wDevId; /*操作设备ID*/
|
||||
}AtsFollowUpCmdFstStru;
|
||||
|
||||
/* ATS二次命令帧再次消息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*首次消息接收状态*/
|
||||
UINT32 dwCycle; /*再次消息接收周期号*/
|
||||
UINT8 chAtsId; /*ATS编号:不为0时发送网关*/
|
||||
UINT8 chRtuId; /*Rtu编号:不为0时发送现地,全0发ATS*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT32 dwTime; /*请求时间*/
|
||||
UINT16 wDevId; /*操作设备ID*/
|
||||
UINT32 dwCrc32; /*再次发送中Crc*/
|
||||
}AtsFollowUpCmdSndStru;
|
||||
|
||||
/*二次命令帧反馈信息结构体 */
|
||||
typedef struct
|
||||
{
|
||||
UINT8 chFlag; /*消息有效性*/
|
||||
UINT8 chTiocId; /*TIOC编号*/
|
||||
UINT8 chAtsId; /*Ats编号: 判断组包对象使用,不包含在组包内容中*/
|
||||
UINT8 chRtuId; /*Rtu编号*/
|
||||
UINT16 wIndex; /*操作站编号*/
|
||||
UINT32 dwTime; /*时间*/
|
||||
UINT8 chOpStatus; /*操作结果*/
|
||||
UINT32 dwCrc32; /*CRC*/
|
||||
}RCIFollowUpReplyStru;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -75,11 +75,57 @@
|
||||
#define RCI_ATS_INFO_TYPE_DEVICE_STATE ((UINT16)0x0203U) /*RCI->ATS设备状态信息,间隔1周期发送*/
|
||||
#define ATS_CI_INFO_TYPE_HEART_STATE ((UINT16)0x0204U) /*ATS->CI心跳状态信息,周期发送*/
|
||||
#define ATS_CI_INFO_TYPE_CMD_CONTROL ((UINT16)0x0205U) /*ATS->CI命令控制信息,ATS触发发送*/
|
||||
#define ATS_CI_INFO_TYPE_GATEWAY_COMMON ((UINT16)0x0206U) /*网关->CI既有信息帧 ATS触发发送*/
|
||||
#define RCI_ATS_INFO_TYPE_GATEWAY_COMMON ((UINT16)0x0207U) /*RC->网关既有信息汇报,周期发送*/
|
||||
#define RCI_ATS_INFO_TYPE_GATEWAY_HEART ((UINT16)0x0208U) /*CI->网关周期心跳*/
|
||||
#define ATS_CI_INFO_FST_DS_CANCEL ((UINT16)0x0301U) /*ATS->CI道岔单解一次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_FST_DS_CANCEL ((UINT16)0x0302U) /*RCI->ATS道岔单解首次回复,触发单解一次后发送*/
|
||||
#define ATS_CI_INFO_SND_DS_CANCEL ((UINT16)0x0303U) /*ATS->CI道岔单解二次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_SND_DS_CANCEL ((UINT16)0x0304U) /*RCI->ATS道岔单解再次回复,触发单解二次后发送*/
|
||||
#define ATS_CI_INFO_FST_SWIUNFLOCK ((UINT16)0x0305U) /*ATS->CI道岔解封一次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_FST_SWIUNFLOCK ((UINT16)0x0306U) /*RCI->ATS道岔解封首次回复,触发解封一次后发送*/
|
||||
#define ATS_CI_INFO_SND_SWIUNFLOCK ((UINT16)0x0307U) /*ATS->CI道岔解封二次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_SND_SWIUNFLOCK ((UINT16)0x0308U) /*RCI->ATS道岔解封再次回复,触发解封二次后发送*/
|
||||
#define ATS_CI_INFO_FST_FAULTUNLOCK ((UINT16)0x0309U) /*ATS->CI 区故解 预留*/
|
||||
#define RCI_ATS_INFO_FST_FAULTUNLOCK ((UINT16)0x030AU) /*RCI->ATS区故解一次回复 预留*/
|
||||
#define ATS_CI_INFO_SND_FAULTUNLOCK ((UINT16)0x030BU) /*ATS->CI区故解二次 预留*/
|
||||
#define RCI_ATS_INFO_SND_FAULTUNLOCK ((UINT16)0x030CU) /*RCI->ATS区故解二次 预留*/
|
||||
#define ATS_CI_INFO_FST_SECUNFLOCK ((UINT16)0x030DU) /*ATS->CI区段解封一次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_FST_SECUNFLOCK ((UINT16)0x030EU) /*RCI->ATS区段解封首次回复,触发解封一次后发送*/
|
||||
#define ATS_CI_INFO_SND_SECUNFLOCK ((UINT16)0x030FU) /*ATS->CI区段解封二次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_SND_SECUNFLOCK ((UINT16)0x0310U) /*RCI->ATS区段解封再次回复,触发解封二次后发送*/
|
||||
#define ATS_CI_INFO_FST_SIGUNFLOCK ((UINT16)0x0311U) /*ATS->CI信号机解封一次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_FST_SIGUNFLOCK ((UINT16)0x0312U) /*RCI->ATS信号机解封首次回复,触发解封一次后发送*/
|
||||
#define ATS_CI_INFO_SND_SIGUNFLOCK ((UINT16)0x0313U) /*ATS->CI信号机解封二次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_SND_SIGUNFLOCK ((UINT16)0x0314U) /*RCI->ATS信号机解封再次回复,触发解封二次后发送*/
|
||||
#define ATS_CI_INFO_FST_ZONGRENJIE ((UINT16)0x0315U) /*ATS->CI总人解一次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_FST_ZONGRENJIE ((UINT16)0x0316U) /*RCI->ATS总人解首次回复,触发一次后发送*/
|
||||
#define ATS_CI_INFO_TYPE_SND_ZRJ ((UINT16)0x0317U) /*ATS->CI总人解二次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_SND_ZRJ ((UINT16)0x0318U) /*RCI->ATS总人解再次回复,触发二次后发送*/
|
||||
#define ATS_CI_INFO_FST_PSD_UNEXCEPT ((UINT16)0x0319U) /*ATS->CI站台门异常解除一次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_FST_PSD_UNEXCEPT ((UINT16)0x031AU) /*RCI->ATS站台门异常解除首次回复,触发一次后发送*/
|
||||
#define ATS_CI_INFO_SND_PSD_UNEXCEPT ((UINT16)0x031BU) /*ATS->CI站台门异常解除二次命令,ATS触发发送*/
|
||||
#define RCI_ATS_INFO_SND_PSD_UNEXCEPT ((UINT16)0x031CU) /*RCI->ATS站台门异常解除再次回复,触发二次后发送*/
|
||||
|
||||
|
||||
#define SHOW_2OO2_STATE_MAIN ((UINT8)0x55U) /*显示主备系状态-主系*/
|
||||
#define SHOW_2OO2_STATE_BACKUP ((UINT8)0xaaU) /*显示主备系状态-备系*/
|
||||
#define SHOW_2OO2_STATE_UNKNOW ((UINT8)0xFFU) /*显示主备系状态-未知*/
|
||||
|
||||
#define CONFIRM_REPLY_SUCCESS ((UINT8)1u) /*确认成功*/
|
||||
#define CONFIRM_FST_UNSET ((UINT8)2u) /*首次回复未设置该状态*/
|
||||
#define CONFIRM_FST_BELONGERROR ((UINT8)3u) /*首次回复设备不属于本集中区*/
|
||||
#define CONFIRM_DEVICE_NONROUTE_SET ((UINT8)5u) /*回复非进路调车已办理*/
|
||||
|
||||
#define CONFIRM_SND_DIFFCMD ((UINT8)2u) /*再次回复操作不一致*/
|
||||
#define CONFIRM_SND_FIRST_NOTFIND ((UINT8)3u) /*再次回首次命令未执行*/
|
||||
#define CONFIRM_SND_CRCFAIL ((UINT8)4u) /*再次回复CRC校验失败*/
|
||||
|
||||
#define FOLLOWUP_CONFIRM_TIMEOUT ((UINT16)400u) /*首次消息等待二次消息超时时间*/
|
||||
#define PACK_ATS_TYPE_CENTER ((UINT8) 0xAAU)/*ATS二次信息回复组包中区分ATS与网关使用后,代表ATS*/
|
||||
#define PACK_ATS_TYPE_GATEWAY ((UINT8) 0x55U) /*ATS二次信息回复组包中区分ATS与网关使用后,代表网关*/
|
||||
#define FOLLOWUP_MSGID_MAX ((UINT16)7) /*暂定二次命令种类,遍历使用*/
|
||||
|
||||
/*执行电插箱相关信息*/
|
||||
typedef struct s_PlusBoxDataSendATS
|
||||
{
|
||||
@@ -143,6 +189,36 @@ extern UINT32 FirstCmdId; /*
|
||||
extern ReciveAtsCmdDataCycInfo szReciveAtsCmdDataCycInfo[ATS_SUM_MAX * 2U]; /*收到ATS命令数据周期号信息数组*/
|
||||
extern UINT16 gReciveAtsCmdDataDeviceSum; /*收到ATS命令数据设备数目*/
|
||||
|
||||
extern AtsFollowUpCmdFstStru gDansuoCancleMsgFst;/*取消单锁首次消息*/
|
||||
extern RCIFollowUpReplyStru gDansuoCancleReplyFst;/*取消单锁首次确认*/
|
||||
extern AtsFollowUpCmdSndStru gDansuoCancleMsgSnd; /*取消单锁二次消息*/
|
||||
extern RCIFollowUpReplyStru gDansuoCancleReplySnd; /*取消单锁二次确认*/
|
||||
|
||||
extern AtsFollowUpCmdFstStru gSwitchUnflockMsgFst; /*道岔解封首次消息*/
|
||||
extern RCIFollowUpReplyStru gSwitchUnflockReplyFst; /*道岔解封首次确认*/
|
||||
extern AtsFollowUpCmdSndStru gSwitchUnflockMsgSnd; /*道岔解封二次消息*/
|
||||
extern RCIFollowUpReplyStru gSwitchUnflockReplySnd; /*道岔解封二次确认*/
|
||||
|
||||
extern AtsFollowUpCmdFstStru gSecUnflockMsgFst; /*区段解封首次消息*/
|
||||
extern RCIFollowUpReplyStru gSecUnflockReplyFst; /*区段解封首次确认*/
|
||||
extern AtsFollowUpCmdSndStru gSecUnflockMsgSnd; /*区段解封二次消息*/
|
||||
extern RCIFollowUpReplyStru gSecUnflockReplySnd; /*区段解封二次确认*/
|
||||
|
||||
extern AtsFollowUpCmdFstStru gSignalUnflockMsgFst; /*信号机解封首次消息*/
|
||||
extern RCIFollowUpReplyStru gSignalUnflockReplyFst; /*信号机解封首次确认*/
|
||||
extern AtsFollowUpCmdSndStru gSignalUnflockMsgSnd; /*信号机解封二次消息*/
|
||||
extern RCIFollowUpReplyStru gSignalUnflockReplySnd; /*信号机解封二次确认*/
|
||||
|
||||
extern AtsFollowUpCmdFstStru gZRJMsgFst; /*总人解首次消息*/
|
||||
extern RCIFollowUpReplyStru gZRJReplyFst; /*总人解首次确认*/
|
||||
extern AtsFollowUpCmdSndStru gZRJMsgSnd; /*总人解二次消息*/
|
||||
extern RCIFollowUpReplyStru gZRJReplySnd; /*总人解二次确认*/
|
||||
|
||||
extern AtsFollowUpCmdFstStru gCanclPsdExceptMsgFst; /*解除站台门异常首次消息*/
|
||||
extern RCIFollowUpReplyStru gCanclPsdExceptReplyFst; /*解除站台门异常首次确认*/
|
||||
extern AtsFollowUpCmdSndStru gCanclPsdExceptMsgSnd; /*解除站台门异常二次消息*/
|
||||
extern RCIFollowUpReplyStru gCanclPsdExceptReplySnd; /*解除站台门异常二次确认*/
|
||||
|
||||
/*
|
||||
* 功能描述: 解析操作命令数据帧
|
||||
* 参数说明: const UINT8* dataBuf, 数据缓冲区
|
||||
@@ -433,6 +509,33 @@ UINT8 GetOcPscConfirmFlag(UINT8 index);
|
||||
*/
|
||||
void PackCiDataToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/*
|
||||
* 功能描述:向ATS组相邻RC/CI的通信状态(双系统使用)
|
||||
* 参数说明:UINT8* ciToXianDiDataBuffer 存放信息的buffer(出参)
|
||||
* UINT16* ii 偏移量(出参)
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
void PackNearRciCommStateToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/*
|
||||
* 功能描述:向ATS组通信表示灯(双系统使用)
|
||||
* 参数说明:UINT8* ciToXianDiDataBuffer 存放信息的buffer(出参)
|
||||
* UINT16* ii 偏移量(出参)
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
void PackCommIndicatorToAts(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/*
|
||||
* 功能描述:检查指定类型表示灯是否需要向ATS组包(双系统使用)
|
||||
* 参数说明:UINT8 cIndicatorType 表示灯类型
|
||||
* 返 回 值:0 不需要组包
|
||||
* 1 需要组包
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 AtsIndicatorPackCheck(UINT8 cIndicatorType);
|
||||
|
||||
/**
|
||||
* @brief RC/CI设备通用状态处理
|
||||
* @param[in] UINT8* ciToXianDiDataBuffer CI组包给ATS或现地的数据数组
|
||||
@@ -475,6 +578,30 @@ void SendAtsCommonStationStateDeal(UINT8* ciToXianDiDataBuffer, UINT16* wDataInd
|
||||
*/
|
||||
UINT8 ReciveAtsCmdDeal(const UINT8* dataBuf, UINT16* dataIndex, const UINT16 wDataLength);
|
||||
|
||||
/**
|
||||
* @brief 收到ATS二次命令帧中一次命令解析处理
|
||||
* @param[in] const UINT8* dataBuf, 数据缓冲区
|
||||
* @param[in] UINT16 dataIndex, 数据索引
|
||||
* @param[in] const UINT16 dataLength, 数据长度
|
||||
* @param[in] const UINT16 wMsgType, 帧类型
|
||||
* @param[in]AtsFollowUpCmdFstStru* pTempTotalFstMsg, 解析中临时存储本次解析一次命令空间
|
||||
* @return CI_ERROR 失败 CI_SUCCESS 成功
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
UINT8 ReciveAtsFollowUpFstCmd(const UINT8* dataBuf, UINT16 dataIndex, const UINT16 wDataLength, const UINT16 wMsgType, AtsFollowUpCmdFstStru* pTempTotalFstMsg);
|
||||
|
||||
/**
|
||||
* @brief 收到ATS二次命令帧中二次命令解析处理
|
||||
* @param[in] const UINT8* dataBuf, 数据缓冲区
|
||||
* @param[in] UINT16 dataIndex, 数据索引
|
||||
* @param[in] const UINT16 dataLength, 数据长度
|
||||
* @param[in] const UINT16 wMsgType, 帧类型
|
||||
* @param[in]AtsFollowUpCmdSndStru* pTempTotalSndMsg, 解析中临时存储本次解析二次命令空间
|
||||
* @return CI_ERROR 失败 CI_SUCCESS 成功
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
UINT8 ReciveAtsFollowUpSndCmd(const UINT8* dataBuf, UINT16 dataIndex, const UINT16 wDataLength, const UINT16 wMsgType, AtsFollowUpCmdSndStru* pTempTotalSndMsg);
|
||||
|
||||
/**
|
||||
* @brief 更新ATS命令数据周期号信息
|
||||
* @param[in] UINT8 chDeviceType 设备类型
|
||||
@@ -502,6 +629,100 @@ UINT32 GetReciveCmdDataAtsCycNum(UINT8 chDeviceType, UINT8 chDeviceId);
|
||||
*/
|
||||
void PackRcOrCiDeciveCommonState(UINT8* ciToXianDiDataBuffer, UINT16* ii);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS对应的首次消息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return 获取ATS二次信息帧中的首次消息
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
AtsFollowUpCmdFstStru * GetAtsFollowUpMsgFst(UINT16 chMsgType);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS对应的二次消息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return 获取ATS二次信息帧中的再次消息
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
AtsFollowUpCmdSndStru * GetAtsFollowUpMsgSnd(UINT16 chMsgType);
|
||||
|
||||
/**
|
||||
* @brief 获取ATS对应的首次反馈消息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return 获取ATS二次信息帧中的首次反馈
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
RCIFollowUpReplyStru * GetAtsFollowUpReplyFst(UINT16 chMsgType);
|
||||
/**
|
||||
* @brief 获取ATS对应的再次反馈消息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return 获取ATS二次信息帧中的再次反馈
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
RCIFollowUpReplyStru * GetAtsFollowUpReplySnd(UINT16 chMsgType);
|
||||
|
||||
/**
|
||||
* @brief 清除1次ATS命令信息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return void
|
||||
* @note by fan 20260603
|
||||
*/
|
||||
void ClearAtsCmdMsgFst(UINT16 chMsgType);
|
||||
|
||||
/**
|
||||
* @brief 清除2次ATS命令信息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return void
|
||||
* @note by fan 20260603
|
||||
*/
|
||||
void ClearAtsCmdMsgSnd(UINT16 chMsgType);
|
||||
|
||||
/**
|
||||
* @brief 清除再次反馈信息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return void
|
||||
* @note by fan 20260603
|
||||
*/
|
||||
void ClearAtsCmdReplySnd(UINT16 chMsgType);
|
||||
|
||||
/**
|
||||
* @brief 清除首次反馈信息
|
||||
* @param[in] const UINT16 wMsgType, 命令类型
|
||||
* @return void
|
||||
* @note by fan 20260603
|
||||
*/
|
||||
void ClearAtsCmdReplyFst(UINT16 chMsgType);
|
||||
|
||||
/**
|
||||
* @brief ATS/网关/现地 二次命令回复处理
|
||||
* @brief 发送ATS通用站场状态处理
|
||||
* @param[in] UINT8* ciToXianDiDataBuffer CI组包给ATS或现地的数据数组
|
||||
* @param[out] UINT16* wDataIndex CI组包给ATS或现地的数据索引
|
||||
* @param[in] const UINT8 chTargetType, 目标系统类型
|
||||
* @param[in] const UINT8 chAtsType, ats(设备0x03)类型
|
||||
* @return 无
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
UINT8 PackCiToAtsFollowUpMsg(UINT8* ciToXianDiDataBuffer, UINT16* wDataIndex, UINT8 chTargetType, UINT8 chAtsType);
|
||||
/**
|
||||
* @brief 收到ATS/网关首次信息解析检查处理
|
||||
* @param[in] const UINT8* dataBuf, 数据缓冲区
|
||||
* @param[in] UINT16* dataIndex, 数据索引
|
||||
* @param[Out] AtsFollowUpCmdFstStru* pMsgFst 首次信息变量指针
|
||||
* @return CI_ERROR 失败 CI_SUCCESS 成功
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
UINT8 ProcessCmdFirstMsgCheck(const UINT8* dataBuf, UINT16 dataIndex, AtsFollowUpCmdFstStru* pMsgFst);
|
||||
|
||||
/**
|
||||
* @brief 收到ATS/网关再次命令检查处理
|
||||
* @param[in] const UINT8* dataBuf, 数据缓冲区
|
||||
* @param[in] UINT16* dataIndex, 数据索引
|
||||
* @param[Out] AtsFollowUpCmdSndStru* pMsgSnd 再次信息变量指针
|
||||
* @return CI_ERROR 失败 CI_SUCCESS 成功
|
||||
* @note by fan 20260602
|
||||
*/
|
||||
UINT8 ProcessCmdSndMsgCheck(const UINT8* dataBuf, UINT16 dataIndex, AtsFollowUpCmdSndStru* pMsgSnd);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -85,12 +85,20 @@
|
||||
#define BIT_VAL_00000001B ((UINT8)0X01)
|
||||
#define BIT_VAL_00000010B ((UINT8)0X02)
|
||||
#define BIT_VAL_00000011B ((UINT8)0X03)
|
||||
#define BIT_VAL_00000100B ((UINT8)0x04)
|
||||
#define BIT_VAL_00000101B ((UINT8)0x05)
|
||||
#define BIT_VAL_00000110B ((UINT8)0x06)
|
||||
#define BIT_VAL_00010001B ((UINT8)0x11)
|
||||
#define BIT_VAL_00010010B ((UINT8)0x12)
|
||||
#define BIT_VAL_00010100B ((UINT8)0x14)
|
||||
#define BIT_VAL_00011000B ((UINT8)0x18)
|
||||
#define BIT_VAL_11111111B ((UINT8)0xFF)
|
||||
|
||||
#define BIT_PALCE11000000 ((UINT8)0xC0)
|
||||
#define BIT_PALCE00110000 ((UINT8)0x30)
|
||||
#define BIT_PALCE00001100 ((UINT8)0x0C)
|
||||
#define BIT_PALCE00000011 ((UINT8)0x03)
|
||||
|
||||
/*物理区段上电锁闭设置标志*/
|
||||
#define HLHT_STARTLOCK_SET_NO ((UINT8)0xaa) /*未设置*/
|
||||
#define HLHT_STARTLOCK_SET_YES ((UINT8)0x55) /*设置*/
|
||||
@@ -100,12 +108,13 @@
|
||||
#define PHYSEC_LOCKDIRECTION_OPPST_YES ((UINT8)0xAA) /*取反*/
|
||||
#define PHYSEC_LOCKDIRECTION_OPPST_DEFAULT ((UINT8)0xFF) /*默认值*/
|
||||
|
||||
#define CICI_VERSION ((UINT8)30) /*cici接口版本号,每次修改接口需要升级版本号——Last Modified On 2025.11.04*/
|
||||
#define CICI_BEGIN_TO_STATION_LEN ((UINT16)37) /*20251104更新为HLHT头长度+应用层保温内容前6字节*/
|
||||
#define CICI_CICIVERINDEX (CICI_BEGIN_TO_STATION_LEN-6U-3U) /*20251104更新后CI接口版本信息索引*/
|
||||
#define CICI_VERSION ((UINT8)32) /*cici接口版本号,每次修改接口需要升级版本号——Last Modified On 2026.03.10*/
|
||||
#define CICI_BEGIN_TO_STATION_LEN ((UINT16)31) /*20251104更新为HLHT头长度+应用层保温内容前6字节*/
|
||||
#define CICI_CICIVERINDEX (CICI_BEGIN_TO_STATION_LEN-3U) /*20251104更新后CI接口版本信息索引*/
|
||||
#define CICI_ONE_SWITCH_LEN ((UINT16)13) /*一个道岔数据长度*/
|
||||
#define CICI_ONE_PHYSEC_LEN ((UINT16)23U)/*一个物理区段数据长度*/
|
||||
#define CICI_ONE_LOGSEC_LEN ((UINT16)11)/*一个逻辑区段数据长度*/
|
||||
#define CICI_ONE_PHYSEC_LEN ((UINT16)12U)/*一个物理区段数据长度*/
|
||||
#define CICI_ONE_PHYSEC_UT_LEN ((UINT16)1U)/*一个物理区段坏车占用数据长度*/
|
||||
#define CICI_ONE_LOGSEC_LEN ((UINT16)6)/*一个逻辑区段数据长度*/
|
||||
#define CICI_ONE_SIGNAL_LEN ((UINT16)11)/*一个信号机数据长度*/
|
||||
#define CICI_ONE_PSD_LEN ((UINT16)5)/*一个屏蔽门数据长度*/
|
||||
#define CICI_ONE_ESB_LEN ((UINT16)4)/*一个ESB数据长度*/
|
||||
@@ -129,10 +138,22 @@
|
||||
#define LOCAL_CI_RC_INTER_TYPE ((UINT16)0x0306U) /*本控区CI-RC接口类型*/
|
||||
#define LOCAL_RC_TO_CI_INFO_DEV_STATE ((UINT16)0x0301U) /*本控区RC发送本控区CI设备状态帧*/
|
||||
#define LOCAL_CI_TO_RC_INFO_HEART ((UINT16)0x0302U) /*本控区CI发送本控区RC心跳帧*/
|
||||
#define LOCAL_RCI_INFO_STATE ((UINT16)0x0303U) /*同模式联锁间接口类型*/
|
||||
#define NEAR_RCI_GENERAL_DEV_INFO ((UINT16)0x0303U) /*通用设备信息帧(相邻主用RC与主用CI间)*/
|
||||
#define NEAR_RCI_PBTACS_DEV_INFO ((UINT16)0x0304U) /*PBTACS接口特有设备信息帧(相邻RC间)*/
|
||||
#define NEAR_RCI_HEART_INFO ((UINT16)0x0305U) /*心跳帧(相邻备用RC与主用CI间)*/
|
||||
|
||||
#define LOCAL_CI_RC_PRTCL_VER ((UINT8)0x01U) /*本控区CI-RC协议版本号*/
|
||||
#define TMP_PACKBUF_LEN (UINT16)(10000)/*临时组包数组长度*/
|
||||
|
||||
/*给相邻RC/CI组包类型*/
|
||||
#define RCCI_PACK_TYPE_HEART ((UINT8)0U) /*组心跳帧*/
|
||||
#define RCCI_PACK_TYPE_GENERAL ((UINT8)0x55U) /*组通用设备信息帧*/
|
||||
#define RCCI_PACK_TYPE_PBTACS ((UINT8)0xAAU) /*组PB-TACS特有设备信息帧*/
|
||||
#define RCCI_PACK_TYPE_ALL_DEV ((UINT8)0xFFU) /*组通用设备信息帧+PB-TACS特有设备信息帧*/
|
||||
|
||||
/*相邻RC/CI间命令类型*/
|
||||
#define RCCI_CMD_TYPE_GENERAL ((UINT8)0x55U) /*通用命令*/
|
||||
#define RCCI_CMD_TYPE_PBTACS ((UINT8)0xAAU) /*PB-TACS特有命令*/
|
||||
|
||||
/*物理区段数据结构体*/
|
||||
typedef struct S_IntconPhySecDataStruct
|
||||
@@ -210,6 +231,12 @@ extern "C" {
|
||||
UINT16 szNeedCheckProSwtStateOlpIdBuf[OVERLAP_SUM_MAX]; /*需要检查防护道岔状态的保护区段ID数组*/
|
||||
UINT16 wSwitchSumOfOtherCi; /*涉及到保护区段征用的其它控区道岔数量*/
|
||||
UINT16 szSwitchIdBufOfOtherCi[SWITCH_SUM_MAX]; /*涉及到保护区段征用的其它控区道岔数量*/
|
||||
|
||||
/*互联互通增加分界数据类型*/
|
||||
UINT16 wSwitchPhySecNum; /*道岔所在物理区段数量*/
|
||||
UINT16 wSwitchPhySecBuf[PHYSICAL_SECTION_SUM_MAX]; /*道岔所在物理区段数组*/
|
||||
UINT16 wXianSuLogSecNum; /*限速逻辑区段数量*/
|
||||
UINT16 wXianSuLogSecBuf[LOGIC_SECTION_SUM_MAX]; /*限速逻辑区段数组*/
|
||||
} CiTransmitStruct;
|
||||
|
||||
/* 相邻TIOC发来的通信车 */
|
||||
@@ -259,6 +286,15 @@ extern "C" {
|
||||
UINT16 wAreaIteCutId[CI_TO_CI_AREA_SNOW_SUM_MAX]; /*区间ID数组*/
|
||||
} ToCiAreaIteCutStruct;
|
||||
|
||||
/*相邻RC发送的帧类型*/
|
||||
typedef struct S_NeighborCiInfoStruct
|
||||
{
|
||||
UINT8 cSourceRcId; /*发送方ID*/
|
||||
UINT16 cIRctoCInfoType; /*RC发送的帧类型*/
|
||||
UINT8 cMainUseMode; /*相邻联锁主用方*/
|
||||
UINT32 dwMainUseCurCyc; /*主用方周期号*/
|
||||
} NeighborCiInfoStruct;
|
||||
|
||||
/*******************************全局变量声明*******************************/
|
||||
extern ToCiCommandDataStruct RecvCiCmdDataStru[RECVCI_CMD_DATA_STRU_SUM_MAX];
|
||||
extern UINT16 RecvCiCmdDataStruCurSum;
|
||||
@@ -277,37 +313,412 @@ extern "C" {
|
||||
extern ToCiAreaSnowStruct szSendCiAreaSnow[CI_COM_CI_MAX_NUM];
|
||||
extern ToCiAreaIteCutStruct szRecvCiAreaIteCut[CI_COM_CI_MAX_NUM];
|
||||
extern ToCiAreaIteCutStruct szSendCiAreaIteCut[CI_COM_CI_MAX_NUM];
|
||||
extern NeighborCiInfoStruct szNeighborCiInfo[CI_COM_CI_MAX_NUM]; /*接收来自相邻RC的帧类型*/
|
||||
|
||||
/*
|
||||
* 功能描述: 解析CI单帧数据
|
||||
* 参数说明: UINT8* dataBuf 解析数据, UINT16 dataLength 长度,UINT8 chSendCiId 发送方id
|
||||
* 参数说明: UINT8* dataBuf 解析数据, UINT16 dataLength 长度,UINT16 wSourceDevId 发送方id
|
||||
* 返回值 : 0:解析失败
|
||||
* 1:解析成功
|
||||
* @note 内部优化 20220419 wqm
|
||||
1、编码规范:函数dsuCheckSameLoc返回值需要变量承接
|
||||
2、增加返回值判断
|
||||
3、适配北京10相邻联锁
|
||||
*/
|
||||
UINT8 ParseCiToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 sourceId);
|
||||
UINT8 ParseCiToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT16 wSourceDevId);
|
||||
|
||||
/*
|
||||
* 功能描述: 校验相邻CI间单帧数据
|
||||
* 参数说明: UINT8* dataBuf 输入数据信息
|
||||
* UINT16 dataLength 输入数据长度
|
||||
* UINT16 srcDevTypeId 发送方设备
|
||||
* UINT8 *errNo 校验失败故障码
|
||||
* 返回值 : CI_ERROR:校验失败
|
||||
* CI_SUCCESS:校验成功
|
||||
*/
|
||||
UINT8 ParseCiToCiDataCheck(UINT8* dataBuf, UINT16 dataLength, UINT8 *errNo);
|
||||
UINT8 ParseCiToCiDataCheck(UINT8* dataBuf, UINT16 dataLength, UINT8 *errNo, UINT16 srcDevTypeId);
|
||||
|
||||
/*
|
||||
* 功能描述: 组CI数据
|
||||
* 参数说明: UINT8 targetDeviceId, 目标设备ID
|
||||
* 返回值 : 0: 组包失败
|
||||
* 1: 组包成功
|
||||
* 功能描述:组CI数据
|
||||
* 参数说明:UINT8 targetDeviceType 目标设备类型
|
||||
* UINT8 targetDeviceId, 目标设备ID
|
||||
* 返回值 :0: 组包失败
|
||||
* 1: 组包成功
|
||||
*/
|
||||
UINT8 PackCiToCiData(UINT8 targetDeviceId);
|
||||
UINT8 PackCiToCiData(UINT8 targetDeviceType, UINT8 targetDeviceId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取本RC/CI需要给相邻RC/CI组包的帧类型
|
||||
* 参数说明:UINT8 targetDeviceType 目标设备类型
|
||||
* UINT8 targetDeviceId 目标设备ID
|
||||
* 返 回 值:0 组心跳帧
|
||||
* 0x55 组通用设备信息帧
|
||||
* 0xAA 组PB-TACS特有设备信息帧
|
||||
* 0xFF 组通用设备信息帧+PB-TACS特有设备信息帧
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 GetSendToNearRciInfoType(UINT8 targetDeviceType, UINT8 targetDeviceId);
|
||||
|
||||
/*
|
||||
* 功能描述:更新需要发送给相邻RC/CI的区段征用命令信息
|
||||
* 参数说明:UINT8 targetDeviceId 目标设备ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
void UpdateSendToRciSecUseCmd(UINT8 targetDeviceId);
|
||||
|
||||
/*
|
||||
* 功能描述:更新需要发送给相邻RC/CI的道岔征用命令信息
|
||||
* 参数说明:UINT8 targetDeviceId 目标设备ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
void UpdateSendToRciSwtUseCmd(UINT8 targetDeviceId);
|
||||
|
||||
/*
|
||||
* 功能描述:更新需要发送给相邻RC/CI的试车命令信息
|
||||
* 参数说明:UINT8 targetDeviceId 目标设备ID
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
void UpdateSendToRciTrainTestCmd(UINT8 targetDeviceId);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组心跳帧应用层信息
|
||||
* 参数说明:UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 已组包长度地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 PackNearRciHeartAppInfo(UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组通用设备信息帧应用层信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Modefied By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciGeneralAppInfo(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组道岔信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciSwitchData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组物理区段坏车占用信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.16
|
||||
*/
|
||||
UINT8 PackNearRciPhySecUtOccData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组物理区段状态信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciPhySecStateData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻CI发送的待解析的物理区段坏车占用信息
|
||||
* 参数说明:const UINT8* dataBuf 待解析的数据;
|
||||
* UINT16* index 索引
|
||||
* 返回值 :0 校验失败
|
||||
* 1 校验成功
|
||||
*/
|
||||
UINT8 CheckCiToCiPhySecUtOccData(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组逻辑区段状态信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciLogSecStateData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组信号机信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciSignalData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组屏蔽门信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciPsdData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组紧急停车按钮信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciEsbData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组进路信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciRouteData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组物理区段锁闭信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciPhySecLockData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组SPKS信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciSpksData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组虚拟继电器信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciVirtualRelayData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组防淹门信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciFloodGateData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组保护区段信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciOverlapData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组自动通过进路信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciAutoRouteData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组逻辑区段锁闭信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciLogSecLockData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组区间湿轨信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciAreaSnowData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组区间ITE切除信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciAreaIteCutData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组离去逻辑区段信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciLeaveLogSecData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组其它控区进路的道岔检查结果
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciRouteSwtCheckData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组其它控区保护区段的防护道岔检查结果
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciOlapProSwtCheckData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组防护道岔防护锁闭信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 存数据Buf(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.05
|
||||
*/
|
||||
UINT8 PackNearRciProSwtProLockData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组通用命令信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 PackNearRciGeneralCmdData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组PB-TACS特有设备信息帧应用层信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 PackNearRciPbtacsAppInfo(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组逻辑区段资源可用信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 PackNearRciLogSecResUseData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组逻辑区段资源锁闭信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 PackNearRciLogSecResLockData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组分界点信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 PackNearRciCfpData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:相邻RC/CI间组PB-TACS特有命令信息
|
||||
* 参数说明:UINT8 dstCiId 目标RC/CI编号
|
||||
* UINT8* dataFrame 待填充的数组(出参)
|
||||
* UINT16* dataLength 数据总长度的地址(出参)
|
||||
* 返 回 值:0 组包失败
|
||||
* 1 组包成功
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 PackNearRciPbtacsCmdData(UINT8 dstCiId, UINT8* dataFrame, UINT16* dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述:判断相邻RC/CI间指定ID命令的命令类型(通用命令或PB-TACS特有命令)
|
||||
* 参数说明:UINT16 wCmdId 命令ID
|
||||
* 返 回 值:0 失败
|
||||
* 0x55 通用命令
|
||||
* 0xAA PB-TACS特有命令
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT8 CheckNearRciCmdType(UINT16 wCmdId);
|
||||
|
||||
/*
|
||||
* 功能描述: 获取本联锁具有锁闭状态管理权的物理区段ID数组总数
|
||||
@@ -552,7 +963,7 @@ void ClearCiRevCiDrCmdData(void);
|
||||
* 返回值 : CI_ERROR:校验失败
|
||||
* CI_SUCCESS:校验成功
|
||||
*/
|
||||
UINT8 CheckCiIDAndVer(const UINT8* dataBuf, UINT8* Index);
|
||||
UINT8 CheckCiIDAndVer(const UINT8* dataBuf, UINT16* Index);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻CI发送的待解析的道岔数据
|
||||
@@ -581,6 +992,16 @@ UINT8 CheckCiToCiPhySecData(const UINT8* dataBuf, UINT16* index);
|
||||
*/
|
||||
UINT8 CheckCiToCiLogSecData(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻RC发送的的特有逻辑区段数据
|
||||
* 参数说明:const UINT8* dataBuf 待解析的数据;
|
||||
* UINT16* index 索引
|
||||
* 返回值 :0 校验失败
|
||||
* 1 校验成功
|
||||
*Create fan 2026.01.04
|
||||
*/
|
||||
UINT8 CheckCiToCiLogSecDataRcOnly(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻CI发送的待解析的信号机数据
|
||||
* 参数说明:const UINT8* dataBuf 待解析的数据;
|
||||
@@ -599,6 +1020,15 @@ UINT8 CheckCiToCiSignalData(const UINT8* dataBuf, UINT16* index);
|
||||
*/
|
||||
UINT8 CheckCiToCiCommandData(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻CI发送的待解析的命令数据
|
||||
* 参数说明:const UINT8* dataBuf 待解析的数据;
|
||||
* UINT16* index 索引
|
||||
* 返回值 :0 校验失败
|
||||
* 1 校验成功
|
||||
*Create fan 2026.01.04
|
||||
*/
|
||||
UINT8 CheckCiToCiCommandDataRcOnly(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻CI发送的待解析的防淹门数据
|
||||
@@ -637,6 +1067,16 @@ UINT8 CheckCiToCiAutoRouteData(const UINT8* dataBuf, UINT16* index);
|
||||
*/
|
||||
UINT8 CheckCiToCiLogicLockData(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:校验相邻CI发送的本联锁中由其他联锁管理的逻辑区段锁闭数据
|
||||
* 参数说明:const UINT8* dataBuf 待解析的数据;
|
||||
* UINT16* index 索引
|
||||
* 返回值 :0 校验失败
|
||||
* 1 校验成功
|
||||
*Create fan 2026.0.1.04
|
||||
*/
|
||||
UINT8 CheckCiToCiLogicLockDataRcOnly(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述:校验动态进路命令信息
|
||||
* 参数说明:const UINT8* dataBuf 待解析的数据;
|
||||
@@ -1009,11 +1449,12 @@ UINT8 PackManufacDefPacket(UINT8* pInputBuf, UINT16* pItemLen, const UINT8 dstCi
|
||||
* 参数说明:const UINT8 *pInputData 输入数据指针
|
||||
* UINT16 *pItemLen 该项数据在输入数据中的长度
|
||||
* const UINT8 srcCiId 源联锁ID
|
||||
* const UINT16 packetLen 报文长度
|
||||
* 返 回 值:CI_SUCCESS 1 解析成功
|
||||
* CI_ERROR 0 解析失败
|
||||
* Created By LQ 2025.05.26
|
||||
*/
|
||||
UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UINT8 srcCiId);
|
||||
UINT8 ParseManufacDefPacket(const UINT8* pInputData, UINT16* pItemLen, const UINT8 srcCiId, const UINT16 packetLen);
|
||||
|
||||
/*
|
||||
* 功能描述:组CI到本控区RC单帧数据
|
||||
@@ -1136,6 +1577,57 @@ UINT8 CheckLocalRcToCiPsdData(const UINT8* dataBuf, UINT16* index);
|
||||
*/
|
||||
UINT8 CheckLocalRcToCiSnowData(const UINT8* dataBuf, UINT16* index);
|
||||
|
||||
/*
|
||||
* 功能描述: 解析相邻RC间TB-TACS特有单帧数据
|
||||
* 参数说明: UINT8* dataBuf 解析数据, UINT16 dataLength 长度
|
||||
* 返回值 : 0:解析失败
|
||||
* 1:解析成功
|
||||
* Create Fan 2025.12.31
|
||||
*/
|
||||
UINT8 ParseRcToRcPbTacsDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 sourceId);
|
||||
|
||||
/*
|
||||
* 功能描述:获取相邻RC发送本CI的帧类型
|
||||
* 参数说明:const UINT8 cTargetRcId 目标RC ID
|
||||
* 返 回 值:相邻RC发送本CI的帧类型
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
UINT16 GetNearRcSendInfoType(const UINT8 cTargetRcId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置相邻RC发送本CI的帧类型
|
||||
* 参数说明:const UINT8 cTargetRcId 目标RC ID
|
||||
* const UINT16 cIRctoCInfoType 帧类型
|
||||
* 返 回 值:无
|
||||
* Created By LQ 2026.01.04
|
||||
*/
|
||||
void SetNearRcSendInfoType(const UINT8 cTargetRcId, const UINT16 cInfoType);
|
||||
|
||||
/*
|
||||
* 功能描述:功能描述:获取相邻RC发送本CI的主用模式类型(发送通用信息帧的模式)
|
||||
* 参数说明:const UINT8 cTargetRcId 目标RC ID
|
||||
* 返 回 值:相邻RC发送本CI的帧类型
|
||||
* Created By fan 2026.01.04
|
||||
*/
|
||||
UINT8 GetNearRCISendMainUseMode(const UINT8 cTargetRcId);
|
||||
|
||||
/*
|
||||
* 功能描述:设置相邻联锁发送通用信息帧的模式
|
||||
* 参数说明:const UINT8 cTargetRcId 目标RC ID
|
||||
* const UINT8 chMode 类型 UINT32 dwMainCyc主用方CYC
|
||||
* 返 回 值:无
|
||||
* Created By fan 2026.01.04
|
||||
*/
|
||||
void SetNearRCISendMainUseMode(const UINT8 cTargetRcId, const UINT8 chMode,const UINT32 dwMainCyc);
|
||||
|
||||
/*
|
||||
* 功能描述:清除相邻联锁模式信息(中断处理)
|
||||
* 参数说明:const UINT8 cTargetRcId 目标RC ID 待清除模式
|
||||
* 返 回 值:无
|
||||
* Created By fan 2026.01.04
|
||||
*/
|
||||
void ClearNearRCISendInfo(const UINT8 cTargetRcId, const UINT8 chMode);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "../DataManage/PlatDataManage.h"
|
||||
#include "dquCIInterFace.h"
|
||||
#include "NonAutoReturnDataManage.h"
|
||||
|
||||
#include "ReverseCutDataManage.h"
|
||||
#include "2oo2InterfaceDataManage.h"
|
||||
|
||||
PlatHeartDataStruct RecvHeartDataStru = { 0U }; /*平台心跳帧数据结构*/
|
||||
@@ -524,7 +524,11 @@ UINT8 SwitchMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* da
|
||||
UINT16 indexFind = 0U;
|
||||
UINT8 devBelongThisLine = 0U;
|
||||
UINT8 switchBoardNum = 0U;
|
||||
UINT8 switchStateCheck = CI_ERROR;
|
||||
UINT8 chLocalCiOCSswitch = 0U;
|
||||
UINT8 chMainCotrolOCId = 0U;
|
||||
|
||||
chLocalCiOCSswitch = GetLocalCiOCSswitch();
|
||||
|
||||
|
||||
switchLockStatus = GetSwitchLockStatus(DeviceId);
|
||||
|
||||
@@ -699,13 +703,17 @@ UINT8 SwitchMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* da
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_SWITCH_OPEN_CAP:
|
||||
chMainCotrolOCId = GetSwitchMainCotrolOCId(DeviceId);/*获取主控OC*/
|
||||
for (i = 0u; i < m_SwitchNum; i++)
|
||||
{
|
||||
if (m_Switches[i].DeviceId == DeviceId)
|
||||
{
|
||||
flagFind = 1u;
|
||||
indexFind = i;
|
||||
break;
|
||||
if ((chMainCotrolOCId == m_Switches[i].OcId) || (OC_S_OFF == chLocalCiOCSswitch))
|
||||
{/*当前有主控OC或OC-S功能关闭*/
|
||||
flagFind = 1u;
|
||||
indexFind = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (1u == flagFind)
|
||||
@@ -1178,6 +1186,42 @@ UINT8 PhySectionMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8
|
||||
;
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PHYSECTION_INTRUSION:
|
||||
/* 物理区段侵限状态码位 */
|
||||
phyIntruSecVainCheck = PhysicalIntruSecVainCheck(DeviceId);
|
||||
if (CI_SUCCESS == phyIntruSecVainCheck)
|
||||
{
|
||||
/*未侵限,发1*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*侵限,发0*/
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PHYSECTION_ATS_FLOCK:
|
||||
/* 物理区段由ATS封锁状态码位 */
|
||||
/*封锁状态码位(ATS设置) 封锁发0 未封锁以及SPKS命令封锁发1*/
|
||||
phySecState = GetPhySecFLockState(DeviceId);
|
||||
if (PHYSICAL_SECTION_FLOCK_NO != phySecState)
|
||||
{
|
||||
phySecLockType = GetPhySecFLockType(DeviceId);
|
||||
if (PHY_SEC_FLOCK_TYPE_SPKS != phySecLockType)
|
||||
{
|
||||
/*除了SPKS封锁 都发0*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*SPKS命令的封锁 发1*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未封锁 发1*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
returnValue = CI_ERROR;
|
||||
@@ -1204,13 +1248,16 @@ UINT8 LogicSectionMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UIN
|
||||
UINT16 logLockBelongRoute = 0U;/*逻辑区段锁闭所属进路*/
|
||||
UINT16 logProtectLockRoute = 0U;/*逻辑区段防护锁闭所属进路*/
|
||||
UINT8 chJumpLockState = 0U;/*逻辑区段锁闭状态*/
|
||||
UINT8 cLogArbState = 0U; /* 逻辑区段ARB状态 */
|
||||
UINT8 cLogCbtcArbState = 0U; /* 逻辑区段CBTC_ARB状态 */
|
||||
UINT8 cLogPbTacsArbState = 0U; /* 逻辑区段PB_TACS_ARB状态 */
|
||||
UINT8 chLogSecLockDirOpposedFlag = CI_ERROR;/*逻辑区段锁闭方向是否取反标志*/
|
||||
UINT8 cLogSpksFlockState = 0U; /* 逻辑区段SPKS封锁状态 */
|
||||
UINT8 cLogSecLogicLockState = LOG_SECTION_LOCK_NO; /*逻辑区段逻辑锁闭状态*/
|
||||
UINT8 cLogSecLockDir = CI_SYSTEM_DIRECTION_NONE; /*逻辑区段锁闭方向*/
|
||||
UINT8 chLogSecBelLogRouteSum = 0U;/*逻辑区段所属逻辑进路数目*/
|
||||
UINT8 chLogSecEmergXianSu = 0U;/*逻辑区段紧急临时限速状态*/
|
||||
UINT8 chRcWorkMode = 0U; /*RC工作模式*/
|
||||
|
||||
switch (MaskType)
|
||||
{
|
||||
case MASK_TYPE_LOGICSECTION_UTOCCUPY:
|
||||
@@ -1364,15 +1411,33 @@ UINT8 LogicSectionMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UIN
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_LOGICSECTION_ARB:
|
||||
/* 逻辑区段ARB状态 */
|
||||
cLogArbState = GetLgcArbState(DeviceId);
|
||||
/*区段ARB*/
|
||||
if (LGC_SECTION_ARB_YES == cLogArbState)
|
||||
case MASK_TYPE_LOGSEC_CBTC_ARB:
|
||||
/* 逻辑区段CBTC_ARB状态 */
|
||||
cLogCbtcArbState = GetLogSecCbtcArbState(DeviceId);
|
||||
/*当前系统为CI,获取逻辑区段ARB状态*/
|
||||
if (LGC_SECTION_ARB_YES == cLogCbtcArbState)
|
||||
{
|
||||
/*设置码位为1*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_LOGSEC_PB_TACS_ARB:
|
||||
/* 逻辑区段PC_TACS_ARB状态 */
|
||||
cLogPbTacsArbState = GetLogSecPbTacsArbState(DeviceId);
|
||||
/*当前系统为RC,获取逻辑区段ARB状态*/
|
||||
if (LGC_SECTION_ARB_YES == cLogPbTacsArbState)
|
||||
{
|
||||
/*设置码位为1*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_LOGICSECTION_SPKS_FLOCK:
|
||||
/* 逻辑区段SPKS封锁状态 */
|
||||
@@ -1387,7 +1452,7 @@ UINT8 LogicSectionMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UIN
|
||||
/*设置码位为1*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case MASK_TYPE_LOGICSECTION_EMERG_XIANSU:
|
||||
/* 逻辑区段紧急临时限速状态 */
|
||||
@@ -1576,6 +1641,10 @@ UINT8 OverlapMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* d
|
||||
UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dataBuf)
|
||||
{
|
||||
UINT8 returnValue = CI_SUCCESS; /*返回值默认成功*/
|
||||
UINT8 chVirCiId = 0u;
|
||||
UINT8 chVirCiType = 0u;
|
||||
UINT8 ciTrainTestState = 0u; /*试车线联锁状态*/
|
||||
UINT32 xuanpaiStartCycNum = 0u;/*进路选排开始周期数*/
|
||||
UINT8 routeState = GetRouteState(DeviceId); /*获取进路状态*/
|
||||
UINT8 routeLevel = GetRouteLevel(DeviceId);
|
||||
UINT16 lastPhyLockId = GetRouteLastPhySectionId(DeviceId); /*获取指定ID进路最后一个物理区段ID*/
|
||||
@@ -1584,10 +1653,11 @@ UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dat
|
||||
UINT8 dcQState = GetRouteDCQState(DeviceId);/*进路调车请求状态*/
|
||||
UINT8 dcTState = GetRouteDCTYState(DeviceId);/*进路调车同意状态*/
|
||||
UINT8 chDCAgreeBtnErrState = GetRouteDcAgreeButtonErrState(DeviceId);/*进路调车同意按钮故障状态*/
|
||||
UINT8 RouteCiId = 0u; /*进路所属联锁*/
|
||||
UINT8 CiTypeOfRoute = 0u; /*当前进路所属联锁类型*/
|
||||
UINT8 ciTrainTestState = 0u; /*试车线联锁状态*/
|
||||
|
||||
UINT8 routeAutoTriggerFlag = GetRouteAutoTriggerFlag(DeviceId); /*获取进路自动触发标志*/
|
||||
|
||||
|
||||
xuanpaiStartCycNum = GetRouteXuanPaiStartCycNum(DeviceId);/*进路选排开始周期数*/
|
||||
switch (MaskType)
|
||||
{
|
||||
case MASK_TYPE_ROUTE_IDLE:/*进路空闲码位*/
|
||||
@@ -1601,7 +1671,8 @@ UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dat
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_ROUTE_XUANPAI:/*进路选排码位*/
|
||||
if (ROUTE_STATE_XUANPAI == routeState)
|
||||
/* 处于选排周期号有效即可发送码位*/
|
||||
if (xuanpaiStartCycNum > 0u)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
@@ -1673,10 +1744,11 @@ UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dat
|
||||
break;
|
||||
case MASK_TYPE_ROUTE_LOCKSTATE:/*CI-ZC码位,基本进路锁闭状态码位:根据接口说明,进路属于办理状态,引导进路均发送0,当进路状态为预选或选排且最后一个区段为锁闭状态则仍发1,解决CBTC模式进路追踪办理动道岔期间不给ZC发进路建立状态*/
|
||||
/*获取进路所属CI*/
|
||||
RouteCiId = GetRouteBelongCiId(DeviceId);
|
||||
chVirCiId = GetRouteBelongVirCiId(DeviceId);
|
||||
chVirCiType = GetLocalVirCiType(chVirCiId);
|
||||
/*获取联锁类型*/
|
||||
CiTypeOfRoute = GetCiType(RouteCiId);
|
||||
if ((0u != RouteCiId) && (0u != CiTypeOfRoute))
|
||||
|
||||
if ((0u != chVirCiId) && (0u != chVirCiType))
|
||||
{
|
||||
if ((ROUTE_STATE_IDLE != routeState)
|
||||
&& (ROUTE_STATE_FIRST_XUANPAI != routeState)
|
||||
@@ -1693,7 +1765,7 @@ UINT8 RouteMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* dat
|
||||
)
|
||||
{
|
||||
ciTrainTestState = GetCiTrainTestStatus();
|
||||
if ((CI_TYPE_SCX == CiTypeOfRoute) && (CI_TRAIN_TEST_ON != ciTrainTestState))
|
||||
if ((CI_TYPE_SCX == chVirCiType) && (CI_TRAIN_TEST_ON != ciTrainTestState))
|
||||
{
|
||||
;
|
||||
}
|
||||
@@ -1881,7 +1953,6 @@ UINT8 PlatMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* data
|
||||
UINT8 mutualLockState = 0u;
|
||||
UINT8 psdState = 0u;
|
||||
|
||||
UINT8 includeVirFlag = GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT8 RelayCollState = 0u;
|
||||
UINT8 localCi = GetSystemParaLocalCiId();
|
||||
UINT8 virtualZDZFBelongCiId = 0U;
|
||||
@@ -1901,13 +1972,18 @@ UINT8 PlatMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* data
|
||||
UINT8 esbErrFlag = ESB_ERROR_FLAG_NO; /*紧急关闭按钮故障标志*/
|
||||
UINT8 chCleFarePDBFlaLigFlag = 0U;/*清客确认箱PDB按钮闪灯状态*/
|
||||
UINT8 chPsdVideoQkDriveState = 0U;/*清客确认箱视频清客驱动状态*/
|
||||
UINT8 chRtnIndicatorDevId = 0U;/*无人折返报警灯设备ID*/
|
||||
UINT16 wRtnIndicatorDevId = 0U;/*无人折返报警灯设备ID*/
|
||||
UINT8 chNonRrnAdhesionState = 0U;/*无人折返按钮粘连状态*/
|
||||
UINT8 cEsbCutErrFlag = ESB_ERROR_FLAG_NO; /*紧急关闭旁路按钮故障标志*/
|
||||
UINT16 wEsbCollRelayId = 0U; /*ESB采集继电器ID*/
|
||||
UINT8 cPsdExceptOpenState = 0U; /*屏蔽门异常打开状态*/
|
||||
UINT8 cPsdExceptState = 0U; /*屏蔽门异常状态*/
|
||||
UINT8 chJXTCMutualLockFaultState = 0U; /*间隙探测按钮故障状态*/
|
||||
UINT8 chIBPBtnState = 0U; /*IBP按钮状态*/
|
||||
UINT8 chIBPBtnFaultState = 0U; /*IBP按钮故障状态*/
|
||||
UINT8 cEsbCutBtnState = 0U; /*紧急关闭旁路按钮激活状态*/
|
||||
UINT8 cOnePlatEsbState = 0U; /*同站紧急按钮激活状态*/
|
||||
UINT8 cOnePlatEsbCutState = 0U; /*同站紧急旁路按钮激活状态*/
|
||||
|
||||
chRtnIndicatorDevId = GetIndicatorRelNonReturnId(DeviceId);
|
||||
wRtnIndicatorDevId = GetIndicatorRelNonReturnId(DeviceId);
|
||||
virtualZDZFBelongCiId = GetVirtualZDZFBelongCiId();
|
||||
virtualZDZFDevType = GetVirtualZDZFDevType();
|
||||
virtualZDZFButtonState = GetVirtualZDZFButtonState();
|
||||
@@ -1915,50 +1991,44 @@ UINT8 PlatMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* data
|
||||
switch (MaskType)
|
||||
{
|
||||
case MASK_TYPE_PLAT_AUTORETURNSIG_BUTTONSTAT:/*站台无人折返按钮激活状态码位*/
|
||||
if (FUNC_SWITCH_ON == includeVirFlag)
|
||||
/*若未配置虚拟联锁,则DeviceId为指示灯ID*/
|
||||
for (ii = 0u; ii < GetIndicatorCurSum(); ii++)
|
||||
{
|
||||
DealAutoReturnButtonMask_Vir(DeviceId, MaskId, dataBuf);/*若配置虚拟联锁,则DeviceId为指示灯表的行ID*/
|
||||
}
|
||||
else
|
||||
{/*若未配置虚拟联锁,则DeviceId为指示灯ID*/
|
||||
for (ii = 0u; ii < GetIndicatorCurSum(); ii++)
|
||||
{
|
||||
if ((DeviceId == GetIndicatorId(ii))
|
||||
&& (INDICATOR_TYPE_EXPRESS_RETURN == GetIndicatorType(DeviceId)))
|
||||
{/*设备ID对应且指示灯类型为无人折返灯*/
|
||||
if ((DeviceId == GetIndicatorId(ii))
|
||||
&& (INDICATOR_TYPE_EXPRESS_RETURN == GetIndicatorType(DeviceId)))
|
||||
{/*设备ID对应且指示灯类型为无人折返灯*/
|
||||
|
||||
if ((virtualZDZFBelongCiId == localCi) && (CI_DEVICE_TYPE_AUTORETURN == virtualZDZFDevType))
|
||||
{/*无人折返按钮为虚拟设备*/
|
||||
if (VIRTUAL_ZDZFAJ_BUTTON_YES == virtualZDZFButtonState)
|
||||
{/*虚拟设备无人折返按钮按下*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
if ((virtualZDZFBelongCiId == localCi) && (CI_DEVICE_TYPE_AUTORETURN == virtualZDZFDevType))
|
||||
{/*无人折返按钮为虚拟设备*/
|
||||
if (VIRTUAL_ZDZFAJ_BUTTON_YES == virtualZDZFButtonState)
|
||||
{/*虚拟设备无人折返按钮按下*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
}
|
||||
else
|
||||
{/*无人折返按钮是真实的*/
|
||||
relaySum = GetIndicatorRelaySum(DeviceId);
|
||||
relayIdBuf = GetIndicatorRelayIdBuf(DeviceId);
|
||||
if ((3u != relaySum) || (NULL == relayIdBuf))
|
||||
{/*继电器数据错误或无人折返按钮为虚拟设备*/
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{/*无人折返按钮是真实的*/
|
||||
relaySum = GetIndicatorRelaySum(DeviceId);
|
||||
relayIdBuf = GetIndicatorRelayIdBuf(DeviceId);
|
||||
if ((3u != relaySum) || (NULL == relayIdBuf))
|
||||
{/*继电器数据错误或无人折返按钮为虚拟设备*/
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
{
|
||||
RelayCollState = GetRelayCollState(relayIdBuf[2]);
|
||||
chNonRrnAdhesionState = GetNonRtnAdhesionState(wRtnIndicatorDevId);
|
||||
|
||||
if ((RELAY_STATE_UP == RelayCollState) && (RTN_RELAY_ADHESION_NO == chNonRrnAdhesionState))
|
||||
{/*无人折返按钮继电器吸起*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
RelayCollState = GetRelayCollState(relayIdBuf[2]);
|
||||
chNonRrnAdhesionState = GetNonRtnAdhesionState(chRtnIndicatorDevId);
|
||||
|
||||
if ((RELAY_STATE_UP == RelayCollState) && (RTN_RELAY_ADHESION_NO == chNonRrnAdhesionState))
|
||||
{/*无人折返按钮继电器吸起*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2028,16 +2098,41 @@ UINT8 PlatMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* data
|
||||
/*码位值发0*/
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_ESP_PRESS_STATE:
|
||||
wEsbCollRelayId = GetEsbRelayId(DeviceId); /*获取ESB采集继电器*/
|
||||
RelayCollState = GetRelayCollState(wEsbCollRelayId); /*获取ESB采集继电器状态*/
|
||||
if (RELAY_STATE_UP == RelayCollState)
|
||||
case MASK_TYPE_CUT_ESP_STATE:
|
||||
/*紧急关闭按钮旁路按钮激活状态*/
|
||||
cEsbCutBtnState = GetEsbCutState(DeviceId);
|
||||
if (ESB_CUT_YES == cEsbCutBtnState)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf); /*ESB未按下,发1*/
|
||||
SetMaskValue(MaskId, dataBuf); /*旁路有效,码位发1*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*ESB按下,发0*/
|
||||
/*旁路无效,码位发0*/
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_ONEPLAT_ESP_STATE:
|
||||
/*紧急关闭按钮同站紧急按钮激活状态*/
|
||||
cOnePlatEsbState = GetOnePlatEsbState(DeviceId);
|
||||
cOnePlatEsbCutState = GetOnePlatEsbCutState(DeviceId);
|
||||
if ((ESB_STATE_VALID_NO == cOnePlatEsbState) || (ESB_CUT_YES == cOnePlatEsbCutState))
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf); /*紧急无效或旁路有效,码位发1*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*紧急有效,码位发0*/
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_ONEPLAT_CUT_ESP_STATE:
|
||||
/*紧急关闭按钮同站旁路按钮激活状态*/
|
||||
cOnePlatEsbCutState = GetOnePlatEsbCutState(DeviceId);
|
||||
if (ESB_CUT_YES == cOnePlatEsbCutState)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf); /*同站旁路有效,码位发1*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*同站旁路无效,码位发0*/
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PSD_STATE_ATS:/*站台屏蔽门状态码位;给ATS*/
|
||||
@@ -2114,6 +2209,30 @@ UINT8 PlatMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* data
|
||||
else
|
||||
{/*未开始计时或计时未到,给现地和ATS发送无障碍物*/
|
||||
}
|
||||
/* 间隙探测停止时间内,继续采信间隙探测结果*/
|
||||
if(CI_TIME_OUT == SystemOverTimeCheck(GetStopDetectionCycNum(DeviceId), GetwJXTCStopDetectTime()))
|
||||
{
|
||||
/*间隙探测停止时间已经到了,不在继续采信间隙探测结果*/
|
||||
}
|
||||
else
|
||||
{
|
||||
if(0u == GetStopDetectionCycNum(DeviceId))
|
||||
{
|
||||
/*未开始计时*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 间隙探测停止时间未到,继续采信间隙探测结果*/
|
||||
if (PSD_REMORA_YES == GetPsdRemoraState(DeviceId))
|
||||
{/*1表示间隙探测有障碍物*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{/*0表示间隙探测无障碍物*/
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PSD_JXTC_PANGLU:
|
||||
@@ -2257,15 +2376,82 @@ UINT8 PlatMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UINT8* data
|
||||
/*视频清客驱动状态为无人或者无效,红灯码位无效*/
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PSD_EXCEPT_OPEN: /*站台屏蔽门异常打开状态码位-给ZC/ATS用*/
|
||||
cPsdExceptOpenState = GePsdExceptOpenState(DeviceId);
|
||||
if (PSD_EXCEPT_OPEN_NO == cPsdExceptOpenState)
|
||||
case MASK_TYPE_PSD_EXCEPT: /*站台屏蔽门异常状态码位-给ATS/ZC用*/
|
||||
cPsdExceptState = GePsdExceptState(DeviceId);
|
||||
if (PSD_EXCEPT_NO == cPsdExceptState)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf); /*PSD未异常打开,码位组1*/
|
||||
SetMaskValue(MaskId, dataBuf); /*PSD未异常,码位组1*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*PSD异常打开,码位组0*/
|
||||
/*PSD异常,码位组0*/
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PSD_JXTCPANGLU_FAULT:
|
||||
chJXTCMutualLockFaultState= GetPsdJXTCMutualLockFaultState(DeviceId);
|
||||
if (JXTC_MUTUALLOCKFAULT_YES == chJXTCMutualLockFaultState)
|
||||
{/*间隙探测互锁解除按钮故障*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{/*间隙探测互锁解除按钮未故障*/
|
||||
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PSD_IBP_STATE:
|
||||
chIBPBtnState= GetPsdButtonIbpState(DeviceId);
|
||||
if (PLATFORM_DEPAR_BUTTON_STATE_VALID == chIBPBtnState)
|
||||
{/*IBP盘发车按钮有效*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{/*IBP盘发车按钮无效*/
|
||||
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PSD_IBP_FAULT:
|
||||
chIBPBtnFaultState= GetPsdButtonIbpState(DeviceId);
|
||||
if (PLATFORM_DEPAR_BUTTON_STATE_FAULT == chIBPBtnFaultState)
|
||||
{/*IBP盘发车按钮故障*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{/*IBP盘发车按钮未故障*/
|
||||
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PSD_JXTC_STATE:
|
||||
if (JXTC_MUTUALLOCK_REMOVE_YES == GetJXTCMutualLockState(DeviceId))
|
||||
{/*间隙探测互锁解除*/
|
||||
}
|
||||
else
|
||||
{/*间隙探测未互锁解除*/
|
||||
if (CI_TIME_OUT == SystemOverTimeCheck(GetStartDetectionCycNum(DeviceId), GetGapDetectCount()))
|
||||
{
|
||||
/*间隙探测开始探测有效*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未开始计时或计时未到,给现地和ATS发送未启动*/
|
||||
}
|
||||
/* 间隙探测停止时间内*/
|
||||
if(CI_TIME_OUT == SystemOverTimeCheck(GetStopDetectionCycNum(DeviceId), GetwJXTCStopDetectTime()))
|
||||
{
|
||||
/*间隙探测停止时间已经到了*/
|
||||
}
|
||||
else
|
||||
{
|
||||
if(0u == GetStopDetectionCycNum(DeviceId))
|
||||
{
|
||||
/*未开始计时*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 间隙探测停止时间未到*/
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -2342,6 +2528,11 @@ UINT8 WashManchineMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UIN
|
||||
{
|
||||
UINT8 returnValue = CI_SUCCESS;/*返回值默认成功*/
|
||||
UINT8 chWashMachineReadyState = 0U;/*洗车机就绪状态*/
|
||||
UINT8 washAdhesionState = 0U; /*洗车线洗车同意按钮粘连状态*/
|
||||
UINT8 dccWashAdhesionState = 0U; /*DCC洗车同意按钮粘连状态*/
|
||||
UINT8 passWashAdhesionState = 0U; /*洗车线反向通过同意按钮粘连状态*/
|
||||
UINT8 dccPassWashAdhesionState = 0U; /*DCC反向通过同意按钮粘连*/
|
||||
|
||||
UINT8 chWashModeState = 0U;/*洗车机工作模式*/
|
||||
|
||||
switch (MaskType)
|
||||
@@ -2367,6 +2558,50 @@ UINT8 WashManchineMaskManage(UINT8 MaskType, UINT16 DeviceId, UINT16 MaskId, UIN
|
||||
{
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_WASHMACHINE_ZNTBUTTN:
|
||||
/*降级模式洗车线洗车同意按钮粘连码位*/
|
||||
washAdhesionState = GetDownWashAllowErrState(DeviceId);
|
||||
if (WASH_BUTTON_STATE_ERR_NO == washAdhesionState)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_DCCWASHACHINE_ZNTBUTTN:
|
||||
/*降级模式DCC洗车同意按钮粘连码位*/
|
||||
dccWashAdhesionState = GetDownDccWashAllowErrState(DeviceId);
|
||||
if (WASH_BUTTON_STATE_ERR_NO == dccWashAdhesionState)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_PASSWASHMACHINE_ZNTBUTTN:
|
||||
/*降级模式洗车线洗车反向通过同意按钮粘连码位*/
|
||||
passWashAdhesionState = GetDownWashAllowPassErrState(DeviceId);
|
||||
if (WASH_BUTTON_STATE_ERR_NO == passWashAdhesionState)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
break;
|
||||
case MASK_TYPE_DCCPASSWASHMACHINE_ZNTBUTTN:
|
||||
/*降级模式DCC洗车反向通过同意按钮粘连码位*/
|
||||
dccPassWashAdhesionState = GetDownDccWashAllowPassErrState(DeviceId);
|
||||
if (WASH_BUTTON_STATE_ERR_NO == dccPassWashAdhesionState)
|
||||
{
|
||||
SetMaskValue(MaskId, dataBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
break;
|
||||
default:
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
@@ -2790,10 +3025,8 @@ UINT8 OverlapValidMaskCheck(const UINT16 rtOverlapLockedId)
|
||||
OverlapConditionSwitchStruct* condSwiDataIdBuf = NULL;
|
||||
/* overlap防护道岔 */
|
||||
UINT8 protectSwitchSum = 0u;
|
||||
UINT8 lockStatus = 0u;
|
||||
UINT8 ylockStatus = 0u;/*临时变量:引导总锁状态*/
|
||||
UINT8 fengsuoStateus = 0u;/*临时变量:封锁状态*/
|
||||
UINT8 switchPos = 0u;/*临时变量:道岔位置*/
|
||||
OverlapProtectSwitchStruct* protSwiDataIdBuf = NULL;
|
||||
|
||||
/*防淹门*/
|
||||
@@ -2844,22 +3077,30 @@ UINT8 OverlapValidMaskCheck(const UINT16 rtOverlapLockedId)
|
||||
{ /* overlap道岔 */
|
||||
checkSum = GetOverlapSwitchSum(rtOverlapLockedId);
|
||||
condSwiDataIdBuf = GetOverlapCondSwitchStruct(rtOverlapLockedId);
|
||||
for (ii = 0u; ii < checkSum; ii++)
|
||||
if (NULL != condSwiDataIdBuf)
|
||||
{
|
||||
if ((SWITCH_LOCK_YINZONG_NO == GetSwitchYLockState(condSwiDataIdBuf[ii].SwitchId)) &&
|
||||
(SWITCH_LOCK_FENGSUO_NO == GetSwitchFLockState(condSwiDataIdBuf[ii].SwitchId)) &&
|
||||
(condSwiDataIdBuf[ii].SwitchPosition == GetSwitchCurPosition(condSwiDataIdBuf[ii].SwitchId)))
|
||||
for (ii = 0U; ii < checkSum; ii++)
|
||||
{
|
||||
/* 保护区段所包含的道岔为:非引导总锁且未封锁且道岔位置正确,非连通位置不存在侵入,才发送码位*/
|
||||
if ((SWITCH_LOCK_YINZONG_NO == GetSwitchYLockState(condSwiDataIdBuf[ii].SwitchId)) &&
|
||||
(SWITCH_LOCK_FENGSUO_NO == GetSwitchFLockState(condSwiDataIdBuf[ii].SwitchId)) &&
|
||||
(condSwiDataIdBuf[ii].SwitchPosition == GetSwitchCurPosition(condSwiDataIdBuf[ii].SwitchId)))
|
||||
{
|
||||
/* 保护区段所包含的道岔为:非引导总锁且未封锁且道岔位置正确,非连通位置不存在侵入,才发送码位*/
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
/*异常分支,返回失败*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2867,28 +3108,78 @@ UINT8 OverlapValidMaskCheck(const UINT16 rtOverlapLockedId)
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == returnValue)
|
||||
{ /*保护区段关联防护道岔*/
|
||||
{
|
||||
/*检查保护区段关联防护道岔未引导总锁、未封锁*/
|
||||
protectSwitchSum = GetOverlapRelatedProtSwitSum(rtOverlapLockedId);
|
||||
protSwiDataIdBuf = GetOverlapRelatedProtSwitStru(rtOverlapLockedId);
|
||||
for (ii = 0u; ii < protectSwitchSum; ii++)
|
||||
if (NULL != protSwiDataIdBuf)
|
||||
{
|
||||
lockStatus = GetSwitchLockStatus(protSwiDataIdBuf[ii].ProtectSwitchId);
|
||||
ylockStatus = GetSwitchYLockState(protSwiDataIdBuf[ii].ProtectSwitchId);
|
||||
switchPos = GetSwitchCurPosition(protSwiDataIdBuf[ii].ProtectSwitchId);
|
||||
fengsuoStateus = GetSwitchFLockState(protSwiDataIdBuf[ii].ProtectSwitchId);
|
||||
if ((SWITCH_LOCK_YINZONG_NO == ylockStatus)
|
||||
&& ((((SWITCH_LOCK_STATUS_PROTECT == lockStatus) || (SWITCH_LOCK_STATUS_DAP == lockStatus)) && (protSwiDataIdBuf[ii].ProtectPosition == switchPos))
|
||||
|| (FUNC_SWITCH_ON == cSndSideProFuncSwitch))
|
||||
&& (SWITCH_LOCK_FENGSUO_NO == fengsuoStateus))
|
||||
for (ii = 0U; ii < protectSwitchSum; ii++)
|
||||
{
|
||||
/* 保护区段关联防护道岔:非引导总锁且防护锁闭且(防护道岔位置正确或支持二级侧防)且未封锁,才发送码位*/
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
ylockStatus = GetSwitchYLockState(protSwiDataIdBuf[ii].ProtectSwitchId);
|
||||
fengsuoStateus = GetSwitchFLockState(protSwiDataIdBuf[ii].ProtectSwitchId);
|
||||
if ((SWITCH_LOCK_YINZONG_NO == ylockStatus) && (SWITCH_LOCK_FENGSUO_NO == fengsuoStateus))
|
||||
{
|
||||
/*防护道岔未引导总锁、未封锁*/
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = CI_ERROR;
|
||||
/*异常分支,返回失败*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/*保护区段关联防护道岔【位置正确】*/
|
||||
if (CI_SUCCESS == returnValue)
|
||||
{
|
||||
devId = 0U;
|
||||
devState = 0U;
|
||||
returnValue = OvlpRelatedProtSwitchPosCheck(rtOverlapLockedId, &devId, &devState);
|
||||
if (CI_SUCCESS == returnValue)
|
||||
{
|
||||
/* 通过检查 */
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 记录故障码 */
|
||||
SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_POSTION_STATE, devState, ESEND_LEVEL_ZERO);
|
||||
/* 失败返回 */
|
||||
returnValue = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/*保护区段关联防护道岔【防护锁闭】或【单锁且防护锁闭】*/
|
||||
if (CI_SUCCESS == returnValue)
|
||||
{
|
||||
devId = 0U;
|
||||
devState = 0U;
|
||||
returnValue = OvlpRelatedProtSwitchLockCheck(rtOverlapLockedId, &devId, &devState);
|
||||
if (CI_SUCCESS == returnValue)
|
||||
{
|
||||
/* 通过检查 */
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 记录故障码 */
|
||||
SetErrorData(functionId, CI_DEVICE_TYPE_SWITCH, devId, ETYPE_SWT_LOCK_STATUS, devState, ESEND_LEVEL_ZERO);
|
||||
/* 失败返回 */
|
||||
returnValue = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3036,12 +3327,21 @@ void PackCiToCimCommData(void)
|
||||
UINT8 cCommVobcNum = 0U; /*通信车数量*/
|
||||
UINT8 cVobcToCiDataSum = 0U;
|
||||
VobcToCiDataStruct* pstrVobcToCiData = NULL;
|
||||
UINT8 chlocalMode = RC_WORK_MODE_TO_AIM_CI;
|
||||
UINT32 dwCommBadCycCount = 0U;
|
||||
|
||||
cLocalWorkMode = GetLocalRcWorkMode();
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
dwCurCycNum = Get2oo2CurCycleNum();
|
||||
ciToCimDataBuffer[i++] = cLocalWorkMode;
|
||||
if (RC_WORK_MODE_CI == cLocalWorkMode)
|
||||
{
|
||||
chlocalMode = RC_WORK_MODE_TO_AIM_CI;
|
||||
}
|
||||
else
|
||||
{
|
||||
chlocalMode = RC_WORK_MODE_TO_AIM_TIOC;
|
||||
}
|
||||
ciToCimDataBuffer[i++] = chlocalMode;
|
||||
ciToCimDataBuffer[i++] = cLocalCiId;
|
||||
|
||||
transmitDevIndex = i;
|
||||
@@ -3562,10 +3862,10 @@ void DealAutoReturnButtonMask_Vir(UINT16 DeviceId, UINT16 MaskId, UINT8* pdataBu
|
||||
UINT8 virtualZDZFBelongCiId = 0U;
|
||||
UINT8 virtualZDZFDevType = 0U;
|
||||
UINT8 virtualZDZFButtonState = 0U;
|
||||
UINT8 chRtnIndicatorDevId = 0U;/*无人折返报警灯设备ID*/
|
||||
UINT16 wRtnIndicatorDevId = 0U;/*无人折返报警灯设备ID*/
|
||||
UINT8 chNonRrnAdhesionState = 0U;/*无人折返按钮粘连状态*/
|
||||
|
||||
chRtnIndicatorDevId = GetIndicatorRelNonReturnId(DeviceId);
|
||||
wRtnIndicatorDevId = GetIndicatorRelNonReturnId(DeviceId);
|
||||
virtualZDZFBelongCiId = GetVirtualZDZFBelongCiId();
|
||||
virtualZDZFDevType = GetVirtualZDZFDevType();
|
||||
virtualZDZFButtonState = GetVirtualZDZFButtonState();
|
||||
@@ -3598,7 +3898,7 @@ void DealAutoReturnButtonMask_Vir(UINT16 DeviceId, UINT16 MaskId, UINT8* pdataBu
|
||||
else
|
||||
{
|
||||
RelayCollState = GetRelayCollState(pRelayIdBuf[2]);
|
||||
chNonRrnAdhesionState = GetNonRtnAdhesionState(chRtnIndicatorDevId);
|
||||
chNonRrnAdhesionState = GetNonRtnAdhesionState(wRtnIndicatorDevId);
|
||||
if ((RELAY_STATE_UP == RelayCollState) && (RTN_RELAY_ADHESION_NO == chNonRrnAdhesionState))
|
||||
{/*无人折返按钮继电器吸起*/
|
||||
SetMaskValue(MaskId, pdataBuf);
|
||||
@@ -4038,6 +4338,8 @@ void PackCiToCimDeviceData(void)
|
||||
UINT32 switchCollTolerateCycNum = 0U;
|
||||
UINT8 chSwitchBDState = SEND_CIM_COLLTOLERATE_NO;
|
||||
UINT8 chSignalDsState = 0xFFU;
|
||||
UINT8 chReverseState = 0xFFU;
|
||||
const ReverseSwitchCfgDataStru* pReverseCfg = NULL;
|
||||
|
||||
/*发送道岔数据*/
|
||||
pSwitchData = GetSwitchData();
|
||||
@@ -4167,6 +4469,7 @@ void PackCiToCimDeviceData(void)
|
||||
ii += 2u;
|
||||
ciToCimDataBuffer[ii] = pPsdData[deviceId].cPsdExceptOpenState; /*屏蔽门异常打开状态:0x55-异常打开,0xAA-未异常打开*/
|
||||
ii++;
|
||||
ciToCimDataBuffer[ii++] = pPsdData[deviceId].ibpButtonState; /*IBP盘发车按钮状态*/
|
||||
|
||||
}
|
||||
|
||||
@@ -4272,9 +4575,18 @@ void PackCiToCimDeviceData(void)
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].WashMachineWorkModeDrvtState;/*洗车机工作模式设置驱动状态(动态字段:驱动)*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].WashModeState;/*洗车模式(动态字段:采集)*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chSetWashWorkModeBack;/*设置洗车机工作模式反馈*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowState;/*降级模式洗车同意状态(动态字段:采集)*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowPassState;/*降级模式洗车同意通过状态(动态字段:采集)*/
|
||||
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowState;/**降级模式洗车同意状态(动态字段:融合)*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowPassState;/*降级模式洗车同意通过状态(动态字段:融合)*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashReqState;/*降级模式洗车请求状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashPassReqState;/*降级模式反向洗车请求状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowColState;/*降级模式洗车线洗车同意状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownDccWashAllowColState;/*降级模式DCC洗车同意状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowErrState;/*降级模式洗车线洗车同意粘连状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownDccWashAllowErrState;/*降级模式DCC洗车同意粘连状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowPassColState;/*降级模式洗车线洗车同意反向通过状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownDccWashAllowPassColState;/*降级模式DCC洗车同意反向通过状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownWashAllowPassErrState;/*降级模式洗车线洗车同意反向通过粘连状态*/
|
||||
ciToCimDataBuffer[ii++] = pWashMachineData[deviceId].chDownDccWashAllowPassErrState;/*降级模式DCC洗车同意反向通过粘连状态*/
|
||||
}
|
||||
|
||||
|
||||
@@ -4347,9 +4659,35 @@ void PackCiToCimDeviceData(void)
|
||||
ciToCimDataBuffer[ii++] = pFloodGateDataCC[deviceId].FloodGateCloseApplyIvocSum; /*防淹门关门申请列车数量*/
|
||||
ciToCimDataBuffer[ii++] = pFloodGateDataCC[deviceId].FloodGateCloseAnsIvocSum; /*防淹门关门允许,列车回复数量*/
|
||||
ciToCimDataBuffer[ii++] = pFloodGateDataCC[deviceId].FloodGateAccessUTFlag; /*防淹门接近区段是否有非通信车标志*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*打印倒切柜数据*/
|
||||
pReverseCfg = GetReverseCfgData();
|
||||
if (NULL != pReverseCfg)
|
||||
{
|
||||
if (0U == pReverseCfg->wId)
|
||||
{
|
||||
ciToCimDataBuffer[ii++] = 0U;/*倒切开关数量发0*/
|
||||
}
|
||||
else
|
||||
{
|
||||
ciToCimDataBuffer[ii++] = 1U;/*倒切开关数量发1*/
|
||||
ShortToChar(pReverseCfg->wId, &ciToCimDataBuffer[ii]);/*倒切开关ID (初始化字段)*/
|
||||
ii += 2u;
|
||||
chReverseState = GetReverseSwitchState();
|
||||
ciToCimDataBuffer[ii++] = chReverseState;/*倒切开关状态*/
|
||||
ShortToChar(pReverseCfg->wRelateBoardNum, &ciToCimDataBuffer[ii]);/*倒切板卡数量*/
|
||||
ii += 2u;
|
||||
for (jj = 0u; jj <pReverseCfg->wRelateBoardNum; jj++)
|
||||
{
|
||||
ShortToChar(pReverseCfg->strRelateBoardBuf[jj].wReversBoardId, &ciToCimDataBuffer[ii]);/*倒切板卡ID*/
|
||||
ii += 2u;
|
||||
chReverseState = GetReverseBoardState(pReverseCfg->strRelateBoardBuf[jj].wReversBoardId);
|
||||
ciToCimDataBuffer[ii++] = chReverseState;/*倒切板卡状态*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*发送CIM*/
|
||||
debug_infor_printf((const)"\nCIM_SEND_DEVSTATE:%d", ii);
|
||||
debug_out_array(0xAA, ciToCimDataBuffer, ii);
|
||||
@@ -4591,6 +4929,7 @@ UINT8 ParasePlantCCUHeartFrame(UINT8* dataBuf)
|
||||
UINT16 curCoup = 0U;
|
||||
UINT32 tempera = 0U;
|
||||
UINT8 flagEEPROM = 0U;
|
||||
UINT32 ccuSyn = 0u;/*通控请求序列号*/
|
||||
UINT32 crcRecv = 0U;
|
||||
|
||||
/*接收到平台心跳帧*/
|
||||
@@ -4632,6 +4971,9 @@ UINT8 ParasePlantCCUHeartFrame(UINT8* dataBuf)
|
||||
/*EEPROM存储检验*/
|
||||
flagEEPROM = dataBuf[ii];
|
||||
ii += 1u;
|
||||
/*通控请求序列号*/
|
||||
ccuSyn = LongFromChar(&dataBuf[ii]);
|
||||
ii += 4u;
|
||||
/*CRC校验码*/
|
||||
crcRecv = LongFromChar(&dataBuf[ii]); /*获取CRC*/
|
||||
ii += 4u;
|
||||
@@ -4641,7 +4983,7 @@ UINT8 ParasePlantCCUHeartFrame(UINT8* dataBuf)
|
||||
{
|
||||
|
||||
/*计算CRC校验码,除长度2和CRC4*/
|
||||
crcCheck = Tioc_PlatCommonCrc32(&dataBuf[2], 22U);
|
||||
crcCheck = Tioc_PlatCommonCrc32(&dataBuf[2], 26U);
|
||||
|
||||
|
||||
if (crcCheck == crcRecv)
|
||||
@@ -4732,6 +5074,7 @@ UINT8 ParasePlantSEBHeartFrame(UINT8* dataBuf)
|
||||
|
||||
UINT8 boardSEBId = 0U;/*扩展板ID */
|
||||
UINT16 dataLengthRcv = 0U; /*帧长度*/
|
||||
UINT32 sebSyn = 0u; /*串口请求序列号*/
|
||||
UINT32 crcRecv = 0U; /*CRC校验码*/
|
||||
UINT32 rcvCyc = 0U; /*周期号*/
|
||||
/*接收到平台心跳帧*/
|
||||
@@ -4755,17 +5098,20 @@ UINT8 ParasePlantSEBHeartFrame(UINT8* dataBuf)
|
||||
/*数据内容 3字节*/
|
||||
ii += 5U;
|
||||
|
||||
/*串口请求序列号*/
|
||||
sebSyn = LongFromChar(&dataBuf[ii]);
|
||||
ii += 4U;
|
||||
|
||||
/*CRC校验码*/
|
||||
crcRecv = LongFromChar(&dataBuf[ii]); /*获取CRC*/
|
||||
ii += 4u;
|
||||
|
||||
/*长度校验*/ /*总长度16字节*/
|
||||
/*长度校验*/ /*总长度20字节*/
|
||||
if (dataLengthRcv == ii - 2U)
|
||||
{
|
||||
|
||||
/*计算CRC校验码,除长度2和CRC4*/
|
||||
crcCheck = Tioc_PlatCommonCrc32(&dataBuf[2], 10U);
|
||||
crcCheck = Tioc_PlatCommonCrc32(&dataBuf[2], 14U);
|
||||
|
||||
|
||||
if (crcCheck == crcRecv)
|
||||
@@ -5231,4 +5577,131 @@ void PackCiToCimCollDiffData(void)
|
||||
|
||||
/*发送维护机*/
|
||||
(void)DarkInfoPack(CIM_INFO_IO_COLL_DIFF_ALARM, ciToCimDataBuffer, ii);
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 组包发送CIM双系IO采集不一致信息
|
||||
* 参数说明: void
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackCiToCimSwitchRedunAlarmData(void)
|
||||
{
|
||||
UINT16 wSwitchCurSum = 0u;
|
||||
UINT32 dwRedunHunXianAlarmCfg = 0u;
|
||||
UINT16 i = 0u;
|
||||
UINT16 wSwitchId = 0u;
|
||||
UINT8 cRedunCollCfg = 0u;
|
||||
UINT16 cAlarmCount = 0u;
|
||||
UINT32 dwHunXianStCyc = 0u;
|
||||
UINT8 cRedunHunXianStt = 0u;
|
||||
UINT32 dwFaultStCyc = 0u;
|
||||
UINT8 j = 0u;
|
||||
UINT32 dwSwitchDrvStCyc = 0u;
|
||||
UINT8 cTimeOut = 0u;
|
||||
UINT16 wRelayId = 0u;
|
||||
UINT16 wBelongOcId = 0u;
|
||||
UINT16 wIndex = 1u; /*组包下标,跳过1字节道岔总数*/
|
||||
UINT8 ciToCimDataBuffer[CI_TO_CIM_DATA_LEN_MAX] = { 0U }; /*数组长度5000字节,大于500个道岔*2个OC*4字节报警,暂无需越界防护*/
|
||||
|
||||
wSwitchCurSum = GetSwitchCurSum();
|
||||
dwRedunHunXianAlarmCfg = GetSwitchRedunCollHunXianCycCfg();
|
||||
for (i = 0u; i < wSwitchCurSum; i++)
|
||||
{
|
||||
wSwitchId = GetSwitchId(i);
|
||||
cRedunCollCfg = GetSwitchRedunCollCfg(wSwitchId);
|
||||
if (REDUN_COLL_YES == cRedunCollCfg)
|
||||
{
|
||||
for (j = 0u; j < SWITCH_REDUN_COLL_MAX; j++)
|
||||
{
|
||||
/*混线报警*/
|
||||
cRedunHunXianStt = GetSwitchRedunHunXianRecovStt(wSwitchId, j);
|
||||
if (REDUN_HX_RECOV_ALL != cRedunHunXianStt)
|
||||
{
|
||||
/*判断混线有效,如果道岔驱动中,容忍报警时间再报警,否则直接报警*/
|
||||
dwHunXianStCyc = GetSwitchRedunJudgHunXianStCyc(wSwitchId, j);
|
||||
dwSwitchDrvStCyc = GetSwitchDriveStartCycNum(wSwitchId);
|
||||
cTimeOut = SystemOverTimeCheck(dwHunXianStCyc, dwRedunHunXianAlarmCfg);
|
||||
if ((0u == dwSwitchDrvStCyc) || (CI_TIME_OUT == cTimeOut))
|
||||
{
|
||||
/*报警*/
|
||||
cAlarmCount += 1u;
|
||||
/*道岔ID*/
|
||||
ShortToChar(wSwitchId, &ciToCimDataBuffer[wIndex]);
|
||||
wIndex += 2u;
|
||||
/*所属OC ID,任选一个冗余采集继电器查询*/
|
||||
wRelayId = GetSwitchRedunDBJ1RelayId(wSwitchId, j);
|
||||
wBelongOcId = GetRelayBelongOCId(wRelayId);
|
||||
ciToCimDataBuffer[wIndex] = (UINT8)wBelongOcId;
|
||||
wIndex += 1u;
|
||||
/*混线报警*/
|
||||
ciToCimDataBuffer[wIndex] = REDUN_ALARM_HUNXIAN;
|
||||
wIndex += 1u;
|
||||
/*报混线则不报采集故障*/
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不报警*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未混线,不报警*/
|
||||
}
|
||||
|
||||
/*采集故障报警*/
|
||||
dwFaultStCyc = GetSwitchRedunFaultStCyc(wSwitchId, j);
|
||||
if (0u < dwFaultStCyc)
|
||||
{
|
||||
/*采集故障有效,如果道岔驱动中,容忍报警时间再报警,否则直接报警*/
|
||||
dwSwitchDrvStCyc = GetSwitchDriveStartCycNum(wSwitchId);
|
||||
cTimeOut = SystemOverTimeCheck(dwFaultStCyc, dwRedunHunXianAlarmCfg);
|
||||
if ((0u == dwSwitchDrvStCyc) || (CI_TIME_OUT == cTimeOut))
|
||||
{
|
||||
/*报警*/
|
||||
cAlarmCount += 1u;
|
||||
/*道岔ID*/
|
||||
ShortToChar(wSwitchId, &ciToCimDataBuffer[wIndex]);
|
||||
wIndex += 2u;
|
||||
/*所属OC ID,任选一个冗余采集继电器查询*/
|
||||
wRelayId = GetSwitchRedunDBJ1RelayId(wSwitchId, j);
|
||||
wBelongOcId = GetRelayBelongOCId(wRelayId);
|
||||
ciToCimDataBuffer[wIndex] = (UINT8)wBelongOcId;
|
||||
wIndex += 1u;
|
||||
/*采集故障报警*/
|
||||
ciToCimDataBuffer[wIndex] = REDUN_ALARM_FAULT;
|
||||
wIndex += 1u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不报警*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未故障,不报警*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*道岔不具备冗余采集,不报警*/
|
||||
}
|
||||
}
|
||||
|
||||
if ((UINT16)UINT8_MAX < cAlarmCount)
|
||||
{
|
||||
/*报警数量非法,导向报警数量为0*/
|
||||
ciToCimDataBuffer[0] = 0u;
|
||||
(void)debug_infor_printf((const)"SwtRedunCollAlarm Err = %d\n", cAlarmCount);
|
||||
(void)DarkInfoPack(CIM_INFO_SWT_REDUN_COLL_ALARM, ciToCimDataBuffer, 1u);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*输出报警*/
|
||||
ciToCimDataBuffer[0] = (UINT8)cAlarmCount;
|
||||
(void)debug_infor_printf((const)"SwtRedunCollAlarm = %d:", cAlarmCount);
|
||||
(void)debug_out_array(0xAA, ciToCimDataBuffer, wIndex);
|
||||
(void)DarkInfoPack(CIM_INFO_SWT_REDUN_COLL_ALARM, ciToCimDataBuffer, wIndex);
|
||||
}
|
||||
}
|
||||
@@ -388,6 +388,13 @@ void PackCiToCimFlyProtectData(void);
|
||||
*/
|
||||
void PackCiToCimCollDiffData(void);
|
||||
|
||||
/*
|
||||
* 功能描述: 组包发送CIM双系IO采集不一致信息
|
||||
* 参数说明: void
|
||||
* 返回值 : 无
|
||||
*/
|
||||
void PackCiToCimSwitchRedunAlarmData(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)5900) /*联锁到CI组包数据最大值*/
|
||||
#define CI_TO_CI_AREA_SNOW_SUM_MAX ((UINT8)4) /*相邻RC间发送的区间雨雪数量最大值*/
|
||||
#define CI_TO_CI_LEAVE_LOGSEC_ROUTE_NUM ((UINT16)100) /*相邻RC间发送的离去逻辑区段检查数量最大值*/
|
||||
|
||||
@@ -87,23 +87,24 @@
|
||||
#define CI_TO_AXIS_DATA_LEN_MAX ((UINT16)3000) /*联锁到AXIS组包数据最大值*/
|
||||
|
||||
/*CI 和 CIM*/
|
||||
#define CI_TO_CIM_DATA_LEN_MAX ((UINT16)5000) /*CI到CIM数据最大值*/
|
||||
#define CI_TO_AIM_DATA_LEN_MAX ((UINT16)5000) /*CI到AIM数据最大值*/
|
||||
#define CIM_INFO_RCI_TO_ATS_DATA ((UINT16)0x2001) /*发送CIM ATS状态信息*/
|
||||
#define CIM_INFO_ATS_TO_RCI_DATA ((UINT16)0x2002) /*发送CIM ATS状态信息*/
|
||||
#define CIM_INFO_VER_INFO ((UINT16)0x2003) /*发送CIM版本号信息*/
|
||||
#define CIM_INFO_COMM_STATE ((UINT16)0x2004) /*发送CIM设备通信状态信息*/
|
||||
#define CIM_INFO_SIGNAL_DS_STATE ((UINT16)0x2005) /*发送CIM信号机断丝状态信息*/
|
||||
#define CIM_INFO_RELAY_DRVANDCOLLDEF ((UINT16)0x2006) /*发送CIM继电器驱动回采不一致报警*/
|
||||
#define CIM_INFO_PSD_ALARM ((UINT16)0x2007) /*发送CIM屏蔽门报警帧类型*/
|
||||
#define CIM_INFO_DEVICE_STATE ((UINT16)0x2008) /*发送CIM设备状态信息*/
|
||||
#define CIM_INFO_MAINTENANCE ((UINT16)0x2009) /*发送CIM维护信息*/
|
||||
#define CIM_INFO_LEU_STATE ((UINT16)0x200A) /*发送CIMLEU状态*/
|
||||
#define CIM_INFOR_RELAY_HUNXIAN_STATE ((UINT16)0x200F) /*发送CIM继电器混线状态信息*/
|
||||
#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 CI_TO_CIM_DATA_LEN_MAX ((UINT16)5000) /*CI到CIM数据最大值*/
|
||||
#define CI_TO_AIM_DATA_LEN_MAX ((UINT16)5000) /*CI到AIM数据最大值*/
|
||||
#define CIM_INFO_RCI_TO_ATS_DATA ((UINT16)0x2001) /*发送CIM ATS状态信息*/
|
||||
#define CIM_INFO_ATS_TO_RCI_DATA ((UINT16)0x2002) /*发送CIM ATS状态信息*/
|
||||
#define CIM_INFO_VER_INFO ((UINT16)0x2003) /*发送CIM版本号信息*/
|
||||
#define CIM_INFO_COMM_STATE ((UINT16)0x2004) /*发送CIM设备通信状态信息*/
|
||||
#define CIM_INFO_SIGNAL_DS_STATE ((UINT16)0x2005) /*发送CIM信号机断丝状态信息*/
|
||||
#define CIM_INFO_RELAY_DRVANDCOLLDEF ((UINT16)0x2006) /*发送CIM继电器驱动回采不一致报警*/
|
||||
#define CIM_INFO_PSD_ALARM ((UINT16)0x2007) /*发送CIM屏蔽门报警帧类型*/
|
||||
#define CIM_INFO_DEVICE_STATE ((UINT16)0x2008) /*发送CIM设备状态信息*/
|
||||
#define CIM_INFO_MAINTENANCE ((UINT16)0x2009) /*发送CIM维护信息*/
|
||||
#define CIM_INFO_LEU_STATE ((UINT16)0x200A) /*发送CIMLEU状态*/
|
||||
#define CIM_INFOR_RELAY_HUNXIAN_STATE ((UINT16)0x200F) /*发送CIM继电器混线状态信息*/
|
||||
#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_SWT_REDUN_COLL_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
@@ -253,20 +253,21 @@ extern AtsMsgCfmStru * GetAtsCfmFst(void);
|
||||
extern AtsMsgCfmStru * GetAtsCfmSnd(void);
|
||||
|
||||
/**
|
||||
* @brief 获取远程筛选二次确认消息
|
||||
* @brief 组TIOC到网关数据--既有信息
|
||||
* @param 无
|
||||
* @return 远程筛选二次确认消息
|
||||
* @return CI_ERROR失败;CI_SUCCESS成功
|
||||
*/
|
||||
extern UINT8 PackTiocToGateWayData(const UINT8 deviceId, const UINT8 targetDevType);
|
||||
UINT8 PackTiocToGateWayData(UINT8* szToGateWayDataBuf, const UINT8 targetDevType, UINT16* wDataIndex);
|
||||
|
||||
|
||||
/**
|
||||
* @brief 解析网关数据帧
|
||||
* @brief 解析网关数据帧---无GAL部分消息反馈内容
|
||||
* @param const UINT8* dataBuf, 数据缓冲区
|
||||
* @param const UINT16 dataLength, 数据长度
|
||||
* @param[out] UINT16* dataIndex, 数据索引
|
||||
* @param[in] const UINT16 dataLength, 数据长度
|
||||
* @return CI_SUCCESS:成功;CI_ERROR:失败
|
||||
*/
|
||||
extern UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength);
|
||||
UINT8 ParseGateWayToCiDataFrame(const UINT8* dataBuf, UINT16* dataIndex, const UINT16 dataLength);
|
||||
|
||||
/**
|
||||
* @brief 清除1次ATS筛选信息
|
||||
@@ -449,4 +450,34 @@ void ClearSndAtsWlbFstCfmMsg(void);
|
||||
*/
|
||||
void ClearSndAtsDaFstCfmMsg(void);
|
||||
|
||||
/**
|
||||
* @brief 解析网关数据帧--按照接口类型区分有无GAL
|
||||
* @param const UINT8* dataBuf, 数据缓冲区
|
||||
* @param const UINT16 dataLength, 数据长度
|
||||
* @note Created By fan 20260604
|
||||
* @return CI_SUCCESS:成功;CI_ERROR:失败
|
||||
*/
|
||||
UINT8 ParseGateWayToCiDataProc(const UINT8* dataBuf, const UINT16 dataLength);
|
||||
|
||||
/*
|
||||
* 功能描述: 组网关数据-按照接口类型区分有无GAL
|
||||
* 参数说明: QueueStruct* ciToAtsDataQueue, 组包发送队列地址
|
||||
* const UINT8 deviceId, 目标系统ID
|
||||
* const UINT8 targetDevType, 目标系统类型
|
||||
* const UINT8 frame,帧类型
|
||||
* UINT8* chSendXiandiorAtsBuf 码位数据数组首地址
|
||||
* 返回值 : 0: 组包失败
|
||||
* 1: 组包成功
|
||||
* fan 20260604
|
||||
*/
|
||||
UINT8 PackCiToGateWayDataProc(const UINT8 deviceId, const UINT8 targetDevType);
|
||||
|
||||
/*
|
||||
* 功能描述: 网关信息解析失败、清除既有已经存储的本周期收到网关信息
|
||||
* 参数说明: 无
|
||||
* 返回值 :无
|
||||
* fan 20260604
|
||||
*/
|
||||
void ClearCurGateWayMsg(void);
|
||||
|
||||
#endif
|
||||
@@ -200,7 +200,6 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
UINT8 devId = 0u;
|
||||
UINT8 ocInCiId = 0u;
|
||||
UINT8 locCiId = 0u;
|
||||
UINT32 curSysCount = 0u; /*当前系统周期*/
|
||||
UINT8 srcDevTypeIdBuff[2] = { 0 }; /*源设备类型ID数组*/
|
||||
UINT8 srcLogicIdBuff[2] = { 0 }; /*源逻辑ID数组*/
|
||||
UINT8 isBreak = 0u; /*退出遍历*/
|
||||
@@ -214,7 +213,6 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
cWorkMode = GetLocalRcWorkMode();
|
||||
|
||||
|
||||
curSysCount = MSCP_GetSysCount();
|
||||
wTiocRcvAtsGtwyDevTypeId = GetTiocTrnsmtGtwyDevTypeId();
|
||||
|
||||
while (1)
|
||||
@@ -274,6 +272,7 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
{
|
||||
|
||||
debug_infor_printf((const)"\nATS_RECV:%d", dataLen);
|
||||
debug_out_array(0xAA, data, (UINT16)dataLen);
|
||||
checkResult = ParseAtsOrXianDiToCiDataFrame(data, (UINT16)dataLen, CI_SYSTEM_TYPE_ATS, devId);
|
||||
|
||||
chCurSystemAreaState = GetLocalCiBackUpPattern();
|
||||
@@ -290,9 +289,10 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
{
|
||||
|
||||
debug_infor_printf((const)"\nGATEWAY_RECV:%d", dataLen);
|
||||
checkResult = ParseGateWayToCiDataFrame(data, (UINT16)dataLen);
|
||||
debug_out_array(0xAA, data, (UINT16)dataLen);
|
||||
checkResult = ParseGateWayToCiDataProc(data, (UINT16)dataLen);
|
||||
}
|
||||
debug_out_array(0xAA, data, (UINT16)dataLen);
|
||||
|
||||
if (CI_ERROR == checkResult)
|
||||
{/*解析失败*/
|
||||
|
||||
@@ -337,7 +337,7 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
/*解析CI数据*/
|
||||
#ifdef LOGPRINT/*日志打印宏*/
|
||||
#ifdef PLATFORM_2OO2/*2oo2平台打印*/
|
||||
debug_infor_printf((const)"\nCI_RECV:%d", (UINT16)dataLen);
|
||||
debug_infor_printf((const)"\nCI_RECV:%d, SrcDev[0x%x]", (UINT16)dataLen, srcDevTypeId);
|
||||
debug_out_array(0xAA, data, (UINT16)dataLen);
|
||||
#endif/*平台打印结束*/
|
||||
|
||||
@@ -345,7 +345,7 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
cLocalDevType = Get2oo2SheBeiType();
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
startLockFlag = GetStartLockFlag();
|
||||
if (devType == cLocalDevType)
|
||||
if (cLocalCiId != devId)
|
||||
{
|
||||
/*解析RC间或CI间数据*/
|
||||
/*判断是否是同一条线路的联锁,不同线路联锁使用互联互通联锁接口,同一条线路使用自家联锁接口*/
|
||||
@@ -354,17 +354,17 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
{
|
||||
if (CI_START_LOCK_NO == startLockFlag)
|
||||
{
|
||||
checkResult = ParseCiToCiDataCheck(data, (UINT16)dataLen, &errorNO_Type); /*相邻CI间数据传输的校验*/
|
||||
checkResult = ParseCiToCiDataCheck(data, (UINT16)dataLen, &errorNO_Type, srcDevTypeId); /*相邻CI间数据传输的校验*/
|
||||
if (CI_SUCCESS != checkResult)
|
||||
{
|
||||
debug_infor_printf((const)"check parse ci step %d error", errorNO_Type);
|
||||
}
|
||||
else
|
||||
{
|
||||
checkResult = ParseCiToCiDataFrame(data, (UINT16)dataLen, devId);
|
||||
checkResult = ParseCiToCiDataFrame(data, (UINT16)dataLen, srcDevTypeId);
|
||||
if (CI_SUCCESS != checkResult) /*错误*/
|
||||
{
|
||||
debug_infor_printf((const)"parse ci id %d error", devId);
|
||||
debug_infor_printf((const)"parse ci id[0x%x] error", srcDevTypeId);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -381,7 +381,7 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
checkResult = ParseCiToCiDataFrameHLHT(data, (UINT16)dataLen, devId);
|
||||
if (CI_ERROR == checkResult) /*错误*/
|
||||
{
|
||||
debug_infor_printf((const)"parse hlht ci id %d error", devId);
|
||||
debug_infor_printf((const)"parse hlht ci id[0x%x] error", srcDevTypeId);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -389,7 +389,7 @@ UINT8 ParseOtherSysToCiData(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"ci id %d sameLineCi:%d error", devId, sameLineCi);
|
||||
debug_infor_printf((const)"ci id[0x%x] sameLineCi:%d error", srcDevTypeId, sameLineCi);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -730,6 +730,8 @@ UINT8 PackCiToOtherSysData(void)
|
||||
UINT8 cLocalDevType = 0U; /*本地设备类型*/
|
||||
UINT8 cStartLockFlag = 0U; /*上电解锁标志*/
|
||||
UINT8 cRcWorkMode = 0U;
|
||||
UINT8 cControlState = 0U; /*主备用状态*/
|
||||
UINT8 cNearOtherDevType = 0U; /*相邻控区另外一种设备类型*/
|
||||
|
||||
cRcWorkMode = GetLocalRcWorkMode();
|
||||
|
||||
@@ -879,7 +881,7 @@ UINT8 PackCiToOtherSysData(void)
|
||||
if (chTiocRcvAtsGtwyDevTypeId == deviceIdBuf[ii])
|
||||
{
|
||||
/*组ATS站场帧数据*/
|
||||
reVal = PackTiocToGateWayData(deviceIdBuf[ii], CI_SYSTEM_TYPE_ATS);
|
||||
reVal = PackCiToGateWayDataProc(deviceIdBuf[ii], CI_SYSTEM_TYPE_ATS);
|
||||
|
||||
if (CI_ERROR == reVal)
|
||||
{
|
||||
@@ -962,97 +964,151 @@ UINT8 PackCiToOtherSysData(void)
|
||||
; /*do nothing*/
|
||||
}
|
||||
|
||||
/*****组CI数据*****/
|
||||
deviceSum = 0u;
|
||||
deviceIdBuf = NULL;
|
||||
deviceSum = GetCiTransmitSpecifySysDevSum(Get2oo2SheBeiType()); /*获取通信CI设备总数*/
|
||||
deviceIdBuf = GetCiTransmitSpecifySysDevBuf(Get2oo2SheBeiType()); /*获取通信CI设备ID数组*/
|
||||
cLocalDevType = Get2oo2SheBeiType();
|
||||
cControlState = GetLocalCiBackUpPattern();
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
if (((CI_SYSTEM_TYPE_CI == cLocalDevType) && (SYSTEM_WORK_MODE_MAIN == cControlState))
|
||||
|| ((CI_SYSTEM_TYPE_RC == cLocalDevType) && ((SYSTEM_WORK_MODE_MAIN == cControlState) || (SYSTEM_WORK_MODE_BACKUP == cControlState))))
|
||||
{
|
||||
/*仅CI主用或(RC主用或备用)时,才向RC/CI组包*/
|
||||
/*****组相邻RC/CI数据*****/
|
||||
deviceSum = 0U;
|
||||
deviceIdBuf = NULL;
|
||||
deviceSum = GetCiTransmitSpecifySysDevSum(cLocalDevType); /*获取通信CI设备总数*/
|
||||
deviceIdBuf = GetCiTransmitSpecifySysDevBuf(cLocalDevType); /*获取通信CI设备ID数组*/
|
||||
|
||||
if ((deviceSum > 0u) && (deviceIdBuf != NULL))
|
||||
{ /*通信设备正确*/
|
||||
|
||||
for (ii = 0u; ii < deviceSum; ii++)
|
||||
{
|
||||
|
||||
IsSameLine = IsSameLineCI(GetSystemParaLocalCiId(), deviceIdBuf[ii]);
|
||||
|
||||
if (SAME_LINE_YES == IsSameLine)
|
||||
if ((deviceSum > 0U) && (deviceIdBuf != NULL))
|
||||
{ /*通信设备正确*/
|
||||
for (ii = 0U; ii < deviceSum; ii++)
|
||||
{
|
||||
/*组CI数据*/
|
||||
reVal = PackCiToCiData(deviceIdBuf[ii]);
|
||||
if (CI_ERROR == reVal)
|
||||
IsSameLine = IsSameLineCI(cLocalCiId, deviceIdBuf[ii]);
|
||||
|
||||
if (SAME_LINE_YES == IsSameLine)
|
||||
{
|
||||
/*组包错误*/
|
||||
/*组CI数据*/
|
||||
reVal = PackCiToCiData(cLocalDevType, deviceIdBuf[ii]);
|
||||
if (CI_ERROR == reVal)
|
||||
{
|
||||
debug_infor_printf((const)"\nPackCiToCiData Error: DstDev[0x%x]", (UINT16)(cLocalDevType * 256U) + (UINT16)(deviceIdBuf[ii])); /*组包错误*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else if (SAME_LINE_NO == IsSameLine)
|
||||
{
|
||||
/*组CI数据*/
|
||||
reVal = PackHLHTCiToCiData(deviceIdBuf[ii]);
|
||||
if (CI_ERROR == reVal)
|
||||
{
|
||||
debug_infor_printf((const)"\nPackHLHTCiToCiData Error: DstDev[0x%x]", (UINT16)(cLocalDevType * 256U) +(UINT16)(deviceIdBuf[ii]));/*组包错误*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
/*无操作*/
|
||||
}
|
||||
}
|
||||
else if (SAME_LINE_NO == IsSameLine)
|
||||
{
|
||||
/*组CI数据*/
|
||||
reVal = PackHLHTCiToCiData(deviceIdBuf[ii]);
|
||||
if (CI_ERROR == reVal)
|
||||
{
|
||||
/*组包错误*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*无操作*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*组CI-RC数据*/
|
||||
cStartLockFlag = GetStartLockFlag();
|
||||
if (CI_START_LOCK_NO == cStartLockFlag)
|
||||
{
|
||||
|
||||
cSysType = GetSystemWorkType();
|
||||
cLocalCiType = GetLocalCiType();
|
||||
if ((SYSTEM_WORK_MODE_ALL == cSysType) && ((CI_TYPE_ZX == cLocalCiType) || (CI_TYPE_SCX == cLocalCiType)))
|
||||
if (SYSTEM_WORK_MODE_ALL == cSysType)
|
||||
{
|
||||
/*双系统下的正线和试车线才进行本控区CI-RC的组包*/
|
||||
cLocalCiId = GetSystemParaLocalCiId();
|
||||
cLocalDevType = Get2oo2SheBeiType();
|
||||
/*****双系统,组相邻控区另一个设备数据*****/
|
||||
if (CI_SYSTEM_TYPE_CI == cLocalDevType)
|
||||
{
|
||||
reVal = PackCiToLocalRcDataFrame(cLocalCiId); /*CI给本控区RC组包*/
|
||||
if (CI_SUCCESS == reVal)
|
||||
cNearOtherDevType = CI_SYSTEM_TYPE_RC;
|
||||
}
|
||||
else
|
||||
{
|
||||
cNearOtherDevType = CI_SYSTEM_TYPE_CI;
|
||||
}
|
||||
|
||||
deviceSum = 0U;
|
||||
deviceIdBuf = NULL;
|
||||
deviceSum = GetCiTransmitSpecifySysDevSum(cNearOtherDevType); /*获取通信RC/CI设备总数*/
|
||||
deviceIdBuf = GetCiTransmitSpecifySysDevBuf(cNearOtherDevType); /*获取通信RC/CI设备ID数组*/
|
||||
if ((0U < deviceSum) && (NULL != deviceIdBuf))
|
||||
{
|
||||
/*通信设备正确*/
|
||||
for (ii = 0U; ii < deviceSum; ii++)
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nPackCiToLocalRcDataFrame Error.");
|
||||
IsSameLine = IsSameLineCI(cLocalCiId, deviceIdBuf[ii]);
|
||||
|
||||
if ((SAME_LINE_YES == IsSameLine) && (cLocalCiId != deviceIdBuf[ii]))
|
||||
{
|
||||
/*组相邻RC/CI数据*/
|
||||
reVal = PackCiToCiData(cNearOtherDevType, deviceIdBuf[ii]);
|
||||
if (CI_ERROR == reVal)
|
||||
{
|
||||
debug_infor_printf((const)"\nPackCiToCiData Error: DstDev[0x%x]", (UINT16)(cNearOtherDevType * 256U) +(UINT16)(deviceIdBuf[ii])); /*组包错误*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*跨线设备及同控区RC/CI不组包,*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
reVal = PackRcToLocalCiDataFrame(cLocalCiId); /*RC给本控区CI组包*/
|
||||
if (CI_SUCCESS == reVal)
|
||||
/*不处理*/
|
||||
}
|
||||
|
||||
/*组本控区CI-RC数据*/
|
||||
cStartLockFlag = GetStartLockFlag();
|
||||
if ((CI_START_LOCK_NO == cStartLockFlag) && ((CI_TYPE_ZX == cLocalCiType) || (CI_TYPE_SCX == cLocalCiType)))
|
||||
{
|
||||
/*双系统下的正线和试车线才进行本控区CI-RC的组包*/
|
||||
if (CI_SYSTEM_TYPE_CI == cLocalDevType)
|
||||
{
|
||||
/*不处理*/
|
||||
reVal = PackCiToLocalRcDataFrame(cLocalCiId); /*CI给本控区RC组包*/
|
||||
if (CI_SUCCESS == reVal)
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nPackCiToLocalRcDataFrame Error.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nPackRcToLocalCiDataFrame Error.");
|
||||
reVal = PackRcToLocalCiDataFrame(cLocalCiId); /*RC给本控区CI组包*/
|
||||
if (CI_SUCCESS == reVal)
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"\nPackRcToLocalCiDataFrame Error.");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未上电,不组包*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*单系统或场段不涉及,不处理*/
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*未上电,不组包*/
|
||||
/*CI备用或不可用、RC不可用时,不向RC/CI组包*/
|
||||
}
|
||||
|
||||
/*****组LEU数据*****/
|
||||
@@ -1200,6 +1256,8 @@ UINT8 PackCiToOtherSysData(void)
|
||||
PackCiToCimFlyProtectData();
|
||||
/*发送维护机IO双系采集不一致报警*/
|
||||
PackCiToCimCollDiffData();
|
||||
/*发送道岔冗余采集报警*/
|
||||
PackCiToCimSwitchRedunAlarmData();
|
||||
/*发送给AIM退出运营信息*/
|
||||
AIMOutput();
|
||||
/*发送给维护机执行单元报警信息*/
|
||||
|
||||
@@ -94,7 +94,10 @@ UINT16 ConvertSigDrvColorToSigDrvCmd(const UINT16 signalId, const UINT8 drvColor
|
||||
UINT8 ocHasBlue = 0u;
|
||||
UINT8 funSwitchGreenYellow = GetCiFunctionSwitchConfig(CI_FUNCTION_SWITCH_SHOW_SIGNAL_GreenYellow);/*显示绿黄功能开关是否打开*/
|
||||
UINT8 funSwitchALLCloseUseBlue = GetCiFunctionSwitchConfig(FUNC_SWITCH_ZX_ALLCLOSE_USEBLUE);/*杭德正线灭灯均转蓝灯功能开关*/
|
||||
UINT8 ciType = GetLocalCiType();
|
||||
UINT8 ciType = 0U;
|
||||
UINT8 chSigBelongRtuId = 0U;
|
||||
chSigBelongRtuId = GetSignalBelongVirCiId(signalId);
|
||||
ciType = GetLocalVirCiType(chSigBelongRtuId);
|
||||
switch (drvColor)
|
||||
{
|
||||
case SIGNAL_DRIVECOLOUR_RED:/*红*/
|
||||
@@ -247,6 +250,15 @@ UINT8 PackCiToOcData( UINT8 deviceId)
|
||||
UINT16 deviceSum = 0u;
|
||||
UINT16 kqChangeCommand = 0u;/*控权切换命令*/
|
||||
UINT8 chCurSystemAreaState = 0u; /*主备用模式*/
|
||||
UINT8 chMainCotrolOCId = 0U;
|
||||
UINT8 chControlCmd = 0U;
|
||||
UINT8 chControlCmdNum = 0u;
|
||||
UINT32 cmdIndex = 0u;
|
||||
UINT8 chOcOutControlCmd = 0u;
|
||||
UINT8 chOcFindPostionCmd = 0u;
|
||||
UINT8 chLocalCiOCSswitch = 0u;
|
||||
|
||||
chLocalCiOCSswitch = GetLocalCiOCSswitch();
|
||||
#if 0
|
||||
QueueClear(CiToOcDataQueue); /*清队列*/
|
||||
#endif
|
||||
@@ -325,7 +337,25 @@ UINT8 PackCiToOcData( UINT8 deviceId)
|
||||
ShortToChar(pOcData->OcDevices[kk].DeviceId, &Ci2OcDataBuffer[ii]);
|
||||
ii += 2u;
|
||||
drvPos = GetSwitchDrivePostion(pOcData->OcDevices[kk].DeviceId);
|
||||
drvCmd = ConvertSwitchDrvPosToSwDrvCmd(drvPos);
|
||||
chMainCotrolOCId = GetSwitchMainCotrolOCId(pOcData->OcDevices[kk].DeviceId);
|
||||
|
||||
|
||||
if ((chMainCotrolOCId == pOcData->OcId)||(OC_S_OFF == chLocalCiOCSswitch))
|
||||
{/*当前有主控OC或OC-S功能关闭*/
|
||||
drvCmd = ConvertSwitchDrvPosToSwDrvCmd(drvPos);
|
||||
}
|
||||
else
|
||||
{/*有OC-S且当前无主控,需寻表*/
|
||||
drvCmd = OC_SWITCH_DRIVE_POS_KEEP;/*保持*/
|
||||
|
||||
chOcOutControlCmd = GetSwitchThisOcOutControlCmd(pOcData->OcDevices[kk].DeviceId, (UINT8)pOcData->OcId);
|
||||
|
||||
if (MAIN_CONTROL == chOcOutControlCmd)
|
||||
{
|
||||
chOcFindPostionCmd = GetSwitchThisOcFindPostionCmd(pOcData->OcDevices[kk].DeviceId, (UINT8)pOcData->OcId);
|
||||
drvCmd = ConvertSwitchFindPosToSwFindCmd(chOcFindPostionCmd);
|
||||
}
|
||||
}
|
||||
ShortToChar(drvCmd, &Ci2OcDataBuffer[ii]);
|
||||
ii += 2u;
|
||||
break;
|
||||
@@ -636,6 +666,51 @@ UINT8 PackCiToOcData( UINT8 deviceId)
|
||||
ii += ciSorToOcIdx;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
cmdIndex = ii;
|
||||
ii += 1u;
|
||||
for (kk = 0u; kk < pOcData->OcDeviceNum; kk++)/*遍历设备*/
|
||||
{
|
||||
switch (pOcData->OcDevices[kk].DeviceType)
|
||||
{
|
||||
case CI_DEVICE_TYPE_SWITCH:/*道岔设备*/
|
||||
{
|
||||
ShortToChar(pOcData->OcDevices[kk].DeviceId, &Ci2OcDataBuffer[ii]);
|
||||
ii += 2u;
|
||||
if (OC_S_ON == chLocalCiOCSswitch)
|
||||
{/*OS-S开关打开*/
|
||||
chControlCmd = GetSwitchThisOcOutControlCmd(pOcData->OcDevices[kk].DeviceId, (UINT8)pOcData->OcId);
|
||||
if ((MAIN_CONTROL == chControlCmd) || (STANDBY_CONTROL == chControlCmd))
|
||||
{
|
||||
Ci2OcDataBuffer[ii] = chControlCmd;
|
||||
}
|
||||
else
|
||||
{
|
||||
Ci2OcDataBuffer[ii] = STANDBY_CONTROL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{/*OC-S开关关闭*/
|
||||
Ci2OcDataBuffer[ii] = NO_CONTROL_FUN;
|
||||
}
|
||||
ii += 1u;
|
||||
|
||||
chControlCmdNum++;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{/*无执行*/
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ci2OcDataBuffer[cmdIndex]= chControlCmdNum;/*设备数量*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
#if 0 /*屏蔽型式实验,以后有需要再打开*/
|
||||
if (curCycleNum == xingshiTestStartCycle && 1 == xingshiTestStart)
|
||||
{
|
||||
@@ -1094,8 +1169,6 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
UINT16 ocName = 0u; /*与ci通信的oc Name 0x46*/
|
||||
UINT16 wCiName = 0U; /*本联锁设备编号 0x3C+ID 或 0x3D+ID*/
|
||||
UINT8 headRet = HLHT_HEAD_ERROR;
|
||||
|
||||
UINT8* sourceId = NULL; /*源ID*/
|
||||
UINT32 curntCycleNo = 0u; /*当前周期号*/
|
||||
HLHTGALInfoStruct hlhtGalHead= {0u};
|
||||
INT32 ocInfoRemainValidity = 0;
|
||||
@@ -1126,6 +1199,10 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
UINT32 dwUpToMainCyc = 0U;/*本机升主机周期号*/
|
||||
UINT32 CiRecvOcSN = 0U;/*同步的CI数据中OC周期号*/
|
||||
HLHTHeadContextStru* pstrHlhtHeadCtx = NULL; /*CI同步的互联互通报文头上下文数据*/
|
||||
UINT8 dwMainStandbyState = 0U;
|
||||
UINT8 chSwitchBelongOThisOCRet = 0U;
|
||||
|
||||
|
||||
(void)CommonMemSet(pTmpOcToCiData, (UINT32)sizeof(OcToCiOriginDataStruct),0U, (UINT32)sizeof(OcToCiOriginDataStruct));/*清内存,防止脏数据*/
|
||||
chMainWorckMode = GetLocalCiBackUpPattern();
|
||||
dwUpToMainCyc = GetSystemUpdateMainUseCycNum();
|
||||
@@ -1159,9 +1236,6 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/* 暂无项目使用OC100、不支持OC24.1 */
|
||||
sourceId = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_OC);/*获取与本联锁通信的OC的ID*/
|
||||
|
||||
ii+=4u;/*跳4个字节,以后oc处理*/
|
||||
/*解析通用消息包头*/
|
||||
hlhtGalHead.devInterInfoType = ShortFromChar(&dataBuf[ii]);
|
||||
ii += 2u;
|
||||
@@ -1189,7 +1263,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
localCiId = GetSystemParaLocalCiId(); /*获取联锁ID*/
|
||||
wCiName = (CI_SYSTEM_TYPE_RCI)* 256U + localCiId;
|
||||
|
||||
headRet = HLHTRecvCommonPacketHeadCheck(ocName, wCiName, CI_OC_INTERFACE_INFOTYPE, CI_OC_PRTCL_VER, &hlhtGalHead, &errCode, 0u, CI_SYSTEM_TYPE_OC);
|
||||
headRet = HLHTRecvCommonPacketHeadCheck(ocName, wCiName, CI_OC_INTERFACE_INFOTYPE, (UINT8)CI_OC_PRTCL_VER, &hlhtGalHead, &errCode, 0u, CI_SYSTEM_TYPE_OC);
|
||||
transmitBadEnsureTime = GetCiAndOcTransmitBadEnsureTime();
|
||||
debug_infor_printf((const)"\nOC %d GAL Check Result:%d errCode:%d\n", systemId, headRet, errCode); /*0x55正确,0xaa错误,0x33初始通信帧*/
|
||||
|
||||
@@ -1215,7 +1289,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
/*2.接收对方记录的本方周期号大于等于升主周期号 或 同步的主机CI与OC数据中OC周期号晚于当前OC发送*/
|
||||
if (((hlhtGalHead.recvOppMsgSN >= dwUpToMainCyc)
|
||||
|| (0U != CiRecvOcSN) && (CiRecvOcSN <hlhtGalHead.crntOwnMsgSN))
|
||||
&& (0U < ocInfoRemainValidity))
|
||||
&& (0 < ocInfoRemainValidity))
|
||||
{
|
||||
chUsableCycCheck = CI_SUCCESS;
|
||||
}
|
||||
@@ -1229,7 +1303,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
{
|
||||
chUsableCycCheck = CI_SUCCESS;
|
||||
}
|
||||
if (0U < ocInfoRemainValidity)
|
||||
if (0 < ocInfoRemainValidity)
|
||||
{
|
||||
/*解析应用数据*/
|
||||
wApplyDataLenth = ShortFromChar(&dataBuf[ii]);/*应用层数据长度*/
|
||||
@@ -1258,9 +1332,9 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
{
|
||||
tmpDeviceId = ShortFromChar(&dataBuf[ii]); /*设备Id 2B*/
|
||||
ii += 2u;
|
||||
chDevBelongOC = (UINT8)GetSwitchBelongOcId(tmpDeviceId);
|
||||
chSwitchBelongOThisOCRet = (UINT8)GetSwitchWhetherBelongThisOc(tmpDeviceId, systemId);
|
||||
chDevBelongCI = GetSwitchBelongCiId(tmpDeviceId);
|
||||
if ((chDevBelongOC != systemId)||(chDevBelongCI != localCiId))
|
||||
if ((CI_SUCCESS != chSwitchBelongOThisOCRet)||(chDevBelongCI != localCiId))
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"Swicth devId:%d Belong OC/CI Error\n", tmpDeviceId);
|
||||
@@ -1274,7 +1348,8 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
|| (OC_SWITCH_POSITION_MOVE == tmpDeviceState))
|
||||
{
|
||||
pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum = dataBuf[ii++];
|
||||
if (MAX_OC_SWITCH_INCLUDE_ZZJ_NUM >= pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum)
|
||||
if ((MAX_OC_SWITCH_INCLUDE_ZZJ_NUM >= pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum)
|
||||
&&(0U <pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum))
|
||||
{
|
||||
for (chZzjStateIndex = 0U; chZzjStateIndex < pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum; chZzjStateIndex++)
|
||||
{
|
||||
@@ -1292,7 +1367,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"SwitchID %d ZZJnum%d, exceed max:%d \n", tmpDeviceId, pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum, MAX_OC_SWITCH_INCLUDE_ZZJ_NUM);
|
||||
debug_infor_printf((const)"SwitchID %d ZZJnum%d, max:%d \n", tmpDeviceId, pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum, MAX_OC_SWITCH_INCLUDE_ZZJ_NUM);
|
||||
pTmpOcToCiData->OcDevices[j].chSwitchIncldeZzjNum = 0U;
|
||||
pTmpOcToCiData->OcDevices[j].szSwitchIncldeZzjState[0U] = OC_SWITCH_POSITION_SIKAI;
|
||||
}
|
||||
@@ -1308,7 +1383,8 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
{
|
||||
tmpSwitchBoardNum = dataBuf[ii++];/*板卡数量*/
|
||||
|
||||
if ( MAX_OC_SWITCH_INCLUDE_BOARD_NUM>=tmpSwitchBoardNum)
|
||||
if ( (MAX_OC_SWITCH_INCLUDE_BOARD_NUM>=tmpSwitchBoardNum)
|
||||
&&(0U < tmpSwitchBoardNum))
|
||||
{
|
||||
pTmpOcToCiData->OcDevices[j].OcId = systemId;/*每个设备的oc id*/
|
||||
/*板卡地址状态赋值*/
|
||||
@@ -1322,26 +1398,45 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
{
|
||||
switchBoardCheck = CI_SUCCESS; /*存在正常板卡*/
|
||||
}
|
||||
}
|
||||
pTmpOcToCiData->OcDevices[j].DeviceType = tmpDeviceType; /*设备类型 1B*/
|
||||
pTmpOcToCiData->OcDevices[j].DeviceId = tmpDeviceId; /*设备Id 2B*/
|
||||
pTmpOcToCiData->OcDevices[j].DeviceState = tmpDeviceState; /*设备状态 1B*/
|
||||
dwMainStandbyState = dataBuf[ii++];/*板卡主控状态*/
|
||||
if ((MAIN_CONTROL == dwMainStandbyState) || (STANDBY_CONTROL == dwMainStandbyState) || (NO_CONTROL_FUN == dwMainStandbyState))
|
||||
{
|
||||
pTmpOcToCiData->OcDevices[j].MainStandbyState[k] = dwMainStandbyState;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"Swicth devId %d Board ControlMode ill, mode: %d\n", tmpDeviceId, dwMainStandbyState);
|
||||
break;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == switchBoardCheck) /*0为正常 存在正常板卡*/
|
||||
}
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
pTmpOcToCiData->OcDevices[j].DeviceType = tmpDeviceType; /*设备类型 1B*/
|
||||
pTmpOcToCiData->OcDevices[j].DeviceId = tmpDeviceId; /*设备Id 2B*/
|
||||
pTmpOcToCiData->OcDevices[j].DeviceState = tmpDeviceState; /*设备状态 1B*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*发送ats报警*/
|
||||
|
||||
if (CI_SUCCESS == switchBoardCheck) /*0为正常 存在正常板卡*/
|
||||
{
|
||||
pTmpOcToCiData->OcDevices[j].DeviceState = tmpDeviceState; /*设备状态 1B*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*发送ats报警*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/*设备(信号机、道岔)超出索引,给出调试警告信息*/
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"Swicth devId'index %d Board Num exceed Max %d boardNum%d,\n", tmpDeviceId,MAX_OC_SWITCH_INCLUDE_BOARD_NUM ,tmpSwitchBoardNum );
|
||||
debug_infor_printf((const)"Swicth devId'index %d, Board Num Max %d, Recv boardNum%d,\n", tmpDeviceId,MAX_OC_SWITCH_INCLUDE_BOARD_NUM ,tmpSwitchBoardNum );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1574,7 +1669,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
/*************解析SO板卡***********/
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
pTmpOcToCiData->OcSOBoardNum += ShortFromChar(&dataBuf[ii]);/*SO板卡数量*/
|
||||
pTmpOcToCiData->OcSOBoardNum = ShortFromChar(&dataBuf[ii]);/*SO板卡数量*/
|
||||
ii += 2u;
|
||||
if (MAX_OC_BOARD_NUM > pTmpOcToCiData->OcSOBoardNum)
|
||||
{
|
||||
@@ -1659,6 +1754,49 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
pTmpOcToCiData->szPlusBox[chPbIndex].chPbType = dataBuf[ii++];
|
||||
/* 空开状态 */
|
||||
pTmpOcToCiData->szPlusBox[chPbIndex].chAsState = dataBuf[ii++];
|
||||
if (OC_PBTYPE_SIGNAL == pTmpOcToCiData->szPlusBox[chPbIndex].chPbType)
|
||||
{
|
||||
/*类型为信号机*/
|
||||
if (((OC_AirSwitchStat_NORMAL == (0xf0 & pTmpOcToCiData->szPlusBox[chPbIndex].chAsState) >> 4)
|
||||
|| (OC_AirSwitchStat_FAULT == (0xf0 & pTmpOcToCiData->szPlusBox[chPbIndex].chAsState) >> 4))
|
||||
&& (0U == (0x0f & pTmpOcToCiData->szPlusBox[chPbIndex].chAsState)))
|
||||
{
|
||||
; /*空开状态合法*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
}
|
||||
else if (OC_PBTYPE_ZZJ == pTmpOcToCiData->szPlusBox[chPbIndex].chPbType)
|
||||
{
|
||||
/*类型为转辙机*/
|
||||
if (((OC_AirSwitchStat_NORMAL == (0xf0 & pTmpOcToCiData->szPlusBox[chPbIndex].chAsState) >> 4)
|
||||
|| (OC_AirSwitchStat_FAULT == (0xf0 & pTmpOcToCiData->szPlusBox[chPbIndex].chAsState) >> 4))
|
||||
&& ((OC_AirSwitchStat_NORMAL == (0x0f & pTmpOcToCiData->szPlusBox[chPbIndex].chAsState))
|
||||
|| (OC_AirSwitchStat_FAULT == (0x0f & pTmpOcToCiData->szPlusBox[chPbIndex].chAsState))))
|
||||
{
|
||||
; /*空开状态合法*/
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
/*按照高低4位校验空开状态*/
|
||||
|
||||
if(CI_ERROR == retVal)
|
||||
{
|
||||
/*给出调试警告信息*/
|
||||
debug_infor_printf((const)"OcPbId: %d, PbType:%d, AirSwitchStat:%d ERROR\n", pTmpOcToCiData->szPlusBox[chPbIndex].chPbId,
|
||||
pTmpOcToCiData->szPlusBox[chPbIndex].chPbType,pTmpOcToCiData->szPlusBox[chPbIndex].chAsState);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1828,7 +1966,7 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/*校验数据长度 发送两次长度,内层长度比外层少记录长度的两字节 */
|
||||
if ((hlhtGalHead.totalDataLen != ii - 35U) || (wApplyDataLenth != ii - 37U))
|
||||
if ((hlhtGalHead.totalDataLen != ii - 31U) || (wApplyDataLenth != ii - 33U))
|
||||
{
|
||||
/* 31为应用数据帧头长度+报文头前4字节 */
|
||||
retVal = CI_ERROR;
|
||||
@@ -1874,8 +2012,59 @@ UINT8 ParseOcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength,const U
|
||||
}
|
||||
else
|
||||
{
|
||||
/*给ATS或现地反馈CI-OC数据版本校验失败信息*/
|
||||
SetCiSendCmdBackInfoData(CI_BACK_DATA_VER_CHECK_FAIL, CI_SYSTEM_TYPE_OC, systemId, 0U, 0U);
|
||||
/*给ATS或现地反馈OC-CI校验失败信息*/
|
||||
if (GAL_COMPARE_INFO_TYPE_ERR == (errCode & GAL_COMPARE_INFO_TYPE_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据接口信息类型错误*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_INFO_TYPE_ERR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
else if (GAL_COMPARE_SEND_FLAG_ERR == (errCode & GAL_COMPARE_SEND_FLAG_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据发送方标识信息错误*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_SEND_FLAG_ERR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
else if (GAL_COMPARE_RECV_FLAG_ERR == (errCode & GAL_COMPARE_RECV_FLAG_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据接收方标志信息错误*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_RECV_FLAG_ERR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
else if (GAL_COMPARE_EMAP_VER_COMP_ERR == (errCode & GAL_COMPARE_EMAP_VER_COMP_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据版本校验失败信息*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_VER_CHECK_FAIL, ESEND_LEVEL_ATS);
|
||||
}
|
||||
else if (GAL_COMPARE_MSG_BDS_SN_ERR == (errCode & GAL_COMPARE_MSG_BDS_SN_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据本方、对方及收到上一条消息时本方序列号错误*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_MSG_BDS_SN_ERR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
#if 0
|
||||
else if (GAL_COMPARE_MSG_SN_ERR == (errCode & GAL_COMPARE_MSG_SN_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据对方消息序列号及收到上一条消息时本方序列号错误*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_MSG_SN_ERR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
#endif
|
||||
else if (GAL_COMPARE_PROTOCOL_VER_ERR == (errCode & GAL_COMPARE_PROTOCOL_VER_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据协议版本号错误*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_PROTOCOL_VER_ERR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
else if (GAL_COMPARE_APP_LEN_ERR == (errCode & GAL_COMPARE_APP_LEN_ERR))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据应用层数据长度无效*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_APP_LEN_ERR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
else if (GAL_COMPARE_COM_PERIOD == (errCode & GAL_COMPARE_COM_PERIOD))
|
||||
{
|
||||
/*给ATS或现地反馈OC-CI数据通信周期错误 */
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_BACK_DATA_COM_PERIOD, ESEND_LEVEL_ATS);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*记录通信故障码*/
|
||||
SetErrorData(EFUNC_PARSE_LOCAL_OC2CI_DATA, CI_SYSTEM_TYPE_OC, systemId, ETYPE_COMM_WITH_OC, CI_ERROR, ESEND_LEVEL_ATS);
|
||||
}
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
@@ -1981,10 +2170,10 @@ INT16 GetIndexBySignalId(UINT16 sigId)
|
||||
|
||||
/*
|
||||
* 功能描述: 通过道岔id获取索引
|
||||
* 参数说明: void
|
||||
* 返回值 : void
|
||||
* 参数说明: UINT16 swId 道岔ID,UINT8 ocId OCID
|
||||
* 返回值 : 索引
|
||||
*/
|
||||
INT16 GetIndexBySwitchId(UINT16 swId)
|
||||
INT16 GetIndexBySwitchId(UINT16 swId,UINT8 ocId)
|
||||
{
|
||||
INT16 retIndex = -1;
|
||||
|
||||
@@ -1992,7 +2181,7 @@ INT16 GetIndexBySwitchId(UINT16 swId)
|
||||
|
||||
for (i=0u;i<m_SwitchNum;i++)
|
||||
{
|
||||
if (m_Switches[i].DeviceId == swId)
|
||||
if ((m_Switches[i].DeviceId == swId)&&(ocId == (UINT8)m_Switches[i].OcId))
|
||||
{
|
||||
retIndex = (INT16)i;
|
||||
break;
|
||||
@@ -2071,35 +2260,49 @@ void InitOcSignals(void)
|
||||
*/
|
||||
void InitOcSwitchs(void)
|
||||
{
|
||||
|
||||
UINT16 i = 0u;
|
||||
UINT8 j = 0u;
|
||||
UINT8 k = 0U;
|
||||
SwitchConfigDataStruct *pSwitch = NULL;
|
||||
UINT8 localCi = 0u;
|
||||
localCi =GetSystemParaLocalCiId();
|
||||
m_SwitchNum = 0u;
|
||||
pSwitch = GetSwitchConfigData();
|
||||
for (i=0u;i<SWITCH_SUM_MAX;i++)
|
||||
|
||||
if (NULL != pSwitch)
|
||||
{
|
||||
if ((CI_SWITCH_MAX == m_SwitchNum) || (NULL == pSwitch))
|
||||
for (i = 0u; i < SWITCH_SUM_MAX; i++)
|
||||
{
|
||||
/*超出索引,给出调试警告信息*/
|
||||
debug_infor_printf((const)"InitOcSwitchs():error");
|
||||
break;
|
||||
}
|
||||
if ((0u < pSwitch[i].SwitchId) && (0u < pSwitch[i].BelongOcId)&&(localCi == pSwitch[i].BelongCiId))
|
||||
{
|
||||
m_Switches[m_SwitchNum].DeviceId = pSwitch[i].SwitchId;
|
||||
m_Switches[m_SwitchNum].DeviceType = OC_DEVICE_TYPE_SWITCH;
|
||||
m_Switches[m_SwitchNum].DeviceState = OC_SWITCH_POSITION_SIKAI;
|
||||
m_Switches[m_SwitchNum].BoardNum = 0U;
|
||||
for (k = 0U; k < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; k++)
|
||||
{
|
||||
m_Switches[m_SwitchNum].BoardState[k] = 0xffU;
|
||||
m_Switches[m_SwitchNum].BoardAddr[k] = 0U;
|
||||
for (j = 0u; j < pSwitch[i].chSwitchBelongOcNum; j++)
|
||||
{/*线性存储2个OC的临时数据*/
|
||||
if (CI_SWITCH_MAX == m_SwitchNum)
|
||||
{
|
||||
/*超出索引,给出调试警告信息*/
|
||||
debug_infor_printf((const)"InitOcSwitchs():error");
|
||||
break;
|
||||
}
|
||||
if ((0u < pSwitch[i].SwitchId) && (0u < pSwitch[i].BelongOcId) && (localCi == pSwitch[i].BelongCiId))
|
||||
{
|
||||
m_Switches[m_SwitchNum].DeviceId = pSwitch[i].SwitchId;
|
||||
m_Switches[m_SwitchNum].DeviceType = OC_DEVICE_TYPE_SWITCH;
|
||||
m_Switches[m_SwitchNum].DeviceState = OC_SWITCH_POSITION_SIKAI;
|
||||
m_Switches[m_SwitchNum].BoardNum = 0U;
|
||||
for (k = 0U; k < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; k++)
|
||||
{
|
||||
m_Switches[m_SwitchNum].BoardState[k] = 0xffU;
|
||||
m_Switches[m_SwitchNum].BoardAddr[k] = 0U;
|
||||
m_Switches[m_SwitchNum].MainStandbyState[k] = 0U;
|
||||
}
|
||||
m_Switches[m_SwitchNum].OcId = pSwitch[i].belongOCConfigData[j].OcId;
|
||||
m_SwitchNum++;
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_SWITCH_MAX == m_SwitchNum)
|
||||
{
|
||||
debug_infor_printf((const)"InitOcSwitchs():error1");
|
||||
break;
|
||||
}
|
||||
m_Switches[m_SwitchNum].OcId = pSwitch[i].BelongOcId;
|
||||
m_SwitchNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2158,6 +2361,8 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId)
|
||||
UINT8 chOcId = 0U;
|
||||
UINT8 chOcBelongCI = 0U;/*OC所属联锁*/
|
||||
UINT8 chLocalCiId = GetSystemParaLocalCiId();
|
||||
UINT8 chSwitchszPlusBoxId = 0U;
|
||||
|
||||
for (i=0U;i<m_OcToCiOrginDataNum;i++)/*遍历OC*/
|
||||
{
|
||||
chOcId = (UINT8)m_OcToCiOrginDataArr[i].OcId & 0xFFU;
|
||||
@@ -2173,7 +2378,7 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId)
|
||||
if (pOcDevice->DeviceType == OC_DEVICE_TYPE_SIGNAL)
|
||||
{/*信号机*/
|
||||
ind = GetIndexBySignalId(pOcDevice->DeviceId);
|
||||
if ((ind >=0) && (OC_DEVICE_TYPE_SIGNAL == pOcDevice->DeviceType))
|
||||
if (ind >=0)
|
||||
{
|
||||
if ((m_Signals[ind].OcId == pOcDevice->OcId) &&
|
||||
(m_Signals[ind].DeviceId == pOcDevice->DeviceId))
|
||||
@@ -2198,7 +2403,7 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId)
|
||||
}
|
||||
else
|
||||
{/*道岔*/
|
||||
ind = GetIndexBySwitchId(pOcDevice->DeviceId);
|
||||
ind = GetIndexBySwitchId(pOcDevice->DeviceId, pOcDevice->OcId);
|
||||
if ((ind >=0) && (OC_DEVICE_TYPE_SWITCH == pOcDevice->DeviceType))
|
||||
{
|
||||
if ((m_Switches[ind].OcId == pOcDevice->OcId) &&
|
||||
@@ -2211,6 +2416,8 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId)
|
||||
{
|
||||
m_Switches[ind].BoardAddr[k] = pOcDevice->BoardAddr[k];
|
||||
m_Switches[ind].BoardState[k] = pOcDevice->BoardState[k];
|
||||
|
||||
|
||||
}
|
||||
/* 保存数据 */
|
||||
m_Switches[ind].chSwitchIncldeZzjNum = pOcDevice->chSwitchIncldeZzjNum;
|
||||
@@ -2218,6 +2425,36 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId)
|
||||
{
|
||||
m_Switches[ind].szSwitchIncldeZzjState[k] = pOcDevice->szSwitchIncldeZzjState[k];
|
||||
}
|
||||
|
||||
for (k = 0U; k < MAX_OC_SWITCH_INCLUDE_BOARD_NUM; k++)
|
||||
{/*给所有OC设置主控状态*/
|
||||
m_Switches[ind].MainStandbyState[k] = pOcDevice->MainStandbyState[k];
|
||||
}
|
||||
|
||||
chSwitchszPlusBoxId = GetSwitchszPlusBoxId(m_Switches[ind].DeviceId,(UINT8)m_Switches[ind].OcId);
|
||||
for (k = 0U; k < m_OcToCiOrginDataArr[i].chPbNum; k++)
|
||||
{
|
||||
if (chSwitchszPlusBoxId == m_OcToCiOrginDataArr[i].szPlusBox[k].chPbId)
|
||||
{
|
||||
if (SWITCH_BOX_NORMAL == m_OcToCiOrginDataArr[i].szPlusBox[k].chAsState)
|
||||
{/*正常*/
|
||||
SetSwitchOcPlusBoxSateState(m_Switches[ind].DeviceId, (UINT8)m_Switches[ind].OcId, SWITCH_BOX_NORMAL);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetSwitchOcPlusBoxSateState(m_Switches[ind].DeviceId, (UINT8)m_Switches[ind].OcId, SWITCH_BOX_FAULT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*将板卡故障状态导入*/
|
||||
for (k = 0U; k < m_Switches[ind].BoardNum; k++)
|
||||
{
|
||||
SetSwitchThisOCBoardState(m_Switches[ind].DeviceId, (UINT8)m_Switches[ind].OcId, m_Switches[ind].BoardAddr[k], m_Switches[ind].BoardState[k]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2261,6 +2498,10 @@ void ConvertOcOriginDataToOcSigSwDev(UINT8 devId)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2773,9 +3014,42 @@ UINT8 OcInputSignalStateCheck(const UINT8 chInput)
|
||||
break;
|
||||
default:
|
||||
retVal = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
/*
|
||||
* 功能描述: 把道岔寻表状态转化为道岔寻表命令
|
||||
* 参数说明:
|
||||
* 输入参数:
|
||||
* UINT8 drvColor:道岔寻表位置
|
||||
* 返回值 : 0:道岔驱动命令转化失败
|
||||
* 1:道岔寻表命令
|
||||
* add by mpt 20260330
|
||||
*/
|
||||
UINT16 ConvertSwitchFindPosToSwFindCmd(UINT8 chFindPos)
|
||||
{
|
||||
UINT16 retDrvCmd = 0u;
|
||||
switch (chFindPos)
|
||||
{
|
||||
case FIND_DINGWEI_CMD:
|
||||
retDrvCmd = OC_SWITCH_FIND_DINGWEI;
|
||||
break;
|
||||
case FIND_FANWEI_CMD:
|
||||
retDrvCmd = OC_SWITCH_FIND_FANWEI;
|
||||
break;
|
||||
case INIT_FIND_CMD:
|
||||
retDrvCmd = OC_SWITCH_ININ_FIAND;
|
||||
break;
|
||||
case NO_FIND_CMD:
|
||||
retDrvCmd = OC_SWITCH_DRIVE_POS_KEEP;
|
||||
break;
|
||||
default:
|
||||
retDrvCmd = OC_SWITCH_DRIVE_POS_KEEP;
|
||||
break;
|
||||
}
|
||||
return retDrvCmd;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
#define MAX_OC_PLUS_BOX_NUM ((UINT16)3) /*一个OC支持最大执行电插箱(可达最大值)*/
|
||||
#define MAX_OC_DEVICE_SWAP_MAX ((UINT16)83) /*一个OC最大切系板卡数量(MAX_OC_DEVICE_NUM/2)(不可达最大值) */
|
||||
#define MAX_OC_SWITCH_INCLUDE_ZZJ_NUM ((UINT16)10) /*一个道岔支持最大转辙机个数(可达最大值)*/
|
||||
#define MAX_OC_SWITCH_INCLUDE_BOARD_NUM ((UINT8)10) /*一个道岔支持最大板卡数量(不可达最大值)*/
|
||||
|
||||
|
||||
#define Max_OC_GD_NUM ((UINT16)252) /*一个oc支持最大多少个轨道区段(不可达最大值)*/
|
||||
#define MAX_OC_DEVICE_PSD_MAX ((UINT8)2) /*一个OC最大屏蔽门数量(可达最大值)*/
|
||||
@@ -78,6 +78,11 @@
|
||||
|
||||
#define CHANGE_JK_COMMAND ((UINT16)0x00AA) /*切换机控申请命令*/
|
||||
#define CHANGE_NO_COMMAND ((UINT16)0x00FF) /*无切换命令*/
|
||||
#define OC_AirSwitchStat_NORMAL ((UINT8)0x5) /*空开正常*/
|
||||
#define OC_AirSwitchStat_FAULT ((UINT8)0xa) /*空开故障*/
|
||||
#define OC_PBTYPE_SIGNAL ((UINT8)0x55) /*执行电插箱类型信号机*/
|
||||
#define OC_PBTYPE_ZZJ ((UINT8)0xAA) /*执行电插箱类型转辙机*/
|
||||
|
||||
|
||||
typedef struct s_OcDevState
|
||||
{
|
||||
@@ -90,6 +95,7 @@ typedef struct s_OcDevState
|
||||
UINT8 BoardNum; /*板卡数量*/
|
||||
UINT8 BoardAddr[MAX_OC_SWITCH_INCLUDE_BOARD_NUM]; /*板卡地址*/
|
||||
UINT8 BoardState[MAX_OC_SWITCH_INCLUDE_BOARD_NUM]; /*板卡状态 正常0x0000 错误发错误码*/
|
||||
UINT8 MainStandbyState[MAX_OC_SWITCH_INCLUDE_BOARD_NUM]; /*主备状态*/
|
||||
}OcDeviceStruct;
|
||||
|
||||
typedef struct s_OcDoBoardData
|
||||
@@ -431,12 +437,10 @@ INT16 GetIndexBySignalId(UINT16 sigId);
|
||||
|
||||
/*
|
||||
* 功能描述: 通过道岔id获取索引
|
||||
* 参数说明:
|
||||
* Id:道岔索引
|
||||
* 返回值 :
|
||||
* Int16:道岔Id
|
||||
* 参数说明: UINT16 swId 道岔ID,UINT8 ocId OCID
|
||||
* 返回值 : 索引
|
||||
*/
|
||||
INT16 GetIndexBySwitchId(UINT16 swId);
|
||||
INT16 GetIndexBySwitchId(UINT16 swId, UINT8 ocId);
|
||||
|
||||
/*
|
||||
* 功能描述: 通过轨道id获取索引
|
||||
@@ -508,7 +512,16 @@ UINT8 OcInputStateCheck(const UINT8 chInput, const UINT8 chOtherValid);
|
||||
* 返回值 : CI_ERROR CI_SUCCESS
|
||||
*/
|
||||
UINT8 OcInputSignalStateCheck(const UINT8 chInput);
|
||||
|
||||
/*
|
||||
* 功能描述: 把道岔寻表状态转化为道岔寻表命令
|
||||
* 参数说明:
|
||||
* 输入参数:
|
||||
* UINT8 drvColor:道岔寻表位置
|
||||
* 返回值 : 0:道岔驱动命令转化失败
|
||||
* 1:道岔寻表命令
|
||||
* add by mpt 20260330
|
||||
*/
|
||||
UINT16 ConvertSwitchFindPosToSwFindCmd(UINT8 chFindPos);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/*按车站编号映射
|
||||
即stationId == 1,则映射到platformToCiDataStru[1]中
|
||||
*/
|
||||
PlatformToCiDataStruct platformToCiDataStru[PLATFORM_TO_CI_SUM_MAX] = {0u};
|
||||
PlatformToCiDataStruct platformToCiDataStru[PLATFORM_TO_CI_SUM_MAX] = {0u}; /*引用站台门与CI通信数据结构体*/
|
||||
|
||||
/*屏蔽门在PlatformToCiDataStruct结构中的位置:Psd映射为行,Psd所处车站映射为第一列,所处PsdToCiDataStruct位置映射为第2列
|
||||
即屏蔽门1在platformToCiDataStru中的位置为:所属车站为PsdPlatformIndex[1][0] ,在屏蔽门的结构中位置为PsdPlatformIndex[1][1]
|
||||
|
||||
@@ -53,7 +53,7 @@ typedef struct S_PlatformToCiDataStruct
|
||||
PsdToCiDataStruct psdDataStr[PLATFORM_INCLUDE_PSD_MAX_SUM]; /*屏蔽门信息结构体数组*/
|
||||
}PlatformToCiDataStruct;
|
||||
|
||||
|
||||
extern PlatformToCiDataStruct platformToCiDataStru[PLATFORM_TO_CI_SUM_MAX];
|
||||
|
||||
/*
|
||||
* 功能描述: 站台数据结构初始化
|
||||
|
||||
@@ -364,7 +364,7 @@ UINT8 ParseTmcToTiocDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId)
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
|
||||
if ((CI_ERROR == retVal) || (0u == galHeadSaved))
|
||||
if ((CI_ERROR == retVal) && (0u == galHeadSaved))
|
||||
{
|
||||
/*清除通用报文头*/
|
||||
ClearHlhtHeadCtx(CI_SYSTEM_TYPE_TMC, systemId);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -36,6 +36,8 @@
|
||||
#include "../IO/DeviceRelayDataProcess.h"
|
||||
#include "dquIdmapQuery.h"
|
||||
#include "../Section/LogicSectionConfigDataManage.h"
|
||||
#include "AxisAssertDefine.h"
|
||||
#include "AxisAssertManageAPI.h"
|
||||
|
||||
|
||||
#define CI_PSD_COMM_STATE_GOOD ((UINT8)0x55)
|
||||
@@ -53,7 +55,7 @@
|
||||
|
||||
#define CI_VOBC_NO_LOCK ((UINT8)0x00) /*CI给后备通道发站外直轨锁闭方向,默认值*/
|
||||
|
||||
#define CI_VOBC_INTERFACE_INFOTYPE ((UINT16)0x0206) /*互联互通CI_VOBC接口信息类型*/
|
||||
#define CI_VOBC_INTERFACE_INFOTYPE ((UINT16)0x0206) /*互联互通CI_VOBC接口信息类型*/
|
||||
#define CI_VOBC_BACKUP_INTERFACE_INFOTYPE ((UINT16)0x0402) /*后备模式的CI_VOBC接口信息类型*/
|
||||
#define VOBC_CI_INFO_TYPE_PSD_CONTROL ((UINT16)0x0201) /*VOBC_CI屏蔽门控制报文类型*/
|
||||
#define VOBC_CI_INFO_TYPE_BACKUP ((UINT16)0x0308) /*VOBC_CI备用通道报文类型*/
|
||||
@@ -73,6 +75,10 @@
|
||||
#define CI_VOBC_BACKUP_STATE_INFO ((UINT16)0x0211) /*CI=>VOBC后备运行状态信息*/
|
||||
#define VOBC_CI_INFO_TYPE_BACKUU_CONTROL ((UINT16)0x0212) /*VOBC=>CI后备运行控制信息*/
|
||||
|
||||
/*VOBC_CI点连式信息帧-目前仅互联互通接口具备,帧类型与全自动运行洗车重复,若需要适配其他接口,需要重新排帧类型*/
|
||||
#define VOBC_CI_INFO_TYPE_BLOCLINK ((UINT16)0x020b) /*VOBC_CI点连式信息帧类型*/
|
||||
#define CI_VOBC_INFO_TYPE_BLOCLINK ((UINT16)0x020c) /*CI_VOBC点连式信息帧类型*/
|
||||
|
||||
#define VOBC_CI_GAP_DETECT_CMD_START ((UINT8)0x55) /*VOBC2CI启动间隙探测命令*/
|
||||
#define VOBC_CI_GAP_DETECT_CMD_STOP ((UINT8)0xAA) /*VOBC2CI停止间隙探测命令*/
|
||||
#define VOBC_CI_GAP_DETECT_CMD_DEFAULT ((UINT8)0xFF) /*VOBC2CI默认间隙探测命令*/
|
||||
@@ -106,7 +112,8 @@
|
||||
|
||||
#define VOBC_RC_INTERFACE_INFOTYPE ((UINT16)0x0217U) /*VOBC-RC接口,RC-VOBC接口*/
|
||||
#define VOBC_RC_INFO_STATE ((UINT16)0x0201U) /*VOBC->RC控制信息,周期发送*/
|
||||
#define RC_VOBC_HEART_FRAME ((UINT16)0x0201U) /*RC->VOBC心跳信息,周期发送*/
|
||||
#define RC_VOBC_HEART_FRAME ((UINT16)0x0202U) /*RC->VOBC心跳信息,非周期发送*/
|
||||
#define RC_VOBC_STATE_FRAME ((UINT16)0x0205U) /*RC->VOBC设备状态信息,周期发送*/
|
||||
|
||||
|
||||
#define CI_IVOC_PRTCL_VER ((UINT8)0x01U) /*CI_VOBC协议版本号*/
|
||||
@@ -145,9 +152,9 @@
|
||||
#define IVOC_CI_LOGOUT_NORMAL ((UINT8)0x00U) /*IVOC到IC 正常注销*/
|
||||
#define IVOC_CI_LOGOUT_SLEEP ((UINT8)0x01U) /*IVOC到IC 休眠注销*/
|
||||
|
||||
#define VOBC_CI_DIR_UP ((UINT8)0x55U) /*IVOC到IC 上行*/
|
||||
#define VOBC_CI_DIR_DOWN ((UINT8)0xAAU) /*IVOC到IC 下行*/
|
||||
#define VOBC_CI_DIR_DEF ((UINT8)0xFFU) /*IVOC到IC 默认*/
|
||||
#define VOBC_CI_DIR_UP ((UINT8)0x55U) /*VOBC-CI 上行*/
|
||||
#define VOBC_CI_DIR_DOWN ((UINT8)0xAAU) /*VOBC-CI 下行*/
|
||||
#define VOBC_CI_DIR_DEF ((UINT8)0xFFU) /*VOBC-CI 默认*/
|
||||
|
||||
#define CI_IVOC_SWITCH_POSTION_DING ((UINT8)0x55U) /*CI到IVOC道岔定位状态*/
|
||||
#define CI_IVOC_SWITCH_POSTION_FAN ((UINT8)0xAAU) /*CI到IVOC道岔反位状态*/
|
||||
@@ -175,7 +182,7 @@
|
||||
|
||||
#define CI_IVOC_ESB_STATE_VALID ((UINT8)0x55U) /*CI到IVOC(VOBC) ESB按钮按下*/
|
||||
#define CI_IVOC_ESB_STATE_INVALID ((UINT8)0xAAU) /*CI到IVOC(VOBC) ESB按钮未按下*/
|
||||
#define CI_IVOC_NO_HAVE_ESB ((UINT8)0xFFU) /*CI到IVOC(VOBC) ESB按钮未按下*/
|
||||
#define CI_IVOC_NO_HAVE_ESB ((UINT8)0xFFU) /*CI到IVOC(VOBC) ESB按钮默认值*/
|
||||
|
||||
#define CI_IVOC_NON_RETURN_STATE_VALID ((UINT8)0x55U) /*CI到IVOC 无人折返按钮按下*/
|
||||
#define CI_IVOC_NON_RETURN_STATE_INVALID ((UINT8)0xAAU) /*CI到IVOC 无人折返按钮未按下*/
|
||||
@@ -224,6 +231,8 @@
|
||||
|
||||
#define IVOC_CI_FLOODGATE_CLOSE_ALLOW_SUM ((UINT8)50U) /*IVOC到CI防淹门关闭允许的数量最大值*/
|
||||
#define IVOC_CI_GARAGEDOOR_CLOSE_ALLOW_SUM ((UINT8)50U) /*IVOC到CI车库门关闭允许的数量最大值*/
|
||||
#define CI_IVOC_YUXIANOPEN_ROUTE_MAX ((UINT8)200U) /*CI到IVOC预先开放进路最大值*/
|
||||
#define CI_IVOC_COM_ERR_RC_NUM_MAX ((UINT8)5U) /*CI到IVOC通信故障RC最大值*/
|
||||
|
||||
#define CI_IVOC_URGENT_YES ((UINT8)0x55U) /*CI到IVOC 紧急制动状态有效*/
|
||||
#define CI_IVOC_URGENT_NO ((UINT8)0xaaU) /*CI到IVOC 紧急制动状态无效*/
|
||||
@@ -237,6 +246,31 @@
|
||||
#define CI_VOBC_JXTC_CUT_NO ((UINT8)0xAA) /*间隙探测旁路未故障*/
|
||||
#define CI_VOBC_JXTC_OFF ((UINT8)0xFF) /*未检测/无此功能*/
|
||||
|
||||
#define PSD_INCOUDE_ESB_NUM ((UINT8)2U) /*站台关联ESB*/
|
||||
|
||||
#define TRAIN_LEN_MIN 1000U /*最小车长*/
|
||||
#define TRAIN_LEN_MAX 50000U /*最大车长*/
|
||||
|
||||
#define VOBC_CI_BLOCLINK_BLOCK_CTRL ((UINT8)0x01) /*点式列车控制级别*/
|
||||
#define VOBC_CI_BLOCLINK_CI_CTRL ((UINT8)0x02) /*联锁控制级别*/
|
||||
#define VOBC_CI_BLOCLINK_CI_DEFAULT ((UINT8)0xFF) /*默认值*/
|
||||
|
||||
#define CI_VOBC_SWITCH_MAX ((UINT8)20U) /*CI-VOBC点连式道岔数量最大值*/
|
||||
#define CI_VOBC_OTHER_EQUIPMENT_MAX ((UINT8)10U) /*CI-VOBC点连式其他设备数量最大值*/
|
||||
|
||||
#define CI_VOBC_XIANSU_NOT ((UINT8)0xaaU) /*CI-VOBC点连式未设置临时限速*/
|
||||
#define CI_VOBC_XIANSU_YES ((UINT8)0x55U) /*CI-VOBC点连式已设置临时限速*/
|
||||
|
||||
#define CI_VOBC_DESTINATION_TYPE_RETURN ((UINT8)0xaaU) /*CI-VOBC点连式目的地属性-折返*/
|
||||
#define CI_VOBC_DESTINATION_TYPE_LIECHE ((UINT8)0x55U) /*CI-VOBC点连式目的地属性-直通*/
|
||||
|
||||
#define CI_VOBC_FLOOD_STATE_OPEN ((UINT8)0xaaU) /*CI-VOBC点连式防淹门开启锁定状态且无关门请求*/
|
||||
#define CI_VOBC_FLOOD_STATE_CLOSE ((UINT8)0x55U) /*CI-VOBC点连式防淹非开启锁定状态或有关门请求*/
|
||||
|
||||
#define CI_VOBC_TRAIN_ZERO_SPEED_NO ((UINT8)0xAAU) /*CI-VOBC列车非零速*/
|
||||
#define CI_VOBC_TRAIN_ZERO_SPEED_YES ((UINT8)0x55U) /*CI-VOBC列车零速*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -280,6 +314,18 @@ typedef struct S_IvocToCiCmdStruct
|
||||
UINT16 wCmdDevId[IVOC_CI_CMD_DEVICE_MAX]; /* 命令设备ID数组*/
|
||||
}IvocCmdStru;
|
||||
|
||||
/*点连式信息*/
|
||||
typedef struct S_VobcToCiBlocLinkStruct
|
||||
{
|
||||
UINT8 chBlocLinkTrainLevel; /*点连式运行级别*/
|
||||
UINT32 chBlocLinkCycle; /*点连式通信周期*/
|
||||
UINT8 chTrainDirection; /*运行方向*/
|
||||
UINT16 wTrainMaxSafeHeadLink; /*列车最大安全前端所处Link*/
|
||||
UINT32 dwTrainMaxSafeHeadOffset; /*列车最大安全前端偏移量*/
|
||||
UINT16 wTrainMinSafeTailLink; /*列车最小安全后端所处link*/
|
||||
UINT32 dwTrainMinSafeTailOffset; /*列车最小安全后端偏移量*/
|
||||
}VobcToCiBlocLinkStruct;
|
||||
|
||||
/*与联锁通信的Vobc信息*/
|
||||
typedef struct S_VobcToCiDataStruct
|
||||
{
|
||||
@@ -289,6 +335,7 @@ typedef struct S_VobcToCiDataStruct
|
||||
UINT8 washTrainRequest; /*洗车请求信息*/
|
||||
UINT8 headWashStopSteadyInfo; /*头端洗位停稳信息,洗车停稳1*/
|
||||
UINT8 tailWashStopSteadyInfo; /*尾端洗位停稳信息,洗车停稳2*/
|
||||
UINT8 couplingWashStopSteadyInfo; /*联挂端洗位停稳信息,洗车停稳3*/
|
||||
UINT8 passWashMachineRequest; /*通过洗车机请求信息*/
|
||||
UINT8 washPauseRequest; /*暂停洗车请求*/
|
||||
UINT8 chWashMachineWorkMode; /*洗车机工作模式设置*/
|
||||
@@ -303,7 +350,9 @@ typedef struct S_VobcToCiDataStruct
|
||||
UINT16 vobcLogId; /*互联互通4IP VOBC1端或2端标识*/
|
||||
VobcToCiPsdDataStruct PsdData[VOBC_TO_CI_TRAIN_PSD_MAX]; /*关联屏蔽门数据*/
|
||||
UINT32 signalID; /*VOBC->CI信号机ID*/
|
||||
|
||||
|
||||
VobcToCiBlocLinkStruct strBlocLinkData; /*VOBC->CI点连式信息*/
|
||||
|
||||
/*add by qw.liu 2022-02-24 增加车车新接口字段*/
|
||||
UINT8 chTrainLevel; /*列车运行级别:01:VBTC;02:ITC;03:UR;04:ABL*/
|
||||
UINT8 chTrainMode; /*列车模式*/
|
||||
@@ -793,6 +842,42 @@ UINT8 GetIvocToRcSum(void);
|
||||
* 0xaa 非主控
|
||||
*/
|
||||
UINT8 GetRecvVobcControlMode(const UINT16 wVobcId);
|
||||
/*
|
||||
* 功能描述:组包Ci到Ivoc未接近开放进路信息(预先开放)
|
||||
* 参数说明: UINT8* dataBuf, 数据缓冲区
|
||||
* UINT16 *dataLength, 数据长度 输出参数
|
||||
* UINT16 wTrainId 列车ID
|
||||
* 返 回 值:CI_ERROR 0 失败
|
||||
* CI_SUCCESS 1 成功
|
||||
* Create: fan 20250725
|
||||
*/
|
||||
UINT8 PackCiToIvocOpenRouteNotNearInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
|
||||
/*
|
||||
* 功能描述: 组VOBC点连式数据
|
||||
* 参数说明: UINT8* CiToVobcDataBuffer 存放信息的buffer
|
||||
* UINT16* ii 偏移量
|
||||
* VobcToCiDataStruct *vobcToCiDataStru VOBC-CI数据
|
||||
* 返回值 : 无
|
||||
* Create: lyj 20260314
|
||||
*/
|
||||
void PackVobcBlocLinkData(UINT8* CiToVobcDataBuffer, UINT16* ii, VobcToCiDataStruct* vobcToCiDataStru);
|
||||
/*
|
||||
* 功能描述: 解析VOBC点连式数据
|
||||
* 参数说明: const UINT8* dataBuf, 数据缓冲区
|
||||
* const UINT16 dataLength, 数据长度
|
||||
* VobcToCiDataStruct* vobcToCiDataStru VOBC到CI结构体数据
|
||||
* 返回值 : 解析结果
|
||||
* Create: lyj 20260314
|
||||
*/
|
||||
UINT8 ParseVobcBlocLinkData(const UINT8* dataBuf, const UINT16 dataLength, VobcToCiDataStruct* vobcToCiDataStru);
|
||||
/*
|
||||
* 功能描述:检查设备是否已经添加
|
||||
* 参数说明:const UINT16 wCheckDeviceId 检查设备ID
|
||||
* const UINT16* pDeviceBuf 数组
|
||||
* const UINT8 wDeviceNum 数量
|
||||
* 返回值 :检查结果
|
||||
*/
|
||||
UINT8 CheckRepeatData(const UINT16 wCheckDeviceId, const UINT16* pDeviceBuf, const UINT8 wDeviceNum);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -28,6 +28,11 @@ UINT8 lineIdentity = 0u; /*
|
||||
|
||||
ZcToCiDynamicDataStruct gZcToCiDymDataStru = { 0U }; /*ZC动态数据结构体*/
|
||||
|
||||
UINT8 gCbtcCrossNumZc = 0u; /*主控CBTC列车跨压数量*/
|
||||
CbtcCrossStructZC gCbtcCrossStructZc[ALL_CBTC_CROSS_SUM_MAX] = { 0u }; /*主控CBTC列车跨压信息*/
|
||||
|
||||
static UINT8 ParseZcCbtcCrossData(UINT8* pDataBuf, UINT16 dataLen);
|
||||
static UINT16 PackRcTacsCrossData(UINT8 *pDataBuf);
|
||||
|
||||
/*
|
||||
* 功能描述: 解析ZC单帧数据
|
||||
@@ -41,8 +46,6 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId)
|
||||
{
|
||||
UINT8* sourceId = NULL; /*源ID*/
|
||||
UINT16 ii = 0u;
|
||||
UINT16 jj = 0u;
|
||||
UINT8 kk = 0u;
|
||||
UINT8 retVal = CI_SUCCESS;
|
||||
UINT32 dwStep = 0U;
|
||||
UINT8 galHeadSaved = 0u; /*通用头是否已保存标志,1保存;0未保存*/
|
||||
@@ -71,8 +74,8 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId)
|
||||
zcName = (CI_SYSTEM_TYPE_ZC)*256U + systemId;
|
||||
ciName = (CI_SYSTEM_TYPE_RCI)*256U + localCiId;
|
||||
curntCycleNo = Get2oo2CurCycleNum();
|
||||
chDataType = GetLocalPublicDataType(); /*区分28.0.0.14与其他线路zc接口*/
|
||||
if ((NULL != dataBuf) && (dataLength > 0u))
|
||||
chDataType = GetLocalPublicDataType(); /*区分分支,与主线zc接口*/
|
||||
if ((NULL != dataBuf) && (0U < dataLength))
|
||||
{
|
||||
sourceId = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_ZC);/*获取与本联锁通信的ZC的ID,目前一个联锁最多只与一个ZC通信*/
|
||||
|
||||
@@ -116,7 +119,7 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId)
|
||||
/*计算消息的时效性*/
|
||||
zcInfoRemainValidity = HLHTCommonMsgRemainingValidity(GetCiAndZcTransmitBadEnsureTime(), curntCycleNo, GetSystemParaAppCycleTime(), hlhtGalHead.recvOppMsgSN, hlhtGalHead.crntOwnMsgSN, hlhtGalHead.preOwnMsgSN, hlhtGalHead.comPeriod);
|
||||
|
||||
if (zcInfoRemainValidity > 0)
|
||||
if (0 < zcInfoRemainValidity)
|
||||
{
|
||||
if (0u == hlhtGalHead.totalDataLen)
|
||||
{
|
||||
@@ -132,157 +135,247 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId)
|
||||
{
|
||||
/*报文有效,继续解析*/
|
||||
retVal = CI_SUCCESS;
|
||||
if (DATA_TYPE_MAIN_BRANCH == chDataType)
|
||||
{
|
||||
if (DATA_TYPE_NEW == chDataType)
|
||||
while (wTmpDataLen < hlhtGalHead.totalDataLen)
|
||||
{
|
||||
while (wTmpDataLen < hlhtGalHead.totalDataLen)
|
||||
/* 一条应用数据长度 */
|
||||
wMsgLen = ShortFromChar(&dataBuf[ii]);
|
||||
|
||||
ii += 2u;
|
||||
wTmpDataLen += 2U;
|
||||
wTmpDataLen += wMsgLen;
|
||||
|
||||
if (0u == wMsgLen)
|
||||
{
|
||||
/* 一条应用数据长度 */
|
||||
wMsgLen = ShortFromChar(&dataBuf[ii]);
|
||||
|
||||
; /* 无处理,继续解析下一包 */
|
||||
}
|
||||
else if (5u > wMsgLen)
|
||||
{
|
||||
/* 单包长度不对 */
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"ParseZcToCiDataFrame_Error wMsgLen\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 获取报文类型 */
|
||||
wMsgType = ShortFromChar(&dataBuf[ii]);
|
||||
ii += 2u;
|
||||
wTmpDataLen += 2U;
|
||||
wTmpDataLen += wMsgLen;
|
||||
|
||||
if (0u == wMsgLen)
|
||||
/* 跳过预留 */
|
||||
ii += 2u;
|
||||
|
||||
wMsgCheckLen = wMsgLen - 4u;/*单个应用报文解析长度,删除预留2和类型2字节*/
|
||||
switch (wMsgType)
|
||||
{
|
||||
; /* 无处理,继续解析下一包 */
|
||||
}
|
||||
else if (5u > wMsgLen)
|
||||
{
|
||||
/* 单包长度不对 */
|
||||
case ZC_TO_TIOC_MASK_MSG:
|
||||
/* 解析ZC-CI码位信息 */
|
||||
retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x10000U;
|
||||
break;
|
||||
case ZC_TO_TIOC_TSR_MSG:
|
||||
/* 解析临时限速信息 */
|
||||
retVal = ParseZcTsrData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x01000U;
|
||||
break;
|
||||
case ZC_TO_TIOC_WLB_MSG:
|
||||
/* 解析紧急制动信息 */
|
||||
retVal = ParseZcEbData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x00100U;
|
||||
break;
|
||||
case ZC_TO_TIOC_SNOW_MSG:
|
||||
/*解析ZC-CI雨雪模式信息*/
|
||||
retVal = ParseZcSnowData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x00010U;
|
||||
break;
|
||||
case ZC_TO_TIOC_ITELINECUT_MSG:
|
||||
/*解析ZC-CI的ITE切除信息*/
|
||||
retVal = ParseZcIteCutData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x00001U;
|
||||
break;
|
||||
case ZC_TO_RC_CBTC_CROSS_MSG:
|
||||
/*解析ZC-CI的CBTC主控列车跨压信息*/
|
||||
retVal = ParseZcCbtcCrossData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x00002U;
|
||||
break;
|
||||
default:
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"ParseZcToCiDataFrame_Error wMsgLen\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 获取报文类型 */
|
||||
wMsgType = ShortFromChar(&dataBuf[ii]);
|
||||
ii += 2u;
|
||||
|
||||
/* 跳过预留 */
|
||||
ii += 2u;
|
||||
|
||||
wMsgCheckLen = wMsgLen - 4u;/*单个应用报文解析长度,删除预留2和类型2字节*/
|
||||
switch (wMsgType)
|
||||
{
|
||||
case ZC_TO_TIOC_MASK_MSG:
|
||||
/* 解析ZC-CI码位信息 */
|
||||
retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x10000U;
|
||||
break;
|
||||
case ZC_TO_TIOC_TSR_MSG:
|
||||
/* 解析临时限速信息 */
|
||||
retVal = ParseZcTsrData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x01000U;
|
||||
break;
|
||||
case ZC_TO_TIOC_WLB_MSG:
|
||||
/* 解析紧急制动信息 */
|
||||
retVal = ParseZcEbData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x00100U;
|
||||
break;
|
||||
case ZC_TO_TIOC_SNOW_MSG:
|
||||
/*解析ZC-CI雨雪模式信息*/
|
||||
retVal = ParseZcSnowData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x00010U;
|
||||
break;
|
||||
case ZC_TO_TIOC_ITELINECUT_MSG:
|
||||
/*解析ZC-CI的ITE切除信息*/
|
||||
retVal = ParseZcIteCutData(&dataBuf[ii], wMsgCheckLen);
|
||||
dwStep |= 0x00001U;
|
||||
break;
|
||||
default:
|
||||
retVal = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/* 解析成功,跳过该数据包 */
|
||||
ii += wMsgCheckLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"ParseZcToCiDataFrame_Error Step: 0x%5x\n", dwStep);
|
||||
ClearZcData(); /*任意步骤没解析通过则清空*/
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_ERROR == retVal) /*解析失败*/
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/* 解析成功,跳过该数据包 */
|
||||
ii += wMsgCheckLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*do nothing*/
|
||||
debug_infor_printf((const)"ParseZcToCiDataFrame_Error Step: 0x%5x\n", dwStep);
|
||||
ClearZcData(); /*任意步骤没解析通过则清空*/
|
||||
}
|
||||
}
|
||||
if (CI_SUCCESS == retVal)
|
||||
|
||||
if (CI_ERROR == retVal) /*解析失败*/
|
||||
{
|
||||
/*校验数据长度*/
|
||||
if (ii > dataLength)
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*do nothing*/
|
||||
}
|
||||
}
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/*校验数据长度*/
|
||||
if (ii > dataLength)
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (DATA_TYPE_28_BRANCH == chDataType)
|
||||
{
|
||||
/*28分支具备码位0201,0205*/
|
||||
while (wTmpDataLen < hlhtGalHead.totalDataLen)
|
||||
{
|
||||
/* 一条应用数据长度 */
|
||||
wMsgLen = ShortFromChar(&dataBuf[ii]);
|
||||
ii += 2U;
|
||||
wTmpDataLen += 2U;
|
||||
wTmpDataLen += wMsgLen;
|
||||
|
||||
if (5U > wMsgLen)
|
||||
{
|
||||
/* 单包长度不对 */
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"ParseZcToCiDataFrame_Error wMsgLen\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 获取报文类型 */
|
||||
wMsgType = ShortFromChar(&dataBuf[ii]);
|
||||
ii += 2U;
|
||||
/* 跳过预留 */
|
||||
ii += 2U;
|
||||
wMsgCheckLen = wMsgLen - 4U;
|
||||
|
||||
switch (wMsgType)
|
||||
{
|
||||
case ZC_TO_TIOC_MASK_MSG:
|
||||
{
|
||||
/* 解析ZC-CI码位信息 */
|
||||
retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen);
|
||||
}
|
||||
break;
|
||||
case ZC_TO_TIOC_SNOW_MSG:
|
||||
{
|
||||
/*解析ZC-CI雨雪模式信息*/
|
||||
retVal = ParseZcSnowData(&dataBuf[ii], wMsgCheckLen);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
retVal = CI_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/* 解析成功,跳过该数据包 */
|
||||
ii += wMsgCheckLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"ParseZcToCiDataFrame_Error MsgType: %d\n", wMsgType);
|
||||
ClearZcData(); /*任意步骤没解析通过则清空*/
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_ERROR == retVal) /*解析失败*/
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*do nothing*/
|
||||
}
|
||||
|
||||
}
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/*校验数据长度*/
|
||||
if (ii > dataLength)
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*23分支无报文类型、类型长度和预留,仅具备码位*/
|
||||
wMsgCheckLen = hlhtGalHead.totalDataLen;
|
||||
retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen);
|
||||
if (CI_ERROR == retVal)
|
||||
{
|
||||
debug_infor_printf((const)"\nParseZcToCiDataFrame_Error MaskOnly\n");
|
||||
ClearZcData(); /*没解析通过则清空*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*杭德线无报文类型、类型长度和预留,仅具备码位0201*/
|
||||
wMsgCheckLen = hlhtGalHead.totalDataLen;
|
||||
retVal = ParseMaskData(&dataBuf[ii], wMsgCheckLen);
|
||||
if (CI_ERROR == retVal)
|
||||
{
|
||||
debug_infor_printf((const)"\nParseZcToCiDataFrame_Error MaskOnly\n");
|
||||
ClearZcData(); /*没解析通过则清空*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*继续*/
|
||||
}
|
||||
ii += wMsgCheckLen; /*继续*/
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == retVal)
|
||||
}
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
if (hlhtGalHead.totalDataLen != (ii - 31U))
|
||||
{
|
||||
/*更新通信周期*/
|
||||
dwCurCyc = Get2oo2CurCycleNum();
|
||||
funRet = SetCiTransmitRecvDataCycNum(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0], dwCurCyc);
|
||||
if (CI_ERROR == funRet)
|
||||
{/*更新周期失败*/
|
||||
retVal = CI_ERROR;
|
||||
debug_infor_printf((const)"\nParseZcToCiDataFrame_Error totalDataLen\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
/*继续*/
|
||||
}
|
||||
}
|
||||
if (CI_SUCCESS == retVal)
|
||||
{
|
||||
/*更新通信周期*/
|
||||
dwCurCyc = Get2oo2CurCycleNum();
|
||||
funRet = SetCiTransmitRecvDataCycNum(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0U], dwCurCyc);
|
||||
if (CI_ERROR == funRet)
|
||||
{/*更新周期失败*/
|
||||
|
||||
}
|
||||
else
|
||||
{/*更新周期成功*/
|
||||
|
||||
/*更新与ZC通信状态:判断与ZC是否通信中断*/
|
||||
funRet = UpdateCiTransmitState(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0U]);
|
||||
if (CI_ERROR == funRet)
|
||||
{
|
||||
/*更新通信状态失败*/
|
||||
}
|
||||
else
|
||||
{/*更新周期成功*/
|
||||
|
||||
/*更新与ZC通信状态:判断与ZC是否通信中断*/
|
||||
funRet = UpdateCiTransmitState(localCiId, CI_SYSTEM_TYPE_ZC, sourceId[0]);
|
||||
if (CI_ERROR == funRet)
|
||||
{
|
||||
/*更新通信状态失败*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*更新通信状态成功*/
|
||||
}
|
||||
{
|
||||
/*更新通信状态成功*/
|
||||
}
|
||||
|
||||
/*数据经过校验,需要存储通用报文上下文*/
|
||||
SetHLHTHeadCtxComPeriod(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.comPeriod);
|
||||
SetHLHTHeadCtxSrcCrntSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.crntOwnMsgSN);
|
||||
SetHLHTHeadCtxSrcOppSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.recvOppMsgSN);
|
||||
SetHLHTHeadCtxSrcOwnSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.preOwnMsgSN);
|
||||
SetHLHTHeadCtxCiRcvSN(CI_SYSTEM_TYPE_ZC, systemId, curntCycleNo);
|
||||
SetHLHTHeadCtxCiRcvLogId(CI_SYSTEM_TYPE_ZC, systemId, 0u);
|
||||
|
||||
galHeadSaved = 1;
|
||||
}
|
||||
|
||||
/*数据经过校验,需要存储通用报文上下文*/
|
||||
SetHLHTHeadCtxComPeriod(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.comPeriod);
|
||||
SetHLHTHeadCtxSrcCrntSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.crntOwnMsgSN);
|
||||
SetHLHTHeadCtxSrcOppSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.recvOppMsgSN);
|
||||
SetHLHTHeadCtxSrcOwnSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.preOwnMsgSN);
|
||||
SetHLHTHeadCtxCiRcvSN(CI_SYSTEM_TYPE_ZC, systemId, curntCycleNo);
|
||||
SetHLHTHeadCtxCiRcvLogId(CI_SYSTEM_TYPE_ZC, systemId, 0u);
|
||||
|
||||
galHeadSaved = 1U;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (HLHT_HEAD_INIT ==headRet)
|
||||
{
|
||||
if (curntCycleNo > 0u)/*判断序号大于0,因为把0当做无效序号*/
|
||||
if (0U < curntCycleNo)/*判断序号大于0,因为把0当做无效序号*/
|
||||
{
|
||||
SetHLHTHeadCtxComPeriod(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.comPeriod);
|
||||
SetHLHTHeadCtxSrcCrntSN(CI_SYSTEM_TYPE_ZC, systemId, hlhtGalHead.crntOwnMsgSN);
|
||||
@@ -291,7 +384,7 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId)
|
||||
SetHLHTHeadCtxCiRcvSN(CI_SYSTEM_TYPE_ZC, systemId, curntCycleNo);
|
||||
SetHLHTHeadCtxCiRcvLogId(CI_SYSTEM_TYPE_ZC, systemId, 0u);
|
||||
|
||||
galHeadSaved = 1;
|
||||
galHeadSaved = 1U;
|
||||
}
|
||||
|
||||
retVal = CI_ERROR;
|
||||
@@ -334,11 +427,13 @@ UINT8 ParseZcToCiDataFrame(UINT8* dataBuf, UINT16 dataLength, UINT8 systemId)
|
||||
{/*记录通信故障码*/
|
||||
SetErrorData(EFUNC_PARSE_ZC2CI_DATA,CI_SYSTEM_TYPE_ZC,systemId,ETYPE_COMM_WITH_ZC,CI_BACK_DATA_MSG_BDS_SN_ERR,ESEND_LEVEL_ATS);
|
||||
}
|
||||
#if 0
|
||||
/*给ATS或现地反馈ZC-CI数据对方消息序列号及收到上一条消息时本方序列号错误*/
|
||||
else if (GAL_COMPARE_MSG_SN_ERR == (errCode & GAL_COMPARE_MSG_SN_ERR))
|
||||
{/*记录通信故障码*/
|
||||
SetErrorData(EFUNC_PARSE_ZC2CI_DATA,CI_SYSTEM_TYPE_ZC,systemId,ETYPE_COMM_WITH_ZC,CI_BACK_DATA_MSG_SN_ERR,ESEND_LEVEL_ATS);
|
||||
}
|
||||
#endif
|
||||
/*给ATS或现地反馈ZC-CI数据协议版本号错误*/
|
||||
else if (GAL_COMPARE_PROTOCOL_VER_ERR == (errCode & GAL_COMPARE_PROTOCOL_VER_ERR))
|
||||
{/*记录通信故障码*/
|
||||
@@ -1051,25 +1146,26 @@ UINT8 ParseZcSnowData(UINT8* dataBuf, UINT16 dataLen)
|
||||
*/
|
||||
UINT8 PackCiToZcData( UINT8 deviceId)
|
||||
{
|
||||
UINT8 localCi = 0u; /*本地联锁ID*/
|
||||
UINT8 CiToZcDataBuffer[CI_TO_ZC_DATA_LEN_MAX] = {0u};/*CI到ZC组帧数组*/
|
||||
UINT16 SendMaskSum = 0u;
|
||||
UINT16 ii = 0u;
|
||||
UINT32 ciEtcsId = 0u; /*CI互联互通编号*/
|
||||
UINT32 zcEtcsId = 0u; /*ZC互联互通编号*/
|
||||
UINT32 emapCheckVer = 0u; /*共用数据校验信息*/
|
||||
UINT8 localCi = 0U; /*本地联锁ID*/
|
||||
UINT8 CiToZcDataBuffer[CI_TO_ZC_DATA_LEN_MAX] = {0U};/*CI到ZC组帧数组*/
|
||||
UINT16 SendMaskSum = 0U;
|
||||
UINT16 ii = 0U;
|
||||
UINT32 ciEtcsId = 0U; /*CI互联互通编号*/
|
||||
UINT32 zcEtcsId = 0U; /*ZC互联互通编号*/
|
||||
UINT32 emapCheckVer = 0U; /*共用数据校验信息*/
|
||||
UINT8 retVal = CI_ERROR;
|
||||
UINT32 curCycleNum = Get2oo2CurCycleNum(); /*联锁应用周期号*/
|
||||
UINT32 appCycleTime = GetSystemParaAppCycleTime(); /*联锁应用周期*/
|
||||
UINT8 ci_zcPrtclVersion = 0u;
|
||||
UINT16 dstDevId = 0;
|
||||
UINT8 outnetSafeSendRtn = 0u;
|
||||
UINT8 ci_zcPrtclVersion = 0U;
|
||||
UINT16 dstDevId = 0U;
|
||||
UINT8 outnetSafeSendRtn = 0U;
|
||||
UINT8 CIName2HlhtId = 0U;
|
||||
UINT8 ZCName2HlhtId = 0U;
|
||||
UINT8 CiEmapCheckVer = 0U;
|
||||
UINT32 dwHlhtHSrcSN = 0u;
|
||||
UINT32 dwHlhtHRcvSN = 0u;
|
||||
UINT32 dwHlhtHSrcSN = 0U;
|
||||
UINT32 dwHlhtHRcvSN = 0U;
|
||||
UINT16 totallenIndex = 0U;
|
||||
UINT16 wCrossFrameLen = 0U;
|
||||
UINT8 chDataType = 0U;
|
||||
|
||||
localCi = GetSystemParaLocalCiId(); /*获取本地联锁ID*/
|
||||
@@ -1093,16 +1189,16 @@ UINT8 PackCiToZcData( UINT8 deviceId)
|
||||
if ((CI_SUCCESS == retVal))
|
||||
{
|
||||
/*获取将要发送的码位字节数*/
|
||||
if ((GetSendMaskSum(CI_SYSTEM_TYPE_ZC) % 8u) == 0u)
|
||||
if (0U == (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) % 8U))
|
||||
{
|
||||
SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8u);
|
||||
SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8U);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8u + 1u);
|
||||
SendMaskSum = (UINT16) (GetSendMaskSum(CI_SYSTEM_TYPE_ZC) / 8U + 1U);
|
||||
}
|
||||
|
||||
if (0u == SendMaskSum)
|
||||
if (0U == SendMaskSum)
|
||||
{
|
||||
retVal = CI_ERROR;
|
||||
}
|
||||
@@ -1120,21 +1216,21 @@ UINT8 PackCiToZcData( UINT8 deviceId)
|
||||
/*开始组应用数据帧*/
|
||||
/*组GAL包头*/
|
||||
ShortToChar(CI_ZC_INTERFACE_INFOTYPE, &CiToZcDataBuffer[ii]);/*接口信息类型*/
|
||||
ii += 2u;
|
||||
ii += 2U;
|
||||
LongToChar(ciEtcsId, &CiToZcDataBuffer[ii]);/*发送方标识信息*/
|
||||
ii += 4u;
|
||||
ii += 4U;
|
||||
LongToChar(zcEtcsId, &CiToZcDataBuffer[ii]);/*接收方标识信息*/
|
||||
ii += 4u;
|
||||
ii += 4U;
|
||||
LongToChar(emapCheckVer, &CiToZcDataBuffer[ii]);/*电子地图版本校验信息*/
|
||||
ii += 4u;
|
||||
ii += 4U;
|
||||
LongToChar(curCycleNum, &CiToZcDataBuffer[ii]);/*本方消息序列号*/
|
||||
ii += 4u;
|
||||
ii += 4U;
|
||||
ShortToChar((UINT16)appCycleTime, &CiToZcDataBuffer[ii]);/*设备通讯周期*/
|
||||
ii += 2u;
|
||||
ii += 2U;
|
||||
LongToChar(dwHlhtHSrcSN, &CiToZcDataBuffer[ii]);/*对方消息序列号:recvOppMsgSN记录收到对方上一条消息中的对方消息序列号*/
|
||||
ii += 4u;
|
||||
ii += 4U;
|
||||
LongToChar(dwHlhtHRcvSN, &CiToZcDataBuffer[ii]);/*收到上一条消息时本方序列号*/
|
||||
ii += 4u;
|
||||
ii += 4U;
|
||||
|
||||
lineIdentity = GetCiFunctionSwitchConfig(VOBC_INTERFACE_IDENTITY);/*获取线路标识*/
|
||||
|
||||
@@ -1148,39 +1244,58 @@ UINT8 PackCiToZcData( UINT8 deviceId)
|
||||
}
|
||||
|
||||
totallenIndex = ii;
|
||||
ii += 2u;/*通用报文头中的应用层报文总长度*/
|
||||
if (DATA_TYPE_NEW == chDataType)
|
||||
ii += 2U;/*通用报文头中的应用层报文总长度*/
|
||||
|
||||
if ((DATA_TYPE_MAIN_BRANCH == chDataType) || (DATA_TYPE_28_BRANCH == chDataType))
|
||||
{
|
||||
ii += 2u;/*通用报文头中的应用层报文长度(0x202报文长度)*/
|
||||
ii += 2U;/*通用报文头中的应用层报文长度(0x202报文长度)*/
|
||||
|
||||
ShortToChar(TIOC_TO_ZC_MASK_MSG, &CiToZcDataBuffer[ii]);/*接口信息类型*/
|
||||
ii += 2u;
|
||||
ii += 2U;
|
||||
|
||||
ii += 2u; /*预留*/
|
||||
ii += 2U; /*预留*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*杭德线路无0x202报文长度、类型及预留*/
|
||||
/*23分支无0x202报文长度、类型及预留*/
|
||||
}
|
||||
|
||||
|
||||
/*组码位信息*/
|
||||
(void)MaskPack(CI_SYSTEM_TYPE_ZC,&CiToZcDataBuffer[ii]);
|
||||
ii = (UINT16) (ii + SendMaskSum);
|
||||
ii = (UINT16)(ii + SendMaskSum);
|
||||
|
||||
/*通用报文头中应用层报文总长度*/
|
||||
ShortToChar(ii - totallenIndex - 2U, &CiToZcDataBuffer[totallenIndex]);
|
||||
if (DATA_TYPE_NEW == chDataType)
|
||||
if (DATA_TYPE_MAIN_BRANCH == chDataType)
|
||||
{
|
||||
/*通用应用层报文长度(0x202报文长度)*/
|
||||
totallenIndex += 2U;
|
||||
ShortToChar(ii - totallenIndex - 2U, &CiToZcDataBuffer[totallenIndex]);
|
||||
/*刨去2字节应用报文总长度+2字节0202帧长度*/
|
||||
ShortToChar((ii - (totallenIndex + 4U)), &CiToZcDataBuffer[totallenIndex + 2U]);
|
||||
|
||||
/*组TACS列车跨压信息*/
|
||||
wCrossFrameLen = PackRcTacsCrossData(&CiToZcDataBuffer[ii]);
|
||||
ii += wCrossFrameLen;
|
||||
}
|
||||
else if(DATA_TYPE_28_BRANCH == chDataType)
|
||||
{
|
||||
/*通用应用层报文长度(0x202报文长度)*/
|
||||
/*刨去2字节应用报文总长度+2字节0202帧长度*/
|
||||
ShortToChar((ii - (totallenIndex + 4U)), &CiToZcDataBuffer[totallenIndex + 2U]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*23分支 nothing*/
|
||||
}
|
||||
|
||||
/*通用报文头中应用层报文总长度*/
|
||||
/*刨去2字节应用报文总长度*/
|
||||
ShortToChar(ii - (totallenIndex + 2U), &CiToZcDataBuffer[totallenIndex]);
|
||||
|
||||
/*清ZC数据*/
|
||||
ClearZcData();
|
||||
|
||||
dstDevId = (UINT16)(CI_SYSTEM_TYPE_ZC << 8) | ((UINT16)deviceId);
|
||||
outnetSafeSendRtn = OutnetSafeSend(dstDevId, 0u, &CiToZcDataBuffer[0], ii);
|
||||
if (1u == outnetSafeSendRtn)
|
||||
dstDevId = (UINT16)(CI_SYSTEM_TYPE_ZC << 8U) | ((UINT16)deviceId);
|
||||
outnetSafeSendRtn = OutnetSafeSend(dstDevId, 0U, &CiToZcDataBuffer[0U], ii);
|
||||
if (1U == outnetSafeSendRtn)
|
||||
{ /*写队列成功*/
|
||||
#ifdef LOGPRINT/*日志打印宏*/
|
||||
#ifdef PLATFORM_2OO2/*2oo2平台打印*/
|
||||
@@ -1242,6 +1357,93 @@ UINT8 PackCiToZcData( UINT8 deviceId)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述: 组发送给ZC的TACS主控列车跨压信息
|
||||
* 参数说明: UINT8 *pDataBuf 数据包
|
||||
* 返回值 : 数据长度
|
||||
*/
|
||||
static UINT16 PackRcTacsCrossData(UINT8 *pDataBuf)
|
||||
{
|
||||
UINT16 Index = 0u; /*索引编号*/
|
||||
UINT16 i = 0u; /*循环变量*/
|
||||
UINT8 j = 0u; /*循环变量*/
|
||||
UINT16 wSignalCurSum = 0u; /*信号机数量*/
|
||||
UINT16 wSignalId = 0u; /*信号机ID*/
|
||||
UINT8 wSignalBelongCiId = 0u; /*信号机所属联锁ID*/
|
||||
UINT8 wLocalCiId = 0u; /*本机联锁ID*/
|
||||
UINT8 wCrossTacsTrainId = 0u; /*TACS跨压列车ID*/
|
||||
|
||||
UINT8 wTacsCrossTrainSum = 0u; /*TACS跨压列车数量*/
|
||||
UINT16 wTacsCrossSignalBuf[ALL_TACS_CROSS_SUM_MAX] = { 0u }; /*TACS跨压信号机ID数组*/
|
||||
UINT8 wTacsCrossTrainBuf[ALL_TACS_CROSS_SUM_MAX] = { 0u }; /*TACS跨压列车ID数组*/
|
||||
|
||||
/*Step1:TACS跨压信息准备*/
|
||||
wSignalCurSum = GetSignalCurSum();
|
||||
/*遍历所有本联锁信号机*/
|
||||
for (i = 0u; i < wSignalCurSum; i++)
|
||||
{
|
||||
wSignalId = GetSignalId(i);
|
||||
wSignalBelongCiId = GetSignalBelongCiId(wSignalId);
|
||||
wLocalCiId = GetSystemParaLocalCiId();
|
||||
if (wSignalBelongCiId == wLocalCiId)
|
||||
{
|
||||
/*判断跨压TACS主控列车ID是否为零*/
|
||||
wCrossTacsTrainId = GetSignalCrossTacsTrainIdCC(wSignalId);
|
||||
|
||||
/*非法值防护*/
|
||||
if ((0u < wSignalId) && (CROSS_SIGNAL_ID_MAX >= wSignalId)
|
||||
&& (0u < wCrossTacsTrainId) && (TACS_CROSS_ID_MAX >= wCrossTacsTrainId)
|
||||
&& (ALL_TACS_CROSS_SUM_MAX > wTacsCrossTrainSum))
|
||||
{
|
||||
/*TACS主控列车ID有效,赋值至待发送数组*/
|
||||
wTacsCrossSignalBuf[wTacsCrossTrainSum] = wSignalId;
|
||||
wTacsCrossTrainBuf[wTacsCrossTrainSum] = wCrossTacsTrainId;
|
||||
wTacsCrossTrainSum += 1u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*Step2:TACS跨压信息组包*/
|
||||
/*帧长度,最后赋值*/
|
||||
Index += 2u;
|
||||
|
||||
/*帧类型*/
|
||||
ShortToChar(RC_TO_ZC_TACS_CROSS_MSG, &pDataBuf[Index]);
|
||||
Index += 2u;
|
||||
|
||||
/*预留2字节发0*/
|
||||
ShortToChar(0u, &pDataBuf[Index]);
|
||||
Index += 2u;
|
||||
|
||||
/*跨压TACS主控列车数量*/
|
||||
pDataBuf[Index] = wTacsCrossTrainSum;
|
||||
Index += 1u;
|
||||
|
||||
for (j = 0u; j < wTacsCrossTrainSum; j++)
|
||||
{
|
||||
/*跨压信号机ID*/
|
||||
ShortToChar(wTacsCrossSignalBuf[j], &pDataBuf[Index]);
|
||||
Index += 2u;
|
||||
|
||||
/*跨压列车ID*/
|
||||
pDataBuf[Index] = wTacsCrossTrainBuf[j];
|
||||
Index += 1u;
|
||||
}
|
||||
|
||||
/*最后赋值长度*/
|
||||
ShortToChar((Index - 2u), &pDataBuf[0u]);
|
||||
|
||||
return Index;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 功能描述: 获取ZC码位值Buf
|
||||
@@ -1446,6 +1648,94 @@ UINT8 ParseZcIteCutData(UINT8* dataBuf, UINT16 dataLen)
|
||||
return cRetVal;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:解析ZC到CI的CBTC主控列车跨压数据
|
||||
* 参数说明:UINT8* pDataBuf 数据缓冲区
|
||||
* UINT16 dataLen 数据长度
|
||||
* 返 回 值:CI_ERROR 0 数据解析失败
|
||||
* CI_SUCCESS 1 数据解析成功
|
||||
* Edit By wyd 2026.3.26
|
||||
*/
|
||||
static UINT8 ParseZcCbtcCrossData(UINT8* pDataBuf, UINT16 dataLen)
|
||||
{
|
||||
UINT8 cRetVal = CI_ERROR; /*函数返回值*/
|
||||
UINT8 wCrossNum = 0u; /*承接跨压状态*/
|
||||
UINT16 ii = 0U; /*数组下标变量*/
|
||||
UINT8 jj = 0U; /*循环变量*/
|
||||
UINT16 wSignalId = 0U; /*承接跨压信号机ID*/
|
||||
UINT8 wTrainId = 0U; /*承接跨压列车ID*/
|
||||
|
||||
if (NULL != pDataBuf)
|
||||
{
|
||||
cRetVal = CI_SUCCESS;
|
||||
ZcToCiDataStru.cRecvCbtcCrossFrameTag = CI_SUCCESS;
|
||||
|
||||
wCrossNum = pDataBuf[ii];
|
||||
ii++;
|
||||
|
||||
if (ALL_CBTC_CROSS_SUM_MAX >= wCrossNum)
|
||||
{
|
||||
ZcToCiDataStru.wCbtcCrossNum = wCrossNum;
|
||||
for (jj = 0U; jj < wCrossNum; jj++)
|
||||
{
|
||||
wSignalId = ShortFromChar(&pDataBuf[ii]); /*解析信号机ID*/
|
||||
ii += 2u;
|
||||
|
||||
if ((0U < wSignalId) && (CROSS_SIGNAL_ID_MAX >= wSignalId))
|
||||
{
|
||||
ZcToCiDataStru.wCbtcCrossSignalId[jj] = wSignalId;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"ParseZcCbtcCrossData: wSignalId Error\n");
|
||||
cRetVal = CI_ERROR; /*Z信号机ID超限,返回失败*/
|
||||
}
|
||||
|
||||
wTrainId = pDataBuf[ii]; /*解析列车ID*/
|
||||
ii += 1u;
|
||||
|
||||
if ((0U < wTrainId) && (CBTC_CROSS_ID_MAX >= wTrainId))
|
||||
{
|
||||
ZcToCiDataStru.wCbtcCrossTrainId[jj] = wTrainId;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"ParseZcCbtcCrossData: wTrainId Error\n");
|
||||
cRetVal = CI_ERROR; /*列车ID超限,返回失败*/
|
||||
}
|
||||
}
|
||||
|
||||
if (CI_SUCCESS == cRetVal)
|
||||
{
|
||||
if (dataLen != ii)
|
||||
{
|
||||
debug_infor_printf((const)"ParseZcCbtcCrossData: Msg Len Error\n");
|
||||
cRetVal = CI_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_infor_printf((const)"ParseZcCbtcCrossData Error: wCrossNum Error\n");
|
||||
cRetVal = CI_ERROR; /*状态非法,返回失败*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cRetVal = CI_ERROR; /*入参非法,返回失败*/
|
||||
}
|
||||
|
||||
return cRetVal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取ZC发送的进路停车保证标志
|
||||
* @param[in] UINT16 wDeviceId 设备ID
|
||||
@@ -2015,4 +2305,61 @@ void SetLocalSnowModelZc(UINT8 setmodle)
|
||||
{
|
||||
; /*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取ZC发送的CBTC主控列车跨压数量
|
||||
* 参数说明:无
|
||||
* 返 回 值:跨压数量
|
||||
* Created By wyd 2026.3.27
|
||||
*/
|
||||
UINT8 GetCbtcCrossNumZc(void)
|
||||
{
|
||||
return gCbtcCrossNumZc;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:获取ZC发送的CBTC主控列车跨压信息
|
||||
* 参数说明:无
|
||||
* 返 回 值:跨压信息
|
||||
* Created By wyd 2026.3.27
|
||||
*/
|
||||
CbtcCrossStructZC *GetCbtcCrossStructZc(void)
|
||||
{
|
||||
return gCbtcCrossStructZc;
|
||||
}
|
||||
|
||||
/*
|
||||
* 功能描述:设置ZC发送CBTC主控列车跨压信息
|
||||
* 参数说明:UINT8 wCrossNum 跨压数量
|
||||
* UINT16 wSignalId[ALL_CBTC_CROSS_SUM_MAX] 跨压信号机ID
|
||||
* UINT8 wTrainId[ALL_CBTC_CROSS_SUM_MAX] 跨压列车ID
|
||||
* 返 回 值:无
|
||||
* 注意事项:RC接收CI->RC同步过来的该信息时,是直接赋值,没调用该接口函数
|
||||
* Created By wyd 2026.3.26
|
||||
*/
|
||||
void SetCbtcCrossInfo(UINT8 wCrossNum, UINT16 wSignalId[ALL_CBTC_CROSS_SUM_MAX],
|
||||
UINT8 wTrainId[ALL_CBTC_CROSS_SUM_MAX])
|
||||
{
|
||||
UINT8 i = 0u;
|
||||
|
||||
/*先清空,防止残留脏数据*/
|
||||
(void)CommonMemSet(gCbtcCrossStructZc, ALL_CBTC_CROSS_SUM_MAX * sizeof(CbtcCrossStructZC),
|
||||
0x00u, ALL_CBTC_CROSS_SUM_MAX * sizeof(CbtcCrossStructZC));
|
||||
|
||||
/*赋值跨压数量和ID*/
|
||||
gCbtcCrossNumZc = wCrossNum;
|
||||
|
||||
if ((NULL == wSignalId) || (NULL == wTrainId))
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0u; i < wCrossNum; i++)
|
||||
{
|
||||
gCbtcCrossStructZc[i].wSignalId = wSignalId[i];
|
||||
gCbtcCrossStructZc[i].wTrainId = wTrainId[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,15 +26,17 @@
|
||||
#include "../ParsePack/ParsePackTmcData.h"
|
||||
|
||||
|
||||
#define CI_ZC_INTERFACE_INFOTYPE ((UINT16)0x0106) /*互联互通CI_ZC接口信息类型*/
|
||||
#define CI_ZC_PRTCL_VER ((UINT16)0x65) /*CI_ZC协议版本号,根据《IFAO-3048-ZC-CI接口说明书》修改*/
|
||||
#define ZC_TO_TIOC_MASK_MSG ((UINT16)0x0201u) /*ZC发送TIOC码位信息类型*/
|
||||
#define TIOC_TO_ZC_MASK_MSG ((UINT16)0x0202u) /*TIOC发送ZC码位信息类型*/
|
||||
#define ZC_TO_TIOC_TSR_MSG ((UINT16)0x0203u) /*ZC发送TIOC临时限速信息类型*/
|
||||
#define ZC_TO_TIOC_WLB_MSG ((UINT16)0x0204u) /*ZC发送TIOC紧急制动信息类型*/
|
||||
#define ZC_TO_TIOC_SNOW_MSG ((UINT16)0x0205u) /*ZC发送TIOC雨雪模式信息类型*/
|
||||
#define ZC_TO_TIOC_ITELINECUT_MSG ((UINT16)0x0206U) /*ZC发送TIOC的全线ITE切除状态信息类型*/
|
||||
#define ZC_TSR_VALID ((UINT8)0x55U) /*ZC发送临时限速有效*/
|
||||
#define CI_ZC_INTERFACE_INFOTYPE ((UINT16)0x0106) /*互联互通CI_ZC接口信息类型*/
|
||||
#define CI_ZC_PRTCL_VER ((UINT16)0x65) /*CI_ZC协议版本号,根据《IFAO-3048-ZC-CI接口说明书》修改*/
|
||||
#define ZC_TO_TIOC_MASK_MSG ((UINT16)0x0201u) /*ZC发送TIOC码位信息类型*/
|
||||
#define TIOC_TO_ZC_MASK_MSG ((UINT16)0x0202u) /*TIOC发送ZC码位信息类型*/
|
||||
#define ZC_TO_TIOC_TSR_MSG ((UINT16)0x0203u) /*ZC发送TIOC临时限速信息类型*/
|
||||
#define ZC_TO_TIOC_WLB_MSG ((UINT16)0x0204u) /*ZC发送TIOC紧急制动信息类型*/
|
||||
#define ZC_TO_TIOC_SNOW_MSG ((UINT16)0x0205u) /*ZC发送TIOC雨雪模式信息类型*/
|
||||
#define ZC_TO_TIOC_ITELINECUT_MSG ((UINT16)0x0206U) /*ZC发送TIOC的全线ITE切除状态信息类型*/
|
||||
#define ZC_TO_RC_CBTC_CROSS_MSG ((UINT16)0x0207U) /*ZC发送给RC的主控CBTC列车跨压信息*/
|
||||
#define RC_TO_ZC_TACS_CROSS_MSG ((UINT16)0x0208u) /*RC发送给ZC的主控TACS列车跨压信息*/
|
||||
#define ZC_TSR_VALID ((UINT8)0x55U) /*ZC发送临时限速有效*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -64,6 +66,10 @@ typedef struct S_ZcToCiDataStruct
|
||||
UINT8 cIteLineCutState; /* ITE全线切除状态 */
|
||||
UINT8 cAreaIteCutNum; /*区间ITE切除数量*/
|
||||
UINT16 szAreaIteCutId[ALL_AREA_SNOW_SUM_MAX]; /*区间ITE切除ID数组*/
|
||||
UINT8 cRecvCbtcCrossFrameTag; /*接收到主控CBTC列车跨压信息帧标志*/
|
||||
UINT8 wCbtcCrossNum; /*CBTC主控列车跨压数量*/
|
||||
UINT16 wCbtcCrossSignalId[ALL_CBTC_CROSS_SUM_MAX]; /*CBTC主控列车跨压信号机ID*/
|
||||
UINT8 wCbtcCrossTrainId[ALL_CBTC_CROSS_SUM_MAX]; /*CBTC主控列车跨压列车ID*/
|
||||
} ZcToCiDataStruct;
|
||||
|
||||
/*ZC发送的信号机动态数据结构体*/
|
||||
@@ -87,7 +93,7 @@ typedef struct S_LogicSectionDataStructZC
|
||||
typedef struct S_AxisSectionDataStructZC
|
||||
{
|
||||
UINT16 AxisSectionId; /*计轴区段ID (初始化字段)*/
|
||||
UINT8 AxisArbState; /*计轴ARB状态CC(0x55-未ARB,0xaa-ARB)*/
|
||||
UINT8 AxisArbState; /*计轴ARB状态(0x55-未ARB,0xaa-ARB)*/
|
||||
}AxisSectionDataStructZC;
|
||||
|
||||
/*ZC发送的物理区段动态数据结构体*/
|
||||
@@ -104,6 +110,13 @@ typedef struct S_RouteDataStructZC
|
||||
UINT8 StopensureFlag; /*停车保证标志ZC(0x55:已设置,0xAA:未设置) */
|
||||
}RouteDataStructZC;
|
||||
|
||||
/*ZC发送的CBTC主控列车跨压结构体*/
|
||||
typedef struct S_CbtcCrossStructZC
|
||||
{
|
||||
UINT16 wSignalId; /*跨压信号机ID*/
|
||||
UINT8 wTrainId; /*跨压列车ID*/
|
||||
}CbtcCrossStructZC;
|
||||
|
||||
/*存储ZC发送的动态数据结构体*/
|
||||
typedef struct S_ZcToCiDynamicDataStruct
|
||||
{
|
||||
@@ -133,7 +146,8 @@ extern ComTrainPosDataStruct ComTrainPosDataStru[ZC_TO_CI_TRAIN_MAX];
|
||||
extern UINT16 ComTrainSum;
|
||||
extern UINT8 lineIdentity;
|
||||
extern ZcToCiDynamicDataStruct gZcToCiDymDataStru; /*ZC动态数据结构体*/
|
||||
|
||||
extern UINT8 gCbtcCrossNumZc;
|
||||
extern CbtcCrossStructZC gCbtcCrossStructZc[ALL_CBTC_CROSS_SUM_MAX];
|
||||
|
||||
#endif
|
||||
|
||||
@@ -468,6 +482,34 @@ UINT8 GetLocalSnowModelZc(void);
|
||||
*/
|
||||
void SetLocalSnowModelZc(UINT8 setmodle);
|
||||
|
||||
/*
|
||||
* 功能描述:获取ZC发送的CBTC主控列车跨压数量
|
||||
* 参数说明:无
|
||||
* 返 回 值:跨压数量
|
||||
* Created By wyd 2026.3.27
|
||||
*/
|
||||
UINT8 GetCbtcCrossNumZc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:获取ZC发送的CBTC主控列车跨压信息
|
||||
* 参数说明:无
|
||||
* 返 回 值:跨压信息
|
||||
* Created By wyd 2026.3.27
|
||||
*/
|
||||
CbtcCrossStructZC *GetCbtcCrossStructZc(void);
|
||||
|
||||
/*
|
||||
* 功能描述:设置ZC发送CBTC主控列车跨压信息
|
||||
* 参数说明:UINT8 wCrossNum 跨压数量
|
||||
* UINT16 wSignalId[ALL_CBTC_CROSS_SUM_MAX] 跨压信号机ID
|
||||
* UINT8 wTrainId[ALL_CBTC_CROSS_SUM_MAX] 跨压列车ID
|
||||
* 返 回 值:无
|
||||
* 注意事项:RC接收CI->RC同步过来的该信息时,是直接赋值,没调用该接口函数
|
||||
* Created By wyd 2026.3.26
|
||||
*/
|
||||
void SetCbtcCrossInfo(UINT8 wCrossNum, UINT16 wSignalId[ALL_CBTC_CROSS_SUM_MAX],
|
||||
UINT8 wTrainId[ALL_CBTC_CROSS_SUM_MAX]);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,8 @@
|
||||
#include "../SGBJ/SGBJConfigDataManage.h"
|
||||
#include "../Section/AxisSectionConfigDataManage.h"
|
||||
#include "../System/SystemParameterManage.h"
|
||||
|
||||
#include "LightTestButtonDataManage.h"
|
||||
#include "LightTestButtonConfigDataManage.h"
|
||||
#define ORIGIN_TO_TERMINAL ((UINT8)0x55) /*起点到终点*/
|
||||
#define TERMINAL_TO_ORIGIN ((UINT8)0xAA) /*终点到起点*/
|
||||
/*用于记录结构成员个数最大值*/
|
||||
@@ -48,9 +49,6 @@
|
||||
/*4个字节*/
|
||||
#define LONG_LEN ((UINT8)4)
|
||||
|
||||
/*dquCICfgDtStr.OCSwitchCfgStr中成员个数*/
|
||||
#define OC_SWITCH_CFG_STR_MEMBER_NUM ((UINT8)2)
|
||||
|
||||
/*dquCICfgDtStr.OCSwitchCfgStr中成员个数_旧版*/
|
||||
#define OC_SWITCH_CFG_STR_MEMBER_NUM_OLD ((UINT8)6)
|
||||
|
||||
@@ -128,7 +126,7 @@ typedef struct
|
||||
UINT16 SystemParamStrLen;
|
||||
CiTransmitStruct CiTransmitStru[CI_SUM_MAX][CI_SUM_MAX]; /* 相关联锁配,CiTransmitStru[CI_SUM_MAX] 以发送方为主,第二层以目标方为主,*/
|
||||
UINT8 CiTransmitStrLen[CI_SUM_MAX]; /* 表示对应的联锁,有通信对象数据的个数 */
|
||||
TransmitRelationDataStruct TrsmtRlsDtStr[500]; /*联锁通信对象配置数据数组*/
|
||||
TransmitRelationDataStruct TrsmtRlsDtStr[TRANSMITRLX_SUM_MAX]; /*联锁通信对象配置数据数组*/
|
||||
UINT16 TrsmtRlsDtStrLen;
|
||||
AllAutoReturnConfigDataStruct AllAutoRtnRouteCfgDtStr[ALL_AUTO_RETURN_SUM_MAX]; /*全自动折返进路配置数据数组*/
|
||||
UINT16 AllAutoRtnRouteCfgDtStrLen;
|
||||
@@ -178,6 +176,9 @@ typedef struct
|
||||
ReverseCutCfgDataStru stReverseCutCfgDtStr[REVERSE_CUT_SUM_MAX]; /*倒切设备配置数据*/
|
||||
UINT16 wReverseCutCfgLen;
|
||||
|
||||
ReverseSwitchCfgDataStru stReverseSwitchCfgDtStr[CI_SUM_MAX]; /*倒切设备开关板卡配置数据*/
|
||||
UINT16 wRelayReverseSwitchStrLen; /*倒切开关个数*/
|
||||
|
||||
EaConfigStru szEaCfgDtStr[EA_CFG_SUM_MAX]; /*防护区域配置数据*/
|
||||
UINT16 wEaCfgLen; /*防护区域配置数据长度*/
|
||||
|
||||
@@ -186,6 +187,10 @@ typedef struct
|
||||
|
||||
SGBJConfigDataStruct SGBJCfgDataStru[SGBJ_SUM_MAX]; /*声光报警器配置数据*/
|
||||
UINT16 wSGBJCfgLen; /*声光报警器数量*/
|
||||
|
||||
LightTestButtonConfigDataStruct LightTestButtonCfgDataStru[LIGHTTESTBUTTON_BUTTON_MAX_NUM]; /*试灯按钮配置数据*/
|
||||
UINT16 wLightTestButtonCfgLen; /*试灯按钮数量*/
|
||||
|
||||
} dquCIConfigDataStr;
|
||||
|
||||
|
||||
@@ -426,19 +431,17 @@ UINT8 RouteConfigDataStructInit(CHAR * FSName);
|
||||
|
||||
|
||||
/*********************************************
|
||||
*函数功能:按行解析通信关系(从设备IP表里去到的数据,每行17个数据)
|
||||
*参数说明:Data通信数组
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 TransmitRelationDataStruFrmSZ(UINT16 Data[]);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化通信关系数据结构体
|
||||
*函数功能:初始化通信关系数据结构体(NEW)
|
||||
*参数说明:FSName文件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 TransmitRelationDataStructInit(CHAR* FSName);
|
||||
|
||||
UINT8 TransmitDataStructInitNew(CHAR* FSName);
|
||||
/*********************************************
|
||||
*函数功能:解析通信关系 数据结构体
|
||||
*参数说明:Data通信数组
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 TransmitRelationDataStruNew(UINT8 Data[]);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化屏蔽门配置数据接口配置数据结构体----对外结构体
|
||||
@@ -591,13 +594,14 @@ UINT8 OCSwitchConfigDataStructInit(CHAR *FSName);
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 OCSwitchCfgZzjDataStuInit(CHAR* FSName);
|
||||
|
||||
#if 0
|
||||
/*********************************************
|
||||
*函数功能:初始化OC 道岔配置表数据——OC2.1.6
|
||||
*参数说明:FSName文件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 OCSwitchConfigDataStructInit_OLD(CHAR *FSName);
|
||||
#endif
|
||||
|
||||
/*********************************************
|
||||
*函数功能:解析OC 信号机表数据
|
||||
@@ -821,14 +825,6 @@ UINT8 EaConfigDataStruFromDquEaStr(DSU_EMAP_EA_STRU* pEa, EaConfigStru* pEaCfgDt
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 EaConfigDataStructInit(CHAR * FSName);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:解析OC 道岔配置表数据
|
||||
*参数说明:pDataAddr 数据地址;
|
||||
*返回值:0,失败;1,成功
|
||||
*备注:cgh-合并CID-2539-5::修改初始化《OC_配置数据表》中“物理区段模块配置表”、“信号机模块配置表”、“道岔模块配置表”的初始化方式,和其他表格的初始化方式一致
|
||||
*********************************************/
|
||||
void R_OCSwitchConfigDataFromChar(UINT8* pDataAddr);
|
||||
/*********************************************
|
||||
*函数功能:解析OC 道岔转辙机状态指示灯表
|
||||
*参数说明:pDataAddr 数据地址;
|
||||
@@ -966,5 +962,149 @@ CI_ERROR 0 ʧ
|
||||
*/
|
||||
UINT8 GetdsuStaticDataCiType(UINT8 chCiID);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化OC 试灯继电器表
|
||||
*参数说明:FSName文件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 OCLightTestButtonCfgDataStuInit(CHAR* FSName);
|
||||
/*********************************************
|
||||
*函数功能:解析OC 试灯继电器表配置表
|
||||
*参数说明:pDataAddr 数据地址;
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_OCLightTestCfgDataFromChar(LightTestButtonConfigDataStruct* pOCLightTestButtonCfgDtStr, UINT8* pDataAddr);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:填充不重复的数据进入数组
|
||||
*参数说明:目标数组的指针
|
||||
* 待填入的数据
|
||||
*返回值:非-1为已填入的长度,-1为空间已满
|
||||
*********************************************/
|
||||
INT16 SetNoRepeatDataToBuf(UINT16* pBuf, UINT16 maxlen, UINT16 dwData, UINT16 currentLen);
|
||||
/*********************************************
|
||||
*函数功能:试车线与车辆段合设配置设置
|
||||
*参数说明:void
|
||||
*返回值:CI_ERROR 检查失败 CI_SUCCESS 检查通过
|
||||
* add by mpt 20260104
|
||||
*********************************************/
|
||||
UINT8 SetCldAndScxMergeConfig(void);
|
||||
/*********************************************
|
||||
*函数功能:解析道岔模块配置表
|
||||
*参数说明:pDataAddr 数据地址;
|
||||
*返回值:0,失败;1,成功
|
||||
* add by mpt 20260325
|
||||
*********************************************/
|
||||
void R_OCSwitchModeCfgDataFromChar(UINT8* pDataAddr);
|
||||
/*********************************************
|
||||
*函数功能:存储单个OC的板卡配置情况到道岔配置数据结构体
|
||||
*参数说明:SwitchBelongOCConfigDataStr* pSwitchOCcfgDtStr 道岔配置结构体
|
||||
* OCSwitchConfigDataStruct* pOcCfgDtStr OC配置表结构体
|
||||
*返回值:0,失败;1,成功
|
||||
* add by mpt 20260325
|
||||
*********************************************/
|
||||
UINT8 SwitchOcCfgStrFromOCconfigStr(SwitchBelongOCConfigDataStr* pSwitchOCcfgDtStr, OCSwitchConfigDataStruct* pOcCfgDtStr);
|
||||
/*********************************************
|
||||
*函数功能:从道岔结构体计算道岔继电器结构体
|
||||
*参数说明:SwitchConfigDataStruct* pSwitchCfgDtStr 道岔配置数据结构体
|
||||
*返回值:0,失败;1,成功
|
||||
* add by mpt 20260325
|
||||
*********************************************/
|
||||
UINT8 SwitchCfgDtStruFromOCconfigStr(SwitchConfigDataStruct* pSwitchCfgDtStr);
|
||||
/*********************************************
|
||||
*函数功能:计算道岔关联每一个OC的插箱数
|
||||
*参数说明:SwitchConfigDataStruct* pSwitchCfgDtStr 道岔配置数据结构体
|
||||
*返回值:0,失败;1,成功
|
||||
* add by mpt 20260325
|
||||
*********************************************/
|
||||
UINT8 CalcuSwitchInsertionBoxData(SwitchConfigDataStruct* pSwitchCfgDtStr);
|
||||
/*********************************************
|
||||
*函数功能:填充不重复的数据进入数组
|
||||
*参数说明:目标数组的指针
|
||||
* 待填入的数据
|
||||
*返回值:非-1为已填入的长度,-1为空间已满
|
||||
* add by mpt 20260330
|
||||
*********************************************/
|
||||
INT16 SetNoUINT8RepeatDataToBuf(UINT8* pBuf, UINT16 maxlen, UINT8 dwData, UINT16 currentLen);
|
||||
/*********************************************
|
||||
*函数功能:逻辑区段关联保护区段相关数据初始化
|
||||
*参数说明:pOverlapCfgDtStr保护区段配置数据结构体指针 pLogCfgDtStr配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
* add by mpt 20260331
|
||||
*********************************************/
|
||||
UINT8 LogRelateOverlapDataInit(OverlapConfigDataStruct* pOverlapCfgDtStr, LogicSectionConfigDataStruct* pLogCfgDtStr);
|
||||
/*********************************************
|
||||
*函数功能:逻辑区段关联防护道岔(遍历保护区段)
|
||||
*参数说明:pLogCfgDtStr配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
* add mpt 20260331
|
||||
*********************************************/
|
||||
UINT8 LogRelateProSwDataByOverlapInit(LogicSectionConfigDataStruct* pLgScCfgDtStr);
|
||||
/*********************************************
|
||||
*函数功能:逻辑区段配置数据结构体计算
|
||||
*参数说明:LogsecSwitchStruct* pSrcSwitchStructBuf 源数据
|
||||
UINT8 chSrclen 源数据长度
|
||||
AxisSwitchStruct* pDstSwitchStructBuf 目标数据
|
||||
UINT8 dstLen 目标数据长度
|
||||
*返回值:-1,失败;其他为长度
|
||||
*add by mpt 20260331
|
||||
*********************************************/
|
||||
INT16 AxisSecCfgDtStruFromLogicSecStr(LogsecSwitchStruct* pSrcSwitchStructBuf, UINT8 chSrclen, AxisSwitchStruct* pDstSwitchStructBuf, UINT8 dstLen);
|
||||
/*********************************************
|
||||
*函数功能:计轴区段防护道岔初始化
|
||||
*参数说明:void
|
||||
*返回值:0,失败;1,成功
|
||||
* add mpt 20260331
|
||||
*********************************************/
|
||||
UINT8 AxisSecProtectSwitchInit(void);
|
||||
/*********************************************
|
||||
*函数功能:为某道岔计算属于同板卡的另一道岔ID
|
||||
*参数说明:OCSwitchConfigDataStruct * pOCSwitchCfgStr 道岔配置数据结构体
|
||||
* add by mpt 20260404
|
||||
*返回值:0 失败,1成功
|
||||
*********************************************/
|
||||
UINT8 SwitchOtherSwitchFromOCconfig(OCSwitchConfigDataStruct* pOCSwitchCfgStr);
|
||||
/*********************************************
|
||||
*函数功能:为所有道岔计算属于同板卡的另一道岔ID
|
||||
*参数说明:void
|
||||
*返回值:0 失败,1成功
|
||||
* add by mpt 20260404
|
||||
*********************************************/
|
||||
UINT8 AllSwitchOtherSwitchByOCconfig(void);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化屏蔽门关联ESB数据----降低复杂度使用
|
||||
*参数说明:FSName文件指针
|
||||
*输入参数 wPsdIndex屏蔽门索引
|
||||
*返回值:0,失败;1,成功
|
||||
* fan 20260421
|
||||
*********************************************/
|
||||
UINT8 PsdRelateEsbConfigDataInit(UINT16 wPsdIndex);
|
||||
|
||||
/*
|
||||
*功能描述: RCI功能配置数据初始化
|
||||
*输入参数: CHAR * FSName 数据文件名指针
|
||||
*输出参数: 无
|
||||
*返回值: 0 失败
|
||||
* 1 成功
|
||||
* by cgh 20260516
|
||||
*/
|
||||
UINT8 RciCommonConfigDataInit(CHAR* FSName);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:初始化倒切开关配置数据结构体----对外结构体
|
||||
*参数说明:FSName文件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 ReverseSwitchConfigDataStructInit(CHAR * FSName);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:倒切开关配置数据结构体计算
|
||||
*参数说明:pReverseSwitchRelay继电器初始化数据指针
|
||||
pReverseSwitchCfgDtStr配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 ReverseSiwtchCfgDtStruFromDquStr(Relay_ReverseSwitchStruct* pReverseSwitchRelay, ReverseSwitchCfgDataStru* pReverseSwitchCfgDtStr);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ UINT8 InitAll(CHAR* FSName)
|
||||
{
|
||||
CIInitEmap(dsuEmapStru);/*为CI使用的公共数据赋值*/
|
||||
|
||||
RtnVal = CiPatternInit(FSName); /*初始化当前联锁类型配置数据*/
|
||||
RtnVal = RciCommonConfigDataInit(FSName); /*初始化当前联锁类型配置数据*/
|
||||
if (0u != RtnVal) /*初始化当前联锁类型配置数据*/
|
||||
{
|
||||
/*初始化系统配置数据结构体*/
|
||||
@@ -171,8 +171,8 @@ UINT8 InitAll(CHAR* FSName)
|
||||
else
|
||||
{
|
||||
#ifdef PLATFORM_2OO2
|
||||
(void)printf("CiPattern Init Error\n");
|
||||
debug_infor_printf((const)"CiPattern Init Error\n");
|
||||
(void)printf("RciCommonConfigDataInit Error\n");
|
||||
debug_infor_printf((const)"RciCommonConfigDataInit Error\n");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1763,7 +1763,6 @@ INT16 ReadEsbConfigData(const UINT8 ciId,EsbConfigDataStruct* pEsbConfigDataStru
|
||||
INT16 DataNum = -1;
|
||||
UINT16 repEsbRelayId = 0u;/*复视esb继电器ID*/
|
||||
UINT8 belongCi = 0u;
|
||||
|
||||
if ((0u == ciId) || (NULL == pEsbConfigDataStru))
|
||||
{
|
||||
DataNum = -1;
|
||||
@@ -2370,60 +2369,22 @@ UINT8 ReadSystemParamConfDataNew(const UINT8 ciId,SystemParameterStructNew* Syst
|
||||
}
|
||||
if (1u == rtnVal)
|
||||
{ /*给从公共查询函数中*/
|
||||
/*紧急制动最高触发速度(单位已在dfsInitSubSystemCommonConfigData_CC函数中转换)*/
|
||||
SystemParameterStru->MaxLineLimitSpeed = dquCICfgDtStr.SystemParaStrNew.MaxLineLimitSpeed;
|
||||
|
||||
/*临时限速最高限速(km/h)(未进行单位转换)*/
|
||||
SystemParameterStru->MaxTsrSpeed = dquCICfgDtStr.SystemParaStrNew.MaxTsrSpeed;
|
||||
|
||||
/*NTP校时时区差(小时)*/
|
||||
SystemParameterStru->TimeZoneDifference = dquCICfgDtStr.SystemParaStrNew.TimeZoneDifference;
|
||||
|
||||
/*区间同向行驶双车间隔最小安全距离(cm))*/
|
||||
SystemParameterStru->MABackDistance = dquCICfgDtStr.SystemParaStrNew.MABackDistance;
|
||||
|
||||
/*一次设置的临时限速最大个数*/
|
||||
SystemParameterStru->MaxTsrNum = dquCICfgDtStr.SystemParaStrNew.MaxTsrNum;
|
||||
|
||||
/*一个临时限速报文中包含的最大限速区段数量*/
|
||||
SystemParameterStru->MaxSectionOfTsr = dquCICfgDtStr.SystemParaStrNew.MaxSectionOfTsr;
|
||||
|
||||
/*IVOC-IVOC信故障判断时间(ms)*/
|
||||
SystemParameterStru->IvocIvocCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.IvocIvocCommunicationErrorTime;
|
||||
|
||||
/*IVOC-OC通信故障判断时间(ms)*/
|
||||
SystemParameterStru->IvocOcCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.IvocOcCommunicationErrorTime;
|
||||
|
||||
/*VOBC-ITS通信故障判断时间(ms)*/
|
||||
SystemParameterStru->VobcAtsCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.VobcAtsCommunicationErrorTime;
|
||||
|
||||
/*TMC-ITS通信故障判断时间(ms)*/
|
||||
SystemParameterStru->TmcItsCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.TmcItsCommunicationErrorTime;
|
||||
|
||||
/*ITS-OC通信故障判断时间(ms)*/
|
||||
SystemParameterStru->ItsOcCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.ItsOcCommunicationErrorTime;
|
||||
|
||||
/*OC-PSD通信故障判断时间(ms)*/
|
||||
SystemParameterStru->OcPsdCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.OcPsdCommunicationErrorTime;
|
||||
|
||||
/*IVOC-TSL通信故障判断时间(ms)*/
|
||||
SystemParameterStru->IvocTslCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.IvocTslCommunicationErrorTime;
|
||||
|
||||
/*OC-TSL通信故障判断时间(ms)*/
|
||||
SystemParameterStru->OcTslCommunicationErrorTime = dquCICfgDtStr.SystemParaStrNew.OcTslCommunicationErrorTime;
|
||||
|
||||
/*满足精确停车条件的MA延伸长度(cm)*/
|
||||
SystemParameterStru->MALengthForATOParking = dquCICfgDtStr.SystemParaStrNew.MALengthForATOParking;
|
||||
|
||||
/*本线系统定义逻辑方向与上下行方向的关系*/
|
||||
SystemParameterStru->LinkLogicDirUpAndDown = dquCICfgDtStr.SystemParaStrNew.LinkLogicDirUpAndDown;
|
||||
|
||||
/*对向行驶双车间隔最小安全距离(cm)*/
|
||||
SystemParameterStru->OppositeTrackDistance = dquCICfgDtStr.SystemParaStrNew.OppositeTrackDistance;
|
||||
|
||||
/*站台追踪时,列车间隔距离(cm)*/
|
||||
SystemParameterStru->StationTrackDistance = dquCICfgDtStr.SystemParaStrNew.StationTrackDistance;
|
||||
|
||||
/*线路最差情况下紧急制动距离(单位m)*/
|
||||
SystemParameterStru->MaxMALength = dquCICfgDtStr.SystemParaStrNew.MaxMALength;
|
||||
|
||||
@@ -3459,14 +3420,17 @@ void ReadEmapCiConfig(EmapCiConfigStru emapVerArr[])
|
||||
UINT16 i;
|
||||
UINT8 ciId;
|
||||
UINT8 jj = 0U;
|
||||
|
||||
UINT8 chLocalCiId = 0U;
|
||||
UINT16 k = 0U;
|
||||
|
||||
chLocalCiId = GetSystemParaLocalCiId();
|
||||
if (NULL != emapVerArr)
|
||||
{
|
||||
wCIStruSum = dsuDataLenStru.wCILen;
|
||||
|
||||
for (i = 0u; i < wCIStruSum; i++)
|
||||
{
|
||||
ciId = (UINT8)(dsuStaticHeadStru.pCIStruStru[i].wID & 0x00FF);
|
||||
ciId = (UINT8)(dsuStaticHeadStru.pCIStruStru[i].wID & 0x00FFu);
|
||||
emapVerArr[ciId].devId = ciId;
|
||||
emapVerArr[ciId].ciType = (UINT8)(dsuStaticHeadStru.pCIStruStru[i].wType);
|
||||
if (CI_TYPE_TCC == dsuStaticHeadStru.pCIStruStru[i].wType)
|
||||
@@ -3512,12 +3476,35 @@ void ReadEmapCiConfig(EmapCiConfigStru emapVerArr[])
|
||||
emapVerArr[ciId].wAdjoinOcId[jj] = dsuStaticHeadStru.pCIStruStru[i].wAdjoinOcId[jj];
|
||||
emapVerArr[ciId].dwAdjoinOcShareCheckData[jj] = dsuStaticHeadStru.pCIStruStru[i].dwAdjoinOcShareCheckData[jj];
|
||||
}
|
||||
|
||||
if (ciId == chLocalCiId)
|
||||
{/*试车线与车辆段合设开关*/
|
||||
SystemParameterStruNew.chCldAndScxMergeFlag = dsuStaticHeadStru.pCIStruStru[i].chCldAndScxMergeFlag;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
; /*RC模式校验数据信息根据RC表初始化*/
|
||||
}
|
||||
}
|
||||
/*联锁厂商定义 ** CI类型配置*/
|
||||
for (k = 0U; k < wCIStruSum; k++)
|
||||
{
|
||||
ciId = (UINT8)(dsuStaticHeadStru.pCIStruStru[k].wID & 0x00FFU);
|
||||
if (CI_SUM_MAX > ciId)
|
||||
{
|
||||
SystemParameterStruNew.chCiFactoryType[ciId] = dsuStaticHeadStru.pCIStruStru[k].chCiFactoryType;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*不处理*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (RC_WORK_MODE_TIOC == CI_SYSTEM_TYPE_RCI)
|
||||
{
|
||||
@@ -3525,7 +3512,7 @@ void ReadEmapCiConfig(EmapCiConfigStru emapVerArr[])
|
||||
for (i = 0u; i < wRCStruSum; i++)
|
||||
{
|
||||
/*并非所有联锁均包含在RC表,因此未配置在RC表中时根据CI表初始化*/
|
||||
ciId = (UINT8)(dsuStaticHeadStru.pRCStruStru[i].wID & 0x00FF);
|
||||
ciId = (UINT8)(dsuStaticHeadStru.pRCStruStru[i].wID & 0x00FFu);
|
||||
emapVerArr[ciId].devId = ciId;
|
||||
emapVerArr[ciId].ciType = (UINT8)(dsuStaticHeadStru.pRCStruStru[i].wType);
|
||||
if (CI_TYPE_TCC == dsuStaticHeadStru.pRCStruStru[i].wType)
|
||||
@@ -3571,6 +3558,7 @@ void ReadEmapCiConfig(EmapCiConfigStru emapVerArr[])
|
||||
emapVerArr[ciId].dwAdjoinOcShareCheckData[jj] = dsuStaticHeadStru.pRCStruStru[i].dwAdjoinOcShareCheckData[jj];
|
||||
}
|
||||
}
|
||||
SystemParameterStruNew.chCldAndScxMergeFlag = CLD_SCX_MERGE_OFF;/*RC系统中,默认不合设*/
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4149,6 +4137,70 @@ INT16 ReadReverseCutConfigData(const UINT8 ciId, ReverseCutCfgDataStru* pstRever
|
||||
return DataNum;
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:本联锁倒切设备关联对应板卡配置数据
|
||||
*参数说明:ciId联锁ID, pLocalReverseData 本联锁倒切设备配置数据结构体指针
|
||||
*返回值:-1 失败 其他 成功
|
||||
*********************************************/
|
||||
INT16 ReadReverseSwitchConfigData(const UINT8 ciId, ReverseSwitchCfgDataStru* pLocalReverseData)
|
||||
{
|
||||
UINT16 i = 0u;
|
||||
INT16 DataNum = -1;
|
||||
UINT16 jj = 0U;
|
||||
if ((0u == ciId) || (NULL == pLocalReverseData))
|
||||
{
|
||||
DataNum = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
DataNum = 0;
|
||||
}
|
||||
|
||||
if (0 == DataNum)
|
||||
{
|
||||
for (i = 0u; i<dquCICfgDtStr.wRelayReverseSwitchStrLen; i++)
|
||||
{
|
||||
if (ciId == dquCICfgDtStr.stReverseSwitchCfgDtStr[i].chBelongCiId)
|
||||
{
|
||||
pLocalReverseData->wColCloseRelayId = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].wColCloseRelayId;
|
||||
pLocalReverseData->wColOpenRelayId = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].wColOpenRelayId;
|
||||
if ((0U == pLocalReverseData->wColCloseRelayId) || (UINT16_MAX == pLocalReverseData->wColCloseRelayId)
|
||||
|| (0U == pLocalReverseData->wColOpenRelayId) || (UINT16_MAX == pLocalReverseData->wColOpenRelayId))
|
||||
{
|
||||
DataNum = -1;/*本联锁配置有倒切开关但采集错误*/
|
||||
}
|
||||
else
|
||||
{
|
||||
pLocalReverseData->wRelateBoardNum = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].wRelateBoardNum;
|
||||
pLocalReverseData->wId = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].wId;
|
||||
pLocalReverseData->chBelongCiId = ciId;
|
||||
for (jj = 0u; jj < dquCICfgDtStr.stReverseSwitchCfgDtStr[i].wRelateBoardNum; jj++)
|
||||
{
|
||||
pLocalReverseData->strRelateBoardBuf[jj].wReversBoardId = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].strRelateBoardBuf[jj].wReversBoardId;
|
||||
pLocalReverseData->strRelateBoardBuf[jj].chDevType = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].strRelateBoardBuf[jj].chDevType;
|
||||
pLocalReverseData->strRelateBoardBuf[jj].wBoardColCloseRelayId = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].strRelateBoardBuf[jj].wBoardColCloseRelayId;
|
||||
pLocalReverseData->strRelateBoardBuf[jj].wBoardColOpenRelayId = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].strRelateBoardBuf[jj].wBoardColOpenRelayId;
|
||||
if ((0U == pLocalReverseData->strRelateBoardBuf[jj].wBoardColCloseRelayId) || (UINT16_MAX == pLocalReverseData->strRelateBoardBuf[jj].wBoardColCloseRelayId)
|
||||
|| (0U == pLocalReverseData->strRelateBoardBuf[jj].wBoardColOpenRelayId) || (UINT16_MAX == pLocalReverseData->strRelateBoardBuf[jj].wBoardColOpenRelayId))
|
||||
{
|
||||
DataNum = -1;/*配置有倒切板卡但采集错误*/
|
||||
break;
|
||||
}
|
||||
pLocalReverseData->strRelateBoardBuf[jj].wDevId = dquCICfgDtStr.stReverseSwitchCfgDtStr[i].strRelateBoardBuf[jj].wDevId;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
return DataNum;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************
|
||||
*函数功能:取VOBC设备编号相应位数,查询vobc索引
|
||||
@@ -4857,3 +4909,135 @@ UINT16 QueryTrackBelongLink(void)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************
|
||||
*函数功能:读OC试灯按钮配置数据
|
||||
*参数说明:ciId联锁ID, pLightTestConfigDataStru OC试灯按钮配置数据结构体指针
|
||||
*返回值:道岔数
|
||||
*********************************************/
|
||||
INT16 ReadLightTestConfigData(const UINT8 ciId, LightTestButtonConfigDataStruct* pLightTestConfigDataStru)
|
||||
{
|
||||
UINT16 i = 0u;
|
||||
UINT16 j = 0u;
|
||||
UINT16 jj = 0u;
|
||||
INT16 DataNum = -1; /*按钮数量*/
|
||||
UINT16 lightTestButtonid = 0u;
|
||||
UINT16 lightCount = 0u; /*按钮ID对应的继电器数量*/
|
||||
UINT8 findFlag = 0u;
|
||||
|
||||
UINT16 ocDeviceSum = 0u; /*OC设备总数*/
|
||||
UINT8* pOcDeviceIdBuf = NULL; /*OC设备ID数组*/
|
||||
UINT16 ocID = 0u; /*OC设备ID*/
|
||||
ocDeviceSum = (UINT16)GetCiTransmitSpecifySysDevSum(CI_SYSTEM_TYPE_OC); /*获取通信OC设备总数*/
|
||||
pOcDeviceIdBuf = GetCiTransmitSpecifySysDevBuf(CI_SYSTEM_TYPE_OC); /*获取通信OC设备ID数组*/
|
||||
if ((0u == ciId) || (NULL == pLightTestConfigDataStru))
|
||||
{
|
||||
DataNum = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
DataNum = 0;
|
||||
}
|
||||
|
||||
/* 配置检查*/
|
||||
if (0 == DataNum)
|
||||
{
|
||||
for (i = 0u; i < dquCICfgDtStr.wLightTestButtonCfgLen; i++)
|
||||
{
|
||||
findFlag = 0u;
|
||||
lightTestButtonid = dquCICfgDtStr.LightTestButtonCfgDataStru[i].LightTestButtonId;
|
||||
for (j = 0u; j < ocDeviceSum; j++)
|
||||
{
|
||||
/* 找到对应的OC设备 */
|
||||
if (pOcDeviceIdBuf[j] == dquCICfgDtStr.LightTestButtonCfgDataStru[i].BelongOcId)
|
||||
{
|
||||
findFlag = 1u;
|
||||
ocID = pOcDeviceIdBuf[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (1u == findFlag)
|
||||
{
|
||||
findFlag = 0u;
|
||||
/* 开始查找该ID的按钮是否已经存在*/
|
||||
for(j = 0u; j < DataNum; j++)
|
||||
{
|
||||
/* 按钮ID已存在,*/
|
||||
if (lightTestButtonid == pLightTestConfigDataStru[j].LightTestButtonId)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 按钮ID不存在,添加按钮数据*/
|
||||
}
|
||||
}
|
||||
/*
|
||||
按钮找到,则下标j为该按钮数据存储位置
|
||||
按钮未找到,则下j = DataNum 为当前按钮数据新存储位置
|
||||
*/
|
||||
/* 按钮ID是否满足条件,添加按钮数据*/
|
||||
if(LIGHTTESTBUTTON_TYPE_XINGANG == dquCICfgDtStr.LightTestButtonCfgDataStru[i].LightTestButtonType)
|
||||
{
|
||||
pLightTestConfigDataStru[j].LightTestButtonId = lightTestButtonid;
|
||||
pLightTestConfigDataStru[j].BelongOcId = ocID;
|
||||
pLightTestConfigDataStru[j].LightTestButtonType = LIGHTTESTBUTTON_TYPE_XINGANG;
|
||||
|
||||
lightCount = pLightTestConfigDataStru[j].LightTestButtonRelayNum;
|
||||
/* 添加继电器数据 */
|
||||
for(jj = 0u; jj < LIGHTTESTBUTTON_LIGHT_MAX_NUM; jj++)
|
||||
{
|
||||
if((UINT16_MAX == dquCICfgDtStr.LightTestButtonCfgDataStru[i].LightRelayId[jj])
|
||||
||(LIGHTTESTBUTTON_LIGHT_SUPPORT_MAX_NUM <= pLightTestConfigDataStru[j].LightTestButtonRelayNum))
|
||||
{
|
||||
if(UINT16_MAX == dquCICfgDtStr.LightTestButtonCfgDataStru[i].LightRelayId[jj])
|
||||
{
|
||||
;/*继电器数据添加完毕,退出循环*/
|
||||
}
|
||||
else
|
||||
{
|
||||
DataNum = -1; /* 配置错误,返回-1 */
|
||||
}
|
||||
break;
|
||||
}
|
||||
else /* 有效数据 */
|
||||
{
|
||||
if (0u == pLightTestConfigDataStru[j].LightTestButtonRelayNum)
|
||||
{
|
||||
DataNum++; /*首次添加,需要将DataNUm++*/
|
||||
}
|
||||
else
|
||||
{
|
||||
;
|
||||
}
|
||||
pLightTestConfigDataStru[j].LightRelayId[lightCount + jj] = dquCICfgDtStr.LightTestButtonCfgDataStru[i].LightRelayId[jj];
|
||||
pLightTestConfigDataStru[j].LightTestButtonRelayNum++; /* 继电器数量加1 */
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*不处理*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;/* 该行数据,未找到对应的OC设备,继续处理 */
|
||||
}
|
||||
if (-1 == DataNum)
|
||||
{
|
||||
break; /* 数据异常,退出*/
|
||||
}
|
||||
else
|
||||
{
|
||||
; /* 不处理 */
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
;/*不处理*/
|
||||
}
|
||||
|
||||
return DataNum;
|
||||
}
|
||||
@@ -418,6 +418,13 @@ INT16 ReadCutoffPointConfigData(const UINT8 ciId, CfpConfigStru* pstCutoffConfig
|
||||
*返回值:本地关联分界点ID
|
||||
*********************************************/
|
||||
INT16 ReadReverseCutConfigData(const UINT8 ciId, ReverseCutCfgDataStru* pstReverseConfigData);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:本联锁倒切设备关联对应板卡配置数据
|
||||
*参数说明:ciId联锁ID, pLocalReverseData 本联锁到期配置数据结构体指针
|
||||
*返回值:-1 失败 其他 成功
|
||||
*********************************************/
|
||||
INT16 ReadReverseSwitchConfigData(const UINT8 ciId, ReverseSwitchCfgDataStru* pLocalReverseData);
|
||||
/************************************************************************
|
||||
功能:HlhtID转vobc内部编号
|
||||
输入:
|
||||
@@ -525,6 +532,14 @@ UINT8 ReadPhySecIndexInAxle(const UINT8 chLocalCiId, PhysicalSectionConfigDataSt
|
||||
* CI_ERROR,失败
|
||||
*/
|
||||
UINT16 QueryTrackBelongLink(void);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:读OC试灯按钮配置数据
|
||||
*参数说明:ciId联锁ID, pLightTestConfigDataStru OC试灯按钮配置数据结构体指针
|
||||
*返回值:道岔数
|
||||
*********************************************/
|
||||
INT16 ReadLightTestConfigData(const UINT8 ciId, LightTestButtonConfigDataStruct* pLightTestConfigDataStru);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -25,6 +25,7 @@ UINT8 RelayConfigDataStruFromChar(UINT8 * pDataAddr,RelayConfigDataStruct* pRela
|
||||
UINT16 i=0u;
|
||||
UINT16 OcIdBuff = 0u;
|
||||
UINT8 localCiPattern = 0u; /*本CI模式*/
|
||||
UINT8 chOCBelongVirCIid = 0U;
|
||||
|
||||
if ((NULL == pDataAddr) || (NULL == pRelayCfgDtStr) || (NULL == Name))
|
||||
{
|
||||
@@ -55,7 +56,16 @@ UINT8 RelayConfigDataStruFromChar(UINT8 * pDataAddr,RelayConfigDataStruct* pRela
|
||||
pRelayCfgDtStr->BelongCiId = GetCiIdByOcId(OcIdBuff);
|
||||
pRelayCfgDtStr->BelongOcId = OcIdBuff;
|
||||
pRelayCfgDtStr->BelongDrvOcId = pRelayCfgDtStr->BelongOcId;
|
||||
pRelayCfgDtStr->BelongVirCIid = GetOCBelongVirCIid((UINT8)OcIdBuff);
|
||||
chOCBelongVirCIid = GetOCBelongVirCIid((UINT8)OcIdBuff);
|
||||
if (0U != chOCBelongVirCIid)
|
||||
{
|
||||
pRelayCfgDtStr->BelongVirCIid = chOCBelongVirCIid;
|
||||
}
|
||||
else
|
||||
{
|
||||
pRelayCfgDtStr->BelongVirCIid = GetCiIdByOcId(OcIdBuff);
|
||||
}
|
||||
|
||||
}
|
||||
pData += 2u;
|
||||
|
||||
@@ -294,129 +304,21 @@ UINT8 R_ScreenStructFromChar(UINT8 * pDataAddr,Relay_ScreenStruct* pScrnStr, UIN
|
||||
{/*若没有这一列配置*/
|
||||
pScrnStr->chControlType = PSD_CONTROL_TYPE_RCI; /*由RCI控制*/
|
||||
}
|
||||
|
||||
rtnvalue = 1u;
|
||||
}
|
||||
|
||||
return rtnvalue;
|
||||
}
|
||||
/*********************************************
|
||||
*函数功能:从数据到屏蔽门继电器结构体
|
||||
*参数说明:pDataAddr数据地址, pScrnStr屏蔽门继电器配置数据结构体指针,UINT16 rowLen 一行数据的长度
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_ScreenStructFromCharT(UINT8* pDataAddr, Relay_ScreenStruct* pScrnStr, UINT16 rowLen)
|
||||
{
|
||||
UINT8* pData = pDataAddr;
|
||||
UINT8 rtnvalue = 0u;
|
||||
UINT8 localCiPattern = 0u; /*本CI模式*/
|
||||
|
||||
if ((NULL == pDataAddr) || (NULL == pScrnStr))
|
||||
{
|
||||
rtnvalue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
localCiPattern = GetLocalCiPattern();
|
||||
pScrnStr->wScreenId = dquCiShortFromChar(pData); /*屏蔽门ID (配置字段)*/
|
||||
pData += 2u;
|
||||
if (CI_PATTERN_FULL_ELECTRONIC == localCiPattern)
|
||||
if (59U < rowLen)
|
||||
{
|
||||
pScrnStr->wOcId = dquCiShortFromChar(pData); /*OC ID*/
|
||||
pScrnStr->wIbpRelayId = dquCiShortFromChar(pData); /*IBP盘发车按钮继电器ID*/
|
||||
pData += 2u;
|
||||
}
|
||||
pScrnStr->wRelayRelatedId = dquCiShortFromChar(pData); /*互锁解除继电器ID */
|
||||
pData += 2u;
|
||||
|
||||
if (CI_PATTERN_FULL_ELECTRONIC == localCiPattern)
|
||||
{
|
||||
pScrnStr->wRelayRelatedId2 = dquCiShortFromChar(pData); /*互锁解除继电器ID2 */
|
||||
pData += 2;
|
||||
}
|
||||
pScrnStr->wRelayDoorClosedId = dquCiShortFromChar(pData); /*门关继电器ID */
|
||||
pData += 2u;
|
||||
|
||||
if (CI_PATTERN_FULL_ELECTRONIC == localCiPattern)
|
||||
{
|
||||
pScrnStr->wRelayDoorClosedId2 = dquCiShortFromChar(pData); /*门关继电器ID2 */
|
||||
pData += 2;
|
||||
}
|
||||
pScrnStr->wRelayCloseDoorId = dquCiShortFromChar(pData); /*关门继电器ID */
|
||||
pData += 2u;
|
||||
|
||||
pScrnStr->wRelayFourEditGroupOpenDoorId = dquCiShortFromChar(pData); /*4编组开门继电器ID */
|
||||
pData += 2u;
|
||||
pScrnStr->wRelaySixEditGroupOpenDoorId = dquCiShortFromChar(pData); /*6编组开门继电器ID */
|
||||
pData += 2u;
|
||||
pScrnStr->wRelayEightEditGroupOpenDoorId = dquCiShortFromChar(pData); /*8编组开门继电器ID */
|
||||
pData += 2u;
|
||||
pScrnStr->wRelayDoorButtonId = dquCiShortFromChar(pData); /*PSD按钮继电器*/
|
||||
pData += 2u;
|
||||
pScrnStr->doorReopenRelayId = dquCiShortFromChar(pData); /*站台门再次开门继电器ID*/
|
||||
pData += 2u;
|
||||
|
||||
pScrnStr->departureConfirmRelayId = dquCiShortFromChar(pData); /*发车确认继电器ID*/
|
||||
pData += 2u;
|
||||
pScrnStr->detectStartRelayId = dquCiShortFromChar(pData); /*启动探测继电器ID*/
|
||||
pData += 2u;
|
||||
pScrnStr->detectStopRelayId = dquCiShortFromChar(pData); /*停止探测继电器ID*/
|
||||
pData += 2u;
|
||||
pScrnStr->obstacleRelayId = dquCiShortFromChar(pData); /*障碍物继电器ID*/
|
||||
pData += 2u;
|
||||
pScrnStr->gapDetMuLockRelayId = dquCiShortFromChar(pData); /*间隙探测互锁解除继电器ID*/
|
||||
pData += 2u;
|
||||
pScrnStr->closeStateRelayId = dquCiShortFromChar(pData); /*关门状态继电器ID*/
|
||||
pData += 2u;
|
||||
|
||||
if (36U < rowLen)
|
||||
{
|
||||
pScrnStr->wClearPasseSteadyLightRelayId = dquCiShortFromChar(pData); /*清客确认按钮指示灯稳灯继电器ID*/
|
||||
pData += 2u;
|
||||
pScrnStr->wClearPasseFlashLightRelayId = dquCiShortFromChar(pData); /*清客确认按钮指示灯闪灯继电器ID*/
|
||||
pData += 2u;
|
||||
pScrnStr->wClearPassengerButtonRelayId = dquCiShortFromChar(pData); /*清客确认按钮继电器ID*/
|
||||
pData += 2u;
|
||||
}
|
||||
|
||||
if (42U < rowLen)
|
||||
{
|
||||
pScrnStr->wCleFarePCBButtonRelayId = dquCiShortFromChar(pData); /*清客确认箱PCB按钮继电器*/
|
||||
pData += 2u;
|
||||
pScrnStr->wCleFarePDBFlaLigRelayId = dquCiShortFromChar(pData); /*清客确认箱PDB按钮指示灯闪灯继电器*/
|
||||
pData += 2u;
|
||||
}
|
||||
|
||||
if (46U < rowLen)
|
||||
{
|
||||
pScrnStr->wPobBsdRelayId = dquCiShortFromChar(pData); /*站台再开门按钮指示灯继电器*/
|
||||
pData += 2u;
|
||||
pScrnStr->wPcbBsdRelayId = dquCiShortFromChar(pData); /*站台再关门按钮指示灯继电器*/
|
||||
pData += 2u;
|
||||
}
|
||||
|
||||
if (50U < rowLen)
|
||||
{
|
||||
pScrnStr->wVideoQkLight1RelayId = dquCiShortFromChar(pData); /*清客按钮箱视频清客指示灯1(绿)继电器*/
|
||||
pData += 2U;
|
||||
pScrnStr->wVideoQkLight2RelayId = dquCiShortFromChar(pData); /*清客按钮箱视频清客指示灯2(红)继电器*/
|
||||
pData += 2U;
|
||||
}
|
||||
|
||||
if (54U < rowLen)
|
||||
{
|
||||
pScrnStr->chControlType = *pData; /*屏蔽门控制类型*/
|
||||
pData += 1U;
|
||||
}
|
||||
else
|
||||
{/*若没有这一列配置*/
|
||||
pScrnStr->chControlType = PSD_CONTROL_TYPE_RCI; /*由RCI控制*/
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
rtnvalue = 1u;
|
||||
}
|
||||
|
||||
return rtnvalue;
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到物理区段继电器结构体
|
||||
*参数说明:pDataAddr数据地址,pPhysclSgmtStr 物理区段继电器配置数据结构体指针
|
||||
@@ -502,32 +404,34 @@ UINT8 R_PointStructFromChar(UINT8 * pDataAddr,Relay_PointStruct* pSwitchStr)
|
||||
}
|
||||
if (CI_TRADITION_RAILWAY == lineIdentity)
|
||||
{/*城轨线路*/
|
||||
pSwitchStr->wPointId = dquCiShortFromChar(pData); /*道岔ID*/
|
||||
pSwitchStr->wPointId = dquCiShortFromChar(pData); /*道岔ID*/
|
||||
pData += 2u;
|
||||
pSwitchStr->wOcId = dquCiShortFromChar(pData); /*OC ID*/
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayDingBiaoId = dquCiShortFromChar(pData); /*定表继电器ID */
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayFanBiaoId = dquCiShortFromChar(pData); /*反表继电器ID */
|
||||
pData += 2u;
|
||||
|
||||
/*跳过OCID*/
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayDingBiaoId = dquCiShortFromChar(pData); /*定表继电器ID */
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayFanBiaoId = dquCiShortFromChar(pData); /*反表继电器ID */
|
||||
pSwitchStr->wRelayYunCaoId = dquCiShortFromChar(pData); /*允操继电器ID*/
|
||||
pData += 2u;
|
||||
|
||||
pSwitchStr->wRelayYunCaoId = dquCiShortFromChar(pData); /*允操继电器ID*/
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayDingCaoId = dquCiShortFromChar(pData); /*定操继电器ID */
|
||||
pSwitchStr->wRelayDingCaoId = dquCiShortFromChar(pData); /*定操继电器ID */
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayFanCaoId = dquCiShortFromChar(pData); /*反操继电器ID */
|
||||
pSwitchStr->wRelayFanCaoId = dquCiShortFromChar(pData); /*反操继电器ID */
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayZongDingBiaoId = dquCiShortFromChar(pData); /*总定表继电器ID */
|
||||
pSwitchStr->wRelayZongDingBiaoId = dquCiShortFromChar(pData); /*总定表继电器ID */
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayZongFanBiaoId = dquCiShortFromChar(pData); /*总反表继电器ID */
|
||||
pSwitchStr->wRelayZongFanBiaoId = dquCiShortFromChar(pData); /*总反表继电器ID */
|
||||
pData += 2u;
|
||||
pSwitchStr->wDFHId = dquCiShortFromChar(pData); /*DFH继电器ID*/
|
||||
pSwitchStr->wDFHId = dquCiShortFromChar(pData); /*DFH继电器ID*/
|
||||
pData += 2u;
|
||||
|
||||
pSwitchStr->wRelayShadowDingBiaoId = dquCiShortFromChar(pData); /*定表继电器ID */
|
||||
pSwitchStr->wRelayRedunDB1Id = dquCiShortFromChar(pData); /*(北京10冗余采集)DBJ1继电器ID*/
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayShadowFanBiaoId = dquCiShortFromChar(pData); /*反表继电器ID */
|
||||
pSwitchStr->wRelayRedunDB2Id = dquCiShortFromChar(pData); /*(北京10冗余采集)DBJ2继电器ID*/
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayRedunFB1Id = dquCiShortFromChar(pData); /*(北京10冗余采集)FBJ1继电器ID*/
|
||||
pData += 2u;
|
||||
pSwitchStr->wRelayRedunFB2Id = dquCiShortFromChar(pData); /*(北京10冗余采集)FBJ2继电器ID*/
|
||||
pData += 2u;
|
||||
}/* zt 删除单轨相关代码 2022-02-15 */
|
||||
else
|
||||
@@ -590,83 +494,96 @@ UINT8 R_SignalStructFromChar(UINT8 * pDataAddr,Relay_SignalStruct* pSgnlStr)
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到洗车机继电器结构体
|
||||
*参数说明:pDataAddr数据地址, pWashMachineStr 洗车机继电器配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_WashMachineStructFromChar(UINT8 * pDataAddr,Relay_WashMachineStruct * pWashMachineStr, UINT16 realRowLen)
|
||||
UINT8 R_WashMachineStructFromChar(UINT8* pDataAddr, Relay_WashMachineStruct* pWashMachineStr)
|
||||
{
|
||||
UINT8 * pData = pDataAddr;
|
||||
UINT8 rtnvalue = 1U;
|
||||
UINT16 index = 0U;
|
||||
UINT8* pData = pDataAddr;
|
||||
UINT8 rtnvalue = 0U;
|
||||
|
||||
if ((NULL == pDataAddr) || (NULL == pWashMachineStr))
|
||||
{
|
||||
rtnvalue = 0U;
|
||||
|
||||
}
|
||||
if(1U == rtnvalue)
|
||||
{
|
||||
pWashMachineStr->wId = dquCiShortFromChar(pData); /*洗车机ID*/
|
||||
if ((NULL == pDataAddr) || (NULL == pWashMachineStr))
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
pWashMachineStr->wId = dquCiShortFromChar(pData); /*洗车机ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->WashMachineReadyRelayId = dquCiShortFromChar(pData); /*洗车机就绪继电器ID*/
|
||||
pWashMachineStr->WashMachineReadyRelayId = dquCiShortFromChar(pData); /*洗车机就绪继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->WashMachineRequestVerifyRelayId = dquCiShortFromChar(pData); /*洗车请求恢复确认继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TrainEmergencyStopRelayId = dquCiShortFromChar(pData); /*列车急停继电器ID*/
|
||||
pWashMachineStr->TrainEmergencyStopRelayId = dquCiShortFromChar(pData); /*列车急停继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->HeadWashAllowRelayId = dquCiShortFromChar(pData); /*出发1继电器ID*/
|
||||
pWashMachineStr->HeadWashAllowRelayId = dquCiShortFromChar(pData); /*出发1继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TailWashAllowRelayId = dquCiShortFromChar(pData); /*出发2继电器ID*/
|
||||
pWashMachineStr->TailWashAllowRelayId = dquCiShortFromChar(pData); /*出发2继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->WashTrainRequestRelayId= dquCiShortFromChar(pData); /*洗车请求继电器ID*/
|
||||
pWashMachineStr->wCouplingWashAllowRelayId = dquCiShortFromChar(pData); /*联挂端出发继电器ID*/
|
||||
pData += 2U;
|
||||
|
||||
pWashMachineStr->TrainHeadStopSteadyRelayId = dquCiShortFromChar(pData); /*列车停稳1继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TrainTailStopSteadyRelayId = dquCiShortFromChar(pData); /*列车停稳2继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TrainOutWashPortAllowRelayId = dquCiShortFromChar(pData);/*允许出库继电器ID*/
|
||||
pWashMachineStr->WashTrainRequestRelayId = dquCiShortFromChar(pData); /*洗车请求继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TrainHeadStopSteadyRelayId = dquCiShortFromChar(pData); /*列车停稳1继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TrainTailStopSteadyRelayId = dquCiShortFromChar(pData); /*列车停稳2继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wCoupingStopSteadyRelayId = dquCiShortFromChar(pData); /*联挂端停稳继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TrainOutWashPortAllowRelayId = dquCiShortFromChar(pData);/*允许出库继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->PauseTrainWashRequestRelayId = dquCiShortFromChar(pData); /*暂停洗车继电器ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->TrainPassRequestRelayId = dquCiShortFromChar(pData); /*通过请求继电器ID*/
|
||||
pData += 2U;
|
||||
|
||||
index += 24U;
|
||||
if (index + 2U <= realRowLen)
|
||||
{
|
||||
pWashMachineStr->WashModeBackRelayId = dquCiShortFromChar(pData); /*全自动洗车模式反馈继电器(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
|
||||
pWashMachineStr->WashModeRelayId = dquCiShortFromChar(pData);/*全自动自动洗车模式继电器(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashAllowRelayId = dquCiShortFromChar(pData);/*降级模式洗车同意按钮继电器ID(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashAllowLightRelayId = dquCiShortFromChar(pData);/*降级模式洗车同意指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashAllowPassRelayId = dquCiShortFromChar(pData);/*降级模式洗车同意通过按钮继电器ID(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute1Id = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯1关联进路ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute1CheckType = *pData;/*降级模式洗车线控制台表示灯1关联进路状态检查类型*/
|
||||
pData += 1U;
|
||||
pWashMachineStr->wDownWashRelRoute1LightRelayId = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯1继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute2Id = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯2关联进路ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute2CheckType = *pData;/*降级模式洗车线控制台表示灯2关联进路状态检查类型*/
|
||||
pData += 1U;
|
||||
pWashMachineStr->wDownWashRelRoute2LightRelayId = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯2继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
|
||||
index += 20U;
|
||||
}
|
||||
pWashMachineStr->WashModeBackRelayId = dquCiShortFromChar(pData); /*全自动洗车模式反馈继电器(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
|
||||
pWashMachineStr->WashModeRelayId = dquCiShortFromChar(pData);/*全自动自动洗车模式继电器(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashAllowRelayId = dquCiShortFromChar(pData);/*降级模式洗车同意按钮继电器ID(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownDccWashAllowRelayId = dquCiShortFromChar(pData);/*降级模式DCC洗车同意按钮继电器ID(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashAllowLightRelayId = dquCiShortFromChar(pData);/*降级模式洗车同意指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownDccWashAllowLightRelayId = dquCiShortFromChar(pData);/*降级模式DCC洗车同意指示灯继电器ID (配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashAllowPassRelayId = dquCiShortFromChar(pData);/*降级模式洗车同意通过按钮继电器ID(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->downDccWashPassAllowRelayId = dquCiShortFromChar(pData);/*降级模式DCC洗车同意反向通过按钮继电器ID(配置字段:采集继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashPassAllowLightRelayId = dquCiShortFromChar(pData);/*降级模式洗车同意反向通过指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->dccWashPassAllowLightRelayId = dquCiShortFromChar(pData);/*降级模式DCC洗车同意反向通过指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute1Id = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯1关联进路ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute1CheckType = *pData;/*降级模式洗车线控制台表示灯1关联进路状态检查类型*/
|
||||
pData += 1U;
|
||||
pWashMachineStr->wDownWashRelRoute1LightRelayId = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯1继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute2Id = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯2关联进路ID*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashRelateRoute2CheckType = *pData;/*降级模式洗车线控制台表示灯2关联进路状态检查类型*/
|
||||
pData += 1U;
|
||||
pWashMachineStr->wDownWashRelRoute2LightRelayId = dquCiShortFromChar(pData);/*降级模式洗车线控制台表示灯2继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->wDownWashReqAllowLightRelayId = dquCiShortFromChar(pData);/*降级模式洗车请求指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->downDccWashApplyLightRelayId = dquCiShortFromChar(pData);/*降级模式DCC洗车请求指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->washPassApplyLightRelayId = dquCiShortFromChar(pData);/*降级模式洗车反向通过请求指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
pWashMachineStr->dccWashPassApplyLightRelayId = dquCiShortFromChar(pData);/*降级模式DCC洗车反向通过请求指示灯继电器ID(配置字段:驱动继电器)*/
|
||||
pData += 2U;
|
||||
rtnvalue = 1U;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return rtnvalue;
|
||||
|
||||
}
|
||||
@@ -699,6 +616,10 @@ UINT8 R_NoRouteDcStruFromChar(UINT8 * pDataAddr,Relay_NoRouteDcStruct* pNoRotStr
|
||||
pNoRotStr->wRelayColTongYiScId = dquCiShortFromChar(pData); /* 试车线采集同意试车继电器ID */
|
||||
pData += 2u;
|
||||
|
||||
pNoRotStr->wWaysideTryTrainIndRelayId = dquCiShortFromChar(pData); /* 轨旁试车指示器继电器ID */
|
||||
pData += 2u;
|
||||
|
||||
|
||||
rtnvalue = 1u;
|
||||
return rtnvalue;
|
||||
|
||||
@@ -778,53 +699,52 @@ UINT8 R_ZhaoChaStruFromChar(UINT8 * pDataAddr,Relay_ZhaoChaStruct* pZCStr,UINT16
|
||||
UINT8 R_BaoJingDengStruFromChar(UINT8 * pDataAddr,Relay_BaoJingDengStruct* pBjdStr,UINT32 dwRowLen)
|
||||
{
|
||||
UINT8 * pData = pDataAddr;
|
||||
UINT8 rtnvalue = 0u;
|
||||
UINT16 i=0u;
|
||||
UINT8 localCiPattern = 0u; /*本CI模式*/
|
||||
UINT8 includeVirFlag= GetCiFunctionSwitchConfig(FUNC_INCLUDEVIRCI_FLAG);
|
||||
UINT16 OCid = 0u;
|
||||
|
||||
UINT8 rtnvalue = 0U;
|
||||
UINT16 i=0U;
|
||||
UINT8 localCiPattern = 0U; /*本CI模式*/
|
||||
UINT16 OCid = 0U;
|
||||
UINT8 chRtuId = 0U;
|
||||
if ((NULL == pDataAddr) || (NULL == pBjdStr))
|
||||
{
|
||||
rtnvalue = 0u;
|
||||
return rtnvalue;
|
||||
rtnvalue = 0U;
|
||||
}
|
||||
else
|
||||
{
|
||||
pBjdStr->wId = dquCiShortFromChar(pData); /*ID*/
|
||||
pData += 2U;
|
||||
pBjdStr->wBelongCiId = dquCiShortFromChar(pData); /*所属ID*/
|
||||
pData += 2U;
|
||||
pBjdStr->wBjdID = dquCiShortFromChar(pData); /*报警灯ID*/
|
||||
pData += 2U;
|
||||
pBjdStr->wBjdYouXiao = *pData; /*是否有效*/
|
||||
pData += 1U;
|
||||
for (i = 0U; i < BJD_MAX_NUM; i++)
|
||||
{
|
||||
pBjdStr->wBjdJdqId[i] = dquCiShortFromChar(pData); /*相关设备ID*/
|
||||
pData += 2U;
|
||||
}
|
||||
|
||||
localCiPattern = GetLocalCiPattern();
|
||||
pBjdStr->wId = dquCiShortFromChar(pData); /*ID*/
|
||||
pData += 2u;
|
||||
pBjdStr->wBelongCiId = dquCiShortFromChar(pData); /*所属ID*/
|
||||
if (CI_PATTERN_FULL_ELECTRONIC == localCiPattern)
|
||||
{
|
||||
OCid = pBjdStr->wBelongCiId;/*对应全电子联锁,读取到的是OCid*/
|
||||
pBjdStr->wBelongCiId = (UINT16)GetCiIdByOcId(pBjdStr->wBelongCiId);/*找到0Cid对应联锁id*/
|
||||
if(FUNC_SWITCH_ON == includeVirFlag)
|
||||
if (15U < dwRowLen)
|
||||
{
|
||||
pBjdStr->wBelongVirCIid = GetOCBelongVirCIid((UINT8)OCid);/*找到0Cid对应虚拟联锁id*/
|
||||
pBjdStr->cBjdDevId = *pData;
|
||||
pData += 1U;
|
||||
}
|
||||
else
|
||||
if (16U < dwRowLen)
|
||||
{
|
||||
pBjdStr->wBelongVirCIid = 0u;
|
||||
chRtuId = *pData; /*RTU id*/
|
||||
pData += 1U;
|
||||
}
|
||||
}
|
||||
pData += 2u;
|
||||
pBjdStr->wBjdID = dquCiShortFromChar(pData); /*报警灯ID*/
|
||||
pData += 2u;
|
||||
pBjdStr->wBjdYouXiao = *pData; /*是否有效*/
|
||||
pData += 1u;
|
||||
for(i=0u;i<BJD_MAX_NUM;i++)
|
||||
{
|
||||
pBjdStr->wBjdJdqId[i] = dquCiShortFromChar(pData); /*对端继电器ID*/
|
||||
pData += 2u;
|
||||
|
||||
localCiPattern = GetLocalCiPattern();
|
||||
if (CI_PATTERN_FULL_ELECTRONIC == localCiPattern)
|
||||
{
|
||||
OCid = pBjdStr->wBelongCiId; /*对应全电子联锁,读取到的是OCid*/
|
||||
pBjdStr->wBelongCiId = (UINT16)GetCiIdByOcId(OCid); /*找到0Cid对应联锁id*/
|
||||
pBjdStr->wBelongVirCIid = chRtuId; /*填写RTUid*/
|
||||
}
|
||||
rtnvalue = 1U;
|
||||
}
|
||||
|
||||
if (15U < dwRowLen)
|
||||
{
|
||||
pBjdStr->cBjdDevId = *pData;
|
||||
pData += 1;
|
||||
}
|
||||
|
||||
rtnvalue = 1u;
|
||||
return rtnvalue;
|
||||
|
||||
}
|
||||
@@ -1274,4 +1194,155 @@ UINT8 R_OCIndicStruFromChar(UINT8* pDataAddr, OCStationIndicConfigDataStru* pInd
|
||||
return reVal;
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到倒切开关配置继电器结构体
|
||||
*参数说明:pDataAddr数据地址, Relay_ReverseSwitchStruct 倒切开关继电器配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_ReverseSwitchStrFromChar(UINT8 * pDataAddr, Relay_ReverseSwitchStruct * pReverseStr)
|
||||
{
|
||||
UINT8 * pData = pDataAddr;
|
||||
UINT8 rtnvalue = 0u;
|
||||
UINT16 j = 0U;
|
||||
UINT16 wTemp = 0U;
|
||||
if ((NULL == pDataAddr) || (NULL == pReverseStr))
|
||||
{
|
||||
rtnvalue = 0u;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnvalue = 1U;
|
||||
}
|
||||
|
||||
if (1u == rtnvalue)
|
||||
{
|
||||
pReverseStr->wReversSwitchId = dquCiShortFromChar(pData); /*ID*/
|
||||
pData += 2u;
|
||||
|
||||
pReverseStr->ocId = dquCiShortFromChar(pData); /*Oc ID*/
|
||||
pData += 2u;
|
||||
|
||||
pReverseStr->wColOpenRelayId = dquCiShortFromChar(pData); /*常开继电器*/
|
||||
pData += 2u;
|
||||
|
||||
pReverseStr->wColCloseRelayId = dquCiShortFromChar(pData); /*常闭继电器*/
|
||||
pData += 2u;
|
||||
|
||||
if ((0U == pReverseStr->wColOpenRelayId)
|
||||
||(0U == pReverseStr->wColCloseRelayId)
|
||||
|| (pReverseStr->wColOpenRelayId == pReverseStr->wColCloseRelayId))
|
||||
{
|
||||
rtnvalue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
pReverseStr->wRelateBoardNum = dquCiShortFromChar(pData); /*板卡个数*/
|
||||
pData += 2u;
|
||||
|
||||
if ((0U < pReverseStr->wRelateBoardNum)&&(OC_RELAY_REVERSE_BOARD_MAX >= pReverseStr->wRelateBoardNum))
|
||||
{
|
||||
for (j = 0U; j < pReverseStr->wRelateBoardNum; j++)
|
||||
{
|
||||
wTemp = dquCiShortFromChar(pData); /*板卡id*/
|
||||
pData += 2u;
|
||||
if ((0U == wTemp) || (UINT16_MAX == wTemp))
|
||||
{
|
||||
rtnvalue = 0U;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
pReverseStr->strRelateBoardBuf[j].wReversBoardId = wTemp;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnvalue = 0u;
|
||||
debug_infor_printf((char*)"\nR_ReverseSwitchStrFromChar BoardNum%d", pReverseStr->wRelateBoardNum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rtnvalue;
|
||||
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到倒切板卡结构体
|
||||
*参数说明:pDataAddr数据地址, Relay_ReverseBoardStruct 倒切板卡继电器配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_ReverseBoardStrFromChar(UINT8 * pDataAddr, Relay_ReverseBoardStruct * pReverseStr)
|
||||
{
|
||||
UINT8 * pData = pDataAddr;
|
||||
UINT8 rtnvalue = 0u;
|
||||
UINT16 wBoardId = 0U;
|
||||
if ((NULL == pDataAddr) || (NULL == pReverseStr))
|
||||
{
|
||||
rtnvalue = 0u;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnvalue = 1U;
|
||||
}
|
||||
|
||||
if (1u == rtnvalue)
|
||||
{
|
||||
wBoardId = dquCiShortFromChar(pData); /*ID*/
|
||||
pData += 2u;
|
||||
|
||||
if (0U == wBoardId)
|
||||
{
|
||||
rtnvalue = 0U;
|
||||
}
|
||||
else
|
||||
{
|
||||
pReverseStr->wReversBoardId = wBoardId; /*板卡ID*/
|
||||
|
||||
pReverseStr->wBoardColOpenRelayId = dquCiShortFromChar(pData); /*常开继电器*/
|
||||
pData += 2u;
|
||||
|
||||
pReverseStr->wBoardColCloseRelayId = dquCiShortFromChar(pData); /*常闭继电器*/
|
||||
pData += 2u;
|
||||
|
||||
if ((0U == pReverseStr->wBoardColCloseRelayId)
|
||||
||(0U == pReverseStr->wBoardColOpenRelayId)
|
||||
|| (pReverseStr->wBoardColOpenRelayId == pReverseStr->wBoardColCloseRelayId))
|
||||
{
|
||||
rtnvalue = 0U;
|
||||
}
|
||||
else
|
||||
{
|
||||
pReverseStr->chDevType = *pData;/*类型*/
|
||||
pData++;
|
||||
|
||||
pReverseStr->wDevId = dquCiShortFromChar(pData); /*设备ID*/
|
||||
pData += 2u;
|
||||
|
||||
if ((OC_LEN_REVERSE_TYPE_PSD == pReverseStr->chDevType) || (OC_LEN_REVERSE_TYPE_SWITCH == pReverseStr->chDevType))
|
||||
{
|
||||
if ((0U < pReverseStr->wDevId) && (UINT16_MAX != pReverseStr->wDevId))
|
||||
{
|
||||
rtnvalue = 1U;
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnvalue = 0U;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnvalue = 0U;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rtnvalue;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -36,12 +36,6 @@ UINT8 R_EmegencyStopStructFromChar(UINT8 * pDataAddr,Relay_EmgcyStpStruct* pEmgc
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_ScreenStructFromChar(UINT8* pDataAddr, Relay_ScreenStruct* pScrnStr, UINT16 rowLen);
|
||||
/*********************************************
|
||||
*函数功能:从数据到屏蔽门继电器结构体
|
||||
*参数说明:pDataAddr数据地址, pScrnStr屏蔽门继电器配置数据结构体指针,UINT16 rowLen 一行数据的长度
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_ScreenStructFromCharT(UINT8* pDataAddr, Relay_ScreenStruct* pScrnStr, UINT16 rowLen);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到物理区段继电器结构体
|
||||
@@ -65,12 +59,13 @@ UINT8 R_PointStructFromChar(UINT8 * pDataAddr,Relay_PointStruct* pSwitchStr);
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_SignalStructFromChar(UINT8 * pDataAddr,Relay_SignalStruct* pSgnlStr);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到洗车机继电器结构体
|
||||
*参数说明:pDataAddr数据地址, pWashMachineStr 洗车机继电器配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_WashMachineStructFromChar(UINT8 * pDataAddr,Relay_WashMachineStruct * pWashMachineStr,UINT16 realRowLen);
|
||||
UINT8 R_WashMachineStructFromChar(UINT8 * pDataAddr,Relay_WashMachineStruct * pWashMachineStr);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到非进路数据继电器结构体
|
||||
@@ -155,4 +150,18 @@ UINT8 R_ReverseCutStrFromChar(UINT8 * pDataAddr, Relay_ReverseCutStruct * pRever
|
||||
* cgh-合并CID-3037-3:
|
||||
*********************************************/
|
||||
UINT8 R_OCIndicStruFromChar(UINT8* pDataAddr, OCStationIndicConfigDataStru* pIndicStru);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到倒切开关配置继电器结构体
|
||||
*参数说明:pDataAddr数据地址, Relay_ReverseSwitchStruct 倒切开关继电器配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_ReverseSwitchStrFromChar(UINT8 * pDataAddr, Relay_ReverseSwitchStruct * pReverseStr);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:从数据到倒切板卡结构体
|
||||
*参数说明:pDataAddr数据地址, Relay_ReverseBoardStruct 倒切板卡继电器配置数据结构体指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 R_ReverseBoardStrFromChar(UINT8 * pDataAddr, Relay_ReverseBoardStruct * pReverseStr);
|
||||
#endif
|
||||
|
||||
@@ -211,7 +211,7 @@ UINT8 InitRelay_WashMachineStru(CHAR* CIDataName)
|
||||
pWashMachineStr = RelayData.pRelayWashMachineStr + j;
|
||||
|
||||
/*填充数据结构体*/
|
||||
rtnValue &= R_WashMachineStructFromChar(pDataAddr, pWashMachineStr, realRowLen);
|
||||
rtnValue &= R_WashMachineStructFromChar(pDataAddr, pWashMachineStr);
|
||||
pDataAddr += realRowLen;
|
||||
|
||||
}
|
||||
@@ -353,7 +353,6 @@ UINT8 InitRelay_ScreenStru(CHAR* CIDataName)
|
||||
UINT32 sheetId = 0U; /*sheet id*/
|
||||
UINT32 rowLen = 0U; /*行长度*/
|
||||
UINT8 localCiPattern = 0U; /*本CI模式*/
|
||||
UINT8 chOcPattern = 0U;
|
||||
/*已经初始化了,不用老是调用执行过程*/
|
||||
if (RelayData.pRelayScreenStr != NULL)
|
||||
{
|
||||
@@ -398,44 +397,27 @@ UINT8 InitRelay_ScreenStru(CHAR* CIDataName)
|
||||
{
|
||||
RelayDataLen.RelayScreenStrLen = wRealRowCount;
|
||||
rowLen = DataSize / wRealRowCount;
|
||||
if (DataSize < rowLen)
|
||||
/*动态申请空间*/
|
||||
RelayData.pRelayScreenStr = (Relay_ScreenStruct*)MyNew((UINT32)(sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen));
|
||||
/*动态申请空间失败*/
|
||||
if (NULL == RelayData.pRelayScreenStr)
|
||||
{
|
||||
RelayDataLen.RelayScreenStrLen = 0U;
|
||||
rtnValue = 0U;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/*动态申请空间*/
|
||||
RelayData.pRelayScreenStr = (Relay_ScreenStruct*)MyNew((UINT32)(sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen));
|
||||
/*动态申请空间失败*/
|
||||
if (NULL == RelayData.pRelayScreenStr)
|
||||
/*内存先设为无效*/
|
||||
(void)memset(RelayData.pRelayScreenStr, 0x00, sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen);
|
||||
/*解析数据到 默认行车序列 结构体数组 */
|
||||
for (j = 0u; j < RelayDataLen.RelayScreenStrLen; j++)
|
||||
{
|
||||
RelayDataLen.RelayScreenStrLen = 0U;
|
||||
rtnValue = 0U;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*内存先设为无效*/
|
||||
(void)memset(RelayData.pRelayScreenStr, 0x00, sizeof(Relay_ScreenStruct) * RelayDataLen.RelayScreenStrLen);
|
||||
/*解析数据到 默认行车序列 结构体数组 */
|
||||
for (j = 0u; j < RelayDataLen.RelayScreenStrLen; j++)
|
||||
{
|
||||
pScreenStr = RelayData.pRelayScreenStr + j;
|
||||
pScreenStr = RelayData.pRelayScreenStr + j;
|
||||
|
||||
/*填充数据结构体*/
|
||||
chOcPattern = GetLocalOcPattern();
|
||||
if(DATA_TYPE_NEW == chOcPattern)
|
||||
{
|
||||
rtnValue &= R_ScreenStructFromChar(pDataAddr, pScreenStr, (UINT16)rowLen);
|
||||
}
|
||||
else
|
||||
{
|
||||
rtnValue &= R_ScreenStructFromCharT(pDataAddr, pScreenStr, (UINT16)rowLen);
|
||||
}
|
||||
|
||||
pDataAddr += rowLen;
|
||||
/*填充数据结构体*/
|
||||
rtnValue &= R_ScreenStructFromChar(pDataAddr, pScreenStr, (UINT16)rowLen);
|
||||
pDataAddr += rowLen;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -486,8 +468,8 @@ UINT8 InitRelay_PointStru(CHAR* CIDataName)
|
||||
if (CI_PATTERN_TRADITIONAL == localCiPattern)
|
||||
{
|
||||
excelId = CI_DATA_TYPE;
|
||||
sheetId = RELAY_SIGNAL;
|
||||
rowLen = LEN_RELAY_SIGNAL;
|
||||
sheetId = RELAY_POINT;
|
||||
rowLen = LEN_RELAY_POINT;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1660,3 +1642,191 @@ UINT8 InitRelay_ReverseCutStru(CHAR* CIDataName)
|
||||
return rtnValue;
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:填充倒切开关继电器结构体数组---内部用
|
||||
*参数说明:CIDataName件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 InitRelay_ReverseSwitchStru(CHAR* CIDataName)
|
||||
{
|
||||
UINT8 funcRtn = 0u;
|
||||
Relay_ReverseSwitchStruct* pReverseSwitchStr = NULL; /*倒切开关变量*/
|
||||
UINT8* pDataAddr = NULL; /*数据地址*/
|
||||
UINT32 DataSize = 0U; /*数据大小(字节数)*/
|
||||
UINT16 j = 0U;
|
||||
UINT8 rtnValue = 0u;
|
||||
|
||||
/*已经初始化了,不用老是调用执行过程 全电子不用初始化这张表*/
|
||||
if (NULL != RelayData.pRelayReverseSwitchStr)
|
||||
{
|
||||
rtnValue = 1u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*读取倒切设备继电器数据表*/
|
||||
funcRtn = dquGetConfigData(CIDataName, OC_DATA_TYPE, OC_RELAY_REVERSE_SWITCH_ID, &pDataAddr, &DataSize);
|
||||
if (0u == funcRtn)
|
||||
{
|
||||
/*函数调用失败*/
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if ((0u != DataSize% OC_LEN_REVERSE_SWITCH_LEN))
|
||||
{ /*求得个数不为整数,数据错误*/
|
||||
debug_infor_printf((char* )"\nCI_RELAY_DATA,REVERSE_Switch len %d not equal to fs", OC_LEN_REVERSE_SWITCH_LEN);
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
RelayDataLen.RelayReverseSwitchStrLen = (UINT16)(DataSize / OC_LEN_REVERSE_SWITCH_LEN);/*计算结构体个数*/
|
||||
|
||||
if (OC_LEN_REVERSE_SWITCH_LEN > DataSize)
|
||||
{/*不足一个*/
|
||||
RelayData.pRelayReverseSwitchStr = (Relay_ReverseSwitchStruct *)MyNew((UINT32)sizeof(Relay_ReverseSwitchStruct));
|
||||
RelayDataLen.RelayReverseSwitchStrLen = 0u;
|
||||
rtnValue = 1u;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
/*动态申请空间*/
|
||||
RelayData.pRelayReverseSwitchStr = (Relay_ReverseSwitchStruct *)MyNew((UINT32)(sizeof(Relay_ReverseSwitchStruct) * RelayDataLen.RelayReverseSwitchStrLen));
|
||||
|
||||
if (NULL == RelayData.pRelayReverseSwitchStr)
|
||||
{/*动态申请空间失败*/
|
||||
RelayDataLen.RelayReverseSwitchStrLen = 0u;
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*内存先设为无效*/
|
||||
(void)CommonMemSet(RelayData.pRelayReverseSwitchStr, (UINT32)(sizeof(Relay_ReverseSwitchStruct) * RelayDataLen.RelayReverseSwitchStrLen),
|
||||
(UINT8)0x00, (UINT32)(sizeof(Relay_ReverseSwitchStruct) * RelayDataLen.RelayReverseSwitchStrLen));
|
||||
/*解析数据到 结构体数组 */
|
||||
rtnValue = 1u;
|
||||
for (j = 0u; j < RelayDataLen.RelayReverseSwitchStrLen; j++)
|
||||
{
|
||||
pReverseSwitchStr = RelayData.pRelayReverseSwitchStr + j;
|
||||
|
||||
/*填充数据结构体*/
|
||||
rtnValue &= R_ReverseSwitchStrFromChar(pDataAddr, pReverseSwitchStr);
|
||||
pDataAddr += OC_LEN_REVERSE_SWITCH_LEN;
|
||||
if (1U != rtnValue)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return rtnValue;
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
*函数功能:填充倒切板卡继电器结构体数组---内部用
|
||||
*参数说明:CIDataName件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 InitRelay_ReverseBoardStru(CHAR* CIDataName)
|
||||
{
|
||||
UINT8 funcRtn = 0u;
|
||||
UINT8* pDataAddr = NULL; /*数据地址*/
|
||||
UINT32 DataSize = 0U; /*数据大小(字节数)*/
|
||||
Relay_ReverseBoardStruct tempBoardStru = {0}; /*倒切板卡临时存储*/
|
||||
Relay_ReverseSwitchStruct* pReverseSwitchStr = NULL;/*倒切开关指针*/
|
||||
Relay_ReverseBoardStruct* pReverseBoard = NULL; /*倒切板卡指针*/
|
||||
UINT16 j = 0U;
|
||||
UINT16 ii = 0U;
|
||||
UINT16 kk = 0U;
|
||||
UINT8 rtnValue = 0u;
|
||||
UINT16 wLen = 0U;
|
||||
UINT8 chFind = CI_ERROR;
|
||||
|
||||
if (NULL == RelayData.pRelayReverseSwitchStr)
|
||||
{
|
||||
/*需要先初始化倒切开关继电器*/
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*读取倒切板卡继电器数据表*/
|
||||
funcRtn = dquGetConfigData(CIDataName, OC_DATA_TYPE, OC_RELAY_REVERSE_BOARD_ID, &pDataAddr, &DataSize);
|
||||
if (0u == funcRtn)
|
||||
{
|
||||
/*函数调用失败*/
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if ((0u != DataSize% OC_LEN_REVERSE_BOARD_LEN))
|
||||
{ /*求得个数不为整数,数据错误*/
|
||||
debug_infor_printf((char*)"\nCI_RELAY_DATA,REVERSE_Board len %d not equal to fs", OC_LEN_REVERSE_BOARD_LEN);
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
wLen = (UINT16)(DataSize / OC_LEN_REVERSE_BOARD_LEN);/*计算结构体个数*/
|
||||
|
||||
if ((0U == RelayDataLen.RelayReverseSwitchStrLen)&&(RelayDataLen.RelayReverseSwitchStrLen == wLen))
|
||||
{
|
||||
/*无开关*/
|
||||
rtnValue = 1u;
|
||||
}
|
||||
else if ((0U == RelayDataLen.RelayReverseSwitchStrLen) || (0U == wLen)||(CI_SUM_MAX <= RelayDataLen.RelayReverseSwitchStrLen))
|
||||
{
|
||||
/*板卡与开关配置不一致*/
|
||||
debug_infor_printf((char*)"\n InitRelay_ReverseBoardStru len %d Error \n", wLen);
|
||||
rtnValue = 0u;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*初始化到对应开关数据,板卡数据的空间已经申请在开关数据结构体内*/
|
||||
rtnValue = 1u;
|
||||
for (ii = 0U; ii < wLen; ii++)
|
||||
{
|
||||
/*填充数据结构体*/
|
||||
rtnValue &= R_ReverseBoardStrFromChar(pDataAddr, &tempBoardStru);
|
||||
pDataAddr += OC_LEN_REVERSE_BOARD_LEN;
|
||||
chFind = CI_ERROR;
|
||||
if (1U == rtnValue)
|
||||
{
|
||||
for (j = 0U; j < RelayDataLen.RelayReverseSwitchStrLen; j++)
|
||||
{
|
||||
pReverseSwitchStr = RelayData.pRelayReverseSwitchStr + j;
|
||||
for (kk = 0U; kk < pReverseSwitchStr->wRelateBoardNum; kk++)
|
||||
{
|
||||
/*遍历查找对应倒切板卡*/
|
||||
if (pReverseSwitchStr->strRelateBoardBuf[kk].wReversBoardId == tempBoardStru.wReversBoardId)
|
||||
{
|
||||
pReverseBoard = &pReverseSwitchStr->strRelateBoardBuf[kk];
|
||||
(void)CommonMemCpy((void *)(pReverseBoard), (UINT32)sizeof(Relay_ReverseBoardStruct), (const void *)(&tempBoardStru), (UINT32)sizeof(Relay_ReverseBoardStruct));
|
||||
chFind = CI_SUCCESS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (CI_SUCCESS == chFind)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((CI_ERROR == chFind)||(0U == rtnValue))
|
||||
{
|
||||
rtnValue = 0u;
|
||||
debug_infor_printf((char*)"\n InitRelay_ReverseBoardStru Board%d Not Find \n", tempBoardStru.wReversBoardId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return rtnValue;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ typedef struct SConfig_RelayDataStruct
|
||||
Relay_WashMachineStruct *pRelayWashMachineStr; /*洗车机继电器结构体*/
|
||||
Relay_DCAgreeStruct *pRelayDCAgreeStr;/*调车同意继电器结构体*/
|
||||
Relay_ReverseCutStruct *pRelayReverseCutStr;/*倒切设备继电器结构体*/
|
||||
Relay_ReverseSwitchStruct* pRelayReverseSwitchStr; /*倒切开关继电器结构体*/
|
||||
} RelayDataStruct_Config;
|
||||
/*继电器数组长度结构体*/
|
||||
typedef struct S_RelayDataStructLen
|
||||
@@ -58,6 +59,7 @@ typedef struct S_RelayDataStructLen
|
||||
UINT16 RelayMonoRailPointStrLen ; /*单轨道岔继电器结构体数组长度*/
|
||||
UINT16 RelayDCAgreeStrLen;/*调车同意继电器结构体数量*/
|
||||
UINT16 RelayReverseCutStrLen;/*倒切设备继电器结构体数量*/
|
||||
UINT16 RelayReverseSwitchStrLen;/*倒切开关继电器结构体数量*/
|
||||
} RelayDataStruct_ConfigLen;
|
||||
|
||||
/*********定义全局的继电器信息数据变量*******/
|
||||
@@ -173,5 +175,19 @@ UINT8 InitRelay_DCAgreeStru(CHAR* CIDataName);
|
||||
*********************************************/
|
||||
UINT8 InitRelay_ReverseCutStru(CHAR* CIDataName);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:填充倒切开关继电器结构体数组---内部用
|
||||
*参数说明:CIDataName件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 InitRelay_ReverseSwitchStru(CHAR* CIDataName);
|
||||
|
||||
/*********************************************
|
||||
*函数功能:填充倒切板卡继电器结构体数组---内部用
|
||||
*参数说明:CIDataName件指针
|
||||
*返回值:0,失败;1,成功
|
||||
*********************************************/
|
||||
UINT8 InitRelay_ReverseBoardStru(CHAR* CIDataName);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user