Files
TSCP/TSCP/src/APP/ciapp/ParsePack/ParsePackVobcData.h
T

886 lines
37 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/********************************************************
*
* 文 件 名: ParsePackVobcData.h
* 版权说明: 北京交控科技有限公司
* 创建时间: 2012-03-28
* 作 者: 联锁组
* 功能描述: Vobc数据解析头文件
* 函数包括:
* 使用注意:
* 修改记录:
*
********************************************************/
#ifndef _PARSE_PACK_VOBC_DATA_H_
#define _PARSE_PACK_VOBC_DATA_H_
#include "CommonTypes.h"
#include "Convert.h"
#include "ParsePackDefine.h"
#include "ParsePackCommon.h"
#include "CiInterfaceDefine.h"
#include "../Mask/MaskDefine.h"
#include "../Mask/MaskConfigDataManage.h"
#include "../2oo2/2oo2InterfaceDataManage.h"
#include "../DataManage/DeviceDataManage.h"
#include "../ParsePack/ParsePackAtsData.h"
#include "../Relay/RelayConfigDataManage.h"
#include "../Relay/RelayDataManage.h"
#include "../ParsePack/ParsePackPlatformData.h"
#include "../PSD/PSDConfigDataManage.h"
#include "../PSD/PSDDataManage.h"
#include "../WashMachine/WashMachineConfigDataManage.h"
#include "../WashMachine/WashMachineDataManage.h"
#include "../System/SystemParameterManage.h"
#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)
#define CI_PSD_COMM_STATE_BAD ((UINT8)0xAA)
#define VOBC_CI_STOP_TW ((UINT8)0x55) /*VOBC到CI列车已停稳*/
#define VOBC_CI_STOP_WTW ((UINT8)0xAA) /*VOBC到CI列车未停稳*/
#define CI_VOBC_SIGNAL_YES ((UINT8)0x55) /*CI到VOBC出站允许信号*/
#define CI_VOBC_SIGNAL_NO ((UINT8)0xAA) /*CI到VOBC出站禁止信号(正常关闭)*/
#define CI_VOBC_SIGNAL_ERR ((UINT8)0xCC) /*CI到VOBC出站禁止信号(异常关闭)*/
#define CI_VOBC_SIGNAL_DEFAULT ((UINT8)0xFF) /*CI到VOBC出站信号默认状态*/
#define CI_VOBC_NO_LOCK ((UINT8)0x00) /*CI给后备通道发站外直轨锁闭方向,默认值*/
#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备用通道报文类型*/
#define CI_VOBC_INFO_TYPE_PSD_STATE ((UINT16)0x0202) /*CI_VOBC屏蔽门状态及闯红灯报文类型*/
#define VOBC_CI_INFO_TYPE_HEART_FRAME ((UINT16)0x0203) /*VOBC_CI心跳帧报文类型*/
#define CI_VOBC_INFO_TYPE_HEART_FRAME ((UINT16)0x0204) /*CI_VOBC心跳帧报文类型*/
#define VOBC_CI_INFO_TYPE_CITY_DEFINED ((UINT16)0x0205) /*VOBC_CI城市自定义帧报文类型*/
#define CI_VOBC_INFO_TYPE_CITY_DEFINED ((UINT16)0x0206) /*CI_VOBC城市自定义帧报文类型*/
#define VOBC_CI_INFO_TYPE_MANU_DEFINED ((UINT16)0x0207) /*VOBC_CI厂商自定义帧报文类型*/
#define CI_VOBC_INFO_TYPE_MANU_DEFINED ((UINT16)0x0208) /*CI_VOBC厂商自定义帧报文类型*/
#define VOBC_CI_INFO_TYPE_LOGOUT_ASK ((UINT16)0x0209) /*VOBC_CI注销请求帧*/
#define CI_VOBC_INFO_TYPE_LOGOUT_ACK ((UINT16)0x020a) /*CI_VOBC注销回复帧*/
#define VOBC_CI_INFO_TYPE_FAO_INFO ((UINT16)0x020b) /*VOBC_CI全自动运行洗车信息帧类型*/
#define CI_VOBC_INFO_TYPE_FAO_INFO ((UINT16)0x020c) /*CI_VOBC全自动运行洗车信息帧类型*/
#define CI_VOBC_PLAT_CLEAR_PASSENGER_INFO ((UINT16)0x020d) /*CI_VOBC全自动运行站台状态信息帧类型*/
#define VOBC_CI_INFO_TYPE_FAO_CONTROL ((UINT16)0x020e) /*VOBC_CI全自动运行站台控制信息帧类型:间隙探测*/
#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默认间隙探测命令*/
#define VOBC_CI_DOOR_CLOSEDANDLOCKED ((UINT8)0x55) /*VOBC2CI车门关闭且锁闭*/
#define VOBC_CI_DOOR_NOTCLOSEDANDLOCKED ((UINT8)0xAA) /*VOBC2CI车门非关闭且锁闭,Default Value*/
#define CI_VOBC_GAP_DETECT_STATUS_CLEAR ((UINT8)0x55) /*CI2VOBC间隙探测状态:已检测且无障碍物*/
#define CI_VOBC_GAP_DETECT_STATUS_UNCLEAR ((UINT8)0xAA) /*CI2VOBC间隙探测状态:已检测且有障碍物*/
#define CI_VOBC_GAP_DETECT_STATUS_DEFAULT ((UINT8)0xFF) /*CI2VOBC间隙探测状态:未检测/无此功能,Default Value*/
#define CI_VOBC_PRTCL_VER ((UINT8)0x01) /*CI_VOBC协议版本号*/
#define CI_VOBC_PRTCL_VER_FAOHLHT ((UINT8)0x65) /*CI_VOBC协议版本号101*/
#define CI_VOBC_BACKUP_PRTCL_VER ((UINT8)0x66) /*CI_VOBC后备通道接口协议版本号*/
#define CI_VOBC_REMOVE_YES ((UINT8)0x55) /*互锁解除有效*/
#define CI_VOBC_REMOVE_NO ((UINT8)0xAA) /*互锁解除无效*/
#define CI_VOBC_REMOVE_OFF ((UINT8)0xFF) /*互锁解除默认值*/
#define IVOC_CI_INTERFACE_INFOTYPE ((UINT16)0x0106U) /*IVOC-OC接口*/
#define IVOC_CI_BACKUP_INTERFACE_INFOTYPE ((UINT16)0x0402) /*RC/CI-IVOC接口(后备通道)*/
#define IVOC_CI_INFO_TYPE_CONTROL ((UINT16)0x0201U) /*IVOC->OC控制信息,周期发送*/
#define CI_IVOC_INFO_TYPE_STATE ((UINT16)0x0202U) /*OC->IVOC状态信息,周期发送*/
#define IVOC_CI_BACKUPINFO_TYPE_CONTROL ((UINT16)0x0308U) /*IVOC->OC备用通道状态信息,周期发送*/
#define CI_IVOC_BACKUPINFO_TYPE_STATE ((UINT16)0x0309U) /*OC->IVOC备用通道控制信息,周期发送*/
#define IVOC_CI_INFO_TYPE_LOGOUT_ASK ((UINT16)0x0203U) /*IVOC->OC注销请求帧,非周期*/
#define CI_IVOC_INFO_TYPE_LOGOUT_ACK ((UINT16)0x0204U) /*OC->IVOC注销回复帧,非周期*/
#define IVOC_CI_INFO_TYPE_HEART_FRAME ((UINT16)0x0205U) /*IVOC->OC心跳帧,非周期*/
#define CI_IVOC_INFO_TYPE_HEART_FRAME ((UINT16)0x0206U) /*OC->IVOC心跳帧,非周期*/
#define CI_IVOC_INFO_TYPE_SPECIAL_CONTROL ((UINT16)0x0208U) /*rc->IVOC特控报文帧,非周期*/
#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)0x0202U) /*RC->VOBC心跳信息,非周期发送*/
#define RC_VOBC_STATE_FRAME ((UINT16)0x0205U) /*RC->VOBC设备状态信息,周期发送*/
#define CI_IVOC_PRTCL_VER ((UINT8)0x01U) /*CI_VOBC协议版本号*/
#define CI_IVOC_BACKUP_PRTCL_VER ((UINT8)0x066) /*CI_VOBC后备通道协议版本号*/
#define RC_VOBC_PRTCL_VER ((UINT8)0x065) /*RC_VOBC协议版本号*/
#define IVOC_CI_CMD_MAX ((UINT16)100U) /*IVOC 到CI命令数量最大值*/
#define IVOC_CI_CMD_DEVICE_MAX ((UINT8)100U) /*IVOC 到CI命令设备数量最大值*/
#define IVOC_CI_EA_MAX ((UINT8)20U) /*IVOC 到CI EA最大值*/
#define IVOC_CI_STOP_ASSURE_YES ((UINT8)0x55) /*IVOC到CI停车保证状态允许*/
#define IVOC_CI_STOP_ASSURE_NO ((UINT8)0xAA) /*IVOC到CI停车保证状态未允许*/
#define IVOC_CI_STOP_ASSURE_DEF ((UINT8)0xFF) /*IVOC到CI停车保证状态默认值*/
#define IVOC_CI_STOP_ASS_SUM_MAX ((UINT8)100U) /*IVOC到CI停车保证数量最大值*/
#define IV0C_CI_RESOURCE_CANCEL_SUM_MAX ((UINT8)100U) /*IVOC到CI取消资源允许进路数量最大值*/
#define IVOC_CI_CMD_TYPE_RES_APPLY ((UINT8)0x01) /*IVOC到CI命令资源申请*/
#define IVOC_CI_CMD_TYPE_RES_RELEASE ((UINT8)0x02) /*IVOC到CI命令资源释放*/
#define IVOC_CI_CMD_TYPE_PSD_CLOSE ((UINT8)0x03) /*IVOC到CI命令屏蔽门关闭*/
#define IVOC_CI_CMD_TYPE_PSD_OPEN_FOUR ((UINT8)0x04) /*IVOC到CI命令四编组开门*/
#define IVOC_CI_CMD_TYPE_EA_BUILD ((UINT8)0x05) /*IVOC到CI命令区间疏散建立*/
#define IVOC_CI_CMD_TYPE_EA_CANCEL ((UINT8)0x06) /*IVOC到CI命令区间疏散取消建立*/
#define IVOC_CI_CMD_TYPE_DYTEST_REQ ((UINT8)0x07) /*IVOC到CI命令动态测试申请*/
#define IVOC_CI_CMD_TYPE_DYTEST_CANCEL ((UINT8)0x08) /*IVOC到CI命令动态测试取消*/
#define IVOC_CI_CMD_TYPE_PSD_OPEN_SIX ((UINT8)0x09) /*IVOC到CI命令六编组开门*/
#define IVOC_CI_CMD_TYPE_PSD_OPEN_EIGHT ((UINT8)0x0A) /*IVOC到CI命令八编组开门*/
#define IVOC_CI_CMD_TYPE_JUMP_LOCK_APPLY ((UINT8)0x0B) /*IVOC到TIOC命令跳跃锁闭申请*/
#define IVOC_CI_CMD_TYPE_JUMP_LOCK_RELEASE ((UINT8)0x0C) /*IVOC到TIOC命令跳跃锁闭释放*/
#define IVOC_CI_CMD_GAP_DETECT_START ((UINT8)0x0D) /*IVOC2CI启动间隙探测命令*/
#define IVOC_CI_CMD_GAP_DETECT_STOP ((UINT8)0x0E) /*IVOC2CI停止间隙探测命令,Default Value*/
#define IVOC_CI_CMD_NON_RETURN_STEADY ((UINT8)0x0F) /*IVOC2CI无人折返稳灯命令*/
#define IVOC_CI_CMD_NON_RETURN_FLASH ((UINT8)0x10) /*IVOC2CI无人折返闪灯命令,Default Value*/
#define IVOC_CI_CMD_TYPE_EMD_BUILD ((UINT8)0x11) /*IVOC2CI逃生门/客室门紧急解锁防护区域建立命令*/
#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) /*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道岔反位状态*/
#define CI_IVOC_SWITCH_POSTION_SHIBIAO ((UINT8)0xCCU) /*CI到IVOC道岔定位失表*/
#define CI_IVOC_PSD_STATE_CLOSE ((UINT8)0xAAU) /*CI到IVOC屏蔽门关闭*/
#define CI_IVOC_PSD_STATE_OPEN ((UINT8)0x55U) /*CI到IVOC屏蔽门打开*/
#define CI_IVOC_PSD_PCB_STATE_DOWN ((UINT8)0x55U) /*CI到IVOC PCB按钮激活*/
#define CI_IVOC_PSD_PCB_STATE_UP ((UINT8)0xAAU) /*CI到IVOC PCB按钮未激活*/
#define CI_IVOC_PSD_PCB_PL ((UINT8)0xFFU) /*CI到IVOC PCB按钮旁路*/
#define CI_IVOC_PSD_POB_STATE_VALID ((UINT8)0x55U) /*CI到IVOC POB按钮激活*/
#define CI_IVOC_PSD_POB_STATE_INVALID ((UINT8)0xAAU) /*CI到IVOC POB按钮未激活*/
#define CI_IVOC_PSD_POB_PL ((UINT8)0xFFU) /*CI到IVOC POB按钮旁路*/
#define CI_IVOC_PSD_PDB_STATE_INVALID ((UINT8)0xAAU) /*CI到IVOC PDB按钮未激活*/
#define CI_IVOC_PSD_PDB_NO_BUTTON ((UINT8)0xCCU) /*CI到IVOC PDB按钮未激活*/
#define CI_IVOC_PSD_PDB_STATE_VALID ((UINT8)0x55U)
#define CI_IVOC_PSD_PDB_PL ((UINT8)0xFFU) /*CI到IVOC PDB按钮旁路*/
#define CI_IVOC_GAP_DETECT_STATUS_CLEAR ((UINT8)0x55) /*CI2VOBC间隙探测状态:已检测且无障碍物*/
#define CI_IVOC_GAP_DETECT_STATUS_UNCLEAR ((UINT8)0xAA) /*CI2VOBC间隙探测状态:已检测且有障碍物*/
#define CI_IVOC_GAP_DETECT_STATUS_DEFAULT ((UINT8)0xFF) /*CI2VOBC间隙探测状态:未检测/无此功能,Default Value*/
#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_NON_RETURN_STATE_VALID ((UINT8)0x55U) /*CI到IVOC 无人折返按钮按下*/
#define CI_IVOC_NON_RETURN_STATE_INVALID ((UINT8)0xAAU) /*CI到IVOC 无人折返按钮未按下*/
#define CI_IVOC_SPKS_STATE_VALID ((UINT8)0x55U) /*CI到IVOC SPKS按钮激活*/
#define CI_IVOC_SPKS_STATE_INVALID ((UINT8)0xAAU) /*CI到IVOC SPKS按钮未激活*/
#define CI_IVOC_GARAGEDR_STATE_VALID ((UINT8)0x55U) /*CI到IVOC 车库门打开*/
#define CI_IVOC_GARAGEDR_STATE_INVALID ((UINT8)0xAAU) /*CI到IVOC 车库门关闭*/
#define CI_IVOC_ALLLINE_FLOCK ((UINT8)0xCCU) /*CI到IVOC 全线封锁*/
#define CI_IVOC_ALLLINE_FLOCK_NO ((UINT8)0xFFU) /*CI到IVOC 未全线封锁*/
#define CI_IVOC_FLOODGATE_OPEN_LOCK ((UINT8)0xAAU) /*CI到IVOC 防淹门开启锁定*/
#define CI_IVOC_FLOODGATE_OPEN_LOCK_NO ((UINT8)0x55U) /*CI到IVOC 防淹门未开启锁定*/
#define CI_IVOC_FLOODGATE_CLOSE_REQ ((UINT8)0x55U) /*CI到IVOC 防淹门有关门请求*/
#define CI_IVOC_FLOODGATE_CLOSE_REQ_NO ((UINT8)0xAAU) /*CI到IVOC 防淹门无关门请求*/
#define CI_IVOC_DYTEST_REPLY_YES ((UINT8)0x55U) /*CI到IVOC 动态测试同意*/
#define CI_IVOC_DYTEST_REPLY_NO ((UINT8)0xAAU) /*CI到IVOC 动态测试不同意*/
#define CI_IVOC_LOGSEC_PRLOCK_OPEN ((UINT8)0x55U) /*CI到IVOC 逻辑区段保护区段兼进路锁闭,且所属进路开放*/
#define CI_IVOC_LOGSEC_PRLOCK_CLOSE ((UINT8)0xAAU) /*CI到IVOC 逻辑区段保护区段兼进路锁闭,且所属进路未开放*/
#define CI_IVOC_LOGSEC_RLOCK ((UINT8)0xCCU) /*CI到IVOC 逻辑区段仅进路锁闭*/
#define CI_IVOC_LOGSEC_PLOCK ((UINT8)0x33U) /*CI到IVOC 逻辑区段仅保护区段锁闭*/
#define CI_IVOC_STOP_ENASSURE_ROUTE_SUM ((UINT16)100U) /*CI到IVOC 停车保证进路最大值*/
#define CI_IVOC_RESOURCE_CANCEL_RTSUM ((UINT16)100U) /*CI到IVOC 资源取消进路最大值*/
#define CI_IVOC_FLOODGATE_APPLY_SUM ((UINT16)50U) /*CI到IVOC 防淹门关闭请求最大数量*/
#define CI_IVOC_PACKET_LENGTH_MAX ((UINT16)1400U) /*CI到IVOC 包长度数量最大值*/
#define TRAIN_TOPLATFORM_LOG_SUM ((UINT16)1000U) /*列车到站台的逻辑区段最大数量*/
#define CI_IVOC_LOGSEC_JUMPLOCK_YES ((UINT8)0x55U) /*CI到IVOC 逻辑区段跳跃锁闭已锁闭*/
#define CI_IVOC_LOGSEC_JUMPLOCK_NO ((UINT8)0xaaU) /*CI到IVOC 逻辑区段跳跃锁闭未锁闭*/
#define IVOC_LOG_OUT_FAILURE ((UINT8)0xaau) /*IVOC注销失败*/
#define IVOC_LOG_OUT_SUCCESS ((UINT8)0x55u) /*IVOC注销成功*/
#define CI_IVOC_SCREEN_REQ_YES ((UINT8)0x55u) /*筛选申请*/
#define CI_IVOC_SCREEN_REQ_NO ((UINT8)0xffu) /*无筛选申请*/
#define IVOC_CI_UNLOCK_OVERLAP_SUM ((UINT8)20U) /*IVOC到CI允许解锁保护区段数量最大值*/
#define CI_IVOC_UNLOCK_OVERLAP_SUM ((UINT8)20U) /*CI到IVOC申请解锁保护区段数量最大值*/
#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 紧急制动状态无效*/
#define CI_VOBC_BACKUP_SEND_ROUTE_SUM ((UINT8)5U) /*CI到车载后备通道进路数量最大值*/
#define CI_IVOC_LOST_POSITION ((UINT8)0x55U) /*CI到车载特控报文 丢位置*/
#define CI_VOBC_JXTC_CUT_YES ((UINT8)0x55) /*间隙探测旁路故障*/
#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
#ifndef SFP_PROTOCOL
/*与联锁通信的Vobc信息*/
typedef struct S_VobcToCiPsdDataStruct
{
UINT16 PsdId; /*Psd ID*/
UINT32 PsdIdInterConn; /*互联互通Psd ID*/
UINT8 CmdType; /*命令类型*/
UINT8 gapDetectCmd; /*间隙探测命令*/
UINT8 VOBCDoorState; /*VOBC车门状态*/
UINT32 CmdStartCycNum; /*命令起始周期*/
UINT32 faultIsolationRequest; /*故障隔离信息请求*/
UINT32 VOBCIsolatePsdRequest[2]; /*VOBC故障隔离PSD请求,新机场线CI-VOBC接口文档里规定8个字节,Added on 20180223*/
} VobcToCiPsdDataStruct;
/*备用模式与联锁通信的Vobc含有的PSD信息*/
typedef struct S_VobcBackUpToCiPsdDataStruct
{
UINT16 PsdId; /*Psd ID*/
UINT32 PsdIdInterConn; /*互联互通Psd ID*/
UINT8 CmdType; /*命令类型*/
UINT32 CmdStartCycNum; /*命令起始周期*/
} VobcBackUpToCiPsdDataStruct;
typedef struct S_IvocToCiEaStruct
{
UINT8 chDeviceStatus; /* 设备状态 */
UINT16 wDeviceId; /* 设备ID */
UINT32 dwBuildCyc; /*疏散建立周期*/
}IvocToCiEaDataStru;
typedef struct S_IvocToCiCmdStruct
{
UINT8 chCmdType; /* 命令类型 */
UINT8 chCmdDevNum; /* 命令设备数量 */
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
{
UINT16 VobcId; /*Vobc ID*/
UINT8 psdCmdCode; /*站台开门码*/
UINT16 trainEditGroupInfo; /*列车编组信息*/
UINT8 washTrainRequest; /*洗车请求信息*/
UINT8 headWashStopSteadyInfo; /*头端洗位停稳信息,洗车停稳1*/
UINT8 tailWashStopSteadyInfo; /*尾端洗位停稳信息,洗车停稳2*/
UINT8 couplingWashStopSteadyInfo; /*联挂端洗位停稳信息,洗车停稳3*/
UINT8 passWashMachineRequest; /*通过洗车机请求信息*/
UINT8 washPauseRequest; /*暂停洗车请求*/
UINT8 chWashMachineWorkMode; /*洗车机工作模式设置*/
UINT8 PsdSum; /*屏蔽门数量*/
UINT8 trainDirection; /*列车运行方向*/
UINT8 trainStopSteadyState; /*列车停稳停准状态*/
UINT32 trackSecID; /*轨道区段ID*/
UINT32 stopSteadyStartCycNum; /*停稳开始周期*/
UINT32 firstHeartFrmSndCycNum; /*第一次发送心跳帧周期*/
UINT32 ComStartCycle;/*与VOBC通信开始周期,使用该周期做VOBC通信中断判断*/
UINT16 appInfoType; /*应用信息类型*/
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; /*列车模式*/
UINT16 wTrainMaxSafeHeadLink; /*列车最大安全前端所处Link*/
UINT32 dwTrainMaxSafeHeadOffset; /*列车最大安全前端偏移量*/
UINT16 wTrainMinSafeHeadLink; /*列车最小安全前端所处link*/
UINT32 dwTrainMinSafeHeadOffset; /*列车最小安全前端偏移量*/
UINT16 wTrainMaxSafeTailLink; /*列车最大安全后端所处Link*/
UINT32 dwTrainMaxSafeTailOffset; /*列车最大安全后端偏移量*/
UINT16 wTrainMinSafeTailLink; /*列车最小安全后端所处link*/
UINT32 dwTrainMinSafeTailOffset; /*列车最小安全后端偏移量*/
/*列车运行方向 trainDirection*/
UINT16 wTrainSpeed; /*列车速度*/
UINT8 chSpeedDir; /*列车速度方向*/
UINT8 chTrainZeroState; /*列车零速状态*/
UINT8 chTrainHeadScreenConfirm; /*人工确认前筛状态*/
UINT8 chTrainTailScreenConfirm; /*人工确认后筛状态*/
UINT8 chTrainStopAssureNum; /*列车停车保证*/
UINT16 szTrainStopRouteId[IVOC_CI_STOP_ASS_SUM_MAX]; /*列车停车保证进路ID*/
UINT32 szTrainStopRouteCyc[IVOC_CI_STOP_ASS_SUM_MAX];
UINT8 chResourcesCancelNum; /*列车资源取消(允许进路数量)*/
UINT16 szResourcesCancelRouteId[IV0C_CI_RESOURCE_CANCEL_SUM_MAX]; /*列车取消资源进路ID*/
UINT32 szResourcesCancelRouteCyc[IV0C_CI_RESOURCE_CANCEL_SUM_MAX];
UINT8 cAllowUnlockOverlapNum; /*列车允许解锁保护区段的数量*/
UINT16 szAllowUnlockOverlapId[IVOC_CI_UNLOCK_OVERLAP_SUM]; /*列车允许解锁保护区段的ID*/
UINT32 szAllowUnlockOverlapStartCyc[IVOC_CI_UNLOCK_OVERLAP_SUM]; /*列车允许解锁保护区段的起始周期号*/
UINT8 cAllowCloseFloodGateNum; /*列车允许关闭的防淹门数量*/
UINT16 szAllowCloseFloodGateId[IVOC_CI_FLOODGATE_CLOSE_ALLOW_SUM]; /*列车允许关闭的防淹门ID*/
UINT32 szAllowCloseFloodGateCyc[IVOC_CI_FLOODGATE_CLOSE_ALLOW_SUM]; /*防淹门关闭请求周期号*/
UINT8 cAllowCloseGarageGateNum; /*列车允许关闭的车库门数量*/
UINT16 szAllowCloseGarageGateId[IVOC_CI_FLOODGATE_CLOSE_ALLOW_SUM]; /*列车允许关闭的车库门ID*/
UINT32 szAllowCloseGarageGateCyc[IVOC_CI_FLOODGATE_CLOSE_ALLOW_SUM]; /*车库门关闭请求周期号*/
UINT8 chTrainWakeState; /*列车唤醒状态*/
UINT8 chTrainReportState; /*列车汇报湿轨报警信息 无需新增二乘*/
UINT8 chEaNum; /* 区间疏散数量 */
IvocToCiEaDataStru stEaInfo[IVOC_CI_EA_MAX]; /* 区间疏散信息 */
UINT16 wGroupOtherTrainId; /* 编组另一列车ID*/
UINT8 chGroupRunState; /* 编组列车状态 1非编组2编组建立3编组运行4编组折返5编组解耦*/
UINT8 chGroupTrainReat; /* 编组前后车关系 0x55本车为编组前车 0xaa本车编组后车 0x5a非编组*/
UINT16 wIvocCmdNum; /*IVOC 命令数量*/
IvocCmdStru stCmdInfo[IVOC_CI_CMD_MAX]; /*IVOC 命令信息*/
UINT32 dwDelayTime; /*消息延迟时间*/
UINT8 chLogOutState; /*注销申请状态*/
UINT8 chActive; /*当前激活端*/
UINT8 chRrmReq; /*远程RM申请*/
UINT16 wNextStation; /*下一站*/
UINT8 chDerailment; /*脱轨状态*/
UINT8 chVideoQkState; /*视频清客状态*/
UINT8 chVideoQkResult; /*视频清客结果*/
UINT16 wVideoQkRelatePsdId1; /*视频清客关联屏蔽门ID1*/
UINT16 wVideoQkRelatePsdId2; /*视频清客关联屏蔽门ID2*/
UINT16 wHeadAxisId; /*前方计轴编号*/
UINT8 wHeadITEResult; /*前方ITE识别结果 0x55:无列车 0xaa:有列车*/
UINT16 wTailAxisId; /*后方计轴编号*/
UINT8 wTailITEResult; /*后方ITE识别结果 0x55:无列车 0xaa:有列车*/
UINT8 chNvramPosFlag; /*NVNAM位置标识 0x55:列车使用NVRAM位置 0xaa:列车未使用NVRAM位置*/
UINT16 wHeadSigId; /*前方信号机ID*/
UINT16 wHeadVobcId; /*前车ID*/
UINT8 chJumpBackApply; /*向后跳跃申请*/
UINT32 dwJumpBackSn; /*向后跳跃申请序列号*/
UINT8 controlMode; /*控车模式*/
} VobcToCiDataStruct;
/*在RC模式下,统一使用IvocToRcDataStruct*/
typedef VobcToCiDataStruct IvocToRcDataStruct;
/*使用后备模式与联锁通信的Vobc信息*/
typedef struct S_VobcBackUpToCiDataStruct
{
UINT16 VobcId; /*Vobc ID*/
UINT8 chTrainLevel; /*列车运行级别 连续式510/CBTC: 0x01; ITC: 0x02; 联锁510/IL模式: 0x03; ABL模式 :0x04;*/
UINT8 trainDirection; /*列车运行方向*/
UINT16 appInfoType; /*应用信息类型*/
UINT16 vobcLogId; /*互联互通4IP VOBC1端或2端标识*/
UINT32 ComStartCycle; /*与VOBC后备模式通信周期,使用该周期做VOBC通信中断判断*/
UINT16 wNextStation; /*前方站台ID*/
UINT16 wTrainMaxSafeHeadLink; /*列车最大安全前端所处Link*/
UINT32 dwTrainMaxSafeHeadOffset; /*列车最大安全前端偏移量*/
UINT16 wTrainMinSafeTailLink; /*列车最小安全后端所处link*/
UINT32 dwTrainMinSafeTailOffset; /*列车最小安全后端偏移量*/
/*列车控制PSD相关*/
UINT8 psdCmdCode; /*站台开门码*/
UINT8 PsdSum; /*屏蔽门数量 取值012*/
VobcBackUpToCiPsdDataStruct PsdData[VOBC_BACKUP_TO_CI_TRAIN_PSD_MAX]; /*关联屏蔽门数据*/
UINT16 wTrainHeadCurSignalId; /*列车前方当前信号机*/
UINT16 wTrainHeadTrainId; /*列车前车ID*/
UINT8 chNvramPosFlag; /*NVRAM位置标识*/
UINT8 chStopSteadyState; /*停准停稳标志*/
UINT32 stopSteadyStartCycNum; /*停准停稳标志设置周期*/
UINT32 trackSecID; /*停准停稳轨道区段*/
} VobcBackUpToCiDataStruct;
/*与RC通信的Vobc信息,车车模式下,与RC通信的VOBC*/
typedef struct S_IvocToRcDataStruct
{
UINT16 VobcId; /*Vobc ID*/
UINT16 VobcType; /*列车类型:0x14 510车,0x10 车车的车,本结构体仅在RC模式存510车*/
UINT8 controlMode; /*控车模式*/
UINT8 trainDirection; /*列车运行方向*/
UINT8 chTrainLevel; /*列车运行级别 0x01:连续式列车控制级别(CBTC级别);0x02:点式列车控制级别(ITC级别);0x03:联锁控制级别(IL级别);0x04:自主感知后备控制级别(ABL级别);其他:非法。*/
UINT8 chTrainMode; /*列车模式,0x01AM0x02CM0x03RM0x04EUM(预留);0x05FAM(预留);0x06:CAM(预留);其他:非法。*/
UINT16 appInfoType; /*应用信息类型*/
UINT16 vobcLogId; /*互联互通4IP VOBC1端或2端标识*/
UINT32 ComStartCycle; /*与VOBC通信周期,使用该周期做VOBC通信中断判断*/
UINT16 wTrainMaxSafeHeadLink; /*列车最大安全前端所处Link*/
UINT32 dwTrainMaxSafeHeadOffset; /*列车最大安全前端偏移量*/
UINT16 wTrainMinSafeHeadLink; /*列车最小安全前端所处link*/
UINT32 dwTrainMinSafeHeadOffset; /*列车最小安全前端偏移量*/
UINT16 wTrainMaxSafeTailLink; /*列车最大安全后端所处Link*/
UINT32 dwTrainMaxSafeTailOffset; /*列车最大安全后端偏移量*/
UINT16 wTrainMinSafeTailLink; /*列车最小安全后端所处link*/
UINT32 dwTrainMinSafeTailOffset; /*列车最小安全后端偏移量*/
UINT16 wTrainLen; /*列车车长*/
UINT16 wTrainSpeed; /*列车速度*/
UINT8 chSpeedDir; /*列车速度方向*/
} VobcToRcDataStruct;
#endif
extern VobcToCiDataStruct VobcToCiDataStru[VOBC_TO_CI_SUM_MAX];
extern VobcBackUpToCiDataStruct VobcBackUpToCiDataStru[VOBC_BACKUP_TO_CI_SUM_MAX];
extern UINT8 VobcToCiSum;
extern VobcToRcDataStruct VobcToRcDataStru[VOBC_TO_CI_SUM_MAX];/*与RC通信的VOBC信息。本变量在CI模式下不使用。在RC模式下,仅存储与RC通信的510车的信息,记得二乘同步!!!!!!!!!*/
extern UINT8 VobcToRcSum;/*与RC通信的Vobc数目,仅RC模式下使用,记录与RC通信的VOBC车数量,2乘记得同步*/
/*
* 功能描述: 解析处理VOBC单帧数据
* 参数说明: const UINT8* dataBuf, 数据缓冲区
* const UINT16 dataLength, 数据长度
* const UINT8 systemId, 源设备ID
* const UINT16 logId,互联互通4IP VOBC的1端或2端标识
* 返回值 0: 数据解析失败
* 1: 数据解析成功
*/
UINT8 ParseVobcToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength, const UINT8 systemId,const UINT16 logId);
/*
* 功能描述: 解析处理VOBC备用通道单帧数据
* 参数说明: const UINT8* dataBuf, 数据缓冲区
* const UINT16 dataLength, 数据长度
* const UINT8 systemId, 源设备ID
* const UINT16 logId,互联互通4IP VOBC的1端或2端标识
* 返回值 0: 数据解析失败
* 1: 数据解析成功
*/
UINT8 ParseVobcBackUpToCiDataFrame(const UINT8* dataBuf, const UINT16 dataLength, const UINT8 systemId, const UINT16 logId);
/*
* 功能描述: 组VOBC数据
* 参数说明:
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 PackVobcData(void);
/*
* 功能描述: 组VOBC后备通道数据
* 参数说明: void
* 返回值 CI_ERROR失败 CI_SUCCESS成功
*/
UINT8 PackCiToVobcBackUpData(void);
/*
* 功能描述: 获取VOBC到CI命令结构体数组
* 参数说明: void
* 返回值 : NULL: 获取失败
* !NULL: VOBC到CI命令结构体数组指针
*/
VobcToCiDataStruct* GetVobcToCiDataStru(void);
/*
* 功能描述: 获取VOBC到CI命令结构体数组总数
* 参数说明: void
* 返回值 数组总数
*/
UINT8 GetVobcToCiSum(void);
/*
* 功能描述: 获取屏蔽门编组信息
* 参数说明: const UINT16 psdId :屏蔽门ID
* 返回值 01:四编组
* 02:六编组
* 08:八编组
* CI_ERROR: 不合法
*/
UINT8 GetPsdEditGroupInfo(const UINT16 psdId);
/*
* 功能描述: 根据索引获取Vobc id
* 参数说明: UINT16 idx:VOBC发送给CI的信息结构体数组的位置索引
* 返回值 0:失败
* 其它值:VobcId
*/
UINT16 GetVobcIdByIndex(UINT16 index);
/*
* 功能描述: 根据索引获取Vobc 编组信息
* 参数说明: UINT16 idx:VOBC发送给CI的信息结构体数组的位置索引
* 返回值 0:失败
* 其它值:VobcId
*/
UINT8 GetVobcEditGroupInfoByIndex(UINT16 index);
/*
* 功能描述: 组(FAO+HLHT)VOBC数据
* 参数说明: QueueStruct* CiToVobcDataQueue, 组包发送队列地址
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 PackCiToVobcDataFAOHLHToneSelf(VobcToCiDataStruct* vobcToCiDataStru);
/*
* 功能描述: 组(FAO+HLHT)VOBC数据(去除自动洗车和站台控制信息)
* 参数说明: QueueStruct* CiToVobcDataQueue, 组包发送队列地址
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 PackCiToVobcDataFAOHLHToneSelfSecond(VobcToCiDataStruct* vobcToCiDataStru);
/*
* 功能描述: 列车编组信息防护检查
* 参数说明:UINT8 trainEditGroupInfo, 列车编组信息
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 ChecktrainEditGroupInfo(UINT8 trainEditGroupInfo, OUT UINT8 EditGroupinfo_out);
/*
* 功能描述: 列车洗车请求防护检查
* 参数说明:UINT8 trainEditGroupInfo, 列车编组信息
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 CheckwashTrainRequest(UINT8 washTrainRequest, OUT UINT8 washTrainRequest_out);
/*
* 功能描述: 头端洗位停稳信息防护检查
* 参数说明:UINT8 trainEditGroupInfo, 列车编组信息
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 CheckheadWashStopSteady(UINT8 headwashStop, OUT UINT8 headwashStop_out);
/*
* 功能描述: 尾端洗位停稳信息
* 参数说明:UINT8 trainEditGroupInfo,尾端洗位停稳信息
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 ChecktailWashStopSteady(UINT8 tailwashStop, OUT UINT8 tailwashStop_out);
/*
* 功能描述: 通过洗车机请求防护检查
* 参数说明:UINT8 trainEditGroupInfo, 通过洗车机请求
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 CheckpassWashMachine(UINT8 passWashMachine, OUT UINT8 passWashMachine_out);
/*
* 功能描述: 校验防护区域和列车包络是否有重合
* 参数说明: UINT16 wFloodGateId, 防淹门ID
* UINT16 wTrainId, 列车ID
* 返回值 : CI_ERROR 失败,包络和防护区域无重叠,发实际状态
* CI_SUCCESS 成功,包络和防护区域有重叠,发无关门请求
*/
UINT8 CheckProtectEnvelope(UINT16 wFloodGateId, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到Ivoc备用通道逻辑区段信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpLogSecInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到Ivoc备用通道进路信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpRouteInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到Ivoc备用通道折返逻辑区段信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpReturnLogInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到Ivoc备用通道屏蔽门状态信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpPsdInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到IvocSpks备用通道状态信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpSpksInfo(UINT8* pDataBuf, UINT16* wDataLength);
/*
* 功能描述: 组包Ci到Ivoc备用通道紧急按钮状态信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpEsbInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到Ivoc备用通道道岔状态信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpSwitchInfo(UINT8* pDataBuf, UINT16* wDataLength);
/*
* 功能描述: 组包Ci到Ivoc备用通道保护区段状态信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpProtectLgcInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到Ivoc临时限速状态信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返回值 CI_ERROR 失败Spks
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpTsrInfo(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 组包Ci到Ivoc状态确认信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* 返回值 CI_ERROR 失败Spks
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpReqStateInfo(UINT8* pDataBuf, UINT16* wDataLength);
/*
* 功能描述: 组包Ci到IvoC防淹门状态信息
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* 返回值 CI_ERROR 失败Spks
* CI_SUCCESS 成功
*/
static UINT8 PackCiToIvocBackUpFloodInfo(UINT8* pDataBuf, UINT16* wDataLength);
/*
* 功能描述: 组包Ci到Ivoc前车信息
* 参数说明: const UINT8* dataBuf, 数据缓冲区
* const UINT16 *dataLength, 数据长度 输出参数
* const UINT16 wTrnId VOBC ID
* 返回值 CI_ERROR 失败
* CI_SUCCESS 成功
* by cgh 20240606
*/
static UINT8 PackCiToIvocHeadTrainInfo(UINT8* pDataBuf, UINT16* wDataLength, const UINT16 wTrnId);
/*
* 功能描述: 解析FAOHLHT其他报文类型数据
* 参数说明: const UINT8* dataBuf, 数据缓冲区
* const UINT16 dataLength, 数据长度
* const UINT8 systemId, 源设备ID
* VobcToCiDataStruct* vobcToCiDataStru VOBC到CI结构体数据
* 返回值 0: 数据解析失败
* 1: 数据解析成功
* BY CGH 20240606
*/
UINT8 ParseFAOHLHTOtherTypeData(const UINT16 appInfoType, UINT8* dataBuf, UINT16 dataLen, const UINT8 systemId, VobcToCiDataStruct* vobcToCiDataStru);
/*
* 功能描述: 解析FAOHLHT后备运行控制信息数据
* 参数说明: const UINT8* dataBuf, 数据缓冲区
* const UINT16 dataLength, 数据长度
* VobcToCiDataStruct* vobcToCiDataStru VOBC到CI结构体数据
* 返回值 0: 数据解析失败
* 1: 数据解析成功
* BY CGH 20240606
*/
UINT8 ParseFAOHLHTBackUpControlData(UINT8* dataBuf, UINT16 dataLen, VobcToCiDataStruct* vobcToCiDataStru);
/*
* 功能描述: 组联锁到车载飞车宕机数据
* 参数说明: 无
* 返回值
* by cgh 20250630
*/
void PackCiToVobcFlyProtectData(void);
/*
* 功能描述:组包Ci到Ivoc的向后跳跃申请回复
* 参数说明: UINT8* dataBuf, 数据缓冲区
* UINT16 *dataLength, 数据长度 输出参数
* UINT16 wTrainId 列车ID
* 返 回 值:CI_ERROR 0 失败
* CI_SUCCESS 1 成功
* Create fan 20250725
*/
UINT8 PackCiToIvocJumpBackReply(UINT8* pDataBuf, UINT16* wDataLength, UINT16 wTrainId);
/*
* 功能描述: 解析处理VOBC单帧数据
* 参数说明: const UINT8* dataBuf, 数据缓冲区
* const UINT16 dataLength, 数据长度
* const UINT8 systemId, 源设备ID
* const UINT16 logId,互联互通4IP VOBC的1端或2端标识
* 返回值 0: 数据解析失败
* 1: 数据解析成功
*/
UINT8 ParseVobcToRcDataCC(const UINT8* dataBuf, const UINT16 dataLength, const UINT8 systemId, const UINT16 logId);
/*
* 功能描述: RC模式组VOBC数据
* 参数说明: void
* 返回值 0:组数据失败
* 1:组数据成功
*/
UINT8 PackRcToVobcData(void);
/*
* 功能描述: 获取VOBC到Rc命令结构体数组总数
* 参数说明: void
* 返回值 数组总数
*/
UINT8 GetVobcToRcSum(void);
/*
* 功能描述: 解析处理Ivoc单帧数据
* 参数说明: const UINT8* dataBuf, 数据缓冲区
* const UINT16 dataLength, 数据长度
* const UINT8 systemId, 源设备ID
* const UINT16 logId,互联互通4IP VOBC的1端或2端标识
* 返回值 0: 数据解析失败
* 1: 数据解析成功
*/
UINT8 ParseIvocToRcDataFrame(const UINT8* dataBuf, const UINT16 dataLength, const UINT8 systemId, const UINT16 logId);
/*
* 功能描述: 获取Ivoc到RC命令结构体数组总数
* 参数说明: void
* 返回值 数组总数
*/
UINT8 GetIvocToRcSum(void);
/*
* 功能描述: 获取收到的列车主控状态
* 参数说明:const UINT16 wVobcId 列车ID
*
* 返回值 0:获取失败
* 0x55 主控
* 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
#endif