#ifndef OCC_UNLOCK_NET_MESSAGE_DEFINE_HEADER_FILE #define OCC_UNLOCK_NET_MESSAGE_DEFINE_HEADER_FILE #include "CATSCommandDefine.h" #include "CATSDeviceStateDefine.h" #include "OCC_FaultDefine_Header.h" #include "CTC_FaultDefine_Header.h" #include "OCC_AlarmDefine_Header.h" #include "CTC_AlarmDefine_Header.h" #include "SignalSystem_PublicDefine.h" #define LENGTH 25 #define LENGTH_TYPEA 24 //满足8字节对齐方式 //////////////////////////////道岔相关//////////////////////////////////////////// typedef struct tgRoadBranchState_Updata :public tgBaseNetPacket { int RoadBranchID; int UpdataType; //位置状态 int position; //道岔位置 int RequestPosition; //道岔位置请求 //锁闭状态 int LockState; //道岔锁闭状态 int RequestLockState; //道岔请求的锁闭状态 //单锁状态 int SingleLockState; //道岔单锁状态 int RequestSingleLockState; //道岔请求单锁状态 //使能状态 int EnableState; //道岔使能状态 //进路状态 int RouteState; //道岔进路状态 //故障状态 int FaultState; //道岔故障状态 }ROADBRANCHSTATE,*LPROADBRANCHSTATE; //道岔附加状态更新(主要是为了使连锁与主控,教员等系统通用接口不变) typedef struct tgRoadBranch_ExStateUpdata: public tgBaseNetPacket { int RoadBranchID; int UpdataType; //封锁状态 int BlockageState; //请求位置 int RequestPos; //逻辑锁闭状态 int LogicLockState; //计轴预复位状态 int nAxleCountPreResetS; //NOTE:之前计轴复位nAxleCountReset //道岔定位失表状态 int nNormalLoseShowStatus; //道岔反位失表状态 int nReverseLoseShowStatus; }RoadBranch_ExState,*LPRoadBranch_ExState; //////////////////////////////////信号机相关//////////////////////////////////////// typedef struct tgSignalState_Updata : public tgBaseNetPacket { int SignalID; int UpdataType; //进路状态 int RouteState; //信号机进路状态 int startflag; //信号机始端标志 int ncloseflag; //信号机开放时颜色,1为信号机关闭 int AutoSignalFlag; //自动信号标志 int PilotSignalFlag; //引导信号标志 int timeflag; //延时解锁标志 int CurrentRouteColor; //当前进路中的颜色(CBTC中使用 int FleetingSignalFlag; //fleeting 进路标志 //使能状态 int EnableState; //信号机使能状态 //封锁状态 int SingleLockState; //信号机封锁状态 //故障状态 int FaultState; //信号机故障状态 }SIGNALSTATE,*LPSIGNALSTATE; //信号机附加状态更新(主要是为了使连锁与主控,教员等系统通用接口不变) typedef struct tgSignal_ExStateUpdata: public tgBaseNetPacket { int SignalID; int UpdataType; int ApproachOccupyState; //接近区段占用状态 int nTrainBtnBlockFlag; //列车按钮加封状态(1:是 0:否)BtnBlockFlag int SigColor_TrackCode; //轨道电路发码时采用的信号机颜色 int nInt_Para[10]; //0:保护区段标记 1:信号等级 2:折返位置 3:人工关闭信号 int nDispatchBtnBlockFlag; //调车按钮加封状态(1:是 0:否) int nPolitBtnBlockFlag; //引导按钮加封状态(1:是 0:否) int nPassBtnBlockFlag; //通过按钮加封状态(1:是 0:否) }Signal_ExState,*LPSignal_ExState; //信号机更新结构3 typedef struct tgSignal_Update3: public tgBaseNetPacket { int nSignalID; int nIntPara[20]; //0:信号机状态未知,1:规程化临时限速 其他:预留 float fFloat[20]; }SIGNAL_UPDATE3,*LPSIGNAL_UPDATE3; /////////////////////////////////轨道相关///////////////////////////////////////// typedef struct tgTrackState_Updata : public tgBaseNetPacket { int TrackID; int UpdataType; //锁闭状态 int LockState; //轨道锁闭状态 int LockDirect; //锁闭方向 int IsProtectSec; //是否为保护区段 int IsPreOperate; //是否为预排状态 //进路状态 int RouteState; //轨道进路状态 //封锁状态 int SingleLockState; //轨道封锁状态 //故障状态 int FaultState; //轨道故障状态 //占用状态 int OccupyState; //轨道占用状态 //带电状态 int PowerState; //轨道带电状态 //逻辑占用状态 int nLogicOccupyStatus; //逻辑占用状态 //故障锁闭标识 int nFaultLockFlag; //故障锁闭标识 //使能标志 added by zhangjiahua int nEnable; //使能标志 //计轴预复位 int nAxleCountResetStatus; //计轴预复位 //轨道漏解锁 add by fuwei 2021/11/29 int nTrackNoUnclock; //列车占用丢失状态 int nTrainOccupyLostStatus; //防溜状态 int nAntiRunningStatus; //防溜状态 //折返进路征用 int nInTurnBackRoute; //折返进路【征用】标记 //锁闭类型【调车/列车】 int nLockType; //分路不良故障 int nFLBLFault; //折返标记 int nTurnBackR_ShowFlag; //折返进路【显示】标记 }TRACKSTATE,*LPTRACKSTATE; //轨道电路更新结果3 typedef struct tgTrack_Update3 : public tgBaseNetPacket { int nTrackID; int nSrcSysType; //行调更新的状态 int nIntPara1[20]; //0:轨道NCO状态 float fFloatPara1[20]; //0:临时限速值 //联锁更新的状态 int nIntPara2[20]; //0:预留进路标记 1:禁止进路标记 2:取消过岔锁闭 float fFloatPara2[20]; }TRACK_UPDATE3,*LPTRACK_UPDATE3; //轨道电路更新结果4【主要应用市域铁路】 typedef struct tgTrack_Update4 : public tgBaseNetPacket { int nTrackID; //轨道-编号 int nTSkipStop; //轨道-跳停状态 int nTHoldTrain; //轨道-扣车状态 int nIntS[20]; //预留参数-Int float fFloatS[20]; //预留参数-Float }TRACK_UPDATE4, * LPTRACK_UPDATE4; /////////////////////////////////信标相关///////////////////////////////////////// typedef struct tgInfoSignUpdata :public tgBaseNetPacket { int ID; //信标编号 int EndSignalID; //进路终端信号机编号 int StartSignalColor; //进路始端信号机颜色 int intdata1; //关联进路号 int intdata2; int intdata3; int intdata4; int intdata5; int intdata6; int intdata7; int intdata8; int intdata9; int intdata10; int intdata11; int intdata12; //应答器是否故障 0正常 1;故障 float floatdata1; float floatdata2; float floatdata3; float floatdata4; float floatdata5; float floatdata6; float floatdata7; }INFOSIGNUPDATA,*LPINFOSIGNUPDATA; /////////////////////////////////站台相关///////////////////////////////////////// typedef struct tgPlatFormUpdata :public tgBaseNetPacket { int PlatFormID; //站台编号 int UpdataType; //更新状态 int TrainDoorState; //车门状态 int HoldTrainState; //扣车状态(中心调度) int SkipStopState; int StopTime; //停站时间(人工设置的停止时间) int ClearPassengerState; //站台清客状态(1:设置了站台清客,0:没有设置站台清客) int EnableAutoHoldTrain; //区间自动扣车使能(1:使能,0:未使能) int EmergencyStopState; //紧急停车状态 int StaHoldTrainState; //车站扣车状态 int SKipStopTrainGroup; //调停是指定的车组号(-1为没有指定车组号) int nStopTrainLaterTime; //停站列车晚点时间 int nHoldTrainDir; //扣车方向 int nRealStopTime; //实际的停站时间 int nAdvanceSendTrainStatus; //提前发车状态 int nTrainDoorCtrlMode; //车门控制模式 int nRunLevel; //运行等级 int nSysHoldTrainStatus; //系统扣车状态 int nStopTimeMin; //最小停站时间 int nStopTimeMax; //最大停站时间 int nStopTimeCur; //当前停站时间 int nStopTimeRule; //额定停站时间 int nJumpingTrainID; //正在跳停本站台列车ID int nWillInDepotTrainID; //将要通过本站台入库列车ID int nWillOutDepotTrainID; //将要通过本站台出库列车ID }PLATFORMUPDATA,*LPPLATFORMUPDATA; //定义:国铁站台数据更新 typedef struct tgPlatFormUpdate_HSR :public tgBaseNetPacket { int nPlatFormID; //站台编号 int nEmerStopS; //紧急关闭 }PLATFORMUPDATE_HSR,*LPPLATFORMUPDATE_HSR; /////////////////////////////////屏蔽门相关///////////////////////////////////////// typedef struct tgScreenDoorUpdata :public tgBaseNetPacket { int PsdID; //屏蔽门编号 int ScreenDoorState; //屏蔽门状态 int CutFlag; //屏蔽门切除标记(1:切除,0:未切除) int nFaultStatus; //故障状态 int PSDColseFlag; //屏蔽门关闭操作标志 }SCREENDOORUPDATA,*LPSCREENDOORUPDATA; //定义:国铁屏蔽门数据更新 typedef struct tgScreenDoorUpdate_HSR : public tgBaseNetPacket { int nPSD_ID; //屏蔽门编号 int nStaID; //车站号 int nRoadID; //线路号 int nLAndRDir; //左右侧【1:左侧 2:右侧】 int nSwitchS_ALL; //开关-整体 int nAlarmS_ALL; //故障-整体 int nLinkAgeSig; //联动-信号 int nSwitchS_One[80]; //开关-单个 }SCREENDOORUPDATE_HSR,*LPSCREENDOORUPDATE_HSR; //客户端向联锁发送命令 typedef struct tgCommandtoLS :public tgBaseNetPacket { int type; //命令类型 int ObjectID; //命令对象编号 int data1; //参数1 int data2; //命令所属车站编号 int data3; //参数2 int data4; //系统网络ID int data5; int OperRole; //操作员角色(0:调度,1:车站) char charPara[LENGTH]; int Ex_ParaCount; //附加参数个数 int Ex_Para1[20]; //附加参数1 int Ex_Para2[20]; //附加参数2 int Ex_Data[10]; //附加的数据(0:考试题ID) }COMMANDTOLS,*LPCOMMANDTOLS; //客户端向行调发送命令 typedef struct tgCommandtoXD :public tgBaseNetPacket { int type; //命令类型 int ObjectID; //命令对象编号 int data1; int data2; //命令所属车站编号 int data3; int data4; int data5; int OperRole; //操作员角色(0:调度,1:车站) char charPara[LENGTH]; int Ex_ParaCount; //附加参数个数 int Ex_Para1[20]; //附加参数1 int Ex_Para2[20]; //附加参数2 int Ex_Data[10]; //附加的数据(0:考试题ID) }COMMANDTOXD,*LPCOMMANDTOXD; //联锁返回命令执行状态 typedef struct tgCmdExcuteState :public tgBaseNetPacket { int type; //命令类型 int objectid; //命令对象编号 int result; //命令执行结果(1:成功,0:失败) int station; //命令所属车站 int descriptionid; //命令执行情况描述,描述内容见数据库 int para1; //保留 int data1; //与命令中的同步 int data2; int data3; int data4; int data5; int Ex_Para[10]; int nOperSysID; //操作的系统号 }CMDEXCUTESTATE,*LPCMDEXCUTESTATE; //列车报点信息 typedef struct tgTrainRecordTimeInfoUpdata :public tgBaseNetPacket { int TrainID; //列车ID int realleavetimeofpre; //实际离开时间(上一站) int realarrivetimeofpre; //实际到达时间(上一站) int CurStation; //当前车站 int NextStation; //下一站 int PreStation; //上一站 int planleavetimeOfcur; //计划离开时间(当前车站) int planarrivetimeofcur; //计划到达时间(当前车站) int realleavetimeofcur; //实际离开时间(当前车站) int realarrivetimeofcur; //实际到达时间(当前车站) int planleavetimeOfnext; //计划离开时间(下一站) int planarrivetimeofnext; //计划到达时间(下一站) int TrackID; //进站轨道ID char TrainNum[LENGTH]; //列车车次 int nPassStaIndex; int nTrainNumID; //车次(全局)编号 }RECORDTIMEINFOUPDATA,*LPRECORDTIMEINFOUPDATA; //调度命令 typedef struct tgNetDispatchCmd:public tgBaseNetPacket { int type; //下达、签收、回执 int subtype; //调度命令类型 int StaID; //车站编号【下达:-1,签收:车站号】 char DisCmdID[LENGTH]; //调度命令号 char RecPer[LENGTH]; //下达/签收人员 int nDisCmdTemplateID; //调度命令模板号【20240718:Add】 int nSysID; //下达/签收系统 【系统号】 int nTime; //下达/签收时间 【单位:s】 int nDate; //下达/签收日期 【格式:20240902】 int nLineID; //运营线路编号 【20241008:Add】 }NetDisptachCmd,*LPNetDisptachCmd; typedef struct tgNetLimitSpeedCmd:public tgBaseNetPacket { char DispatchCmdID[LENGTH_TYPEA]; int cmdtype; //限速数据转发、校验、执行、拟定 int limitspeedtype; //限速类型(正线限速、侧线限速) int limitvalue; //限速值 float startmeterflag; //开始公里标 float endmeterflag; //结束公里标 int direct; //方向 int roadtype; //线路类型(1:客线,2:货线) int staid; //车站 char TrackName[LENGTH_TYPEA];//股道名称 char Reason[LENGTH_TYPEA]; //限速原因 int starttime; //开始时间(立即执行:-1) int endtime; //结束时间(持久有效:-1) int status; //-1:请求;0:执行失败;1:执行成功 int nParam1; // 预留(设置道岔限速时为:道岔编号) int nParam2; // 预留【系统号-需要处理此命令】 int nParam3; // 预留 int nParam4; // 预留 //char RetMsg[100]; // 校验结果 }NetLimitSpeedCmd,*LPNetLimitSpeedCmd; //计划进路操作命令 typedef struct tgPlanRoute_OperateCmd:public tgBaseNetPacket { char TrainNum[LENGTH]; //车次 int StaID; //车站 int RouteType; //进路类型(接车、发车、通过) int OperType; //操作类型(执行进路、删除进路、进路人工控制、进路自动控制、修改进路,更新进路状态、更新进路控制状态) int Para; //参数(服务器更新状态,传递状态值) int Para1; //预留 int Para2; //预留 int Para3; //预留 int Para4; //预留 int nTrainNumID; //车次(全局)编号 }PlanRoute_OperateCmd,*LPPlanRoute_OperateCmd; //计划进路状态更新 typedef struct tgPlan_Route_Update:public tgBaseNetPacket { char TrainNum[LENGTH]; //车次号 int nID; //生成序号 int nTrainNumID; //车次号ID int nStaID; //关联车站 int nRouteID; //关联进路号 int nPlanTime; //计划时间 int nTouchTime; //触发时间 int nTrackID; //停车股道 int nRouteType; //计划进路类型 int nTouchWay; //触发方式 int nRouteStatus; //进路状态 int nTrackSecID; //关联区间 int nImportSigID; //关联入口编号 int nExportSigID; //关联出口编号 int nRouteSubIndex; //子进路索引 }PLAN_ROUTE_UPDATE,*LPPLAN_ROUTE_UPDATE; //集中站设备状态更新 typedef struct tgCenStaExState_Updata : public tgBaseNetPacket { int CenStaID; int UpdataType; int allowdir_Up; //上行允许改方 int allowdir_down; //下行允许改方 int allowup_count; //上行允许改方计数 int allowdown_count; //下行允许改方计数 int TurnBackMode; //车站折返模式 }CenSta_ExState,*LPCenSta_ExState; //更新线路段状态 typedef struct tgLineSecStateUpdate:public tgBaseNetPacket { int segid; int UpdateType; int Seg_FenluBuLiang; //分路不良状态 int nLockStatus; //锁闭状态 int nBlockStatus; //封锁状态 int nTraceStatus; //跟踪状态 int nLogicOccupyStatus; //逻辑占用状态 int nAxleCountPreResetS; //计轴预复位状态【之前:nAxleCountResetStatus】 int nCurrenRouteType; //当前进路类型(专门针对合肥地铁添加的类型)(CZZ 20180322) int nPowerStatus; //带电状态 }LineSecStateUpdate,*LPLineSecStateUpdate; //更新轨道区间状态 typedef struct tgTrackSectionState:public tgBaseNetPacket { int sectionid; //轨道区段编号 int currundirect; //当前运行方向 int NormalSendRoute; //正想发车进路 int ReverseSendRoute; //反向发车进路 int NormalRecRoute; //正向接车进路 int ReverseRecRoute; //反向接车进路 int Rec_AidBtn; //接车站-总辅助按钮 int Rec_RecAidBtn; //接车站-接车辅助按钮 int Rec_SendAidBtn; //接车站-发车辅助按钮 int Send_AidBtn; //发车站-总辅助按钮 int Send_RecAidBtn; //发车站-接车辅助按钮 int Send_SendAidBtn; //发车站-发车辅助按钮 int nSecBlockType; //区间闭塞类型 int nHalfAutoBlockStatus; //半自动闭塞状态(闭塞类型为半自动闭塞时有效) int nBothReciveFault; //双接故障 int nBothSendFault; //双发故障 int nBlockFault; //闭塞故障 int nChangeDirBtn; //改方按钮(1:按下,0:抬起) int nChangeIngBlockType; //正在切换闭塞 【闭塞类型: -1:无效】 int nAutoStaBlockStatus; //自动站间闭塞状态【自动站间闭塞时有效】 }TrackSectionState,*LPTrackSectionState; //更新调试信息 typedef struct tgUpdateDebugInfo:public tgBaseNetPacket { char StrDebugInfo[256]; }UpdateDubugInfo,*LPUpdateDubugInfo; //更新进路表示器 typedef struct tgRoute_Indicator :public tgBaseNetPacket { int ID; //编号 int status; //表示器状态 int Int_Para1; //预留 int Int_Para2; //预留 char Char_Para1[LENGTH]; //预留 char Char_Para2[LENGTH]; //预留 }ROUTE_INDICATOR,*LPROUTE_INDICATOR; //道口设备控制命令结构 typedef struct tgCrossRoadEqmptCmd :public tgBaseNetPacket { int nID; //设备编号 int nType; //设备类型 int nCtrlMode; //设备控制 int Int_Para[5]; //预留 }CROSSROAD_EQMPTCMD,*LPCROSSROAD_EQMPTCMD; //视景设备状态反馈接口 typedef struct tgViewEqmptStatusRespond :public tgBaseNetPacket { int nID; //设备编号 int nType; //设备类型 int nCurStatus; //设备当前状态 int Int_Para[5]; //预留 }VIEWEQMPT_STATUSRESPOND,*LPVIEWEQMPT_STATUSRESPOND; //进路中的线路段 typedef struct tgRouteStatus_Updata : public tgBaseNetPacket { int nDir; //进路方向 int nSegNum; //进路包含区段的个数 int nSegID[50]; //进路包含区段的编号 int nRouteID; //进路编号 int nStatus; //状态:1:预排,2:确认 }ROUTESTATUS_UPDATE,*LPROUTESTATUS_UPDATE; //OCC系统报警信息 typedef struct tgOCCSys_Alarm : public tgBaseNetPacket { int nType; //类型(1:设备类 2:系统类) int nAlarmItemID; //报警条目编号,与数据库中定义的报警内容匹配 int nIntPara[10]; //参数具体定义与注释在报警条目ID中 int nStaID; //报警车站 char cPara1[20]; char cPara2[20]; char cPara3[20]; char cPara4[20]; char cPara5[20]; }OCCSYS_ALARM,*LPOCCSYS_ALARM; //定义发送给视景、主控的消息结构体(CZZ 20170912) typedef struct TRAFFICSIGNALUPDATEDATA : public tgBaseNetPacket { int ID; int data_index[15]; //索引 int data_status[15]; //状态(状态列表见宏定义) int data_countdown[15]; //倒计时时间 }TRAFFICSIGNALUPDATEDATA; typedef struct tgFeedBack_RealSignalEqmptStatus : public tgBaseNetPacket { int nID; //设备编号 int nType; //设备类型 int nStatus; //设备状态 }FEEDBACK_REALEQMPTSTATUS,*LPFEEDBACK_REALEQMPTSTATUS; //更新线路区间信息add by lisx1108 typedef struct tgRoadSection:public tgBaseNetPacket { int nID; //编号 int nRunLevel; //运行等级 int nEffctFlag; //有效标志 int nCurSecTime; //区间运行时分 }ROADSECTION,*LPROADSECTION; //SPKS(区域封锁开关)状态更新 typedef struct tgSPKS_Status_Update :public tgBaseNetPacket { int nID; //编号 int nActiveStatus; //激活状态 int nByPassStatus; //旁路状态 }SPKS_STATUS_UPDATE, * LPSPKS_STATUS_UPDATE; //车库门状态更新 typedef struct tgGarageDoor_Status_Update :public tgBaseNetPacket { int nID; //编号 int nCtrlMode; //控制模式 int nSwitchStatus; //开关状态 int nFaultStatus; //故障状态 int nByPassStatus; //旁路状态 }GARAGEDOOR_STATUS_UPDATE, * LPGARAGEDOOR_STATUS_UPDATE; //定义:进路实时属性更新 typedef struct tgRoute_Property_Update :public tgBaseNetPacket { int nRouteID; int nIsCanBuilt; //是否-可以建立进路(-1:无效 0:不可以 1:可以) int nIsCanCancle; //是否-可以取消进路(-1:无效 0:不可以 1:可以) int nIsCanRelease; //是否-可以人解进路(-1:无效 0:不可以 1:可以) int nIsCanOpenAgain; //是否-可以信号重开(-1:无效 0:不可以 1:可以) }ROUTE_PROPERTY_UPDATE,*LPROUTE_PROPERTY_UPDATE; #endif