private void xfer_XferNotify(object sender, SapXferNotifyEventArgs argsNotify) { try { var core = argsNotify.Context as DalsaCore; if (argsNotify.Trash) { } else { //DateTime getStart = DateTime.Now; IntPtr bufferAddress; Buffers.GetAddress(out bufferAddress); Debug.WriteLine(_name + "Dalsa ImgPtr:[" + _id + "]" + bufferAddress + DateTime.Now); var imgInfo = new ImgBytesInfo(); imgInfo._imgSrcPtr = bufferAddress; imgInfo._imgBytes = new byte[ObjSize]; imgInfo._imgTicks = DateTime.Now.Ticks / 10000; Marshal.Copy(bufferAddress, imgInfo._imgBytes, 0, ObjSize); OnDalsaImageArrivedHandle(imgInfo); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
void GrabDoneEvt_Trg(object sender, SapXferNotifyEventArgs evt) { Console.WriteLine("Stop Stage Buffer"); StopStgBuffer(CurrentConfig); Console.WriteLine("Grab Done in "); Stg.WaitEps("Y")(TrigScanData.EndYPos[CurrentConfig], 0.005); var Buf2Img = FnBuff2Img(Cam.GetBuffWH()["H"], Cam.GetBuffWH()["W"]); var currentbuff = FullBuffdata(Cam.Buffers); var temp = Buf2Img(currentbuff, 1); Console.WriteLine("send image to viewer"); evtTrgImg(temp, TrigCount); // 1 Trigger = 1 Buffer TrigCount += 1; if (TrigCount < TrigLimit) { Console.WriteLine("Grab Done IF in "); StgReadyTrigScan(TrigCount, CurrentConfig); Console.WriteLine("Run stage buffer"); RunStgBuffer(CurrentConfig); System.Threading.Thread.Sleep(100); Console.WriteLine("Go to end point"); ScanMoveXYstg("Y", TrigScanData.EndYPos[CurrentConfig], TrigScanData.Scan_Stage_Speed); } else { Console.WriteLine("send image to viewer"); evtScanEnd(); } }
static void xfer_XferNotify(object sender, SapXferNotifyEventArgs args) { // refresh view SapView View = args.Context as SapView; View.Show(); // refresh frame rate SapTransfer transfer = sender as SapTransfer; if (transfer.UpdateFrameRateStatistics()) { SapXferFrameRateInfo stats = transfer.FrameRateStatistics; float framerate = 0.0f; if (stats.IsLiveFrameRateAvailable) { framerate = stats.LiveFrameRate; } // check if frame rate is stalled if (stats.IsLiveFrameRateStalled) { Console.WriteLine("Live Frame rate is stalled."); } // update FPS only if the value changed by +/- 0.1 else if ((framerate > 0.0f) && (Math.Abs(lastFrameRate - framerate) > 0.1f)) { Console.WriteLine("Grabbing at {0} frames/sec", framerate); lastFrameRate = framerate; } } }
void xfer_XferNotify(object sender, SapXferNotifyEventArgs args) { // refresh view SapBuffer buffer = args.Context as SapBuffer; string filename = _save_dir + string.Format("Frame-{2}--Aux time-{0}--Host time-{1}.bmp", (args.AuxTimeStamp / 1e6).ToString(), (args.HostTimeStamp / 1e7).ToString(), (args.GenericParamValue0 - 1).ToString()); buffer.Save(filename, "-format bmp"); //buffer.Save("test.bmp", "-format bmp"); Console.WriteLine("Aux time: {0}, Host time: {1}, Frame: {2}", (args.AuxTimeStamp / 1e6).ToString(), (args.HostTimeStamp / 1e7).ToString(), args.GenericParamValue0.ToString()); SapTransfer transfer = sender as SapTransfer; if (transfer.UpdateFrameRateStatistics()) { SapXferFrameRateInfo stats = transfer.FrameRateStatistics; float framerate = 0.0f; if (stats.IsLiveFrameRateAvailable) { framerate = stats.LiveFrameRate; } // check if frame rate is stalled if (stats.IsLiveFrameRateStalled) { Console.WriteLine("Live Frame rate is stalled."); } } }
void GrabDoneEvt(object sender, SapXferNotifyEventArgs evt) { Console.WriteLine("IN Evt"); switch (ScanStatus) { case ScanState.Stop: ScanStatus = ScanState.Wait; break; case ScanState.Pause: PauseProcess(LineCount); break; case ScanState.Start: StartProcess(); break; default: evtRealimg(FnBuff2Img(Cam.GetBuffWH()["H"], Cam.GetBuffWH()["W"])(FullBuffdata(), 1)); var zscore = Idc.Zscore(SingleBuffdata().Cast <double>().ToArray <double>()); Task.Run(() => evtSV(Idc.Variance(zscore())())); break; } }
public void xfer_XferNotify(object sender, SapXferNotifyEventArgs argsNotify) { DateTime StartTime = DateTime.Now; //1.计算图像采集时间 if (firstFrame) { firstFrame = false; start = DateTime.Now.Second + (float)DateTime.Now.Millisecond / 1000; return; } end = DateTime.Now.Second + (float)DateTime.Now.Millisecond / 1000; duration = end - start; start = end; Console.WriteLine("图像采集时间:" + duration.ToString() + "秒\n"); Model.AcquisionImageTime[AcquisionImageCount] = duration; //2.图像缓存转化为halcon图像类型 int SubImageWidth = 13384; int SubImageHeight = 100;//7635 IntPtr dataAddress = IntPtr.Zero; bool Flag = m_Buffers.GetAddress(out dataAddress); if (!Flag) { MessageBox.Show("图像缓存获取失败!"); } AutoMachineDAL.DAL Dal = new AutoMachineDAL.DAL(); Model.RawImage = Dal.ImageProcessObject.ImagePtrToHobject(SubImageWidth, SubImageHeight, ref dataAddress); HOperatorSet.DispObj(Model.RawImage, Model.MainUI_Camera_WindowID); if (Model.SaveImageFlag) { SaveImage(Model.RawImage, true); } //CombinImage(CommonModuleClass.RawImage, SubImageWidth, SubImageHeight); //5.计算图像转换时间 DateTime EndTime = DateTime.Now; TimeSpan ts = EndTime - StartTime; double difference = ts.TotalSeconds; //秒单位 Console.WriteLine("图像转换时间:" + difference.ToString() + "秒\n"); }
static void xfer_XferNotify(object sender, SapXferNotifyEventArgs argsNotify) { Homepage GigeDlg = argsNotify.Context as Homepage; // If grabbing in trash buffer, do not display the image, update the // appropriate number of frames on the status bar instead if (argsNotify.Trash) { GigeDlg.Invoke(new DisplayFrameAcquired(GigeDlg.ShowFrameNumber), argsNotify.EventCount, true); } else { GigeDlg.Invoke(new DisplayFrameAcquired(GigeDlg.ShowFrameNumber), argsNotify.EventCount, false); GigeDlg.m_View.Show(); } }
public TransferNotifyEventArgs(SapXferNotifyEventArgs sapXferNotifyEventArgs) { Context = sapXferNotifyEventArgs.Context; PairIndex = sapXferNotifyEventArgs.PairIndex; Trash = sapXferNotifyEventArgs.Trash; GenericParamValue3 = sapXferNotifyEventArgs.GenericParamValue3; GenericParamValue2 = sapXferNotifyEventArgs.GenericParamValue2; GenericParamValue1 = sapXferNotifyEventArgs.GenericParamValue1; GenericParamValue0 = sapXferNotifyEventArgs.GenericParamValue0; CustomSize = sapXferNotifyEventArgs.CustomSize; CustomData = sapXferNotifyEventArgs.CustomData; AuxTimeStamp = sapXferNotifyEventArgs.AuxTimeStamp; HostTimeStamp = sapXferNotifyEventArgs.HostTimeStamp; EventCount = sapXferNotifyEventArgs.EventCount; EventType = sapXferNotifyEventArgs.EventType; }
static void xfer_XferNotify(object sender, SapXferNotifyEventArgs argsNotify) { Form1 GrabDlg = argsNotify.Context as Form1; // If grabbing in trash buffer, do not display the image, update the // appropriate number of frames on the status bar instead Debug.WriteLine(DateTime.Now.ToString() + ":" + argsNotify.EventCount.ToString()); if (GrabDlg.testStep == 1) { if (argsNotify.Trash) { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, true); } // Refresh view else { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.TestStep1), argsNotify.EventCount, false); //GrabDlg.m_View.Show(); } } else if (GrabDlg.testStep == 2) { if (argsNotify.Trash) { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, true); } // Refresh view else { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.TestStep2), argsNotify.EventCount, false); //GrabDlg.m_View.Show(); } } else if (GrabDlg.testStep == 3) { if (argsNotify.Trash) { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, true); } // Refresh view else { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.FPNTest), argsNotify.EventCount, false); //GrabDlg.m_View.Show(); } } }
static void xfer_XferNotify(object sender, SapXferNotifyEventArgs argsNotify) { Form5 GrabDlg = argsNotify.Context as Form5; // If grabbing in trash buffer, do not display the image, update the // appropriate number of frames on the status bar instead if (argsNotify.Trash) { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, true); } // Refresh view else { GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.TestStep1), argsNotify.EventCount, false); //GrabDlg.m_View.Show(); } }
void XferNotify(object sender, SapXferNotifyEventArgs argsNotify) { TransferNotifyEventArgs transferNotifyEventArgs = new TransferNotifyEventArgs(argsNotify); FrameCaptured?.Invoke(transferNotifyEventArgs); // instance.FrameCaptured?.Invoke(new TransferNotifyEventArgs(argsNotify)); //GrabDemoDlg GrabDlg = argsNotify.Context as GrabDemoDlg; //// If grabbing in trash buffer, do not display the image, update the //// appropriate number of frames on the status bar instead //if (argsNotify.Trash) // GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, true); //// Refresh view //else //{ // GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, false); // GrabDlg.m_View.Show(); //} }
void GrabDoneEvt_Trg( object sender , SapXferNotifyEventArgs evt ) { Console.WriteLine( "Grab Done in " ); var Buf2Img = FnBuff2Img( Cam.GetBuffWH()["H"] , Cam.GetBuffWH()["W"] ); var currentbuff = FullBuffdata(); var temp = Buf2Img( currentbuff , 1 ); evtTrgImg( temp, TrigCount ); // 1 Trigger = 1 Buffer Freeze(); TrigCount += 1; if ( TrigCount < TrigLimit ) { Console.WriteLine( "Grab Done IF in " ); StgReadyTrigScan( TrigCount , CurrentConfig ); Grab(); System.Threading.Thread.Sleep( 100 ); ScanMoveXYstg( "Y" , TrigScanData.EndYPos[CurrentConfig] , TrigScanData.Scan_Stage_Speed ); } else { evtScanEnd(); StopStgBuffer( CurrentConfig ); } }
void GrabDoneEventMethod(object sender, SapXferNotifyEventArgs evt) { byte[] buffData = GrabM.DataTransFromBuffer(DalsaMemObj.Buffers); evtRealimg(Buff2Img(buffData, 1)); ScanDirec = ScanDirection.Forward; Console.WriteLine(StatusFullScan.ToString()); #region New switch (StatusFullScan) { case FullScanState.Stop: StatusFullScan = FullScanState.Wait; Freeze(); //evtScanEnd(); break; case FullScanState.Pause: double currentYPos = AcsXYZControl.GetMotorFPos()[1]; AcsXYZControl.YMove(3); AcsXYZControl.Wait2ArriveEpsilon("Y", currentYPos + 3, 0.02); System.Threading.Thread.Sleep(100); // Need Pos Check Later //sjw if (ScanDirec == ScanDirection.Forward) { ScanDirec = ScanDirection.Back; NextXPos = StartP; } else { ScanDirec = ScanDirection.Forward; NextXPos = EndP; } AcsXYZControl.XMove(NextXPos); StatusFullScan = FullScanState.Start; break; case FullScanState.Start: //evtScanStart(); ImgSrcByte = Matrix.Concatenate <byte>(ImgSrcByte, buffData); //SaveFullDat(ImgSrcByte,LineCount,UnitCount,BuffCount); evtFScanImgOnGoing(Buff2Img(ImgSrcByte, BuffCount + 1), LineCount, UnitCount); //evtlineUnitNum(LineCount, UnitCount); // for Watch if (BuffCount == DataFullScan.BuffLimit) { ImgSrcByte = null; ImgSrcByte = new byte[0]; BuffCount = 0; if (UnitCount == DataFullScan.UnitLimit) { UnitCount = 0; if (LineCount == DataFullScan.LineLimit) { StatusFullScan = FullScanState.Stop; break; } else { LineCount += 1; StatusFullScan = FullScanState.Pause; } break; } else { UnitCount += 1; } } else { BuffCount++; } break; } #endregion }
private void AcqCallback1(object sender, SapXferNotifyEventArgs argsNotify) { m_FrmaeCount++; }
static void Xfer_XferNotify(object sender, SapXferNotifyEventArgs args) { SapView view = args.Context as SapView; view.Show(); }
static void xfer_XferNotify(object sender, SapXferNotifyEventArgs args) { SapView View = args.Context as SapView; View.Show(); }
void GrabDoneEvt_Non( object sender, SapXferNotifyEventArgs evt ) { evtRealimg( Reshape2D( FullBuffdata(), 1 ) ); Task.Run( () => TferVariance( SingleBuffdata() ) ); }