protected override void Trigger_TriggerChanged(TRIGGER_STATUS status) { if ((TRIGGER_STATUS)status == TRIGGER_STATUS.ON) { seqenceNum = 0; int msgID = GenerateWinMessage("Simulate capturing images..."); RefreshScale(); if (captureImageMode == CapturePKI.PanelCaptureMode.Sequence) { Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, msgID, FrameCount); } else if (captureImageMode == CapturePKI.PanelCaptureMode.Continuous) { Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, msgID, 0); } Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_TRIGGER_CHANGE, (int)status, 0); timerGenerateImage.Start(); //Trigger.Stop(); //int msgID = GenerateWinMessage("Capturing images..."); } else if ((TRIGGER_STATUS)status == TRIGGER_STATUS.OFF) { Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, -2, 0); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_TRIGGER_CHANGE, (int)status, 0); timerGenerateImage.Stop(); Trigger.Stop(); } }
public override void Cancel() { WorkStatus = false; Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_CAPTURE_WORKSTATUS, 0, 0); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, -2, 0); timerGenerateImage.Stop(); Trigger.Stop(); base.Cancel(); }
public override void Start() { WorkStatus = true; int msgID = GenerateWinMessage("Preparing irradiation and capturing..."); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, msgID, 0); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_CAPTURE_WORKSTATUS, 1, 0); base.Start(); }
protected virtual void Trigger_TriggerChanged(TRIGGER_STATUS status) { if ((TRIGGER_STATUS)status == TRIGGER_STATUS.ON) { Trigger.Stop(); CaptureImageData(); } Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_TRIGGER_CHANGE, (int)status, 0); }
public override void CaptureImageData() { base.CaptureImageData(); OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "*.*|*.*"; string lastFilePath = CapturePub.readCaptrueValue(XmlField.OpenFilePath); if (Directory.Exists(lastFilePath)) { dlg.InitialDirectory = lastFilePath; } dlg.Multiselect = true; string[] files = null; if (dlg.ShowDialog() == DialogResult.OK) { files = dlg.FileNames; SeqFrameCount = files.Length; } if (files != null && files.Length > 0) { FileInfo fi = new FileInfo(files[0]); CapturePub.saveCaptrueValue(XmlField.OpenFilePath, fi.DirectoryName); int msgID = GenerateWinMessage("Loading files..."); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, msgID, SeqFrameCount); for (int i = 0; i < SeqFrameCount; i++) { ReadFile(files[i]); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, -1, 1); } Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, -2, 0); //Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_CAPTURE_DATA, (int)CapturePKI.PanelCaptureMode.Sequence,0); } else { files = null; } Files = files; }
private void timerGenerateImage_Elapsed(object sender, ElapsedEventArgs e) { seqenceNum++; if (captureImageMode == CapturePKI.PanelCaptureMode.Sequence) { Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, -1, 1); Bitmap bm = new Bitmap(imageColumns, imageRows); Graphics g = Graphics.FromImage(bm); g.FillRectangle(new SolidBrush(Color.Black), 0, 0, bm.Width, bm.Height); Font font = new Font(FontFamily.GenericSansSerif, 800, FontStyle.Bold); g.DrawString(seqenceNum.ToString(), font, new SolidBrush(Color.White), new PointF(0, 0)); ImageObject image = new ImageObject(); image.pixelSize = pixelSize; image.imageData = BitmapToUShort(bm); image.imageWidth = image.imageData.GetLength(1); image.imageHeight = image.imageData.GetLength(0); image.centerX = imageCenterX; image.centerY = imageCenterY; image.createTime = DateTime.Now; imgList.Add(image); if (seqenceNum == FrameCount) { Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_CAPTURE_DATA, (int)captureImageMode, 0); timerGenerateImage.Stop(); WorkStatus = false; Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, -2, 0); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_CAPTURE_WORKSTATUS, 0, 0); } } else if (captureImageMode == CapturePKI.PanelCaptureMode.Continuous) { Bitmap bm = new Bitmap(imageColumns, imageRows); Graphics g = Graphics.FromImage(bm); g.FillRectangle(new SolidBrush(Color.Black), 0, 0, bm.Width, bm.Height); Font font = new Font(FontFamily.GenericSansSerif, 800, FontStyle.Bold); g.DrawString(seqenceNum.ToString(), font, new SolidBrush(Color.White), new PointF(0, 0)); ImageObject image = new ImageObject(); image.pixelSize = pixelSize; image.imageData = BitmapToUShort(bm); image.imageWidth = image.imageData.GetLength(1); image.imageHeight = image.imageData.GetLength(0); image.centerX = imageCenterX; image.centerY = imageCenterY; image.createTime = DateTime.Now; imgList.Add(image); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_CAPTURE_DATA, (int)captureImageMode, 0); } //else if (captureImageMode == CapturePKI.PanelCaptureMode.Average) //{ // //PKL_Interface.Acquisition_DefineDestBuffers(hAcqDesc, pAcqBufferAverage, (uint)FrameCount, imageRows, imageColumns); // //PKL_Interface.Acquisition_Acquire_Image(hAcqDesc, (uint)FrameCount, 0, (uint)SeqBufferMode.HIS_SEQ_AVERAGE, pOffsetBuffer, null, null); // //Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, msgID, FrameCount); //} else if (captureImageMode == CapturePKI.PanelCaptureMode.DoubleExposure) { //beamON_Num++; //PKL_Interface.Acquisition_DefineDestBuffers(hAcqDesc, pAcqBuffer, (uint)FrameCount, imageRows, imageColumns); //PKL_Interface.Acquisition_Acquire_Image(hAcqDesc, (uint)FrameCount, 0, (uint)SeqBufferMode.HIS_SEQ_ONE_BUFFER, null, null, null); //Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, msgID, 0); } }
public virtual void Cancel() { Trigger.Stop(); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, -2, 0); }
protected void Trigger_TriggerStatus(TRIGGER_STATUS status) { Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_TRIGGER_STATUS, (int)status, 0); }
protected void Trigger_ProgressBegin(string info, int progressValue) { int msgID = GenerateWinMessage(info); Kernel32Interface.SendMessage(HostHandle, WIN_MSG.WM_SHOW_PROGRESS, msgID, progressValue); }