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; } } }
//public SpyderCamera Instance //{ // get // { // lock (padlock) // { // if (SpyderCamera.instance == null) // { // instance = new SpyderCamera(); // } // return instance; // } // } //} // Call Create method public bool Initialize() { // define on-line object m_Acquisition = new SapAcquisition(m_ServerLocation, m_ConfigFileName); if (SapBuffer.IsBufferTypeSupported(m_ServerLocation, SapBuffer.MemoryType.ScatterGather)) { m_Buffers = new SapBufferWithTrash(2, m_Acquisition, SapBuffer.MemoryType.ScatterGather); } else { m_Buffers = new SapBufferWithTrash(2, m_Acquisition, SapBuffer.MemoryType.ScatterGatherPhysical); } m_Xfer = new SapAcqToBuf(m_Acquisition, m_Buffers); m_View = new SapView(m_Buffers); //event for view m_Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; m_Xfer.XferNotify += new SapXferNotifyHandler(XferNotify); m_Xfer.XferNotifyContext = this; // event for signal status m_Acquisition.SignalNotify += new SapSignalNotifyHandler(GetSignalStatus); m_Acquisition.SignalNotifyContext = this; return(true); }
public ViewDlg(SapView pView, Rectangle ViewArea) { InitializeComponent(); m_pView = pView; Slider_Range.Maximum = m_pView.RangeMax; Slider_Range.Minimum = m_pView.RangeMin; m_Range = m_pView.Range; m_RangeInit = m_Range; Slider_Range.Value = m_Range; textBox_Range.Text = m_Range.ToString(); NUpDown_height_scalor.Value = (decimal)(m_pView.ScalingZoomVert * 30.0f); NUpDown_width_scalor.Value = (decimal)(m_pView.ScalingZoomHorz * 30.0f); NUpDown_height.Value = Decimal.Floor((decimal)((m_pView.Buffer.Height * (float)NUpDown_height_scalor.Value / 100) + 0.5f)); NUpDown_width.Value = Decimal.Floor((decimal)((m_pView.Buffer.Width * (float)NUpDown_width_scalor.Value / 100) + 0.5f)); m_bLockAspectRatio = checkBox_lock.Checked; m_ViewArea = ViewArea; Initialize_ViewFormat_Combo(); LoadSettings(); }
public void CreateView(SapView view, SapBuffer buffer) { if (buffer == null) { } view = new SapView(buffer); }
static void DestroysObjects(SapAcquisition acq, SapAcqDevice camera, SapBuffer buf, SapTransfer xfer, SapView view) { if (xfer != null) { xfer.Destroy(); xfer.Dispose(); } if (camera != null) { camera.Destroy(); camera.Dispose(); } if (acq != null) { acq.Destroy(); acq.Dispose(); } if (buf != null) { buf.Destroy(); buf.Dispose(); } if (view != null) { view.Destroy(); view.Dispose(); } //Console.WriteLine("\nPress any key to terminate\n"); //Console.ReadKey(true); }
void InitCam(int n) { DestroyObjects(); DisposeObjects(); m_ServerLocation = new SapLocation("X64-CL_iPro_1", 0); m_ConfigFileName = "IAG3.ccf"; // define on-line object m_Acquisition = new SapAcquisition(m_ServerLocation, m_ConfigFileName); m_Buffers = new SapBufferWithTrash(n, m_Acquisition, SapBuffer.MemoryType.ScatterGather); m_Buffers.PixelDepth = SystemParam.cmosInfo.PixelDepth; m_Buffers.Format = SapFormat.Mono16; m_Buffers.Height = SystemParam.cmosInfo.ColPixels; m_Buffers.Width = SystemParam.cmosInfo.RowPixels; m_Xfer = new SapAcqToBuf(m_Acquisition, m_Buffers); m_View = new SapView(m_Buffers); m_View.SetScalingMode(true); //event for view m_Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; m_Xfer.XferNotify += new SapXferNotifyHandler(xfer_XferNotify1); m_Xfer.XferNotifyContext = this; // event for signal status m_Acquisition.SignalNotify += new SapSignalNotifyHandler(GetSignalStatus1); m_Acquisition.SignalNotifyContext = this; m_ImageBox.View = m_View; while (true) { try { if (!CreateObjects()) { DisposeObjects(); WFNetLib.WFGlobal.WaitMS(20); continue; } break; } catch { WFNetLib.WFGlobal.WaitMS(20); } } float WidthScalor = (float)(this.Size.Width) / m_Buffers.Width; float HeightScalor = (float)(this.Size.Height) / m_Buffers.Height; m_View.SetScalingMode(WidthScalor, HeightScalor); m_ImageBox.OnSize(); EnableSignalStatus(); SystemParam.ByteLen4Pic = SystemParam.Pixel4Pic * m_Buffers.BytesPerPixel; m_Xfer.Grab(); }
public ImageWnd(SapView pView, Control pViewWnd, HScrollBar pHorzScr, VScrollBar pVertScr, Form pAppWnd) { m_pView = pView; m_pViewWnd = pViewWnd; m_pHorzScr = pHorzScr; m_pVertScr = pVertScr; m_pAppWnd = pAppWnd; m_Rightoffset = m_pAppWnd.ClientRectangle.Right - (m_pViewWnd.ClientRectangle.Right + m_pViewWnd.Location.X); m_Bottomoffset = m_pAppWnd.ClientRectangle.Bottom - (m_pViewWnd.ClientRectangle.Bottom + m_pViewWnd.Location.Y); ////TODO in Phase 2//// //m_roi = new Rectangle(0,0,0,0); //UpdateRectTracker(); OnSize(); }
public bool CreateNewObjects(SapLocation location, string fileName, bool Restore) { if (Online) { if (!Restore) { Location = location; } if (!SapManager.IsResourceAvailable(location, SapManager.ResourceType.Acq)) { Debug.WriteLine(fileName + "available"); return(false); } Acquisition = new SapAcquisition(Location, fileName); if (SapBuffer.IsBufferTypeSupported(Location, SapBuffer.MemoryType.ScatterGather)) { Buffers = new SapBufferWithTrash(4, Acquisition, SapBuffer.MemoryType.ScatterGather); } else { Buffers = new SapBufferWithTrash(4, Acquisition, SapBuffer.MemoryType.ScatterGatherPhysical); } Xfer = new SapAcqToBuf(Acquisition, Buffers); m_View = new SapView(Buffers); Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; Xfer.XferNotify += xfer_XferNotify; Xfer.XferNotifyContext = this; } else { Buffers = new SapBuffer(); } if (!CreateObjects()) { DisposeObjects(); return(false); } return(true); }
/// <summary> /// 释放句柄 /// </summary> private void DisposeObjects() { if (m_Xfer != null) { m_Xfer.Dispose(); m_Xfer = null; } if (m_View != null) { m_View.Dispose(); m_View = null; m_ImageBox.View = null; } if (m_Buffers != null) { m_Buffers.Dispose(); m_Buffers = null; } if (m_AcqDevice != null) { m_AcqDevice.Dispose(); m_AcqDevice = null; } }
private void DisposeObjects() { if (m_Xfer != null) { m_Xfer.Dispose(); m_Xfer = null; } if (m_View != null) { m_View.Dispose(); m_View = null; m_ImageBox.View = null; } if (m_Buffers != null) { m_Buffers.Dispose(); m_Buffers = null; } if (m_Acquisition != null) { m_Acquisition.Dispose(); m_Acquisition = null; } }
void CreateCamObj() { ServerLocation = new SapLocation(ServerName, ResourceIndex); Acquisition = new SapAcquisition(ServerLocation, ConfigFile); if (SapBuffer.IsBufferTypeSupported(ServerLocation, SapBuffer.MemoryType.ScatterGather)) { Buffers = new SapBufferWithTrash(2, Acquisition, SapBuffer.MemoryType.ScatterGather); } else { Buffers = new SapBufferWithTrash(2, Acquisition, SapBuffer.MemoryType.ScatterGatherPhysical); } Acquisition.Create(); Xfer = new SapAcqToBuf(Acquisition, Buffers); Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; View = new SapView(Buffers); }
/// <summary> /// 初始化设备 /// </summary> /// <param name="acConfigDlg"></param> /// <param name="Restore"></param> /// <returns></returns> public bool CreateNewObjects(AcqConfigDlg acConfigDlg, bool Restore) { if (!Restore) { m_ServerLocation = acConfigDlg.ServerLocation; m_ConfigFileName = acConfigDlg.ConfigFile; } m_AcqDevice = new SapAcqDevice(m_ServerLocation, m_ConfigFileName); if (SapBuffer.IsBufferTypeSupported(m_ServerLocation, SapBuffer.MemoryType.ScatterGather)) { m_Buffers = new SapBufferWithTrash(2, m_AcqDevice, SapBuffer.MemoryType.ScatterGather); } else { m_Buffers = new SapBufferWithTrash(2, m_AcqDevice, SapBuffer.MemoryType.ScatterGatherPhysical); } m_Xfer = new SapAcqDeviceToBuf(m_AcqDevice, m_Buffers); m_View = new SapView(m_Buffers); m_ImageBox.View = m_View; m_Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; m_Xfer.XferNotify += new SapXferNotifyHandler(xfer_XferNotify); m_Xfer.XferNotifyContext = this; StatusLabelInfo.Text = "Online... Waiting grabbed images"; if (!CreateObjects()) { DisposeObjects(); return(false); } // Resize ImagBox to take into account the size of created sapview m_ImageBox.OnSize(); UpdateControls(); return(true); }
static void DestroysObjects(SapAcqDevice acq, SapBuffer buf, SapTransfer xfer, SapView view) { if (xfer != null && xfer.Initialized) { xfer.Destroy(); xfer.Dispose(); } if (acq != null && acq.Initialized) { acq.Destroy(); acq.Dispose(); } if (buf != null && buf.Initialized) { buf.Destroy(); buf.Dispose(); } if (view != null && view.Initialized) { view.Destroy(); view.Dispose(); } }
//static void Main(string[] args) public static void Done() { SapAcqDevice camera = null; SapView view = null; SapTransfer transfer = null; SapBuffer buffer = null; Console.WriteLine("Sapera Console GigE Cameras AutoWhiteBalance Example (C# version)\n"); MyAcquisitionParams acqParams = new MyAcquisitionParams(); /*if (!GetOptions(args, acqParams)) * { * Console.WriteLine("\nPress any key to terminate\n"); * Console.ReadKey(); * return; * }*/ SapLocation location = new SapLocation(acqParams.ServerName, acqParams.ResourceIndex); camera = new SapAcqDevice(location, acqParams.ConfigFileName); buffer = new SapBufferWithTrash(2, camera, SapBuffer.MemoryType.ScatterGather); transfer = new SapAcqDeviceToBuf(camera, buffer); view = new SapView(buffer); // End of frame event transfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; transfer.XferNotify += new SapXferNotifyHandler(Xfer_XferNotify); transfer.XferNotifyContext = view; if (!camera.Create()) { Console.WriteLine("Error during SapAcquisition creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Monochrome models are not supported for White Balance Calibration. int colorType = 0; bool isAvailable = false; if (isAvailable = camera.IsFeatureAvailable("ColorType")) { if (camera.GetFeatureValue("ColorType", out colorType)) { if (colorType == 0) { Console.WriteLine("This camera model does not support Auto White Balance calibration.\n"); DestroysObjects(camera, buffer, transfer, view); return; } } } //activate feature only if camera has 3 separate gains Boolean bRedGain = false; Boolean bGreenGain = false; Boolean bBlueGain = false; bRedGain = camera.IsFeatureAvailable("GainRed"); bGreenGain = camera.IsFeatureAvailable("GainGreen"); bBlueGain = camera.IsFeatureAvailable("GainBlue"); if (!bRedGain && !bGreenGain && !bBlueGain) { Console.WriteLine("This camera model does not support Auto White Balance calibration.\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create buffer object if (!buffer.Create()) { Console.WriteLine("Error during SapBuffer creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create transfer object if (!transfer.Create()) { Console.WriteLine("Error during SapTransfer creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create view object if (!view.Create()) { Console.WriteLine("Error during SapView creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } Console.WriteLine("Press any key to start Grab. Press 'q' to quit."); ConsoleKeyInfo info = Console.ReadKey(true); char key = info.KeyChar; if (key != 0) { if (key == 'q') { DestroysObjects(camera, buffer, transfer, view); return; } } // Start continous grab transfer.Grab(); Console.WriteLine("Press any key to stop grab\n"); Console.ReadKey(); // Stop grab transfer.Freeze(); transfer.Wait(5000); Console.WriteLine("Press any key to start Auto White Balance calibration. Press 'q' to quit.\n"); info = Console.ReadKey(true); key = info.KeyChar; if (key != 0) { if (key == 'q') { DestroysObjects(camera, buffer, transfer, view); return; } } int oldPixelFormat = 0; isAvailable = false; if (isAvailable = camera.IsFeatureAvailable("PixelFormat")) { camera.GetFeatureValue("PixelFormat", out oldPixelFormat); } else { Console.WriteLine("This camera model does not support Auto White Balance calibration.\n"); DestroysObjects(camera, buffer, transfer, view); return; } if (oldPixelFormat != GVSP_PIX_BAYRG8) { // Camera Pixel Format defined is not Raw Bayer. // We change the value DestroysObjects(null, buffer, transfer, view); camera.SetFeatureValue("PixelFormat", GVSP_PIX_BAYRG8); // Instantiation of new buffer object buffer = new SapBufferWithTrash(2, camera, SapBuffer.MemoryType.ScatterGather); // Instantiation of new view object view = new SapView(buffer); // Instantiation of new transfer object transfer = new SapAcqDeviceToBuf(camera, buffer); // End of frame event transfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; transfer.XferNotify += new SapXferNotifyHandler(Xfer_XferNotify); transfer.XferNotifyContext = view; if (!camera.Create()) { Console.WriteLine("Error during SapAcquisition creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create buffer object if (!buffer.Create()) { Console.WriteLine("Error during SapBuffer creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create transfer object if (!transfer.Create()) { Console.WriteLine("Error during SapTransfer creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create view object if (!view.Create()) { Console.WriteLine("Error during SapView creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } } if (!AutoWhiteBalanceOperations(camera, buffer, transfer)) { Console.WriteLine("Auto WhiteBalamce has failed"); DestroysObjects(camera, buffer, transfer, view); return; } if (oldPixelFormat != GVSP_PIX_BAYRG8) { // Camera Pixel Format was changed for Raw Bayer. // We set the original value. DestroysObjects(null, buffer, transfer, view); camera.SetFeatureValue("PixelFormat", oldPixelFormat); // Instantiation of new buffer object buffer = new SapBufferWithTrash(2, camera, SapBuffer.MemoryType.ScatterGather); // Instantiation of new view object view = new SapView(buffer); // Instantiation of new transfer object transfer = new SapAcqDeviceToBuf(camera, buffer); // End of frame event transfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; transfer.XferNotify += new SapXferNotifyHandler(Xfer_XferNotify); transfer.XferNotifyContext = view; // Create buffer object if (!buffer.Create()) { Console.WriteLine("Error during SapBuffer creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create transfer object if (!transfer.Create()) { Console.WriteLine("Error during SapTransfer creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } // Create view object if (!view.Create()) { Console.WriteLine("Error during SapView creation!\n"); DestroysObjects(camera, buffer, transfer, view); return; } } Console.WriteLine("Press any key to start Grab. Press 'q' to quit.\n"); info = Console.ReadKey(true); key = info.KeyChar; if (key != 0) { if (key == 'q') { DestroysObjects(camera, buffer, transfer, view); return; } } // Start continous grab transfer.Grab(); Console.WriteLine("Press any key to stop grab\n"); Console.ReadKey(); // Stop grab transfer.Freeze(); transfer.Wait(5000); DestroysObjects(camera, buffer, transfer, view); location.Dispose(); }
static void Xfer_XferNotify(object sender, SapXferNotifyEventArgs args) { SapView view = args.Context as SapView; view.Show(); }
void InitCam(int n) { while (true) { try { DestroyObjects(); DisposeObjects(); m_ServerLocation = new SapLocation("X64-CL_iPro_1", 0); m_ConfigFileName = SystemParam.ccfPath;//@"C:\Program Files\Teledyne DALSA\Sapera\CamFiles\User\w512x512.ccf"; // define on-line object m_Acquisition = new SapAcquisition(m_ServerLocation, m_ConfigFileName); m_Buffers = new SapBufferWithTrash(n, m_Acquisition, SapBuffer.MemoryType.ScatterGather); m_Xfer = new SapAcqToBuf(m_Acquisition, m_Buffers); // m_View = new SapView(m_Buffers); // m_View.SetScalingMode(true); //event for view m_Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; m_Xfer.XferNotify += new SapXferNotifyHandler(xfer_XferNotify1); m_Xfer.XferNotifyContext = this; // event for signal status m_Acquisition.SignalNotify += new SapSignalNotifyHandler(GetSignalStatus1); m_Acquisition.SignalNotifyContext = this; m_View = new SapView(m_Buffers); m_View.SetScalingMode(true); m_ImageBox.View = m_View; while (true) { try { if (!CreateObjects()) { DisposeObjects(); WFNetLib.WFGlobal.WaitMS(20); continue; } break; } catch { WFNetLib.WFGlobal.WaitMS(20); } } // SystemParam.cmosInfo.PixelDepth = m_Buffers.PixelDepth; // SystemParam.cmosInfo.ColPixels = m_Buffers.Height; // SystemParam.cmosInfo.RowPixels = m_Buffers.Width; if (SystemParam.cmosInfo.bRGB != 0) { wfSapGUI.GetRGBPixelInfo(m_Buffers.Width, m_Buffers.Height, SystemParam.cmosInfo.RGB1, SystemParam.cmosInfo.RGB2, SystemParam.cmosInfo.RGB3, SystemParam.cmosInfo.RGB4); } SystemParam.Pixel4Pic = m_Buffers.Height * m_Buffers.Width;//(int)SystemParam.cmosInfo.ColPixels * SystemParam.cmosInfo.RowPixels; float WidthScalor = (float)(this.Size.Width) / m_Buffers.Width; float HeightScalor = (float)(this.Size.Height) / m_Buffers.Height; m_View.SetScalingMode(WidthScalor, HeightScalor); m_ImageBox.OnSize(); EnableSignalStatus(); SystemParam.ByteLen4Pic = SystemParam.Pixel4Pic * m_Buffers.BytesPerPixel; m_Xfer.Grab(); return; } catch { } } }
static void Main(string[] args) { SapAcquisition Acq = null; SapAcqDevice AcqDevice = null; SapBuffer Buffers = null; SapTransfer Xfer = null; SapView View = null; Console.WriteLine("Sapera Console Grab Example (C# version)\n"); MyAcquisitionParams acqParams = new MyAcquisitionParams(); // Call GetOptions to determine which acquisition device to use and which config // file (CCF) should be loaded to configure it. if (!GetOptions(args, acqParams)) { Console.WriteLine("\nPress any key to terminate\n"); Console.ReadKey(true); return; } SapLocation loc = new SapLocation(acqParams.ServerName, acqParams.ResourceIndex); if (SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.Acq) > 0) { Acq = new SapAcquisition(loc, acqParams.ConfigFileName); Buffers = new SapBufferWithTrash(2, Acq, SapBuffer.MemoryType.ScatterGather); Xfer = new SapAcqToBuf(Acq, Buffers); // Create acquisition object if (!Acq.Create()) { Console.WriteLine("Error during SapAcquisition creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } Acq.EnableEvent(SapAcquisition.AcqEventType.StartOfFrame); } else if (SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.AcqDevice) > 0) { AcqDevice = new SapAcqDevice(loc, acqParams.ConfigFileName); Buffers = new SapBufferWithTrash(2, AcqDevice, SapBuffer.MemoryType.ScatterGather); Xfer = new SapAcqDeviceToBuf(AcqDevice, Buffers); // Create acquisition object if (!AcqDevice.Create()) { Console.WriteLine("Error during SapAcqDevice creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } } View = new SapView(Buffers); // End of frame event Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; Xfer.XferNotify += new SapXferNotifyHandler(xfer_XferNotify); Xfer.XferNotifyContext = View; // Create buffer object if (!Buffers.Create()) { Console.WriteLine("Error during SapBuffer creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } // Create buffer object if (!Xfer.Create()) { Console.WriteLine("Error during SapTransfer creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } // Create buffer object if (!View.Create()) { Console.WriteLine("Error during SapView creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } Xfer.Grab(); Console.WriteLine("\n\nGrab started, press a key to freeze"); Console.ReadKey(true); Xfer.Freeze(); Xfer.Wait(1000); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); loc.Dispose(); }
static void Main(string[] args) { SapAcquisition Acq = null; SapAcqDevice AcqDevice = null; SapBuffer Buffers = null; SapTransfer Xfer = null; SapView View = null; //Console.WriteLine("Sapera Console Grab Example (C# version)\n"); MyAcquisitionParams acqParams = new MyAcquisitionParams(); // Call GetOptions to determine which acquisition device to use and which config // file (CCF) should be loaded to configure it. if (!GetOptions(args, acqParams)) { Console.WriteLine("\nPress any key to terminate\n"); Console.ReadKey(true); return; } SapLocation loc = new SapLocation(acqParams.ServerName, acqParams.ResourceIndex); if (SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.Acq) > 0) { Acq = new SapAcquisition(loc, acqParams.ConfigFileName); Buffers = new SapBuffer(1, Acq, SapBuffer.MemoryType.ScatterGather); Xfer = new SapAcqToBuf(Acq, Buffers); // Create acquisition object if (!Acq.Create()) { Console.WriteLine("Error during SapAcquisition creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } } if (SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.AcqDevice) > 0) { AcqDevice = new SapAcqDevice(loc, acqParams.ConfigFileName); Buffers = new SapBuffer(1, AcqDevice, SapBuffer.MemoryType.ScatterGather); Xfer = new SapAcqDeviceToBuf(AcqDevice, Buffers); // Create acquisition object if (!AcqDevice.Create()) { Console.WriteLine("Error during SapAcqDevice creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } } View = new SapView(Buffers); // End of frame event Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame; Xfer.XferNotify += new SapXferNotifyHandler(xfer_XferNotify); Xfer.XferNotifyContext = View; //Console.WriteLine("gggggwhat is new line"); // Create buffer object if (!Buffers.Create()) { Console.WriteLine("Error during SapBuffer creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } // Create buffer object if (!Xfer.Create()) { Console.WriteLine("Error during SapTransfer creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } // Create buffer object if (!View.Create()) { Console.WriteLine("Error during SapView creation!\n"); DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); return; } // Grab as fast as possible, wait for a key to be pressed, if it's p, // write the file, otherwise if it's q exit the program. Designed to be run by and monitored // through a pipe Boolean stop_snap = false; int curr_code = 0; string new_cmd = ""; while (stop_snap == false) { Console.WriteLine("Press a key to trigger snap"); new_cmd = Console.ReadLine(); Xfer.Snap(); Console.WriteLine("Press a key to trigger save"); new_cmd = Console.ReadLine(); View.Buffer.Save("test.raw", "-format raw"); var dsb = new StringBuilder("frame: " + frame_count); Console.WriteLine(dsb); frame_count = frame_count + 1; Console.WriteLine("File saved, Press a key to repeat, q to quit:"); new_cmd = Console.ReadLine(); if (new_cmd == "q") { stop_snap = true; } //if (curr_code == 113) { stop_snap = true; } } DestroysObjects(Acq, AcqDevice, Buffers, Xfer, View); loc.Dispose(); }
public void CreatEndSqObject(SapBuffer buf, SapTransfer xfer, SapView view) { buf.Create(); xfer.Create(); //view.Create(); }