public override void Detect()
        {
            this.camera = new xiCam();

            this.camera.OpenDevice(ModuleConfiguration.Default_TimeredBarCodeCameraDeviceID);

            if (ModuleConfiguration.Default_CameraParameters != null)
            {
                foreach (string paramName in ModuleConfiguration.Default_CameraParameters.Keys)
                {
                    object value = ModuleConfiguration.Default_CameraParameters[paramName];

                    if (value is float)
                    {
                        this.camera.SetParam(paramName, ((float)(ModuleConfiguration.Default_CameraParameters[paramName])));
                    }
                    else
                    {
                        this.camera.SetParam(paramName, ((int)(ModuleConfiguration.Default_CameraParameters[paramName])));
                    }
                }
            }

            this.camera.StartAcquisition();

            base.TimerCallBack += TimeredBarCodeCameraDetector_TimerCallBack;

            base.Detect();
        }
        public override void Open()
        {
            //base.Open();

            this.camera = new xiCam();

            foreach (int deviceID in ModuleConfiguration.Default_ActiveDevices)
            {
                this.camera.OpenDevice(deviceID);

                if (ModuleConfiguration.Default_CameraParameters != null)
                {
                    foreach (string paramName in ModuleConfiguration.Default_CameraParameters.Keys)
                    {
                        object value = ModuleConfiguration.Default_CameraParameters[paramName];

                        if (value is float)
                        {
                            this.camera.SetParam(paramName, ((float)(ModuleConfiguration.Default_CameraParameters[paramName])));
                        }
                        else
                        {
                            this.camera.SetParam(paramName, ((int)(ModuleConfiguration.Default_CameraParameters[paramName])));
                        }
                    }
                }
            }
        }
        static void enumerateExposure(int durationPerExposure, int exposureMin, int exposureMax, float gain)
        {
            camera = new xiCam();

            int numberOfDevices = camera.GetNumberDevices();

            if (numberOfDevices > 0)
            {
                camera.OpenDevice(0);

                camera.SetParam(PRM.GAIN, gain);

                camera.SetParam(PRM.IMAGE_DATA_FORMAT, xiApi.NET.IMG_FORMAT.MONO8);

                camera.StartAcquisition();

                Bitmap bitmap = null;

                string cameraStorePath = "D:\\IndustrialCameraTest\\XIMEA\\ExposureTest";

                cameraStorePath = String.Format("{0}\\{1}", cameraStorePath, DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"));

                if (!Directory.Exists(cameraStorePath))
                {
                    Directory.CreateDirectory(cameraStorePath);
                }

                string filePath = "";

                for (int i = exposureMin; i < (exposureMax + 1); i++)
                {
                    camera.SetParam(PRM.EXPOSURE, i);

                    for (int j = 0; j < durationPerExposure; j++)
                    {
                        camera.GetImage(out bitmap, 5000);

                        filePath = String.Format("{0}\\{1}\\{2}\\{3}", cameraStorePath, i, j, DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"));

                        if (!Directory.Exists(filePath))
                        {
                            Directory.CreateDirectory(filePath);
                        }

                        using (FileStream stream = new FileStream(String.Format("{0}\\{1}.bmp", filePath, Guid.NewGuid().ToString()), FileMode.Create, FileAccess.Write, FileShare.Write))
                        {
                            bitmap.Save(stream, ImageFormat.Bmp);
                        }
                    }
                }

                camera.StopAcquisition();

                camera.CloseDevice();
            }
        }
        public override byte[] Test(out object[] OutputData)
        {
            byte[] returnValue = null;

            this.camera = new xiCam();

            this.camera.OpenDevice(ModuleConfiguration.Default_TimeredBarCodeCameraDeviceID);

            if (ModuleConfiguration.Default_CameraParameters != null)
            {
                foreach (string paramName in ModuleConfiguration.Default_CameraParameters.Keys)
                {
                    object value = ModuleConfiguration.Default_CameraParameters[paramName];

                    if (value is float)
                    {
                        this.camera.SetParam(paramName, ((float)(ModuleConfiguration.Default_CameraParameters[paramName])));
                    }
                    else
                    {
                        this.camera.SetParam(paramName, ((int)(ModuleConfiguration.Default_CameraParameters[paramName])));
                    }
                }
            }

            this.camera.StartAcquisition();

            Bitmap bitmap = null;

            ArrayList barcodeArray = null;

            this.getBarCode(out bitmap, out barcodeArray);

            OutputData = (barcodeArray != null) ? barcodeArray.ToArray() : null;

            if (bitmap != null)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);

                    returnValue = stream.GetBuffer();
                }
            }

            this.camera.StopAcquisition();

            this.camera.CloseDevice();

            return(returnValue);
        }
        public void Evaluate(int SpreadMax)
        {
            if (firstRun || FInRefresh[0])
            {
                firstRun = false;

                xiCam queryDevice = new xiCam();

                int deviceCount = queryDevice.GetNumberDevices();

                FOutDeviceID.SliceCount     = deviceCount;
                FOutDeviceName.SliceCount   = deviceCount;
                FOutDeviceType.SliceCount   = deviceCount;
                FOutDeviceSerial.SliceCount = deviceCount;

                for (int i = 0; i < deviceCount; i++)
                {
                    string name   = "";
                    string type   = "";
                    string serial = "";

                    if (FInGetProperties[0])
                    {
                        queryDevice.OpenDevice(i);
                        name   = queryDevice.GetParamString(PRM.DEVICE_NAME);
                        type   = queryDevice.GetParamString(PRM.DEVICE_TYPE);
                        serial = queryDevice.GetParamString(PRM.DEVICE_SN);
                        queryDevice.CloseDevice();
                    }

                    FOutDeviceID[i]     = i;
                    FOutDeviceName[i]   = name;
                    FOutDeviceSerial[i] = serial;
                    FOutDeviceType[i]   = type;
                }
            }
        }
