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"); } }
public MainWindow() { InitializeComponent(); App MyApplication = ((App)Application.Current); _kflop = MyApplication.GetKFlop(); usbController = MyApplication.GetUSBDevice(); }
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); }