コード例 #1
0
        public void SetupPCBBuilder(Kflop kflop, UsbDevice usb, DataSet ds, string LogFile,
                                    System.Windows.Controls.Image imgref, VideoCaptureDevice videoBaseCam)
        {
            try
            {
                _LogFile      = LogFile;
                dsData        = ds;
                kf            = kflop;
                usbController = usb;
                img           = imgref;
                dtLog.ReadXml(LogFile);
                videoCam = videoBaseCam;

                // set NewFrame event handler

                videoCam.NewFrame += new NewFrameEventHandler(Cam_NewFrame);


                // setup worker methods
                backgroundWorkerBuildPCB.DoWork                    += Worker_DoWork;
                backgroundWorkerBuildPCB.RunWorkerCompleted        += Worker_RunWorkerCompleted;
                backgroundWorkerBuildPCB.WorkerSupportsCancellation = true;
            }
            catch
            {
                // MessageBox.Show("SetupPCBBuilder Error");
            }
        }
コード例 #2
0
        public MainWindow()
        {
            InitializeComponent();
            App MyApplication = ((App)Application.Current);

            _kflop = MyApplication.GetKFlop();

            usbController = MyApplication.GetUSBDevice();
        }
コード例 #3
0
        public KflopLocation CheckWithCamera(KflopLocation kfl, Kflop kf, int nozzle, UsbDevice usbController, System.Windows.Controls.Image imgref)
        {
            double CameraX = 295.4;
            double CameraY = 150.2;

            double CameraX2 = 263.5;
            double CameraY2 = 150.2;

            double PlaceX        = kfl.PlaceX;
            double PlaceY        = kfl.PlaceY;
            double PlaceRotation = kfl.PlaceRotation;


            int retrycounter = 0;


            img          = imgref;
            outstr.Loc1X = 0;
            videoCam.Start();

            if (nozzle == 1)
            {
                kf.MoveSingleFeed(kfl.PlaceSpeed, CameraX, CameraY, ClearHeight, ClearHeight, 0, kfl.PlaceRotation);
                usbController.SetHeadCameraLED(true);
            }
            else
            {
                kf.MoveSingleFeed(kfl.PlaceSpeed, CameraX2, CameraY2, ClearHeight, ClearHeight, kfl.PlaceRotation, 0);
                usbController.SetHeadCameraLED(true);
            }
            Thread.Sleep(2000);
            // verify camera image if needed

            // loop until part has correct rotation
            while (VisionCorrectionNeeded && retrycounter < 100)
            {
                if (outstr.OffsetX < 0.5 && outstr.OffsetY < 0.5)
                {
                    PlaceX        = PlaceX + outstr.OffsetX;
                    PlaceY        = PlaceY + outstr.OffsetY;
                    PlaceRotation = PlaceRotation + outstr.LocAngle;

                    VisionCorrectionNeeded = true;
                }
                else
                {
                    if (nozzle == 1)
                    {
                        PlaceX        = PlaceX + outstr.OffsetX;
                        PlaceY        = PlaceY + outstr.OffsetY;
                        PlaceRotation = PlaceRotation + outstr.LocAngle;
                        CameraX       = CameraX + outstr.OffsetX;
                        CameraY       = CameraY + outstr.OffsetY;

                        kf.MoveSingleFeed(kfl.PlaceSpeed, CameraX, CameraY, ClearHeight, ClearHeight, 0, PlaceRotation);
                    }
                    else
                    {
                        PlaceX        = PlaceX + outstr.OffsetX;
                        PlaceY        = PlaceY + outstr.OffsetY;
                        PlaceRotation = PlaceRotation + outstr.LocAngle;
                        CameraX2      = CameraX2 + outstr.OffsetX;
                        CameraX2      = CameraX2 + outstr.OffsetY;


                        kf.MoveSingleFeed(kfl.PlaceSpeed, CameraX2, CameraY2, ClearHeight, ClearHeight, kfl.PlaceRotation, 0);
                    }
                    VisionCorrectionNeeded = false;
                }
                outstr.Loc1X = 0;
                Thread.Sleep(1000);
                retrycounter++;
            }



            usbController.SetHeadCameraLED(false);
            if (videoCam != null && videoCam.IsRunning)
            {
                videoCam.SignalToStop();
            }
            return(kfl);
        }