AI_MMI_Analyser/c_Sharp_Code/lib/ddositommi.cs

1175 lines
35 KiB
C#

using System;
namespace SL200_RTLogViewer.lib
{
// Token: 0x02000033 RID: 51
public class DDOSItoMMI
{
// Token: 0x06000154 RID: 340 RVA: 0x00025054 File Offset: 0x00023254
public static DOSItoMMIClass SetData(byte[] data)
{
DOSItoMMIClass dositoMMIClass = new DOSItoMMIClass();
dositoMMIClass.seq = Convert.ToUInt32(data[1]);
dositoMMIClass.source = Convert.ToUInt32(data[3]);
dositoMMIClass.time = "20";
DOSItoMMIClass dositoMMIClass2 = dositoMMIClass;
dositoMMIClass2.time += string.Format("{0:x2}.", data[4]);
DOSItoMMIClass dositoMMIClass3 = dositoMMIClass;
dositoMMIClass3.time += string.Format("{0:x2}.", data[5]);
DOSItoMMIClass dositoMMIClass4 = dositoMMIClass;
dositoMMIClass4.time += string.Format("{0:x2} ", data[6]);
DOSItoMMIClass dositoMMIClass5 = dositoMMIClass;
dositoMMIClass5.time += string.Format("{0:x2}:", data[7]);
DOSItoMMIClass dositoMMIClass6 = dositoMMIClass;
dositoMMIClass6.time += string.Format("{0:x2}:", data[8]);
DOSItoMMIClass dositoMMIClass7 = dositoMMIClass;
dositoMMIClass7.time += string.Format("{0:x2}", data[9]);
dositoMMIClass.trainspeed = Convert.ToDouble((int)data[10] << 8 | (int)data[11]) / 10.0;
dositoMMIClass.limitspeed = Convert.ToUInt32(data[12]);
dositoMMIClass.do_zvr = ((data[13] & 32) > 0);
dositoMMIClass.do_edl = ((data[13] & 16) > 0);
dositoMMIClass.do_edr = ((data[13] & 8) > 0);
dositoMMIClass.do_fsb = ((data[13] & 4) > 0);
dositoMMIClass.do_ebm = ((data[13] & 2) > 0);
dositoMMIClass.do_ebp = ((data[13] & 1) > 0);
dositoMMIClass.system_active = ((data[14] & 128) > 0);
dositoMMIClass.over_spd_warning = ((data[14] & 64) > 0);
dositoMMIClass.tcr = ((data[14] & 32) > 0);
dositoMMIClass.hcr = ((data[14] & 16) > 0);
dositoMMIClass.door_open = ((data[14] & 8) > 0);
dositoMMIClass.door_close = ((data[14] & 4) > 0);
dositoMMIClass.psd_open = ((data[14] & 2) > 0);
dositoMMIClass.psd_close = ((data[14] & 1) > 0);
dositoMMIClass.fa = ((data[15] & 128) > 0);
dositoMMIClass.auto = ((data[15] & 64) > 0);
dositoMMIClass.mcs = ((data[15] & 32) > 0);
dositoMMIClass.yard = ((data[15] & 16) > 0);
dositoMMIClass.fmc = ((data[15] & 8) > 0);
dositoMMIClass.reversingrod_rvs = ((data[15] & 4) > 0);
dositoMMIClass.reversingrod_fwd = ((data[15] & 2) > 0);
dositoMMIClass.reversingrod_neu = ((data[15] & 1) > 0);
dositoMMIClass.ato_start_btn = ((data[16] & 128) > 0);
dositoMMIClass.ato_eb_req = ((data[16] & 64) > 0);
dositoMMIClass.tacho_dir_a = ((data[16] & 32) > 0);
dositoMMIClass.tacho_dir_b = ((data[16] & 16) > 0);
dositoMMIClass.mascon_neu = ((data[16] & 0) > 0);
dositoMMIClass.mascon_dr = ((data[16] & 2) > 0);
dositoMMIClass.mascon_br = ((data[16] & 4) > 0);
dositoMMIClass.mascon_eb = ((data[16] & 8) > 0);
dositoMMIClass.ack_whd1 = 860U - (Convert.ToUInt32(data[17]) - 1U) * 5U;
dositoMMIClass.ack_whd2 = 860U - (Convert.ToUInt32(data[18]) - 1U) * 5U;
bool flag = (data[19] & 192) == 0;
if (flag)
{
dositoMMIClass.atc_status = "INITIAL PDT";
}
else
{
bool flag2 = (data[19] & 192) == 192;
if (flag2)
{
dositoMMIClass.atc_status = "MANUAL PDT";
}
else
{
bool flag3 = (data[19] & 192) == 64;
if (flag3)
{
dositoMMIClass.atc_status = "ATC ACTIVE";
}
else
{
bool flag4 = (data[19] & 192) == 128;
if (flag4)
{
dositoMMIClass.atc_status = "ATC STANDBY";
}
else
{
dositoMMIClass.atc_status = "-";
}
}
}
}
dositoMMIClass.wheelcheck = ((data[19] & 32) > 0);
bool flag5 = (data[19] & 28) == 16;
if (flag5)
{
dositoMMIClass.mpdt = "START";
}
else
{
bool flag6 = (data[19] & 28) == 8;
if (flag6)
{
dositoMMIClass.mpdt = "NG";
}
else
{
bool flag7 = (data[19] & 28) == 4;
if (flag7)
{
dositoMMIClass.mpdt = "OK";
}
else
{
dositoMMIClass.mpdt = "-";
}
}
}
bool flag8 = (data[19] & 3) == 2;
if (flag8)
{
dositoMMIClass.ipdt = "NG";
}
else
{
bool flag9 = (data[19] & 3) == 1;
if (flag9)
{
dositoMMIClass.ipdt = "OK";
}
else
{
dositoMMIClass.ipdt = "-";
}
}
dositoMMIClass.fail_atcr = ((data[20] & 128) > 0);
dositoMMIClass.fail_atoc = ((data[20] & 64) > 0);
dositoMMIClass.fail_tcms = ((data[20] & 32) > 0);
dositoMMIClass.fail_tacho2 = ((data[20] & 2) > 0);
dositoMMIClass.fail_tacho1 = ((data[20] & 1) > 0);
dositoMMIClass.recovery = ((data[21] & 128) > 0);
dositoMMIClass.nomal = ((data[21] & 64) > 0);
dositoMMIClass.tasc = ((data[21] & 32) > 0);
bool flag10 = (data[21] & 31) == 16;
if (flag10)
{
dositoMMIClass.marker = "ATS";
}
else
{
bool flag11 = (data[21] & 31) == 8;
if (flag11)
{
dositoMMIClass.marker = "PGX";
}
else
{
bool flag12 = (data[21] & 31) == 4;
if (flag12)
{
dositoMMIClass.marker = "PG3-2";
}
else
{
bool flag13 = (data[21] & 31) == 2;
if (flag13)
{
dositoMMIClass.marker = "PG2";
}
else
{
bool flag14 = (data[21] & 31) == 1;
if (flag14)
{
dositoMMIClass.marker = "PG1";
}
else
{
dositoMMIClass.marker = "-";
}
}
}
}
}
dositoMMIClass.pwm_value = Convert.ToUInt32(data[22]);
dositoMMIClass.trac_dr = ((data[23] & 128) > 0);
dositoMMIClass.trac_br = ((data[23] & 64) > 0);
dositoMMIClass.trac_cs = ((data[23] & 32) > 0);
dositoMMIClass.ador = ((data[23] & 16) > 0);
dositoMMIClass.adol = ((data[23] & 8) > 0);
dositoMMIClass.adc = ((data[23] & 4) > 0);
dositoMMIClass.start_enable = ((data[23] & 2) > 0);
dositoMMIClass.trainberth = ((data[23] & 1) > 0);
dositoMMIClass.tc2 = ((data[24] & 128) > 0);
dositoMMIClass.tc1 = ((data[24] & 64) > 0);
dositoMMIClass.tascdb = ((data[24] & 32) > 0);
bool flag15 = (data[24] & 24) == 16;
if (flag15)
{
dositoMMIClass.tcmsdoor = "LDO";
}
else
{
bool flag16 = (data[24] & 24) == 8;
if (flag16)
{
dositoMMIClass.tcmsdoor = "RDO";
}
else
{
bool flag17 = (data[24] & 24) == 24;
if (flag17)
{
dositoMMIClass.tcmsdoor = "L,RDO";
}
else
{
dositoMMIClass.tcmsdoor = "-";
}
}
}
bool flag18 = (data[24] & 7) == 4;
if (flag18)
{
dositoMMIClass.doormod = "A / A";
}
else
{
bool flag19 = (data[24] & 7) == 2;
if (flag19)
{
dositoMMIClass.doormod = "A / M";
}
else
{
bool flag20 = (data[24] & 7) == 1;
if (flag20)
{
dositoMMIClass.doormod = "M / M";
}
}
}
dositoMMIClass.pre_brake = ((data[25] & 128) > 0);
dositoMMIClass.limit_drive = ((data[25] & 64) > 0);
dositoMMIClass.ov_stop1 = ((data[25] & 8) > 0);
dositoMMIClass.ov_stop2 = ((data[25] & 4) > 0);
dositoMMIClass.sh_stop1 = ((data[25] & 2) > 0);
dositoMMIClass.sh_stop2 = ((data[25] & 1) > 0);
dositoMMIClass.trainno = string.Format("{0:x4}", (uint)((int)data[26] << 8 | (int)data[27]));
dositoMMIClass.pstn = Convert.ToInt32(data[28]);
dositoMMIClass.nstn = Convert.ToInt32(data[29]);
dositoMMIClass.dstn = Convert.ToInt32(data[30]);
int num = (int)data[31] << 8 | (int)data[32];
bool tasc = dositoMMIClass.tasc;
if (tasc)
{
dositoMMIClass.dtg = Convert.ToDouble((float)num / 100f);
}
else
{
bool flag21 = dositoMMIClass.trainspeed == 0.0 && !dositoMMIClass.trac_dr;
if (flag21)
{
bool flag22 = (num & 32768) != 0;
if (flag22)
{
num -= 65536;
}
dositoMMIClass.dtg = Convert.ToDouble((float)num / 100f) * -1.0;
}
else
{
dositoMMIClass.dtg = Convert.ToDouble((float)num / 10f);
}
}
dositoMMIClass.osc_f = Convert.ToDouble((int)(data[55] ^ 99) << 8 | (int)(data[58] ^ 100)) / 10.0;
dositoMMIClass.ato_limitSpeed = Convert.ToUInt32(data[33]);
dositoMMIClass.kur = ((data[34] & 128) > 0);
dositoMMIClass.osc = ((data[34] & 64) > 0);
dositoMMIClass.inching = ((data[34] & 32) > 0);
dositoMMIClass.twct_enable = ((data[34] & 16) > 0);
dositoMMIClass.door_close_warning = ((data[34] & 8) > 0);
dositoMMIClass.wrongdoor = ((data[34] & 4) > 0);
bool flag23 = (data[34] & 3) == 2;
if (flag23)
{
dositoMMIClass.nextdoor = "오른쪽";
}
else
{
bool flag24 = (data[34] & 3) == 1;
if (flag24)
{
dositoMMIClass.nextdoor = "왼쪽";
}
else
{
dositoMMIClass.nextdoor = "-";
}
}
bool flag25 = (data[35] & 240) >> 4 == 0;
if (flag25)
{
dositoMMIClass.atc_code = "02";
}
else
{
bool flag26 = (data[35] & 240) >> 4 == 1;
if (flag26)
{
dositoMMIClass.atc_code = "01";
}
else
{
bool flag27 = (data[35] & 240) >> 4 == 2;
if (flag27)
{
dositoMMIClass.atc_code = "25";
}
else
{
bool flag28 = (data[35] & 240) >> 4 == 3;
if (flag28)
{
dositoMMIClass.atc_code = "40";
}
else
{
bool flag29 = (data[35] & 240) >> 4 == 4;
if (flag29)
{
dositoMMIClass.atc_code = "55";
}
else
{
bool flag30 = (data[35] & 240) >> 4 == 5;
if (flag30)
{
dositoMMIClass.atc_code = "65";
}
else
{
bool flag31 = (data[35] & 240) >> 4 == 6;
if (flag31)
{
dositoMMIClass.atc_code = "75";
}
else
{
bool flag32 = (data[35] & 240) >> 4 == 7;
if (flag32)
{
dositoMMIClass.atc_code = "DE";
}
else
{
bool flag33 = (data[35] & 240) >> 4 == 8;
if (flag33)
{
dositoMMIClass.atc_code = "DW";
}
else
{
dositoMMIClass.atc_code = "-";
}
}
}
}
}
}
}
}
}
dositoMMIClass.osc_f0_ok = ((data[35] & 8) > 0);
bool flag34 = (data[35] & 7) == 0;
if (flag34)
{
dositoMMIClass.atc_carrier_f = "-";
}
else
{
bool flag35 = (data[35] & 7) == 1;
if (flag35)
{
dositoMMIClass.atc_carrier_f = "F1";
}
else
{
bool flag36 = (data[35] & 7) == 2;
if (flag36)
{
dositoMMIClass.atc_carrier_f = "F2";
}
else
{
bool flag37 = (data[35] & 7) == 3;
if (flag37)
{
dositoMMIClass.atc_carrier_f = "F3";
}
else
{
bool flag38 = (data[35] & 7) == 4;
if (flag38)
{
dositoMMIClass.atc_carrier_f = "F4";
}
}
}
}
}
dositoMMIClass.atc_code_carrier_f = Convert.ToDouble((int)(data[36] ^ 65) << 8 | (int)(data[37] ^ 82)) * 10.0;
dositoMMIClass.atc_code_f = Convert.ToDouble((int)(data[38] ^ 99) << 8 | (int)(data[39] ^ 116)) / 10.0;
dositoMMIClass.messageh = Convert.ToInt32(data[40]);
bool flag39 = (data[41] & 128) > 0;
if (flag39)
{
DOSItoMMIClass dositoMMIClass8 = dositoMMIClass;
dositoMMIClass8.diagnostic_err_msg += "ATIVSTATUS ERR:";
}
bool flag40 = (data[41] & 64) > 0;
if (flag40)
{
DOSItoMMIClass dositoMMIClass9 = dositoMMIClass;
dositoMMIClass9.diagnostic_err_msg += "VOTING ERR:";
}
bool flag41 = (data[41] & 32) > 0;
if (flag41)
{
DOSItoMMIClass dositoMMIClass10 = dositoMMIClass;
dositoMMIClass10.diagnostic_err_msg += "RUNRTDGET ERR:";
}
bool flag42 = (data[41] & 16) > 0;
if (flag42)
{
DOSItoMMIClass dositoMMIClass11 = dositoMMIClass;
dositoMMIClass11.diagnostic_err_msg += "ATIVSTATUS GET ERR:";
}
bool flag43 = (data[41] & 8) > 0;
if (flag43)
{
DOSItoMMIClass dositoMMIClass12 = dositoMMIClass;
dositoMMIClass12.diagnostic_err_msg = (dositoMMIClass12.diagnostic_err_msg ?? "");
}
bool flag44 = (data[41] & 4) > 0;
if (flag44)
{
DOSItoMMIClass dositoMMIClass13 = dositoMMIClass;
dositoMMIClass13.diagnostic_err_msg = (dositoMMIClass13.diagnostic_err_msg ?? "");
}
bool flag45 = (data[41] & 2) > 0;
if (flag45)
{
DOSItoMMIClass dositoMMIClass14 = dositoMMIClass;
dositoMMIClass14.diagnostic_err_msg = (dositoMMIClass14.diagnostic_err_msg ?? "");
}
bool flag46 = (data[41] & 1) > 0;
if (flag46)
{
DOSItoMMIClass dositoMMIClass15 = dositoMMIClass;
dositoMMIClass15.diagnostic_err_msg = (dositoMMIClass15.diagnostic_err_msg ?? "");
}
bool flag47 = (data[42] & 128) > 0;
if (flag47)
{
DOSItoMMIClass dositoMMIClass16 = dositoMMIClass;
dositoMMIClass16.diagnostic_err_msg += "MDHEALTYG ERR:";
}
bool flag48 = (data[42] & 32) > 0;
if (flag48)
{
DOSItoMMIClass dositoMMIClass17 = dositoMMIClass;
dositoMMIClass17.diagnostic_err_msg += "INPUT ERR:";
}
bool flag49 = (data[42] & 16) > 0;
if (flag49)
{
DOSItoMMIClass dositoMMIClass18 = dositoMMIClass;
dositoMMIClass18.diagnostic_err_msg += "UNHEALTHY ERR:";
}
bool flag50 = (data[42] & 8) > 0;
if (flag50)
{
DOSItoMMIClass dositoMMIClass19 = dositoMMIClass;
dositoMMIClass19.diagnostic_err_msg += "EOT ERR:";
}
bool flag51 = (data[42] & 4) > 0;
if (flag51)
{
DOSItoMMIClass dositoMMIClass20 = dositoMMIClass;
dositoMMIClass20.diagnostic_err_msg += "EOTVALGET ERR:";
}
bool flag52 = (data[42] & 2) > 0;
if (flag52)
{
DOSItoMMIClass dositoMMIClass21 = dositoMMIClass;
dositoMMIClass21.diagnostic_err_msg += "RUN RTD ERR:";
}
bool flag53 = (data[42] & 1) > 0;
if (flag53)
{
DOSItoMMIClass dositoMMIClass22 = dositoMMIClass;
dositoMMIClass22.diagnostic_err_msg += "RUN RTD SET ERR:";
}
bool flag54 = (data[43] & 128) > 0;
if (flag54)
{
DOSItoMMIClass dositoMMIClass23 = dositoMMIClass;
dositoMMIClass23.diagnostic_err_msg = (dositoMMIClass23.diagnostic_err_msg ?? "");
}
bool flag55 = (data[43] & 64) > 0;
if (flag55)
{
DOSItoMMIClass dositoMMIClass24 = dositoMMIClass;
dositoMMIClass24.diagnostic_err_msg = (dositoMMIClass24.diagnostic_err_msg ?? "");
}
bool flag56 = (data[43] & 32) > 0;
if (flag56)
{
DOSItoMMIClass dositoMMIClass25 = dositoMMIClass;
dositoMMIClass25.diagnostic_err_msg += "EB DATA ERR:";
}
bool flag57 = (data[43] & 16) > 0;
if (flag57)
{
DOSItoMMIClass dositoMMIClass26 = dositoMMIClass;
dositoMMIClass26.diagnostic_err_msg += "VDO TEMP ERR:";
}
bool flag58 = (data[43] & 8) > 0;
if (flag58)
{
DOSItoMMIClass dositoMMIClass27 = dositoMMIClass;
dositoMMIClass27.diagnostic_err_msg += "VDI TEMP ERR:";
}
bool flag59 = (data[43] & 4) > 0;
if (flag59)
{
DOSItoMMIClass dositoMMIClass28 = dositoMMIClass;
dositoMMIClass28.diagnostic_err_msg += "OUTGOING ERR:";
}
bool flag60 = (data[43] & 2) > 0;
if (flag60)
{
DOSItoMMIClass dositoMMIClass29 = dositoMMIClass;
dositoMMIClass29.diagnostic_err_msg += "OUTPUT FB ERR:";
}
bool flag61 = data[41] == 0 && data[42] == 0 && data[43] == 0;
if (flag61)
{
dositoMMIClass.diagnostic_err_msg = "";
}
bool flag62 = (data[45] & 128) > 0;
if (flag62)
{
DOSItoMMIClass dositoMMIClass30 = dositoMMIClass;
dositoMMIClass30.atc_err_msg += "MSCSTATE ERR:";
}
bool flag63 = (data[45] & 64) > 0;
if (flag63)
{
DOSItoMMIClass dositoMMIClass31 = dositoMMIClass;
dositoMMIClass31.atc_err_msg += "DOORSTAT E.ERR:";
}
bool flag64 = (data[45] & 32) > 0;
if (flag64)
{
DOSItoMMIClass dositoMMIClass32 = dositoMMIClass;
dositoMMIClass32.atc_err_msg += "DRIVEMODE ERR:";
}
bool flag65 = (data[45] & 16) > 0;
if (flag65)
{
DOSItoMMIClass dositoMMIClass33 = dositoMMIClass;
dositoMMIClass33.atc_err_msg += "CABMOD ERR:";
}
bool flag66 = (data[45] & 8) > 0;
if (flag66)
{
DOSItoMMIClass dositoMMIClass34 = dositoMMIClass;
dositoMMIClass34.atc_err_msg += "IPDT WHL ERR:";
}
bool flag67 = (data[45] & 4) > 0;
if (flag67)
{
DOSItoMMIClass dositoMMIClass35 = dositoMMIClass;
dositoMMIClass35.atc_err_msg += "IPDT TACHO ERR:";
}
bool flag68 = (data[45] & 2) > 0;
if (flag68)
{
DOSItoMMIClass dositoMMIClass36 = dositoMMIClass;
dositoMMIClass36.atc_err_msg += "IPDT EB ERR:";
}
bool flag69 = (data[45] & 1) > 0;
if (flag69)
{
DOSItoMMIClass dositoMMIClass37 = dositoMMIClass;
dositoMMIClass37.atc_err_msg += "IPDT ATCR ERR:";
}
bool flag70 = (data[46] & 128) > 0;
if (flag70)
{
DOSItoMMIClass dositoMMIClass38 = dositoMMIClass;
dositoMMIClass38.atc_err_msg += "MAXSPEED ERR:";
}
bool flag71 = (data[46] & 64) > 0;
if (flag71)
{
DOSItoMMIClass dositoMMIClass39 = dositoMMIClass;
dositoMMIClass39.atc_err_msg += "WHELLDIA ERR:";
}
bool flag72 = (data[46] & 32) > 0;
if (flag72)
{
DOSItoMMIClass dositoMMIClass40 = dositoMMIClass;
dositoMMIClass40.atc_err_msg += "MANUALPDT ERR:";
}
bool flag73 = (data[46] & 16) > 0;
if (flag73)
{
DOSItoMMIClass dositoMMIClass41 = dositoMMIClass;
dositoMMIClass41.atc_err_msg += "INITPDT ERR:";
}
bool flag74 = (data[46] & 8) > 0;
if (flag74)
{
DOSItoMMIClass dositoMMIClass42 = dositoMMIClass;
dositoMMIClass42.atc_err_msg += "DIRSET ERR:";
}
bool flag75 = (data[46] & 4) > 0;
if (flag75)
{
DOSItoMMIClass dositoMMIClass43 = dositoMMIClass;
dositoMMIClass43.atc_err_msg += "TCSEL ERR:";
}
bool flag76 = (data[46] & 2) > 0;
if (flag76)
{
DOSItoMMIClass dositoMMIClass44 = dositoMMIClass;
dositoMMIClass44.atc_err_msg += "PSDSTATE ERR:";
}
bool flag77 = (data[46] & 1) > 0;
if (flag77)
{
DOSItoMMIClass dositoMMIClass45 = dositoMMIClass;
dositoMMIClass45.atc_err_msg += "REVERSING ERR:";
}
bool flag78 = (data[47] & 128) > 0;
if (flag78)
{
DOSItoMMIClass dositoMMIClass46 = dositoMMIClass;
dositoMMIClass46.atc_err_msg += "TRBSMODE ERR:";
}
bool flag79 = (data[47] & 64) > 0;
if (flag79)
{
DOSItoMMIClass dositoMMIClass47 = dositoMMIClass;
dositoMMIClass47.atc_err_msg += "TDCSMOD E.ERR:";
}
bool flag80 = (data[47] & 32) > 0;
if (flag80)
{
DOSItoMMIClass dositoMMIClass48 = dositoMMIClass;
dositoMMIClass48.atc_err_msg += "TZSSMODE ERR:";
}
bool flag81 = (data[47] & 16) > 0;
if (flag81)
{
DOSItoMMIClass dositoMMIClass49 = dositoMMIClass;
dositoMMIClass49.atc_err_msg += "TRSSMODE ERR:";
}
bool flag82 = (data[47] & 8) > 0;
if (flag82)
{
DOSItoMMIClass dositoMMIClass50 = dositoMMIClass;
dositoMMIClass50.atc_err_msg += "RESTRICTION ERR:";
}
bool flag83 = (data[47] & 4) > 0;
if (flag83)
{
DOSItoMMIClass dositoMMIClass51 = dositoMMIClass;
dositoMMIClass51.atc_err_msg += "ATCCODE ERR:";
}
bool flag84 = (data[47] & 2) > 0;
if (flag84)
{
DOSItoMMIClass dositoMMIClass52 = dositoMMIClass;
dositoMMIClass52.atc_err_msg += "MAXPULSE ERR:";
}
bool flag85 = (data[47] & 1) > 0;
if (flag85)
{
DOSItoMMIClass dositoMMIClass53 = dositoMMIClass;
dositoMMIClass53.atc_err_msg += "DIFFSPEED ERR:";
}
bool flag86 = (data[48] & 16) > 0;
if (flag86)
{
DOSItoMMIClass dositoMMIClass54 = dositoMMIClass;
dositoMMIClass54.atc_err_msg += "PSDSTATE RECOVERY:";
}
bool flag87 = (data[48] & 8) > 0;
if (flag87)
{
DOSItoMMIClass dositoMMIClass55 = dositoMMIClass;
dositoMMIClass55.atc_err_msg += "MNUALSTD BYCLR ERR:";
}
bool flag88 = (data[48] & 4) > 0;
if (flag88)
{
DOSItoMMIClass dositoMMIClass56 = dositoMMIClass;
dositoMMIClass56.atc_err_msg += "MNUALSTD BYSET ERR:";
}
bool flag89 = (data[48] & 2) > 0;
if (flag89)
{
DOSItoMMIClass dositoMMIClass57 = dositoMMIClass;
dositoMMIClass57.atc_err_msg += "ATCMODE ERR:";
}
bool flag90 = (data[48] & 1) > 0;
if (flag90)
{
DOSItoMMIClass dositoMMIClass58 = dositoMMIClass;
dositoMMIClass58.atc_err_msg += "DIRECTION ERR:";
}
bool flag91 = data[45] == 0 && data[46] == 0 && data[47] == 0 && data[48] == 0;
if (flag91)
{
dositoMMIClass.atc_err_msg = "";
}
bool flag92 = data[40] == 7;
if (flag92)
{
DOSItoMMIClass dositoMMIClass59 = dositoMMIClass;
dositoMMIClass59.atc_err_msg += "TRAIN DECEL WARNING:";
}
bool flag93 = data[40] == 8;
if (flag93)
{
DOSItoMMIClass dositoMMIClass60 = dositoMMIClass;
dositoMMIClass60.atc_err_msg += "REVERSE OVER SPEED WARNING:";
}
bool flag94 = data[40] == 9;
if (flag94)
{
DOSItoMMIClass dositoMMIClass61 = dositoMMIClass;
dositoMMIClass61.atc_err_msg += "DOOR OPEN STATUE EB:";
}
bool flag95 = data[40] == 10;
if (flag95)
{
DOSItoMMIClass dositoMMIClass62 = dositoMMIClass;
dositoMMIClass62.atc_err_msg += "TRAIN ROLL-BACK EB:";
}
bool flag96 = data[40] == 11;
if (flag96)
{
DOSItoMMIClass dositoMMIClass63 = dositoMMIClass;
dositoMMIClass63.atc_err_msg += "TRAIN MOVE EB:";
}
bool flag97 = data[40] == 11;
if (flag97)
{
DOSItoMMIClass dositoMMIClass64 = dositoMMIClass;
dositoMMIClass64.ato_err_msg += "STNCODE ERROR:";
}
bool flag98 = (data[49] & 128) > 0;
if (flag98)
{
DOSItoMMIClass dositoMMIClass65 = dositoMMIClass;
dositoMMIClass65.interface_err_msg += "MMI INIT ERR:";
}
bool flag99 = (data[49] & 64) > 0;
if (flag99)
{
DOSItoMMIClass dositoMMIClass66 = dositoMMIClass;
dositoMMIClass66.interface_err_msg += "MMI W ERR:";
}
bool flag100 = (data[49] & 32) > 0;
if (flag100)
{
DOSItoMMIClass dositoMMIClass67 = dositoMMIClass;
dositoMMIClass67.interface_err_msg += "MMI R ERR:";
}
bool flag101 = (data[50] & 128) > 0;
if (flag101)
{
DOSItoMMIClass dositoMMIClass68 = dositoMMIClass;
dositoMMIClass68.interface_err_msg += "ATCR INIT ERR:";
}
bool flag102 = (data[50] & 64) > 0;
if (flag102)
{
DOSItoMMIClass dositoMMIClass69 = dositoMMIClass;
dositoMMIClass69.interface_err_msg += "ATCR W ERR:";
}
bool flag103 = (data[50] & 32) > 0;
if (flag103)
{
DOSItoMMIClass dositoMMIClass70 = dositoMMIClass;
dositoMMIClass70.interface_err_msg += "ATCR R ERR:";
}
bool flag104 = (data[50] & 8) > 0;
if (flag104)
{
DOSItoMMIClass dositoMMIClass71 = dositoMMIClass;
dositoMMIClass71.interface_err_msg += "TCMS INIT ERR:";
}
bool flag105 = (data[50] & 4) > 0;
if (flag105)
{
DOSItoMMIClass dositoMMIClass72 = dositoMMIClass;
dositoMMIClass72.interface_err_msg += "TCMS W ERR:";
}
bool flag106 = (data[50] & 2) > 0;
if (flag106)
{
DOSItoMMIClass dositoMMIClass73 = dositoMMIClass;
dositoMMIClass73.interface_err_msg += "TCMS R ERR:";
}
bool flag107 = (data[50] & 1) > 0;
if (flag107)
{
DOSItoMMIClass dositoMMIClass74 = dositoMMIClass;
dositoMMIClass74.interface_err_msg = (dositoMMIClass74.interface_err_msg ?? "");
}
bool flag108 = (data[51] & 128) > 0;
if (flag108)
{
DOSItoMMIClass dositoMMIClass75 = dositoMMIClass;
dositoMMIClass75.interface_err_msg += "VDI INIT ERR:";
}
bool flag109 = (data[51] & 64) > 0;
if (flag109)
{
DOSItoMMIClass dositoMMIClass76 = dositoMMIClass;
dositoMMIClass76.interface_err_msg += "VDI W ERR:";
}
bool flag110 = (data[51] & 32) > 0;
if (flag110)
{
DOSItoMMIClass dositoMMIClass77 = dositoMMIClass;
dositoMMIClass77.interface_err_msg += "VDI R ERR:";
}
bool flag111 = (data[51] & 16) > 0;
if (flag111)
{
DOSItoMMIClass dositoMMIClass78 = dositoMMIClass;
dositoMMIClass78.interface_err_msg += "DIO INIT ERR:";
}
bool flag112 = (data[51] & 8) > 0;
if (flag112)
{
DOSItoMMIClass dositoMMIClass79 = dositoMMIClass;
dositoMMIClass79.interface_err_msg += "ATOC INIT ERR:";
}
bool flag113 = (data[51] & 4) > 0;
if (flag113)
{
DOSItoMMIClass dositoMMIClass80 = dositoMMIClass;
dositoMMIClass80.interface_err_msg += "ATOC W ERR:";
}
bool flag114 = (data[51] & 2) > 0;
if (flag114)
{
DOSItoMMIClass dositoMMIClass81 = dositoMMIClass;
dositoMMIClass81.interface_err_msg += "ATOC R ERR_1:";
}
bool flag115 = (data[51] & 1) > 0;
if (flag115)
{
DOSItoMMIClass dositoMMIClass82 = dositoMMIClass;
dositoMMIClass82.interface_err_msg += "ATOC R ERR_2:";
}
bool flag116 = (data[52] & 128) > 0;
if (flag116)
{
DOSItoMMIClass dositoMMIClass83 = dositoMMIClass;
dositoMMIClass83.interface_err_msg = (dositoMMIClass83.interface_err_msg ?? "");
}
bool flag117 = (data[52] & 64) > 0;
if (flag117)
{
DOSItoMMIClass dositoMMIClass84 = dositoMMIClass;
dositoMMIClass84.interface_err_msg = (dositoMMIClass84.interface_err_msg ?? "");
}
bool flag118 = (data[52] & 32) > 0;
if (flag118)
{
DOSItoMMIClass dositoMMIClass85 = dositoMMIClass;
dositoMMIClass85.interface_err_msg = (dositoMMIClass85.interface_err_msg ?? "");
}
bool flag119 = (data[52] & 16) > 0;
if (flag119)
{
DOSItoMMIClass dositoMMIClass86 = dositoMMIClass;
dositoMMIClass86.interface_err_msg = (dositoMMIClass86.interface_err_msg ?? "");
}
bool flag120 = (data[52] & 8) > 0;
if (flag120)
{
DOSItoMMIClass dositoMMIClass87 = dositoMMIClass;
dositoMMIClass87.interface_err_msg += "VDO INIT ERR:";
}
bool flag121 = (data[52] & 4) > 0;
if (flag121)
{
DOSItoMMIClass dositoMMIClass88 = dositoMMIClass;
dositoMMIClass88.interface_err_msg += "VDO W ERR:";
}
bool flag122 = (data[52] & 2) > 0;
if (flag122)
{
DOSItoMMIClass dositoMMIClass89 = dositoMMIClass;
dositoMMIClass89.interface_err_msg += "VDO R ERR:";
}
bool flag123 = (data[52] & 1) > 0;
if (flag123)
{
DOSItoMMIClass dositoMMIClass90 = dositoMMIClass;
dositoMMIClass90.interface_err_msg = (dositoMMIClass90.interface_err_msg ?? "");
}
bool flag124 = data[49] == 0 && data[50] == 0 && data[51] == 0 && data[52] == 0;
if (flag124)
{
dositoMMIClass.interface_err_msg = "";
}
bool flag125 = (data[53] & 128) > 0;
if (flag125)
{
DOSItoMMIClass dositoMMIClass91 = dositoMMIClass;
dositoMMIClass91.ato_err_msg += "ATO ANT ERR_1:";
}
bool flag126 = (data[53] & 64) > 0;
if (flag126)
{
DOSItoMMIClass dositoMMIClass92 = dositoMMIClass;
dositoMMIClass92.ato_err_msg = (dositoMMIClass92.ato_err_msg ?? "");
}
bool flag127 = (data[53] & 32) > 0;
if (flag127)
{
DOSItoMMIClass dositoMMIClass93 = dositoMMIClass;
dositoMMIClass93.ato_err_msg += "RLY FB ERR:";
}
bool flag128 = (data[53] & 16) > 0;
if (flag128)
{
DOSItoMMIClass dositoMMIClass94 = dositoMMIClass;
dositoMMIClass94.ato_err_msg += "DOORCL ERR:";
}
bool flag129 = (data[53] & 8) > 0;
if (flag129)
{
DOSItoMMIClass dositoMMIClass95 = dositoMMIClass;
dositoMMIClass95.ato_err_msg += "DOOROP ERR:";
}
bool flag130 = (data[53] & 4) > 0;
if (flag130)
{
DOSItoMMIClass dositoMMIClass96 = dositoMMIClass;
dositoMMIClass96.ato_err_msg += "STNCODE ERR:";
}
bool flag131 = (data[53] & 2) > 0;
if (flag131)
{
DOSItoMMIClass dositoMMIClass97 = dositoMMIClass;
dositoMMIClass97.ato_err_msg += "ATO ANT ERR_2:";
}
bool flag132 = (data[53] & 1) > 0;
if (flag132)
{
DOSItoMMIClass dositoMMIClass98 = dositoMMIClass;
dositoMMIClass98.ato_err_msg += "ATO STOP ERR:";
}
bool flag133 = (data[54] & 128) > 0;
if (flag133)
{
DOSItoMMIClass dositoMMIClass99 = dositoMMIClass;
dositoMMIClass99.ato_err_msg = (dositoMMIClass99.ato_err_msg ?? "");
}
bool flag134 = (data[54] & 64) > 0;
if (flag134)
{
DOSItoMMIClass dositoMMIClass100 = dositoMMIClass;
dositoMMIClass100.ato_err_msg = (dositoMMIClass100.ato_err_msg ?? "");
}
bool flag135 = (data[54] & 32) > 0;
if (flag135)
{
DOSItoMMIClass dositoMMIClass101 = dositoMMIClass;
dositoMMIClass101.ato_err_msg = (dositoMMIClass101.ato_err_msg ?? "");
}
bool flag136 = (data[54] & 16) > 0;
if (flag136)
{
DOSItoMMIClass dositoMMIClass102 = dositoMMIClass;
dositoMMIClass102.ato_err_msg = (dositoMMIClass102.ato_err_msg ?? "");
}
bool flag137 = (data[54] & 8) > 0;
if (flag137)
{
DOSItoMMIClass dositoMMIClass103 = dositoMMIClass;
dositoMMIClass103.ato_err_msg = (dositoMMIClass103.ato_err_msg ?? "");
}
bool flag138 = (data[54] & 4) > 0;
if (flag138)
{
DOSItoMMIClass dositoMMIClass104 = dositoMMIClass;
dositoMMIClass104.ato_err_msg += "ATO.PG32 ERR:";
}
bool flag139 = (data[54] & 2) > 0;
if (flag139)
{
DOSItoMMIClass dositoMMIClass105 = dositoMMIClass;
dositoMMIClass105.ato_err_msg += "ATO.PG2 ERR:";
}
bool flag140 = (data[54] & 1) > 0;
if (flag140)
{
DOSItoMMIClass dositoMMIClass106 = dositoMMIClass;
dositoMMIClass106.ato_err_msg += "ATO.PG1 ERR:";
}
bool flag141 = data[53] == 0 && data[54] == 0;
if (flag141)
{
dositoMMIClass.ato_err_msg = "";
}
dositoMMIClass.atc_swver = string.Format("V{0}.{1}", Convert.ToString((data[56] & 240) >> 4, 16).ToUpper(), (double)(data[56] & 15) / 10.0);
dositoMMIClass.ato_err_detect = Convert.ToString(data[57], 16);
string[] array = dositoMMIClass.time.Split(new char[]
{
'.'
});
bool flag142 = array[0] == "2024" && int.Parse(array[1]) < 6;
if (flag142)
{
dositoMMIClass.ato_err_msg = "";
}
else
{
bool flag143 = (data[57] & 128) > 0;
if (flag143)
{
DOSItoMMIClass dositoMMIClass107 = dositoMMIClass;
dositoMMIClass107.ato_err_msg += "ATOCR NG:";
}
bool flag144 = (data[57] & 64) > 0;
if (flag144)
{
DOSItoMMIClass dositoMMIClass108 = dositoMMIClass;
dositoMMIClass108.ato_err_msg += "CCC CommFAIL:";
}
bool flag145 = (data[57] & 32) > 0;
if (flag145)
{
DOSItoMMIClass dositoMMIClass109 = dositoMMIClass;
dositoMMIClass109.ato_err_msg += "ATOR CommFAIL:";
}
bool flag146 = (data[57] & 16) > 0;
if (flag146)
{
DOSItoMMIClass dositoMMIClass110 = dositoMMIClass;
dositoMMIClass110.ato_err_msg += "TWCR CommFAIL:";
}
bool flag147 = (data[57] & 8) > 0;
if (flag147)
{
DOSItoMMIClass dositoMMIClass111 = dositoMMIClass;
dositoMMIClass111.ato_err_msg += "TWCT CommFAIL:";
}
bool flag148 = (data[57] & 4) > 0;
if (flag148)
{
DOSItoMMIClass dositoMMIClass112 = dositoMMIClass;
dositoMMIClass112.ato_err_msg += "PWM_FB ERR:";
}
bool flag149 = (data[57] & 1) > 0;
if (flag149)
{
DOSItoMMIClass dositoMMIClass113 = dositoMMIClass;
dositoMMIClass113.ato_err_msg += "SPD_Diff DETECT:";
}
}
dositoMMIClass.trainspeed_a = Convert.ToDouble((int)data[59] << 8 | (int)data[60]) / 10.0;
dositoMMIClass.trainspeed_b = Convert.ToDouble((int)data[61] << 8 | (int)data[62]) / 10.0;
dositoMMIClass.vdia_input = Convert.ToString(data[63], 16).ToUpper() + data[64].ToString("X2").ToUpper();
dositoMMIClass.vdia_rvs = ((data[63] & 128) > 0);
dositoMMIClass.vdia_neu = ((data[63] & 64) > 0);
dositoMMIClass.vdia_fwd = ((data[63] & 32) > 0);
dositoMMIClass.vdia_mascondr = ((data[63] & 16) > 0);
dositoMMIClass.vdia_masconbr = ((data[63] & 8) > 0);
dositoMMIClass.vdia_masconeb = ((data[63] & 4) > 0);
dositoMMIClass.vdia_doorclose = ((data[63] & 2) > 0);
dositoMMIClass.vdia_dooropen = ((data[63] & 1) > 0);
dositoMMIClass.vdia_fmc = ((data[64] & 64) > 0);
dositoMMIClass.vdia_yard = ((data[64] & 32) > 0);
dositoMMIClass.vdia_mcs = ((data[64] & 16) > 0);
dositoMMIClass.vdia_auto = ((data[64] & 8) > 0);
dositoMMIClass.vdia_fa = ((data[64] & 4) > 0);
dositoMMIClass.vdia_tcr = ((data[64] & 2) > 0);
dositoMMIClass.vdia_hcr = ((data[64] & 1) > 0);
dositoMMIClass.vdia_stat = Convert.ToString(data[65], 16).ToUpper();
dositoMMIClass.vdib_input = Convert.ToString(data[66], 16).ToUpper() + data[67].ToString("X2").ToUpper();
dositoMMIClass.vdib_rvs = ((data[66] & 128) > 0);
dositoMMIClass.vdib_neu = ((data[66] & 64) > 0);
dositoMMIClass.vdib_fwd = ((data[66] & 32) > 0);
dositoMMIClass.vdib_mascondr = ((data[66] & 16) > 0);
dositoMMIClass.vdib_masconbr = ((data[66] & 8) > 0);
dositoMMIClass.vdib_masconeb = ((data[66] & 4) > 0);
dositoMMIClass.vdib_doorclose = ((data[66] & 2) > 0);
dositoMMIClass.vdib_dooropen = ((data[66] & 1) > 0);
dositoMMIClass.vdib_fmc = ((data[67] & 64) > 0);
dositoMMIClass.vdib_yard = ((data[67] & 32) > 0);
dositoMMIClass.vdib_mcs = ((data[67] & 16) > 0);
dositoMMIClass.vdib_auto = ((data[67] & 8) > 0);
dositoMMIClass.vdib_fa = ((data[67] & 4) > 0);
dositoMMIClass.vdib_tcr = ((data[67] & 2) > 0);
dositoMMIClass.vdib_hcr = ((data[67] & 1) > 0);
dositoMMIClass.vdib_stat = Convert.ToString(data[68], 16).ToUpper();
dositoMMIClass.vdic_input = Convert.ToString(data[69], 16).ToUpper() + data[70].ToString("X2").ToUpper();
dositoMMIClass.vdic_tc2 = ((data[69] & 128) > 0);
dositoMMIClass.vdic_tc1 = ((data[69] & 64) > 0);
dositoMMIClass.vdic_edlfb = ((data[69] & 32) > 0);
dositoMMIClass.vdic_edrfb = ((data[69] & 16) > 0);
dositoMMIClass.vdic_zvrfb = ((data[69] & 8) > 0);
dositoMMIClass.vdic_fsbfb = ((data[69] & 4) > 0);
dositoMMIClass.vdic_ebmfb = ((data[69] & 2) > 0);
dositoMMIClass.vdic_ebpfb = ((data[69] & 1) > 0);
dositoMMIClass.vdic_unit1 = ((data[70] & 128) > 0);
dositoMMIClass.vdic_startbtn = ((data[70] & 4) > 0);
dositoMMIClass.vdic_psdclose = ((data[70] & 2) > 0);
dositoMMIClass.vdic_psdopen = ((data[70] & 1) > 0);
dositoMMIClass.vdic_stat = Convert.ToString(data[71], 16).ToUpper();
dositoMMIClass.vdid_input = Convert.ToString(data[72], 16).ToUpper() + data[73].ToString("X2").ToUpper();
dositoMMIClass.vdid_tc2 = ((data[72] & 128) > 0);
dositoMMIClass.vdid_tc1 = ((data[72] & 64) > 0);
dositoMMIClass.vdid_edlfb = ((data[72] & 32) > 0);
dositoMMIClass.vdid_edrfb = ((data[72] & 16) > 0);
dositoMMIClass.vdid_zvrfb = ((data[72] & 8) > 0);
dositoMMIClass.vdid_fsbfb = ((data[72] & 4) > 0);
dositoMMIClass.vdid_ebmfb = ((data[72] & 2) > 0);
dositoMMIClass.vdid_ebpfb = ((data[72] & 1) > 0);
dositoMMIClass.vdid_unit1 = ((data[73] & 128) > 0);
dositoMMIClass.vdid_startbtn = ((data[73] & 4) > 0);
dositoMMIClass.vdid_psdclose = ((data[73] & 2) > 0);
dositoMMIClass.vdid_psdopen = ((data[73] & 1) > 0);
dositoMMIClass.vdid_stat = Convert.ToString(data[74], 16).ToUpper();
dositoMMIClass.vdoa_feedback = data[75].ToString("X2").ToUpper();
dositoMMIClass.vdoa_edl = ((data[75] & 32) > 0);
dositoMMIClass.vdoa_edr = ((data[75] & 16) > 0);
dositoMMIClass.vdoa_zvr = ((data[75] & 8) > 0);
dositoMMIClass.vdoa_fsb = ((data[75] & 4) > 0);
dositoMMIClass.vdoa_ebm = ((data[75] & 2) > 0);
dositoMMIClass.vdoa_ebp = ((data[75] & 1) > 0);
dositoMMIClass.vdoa_stat = Convert.ToString(data[76], 16).ToUpper();
dositoMMIClass.vdob_feedback = data[77].ToString("X2").ToUpper();
dositoMMIClass.vdob_edl = ((data[77] & 32) > 0);
dositoMMIClass.vdob_edr = ((data[77] & 16) > 0);
dositoMMIClass.vdob_zvr = ((data[77] & 8) > 0);
dositoMMIClass.vdob_fsb = ((data[77] & 4) > 0);
dositoMMIClass.vdob_ebm = ((data[77] & 2) > 0);
dositoMMIClass.vdob_ebp = ((data[77] & 1) > 0);
dositoMMIClass.vdob_stat = Convert.ToString(data[78], 16).ToUpper();
dositoMMIClass.UserCRC = (uint)((uint)(data[60] & byte.MaxValue) << 24);
dositoMMIClass.UserCRC |= (uint)((uint)(data[61] & byte.MaxValue) << 16);
dositoMMIClass.UserCRC |= (uint)((uint)(data[62] & byte.MaxValue) << 8);
dositoMMIClass.UserCRC |= (uint)(data[63] & byte.MaxValue);
dositoMMIClass.text = BitConverter.ToString(data, 0, data.Length).Replace("-", " ");
return dositoMMIClass;
}
}
}