Exemplo n.º 1
0
        //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);
        }
Exemplo n.º 2
0
 public void EvtResist(SapAcqToBuf xfer, SapXferNotifyHandler evtFunc)
 {
     xfer.XferNotify       += new SapXferNotifyHandler(evtFunc);
     xfer.XferNotifyContext = View;
     Buffers.Create();
     xfer.Create();
 }
Exemplo n.º 3
0
        private IDalsaTDICam Initialize()
        {
            try
            {
                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;
                return(this);
            }
            catch (Exception)
            {
                MessageBox.Show("Camera initialization is fail");
                return(null);
            }
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
 private void DisposeObjects()
 {
     if (m_Xfer != null)
     {
         m_Xfer.Dispose(); m_Xfer = null;
     }
     if (m_Buffers != null)
     {
         m_Buffers.Dispose(); m_Buffers = null;
     }
     if (m_Acquisition != null)
     {
         m_Acquisition.Dispose(); m_Acquisition = null;
     }
 }
Exemplo n.º 6
0
        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;
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        public bool CreateNewObjects(SapLocation ServerLocation, string ConfigFile)
        {
            m_Acquisition = new SapAcquisition(m_ServerLocation, ConfigFile);
            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);


            //event for view
            m_Xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame;
            m_Xfer.XferNotify        += new SapXferNotifyHandler(xfer_XferNotify);

            return(true);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
 public void XferSetting(SapAcqToBuf xfer, SapAcquisition acquisition, SapBuffer buffers)
 {
     xfer = new SapAcqToBuf(acquisition, buffers);
     xfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame;
 }
Exemplo n.º 11
0
        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();
        }
Exemplo n.º 12
0
        void InitCam(int n)
        {
            while (true)
            {
                try
                {
                    DestroyObjects();
                    DisposeObjects();
                    if (m_online)
                    {
                        m_ServerLocation = new SapLocation("X64-CL_iPro_1", 0);
                        m_ConfigFileName = SystemParam.cmosInfo.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_XferNotify);
                        m_Xfer.XferNotifyContext  = this;

                        // event for signal status
                        m_Acquisition.SignalNotify       += new SapSignalNotifyHandler(GetSignalStatus);
                        m_Acquisition.SignalNotifyContext = this;
                    }
                    else
                    {
                        m_Buffers = new SapBuffer(1, SystemParam.cmosInfo.RowPixels, SystemParam.cmosInfo.ColPixels, SapFormat.Mono16, SapBuffer.MemoryType.ScatterGather);
                        //                 m_View = new SapView(m_Buffers);
                        //                 m_View.SetScalingMode(true);
                        StatusLabelInfo.Text = "offline... Load images";
                    }

                    //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(SystemParam.cmosInfo.RowPixels, SystemParam.cmosInfo.ColPixels, SystemParam.cmosInfo.RGB1, SystemParam.cmosInfo.RGB2, SystemParam.cmosInfo.RGB3, SystemParam.cmosInfo.RGB4);
                    }
                    SystemParam.Pixel4Pic = (int)SystemParam.cmosInfo.ColPixels * SystemParam.cmosInfo.RowPixels;
                    float WidthScalor  = (float)(splitContainer1.Panel2.Size.Width) / m_Buffers.Width;
                    float HeightScalor = (float)(splitContainer1.Panel2.Size.Height) / m_Buffers.Height;
                    //m_View.SetScalingMode(WidthScalor, HeightScalor);
                    //m_ImageBox.OnSize();
                    EnableSignalStatus();
                    SystemParam.ByteLen4Pic = SystemParam.Pixel4Pic * m_Buffers.BytesPerPixel;
                    m_Xfer.Freeze();
                    return;
                }
                catch
                {
                }
            }
        }
Exemplo n.º 13
0
        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();
        }
Exemplo n.º 14
0
        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();
        }