Example #6
0
        public void Evaluate(int SpreadMax)
        {
            if (firstRun || FInRefresh[0])
            {
                firstRun = false;

                xiCam queryDevice = new xiCam();

                int deviceCount = queryDevice.GetNumberDevices();

                FOutDeviceID.SliceCount = deviceCount;
                FOutDeviceName.SliceCount = deviceCount;
				FOutDeviceType.SliceCount = deviceCount;
                FOutDeviceSerial.SliceCount = deviceCount;

                for (int i =0; i<deviceCount; i++)
                {
					string name = "";
					string type = "";
					string serial = "";
					
					if (FInGetProperties[0])
					{
						queryDevice.OpenDevice(i);
						name = queryDevice.GetParamString(PRM.DEVICE_NAME);
						type = queryDevice.GetParamString(PRM.DEVICE_TYPE);
						serial = queryDevice.GetParamString(PRM.DEVICE_SN);
						queryDevice.CloseDevice();
					}
					
					FOutDeviceID[i] = i;
					FOutDeviceName[i] = name;
					FOutDeviceSerial[i] = serial;
					FOutDeviceType[i] = type;
                }
            }
        }
Example #7
0
        static void DetectFrequency()
        {
            camera = new xiCam();

            try
            {
                int cameraCount = camera.GetNumberDevices();

                camera.OpenDevice(cameraCount - 1);

                //camera.SetParam(PRM.BUFFER_POLICY, BUFF_POLICY.SAFE);

                // Set device exposure to 2 milliseconds(2000 microseconds(us))
                int exposure_us = 2000;

                exposure_us = 1975;

                //exposure_us = 800;//50;//150;//200;

                //exposure_us = 11;//291;//369;

                camera.SetParam(PRM.EXPOSURE, exposure_us);

                // Set device gain to 5 decibels
                float gain_db = 5;

                //gain_db = 30;

                //gain_db = 28.7f;//28.3f;

                camera.SetParam(PRM.GAIN, gain_db);

                // Set image output format to monochrome 8 bit
                camera.SetParam(PRM.IMAGE_DATA_FORMAT, IMG_FORMAT.MONO8);

                //camera.SetParam(PRM.IMAGE_DATA_FORMAT, IMG_FORMAT.RAW8);

                //camera.SetParam(PRM.AEAG, 1);

                ////camera.SetParam(PRM.EXPOSURE_MAX, 200);
                //camera.SetParam(PRM.EXPOSURE_MAX, 1);
                ////camera.SetParam(PRM.GAIN_MAX, 16);
                //camera.SetParam(PRM.GAIN_MAX, 25);
                //camera.SetParam(PRM.AEAG_LEVEL, 40);

                camera.StartAcquisition();

                Console.WriteLine(camera.GetParamString(xiApi.NET.PRM.DEVICE_NAME));

                Console.WriteLine(camera.GetParamString(xiApi.NET.PRM.DEVICE_SN));

                string command = "y";

                //string defaultBufferSize = camera.GetParamString(PRM.ACQ_BUFFER_SIZE);

                //int bufferSize = 53248000;//int.Parse(defaultBufferSize);

                //byte[] imageBytes = new byte[bufferSize];

                //MemoryStream stream;

                FileStream fileStream;

                Bitmap bitmap = null;

                System.Collections.ArrayList barcodes = new System.Collections.ArrayList();

                int scanningTimes = 75;

                //Image image;

                while (command.ToLower() == "y")
                {
                    //camera.GetImage(imageBytes, 5000);

                    //stream = new MemoryStream();

                    //stream.Write(imageBytes, 0, imageBytes.Length);

                    //image = Image.FromStream(stream);

                    //bitmap = new Bitmap(image);

                    camera.GetImage(out bitmap, 5000);

                    //bitmap = BarcodeImaging.RotateImage(bitmap, 1);

                    barcodes = new System.Collections.ArrayList();

                    BarcodeImaging.FullScanPage(ref barcodes, bitmap, scanningTimes);

                    //if ((barcodes != null) && (barcodes.Count > 0))
                    {
                        Console.WriteLine(DateTime.Now);

                        for (int i = 0; i < barcodes.Count; i++)
                        {
                            Console.WriteLine(barcodes[i]);
                        }

                        string filePath = String.Format("d:\\ximeaCameraTest\\{0}", DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"));

                        //string filePath = String.Format("d:\\ximeaCameraTest\\{0}", DateTime.Now.ToString("yyyy-MM-dd"));

                        Directory.CreateDirectory(filePath);

                        fileStream = new FileStream(String.Format("{0}\\{1}.bmp", filePath, Guid.NewGuid().ToString()), FileMode.Create, FileAccess.Write, FileShare.Write);

                        bitmap.Save(fileStream, System.Drawing.Imaging.ImageFormat.Bmp);

                        fileStream.Flush();

                        fileStream.Close();
                    }

                    //Console.WriteLine("Continue? (Y/N)");

                    //command = Console.ReadLine();
                }

                camera.StopAcquisition();

                camera.CloseDevice();

                Console.WriteLine("Press any key to exit...");

                Console.Read();
            }
            catch (Exception ex)
            {
                camera.CloseDevice();
                Console.WriteLine(ex.ToString());
                Console.Read();
            }
            finally
            {
                camera.CloseDevice();
            }
        }
Example #8
0
        static void TestCamera()
        {
            camera = new xiCam();

            try
            {
                int cameraCount = camera.GetNumberDevices();

                camera.OpenDevice(cameraCount - 1);

                //camera.SetParam(PRM.BUFFER_POLICY, BUFF_POLICY.SAFE);

                // Set device exposure to 2 milliseconds
                int exposure_us = 2000;

                exposure_us = 200;

                camera.SetParam(PRM.EXPOSURE, exposure_us);

                // Set device gain to 5 decibels
                float gain_db = 5;

                gain_db = 28.3f;//0;

                camera.SetParam(PRM.GAIN, gain_db);

                // Set image output format to monochrome 8 bit
                camera.SetParam(PRM.IMAGE_DATA_FORMAT, IMG_FORMAT.MONO8);

                //camera.SetParam(PRM.IMAGE_DATA_FORMAT, IMG_FORMAT.RAW8);

                //camera.SetParam(PRM.AEAG, 1);

                //camera.SetParam(PRM.EXPOSURE_MAX, 200);
                //camera.SetParam(PRM.GAIN_MAX, 16);
                //camera.SetParam(PRM.AEAG_LEVEL, 40);

                camera.StartAcquisition();

                Console.WriteLine(camera.GetParamString(xiApi.NET.PRM.DEVICE_NAME));

                Console.WriteLine(camera.GetParamString(xiApi.NET.PRM.DEVICE_SN));

                string command = "y";

                //string defaultBufferSize = camera.GetParamString(PRM.ACQ_BUFFER_SIZE);

                //int bufferSize = 53248000;//int.Parse(defaultBufferSize);

                //byte[] imageBytes = new byte[bufferSize];

                //MemoryStream stream;

                FileStream fileStream;

                Bitmap bitmap = null;

                //Image image;

                string filePath = "";

                while (command.ToLower() == "y")
                {
                    //camera.GetImage(imageBytes, 5000);

                    //stream = new MemoryStream();

                    //stream.Write(imageBytes, 0, imageBytes.Length);

                    //image = Image.FromStream(stream);

                    //bitmap = new Bitmap(image);

                    camera.GetImage(out bitmap, 5000);

                    filePath = String.Format("d:\\ximeaCameraTest\\{0}", DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"));

                    Directory.CreateDirectory(filePath);

                    fileStream = new FileStream(String.Format("{0}\\{1}.bmp", filePath, Guid.NewGuid().ToString()), FileMode.Create, FileAccess.Write, FileShare.Write);

                    bitmap.Save(fileStream, System.Drawing.Imaging.ImageFormat.Bmp);

                    fileStream.Flush();

                    fileStream.Close();

                    Console.WriteLine("Continue? (Y/N)");

                    command = Console.ReadLine();
                }

                camera.StopAcquisition();

                camera.CloseDevice();

                Console.WriteLine("Press any key to exit...");

                Console.Read();
            }
            catch (Exception ex)
            {
                camera.CloseDevice();
                Console.WriteLine(ex.ToString());
                Console.Read();
            }
            finally
            {
                camera.CloseDevice();
            }
        }
 public void SetDeviceInstance(object deviceInstance)
 {
     this.camera = deviceInstance as xiCam;
 }
        public override byte[] Test(out object[] OutputData)
        {
            //return base.Test(out OutputData);

            byte[] returnValue = null;

            OutputData = null;

            this.camera = new xiCam();

            this.camera.OpenDevice(ModuleConfiguration.Default_ActiveDevices[0]);

            if (ModuleConfiguration.Default_CameraParameters != null)
            {
                foreach (string paramName in ModuleConfiguration.Default_CameraParameters.Keys)
                {
                    object value = ModuleConfiguration.Default_CameraParameters[paramName];

                    if (value is float)
                    {
                        this.camera.SetParam(paramName, ((float)(ModuleConfiguration.Default_CameraParameters[paramName])));
                    }
                    else
                    {
                        this.camera.SetParam(paramName, ((int)(ModuleConfiguration.Default_CameraParameters[paramName])));
                    }
                }
            }

            this.camera.StartAcquisition();

            Bitmap bitmap = null;

            //string barcodes = "";

            this.camera.GetImage(out bitmap, ModuleConfiguration.Default_Timeout);

            //if (ModuleConfiguration.IsExtractingBarCodes)
            //{
            //    ArrayList barcodeArray = null;

            //    this.getBarCode(bitmap, out bitmap, out barcodeArray);

            //    //OutputData = (barcodeArray != null) ? barcodeArray.ToArray() : null;

            //    if ((barcodeArray != null) && (barcodeArray.Count > 0))
            //    {
            //        for (int i = 0; i < barcodeArray.Count; i++)
            //        {
            //            if (barcodeArray[i] != null)
            //            {
            //                barcodes += barcodeArray[i].ToString();
            //            }

            //            if (i != (barcodeArray.Count - 1))
            //            {
            //                barcodes += ",";
            //            }
            //        }
            //    }
            //}

            if (bitmap != null)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    bitmap.Save(stream, this.getGDIPlusImageFormat(ModuleConfiguration.Default_ImageOuputFormat));

                    returnValue = stream.GetBuffer();
                }
            }

            this.camera.StopAcquisition();

            //this.camera.CloseDevice();

            OutputData = new object[]
            {
                new DataPair()
                {
                    Identifier = new DataIdentifier()
                    {
                        DataUniqueID = String.Format("Test-{0}", Utility.CommonUtility.GetMillisecondsOfCurrentDateTime(null))   //Guid.NewGuid().ToString()
                    },

                    Items = new List <DataItem>(new DataItem[]
                    {
                        new DataItem()
                        {
                            CreationTime   = DateTime.Now,
                            DataBytes      = returnValue,
                            Size           = returnValue.Length,
                            DeviceID       = String.Format("{0}-{1}", this.camera.GetParamString(xiApi.NET.PRM.DEVICE_NAME), this.camera.GetParamString(xiApi.NET.PRM.DEVICE_SN)),
                            DataParameters = new List <DataParameter>(new DataParameter[]
                            {
                                new DataParameter()
                                {
                                    Name = "CameraFrameRate", Value = this.camera.GetParamString(PRM.FRAMERATE)
                                },
                                new DataParameter()
                                {
                                    Name = "Exposure", Value = ModuleConfiguration.Default_CameraParameters[xiApi.NET.PRM.EXPOSURE].ToString()
                                },
                                new DataParameter()
                                {
                                    Name = "Gain", Value = ModuleConfiguration.Default_CameraParameters[xiApi.NET.PRM.GAIN].ToString()
                                },
                                new DataParameter()
                                {
                                    Name = "ImageDataFormat", Value = ModuleConfiguration.Default_CameraParameters[xiApi.NET.PRM.IMAGE_DATA_FORMAT].ToString()
                                },
                                new DataParameter()
                                {
                                    Name = "ImageOutputFormat", Value = ModuleConfiguration.Default_ImageOuputFormat.ToString()
                                }                                                                                                                  //,
                                //new DataParameter(){ Name = "BarCodeScanningTimes", Value = ModuleConfiguration.Default_BarCodeScanningTimes.ToString()},
                                //new DataParameter(){ Name = "ImageRotationDegree", Value = ModuleConfiguration.Default_ImageRotationDegree.ToString()},
                                //new DataParameter(){ Name = "FailureRetryTimes", Value = ModuleConfiguration.Default_FailureRetryTimes.ToString()},
                                //new DataParameter(){ Name = "BarCodes", Value = barcodes }
                            })
                        }
                    })
                }
            };

            this.camera.CloseDevice();

            return(returnValue);
        }