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"));
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
 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;
 }
Esempio n. 6
0
        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));
        }