public void ToStreamTest() { StringConverter target = new StringConverter(); Assert.AreEqual<string>("313233343500", target.ToStream("12345")); Assert.AreEqual<string>("5835444A3700", target.ToStream("X5DJ7")); Assert.AreEqual<string>("504736535130", target.ToStream("PG6SQ0")); }
private static string PolishingStatusStream2() { StringConverter stringConverter = new StringConverter(); string fullInfoStream = "00FF" // station ID + pc ID + stringConverter.ToStream("RTG8PS1P") // Magazine ID + stringConverter.ToStream("VFYEQ41C") // Carrier Plate ID (head 1) + stringConverter.ToStream("APSD2EKJ") // Carrier Plate ID (head 2) + stringConverter.ToStream("JHDER7PM") // Carrier Plate ID (head 3) + stringConverter.ToStream("WKD95UAS") // Carrier Plate ID (head 4) + "0000" // High Pressure Polishing flag + "0055" // High Pressure Polishing duration + "0032" // Head 1 Force + "003C" // Head 2 Force + "0046" // Head 3 Force + "0050" // Head 4 Force + "00BD" // Pad Temperature + "006F" // Cooling Water In Temperature + "00DE" // Cooling Water Out Temperature + "0155" // Slurry In Temperature + "01A9" // Slurry Out Temperature + "0278" // Rinse Temperature + "0102" // Cooling Water Amount + "0006" // Slurry Amount + "000A" // Rinse Amount + "1569" // Head 1 Pressure + "0038" // Head 2 Pressure + "036A" // Head 3 Pressure + "03E8" // Head 4 Pressure + "0005" // Head 1 Back Pressure + "A18A" // Head 2 Back Pressure + "2547" // Head 3 Back Pressure + "00A2" // Head 4 Back Pressure + "0694" // Plate RPM + "0960" // Head 1 RPM + "0A8C" // Head 2 RPM + "0BB8" // Head 3 RPM + "0CE4" // head 4 RPM + "0292" // Plate Load Current + "0014" // Head 1 Load Current + "0000" // Head 2 Load Current + "009C" // head 3 Load Current + "40A3" // head 4 Load Current + "036B" // Pad Used Time + "0281" // Pad Used Count + "\u0003" // ETX ; return fullInfoStream; }
private static string PolishingStatusStream3() { StringConverter stringConverter = new StringConverter(); string fullInfoStream = "00FF" // station ID + pc ID + stringConverter.ToStream("SDJR8ZS6") // Magazine ID + stringConverter.ToStream("AP5KFHEM") // Carrier Plate ID (head 1) + stringConverter.ToStream("VES7KGFT") // Carrier Plate ID (head 2) + stringConverter.ToStream("CIFGP3KJ") // Carrier Plate ID (head 3) + stringConverter.ToStream("WKD95UAS") // Carrier Plate ID (head 4) + "0001" // High Pressure Polishing flag + "004F" // High Pressure Polishing duration + "005A" // Head 1 Force + "0064" // Head 2 Force + "006E" // Head 3 Force + "0078" // Head 4 Force + "00D5" // Pad Temperature + "0166" // Cooling Water In Temperature + "02E5" // Cooling Water Out Temperature + "0168" // Slurry In Temperature + "0001" // Slurry Out Temperature + "0323" // Rinse Temperature + "0057" // Cooling Water Amount + "0087" // Slurry Amount + "03C3" // Rinse Amount + "30FF" // Head 1 Pressure + "589C" // Head 2 Pressure + "0001" // Head 3 Pressure + "0591" // Head 4 Pressure + "0063" // Head 1 Back Pressure + "03A6" // Head 2 Back Pressure + "1A5D" // Head 3 Back Pressure + "0000" // Head 4 Back Pressure + "05FE" // Plate RPM + "0E10" // Head 1 RPM + "0F3C" // Head 2 RPM + "0EA6" // Head 3 RPM + "0DDE" // head 4 RPM + "0007" // Plate Load Current + "000A" // Head 1 Load Current + "01AC" // Head 2 Load Current + "038E" // head 3 Load Current + "0001" // head 4 Load Current + "03D0" // Pad Used Time + "0247" // Pad Used Count + "\u0003" // ETX ; return fullInfoStream; }
private static string MounterStatusStream3() { StringConverter stringConverter = new StringConverter(); IntConverter intConverter = new IntConverter(); string statusStream = "00FF" // station ID + pc ID + stringConverter.ToStream("LDPW8X2D") // cassette ID + "0001" // lot data request flag + "0001" // cassette ID error flag + "0000" // lot data communication timeout flag + stringConverter.ToStream("MZQPALJFIR2JCS") // new lot ID + "0001" // new lot start line + "0000" // new lot start flag + "0001" // carrier plate arrival flag + "0001" // BCR read OK flag + "0001" // carrier plate mounting ready flag + intConverter.ToStream(0) // wafer break information + "0001" // wafer break information OK flag + "0000" // mounting error carrier plate flag + "0000" // lot end flag + "0001" // reservation lot cancel flag + "22222222222222222222222222222222" // ... some data ... + "0004" // mounter machine state + "\u0003" // ETX ; return statusStream; }
private static string PolishingStatusStream1() { StringConverter stringConverter = new StringConverter(); string fullInfoStream = "00FF" // station ID + pc ID + stringConverter.ToStream("DHFTPR8Q") // Magazine ID + stringConverter.ToStream("NDFH8PLF") // Carrier Plate ID (head 1) + stringConverter.ToStream("DKFYQ8EL") // Carrier Plate ID (head 2) + stringConverter.ToStream("WYEJF8F3") // Carrier Plate ID (head 3) + stringConverter.ToStream("PRYDGHF4") // Carrier Plate ID (head 4) + "0001" // High Pressure Polishing flag + "0038" // High Pressure Polishing duration + "000A" // Head 1 Force + "0014" // Head 2 Force + "001E" // Head 3 Force + "0028" // Head 4 Force + "0084" // Pad Temperature + "0062" // Cooling Water In Temperature + "0093" // Cooling Water Out Temperature + "009F" // Slurry In Temperature + "0165" // Slurry Out Temperature + "01C8" // Rinse Temperature + "0144" // Cooling Water Amount + "010B" // Slurry Amount + "028C" // Rinse Amount + "30A5" // Head 1 Pressure + "1D6C" // Head 2 Pressure + "1388" // Head 3 Pressure + "00FE" // Head 4 Pressure + "0223" // Head 1 Back Pressure + "000D" // Head 2 Back Pressure + "16F2" // Head 3 Back Pressure + "0145" // Head 4 Back Pressure + "058F" // Plate RPM + "04B0" // Head 1 RPM + "05DC" // Head 2 RPM + "0708" // Head 3 RPM + "0834" // head 4 RPM + "002D" // Plate Load Current + "0008" // Head 1 Load Current + "0044" // Head 2 Load Current + "008A" // head 3 Load Current + "03B4" // head 4 Load Current + "03DE" // Pad Used Time + "0233" // Pad Used Count + "\u0003" // ETX ; return fullInfoStream; }
private static string MounterStatusStream2() { StringConverter stringConverter = new StringConverter(); IntConverter intConverter = new IntConverter(); string statusStream = "00FF" // station ID + pc ID + stringConverter.ToStream("IJKLMNOP") // cassette ID + "0000" // lot data request flag + "0001" // cassette ID error flag + "0001" // lot data communication timeout flag + stringConverter.ToStream("KCGE8PAQ1HC4HF") // new lot ID + "0002" // new lot start line + "0001" // new lot start flag + "0000" // carrier plate arrival flag + "0000" // BCR read OK flag + "0001" // carrier plate mounting ready flag + intConverter.ToStream(15) // wafer break information + "0001" // wafer break information OK flag + "0001" // mounting error carrier plate flag + "0001" // lot end flag + "0001" // reservation lot cancel flag + "11111111111111111111111111111111" // ... some data ... + "0003" // mounter machine state + "\u0003" // ETX ; return statusStream; }
public void GetStream1Test() { string lotId = "NCHFYRT"; List<ICassette> cassettes = PlcHelper.GetCassetteList(2); LotCassetteInfoToStreamConverter_Accessor target = new LotCassetteInfoToStreamConverter_Accessor(); StringConverter stringConverter = new StringConverter(); IntConverter intConverter = new IntConverter(); string expected = stringConverter.ToStream(lotId).PadRight(28, '0'); expected += stringConverter.ToStream(cassettes[0].CassetteId.PadRight(8)); expected = expected.PadRight(44, '0'); expected += stringConverter.ToStream(cassettes[1].CassetteId.PadRight(8)); expected = expected.PadRight(60, '0'); expected = expected.PadRight(220, '0') + intConverter.ToStream(cassettes.Count); Assert.AreEqual<string>(expected, target.GetStream(PlcHelper.GetLotData(lotId, cassettes, PlcHelper.GetWaferList(50, 2)))); }
public void GetStream4Test() { string lotId = "AA"; List<ICassette> cassettes = new List<ICassette>() { new Cassette() { CassetteId = "222" } }; LotCassetteInfoToStreamConverter_Accessor target = new LotCassetteInfoToStreamConverter_Accessor(); StringConverter stringConverter = new StringConverter(); IntConverter intConverter = new IntConverter(); string expected = stringConverter.ToStream(lotId).PadRight(28, '0'); expected += "3232322020202020"; expected = expected.PadRight(220, '0') + intConverter.ToStream(cassettes.Count); Assert.AreEqual<string>(expected, target.GetStream(PlcHelper.GetLotData(lotId, cassettes, PlcHelper.GetWaferList(125, 5)))); }
public void GetStream2Test() { string lotId = "NCHFYRT"; List<ICassette> cassettes = PlcHelper.GetCassetteList(12); LotCassetteInfoToStreamConverter_Accessor target = new LotCassetteInfoToStreamConverter_Accessor(); StringConverter stringConverter = new StringConverter(); IntConverter intConverter = new IntConverter(); string expected = stringConverter.ToStream(lotId).PadRight(28, '0'); expected += stringConverter.ToStream(cassettes[0].CassetteId.PadRight(8)); expected = expected.PadRight(44, '0'); expected += stringConverter.ToStream(cassettes[1].CassetteId.PadRight(8)); expected = expected.PadRight(60, '0'); expected += stringConverter.ToStream(cassettes[2].CassetteId.PadRight(8)); expected = expected.PadRight(76, '0'); expected += stringConverter.ToStream(cassettes[3].CassetteId.PadRight(8)); expected = expected.PadRight(92, '0'); expected += stringConverter.ToStream(cassettes[4].CassetteId.PadRight(8)); expected = expected.PadRight(108, '0'); expected += stringConverter.ToStream(cassettes[5].CassetteId.PadRight(8)); expected = expected.PadRight(124, '0'); expected += stringConverter.ToStream(cassettes[6].CassetteId.PadRight(8)); expected = expected.PadRight(140, '0'); expected += stringConverter.ToStream(cassettes[7].CassetteId.PadRight(8)); expected = expected.PadRight(156, '0'); expected += stringConverter.ToStream(cassettes[8].CassetteId.PadRight(8)); expected = expected.PadRight(172, '0'); expected += stringConverter.ToStream(cassettes[9].CassetteId.PadRight(8)); expected = expected.PadRight(188, '0'); expected += stringConverter.ToStream(cassettes[10].CassetteId.PadRight(8)); expected = expected.PadRight(204, '0'); expected += stringConverter.ToStream(cassettes[11].CassetteId.PadRight(8)); expected = expected.PadRight(220, '0'); expected = expected.PadRight(220, '0') + intConverter.ToStream(cassettes.Count); Assert.AreEqual<string>(expected, target.GetStream(PlcHelper.GetLotData(lotId, cassettes, PlcHelper.GetWaferList(300, 12)))); }
public void MagazineDataToStreamTest() { List<ICarrierPlate> plates = PlcHelper.GetPlateList(1, "NCG", "KFHRTE", "V", "YETSEAFQ"); Mock<IMagazine> magazine = new Mock<IMagazine>(); magazine.Setup(x => x.Id).Returns("KFYI7W"); magazine.Setup(x => x.Plates).Returns(plates); ProcessRecipeToStreamConverter_Accessor target = new ProcessRecipeToStreamConverter_Accessor(); StringConverter stringConverter = new StringConverter(); string expected = stringConverter.ToStream(magazine.Object.Id).PadRight(16, '0'); expected += stringConverter.ToStream(magazine.Object.Plates[0].Id); expected = expected.PadRight(32, '0'); expected += stringConverter.ToStream(magazine.Object.Plates[1].Id); expected = expected.PadRight(48, '0'); expected += stringConverter.ToStream(magazine.Object.Plates[2].Id); expected = expected.PadRight(64, '0'); expected += stringConverter.ToStream(magazine.Object.Plates[3].Id); expected = expected.PadRight(80, '0'); // recipes expected += "0001000100010001"; Assert.AreEqual<string>(expected, target.MagazineDataToStream(magazine.Object)); }