586 lines
14 KiB
C#
586 lines
14 KiB
C#
using System;
|
|
|
|
namespace SL200_RTLogViewer.lib
|
|
{
|
|
// Token: 0x02000035 RID: 53
|
|
public class DOSItoTCMS
|
|
{
|
|
// Token: 0x06000157 RID: 343 RVA: 0x00027520 File Offset: 0x00025720
|
|
public static DOSItoTCMSClass SetData(byte[] data)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass = new DOSItoTCMSClass();
|
|
dositoTCMSClass.destID = Convert.ToUInt32(data[1]);
|
|
dositoTCMSClass.sourID = Convert.ToUInt32(data[2]);
|
|
dositoTCMSClass.frameSeq = Convert.ToUInt32(data[4]);
|
|
dositoTCMSClass.formNo = Convert.ToUInt32(data[6]);
|
|
dositoTCMSClass.trNo = string.Format("{0:x4}", (uint)((int)data[7] << 8 | (int)data[8]));
|
|
dositoTCMSClass.trainSpeed = Convert.ToUInt32(data[9]);
|
|
dositoTCMSClass.atc1_Ok = (((data[10] & 128) > 0) ? "GOOD" : "BAD");
|
|
dositoTCMSClass.atc1_Act = (((data[10] & 64) > 0) ? "ACTIVE" : "STANDBY");
|
|
dositoTCMSClass.atc2_Ok = (((data[10] & 32) > 0) ? "GOOD" : "BAD");
|
|
dositoTCMSClass.atc2_Act = (((data[10] & 16) > 0) ? "ACTIVE" : "STANDBY");
|
|
bool flag = (data[10] & 12) == 8;
|
|
if (flag)
|
|
{
|
|
dositoTCMSClass.trSize = "10량";
|
|
}
|
|
else
|
|
{
|
|
bool flag2 = (data[10] & 12) == 4;
|
|
if (flag2)
|
|
{
|
|
dositoTCMSClass.trSize = "8량";
|
|
}
|
|
else
|
|
{
|
|
dositoTCMSClass.trSize = "6량";
|
|
}
|
|
}
|
|
dositoTCMSClass.adc = ((data[10] & 2) > 0);
|
|
dositoTCMSClass.eb_status = ((data[10] & 1) > 0);
|
|
dositoTCMSClass.wheels1 = 860 - ((data[11] & 248) >> 3) * 5;
|
|
bool flag3 = (data[11] & 7) == 0;
|
|
if (flag3)
|
|
{
|
|
dositoTCMSClass.drvmode = "Invalid";
|
|
}
|
|
else
|
|
{
|
|
bool flag4 = (data[11] & 7) == 1;
|
|
if (flag4)
|
|
{
|
|
dositoTCMSClass.drvmode = "FMC";
|
|
}
|
|
else
|
|
{
|
|
bool flag5 = (data[11] & 7) == 2;
|
|
if (flag5)
|
|
{
|
|
dositoTCMSClass.drvmode = "YARD";
|
|
}
|
|
else
|
|
{
|
|
bool flag6 = (data[11] & 7) == 3;
|
|
if (flag6)
|
|
{
|
|
dositoTCMSClass.drvmode = "MCS";
|
|
}
|
|
else
|
|
{
|
|
bool flag7 = (data[11] & 7) == 4;
|
|
if (flag7)
|
|
{
|
|
dositoTCMSClass.drvmode = "AUTO";
|
|
}
|
|
else
|
|
{
|
|
bool flag8 = (data[11] & 7) == 5;
|
|
if (flag8)
|
|
{
|
|
dositoTCMSClass.drvmode = "FA";
|
|
}
|
|
else
|
|
{
|
|
dositoTCMSClass.drvmode = "None";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag9 = (data[12] & 240) == 0;
|
|
if (flag9)
|
|
{
|
|
dositoTCMSClass.atcCode = "02";
|
|
}
|
|
else
|
|
{
|
|
bool flag10 = (data[12] & 240) == 16;
|
|
if (flag10)
|
|
{
|
|
dositoTCMSClass.atcCode = "01";
|
|
}
|
|
else
|
|
{
|
|
bool flag11 = (data[12] & 240) == 32;
|
|
if (flag11)
|
|
{
|
|
dositoTCMSClass.atcCode = "25";
|
|
}
|
|
else
|
|
{
|
|
bool flag12 = (data[12] & 240) == 48;
|
|
if (flag12)
|
|
{
|
|
dositoTCMSClass.atcCode = "40";
|
|
}
|
|
else
|
|
{
|
|
bool flag13 = (data[12] & 240) == 64;
|
|
if (flag13)
|
|
{
|
|
dositoTCMSClass.atcCode = "55";
|
|
}
|
|
else
|
|
{
|
|
bool flag14 = (data[12] & 240) == 80;
|
|
if (flag14)
|
|
{
|
|
dositoTCMSClass.atcCode = "65";
|
|
}
|
|
else
|
|
{
|
|
bool flag15 = (data[12] & 240) == 96;
|
|
if (flag15)
|
|
{
|
|
dositoTCMSClass.atcCode = "75";
|
|
}
|
|
else
|
|
{
|
|
bool flag16 = (data[12] & 240) == 112;
|
|
if (flag16)
|
|
{
|
|
dositoTCMSClass.atcCode = "D";
|
|
}
|
|
else
|
|
{
|
|
bool flag17 = (data[12] & 240) == 128;
|
|
if (flag17)
|
|
{
|
|
dositoTCMSClass.atcCode = "DE";
|
|
}
|
|
else
|
|
{
|
|
bool flag18 = (data[12] & 240) == 144;
|
|
if (flag18)
|
|
{
|
|
dositoTCMSClass.atcCode = "DW";
|
|
}
|
|
else
|
|
{
|
|
dositoTCMSClass.atcCode = "None";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag19 = (data[12] & 3) == 0;
|
|
if (flag19)
|
|
{
|
|
dositoTCMSClass.dr_Mod = "None";
|
|
}
|
|
else
|
|
{
|
|
bool flag20 = (data[12] & 3) == 1;
|
|
if (flag20)
|
|
{
|
|
dositoTCMSClass.dr_Mod = "M/M";
|
|
}
|
|
else
|
|
{
|
|
bool flag21 = (data[12] & 3) == 2;
|
|
if (flag21)
|
|
{
|
|
dositoTCMSClass.dr_Mod = "A/M";
|
|
}
|
|
else
|
|
{
|
|
bool flag22 = (data[12] & 3) == 3;
|
|
if (flag22)
|
|
{
|
|
dositoTCMSClass.dr_Mod = "A/A";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag23 = (data[13] & 240) == 0;
|
|
if (flag23)
|
|
{
|
|
dositoTCMSClass.marker = "None";
|
|
}
|
|
else
|
|
{
|
|
bool flag24 = (data[13] & 240) == 16;
|
|
if (flag24)
|
|
{
|
|
dositoTCMSClass.marker = "PG1";
|
|
}
|
|
else
|
|
{
|
|
bool flag25 = (data[13] & 240) == 32;
|
|
if (flag25)
|
|
{
|
|
dositoTCMSClass.marker = "PG2";
|
|
}
|
|
else
|
|
{
|
|
bool flag26 = (data[13] & 240) == 48;
|
|
if (flag26)
|
|
{
|
|
dositoTCMSClass.marker = "PG3-1";
|
|
}
|
|
else
|
|
{
|
|
bool flag27 = (data[13] & 240) == 64;
|
|
if (flag27)
|
|
{
|
|
dositoTCMSClass.marker = "PG3-2";
|
|
}
|
|
else
|
|
{
|
|
bool flag28 = (data[13] & 240) == 80;
|
|
if (flag28)
|
|
{
|
|
dositoTCMSClass.marker = "PG3-3";
|
|
}
|
|
else
|
|
{
|
|
bool flag29 = (data[13] & 240) == 96;
|
|
if (flag29)
|
|
{
|
|
dositoTCMSClass.marker = "ATS";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag30 = (data[13] & 12) == 12;
|
|
if (flag30)
|
|
{
|
|
dositoTCMSClass.pdt_RLT = "Progress";
|
|
}
|
|
else
|
|
{
|
|
bool flag31 = (data[13] & 12) == 8;
|
|
if (flag31)
|
|
{
|
|
dositoTCMSClass.pdt_RLT = "NG";
|
|
}
|
|
else
|
|
{
|
|
bool flag32 = (data[13] & 12) == 4;
|
|
if (flag32)
|
|
{
|
|
dositoTCMSClass.pdt_RLT = "PASS";
|
|
}
|
|
else
|
|
{
|
|
bool flag33 = (data[13] & 12) == 0;
|
|
if (flag33)
|
|
{
|
|
dositoTCMSClass.pdt_RLT = "No Test";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dositoTCMSClass.active = ((data[13] & 1) > 0);
|
|
dositoTCMSClass.dc = ((data[14] & 128) > 0);
|
|
dositoTCMSClass.b = ((data[14] & 64) > 0);
|
|
dositoTCMSClass.p = ((data[14] & 32) > 0);
|
|
dositoTCMSClass.pb_PSD = ((data[14] & 2) > 0);
|
|
dositoTCMSClass.ovsw = ((data[14] & 1) > 0);
|
|
dositoTCMSClass.ldo = ((data[15] & 128) > 0);
|
|
dositoTCMSClass.rdo = ((data[15] & 64) > 0);
|
|
dositoTCMSClass.lde = ((data[15] & 32) > 0);
|
|
dositoTCMSClass.rde = ((data[15] & 16) > 0);
|
|
dositoTCMSClass.dblp = ((data[15] & 8) > 0);
|
|
dositoTCMSClass.zv = ((data[15] & 4) > 0);
|
|
dositoTCMSClass.fsb = ((data[15] & 2) > 0);
|
|
dositoTCMSClass.eb = ((data[15] & 1) > 0);
|
|
dositoTCMSClass.pwmn = Convert.ToUInt32(data[16]);
|
|
dositoTCMSClass.twctxen = ((data[17] & 32) > 0);
|
|
dositoTCMSClass.berth = ((data[17] & 16) > 0);
|
|
bool flag34 = (data[17] & 14) == 0;
|
|
if (flag34)
|
|
{
|
|
dositoTCMSClass.carrier = "-";
|
|
}
|
|
else
|
|
{
|
|
bool flag35 = (data[17] & 14) == 2;
|
|
if (flag35)
|
|
{
|
|
dositoTCMSClass.carrier = "F1";
|
|
}
|
|
else
|
|
{
|
|
bool flag36 = (data[17] & 14) == 4;
|
|
if (flag36)
|
|
{
|
|
dositoTCMSClass.carrier = "F2";
|
|
}
|
|
else
|
|
{
|
|
bool flag37 = (data[17] & 14) == 6;
|
|
if (flag37)
|
|
{
|
|
dositoTCMSClass.carrier = "F3";
|
|
}
|
|
else
|
|
{
|
|
bool flag38 = (data[17] & 14) == 8;
|
|
if (flag38)
|
|
{
|
|
dositoTCMSClass.carrier = "F4";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dositoTCMSClass.tacho_R = ((data[17] & 1) > 0);
|
|
dositoTCMSClass.romver = string.Format("Ver{0}.{1}", (data[18] & 240) >> 4, (int)(data[18] & 15));
|
|
dositoTCMSClass.missDoor = ((data[19] & 128) > 0);
|
|
bool flag39 = (data[19] & 24) == 16;
|
|
if (flag39)
|
|
{
|
|
dositoTCMSClass.next_DR = "오른쪽";
|
|
}
|
|
else
|
|
{
|
|
bool flag40 = (data[19] & 24) == 8;
|
|
if (flag40)
|
|
{
|
|
dositoTCMSClass.next_DR = "왼쪽";
|
|
}
|
|
else
|
|
{
|
|
dositoTCMSClass.next_DR = "-";
|
|
}
|
|
}
|
|
dositoTCMSClass.st_VAL = ((data[19] & 4) > 0);
|
|
dositoTCMSClass.dcw_VAL = ((data[19] & 2) > 0);
|
|
dositoTCMSClass.dcw = ((data[19] & 1) > 0);
|
|
dositoTCMSClass.pre_CODE = Convert.ToUInt32(data[20]);
|
|
dositoTCMSClass.nxt_CODE = Convert.ToUInt32(data[21]);
|
|
dositoTCMSClass.dst_CODE = Convert.ToUInt32(data[22]);
|
|
dositoTCMSClass.ato_DTG = Convert.ToDouble((int)data[23] << 8 | (int)data[24]);
|
|
dositoTCMSClass.wheels2 = 860 - ((data[25] & 248) >> 3) * 5;
|
|
dositoTCMSClass.man_EB = ((data[25] & 1) > 0);
|
|
dositoTCMSClass.limitSpeed = Convert.ToUInt32(data[26]);
|
|
bool flag41 = (data[27] & 128) > 0;
|
|
if (flag41)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass2 = dositoTCMSClass;
|
|
dositoTCMSClass2.errM += "TACHOF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag42 = (data[27] & 64) > 0;
|
|
if (flag42)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass3 = dositoTCMSClass;
|
|
dositoTCMSClass3.errM += "ATCWSF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag43 = (data[27] & 32) > 0;
|
|
if (flag43)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass4 = dositoTCMSClass;
|
|
dositoTCMSClass4.errM += "INCHING:";
|
|
}
|
|
else
|
|
{
|
|
bool flag44 = (data[27] & 16) > 0;
|
|
if (flag44)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass5 = dositoTCMSClass;
|
|
dositoTCMSClass5.errM += "OV_STOP2:";
|
|
}
|
|
else
|
|
{
|
|
bool flag45 = (data[27] & 8) > 0;
|
|
if (flag45)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass6 = dositoTCMSClass;
|
|
dositoTCMSClass6.errM += "OV_STOP1:";
|
|
}
|
|
else
|
|
{
|
|
bool flag46 = (data[27] & 4) > 0;
|
|
if (flag46)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass7 = dositoTCMSClass;
|
|
dositoTCMSClass7.errM += "SH_STOP2:";
|
|
}
|
|
else
|
|
{
|
|
bool flag47 = (data[27] & 2) > 0;
|
|
if (flag47)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass8 = dositoTCMSClass;
|
|
dositoTCMSClass8.errM += "SH_STOP1:";
|
|
}
|
|
else
|
|
{
|
|
bool flag48 = (data[27] & 1) > 0;
|
|
if (flag48)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass9 = dositoTCMSClass;
|
|
dositoTCMSClass9.errM = (dositoTCMSClass9.errM ?? "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag49 = (data[28] & 128) > 0;
|
|
if (flag49)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass10 = dositoTCMSClass;
|
|
dositoTCMSClass10.errM += "STCODEF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag50 = (data[28] & 64) > 0;
|
|
if (flag50)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass11 = dositoTCMSClass;
|
|
dositoTCMSClass11.errM += "DOF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag51 = (data[28] & 32) > 0;
|
|
if (flag51)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass12 = dositoTCMSClass;
|
|
dositoTCMSClass12.errM += "DCF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag52 = (data[28] & 16) > 0;
|
|
if (flag52)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass13 = dositoTCMSClass;
|
|
dositoTCMSClass13.errM += "ATOPSF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag53 = (data[28] & 8) > 0;
|
|
if (flag53)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass14 = dositoTCMSClass;
|
|
dositoTCMSClass14.errM += "DRVCAMF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag54 = (data[28] & 4) > 0;
|
|
if (flag54)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass15 = dositoTCMSClass;
|
|
dositoTCMSClass15.errM += "HCRTCRF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag55 = (data[28] & 2) > 0;
|
|
if (flag55)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass16 = dositoTCMSClass;
|
|
dositoTCMSClass16.errM += "MASNCF:";
|
|
}
|
|
else
|
|
{
|
|
bool flag56 = (data[28] & 1) > 0;
|
|
if (flag56)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass17 = dositoTCMSClass;
|
|
dositoTCMSClass17.errM += "BALISEAF:";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag57 = (data[29] & 128) > 0;
|
|
if (flag57)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass18 = dositoTCMSClass;
|
|
dositoTCMSClass18.errM = (dositoTCMSClass18.errM ?? "");
|
|
}
|
|
else
|
|
{
|
|
bool flag58 = (data[29] & 64) > 0;
|
|
if (flag58)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass19 = dositoTCMSClass;
|
|
dositoTCMSClass19.errM = (dositoTCMSClass19.errM ?? "");
|
|
}
|
|
else
|
|
{
|
|
bool flag59 = (data[29] & 32) > 0;
|
|
if (flag59)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass20 = dositoTCMSClass;
|
|
dositoTCMSClass20.errM = (dositoTCMSClass20.errM ?? "");
|
|
}
|
|
else
|
|
{
|
|
bool flag60 = (data[29] & 16) > 0;
|
|
if (flag60)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass21 = dositoTCMSClass;
|
|
dositoTCMSClass21.errM = (dositoTCMSClass21.errM ?? "");
|
|
}
|
|
else
|
|
{
|
|
bool flag61 = (data[29] & 8) > 0;
|
|
if (flag61)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass22 = dositoTCMSClass;
|
|
dositoTCMSClass22.errM = (dositoTCMSClass22.errM ?? "");
|
|
}
|
|
else
|
|
{
|
|
bool flag62 = (data[29] & 4) > 0;
|
|
if (flag62)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass23 = dositoTCMSClass;
|
|
dositoTCMSClass23.errM += "PG32F:";
|
|
}
|
|
else
|
|
{
|
|
bool flag63 = (data[29] & 2) > 0;
|
|
if (flag63)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass24 = dositoTCMSClass;
|
|
dositoTCMSClass24.errM += "PG2F:";
|
|
}
|
|
else
|
|
{
|
|
bool flag64 = (data[29] & 1) > 0;
|
|
if (flag64)
|
|
{
|
|
DOSItoTCMSClass dositoTCMSClass25 = dositoTCMSClass;
|
|
dositoTCMSClass25.errM += "PG1F:";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag65 = data[27] == 0 && data[28] == 0 && data[29] == 0;
|
|
if (flag65)
|
|
{
|
|
dositoTCMSClass.errM = "";
|
|
}
|
|
dositoTCMSClass.UserBCC = (uint)((uint)(data[31] & byte.MaxValue) << 8);
|
|
dositoTCMSClass.UserBCC |= (uint)(data[32] & byte.MaxValue);
|
|
dositoTCMSClass.text = BitConverter.ToString(data, 0, data.Length).Replace("-", " ");
|
|
return dositoTCMSClass;
|
|
}
|
|
}
|
|
}
|