SimulateTrainNetMsgDefine.h 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938
  1. #ifndef OCC_SIMULATETRAIN_NET_MESSAGE_DEFINE_HEADER_FILE
  2. #define OCC_SIMULATETRAIN_NET_MESSAGE_DEFINE_HEADER_FILE
  3. //虚拟车/////////////////////////////////////////////////////////////////////////////
  4. #define SIMULATETRAIN_TRACK_Occupied 60001
  5. #define CMD_SIGNAL_CBTC_STOPTRAIN 6100 //停稳标志
  6. #define CMD_SIGNAL_CBTC_TURNBACKFLAG 6101 //折返标志
  7. #define CMD_SIGNAL_CBTC_OPENTRAINDOOR 6102 //开门标志
  8. #define CMD_SIGNAL_CBTC_EMER_STOP 6103 //紧急停车标志(修改紧急停车)
  9. //#define CMD_SIGNAL_CBTC_REAL_DATA 6103 //紧急停车标志
  10. #define SIGNAL_NUM 20
  11. #define NET_STATIONNUM 10
  12. #define STATIONTIMETABLEDATANUM 4 //时刻表对应内容个数
  13. #define STATIONPEPLEDATANUM 3 //车站人数控制内容个数
  14. #define SHIELDDOORNUM 96
  15. #define LIMITSPEEDTRACKNUMFORCLIENT 20
  16. #define TRAINBODDYMAXNUM 50
  17. #define MAINCONTROLROUTEINFONUM 100
  18. #define LevelCBTC 0 //CBTC列车
  19. #define LevelBM 1 //点式ATP列车
  20. #define LevelCBI 2 //联锁等级
  21. #define LevelNone 3 //级别未知
  22. #define Ctrl_RM 0
  23. #define Ctrl_EUM 1
  24. #define Ctrl_ATP 2
  25. #define Ctrl_ATB 3
  26. #define Ctrl_ATO 4
  27. #define Ctrl_None 5
  28. #define LENGTH_TYPEA 24 //满足8字节对齐方式
  29. //视景协同发送给行调的命令
  30. #define View_To_XD_Cmd_EmergencyStopButton 1 //站台紧急停车按钮按下或抬起:nIntPara[0]:区段号,nIntPara[1]:方向:1向右2向左nIntPara[2]:按下抬起状态(1:按下0:抬起)
  31. typedef struct tag_date
  32. {
  33. BYTE year; //只取后两位(如2013即为13)
  34. BYTE month;
  35. BYTE day;
  36. }CIRDATE, *LPCIRDATE;
  37. typedef struct tag_time
  38. {
  39. BYTE hour;
  40. BYTE minute;
  41. BYTE second;
  42. }CIRTIME, *LPCIRTIME;
  43. typedef struct tag_DATE_TIME
  44. {
  45. CIRDATE date;
  46. CIRTIME time;
  47. }DATE_TIME;
  48. enum REGIST_TYPE
  49. {
  50. REGISTER = 0, //注册
  51. CANCEL = 1 //注销
  52. };
  53. typedef struct tagCoursetoCIR : public tgBaseNetPacket
  54. {
  55. UCHAR szLineName[32]; //线路名称 ---- 根据线路读出来的,格式是: 京哈线 北京--哈尔滨
  56. UCHAR szTrainNo[7]; //车次号 ---- 教员给定车次号,用于自动注册
  57. UCHAR ucNeedRegist; //自动/手动注册车次号标识 --- 车次号注册分手动和自动,这里是主控里增加了一个配置项配置的,1--自动注册,0--手动注册
  58. int nTailNo; //列尾编号 --- 列尾编号用于机车,动车无列尾,增加一个配置项或者默认一个编号就行,一个6位整形数字
  59. UCHAR ucNetType; //网络制式0~100属于450M频率,101属于G网,102及以后属于800M频率 --- 网络制式是由线路决定,这里建议把这个作为线路数据中的一个设备看待,因为一条线路可能存在多种制式
  60. UCHAR ucReserve1; //预留1
  61. UCHAR ucReserve2; //预留2
  62. UCHAR ucReserve3; //预留23
  63. /*tagCoursetoCIR()
  64. {
  65. memset(this, 0, sizeof(tagCoursetoCIR));
  66. }*/
  67. }CoursetoCIR,*LPCoursetoCIR;
  68. //CIR注册车次号的结构
  69. typedef struct tagRegistTrainNo : public tgBaseNetPacket//CIR注册车次号的结构
  70. {
  71. BYTE regist; //注册或者注销 0注册 1注销
  72. BYTE type; //本务机 0x30
  73. char szTrainNo[7]; //车次号
  74. char szLocoNo[8]; //机车号
  75. BYTE erroecode; //错误代号
  76. /*tagRegistTrainNo()
  77. {
  78. memset(this, 0, sizeof(tagRegistTrainNo));
  79. }*/
  80. }RegistTrainNo,*LPRegistTrainNo;
  81. enum REGIST_RESULT //注册结果代码反馈
  82. {
  83. REGIST_SUCCESS = 0, //注册成功
  84. REGIST_SERVICE_INVALID = 1, //业务无效
  85. REGIST_FUNCTION_INVALID = 2, //功能号非法
  86. REGIST_FUNCTION_IN_USE = 3, //功能号已被其他用户注册
  87. REGIST_OTHER_FAILED = 4 //其他原因
  88. };
  89. //列车功能类型
  90. enum eTrainFuncType
  91. {
  92. eTrainFuncType_Real = 1, //真车
  93. eTrainFuncType_CoupleVT = 2, //联挂虚拟车
  94. eTrainFuncType_MeetingVT = 3, //会车虚拟车
  95. eTrainFuncType_CollisionVT = 4, //列车冲突虚拟车
  96. eTrainFuncType_Invalid = 0
  97. };
  98. //定义:调度命令回执
  99. typedef struct tag_CALLBACK_TRANS : public tgBaseNetPacket
  100. {
  101. BYTE code; //信息名称
  102. BYTE functionCode; //功能码信息名称
  103. DATE_TIME date_time; //BCD 码
  104. CHAR train_sn[7]; //车次号
  105. CHAR train_id[8]; //机车号
  106. BYTE commander_num; //发令处所编号
  107. CHAR tran_command_num[6]; //调度命令信息编号
  108. BYTE gong_li_biao[3]; //签收地点公里标
  109. BYTE gps_long[5]; //签收地点卫星定位系统经度
  110. BYTE gps_lat[4]; //签收地点卫星定位系统纬度
  111. BYTE unused[5]; //预留5个字节
  112. BYTE pg; //包号
  113. }CALLBACK_TRANS,*LPCALLBACK_TRANS;
  114. #define CIR_REGINFO_TYPE_TRAINNUM 0x01 //train number is available
  115. #define CIR_REGINFO_TYPE_TRAINID 0x02 //train ID is available
  116. #define CIR_REGINFO_TYPE_REGIN 0x00010000 //registrationoperation
  117. typedef struct tagPRAM_CIR_REGINFO_RSP : public tgBaseNetPacket
  118. {
  119. __int32 nFlags; //组合定义
  120. BYTE szTrainNum[16];
  121. BYTE szTrainID[48];
  122. }PRAM_CIR_REGINFO_RSP,*LPPRAM_CIR_REGINFO_RSP;
  123. typedef struct gMAXNETSTRUCT : public tgBaseNetPacket
  124. {
  125. char maxinfo[1000];
  126. bool operator ==(gMAXNETSTRUCT &other)
  127. {
  128. if(memcmp(maxinfo,other.maxinfo,1000) == 0)
  129. {
  130. return true;
  131. }
  132. return false;
  133. }
  134. }MAXNETSTRUCT,*LPMAXNETSTRUCT;
  135. typedef struct tag_cmd_data : public tgBaseNetPacket
  136. {
  137. BYTE cmdType;
  138. BYTE sendDate[3];
  139. BYTE createTime[3];
  140. BYTE sendTime[3];
  141. BYTE trainNum[7];
  142. BYTE trainID[8];
  143. BYTE cmdForm;
  144. BYTE cmdNum[6];
  145. BYTE dispatcher[8];
  146. BYTE cmdStatus;
  147. BYTE defdate[5];
  148. BYTE totalPack;
  149. BYTE packNum;
  150. CHAR buffer[900];
  151. /*tag_cmd_data()
  152. {
  153. memset(this, 0, sizeof(tag_cmd_data));
  154. }*/
  155. bool STR2BCD(CHAR *pASCII, CHAR *pBCD)
  156. {
  157. if (pASCII == NULL || pBCD == NULL) return false;
  158. size_t len = 0;
  159. size_t count = strlen(pASCII);
  160. for (size_t index = 0; index < count; ++index)
  161. {
  162. len = index >> 1;
  163. if (index % 2 == 0)
  164. pBCD[len] = (pASCII[index] << 4) & 0xF0;
  165. else
  166. pBCD[len] = pBCD[len] | (pASCII[index] & 0x0F);
  167. }
  168. return true;
  169. }
  170. void SetDateTime(CIRDATE date, CIRTIME time)
  171. {
  172. CHAR buffer[20] = { 0 };
  173. //sprintf_s(buffer, "%02d%02d%02d%02d%02d%02d%02d%02d%02d", date.year, date.month
  174. // , date.day, time.hour, time.minute, time.second, time.hour, time.minute, time.second);
  175. sprintf(buffer, "%02d%02d%02d%02d%02d%02d%02d%02d%02d", date.year, date.month
  176. , date.day, time.hour, time.minute, time.second, time.hour, time.minute, time.second);
  177. STR2BCD(buffer, (CHAR *)sendDate);
  178. }
  179. void SetTrainNum(const char *number)
  180. {
  181. memset(trainNum, 0x20, 7);
  182. for (int index = 0; index < 7; ++index)
  183. {
  184. if (number[index] == '\0')
  185. break;
  186. trainNum[index] = number[index];
  187. }
  188. }
  189. void SetTrainID(CHAR *id)
  190. {
  191. if (id == NULL || id[0] == 0x00) return;
  192. memcpy(trainID, id, 8);
  193. }
  194. void SetCMDNum(int cmdID)
  195. {
  196. CHAR buffer[7] = { 0 };
  197. //sprintf_s(buffer, "%06d", cmdID);
  198. sprintf(buffer, "%06d", cmdID);
  199. memcpy(cmdNum, buffer, 6);
  200. }
  201. void SetDispatcher(const char *name)
  202. {
  203. memset(dispatcher, 0x20, 8);
  204. size_t len = strlen(name);
  205. if (len > 6) len = 8;
  206. memcpy(dispatcher, name, len);
  207. }
  208. void SetPack(BYTE total, BYTE curPack)
  209. {
  210. totalPack = total;
  211. packNum = curPack;
  212. }
  213. void SetCmdContext(int type, unsigned char stationID, const char* station, char* context)
  214. {
  215. cmdType = type;
  216. cmdForm = stationID;
  217. std::string Str_CmdName = "";
  218. switch (cmdType)
  219. {
  220. case 0x01:
  221. Str_CmdName = "调度命令";
  222. break;
  223. case 0x02:
  224. Str_CmdName = "路票";
  225. break;
  226. case 0x03:
  227. Str_CmdName = "绿色许可证";
  228. break;
  229. case 0x04:
  230. Str_CmdName = "红色许可证";
  231. break;
  232. case 0x05:
  233. Str_CmdName = "出站调车跟踪通知书";
  234. break;
  235. case 0x07:
  236. Str_CmdName = "列车进路预告信息";
  237. break;
  238. case 0x11:
  239. Str_CmdName = "调车作业通知单";
  240. break;
  241. case 0x12:
  242. Str_CmdName = "调车请求确认";
  243. break;
  244. case 0x18:
  245. Str_CmdName = "其它信息";
  246. break;
  247. case 0x20:
  248. Str_CmdName = "出入库检测";
  249. break;
  250. default:
  251. Str_CmdName = "其它信息";
  252. break;
  253. }
  254. //sprintf_s(buffer, 900, "%s\r\n%s\r\n%s\r\n", Str_CmdName.c_str(), station, context);
  255. sprintf(buffer, "%s\r\n%s\r\n%s\r\n", Str_CmdName.c_str(), station, context);
  256. }
  257. int GetValidLen()
  258. {
  259. size_t len = strlen((CHAR *)buffer);
  260. if (len > 900) len = 900;
  261. return (int)(48 + len);
  262. }
  263. }CIRCMDDATA, *LPCIRCMDDATA;
  264. //移动授权
  265. typedef struct tgSimulateTrainCBTCMA : public tgBaseNetPacket
  266. {
  267. int lineid; //当前最远授权对应的线路段id
  268. float exute; //当前最远授权对应的线路段偏移
  269. }SIMULATATRAINCBTCMA,*LPSIMULATATRAINCBTCMA;
  270. //虚拟列车轨道电路码更新
  271. typedef struct tgSimulateTrainCode : public tgBaseNetPacket
  272. {
  273. int codea ; //当前正常显示码
  274. int codeb ; //下一个正常显示码
  275. int codeall[TRAINNUM_LEN]; //codeall[0]:代表当前正常运行计算码codeall[1]:代表当前正常运行计算码codeall[2]:当前发送码载频方向codeall[3]:不同载频对应码 codeall[4]:当前轨道下一个闭塞分区的码序(新添加)
  276. char codeinfo[TRAINNUM_LEN];
  277. }SimulateTrainCode,*LPSimulateTrainCode;
  278. //虚拟车实时数据更新
  279. typedef struct tgSimulateTrainUpdate : public tgBaseNetPacket
  280. {
  281. int trainID; //列车号
  282. int NoceCircuitryID; //列车当前所在轨道电路编号
  283. float NoceCircuitryExute; //列车在当前轨道电路上的偏移
  284. int NoceLineSecID; //列车当前所在线路段编号
  285. float NoceLineSecExute; //列车在当前线路段上的偏移
  286. int RunArrow; //运行方向
  287. int NowTime; //当前时间
  288. int AlreadyRuntime; //已运行时间
  289. float NoceSpeed; //列车当前速度
  290. float A; //当前加速度
  291. char TrainNum[TRAINNUM_LEN]; //车次号
  292. int Net_V; //网压
  293. int TrainEndPosLineSecID; //列车尾端线路段编号
  294. float TrainEndPosLineSecExcur;//列车尾端线路段偏移
  295. float PowerRate; //功率(电调用)
  296. float NoceLimitSpeed; //当前列车限速
  297. int MainCtrID; //主空号 没有为-1
  298. int nTrainEqpmentState; //列车设备状态【0:正常 1:轻微故障 2:严重故障 101:无法动车】
  299. int nTrainElectryState; //列车电力状态
  300. int Electricbow; //受电弓
  301. int trainstoplefttime; //列车停站时间
  302. int trainlatetime; //列车晚点时间
  303. }SIMULATETRAINUPDATE,*LPSIMULATETRAINUPDATE;
  304. typedef struct tgSimulateTrainInfoUpdate : public tgBaseNetPacket
  305. {
  306. int trainid; //列车编号
  307. char TrainNum[TRAINNUM_LEN]; //车次号(用于确定当前列车唯一运行的内容,老车次号沿用.)
  308. int trainnum; //车组号
  309. int signalrunnum; //单程号
  310. int servicenum; //服务号
  311. int trainrunmode; //列车运行类型,人工,头马,目的地
  312. int availablerunarrow; //
  313. int destionationid; //目的地号
  314. int chauffeurnum; //司机号
  315. int activestation; //当前车站
  316. int trainatsmodel; //列车跟踪模式
  317. int atpstatus; //atp状态
  318. int stopstationstatus; //停站状态
  319. int runmodel; //运行模式(驾驶模式)
  320. int atcstatus; //atc状态(1:ATC切除,0:ATC没有切除)
  321. int stationstoptrainstatus; //列车在车站的停车状态
  322. int runarrow; //列车运行方向
  323. int destinationnum; //列车的目的地码
  324. int intendingstationplat; //预计到达车站id
  325. int intendinggettime; //预计到达时间
  326. int factstationplat; //实际到达车站id
  327. int factgetttime; //世纪到达时间
  328. int intendingleavingstationplat;//预计离开车站id
  329. int intendingleavingtime; //预计离开时间
  330. int factleavingstationplat; //实际离开车站id
  331. int factleavingtime; //预计离开时间
  332. char Register_TrainNum[TRAINNUM_LEN]; //CIR注册的车次号
  333. int Stop_SteadyFlag; //列车停稳标记
  334. }SimulateTrainInfoUPDATE,*LPSimulateTrainInfoUPDATE;
  335. typedef struct tgSimulateTrainInfoUpdateB :public tgBaseNetPacket //与国铁合并时调整了部分属性的顺序
  336. {
  337. int trainid; //列车编号
  338. int holdtrainflag; //扣车标志
  339. int conkoutflag; //列车故障标志
  340. int nEmergencyStopFlag; //紧急停车标志
  341. int escipedoorstatus; //逃生门状态
  342. int stopto; //停车到?
  343. int evacuatestatus; //疏散状态
  344. int nComletePropertyFlag; //列车完整性
  345. int concatenation; //连续状态
  346. int skipstationflag; //跳停标志
  347. int traindoorstatus; //列车车门状态
  348. int clickflag; //列车冲突标志
  349. int commulacateState; //列车通迅状态(1:正常,0:故障)——新添加
  350. BYTE szTrainID[48]; //机车号
  351. int nTrainPosFlag; //列车定位状态
  352. BOOL bTrainDelFlag; //列车删除标记(TRUE:删除标记,FAlSE:未删除)
  353. int nTID; //列车追踪号 added by zhangjiahua
  354. char cTrainB_AnotherName[50];//车型别名
  355. }SimulateTrainInfoUpdateB, * LPSimulateTrainInfoUpdateB;
  356. //主控发给虚拟车实时数据
  357. typedef struct tagMainControlTrainData
  358. {
  359. int trainID; //列车号
  360. int nSegID ; //线路段编号
  361. float ffloat; //列车在线路段偏移
  362. int bTrainDirection;//车头方向
  363. float nocespeed; //列车当前速度
  364. float Power; //列车功率
  365. int trainlevel; //列车运行模式
  366. int controlmode; //列车的控制模式
  367. int num; //发送计数
  368. }MAINCONTROLTRAINDATA,*LPMAINCONTROLTRAINDATA;
  369. typedef struct tagINFOSIGNCONTROLINFO
  370. {
  371. int infosignid; //id
  372. int coukoutflag; //故障状态 0正常 1:故障
  373. int intinfo[10];
  374. float floatinfo[10];
  375. double doubleinfo[10];
  376. char charinfo[200];
  377. }INFOSIGNCONTROLINFO,*LPINFOSIGNCONTROLINFO;
  378. typedef struct tgDELETEXIETONGTRAIN
  379. {
  380. int trainid; //列车编号
  381. }DELETEXIETONGTRAIN,*LPDELETEXIETONGTRAIN;
  382. typedef struct tgGT_Llineinfo
  383. {
  384. int lineid; //线路段编号
  385. int status[20]; //0代表线路段占用状态(111占用 110出清)
  386. bool statusb[20];
  387. float statusc[20];
  388. }GT_Llineinfo,*LPGT_Llineinfo;
  389. //行调更新线路段相关数据
  390. typedef struct tgClineInfoFromOCC_XD
  391. {
  392. int nSegID; //唯一编号
  393. int nOccupy; //占用状态
  394. int nPara_Int[10]; //整形参数
  395. float fPara_Float[10]; //浮点参数【0:系统临时限速,其他:预留】
  396. char cPara_Char[TRAINNUM_LEN]; //字符参数
  397. }ClineInfoFromOCC_XD,*LPClineInfoFromOCC_XD;
  398. //主控发给虚拟车实时数据
  399. typedef struct tagMainControlTrainDataALL
  400. {
  401. int trainID; //列车号
  402. int nSegID ; //线路段编号
  403. float ffloat; //列车在线路段偏移
  404. int bTrainDirection; //车头方向
  405. float nocespeed; //列车当前速度
  406. float Power; //列车功率
  407. int trainlevel; //列车运行模式
  408. int controlmode;
  409. int num; //发送计数
  410. int traintype; //列车类型
  411. int beginendflag; //1代表开始 0代表结束
  412. int traininfo[10]; //备用
  413. float trainfloatinfo[10]; //备用
  414. double traindoubleinfo[10]; //备用
  415. char traincharinfo[200]; //备用
  416. }MAINCONTROLTRAINDATAALL,*LPMAINCONTROLTRAINDATAALL;
  417. typedef struct tgMaincontrolRes : public tgBaseNetPacket
  418. {
  419. int train_id; //列车编号
  420. int loc_segs[5]; //列车占压的线路段序列(车头至车尾)
  421. float loc_head_offset; //车头偏移
  422. float loc_tail_offset; //车尾偏移
  423. int direction; //运行方向
  424. int time; //当前时间
  425. float speed; //速度
  426. float acceleration; //加速度
  427. char train_num[TRAINNUM_LEN]; //车次号
  428. int voltage; //网压
  429. }MAINCONTROLRES,*LPMAINCONTROLRES;
  430. //主控接管列车命令
  431. typedef struct tgMaincontrolOrder
  432. {
  433. int TrainID;
  434. int nMCType; //【本公司|外公司】
  435. }MAINCONTROLORDER,*LPMAINCONTROLORDER;
  436. //点式ATP虚拟车数据更新
  437. typedef struct tgSimulateTrainUpdate_iATP : public tgBaseNetPacket
  438. {
  439. int trainID; //列车号
  440. int Nowtime; //当前时间
  441. int NoceCircuitryID; //列车当前所在轨道电路编号
  442. int RunArrow; //运行方向
  443. int Early_Latetime; //早晚点时间
  444. char TrainNum[TRAINNUM_LEN]; //列车车次号
  445. }SIMULATETRAINUPDATE_iATP,*LPSIMULATETRAINUPDATE_iATP;
  446. //虚拟车跟踪标识符更新
  447. typedef struct tgSimulateTrainTrackFlagUpdate: public tgBaseNetPacket
  448. {
  449. int TrainID; //列车号
  450. int TrackFlag; //跟踪标识符//矩形框
  451. }TRACKFLAGUPDATE,*LPTRACKFLAGUPDATE;
  452. //虚拟车目的地码更新
  453. typedef struct tgSimulateTrainDesNoUpdate: public tgBaseNetPacket
  454. {
  455. int TrainID; //列车号
  456. int DestinationNo; //列车目的地码
  457. }DESNOUPDATE,*LPDESNOUPDATE;
  458. typedef struct tgSimulateTrainStopStation : public tgBaseNetPacket
  459. {
  460. int type; //代表:停车 、屏蔽门控制指令等
  461. bool StopInfo; //列车停车对标的消息
  462. bool data1; //打开屏蔽门指令
  463. bool data2; //关闭屏蔽门指令
  464. int data3; //列车紧急制动标志0:未紧急 1:紧急
  465. int data4; //车门关好状态 0:代表未关好 1:代表关好
  466. int data5; //开左右门标志1:左门 2:右门
  467. float data6;
  468. float data7;
  469. float data8;
  470. }SimulateTrainStopStation,*LPSimulateTrainStopStation;
  471. //轨道电路占用状态更新
  472. typedef struct tgTrackcirstateUpdate: public tgBaseNetPacket
  473. {
  474. int TrackID; //轨道电路编号
  475. int TrackOccupiedState; //轨道电路占用状态
  476. int CounterOccupiedState; //计轴器占用状态
  477. int Direction; //该轨道上列车运行方向
  478. int Early_Latetime; //该轨道上列车早晚点时间
  479. int codea; //码
  480. int codeb;
  481. char codeinfo[TRAINNUM_LEN];
  482. char TrainNum[TRAINNUM_LEN]; //该轨道上列车车次
  483. int coukoutsatus; //故障状态 如atc切除,计轴轨道电路故障等(列车追踪类型)
  484. int data1; //代表1(true)代表棕光带 0(false) 正常(1:ATC切除,0:ATC正常)
  485. int data2; //区段跟踪切除【1:切除,0:激活】
  486. int data3; //故障占用标记【1:是 0:否】
  487. int data4;
  488. int data5;
  489. int data6;
  490. int data7; //NOTE:部分模块用作逻辑占用
  491. int data8; //计轴复位状态
  492. int data9; //列车停稳标志(1:停稳,0:没有停稳)[NOTE:部分模块用作故障占用标识,后续移动至data3]
  493. int virtuallinenum; //虚拟小区段个数
  494. char virtualline[20]; //虚拟小区段 轨道电路中对应编号
  495. char virtuallinestatus[20]; //虚拟小区段状态
  496. }TRACKCIRCUITRYUPDATE,*LPTRACKCIRCUITRYUPDATE;
  497. //ATS发送至联锁的排路命令
  498. typedef struct tgRouteOrder_LS: public tgBaseNetPacket
  499. {
  500. int beginsignalid;
  501. int RouteId; //排fleeting进路时发送接近轨道电路ID 排侧线进路时发始端信号机编号
  502. int Stationid;
  503. int IsCBTCRoute; //是否为CBTC进路(1:是CBTC进路,0不是CBTC进路)
  504. char TrainNum[TRAINNUM_LEN];
  505. int nIsTurnBackRoute; //是否为折返进路(1:是 0:不是)
  506. int nIsSetTurnBack; //是否设置折返 added by zhangjiahua
  507. int nOverLapRouteID; //延续防护进路编号
  508. }ROUTEORDER,*LPROUTEORDER;
  509. //ATS发送至联锁的列车CBTC进路命令
  510. typedef struct tgRouteCmd2LS_TrainC : public tgBaseNetPacket
  511. {
  512. int nTrainID; //列车ID
  513. int nDirect; //列车方向
  514. int nSegCnt; //区段数量(进路)
  515. int nSegList_R[50]; //区段列表(进路)
  516. }ROUTECMD2LS_TRAINC,*LPROUTECMD2LS_TRAINC;
  517. //更新车站数据
  518. typedef struct tgStation_Updata :public tgBaseNetPacket
  519. {
  520. int StationID;
  521. int UpdataType;
  522. int RouteMode; //进路模式
  523. int nStaIndLCWATS; //控制转换开关(ATS\LCW 控制 开关)
  524. int CommunicationState; //通信状态(ATS)
  525. int nStaIndValidateMode; //联锁验证模式
  526. int ControlPope; //车站权限
  527. int RequestControlMode; //车站请求的控制模式
  528. int PlatFormID; //显示站台编号
  529. int EmergencyStopState; //紧急停车状态
  530. int HoldTrainState; //扣车状态
  531. int TurnBackMode; //折返模式
  532. int FireAlarmState; //火灾状态
  533. int AlarmSigFilaWarn; //信号机灯丝报警
  534. int RequestCtrlSys; //请求控制系统(主要是车站还是调度)
  535. int VersaGame; //变通策略编号
  536. int nUnLockFaultStatus; //车站联锁状态
  537. int nAllStaBlock; //全站封锁状态
  538. int nPowerLock; //上电锁闭
  539. int nAxleCntReset; //计轴复位
  540. int nStaATS_Fault; //车站ATS故障
  541. int nCurCtrlUserID; //当前控制用户ID
  542. int nRequestUserID; //请求控制用户ID
  543. int nTrainTestStatus; //洗车状态 added by zhangjiahua
  544. int nAllStaForceLight; //全站点灯状态,之前名称为:nAllStaOpenSig
  545. int nSendPlanSTAstate; //车站接收计划状态
  546. int nPlanCtrl; //计划控制
  547. int nAllowReturnFlag; //允许转回标记
  548. int nFZComWithInterLock; //自律机与联锁通信
  549. int nEmerCtrlBtnStatus; //非常站控按钮状态
  550. int nPowerSupply; //车站电源状态
  551. int nAutoStopTrain; //车站自动停车【自动停车:看信号 非自动停车:不看信号】
  552. }STATION_UPDATA,*LPSTATION_UPDATA;
  553. //更新集中站3
  554. typedef struct tgCenSta_Updata3 :public tgBaseNetPacket
  555. {
  556. int nCenStaID; //集中站编号
  557. int nSignalSysMode; //信号模式:(原名:nSignalMode)
  558. int nAxleCntPreResetEnable; //计轴预复位使能
  559. int nIntPara[20]; //0:信号系统切换进程,1:SCOM故障状态,2:MEI故障,3:MAU故障,4:MAU重启状态,5、SCOM重启状态,其他:预留Int
  560. float fFloatPara[20]; //预留Float
  561. }CENSTA_UPDATE3,*LPCENSTA_UPDATE3;
  562. typedef struct tgROUTEINT : public tgBaseNetPacket
  563. {
  564. int index;
  565. int segID;
  566. float offset;
  567. int num;
  568. int signalid[SIGNAL_NUM];
  569. }ROUTEINT,*LPROUTEINT;
  570. typedef struct tgTrainEndLinePs : public tgBaseNetPacket
  571. {
  572. int lineid; //目标线路段id
  573. float excuse; //目标线路段偏移
  574. float limiespeed; //目标限速
  575. int stationstoplineid; //到车站停车线路段id
  576. float stationstopexcuse; //对应偏移
  577. int skipstationstatus; //当前列车跳停状态
  578. int stationholdtrainstatus; //当前车站扣车状态
  579. int sendtrainimmediately; //提前发车状态
  580. int trainrungrade; //列车运行等级
  581. int stationtrainslimit; //车站区间列车限制
  582. int stationclearpeople; //车站清客状态
  583. int data1; //停站时间
  584. int data2; //折返标志
  585. int data3; //掉头标志
  586. int data4; //扣车标志
  587. int data5; //无限状态标志
  588. int data6; //对应屏蔽们状态
  589. int data7; //发车时间
  590. int data8; //下一站
  591. int data9; //终点站
  592. float data10; //暂无
  593. float data11; //代表rbc是否连接上
  594. float data12; //信号机颜色
  595. float data13; //允许atb标志
  596. }TrainEndLinePs,*LPTrainEndLinePs;
  597. typedef struct tgTrainEndLinePs_DC : public tgBaseNetPacket
  598. {
  599. int lineid; //目标线路段id
  600. float excuse; //目标线路段偏移
  601. float limiespeed; //目标限速
  602. int stationstoplineid; //到车站停车线路段id
  603. float stationstopexcuse; //对应偏移
  604. int skipstationstatus; //当前列车跳停状态
  605. int stationholdtrainstatus; //当前车站扣车状态
  606. int sendtrainimmediately; //提前发车状态
  607. int trainrungrade; //列车运行等级
  608. int stationtrainslimit; //车站区间列车限制
  609. int stationclearpeople; //车站清客状态
  610. int data1; //停站时间
  611. int data2; //折返标志
  612. int data3; //掉头标志
  613. int data4; //扣车标志
  614. int data5; //无限状态标志
  615. int data6; //对应屏蔽们状态
  616. int data7; //发车时间
  617. int data8; //下一站
  618. int data9; //终点站
  619. float data10; //暂无
  620. float data11; //代表rbc是否连接上
  621. float data12; //信号机颜色
  622. float data13; //允许atb标志
  623. int nTimeToNextSta; //到下站的区间停站时间
  624. float fDistanceToPreTrain; //距离前车的距离
  625. float fDistanceToNextTrain; //距离后车的距离
  626. }TrainEndLinePs_DC,*LPTrainEndLinePs_DC;
  627. typedef struct tgTIMETABLEINIT : public tgBaseNetPacket
  628. {
  629. int index;
  630. int stationnum;
  631. int data[NET_STATIONNUM][STATIONTIMETABLEDATANUM]; //data[A][B] B=0代表车站id B=1代表到站时间 B=2代表发车时间
  632. }TIMETABLEINIT,*LPTIMETABLEINIT;
  633. typedef struct tgPEOPLEINIT : public tgBaseNetPacket
  634. {
  635. int index;
  636. int stationnum;
  637. int data[NET_STATIONNUM][STATIONPEPLEDATANUM]; //data[A][B] B=0代表车站id B=1代表上车人数 B=2代表下车人数
  638. }PEOPLEINIT,*LPPEOPLEINIT;
  639. typedef struct tgInitTest : public tgBaseNetPacket//
  640. {
  641. int data[10];
  642. }INITTEST,*LPINITTEST;
  643. typedef struct tgSys_ShijingXietong : public tgBaseNetPacket//
  644. {
  645. int ViewSysID;
  646. }Sys_ShijingXietong,*LPSys_ShijingXietong;
  647. typedef struct tgEventToUnityReal : public tgBaseNetPacket
  648. {
  649. int nID; //事件编号
  650. UCHAR Type; //事件类型
  651. UCHAR SubType; //事件子类型
  652. UCHAR ucDestination; //事件目的地
  653. UCHAR rank; //事件难度
  654. int lParameter[4]; //整形参数
  655. UCHAR ucParameter[8]; //字符参数
  656. double dParameter[10]; //浮点参数
  657. }EventToUnityReal,*LPEventToUnityReal;
  658. typedef struct CarInfo
  659. {
  660. short bType; //车型
  661. short bNum; //数量
  662. unsigned char bVacate; //是否是空车(空车:true ; 重车:Flase)
  663. unsigned char bShutDownCar; //是否是关门车(关门车:true ; 非关门车:Flase)
  664. unsigned char blocomotive; //是机车还是车辆(机车:true ; 车辆:Flase)
  665. }CARINFO,*LPCARINFO;
  666. //列车编组信息
  667. typedef struct tgMainMarshalling : public tgBaseNetPacket
  668. {
  669. int nSize; //步长CarInfo大小
  670. int nTrainID; //车ID
  671. char TrainNum[TRAINNUM_LEN]; //车次号
  672. int nNum; //编组数
  673. CarInfo pCarInfo[TRAINBODDYMAXNUM];
  674. }MAINMARSHALLING,*LPMAINMARSHALLING;
  675. typedef struct tgLimitSpeedInfo : public tgBaseNetPacket
  676. {
  677. short num;
  678. short lineid[35];
  679. char limitspeed[35];
  680. }LimitSpeedInfo,*LPMLimitSpeedInfo;
  681. typedef struct tgLimitSpeedInfoForInfoSignOfGT : public tgBaseNetPacket
  682. {
  683. int infosignid;
  684. short pagenum;
  685. short thispagenum;
  686. int lineid;
  687. }LimitSpeedInfoForInfoSignOfGT,*LPLimitSpeedInfoForInfoSignOfGT;
  688. typedef struct tgMainControlOntimeInfoB : public tgBaseNetPacket
  689. {
  690. int nRouteOpenFlag; //进路状态--1:进路开放 0:进路取消
  691. int nRouteLimitType ; //进路类型 -- 1:侧线18号道岔的进,出站进路 2:侧线12号道岔的进,出站进路 3:正线进路 4:引导进路
  692. int nSegCnt; //有效数组大小
  693. int SegID[MAINCONTROLROUTEINFONUM]; //对应区段
  694. int nReverseSegCnt; //反向区段个数
  695. int SegReseveID[MAINCONTROLROUTEINFONUM]; //对应反向线路段id
  696. int IntInfo[10]; //intinfo[0]:代表反向进路标志 1反向 0正向
  697. }MainControlOntimeInfoB,*LPMainControlOntimeInfoB;
  698. typedef struct tgMainControlOntimeInfo : public tgBaseNetPacket
  699. {
  700. bool arrowroutflag; //该方向进路建立标示 没有建立进路为false
  701. int arrowroutid; //该方向进路号 没有建立进路为-1
  702. bool flag1;
  703. bool flag2;
  704. bool flag3;
  705. bool flag4;
  706. bool flag5;
  707. int paramint1;
  708. int paramint2;
  709. int paramint3;
  710. int paramint4;
  711. int paramint5;
  712. int paramint6;
  713. int paramint7;
  714. int paramint8;
  715. int paramint9;
  716. int paramint10;
  717. float paramfloat1;
  718. float paramfloat2;
  719. float paramfloat3;
  720. float paramfloat4;
  721. float paramfloat5;
  722. float paramfloat6;
  723. float paramfloat7;
  724. float paramfloat8;
  725. float paramfloat9;
  726. float paramfloat10;
  727. char paraminfo1[25];
  728. char paraminfo2[25];
  729. char paraminfo3[25];
  730. char paraminfo4[25];
  731. char paraminfo5[25];
  732. }MainControlOntimeInfo,*LPMainControlOntimeInfo;
  733. typedef struct Onboard_TempLimit
  734. {
  735. int SegID; //区段 NOTE:之前为long,国产化后修改为int
  736. float limit; //限速
  737. }ONBOARDTEMPLIMIT,*ONBOARDLPTEMPLIMIT;
  738. //临时限速状态更新
  739. typedef struct tgTEMPSPEEDLIMITFroMain: public tgBaseNetPacket
  740. {
  741. int SegNUM; //临时限速数组大小
  742. ONBOARDTEMPLIMIT pTempLimit[50]; //临时限速数组 没有临时限速为-1
  743. }TEMPSPEEDLIMITFroMain,*LPTEMPSPEEDLIMITFroMain;
  744. //临时限速给客户段
  745. typedef struct tgTEMPSPEEDLIMITToClinet: public tgBaseNetPacket
  746. {
  747. int SegNUM; //临时限速数组大小
  748. int trackid[LIMITSPEEDTRACKNUMFORCLIENT]; //临时限速数组 没有临时限速为-1
  749. short speed[LIMITSPEEDTRACKNUMFORCLIENT]; //临时限速数组 没有临时限速为-1
  750. short status[LIMITSPEEDTRACKNUMFORCLIENT]; //临时限速数组 没有临时限速为-1
  751. char Reason[LENGTH_TYPEA]; //限速原因
  752. int beginkilo; //开始公里标
  753. int endkilo; //结束公里标
  754. char csinfoa[LENGTH_TYPEA]; //限速命令号
  755. char csinfob[LENGTH_TYPEA];
  756. char csinfoc[LENGTH_TYPEA];
  757. int paraminta;
  758. int paramintb;
  759. int paramintc;
  760. float paramfloata;
  761. float paramfloatb;
  762. float paramfloatc;
  763. }TEMPSPEEDLIMITToClinet,*LPTEMPSPEEDLIMITToClinet;
  764. //给行调发送的计划检查命令
  765. typedef struct tgPlanCheckAlarm : public tgBaseNetPacket
  766. {
  767. int Level; //告警级别
  768. int StationID; //车站编号
  769. char AlarmMsg[255]; //报警内容
  770. }PLANCHECKALARM,*PPLANCHECKALARM;
  771. typedef struct tgXD_Ontimerdata : public tgBaseNetPacket
  772. {
  773. int curtime; //当前时间 【仿真时间(单位:秒)】
  774. int int1; //当前时间 【系统时间(单位:秒)】
  775. int int2; //当前日期 【例:20230809表示2023年8月9号】
  776. int int3; //星期 【-1:无效,0:星期日,1:星期1,2:星期2 ...】
  777. int int4; //训练倒计时【单位:秒,-1:无效】
  778. int int5; //预留
  779. bool tmpbool[20]; //预留
  780. float fTmpFloat[10]; //预留【0:快进倍数,其他:预留】
  781. char tmpchar[40]; //预留
  782. }XD_Ontimerdata,*LPXD_Ontimerdata;
  783. //列车前方设备信息
  784. typedef struct tgTrainFrontEqmptInfo : public tgBaseNetPacket
  785. {
  786. int nFrontSignalID; //前方信号机编号
  787. int nFrontSignalColor; //前方信号机颜色
  788. }TrainFrontEqmptInfo,*LPTrainFrontEqmptInfo;
  789. typedef struct tgMCShieldDoor : public tgBaseNetPacket
  790. {
  791. bool status[SHIELDDOORNUM];
  792. }MCShieldDoor,*LPMCShieldDoor;
  793. //主控列车-设置定速
  794. typedef struct tgMAINCTRLTRAIN_SETSPEED :public tgBaseNetPacket
  795. {
  796. __int32 nSetSpeedMode; //是否定速运行, 1-定速, 0-取消定速
  797. __int32 nSpeed; //设定速度
  798. }MAINCTRLTRAIN_SETSPEED;
  799. typedef struct tgViewUpdataEquipment_new : public tgBaseNetPacket
  800. {
  801. int none;
  802. int noneb;
  803. int equipmentid;
  804. int status;
  805. }ViewUpdataEquipment_new,*LPViewUpdataEquipment_new;
  806. //救援车信息
  807. typedef struct tgRescueTrainInfo : public tgBaseNetPacket
  808. {
  809. int nTrainID; //救援车ID
  810. int nSysID; //系统ID
  811. float fDis; //到本车的距离
  812. int nLineSecID; //区段编号
  813. float fLineSecOff; //区段偏移
  814. }RESCUE_TRAIN_INFO,*LPRESCUE_TRAIN_INFO;
  815. //发送时刻表信息
  816. typedef struct tgTimeTabInfo : public tgBaseNetPacket
  817. {
  818. int nJourneyID; //单程号
  819. int nPlanID; //计划号
  820. int nLineID; //线路号
  821. int nStaNum; //车站数量
  822. int nStaID[50]; //车站编号
  823. int nArriveTime[50]; //到达时间
  824. int nLeaveTime[50]; //发车时间
  825. char Str_TrainNum[50]; //车次号
  826. }TimeTabInfo,*LPTimeTabInfo;
  827. //虚拟列车控制命令
  828. typedef struct tgTrain_CtrlCmd : public tgBaseNetPacket
  829. {
  830. int nType;
  831. int nTrainID;
  832. int Int_Para[100];
  833. float Float_Para[100];
  834. }TRAIN_CTRLCMD, * LPTRAIN_CTRLCMD;
  835. //客户端向行调发送命令
  836. typedef struct tgCMD_TO_TRAFFICCONTROL_SYS :public tgBaseNetPacket
  837. {
  838. int nType; //命令类型
  839. int nInt_Para[20]; //整形参数
  840. float fFloat_Para[20]; //浮点形参数
  841. }CMD_TO_TRAFFICCONTROL_SYS,*LPCMD_TO_TRAFFICCONTROL_SYS;
  842. //车次窗向行调客户端发送命令结构体-第一包
  843. typedef struct tgTrainWndDataUpdate :public tgBaseNetPacket
  844. {
  845. int nTrainGroupID; //车组号
  846. int nJourneyID; //单程号
  847. int nServerID; //服务号
  848. int nXLID; //序列号
  849. int nDestinationID; //目的地号
  850. int nType; //类型
  851. int nDriverID; //司机号
  852. int nStaID; //车站号
  853. int nTraceMode; //跟踪模式
  854. int nATPCutFlag; //ATP切除标记
  855. int nRunRank; //运行等级
  856. int nRunStatus; //运行状态
  857. int nStatus; //状态(计划状态:准点)
  858. int nPlanStopTime; //计划停站时间
  859. int nPlanArriveStaID; //计划到达站
  860. int nPlanArriveTime; //计划到达时间
  861. int nPlanLeaveTime; //计划发车时间
  862. int nRealStopTime; //实际停站时间
  863. int nEndSendPlatFormID; //终端站发车站台
  864. int nEndSendTime; //终端站发车时间
  865. int nPreLeavePlatFormID; //预计发车站台
  866. int nPreLeaveTime; //预计发车时间
  867. int nPreArrivePlatFormID; //预计到达站台
  868. int nPreArriveTime; //预计到达时间
  869. int nTimeOfQJ; //区间运行时间
  870. int nRunDir; //运行方向
  871. int nEffectDriveMode; //有效驾驶模式
  872. float fSpeed; //速度
  873. int nATCStatus; //ATC状态
  874. int nHoldTrainStatus; //扣车状态
  875. int nSkipStopStatus; //跳停状态
  876. int nDoorStatus; //车门状态
  877. int nDriveMode; //驾驶模式
  878. int nTrainDesID; //车载目的地号
  879. int nRealArrivePlatFormID; //实际到达站台
  880. int nRealArriveTime; //实际到达时间
  881. int nRealLeavePlatFormID; //实际发车站台
  882. int nRealLeaveTime; //实际发车时间
  883. int nCmdLeavePlatFormID; //命令出站台
  884. int nCmdLeaveTime; //命令出时间
  885. int nCmdArrivePlatFormID; //命令到站台
  886. int nCmdArriveTime; //命令到时间
  887. int nCmdHoldTrain; //命令扣车
  888. int nCmdDoorCtrl; //命令车门控制
  889. int nDecrease; //
  890. int nEmergencyStop; //紧急停车
  891. int nStopTo; //停站到
  892. int nLifeDoor; //逃生门
  893. int SSStatus; //疏散状态
  894. int nWZX; //完整性
  895. int nLXStatus; //连续性
  896. int nAlarmStatus; //车辆报警状态
  897. int nConflitStatus; //列车冲突状态
  898. int nLaterTime; //早晚点时间
  899. int nMainCtrlID; //主控系统号
  900. //位置信息
  901. int nHeadLineSecID; //头部线路段编号
  902. float fHeadLineSecOff; //头部线路段偏移
  903. int nTailLineSecID; //尾部线路段编号
  904. float fTailLineSecOff; //尾部线路段偏移
  905. int nHeadATPSecID; //车头ATP区段编号
  906. int nTailATPSecID; //车尾ATP区段编号
  907. //移动授权MA信息
  908. int nMALineSecID; //移动授权区段编号
  909. float fMALineSecOff; //移动授权区段偏移
  910. float fMADistance; //移动授权距离
  911. float fRouteLength; //剩余进路长度
  912. float fBreakDis; //制动距离
  913. float fATPLimitSpeed; //ATP限速
  914. float fNet_V; //列车网压
  915. //车站信息
  916. int nNextStaID; //下一站
  917. int nEndStaID; //终点站
  918. //运行线及偏离信息
  919. int nRunLineID; //运行线ID
  920. int nDisartRunLineID; //偏离-运行线ID
  921. int nDisartStartPlatFormID; //偏离-开始站台
  922. int nDisartEndPlatFormID; //偏离-结束站台
  923. int nRunType; //运行类型
  924. int nAccElerate; //加速度/制动率
  925. int nSerMode; //列车服务模式
  926. int nUpdateViateValue; //更新偏差值
  927. int nAssignShift; //待分配的班次
  928. int nAssignRunLine; //待分配的运行线
  929. int nStopSteadyFlag; //列车停稳标记
  930. int nTrainNum; //列车车次号
  931. char cTrainNum[50]; //车次号
  932. }TRAINWND_DATAUPDATE,*LPTRAINWND_DATAUPDATE;
  933. //车次窗向行调客户端发送命令结构体-第二包
  934. typedef struct tgTrainWndDataUpdate_2 :public tgBaseNetPacket
  935. {
  936. int nTrainWndID; //车次窗编号
  937. int nTrainGroupID; //车组号
  938. int nWakeUpOrSleepStatus; //唤醒/休眠状态
  939. int nServiceType; //服务类型
  940. int nDoorIsolate; //车门隔离状态
  941. int nDoorAntiPinch; //车门防夹状态
  942. int nDoorEmerRelease; //车门紧急解锁
  943. int nDoorCommulate; //车门通信状态
  944. int nEmerBreakType; //列车紧急类型
  945. int nNeedAssinDesMan; //是否需要人工分配头码
  946. int nSendRequest; //发车申请
  947. int nMeasureWheelStatus; //较轮状态
  948. int nAllowWakeUp; //允许唤醒
  949. int nAllowSleep; //允许休眠
  950. int nFAMAuthorize; //全自动驾驶授权
  951. int nBeaboutToOutBound; //列车即将出库
  952. int nSleepTimeCount; //休眠倒计时
  953. int nBreakStatus; //车辆制动状态
  954. int nElcBowStatus[2]; //受电弓状态 0:前弓 1:后弓 其他:预留
  955. int nDriveCoverSlab[2]; //司机盖板
  956. int nCarriageFireAlarm[16]; //火灾报警
  957. int nPassengerEmerCall[16]; //乘客紧急呼叫
  958. int nInsidePlanTrain; //是否计划内列车
  959. int nPassengerEmerShake; //乘客紧急手柄
  960. }TRAINWND_DATAUPDATE_2, * LPTRAINWND_DATAUPDATE_2;
  961. //高铁车次窗数据更新结构体
  962. typedef struct tgHSRTrainWndDataUpdate :public tgBaseNetPacket
  963. {
  964. int nTrainWndID; //车次窗编号
  965. int nTrainID; //列车ID
  966. int nDriverID; //司机号
  967. int nStaID; //车站号
  968. int nRunRank; //运行等级
  969. int nRunDir; //运行方向
  970. float fSpeed; //速度
  971. int nLaterTime; //早晚点时间
  972. int nMainCtrlID; //主控系统号
  973. int nElcTrain; //电力机车
  974. int nMachineID; //机车号
  975. int nStopSteadyFlag; //停稳标记
  976. int nTrainOccupyLost; //列车占用丢失
  977. int nEmerTraceFlag; //紧追踪标记
  978. int nTrainKind; //列车种类
  979. int nTrainType; //列车(运行)类型
  980. int nTrainWndType; //车次窗类型
  981. //位置信息
  982. int nHeadLineSecID; //头部线路段编号
  983. float fHeadLineSecOff; //头部线路段偏移
  984. int nTailLineSecID; //尾部线路段编号
  985. float fTailLineSecOff; //尾部线路段偏移
  986. //移动授权MA信息
  987. int nMALineSecID; //移动授权区段编号
  988. float fMALineSecOff; //移动授权区段偏移
  989. float fMADistance; //移动授权距离
  990. float fRouteLength; //剩余进路长度
  991. float fBreakDis; //制动距离
  992. float fATPLimitSpeed; //ATP限速
  993. float fNet_V; //列车网压
  994. //车站信息
  995. int nNextStaID; //下一站
  996. int nEndStaID; //终点站
  997. char Str_TrainNum[25]; //车次号
  998. int nTrainBodyCnt; //列车数量【编组】
  999. int nTrainTaskType; //作业类型【列车|调车|停留】
  1000. }HSRTRAINWND_DATAUPDATE, * LPHSRTRAINWND_DATAUPDATE;
  1001. //列车车次窗操作命令结构体定义
  1002. typedef struct tgTrainWndOperCmd : public tgBaseNetPacket
  1003. {
  1004. int nType;
  1005. int nIntPara[10];
  1006. char Char_Para[50];
  1007. char Char_Para2[50];
  1008. }TRAINWND_OPER_CMD,*LPTRAINWND_OPER_CMD;
  1009. //视景协同发送给行调系统的命令
  1010. typedef struct tgViewSysToXD_CMD : public tgBaseNetPacket
  1011. {
  1012. int nType;
  1013. int nIntPara[10];
  1014. float fFloatPara[10];
  1015. }VIEW_CMD_TO_XD,*LPVIEW_CMD_TO_XD;
  1016. //给评价的列车数据
  1017. typedef struct tgTrainDataToEvalue : public tgBaseNetPacket
  1018. {
  1019. int nTrainID; //列车编号
  1020. int nCurTrackID; //列车当前的轨道电路
  1021. int nNextTrackID; //列车下一段轨道电路
  1022. }TRAINDATA_TO_EVALUE,*LPTRAINDATA_TO_EVALUE;
  1023. //信号给列车的数据
  1024. typedef struct tgSIGNAL_TO_TRAIN_DATA : public tgBaseNetPacket
  1025. {
  1026. int nTrainID; //列车编号
  1027. int nHoldTrainCmd; //扣车命令
  1028. int nDesStaID; //目的地站
  1029. int nLeaveStaID; //离站ID
  1030. int nFrontStaID; //前方车站ID
  1031. int nStaStopTime; //本站停站时间
  1032. int nSkipStopCmd; //跳停命令
  1033. int nNextStaID; //下站ID
  1034. int nPSD_Status; //屏蔽门状态
  1035. int nMA_SegID; //移动授权LinkID
  1036. int nZCStatus; //ZC状态
  1037. int nRunLevel; //运行等级
  1038. char Str_TrainNum[20]; //车次号
  1039. float fNet_V; //列车网压
  1040. float nMA_SegOff; //移动授权偏移
  1041. float fSpeed; //列车速度
  1042. int nStartLinkID; //起始区段
  1043. float fStartLinkOff; //起始区段偏移
  1044. int nStartDirect; //起始方向
  1045. float fMA_Distance; //到前方MA的距离
  1046. int nFront_LinkID[6]; //前方序列ID
  1047. }SIGNAL_TO_TRAIN_DATA,*LPSIGNAL_TO_TRAIN_DATA;
  1048. //真车发送给OCC的数据
  1049. typedef struct tgREALTRAIN_TO_OCC_DATA : public tgBaseNetPacket
  1050. {
  1051. int nTrainID; //列车编号
  1052. int nDir; //列车方向
  1053. int nLinkID; //区段号
  1054. float fLinkOff; //区段偏移
  1055. int nRunLevel; //运行等级
  1056. int nRunMode; //运行模式
  1057. float fSpeed; //列车速度
  1058. }REALTRAIN_TO_OCC_DATA,*LPREALTRAIN_TO_OCC_DATA;
  1059. //更新ATP区段状态
  1060. typedef struct tgATPSecStatus_Update : public tgBaseNetPacket
  1061. {
  1062. int nCnt; //更新的ATP区段数量
  1063. int nID[50]; //编号列表
  1064. int nOccupyStatus[50]; //占用状态
  1065. int nOccupyTrainID[50]; //关联列车编号(占用)
  1066. int nOccupyTrainDir[50];//关联列车方向(占用)
  1067. }ATPSECSTATUS_UPDATE,*LPATPSECSTATUS_UPDATE;
  1068. //更新ATP区段扩展状态信息
  1069. typedef struct tgATPSecExStatus_Update:public tgBaseNetPacket
  1070. {
  1071. int ATPSecID;
  1072. int UpdateType;
  1073. float fTempLimitSpeed; //ATP临时限速-限速值
  1074. float fCITempLimitSpeed; //CI临时限速
  1075. int UpdateStatus; //区段状态更新
  1076. int LogicOccupyStatus; //区段逻辑占用更新
  1077. int AxleCountResetStatus; //区段计轴预复位更新
  1078. int ATPSecConkOut; //区段故障状态
  1079. int LockStatus; //锁闭状态
  1080. int OccupyStatus; //区段占用更新
  1081. int nLineDisaster; //线路灾害
  1082. int nTmpLimitS_StartID; //ATP临时限速-起始区段
  1083. int nTmpLimitS_EndID; //ATP临时限速-结束区段
  1084. }ATPSECEXSTATUS_UPDATE,*LPATPSECEXSTATUS_UPDATE;
  1085. typedef struct tgTrainDebugMsg : public tgBaseNetPacket
  1086. {
  1087. int nTrainID; //列车编号
  1088. float fSpeed; //列车速度
  1089. float fAcc; //列车加速度
  1090. float fRouteLength; //列车进路长度
  1091. float fMA; //列车移动授权
  1092. int nGK; //列车工况
  1093. int nJW; //列车级位
  1094. int nMaLineSecID; //列车MA区段号
  1095. float fMaLineOff; //列车MA区段偏移
  1096. }TrainDebugMsg,*LPTrainDebugMsg;
  1097. //发送给视景协同的列车数据:新添加
  1098. typedef struct tgTRAINDATA2VIEWSYS : public tgBaseNetPacket
  1099. {
  1100. int nTrainID; //列车ID
  1101. char Str_TrainNum[20]; //车次号
  1102. int nIntPara[10]; //预留整形参数
  1103. float fFloatPara[10]; //预留浮点参数
  1104. }TRAINDATA2VIEWSYS,*LPTRAINDATA2VIEWSYS;
  1105. //发送给视景协同的列车数据:新添加
  1106. typedef struct tgMORETRAIN2VIEWSYS : public tgBaseNetPacket
  1107. {
  1108. int nTrainCnt; //列车数量
  1109. int nTrainID[30]; //列车编号
  1110. int nSegID[30]; //区段编号
  1111. float fSegOff[30]; //区段偏移
  1112. float fSpeed[30]; //速度
  1113. float fAcc[30]; //加速度
  1114. }MORETRAIN2VIEWSYS,*LPMORETRAIN2VIEWSYS;
  1115. typedef struct tgCHANGEHEADCMD_TO_VIEWSYS : public tgBaseNetPacket
  1116. {
  1117. int nTrainID; //列车编号
  1118. int nIsShowScreen; //屏幕是否显示(0:不显示 1:显示)
  1119. }CHANGEHEADCMD_TO_VIEWSYS, * LPCHANGEHEADCMD_TO_VIEWSYS;
  1120. //防灾系统协议
  1121. typedef struct tgDisasterPrevent_SYS : public tgBaseNetPacket
  1122. {
  1123. int nID;
  1124. int nStatus;
  1125. }DISASTER_PREVENT, * LPDISASTER_PREVENT;
  1126. //客户端评价条目命令
  1127. typedef struct tgClientEvalueItem :public tgBaseNetPacket
  1128. {
  1129. int OperItemType; //条目类型
  1130. int OperItemSubType1; //条目子类型1
  1131. int OperItemSubType2; //条目子类型2
  1132. int OperItemObject; //条目对应评价对象
  1133. char AssociPara1[64]; //关联参数1 //20210730-与教员同步修改数据反馈接口,128->64
  1134. char AssociPara1Name[64]; //关联参数1名称 //20210730-与教员同步修改数据反馈接口,128->64
  1135. char AssociPara2[64]; //关联参数2 //20210730-与教员同步修改数据反馈接口,128->64
  1136. char AssociPara2Name[64]; //关联参数2名称 //20210730-与教员同步修改数据反馈接口,128->64
  1137. char AssociPara3[64]; //关联参数3 //20210730-与教员同步增加数据反馈接口
  1138. char AssociPara3Name[64]; //关联参数3名称 //20210730-与教员同步增加数据反馈接口
  1139. char AssociPara4[64]; //关联参数4 //20210730-与教员同步增加数据反馈接口
  1140. char AssociPara4Name[64]; //关联参数4名称 //20210730-与教员同步增加数据反馈接口
  1141. char AssociPara5[64]; //关联参数5 //20210730-与教员同步增加数据反馈接口
  1142. char AssociPara5Name[64]; //关联参数5名称 //20210730-与教员同步增加数据反馈接口
  1143. }CLIENT_EVALUE_ITEM, * LPCLIENT_EVALUE_ITEM;
  1144. //限速命令(重构)
  1145. typedef struct tgMainCtrl_LimitSpeed_New : public tgBaseNetPacket
  1146. {
  1147. int nSegCnt; //区段数量
  1148. int nType; //限速类型(1:临时限速 2:道岔限速)
  1149. int nSegID[50]; //区段编号
  1150. float fSegOff[50]; //区段偏移
  1151. float fLimitSpeed[50]; //限速值
  1152. }MAINCTRL_LIMITSPEED_NEW, * LPMAINCTRL_LIMITSPEED_NEW;
  1153. //运行线更新
  1154. typedef struct tgRUNLINE_UPDATE : public tgBaseNetPacket
  1155. {
  1156. int nRunLineID; //运行线编号RUNLINE_UPDATE
  1157. int nDisartRunLineID; //偏离-运行线编号
  1158. int nDisartStartPlatFormID; //偏离-开始站台
  1159. int nDisartEndPlatFormID; //偏离-结束站台
  1160. }RUNLINE_UPDATE,*LPRUNLINE_UPDATE;
  1161. //正线接入点-状态更新
  1162. typedef struct tgINPOINT_UPDATE : public tgBaseNetPacket
  1163. {
  1164. int nID; //接入点-编号
  1165. int nAllowAutoRoute; //接入点-允许自动进路标记
  1166. int nAutoAssignShift; //接入点-自动分配-班次
  1167. int nShift_AllowFlag; //接入点-自动分配-班次-允许标记
  1168. int nAutoAssignRunLine; //接入点-自动分配-运行线
  1169. int nRunLine_AllowFlag; //接入点-自动分配-运行线-允许标记
  1170. }INPOINT_UPDATE,*LPINPOINT_UPDATE;
  1171. //列车移动授权-更新
  1172. typedef struct tgTRAIN_MA_UPDATE : public tgBaseNetPacket
  1173. {
  1174. int nTrainID; //MA-列车编号
  1175. int nCnt; //MA-障碍物数量
  1176. int nType; //1:预留MA 2:LMA 3:取消MA
  1177. int nLineSecID[20]; //MA-障碍物区段编号
  1178. float fLineSecOff[20]; //MA-障碍物区段偏移
  1179. int nSubType; //预留MA(-1;无效), LMA(1:自动授权LMA,2:人工授权AMT)
  1180. int nMA_ATPSecID_S; //MA_ATP表示_起点ID
  1181. int nMA_ATPSecID_E; //MA_ATP表示_终点ID
  1182. float fMA_ATPSecOff_S; //MA_ATP表示_起点偏移
  1183. float fMA_ATPSecOff_E; //MA_ATP表示_终点偏移
  1184. int nMA_LineSegID_S; //MA_线路段表示_起点ID
  1185. int nMA_LineSegID_E; //MA_线路端表示_终点ID
  1186. float fMA_LineSegOff_S; //MA_线路段表示_起点偏移
  1187. float fMA_LineSegOff_E; //MA_线路段表示_终点偏移
  1188. }TRAIN_MA_UPDATE,*LPTRAIN_MA_UPDATE;
  1189. /**********************************视景系统相关******************************************/
  1190. typedef struct tgCMD2VIEW_TAINCONNECT : public tgBaseNetPacket
  1191. {
  1192. int Type; //类型--1:撞毁、2:连挂、3:换端中、5:解编、6:恢复运行、7:换端完成
  1193. int TrainID; //本车ID
  1194. int OtherTrainID; //其他车ID
  1195. int CollisionTrainPartID; //碰撞车厢号 : 按0开始表示车头 依次类推7:表示第八节车厢
  1196. }CMD2VIEW_TRAINCONNECT;
  1197. //电子沙盘视点控制
  1198. typedef struct tgSANDTABLE_VIEWPOINT_CTRL : public tgBaseNetPacket
  1199. {
  1200. int nSystemID;
  1201. int nCameraType; //相机类型(1:列车相机,2:FPS<漫游视角>,3:GOD<上帝视角>)
  1202. int nViewPointType;
  1203. int nSubType;
  1204. int Int32Valuel;
  1205. int LongValuel; //NOTE:之前类型为long
  1206. int nDataLength;
  1207. char pDataBuf[500];
  1208. }SANDTABLE_VIEWPOINT_CTRL;
  1209. //定义: 视景系统线路预测开关控制
  1210. typedef struct tgVIEWSYS_FORECAST_CTRL
  1211. {
  1212. int nCtrlSwitch; //线路预测控制开关(1:开启,0:关闭<默认>)
  1213. }VIEWSYS_FORECAST_CTRL;
  1214. //定义:沙盘列车视点控制
  1215. typedef struct tgSANDTABLE_TRAINVIEWPORT_CTRL : public tgBaseNetPacket
  1216. {
  1217. int nTrainID; //列车编号
  1218. int nViewPortType; //视点类型(1:前向相机 2:左侧向相机 3:右侧向相机 9:顶视角相机)
  1219. }SANDTABLE_TRAINVIEWPORT_CTRL,*LPSANDTABLE_TRAINVIEWPORT_CTRL;
  1220. //定义:沙盘漫游视点控制
  1221. typedef struct tgSANDTABLE_FPS_VIEWPORT : public tgBaseNetPacket
  1222. {
  1223. int nSegID; //区段编号
  1224. double dSegOff; //区段偏移
  1225. char cViewPortName[100]; //漫游视点名称
  1226. }SANDTABLE_FPS_VIEWPORT, * LPSANDTABLE_FPS_VIEWPORT;
  1227. //定义:沙盘漫游视角参数更新
  1228. typedef struct tgSANDTABLE_FPSDATA_UPDATE : public tgBaseNetPacket
  1229. {
  1230. float fPosDeltaX; //位移变化量_X方向
  1231. float fPosDeltaY; //位移变化量_Y方向
  1232. float fAngleDeltaX; //角度变化量_X方向
  1233. float fAngleDeltaY; //角度变化量_Y方向
  1234. int nIsJump; //是否在跳跃(0:不跳 1:跳)
  1235. }SANDTABLE_FPSDATA_UPDATE, * LPSANDTABLE_FPSDATA_UPDATE;
  1236. //定义:沙盘上帝视角控制
  1237. typedef struct tgSANDTABLE_GOD_VIEWPORT : public tgBaseNetPacket
  1238. {
  1239. int nSegID; //区段编号
  1240. double dSegOff; //区段偏移
  1241. float fInitPosOffX; //初始位置偏移_X方向(顺着轨道方向)
  1242. float fInitPosOffY; //初始位置偏移_Y方向(垂直地面方向,重要:一旦设定不可修改)
  1243. float fInitPosOffZ; //初始位置偏移_Z方向(垂直轨道方向)
  1244. float fInitAngleX; //初始旋转角度偏移_X方向(俯仰角)
  1245. float fInitAngleY; //初始旋转角度偏移_Y方向(视角朝向)
  1246. }SANDTABLE_GOD_VIEWPORT,*LPSANDTABLE_GOD_VIEWPORT;
  1247. //定义:沙盘上帝视角参数更新
  1248. typedef struct tgSANDTABLE_GODDATA_UPDATE : public tgBaseNetPacket
  1249. {
  1250. float fPosDeltaX; //位移变化量_X方向
  1251. float fPosDeltaY; //位移变化量_Y方向
  1252. float fAngleDeltaX; //角度变化量_X方向
  1253. float fAngleDeltaY; //角度变化量_Y方向
  1254. float fDistanceDelta; //距离变化量
  1255. }SANDTABLE_GODDATA_UPDATE, * LPSANDTABLE_GODDATA_UPDATE;
  1256. //定义:视景虚拟人员操作反馈【协同->OCC】
  1257. typedef struct tgViewVirPerson_OperFeedBack
  1258. {
  1259. int nStaID; //车 站 号
  1260. int nSysID; //终 端 号
  1261. int nRole; //角 色 号【1:站务员。其他:预留】
  1262. int nOperPos; //操作地点【见地点定义表】
  1263. int nOperType; //操作类型【见操作定义表】
  1264. int nSelTool; //选择工具【见工具定义表】
  1265. int nTimeS; //开始时间【单位:秒】
  1266. int nTimeE; //结束时间【单位:秒】
  1267. }VIEWVIRPERSON_OPERFEEDBACK,*LPVIEWVIRPERSON_OPERFEEDBACK;
  1268. //定义:视景虚拟人员位置切换【OCC->协同】
  1269. typedef struct tgViewVirPerson_PosChange
  1270. {
  1271. int nTmpID; //车 站 号/列 车 号
  1272. int nSysID; //终 端 号
  1273. int nRole; //角 色 号【1:站务员,2:乘务员, 其他:预留】
  1274. int nOperPos; //操作地点【站务员:视景定义,乘务员:车厢号】
  1275. }VIEWVIRPERSON_POSCHANGE,*LPVIEWVIRPERSON_POSCHANGE;
  1276. //定义:视景列车火灾状态反馈【协同->OCC】
  1277. typedef struct tgViewTrainFire_FeedBack
  1278. {
  1279. int nTrainID; //列 车 号
  1280. int nTrainPartID; //车 厢 号
  1281. int nFireLevel; //火灾等级
  1282. int nPara_Int[50]; //预留参数_整形
  1283. float fPara_Float[50]; //预留参数_浮点
  1284. }VIEWTRAINFIRE_FEEDBACK,*LPVIEWTRAINFIRE_FEEDBACK;
  1285. //定义:ATS系统状态更新
  1286. typedef struct tgATSSYS_STATUS_UPDATE : public tgBaseNetPacket
  1287. {
  1288. int nWorkStationStatus[5]; //中心ATS工作站状态
  1289. int nAppServerStatus; //中心ATS服务器状态
  1290. int nDBServerStatus; //数据库服务器状态
  1291. int nNetComputerStatus; //网关计算机状态
  1292. int nCommulateMashineStatus; //通信计算机状态
  1293. int nLineControlStatus; //线路控制器状态
  1294. int nTimeTabPlanStatus; //时刻表计划状态
  1295. }ATSSYS_STATUS_UPDATE,*LPATSSYS_STATUS_UPDATE;
  1296. //定义:车库时刻表状态更新
  1297. typedef struct tgDEPOTTIMETAB_STATUS_UPDATE : public tgBaseNetPacket
  1298. {
  1299. int nSvrID; //服务号
  1300. int nTrainGroupID; //车组号
  1301. int nInDepotStatus; //入库状态
  1302. int nOutDepotStatus; //出库状态
  1303. int nOnLineTime; //上线时间
  1304. int nOffLineTime; //下线时间
  1305. int nOnLineDriverID; //上线司机号
  1306. int nOffLineDriverID; //下线司机号
  1307. }DEPOTTIMETAB_STATUS_UPDATE, *LPDEPOTTIMETAB_STATUS_UPDATE;
  1308. //定义:区域控制器状态更新
  1309. typedef struct tgZONECTRL_STATUS_UPDATE : public tgBaseNetPacket
  1310. {
  1311. int nZCID;
  1312. int nStaID;
  1313. int nZCStatus;
  1314. }ZONECTRL_STATUS_UPDATE,*LPZONECTRL_STATUS_UPDATE;
  1315. //定义:终端站发车列表条目更新
  1316. typedef struct tgENDSTA_SENDTLIST_I : public tgBaseNetPacket
  1317. {
  1318. int nSvrID; //服务号
  1319. int nOrderID; //序列号
  1320. int nSendTrackID; //发车轨道
  1321. int nEndDesID; //目的地号
  1322. int nDirect; //发车方向
  1323. int nDate; //发车日期【20240416:2024年04月16日】
  1324. int nTime; //发车时间【114139:11时41分39秒】
  1325. int nStatus; //分配状态
  1326. }ENSSTA_SENDTLIST_I, * LPENSSTA_SENDTLIST_I;
  1327. /**********************************态势模型******************************************/
  1328. //定义:态势车站模型数据更新
  1329. typedef struct tgTS_StationMode_Update : public tgBaseNetPacket
  1330. {
  1331. int nStaID; //车站编号
  1332. float fAverWaterHeight; //平均水位高度
  1333. }TS_STATIONMODE_UPDATE,*LPTS_STATIONMODE_UPDATE;
  1334. //定义:虚拟处置操作命令
  1335. typedef struct tgTSVirtualDispose_Cmd : public tgBaseNetPacket
  1336. {
  1337. int nCmdType; //命令类型
  1338. int nIntPara[10]; //命令参数:含义参见命令类型定义
  1339. float fFloatPara[10]; //命令参数:含义参见命令类型定义
  1340. }TS_VIRTUALDISPOSE_CMD,*LPTS_VIRTUALDISPOSE_CMD;
  1341. //定义:区域水状态更新
  1342. typedef struct tgTSZoneWater_Update : public tgBaseNetPacket
  1343. {
  1344. int nZoneID; //区域编号
  1345. int nInZoneCnt; //输入区域数量
  1346. int nInZoneID[30]; //输入区域编号
  1347. float fInSpeed[30]; //输入速度(单位:m3/s)
  1348. int nOutZoneCnt; //输出区域数量
  1349. int nOutZoneID[30]; //输出区域编号
  1350. float fOutSpeed[30]; //输出速度(单位:m3/s)
  1351. float fAvrWaterHeight; //平均水位高度(单位:m)
  1352. }TS_ZONEWATER_UPDATE, * LPTS_ZONEWATER_UPDATE;
  1353. //定义:区域水状态反馈(视景)
  1354. typedef struct tgTSZoneWater_FeedBack : public tgBaseNetPacket
  1355. {
  1356. int nID; //区域编号
  1357. int nWaterPointCnt; //水位采样点数量
  1358. int nWaterPointID[30]; //水位采样点编号(相邻区域点)
  1359. float fWaterHeight[30]; //水位采样点水位高度
  1360. }TS_ZONEWATER_FEEDBACK, * LPTS_ZONEWATER_FEEDBACK;
  1361. //定义:水池水状态更新
  1362. typedef struct tgPool_WaterStatus_Update : public tgBaseNetPacket
  1363. {
  1364. char PoolStrID[GUID_LEN]; //水池编号
  1365. float fWaterHeightValue; //水位高度值(单位:m)
  1366. float fWaterHeightPercent; //水位高度比
  1367. }TS_POOL_WATERSTATUS_UPDATE,* LPTS_POOL_WATERSTATUS_UPDATE;
  1368. //定义:区域临时排水设备状态更新
  1369. typedef struct tgTS_TempOutWaterEqmpt_Update : public tgBaseNetPacket
  1370. {
  1371. int nZoneID; //区域编号
  1372. int nEqmptCnt; //临时设备数量
  1373. int nEqmptID[30]; //临时设备编号
  1374. int nStatus [30]; //临时设备状态
  1375. }TS_TEMP_OUTWATEREQMPT_UPDATE, *LPTS_TEMP_OUTWATEREQMPT_UPDATE;
  1376. //定义:区域水位采样点更新(态势->客户端)
  1377. typedef struct tgTS_WaterPoint_Update : public tgBaseNetPacket
  1378. {
  1379. int nZoneID; //区域编号
  1380. int nWaterPointCnt; //水位采样点数量
  1381. int nWaterPointID[30]; //水位采样点编号
  1382. float fSandBagHeight[30]; //水位采样点沙袋高度(单位:m)
  1383. float fWaterHeight[30]; //水位采样点水位高度(单位:m)
  1384. float fAvrWaterHeight; //平均水位高度(单位:m)
  1385. }TS_WATERPOINT_UPDATE, * LPTS_WATERPOINT_UPDATE;
  1386. /**********************************无人驾驶******************************************/
  1387. //定义:列车唤醒流程更新
  1388. typedef struct tgTrainWakeUp_Process : public tgBaseNetPacket
  1389. {
  1390. int nTrainID; //列车编号
  1391. int nNodeID; //节点编号(定义见接口表)
  1392. int nCnt; //数量
  1393. int nStatus[100]; //状态:0:未自检; 1:自检中; 2:自检通过; 3:自检未通过(含义见接口表)
  1394. }TRAINWAKEUP_PROCESS,*LPTRAINWAKEUP_PROCESS;
  1395. //定义:列车VOBC数据更新(地铁)
  1396. typedef struct tgMetroTrain_VOBC_Update
  1397. {
  1398. int nTrainID; //列车编号
  1399. float fGoalDistance; //目标距离
  1400. float fTrainSpeed; //列车速度
  1401. float fLimitSpeed; //限制速度
  1402. float fRocomendSpeed; //推荐速度
  1403. float fGoalSpeed; //目标速度
  1404. float fAlertSpeed; //报警速度
  1405. float fEmergencySpeed; //紧制速度
  1406. int nRunMode; //运行模式
  1407. int nRunLevel; //运行级别
  1408. int nATPFault; //ATP故障
  1409. int nATOFault; //ATO故障
  1410. int nRadioFault; //无线通信故障
  1411. int nDoorCtrlMode; //车门控制模式
  1412. int nDoorStatus; //车门状态(全部)
  1413. int nPreSelectMode; //预选驾驶模式(最高)
  1414. int nTrainIntegrity; //列车完整性状态
  1415. int nATOWorkStatus; //牵引/制动工况(ATO)
  1416. int nAllPSDClose; //屏蔽门关闭(全部)
  1417. int nTrainDoorAllow[2]; //车门允许(0:左 1:右)
  1418. int nTurnBackStatus; //折返状态(0:不折返 1:即将折返 2:正在折返)
  1419. int nWheelSlip; //打滑(0:无 1:打滑)
  1420. int nStaPlatFormCtrl; //车站站台控制(0:正常运行 1:扣车 2:跳停)
  1421. int nInStopWnd; //进入停车窗(0:无 1:停车区域无对标 2:停车对标)
  1422. int nSnowMode; //雨雪模式(1:是 0:否)
  1423. int nReqSendTrain; //发车请求
  1424. int nCloseDoorPre; //关门提示
  1425. int nVOBCStatus[2]; //VOBC状态【0:本端 1:远端】(0:无 1:正常 2:部分故障 3:完全故障)
  1426. int nInCarDepot; //车辆回库
  1427. int nNotOnMainLine; //车辆非正线运营
  1428. int nITCRelease; //点式释放
  1429. int nNextStaID; //下一站
  1430. int nEndStaID; //终点站
  1431. int nDriverID; //司机号
  1432. int nDesID; //目的地号
  1433. char cTrainNum[20]; //车次号
  1434. int nWakeUpSleepStatus; //唤醒/休眠状态
  1435. int nDriverCoverSlab[2]; //司机盖板(0:本端 1:远端)
  1436. int nWorkStatus; //列车工况(牵引制动)
  1437. int nEmerBreakType; //列车紧制类型
  1438. int nMeasureWheel; //较轮状态(0:正常,1:错误,2:跳跃)
  1439. int nPassengerEmerShake; //乘客紧急手柄(1:拉下 0:抬起)
  1440. }METROTRAIN_VOBC_UPDATE,*LPMETROTRAIN_VOBC_UPDATE;
  1441. //定义:施工符号转调度命令
  1442. typedef struct tgCONSTRUCTSIGN_2DISPATCHCMD
  1443. {
  1444. int nType; //施工符号类型:封锁股道|区间封锁等,运行图提供
  1445. int nDirRoadID; //方向线路号
  1446. int nStaID_S; //开始车站
  1447. int nStaID_E; //结束车站【车站时,此项:-1】
  1448. int nDate_S; //开始日期【eg:20241015:2024年10月15日】
  1449. int nDate_E; //结束日期【eg:20241015:2024年10月15日】
  1450. int nTime_S; //开始时间【单位:秒】
  1451. int nTime_E; //结束时间【单位:秒】
  1452. int nDesSysID; //目标系统【-1:全部调度命令终端】
  1453. float fMeterF_S; //开始公里标
  1454. float fMeterF_E; //结束公里标
  1455. float fLimitValue; //要求限速值【-1:无效】
  1456. char cReason[50]; //执行原因
  1457. char cPara[400]; //字符参数【字符串1;字符串2】
  1458. }CONSTRUCTSIGN_2DISPATCHCMD, *LPCONSTRUCTSIGN_2DISPATCHCMD;
  1459. /**********************************操作记录相关******************************************/
  1460. //定义:主控列车(模驾)操作记录
  1461. typedef struct tgMC_TRAIN_OPERRECORD
  1462. {
  1463. int nTrainID;
  1464. int nMCSysID;
  1465. int nSimTime;
  1466. int nSysTime;
  1467. int nType;
  1468. int nDataIndex;
  1469. char pDataBuf[800];
  1470. }MC_TRAIN_OPERRECORD,*LPMC_TRAIN_OPERRECORD;
  1471. //定义:调度系统通用操作记录
  1472. typedef struct tgDISPATCH_SYS_OPERRECORD
  1473. {
  1474. int nSrcSysID;
  1475. int nSimTime;
  1476. int nSysTime;
  1477. int nDataLen;
  1478. int nCmdType;
  1479. int nCmdResult;
  1480. char cCmdPara[950];
  1481. }DISPATCH_SYS_OPERRECORD,*LPDISPATCH_SYS_OPERRECORD;
  1482. /**********************************运营指标统计******************************************/
  1483. //定义:运营指标
  1484. typedef struct tgOPERATION_INDEX
  1485. {
  1486. int nTrainCnt_LaterT[5]; //晚点列车-统计【0:1~2分钟,1:2-5分钟 3:5分钟以上】
  1487. int nTrainCnt_SecStop[5]; //区间停车-统计【0:1~2分钟,1:2-5分钟 3:5分钟以上】
  1488. int nTrainCnt_LoseStopS[5]; //列车欠标-统计【0:总数,其他:预留】
  1489. int nTrainCnt_OverStopS[5]; //列车冲标-统计【0:总数,其他:预留】
  1490. int nTrainCnt_StopRun; //停运列车-统计
  1491. int nTrainCnt_Damage; //损毁列车-统计
  1492. int nTouchEmerBreakCnt; //紧急次数-统计
  1493. int nPersonCnt_Dead; //死亡人数-统计
  1494. int nPersonCnt_Insured; //受伤人数-统计
  1495. int nPersonCnt_ComPlaint; //投诉人数-统计
  1496. int nPersonCnt_NotInTrain; //滞留乘客-统计
  1497. float fDXL; //兑现率
  1498. float fZDL; //准点率
  1499. float fEnergy_Spend; //电力能耗-统计
  1500. }OPERATION_INDEX,*LPOPERTION_INDEX;
  1501. /**********************************语音电话通讯相关******************************************/
  1502. //定义:通话记录
  1503. typedef struct TELEPHONE_TALK_RECORD
  1504. {
  1505. int nTrainingID; //训练号【记录及文件:由训练号、主叫号码、开始时间组合】
  1506. int nTelNumber_Active; //电话号码-主叫
  1507. int nTelNumber_Passive[50]; //电话号码-被叫
  1508. int nTimeS_Sys; //开始时间-系统(单位:秒)
  1509. int nTimeE_Sys; //结束时间-系统(单位:秒)
  1510. int nTimeS_Sim; //开始时间-仿真(单位:秒)
  1511. int nTimeE_Sim; //结束时间-仿真(单位:秒)
  1512. }TELEPHONE_TALK_RECORD,*LPTELEPHONE_TALK_RECORD;
  1513. //定义:电话语音识别
  1514. typedef struct TELEPHONE_SPEECH_RECOGNIZE
  1515. {
  1516. int nTrainingID; //训练号【记录及文件:由训练号、主叫号码、开始时间组合】
  1517. int nTelNumber_Active; //电话号码-主叫
  1518. int nTimeS_Sys; //开始时间-系统(单位:秒)
  1519. char cSpeechText[900];
  1520. }TELEPHONE_SPEECH_RECOGNIZE,*LPTELEPHONE_SPEECH_RECOGNIZE;
  1521. //定义:IP电话核心会话结构体(整合单拨/多拨/对讲)【语音-》OCC-》语音】
  1522. typedef struct TELEPHONE_SESSION :public tgBaseNetPacket
  1523. {
  1524. int session_id; //全局唯一会话ID
  1525. int caller_id; //发起方标识
  1526. int target_id; //目标标识(如电话号、设备ID、角色ID)
  1527. int target_media_port; //媒体端口
  1528. int session_state; //会话状态[0:空闲,1:呼叫中,2:通信中,3:已终止]
  1529. char caller_ip[16]; //发起方IP
  1530. char target_ip[16]; //目标IP
  1531. }TELEPHONE_SESSION, *LPTELEPHONE_SESSION;
  1532. //定义:对讲专属控制结构体(仅CallType::INTERCOM时生效)【语音-》OCC-》语音】
  1533. typedef struct TELEPHONE_INTERCOM : public tgBaseNetPacket
  1534. {
  1535. int state; //对讲信道状态[0:信道空闲,1:信道占用(发言中)]
  1536. int speaker_id; //当前发言人标识
  1537. int talk_timeout; //发言超时(秒,避免信道占用)
  1538. }TELEPHONE_INTERCOM, *LPTELEPHONE_INTERCOM;
  1539. /**********************************文本提示信息******************************************/
  1540. //定义:OCC系统【文本+语音】提示(延用主控)
  1541. typedef struct TEXTANDSPEECH_PROMPT : public tgBaseNetPacket
  1542. {
  1543. int nType; //类型【主控定义】
  1544. char cPromptText[800]; //文本
  1545. }TEXTANDSPEECH_PROMPT,*LPTEXTANDSPEECH_PROMPT;
  1546. //定义:操作指导提示【教员-》服务器-》语音/文本提示终端】
  1547. typedef struct tgOperGuid_Prompt : public tgBaseNetPacket
  1548. {
  1549. int nID; //流程步骤
  1550. int nType; //操作类型【1:操作,2:语音】
  1551. int nOperSysID; //操作系统
  1552. char cOperTitle[100]; //操作标题
  1553. char cOperStep[200]; //操作步骤【语音操作时:传参考语句】
  1554. }OPERGUID_PROMPT, * LPOPERGUID_PROMPT;
  1555. /**********************************系统服务报警******************************************/
  1556. //定义:语音识别服务报警
  1557. typedef struct SPEECHRECOGNIZE_SVR_ALARM
  1558. {
  1559. int nFaultCodeID; //故障码
  1560. }SPEECHRECOGNIZE_SVR_ALARM,*LPSPEECHRECOGNIZE_SVR_ALARM;
  1561. struct tgTimeTab_Item
  1562. {
  1563. int nTime_R; //到达时间
  1564. int nTime_S; //发车时间
  1565. short nRunLineID; //线路编号
  1566. short nStopT_R; //到达股道
  1567. short nStopT_S; //发车股道
  1568. short nStaID_Cur; //当前站
  1569. short nSigID_I; //出入口_入口
  1570. short nSigID_E; //出入口_出口
  1571. BYTE bByte[60]; //0:过站次数,1:自触_接,2:自触_发,3:通过类型
  1572. };
  1573. //定义:阶段计划下达_车次表
  1574. typedef struct tgSTAGEPLAN_TRAINNUM : public tgBaseNetPacket
  1575. {
  1576. short nID;
  1577. short nTrainID;
  1578. short nLineID;
  1579. short nTimeTabID;
  1580. short nTrainKind;
  1581. short nTrainType;
  1582. short nBaseTT_ID;
  1583. short nDirect;
  1584. short nLineIndex;
  1585. short nTrainNumType;
  1586. short nRouteID;
  1587. short nCnt_C;
  1588. short nCnt_A;
  1589. short nStaCnt;
  1590. char cTrainNum[128];
  1591. char cNextTrainNum[128];
  1592. }STAGEPLAN_TRAINNUM, *LPSTAGEPLAN_TRAINNUM;
  1593. //定义:阶段计划下达_时刻表
  1594. typedef struct tgSTAGEPLAN_TIMETAB : public tgBaseNetPacket
  1595. {
  1596. short nID;
  1597. short nCnt_C;
  1598. short nCnt_A;
  1599. tgTimeTab_Item TT_I[10];
  1600. }STAGEPLAN_TIMETAB,*LPSTAGEPLAN_TIMETAB;
  1601. #define EQPMENT_COUKOUT_NORMAL 0
  1602. #define EQPMENT_COUKOUT_LOW 1
  1603. #define EQPMENT_COUKOUT_HIGH 2
  1604. //列车行驶方式
  1605. #define TRAIN_RUNNING_PLANTTIMETABLERAIN 1 //计划车
  1606. #define TRAIN_RUNNING_NOPLANTTIMETABLEDESTINATIONTRAIN 2 //头码车
  1607. #define TRAIN_RUNNING_NOPLANTTIMETABLEMANCONTROLTRAIN 3 //人工车
  1608. //蔽塞方式
  1609. #define iATP 1 //点式ATP ,固定闭塞
  1610. #define CBTCMODE 2 //CBTC模式,移动闭赛
  1611. //列车状态
  1612. #define TRAIN_STATE_RUNNING 1 //区间运行
  1613. #define TRAIN_STATE_STATIONSTOP 2 //车站停站
  1614. #define TRAIN_STATE_TURNBACK 3 //列车折返
  1615. #define TRAIN_STATE_OUTCARBARN 4 //列车出库
  1616. #define TRAIN_STATE_INCARBARN 5 //列车入库
  1617. #define TRAIN_STATE_MANUAL 6 //人工控制
  1618. #define TRAIN_STATE_TURNBACKSTATIONSTOP 7 //折返停站
  1619. #define TRAIN_STATE_BEING_INCARBARN 8 //已入库
  1620. #define TRAIN_STATE_STORE 9 //存车
  1621. #define TRAIN_STATE_CHANGEHEAD 10 //列车掉头
  1622. #define TRAIN_STATE_OUTSTATION 11 //列车出站
  1623. #define TRAIN_STATE_INSTATION 12 //列车进站
  1624. //#define TRAIN_STATE_OUTSTATIONSTOP 13 //列车即将出站
  1625. #define TRAIN_STATE_DISPATCH 14 //调车模式
  1626. //标记ATP内容
  1627. #define TRAIN_ATPSTATUS_ON 1 //标记ATP恢复
  1628. #define TRAIN_ATPSTATUS_OFF 2 //标记ATP关闭
  1629. #define TRAIN_ATPSTATUS_CONKOUT 3 //标记ATP故障
  1630. #endif