예제 #1
0
        public void UpgradeTest()
        {
            // Write old SMTPlacementActivity
            //SMTPlacementActivity act = new SMTPlacementActivity();
            //act.Head = new SMTHeadInformation()
            //{
            //    Head = new CFX.Structures.Head()
            //    {
            //        HeadId = "10001000",
            //        HeadName = "HEAD1",
            //        HeadSequence = 1
            //    },
            //    NumberOfNozzleLocations = 2,
            //    PlacementAccuracy = 0.00001,
            //    SMTHeadType = SMTHeadType.Pulsar
            //};

            //ActivitiesExecuted ae = new ActivitiesExecuted()
            //{
            //    Activities = new List<CFX.Structures.Activity>()
            //    {
            //        act
            //    }
            //};

            //using (StreamWriter writer = new StreamWriter(@"d:\stuff\test.txt"))
            //{
            //    writer.Write(ae.ToJson());
            //}

            ActivitiesExecuted ae2 = null;

            using (StreamReader reader = new StreamReader(@"d:\stuff\test.txt"))
            {
                string json = reader.ReadToEnd();
                ae2 = CFXMessage.FromJson <ActivitiesExecuted>(json);
            }

            string test = ae2.ToJson(true);



            int z1 = 0;
        }
예제 #2
0
        public void CreateUnitsInspected()
        {
            //Messages = new List<CFXEnvelope>();

            Guid  tid = Guid.NewGuid();
            Stage stg = new Stage()
            {
                StageName = "INSP1", StageSequence = 1, StageType = StageType.Work
            };

            WorkStarted ws = new WorkStarted()
            {
                TransactionID = tid,

                Units = new UnitPosition[]
                {
                    new UnitPosition()
                    {
                        PositionName = "1", PositionNumber = 1, UnitIdentifier = "PANEL_SERIALNUM_1234567"
                    },
                    new UnitPosition()
                    {
                        PositionName = "2", PositionNumber = 2, UnitIdentifier = "PANEL_SERIALNUM_1234567"
                    },
                }.ToList(),
            };

            Messages.Add(new CFXEnvelope(ws));

            WorkStageStarted wss = new WorkStageStarted()
            {
                TransactionID = tid,
                Stage         = stg,
            };

            Messages.Add(new CFXEnvelope(wss));

            ActivitiesExecuted ae = new ActivitiesExecuted()
            {
                TransactionID = tid,
                Stage         = stg,
                Activities    = new Activity[]
                {
                    new UnitAlignmentActivity()
                    {
                        ActivityName       = "PFID1",
                        Comments           = "Panel Fiducial 1 Presence and Alignment Check",
                        ActivityInstanceId = Guid.NewGuid(),
                        ActivityState      = ActivityState.Completed,
                    },
                    new UnitAlignmentActivity()
                    {
                        ActivityName       = "PFID2",
                        Comments           = "Panel Fiducial 2 Presence and Alignment Check",
                        ActivityInstanceId = Guid.NewGuid(),
                        ActivityState      = ActivityState.Completed,
                    },
                }.ToList()
            };

            Messages.Add(new CFXEnvelope(ae));

            List <Defect> defects = new Defect[]
            {
                new Defect()
                {
                    ComponentOfInterest = new ComponentDesignator()
                    {
                        ReferenceDesignator = "IC2"
                    },
                    DefectCode          = "DisplacementError",
                    RelatedMeasurements = new Measurement []
                    {
                        new NumericMeasurement()
                        {
                            MeasurementName = "DisplacementX",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = -39.547279586959121, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "DisplacementY",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 11.42419208741012, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "Rotation",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 0.040963607505005939, ValueUnits = "deg"
                            }
                        }
                    }.ToList(),
                },
                new Defect()
                {
                    ComponentOfInterest = new ComponentDesignator()
                    {
                        ReferenceDesignator = "IC2"
                    },
                    DefectCode          = "PolarityError",
                    RelatedMeasurements = new Measurement []
                    {
                        new NumericMeasurement()
                        {
                            MeasurementName = "LineWidthDifference",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 614
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "MatchValue",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 484
                            }
                        },
                    }.ToList(),
                },
                new Defect()
                {
                    ComponentOfInterest = new ComponentDesignator()
                    {
                        ReferenceDesignator = "IC2"
                    },
                    DefectCode          = "HeightError",
                    RelatedMeasurements = new Measurement []
                    {
                        new NumericMeasurement()
                        {
                            MeasurementName = "Height",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = -39.547279586959121, ValueUnits = "%"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "TiltX",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 11.42419208741012, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "TiltY",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 0.040963607505005939, ValueUnits = "µm"
                            }
                        }
                    }.ToList(),
                },
                new Defect()
                {
                    ComponentOfInterest = new ComponentDesignator()
                    {
                        ReferenceDesignator = "IC2"
                    },
                    DefectCode          = "ReferenceError",
                    RelatedMeasurements = new Measurement []
                    {
                        new NumericMeasurement()
                        {
                            MeasurementName = "Volume",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 104.95069720322059, ValueUnits = "%"
                            }
                        },
                    }.ToList(),
                },
                new Defect()
                {
                    ComponentOfInterest = new ComponentDesignator()
                    {
                        ReferenceDesignator = "IC2"
                    },
                    DefectCode          = "PresenceError",
                    RelatedMeasurements = new Measurement []
                    {
                        new NumericMeasurement()
                        {
                            MeasurementName = "TiltX",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = -13, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "TiltY",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 9, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "ValidArea",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = -79, ValueUnits = "%"
                            }
                        },
                    }.ToList(),
                },
                new Defect()
                {
                    ComponentOfInterest = new ComponentDesignator()
                    {
                        ReferenceDesignator = "IC2.7"
                    },
                    DefectCode          = "PinAngularError",
                    RelatedMeasurements = new Measurement []
                    {
                        new NumericMeasurement()
                        {
                            MeasurementName = "GapWidthLiftedLead",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 0
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "GapWidthBridge",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 16
                            }
                        },
                    }.ToList(),
                },
                new Defect()
                {
                    ComponentOfInterest = new ComponentDesignator()
                    {
                        ReferenceDesignator = "IC2.7"
                    },
                    DefectCode          = "PinDisplacementError",
                    RelatedMeasurements = new Measurement []
                    {
                        new NumericMeasurement()
                        {
                            MeasurementName = "DisplacementX",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = -17, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "DisplacementY",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = -13, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "PinLength",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 874, ValueUnits = "µm"
                            }
                        },
                        new NumericMeasurement()
                        {
                            MeasurementName = "PinWidth",
                            MeasuredValue   = new NumericValue()
                            {
                                Value = 183, ValueUnits = "µm"
                            }
                        }
                    }.ToList(),
                },
            }.ToList();

            UnitsInspected ui = new UnitsInspected()
            {
                TransactionId    = Guid.NewGuid(),
                InspectionMethod = InspectionMethod.AOI,
                InspectedUnits   = new InspectedUnit[]
                {
                    new InspectedUnit()
                    {
                        UnitIdentifier     = "PANEL_SERIALNUM_1234567",
                        UnitPositionNumber = 1,
                        OverallResult      = TestResult.Failed,
                        Inspections        = new Inspection[]
                        {
                            new Inspection()
                            {
                                InspectionName = "IC2",
                                Result         = TestResult.Failed,
                                DefectsFound   = defects,
                            },
                            new Inspection()
                            {
                                InspectionName = "U20",
                                Result         = TestResult.Failed,
                                DefectsFound   = Clone <List <Defect> >(defects)
                            },
                        }.ToList(),
                    }
                }.ToList(),
            };

            ui.InspectedUnits[0].Inspections[1].DefectsFound.ForEach(d => d.ComponentOfInterest.ReferenceDesignator = d.ComponentOfInterest.ReferenceDesignator.Replace("IC2", "U20"));
            ui.InspectedUnits.Add(Clone <InspectedUnit>(ui.InspectedUnits[0]));
            ui.InspectedUnits[1].UnitPositionNumber = 2;
            Messages.Add(new CFXEnvelope(ui));

            WorkStageCompleted wsc = new WorkStageCompleted()
            {
                Result = WorkResult.Failed, Stage = stg, TransactionID = tid
            };

            Messages.Add(new CFXEnvelope(wsc));

            WorkCompleted wc = new WorkCompleted()
            {
                Result = WorkResult.Failed, TransactionID = tid
            };

            Messages.Add(new CFXEnvelope(wc));

            SetClipboard();
        }