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; } } }
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; } } }
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(); } }
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); }