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;
		}
	}
}
