public override bool SetTriggerMode(string triggerMode) { using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.TriggerMode]) { return(p.SetValue(triggerMode)); } }
/// <summary> /// 设置相机配参 /// </summary> private void SetParameters() { if (_Camera == null) { return; } // 关闭触发模式 _Camera.TriggerSet.Close(); // 设置帧格式 using (IEnumParameter ep = _Camera.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { ep.SetValue("Mono8"); } // 获取图像宽度 using (IIntegraParameter ip = _Camera.ParameterCollection[ParametrizeNameSet.ImageWidth]) { this.MaxWidth = Convert.ToInt32(ip.GetMaximum()); this.Width = Convert.ToInt32(ip.GetValue()); } // 获取图像高度 using (IIntegraParameter ip = _Camera.ParameterCollection[ParametrizeNameSet.ImageHeight]) { this.MaxHeight = Convert.ToInt32(ip.GetMaximum()); this.Height = Convert.ToInt32(ip.GetValue()); } }
// Shown here for demonstration purposes only to illustrate the effect of this configuration. static void DisableAllTriggers(object sender, EventArgs e) { ICamera camera = sender as ICamera; // Disable all trigger types. //------------------------------------------------------------------------------ // Get required enumerations. IEnumParameter triggerSelector = camera.Parameters [PLCamera.TriggerSelector]; IEnumParameter triggerMode = camera.Parameters [PLCamera.TriggerMode]; // Remember previous selector value. string oldSelectorValue = triggerSelector.IsReadable ? triggerSelector.GetValue() : null; try { // Turn trigger mode off for all trigger selector entries. foreach (string trigger in triggerSelector) { triggerSelector.SetValue(trigger); triggerMode.SetValue(PLCamera.TriggerMode.Off); } } finally { // Restore previous selector. if (oldSelectorValue != null) { triggerSelector.SetValue(oldSelectorValue); } } // Set acquisition mode to Continuous. camera.Parameters [PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.SingleFrame); }
public void Setting(byte Mode) //Mode 0:Live 1:Hard 2:Soft { for (byte i = 0; i < app.MaxCameraCount; i++) { if (SelectCameraCompany == 0 && selectCameraHandle[i] != (IntPtr)0) { m_Camera[i] = new StCamera(selectCameraHandle[i]); m_Camera[i].StopTransfer(); if (Mode == 0) { m_Camera[i].TriggerMode = StTrg.STCAM_TRIGGER_MODE_OFF; } else if (Mode == 1) { m_Camera[i].TriggerMode = StTrg.STCAM_TRIGGER_MODE_ON; m_Camera[i].TriggerSource = StTrg.STCAM_TRIGGER_SOURCE_HARDWARE; m_Camera[i].IOPinMode[0] = 16; m_Camera[i].IOPinPolarity[0] = 0; } else if (Mode == 2) { m_Camera[i].TriggerMode = StTrg.STCAM_TRIGGER_MODE_ON; m_Camera[i].TriggerSource = StTrg.STCAM_TRIGGER_SOURCE_SOFTWARE; } m_Camera[i].SetDisplayImageCallback(new StCamera.DisplayImageCallback(Receiver)); m_Camera[i].StopTransfer(); } else if (SelectCameraCompany == 1 && selectDevHandle[i] != -1) { m_dev[i].Open(); if (Mode == 0) { m_dev[i].TriggerSet.Close(); } else if (Mode == 1) { m_dev[i].TriggerSet.Open(TriggerSourceEnum.Line2); } else if (Mode == 2) { m_dev[i].TriggerSet.Open(TriggerSourceEnum.Software); } using (IEnumParameter p = m_dev[i].ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { p.SetValue("Mono8"); } m_dev[i].StreamGrabber.SetBufferCount(8); if (m_dev[i].StreamGrabber != null) { m_dev[i].StreamGrabber.ImageGrabbed += Receiver; } } } }
public override string GetImageFormat() // 获取图像格式 { using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { return(p.GetValue()); } }
public override bool SetImageFormat(string value) { using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { return(p.SetValue(value)); } }
internal static Node Make(IEnumParameter parameter, DomainDomain source) { var options = source.GetEnumOptions(parameter.Value).Select(o => o.Name); return(new Count { Min = 1, Max = 1, Subjects = options.Select(o => new String { Value = o, Next = new Node[0] }).ToArray() }); }
internal static Node MakeDynamic(IEnumParameter parameter, ConversationDataSource conversationSource, object newSourceId) { var enumsource = conversationSource.GetSource(ParameterType.Basic.FromGuid(parameter.Value), newSourceId); var options = enumsource.Options; return(new Count { Min = 1, Max = 1, Subjects = options.Select(o => new String { Value = o, Next = new Node[0] }).ToArray() }); }
// Shown here for demonstration purposes only to illustrate the effect of this configuration. public static void SoftwareTrigger(object sender, EventArgs e) { ICamera camera = sender as ICamera; // Get required Enumerations. IEnumParameter triggerSelector = camera.Parameters [PLCamera.TriggerSelector]; IEnumParameter triggerMode = camera.Parameters [PLCamera.TriggerMode]; IEnumParameter triggerSource = camera.Parameters [PLCamera.TriggerSource]; // Check the available camera trigger mode(s) to select the appropriate one: acquisition start trigger mode // (used by older cameras, i.e. for cameras supporting only the legacy image acquisition control mode; // do not confuse with acquisition start command) or frame start trigger mode // (used by newer cameras, i.e. for cameras using the standard image acquisition control mode; // equivalent to the acquisition start trigger mode in the legacy image acquisition control mode). string triggerName = "FrameStart"; if (!triggerSelector.CanSetValue(triggerName)) { triggerName = "AcquisitionStart"; if (!triggerSelector.CanSetValue(triggerName)) { throw new NotSupportedException("Could not select trigger. Neither FrameStart nor AcquisitionStart is available."); } } try { foreach (string trigger in triggerSelector) { triggerSelector.SetValue(trigger); if (triggerName == trigger) { // Activate trigger. triggerMode.SetValue(PLCamera.TriggerMode.On); // Set the trigger source to software. triggerSource.SetValue(PLCamera.TriggerSource.Software); } else { // Turn trigger mode off. triggerMode.SetValue(PLCamera.TriggerMode.Off); } } } finally { // Set selector for software trigger. triggerSelector.SetValue(triggerName); } // Set acquisition mode to Continuous camera.Parameters [PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.Continuous); }
/// <summary> /// 输出相机开关量 /// </summary> /// <param name="millSeconds">高电平持续毫秒数</param> /// <param name="num">单号</param> public void IoOutput(int millSeconds, string num) { // 保证每次只允许一个信号输出 if (Interlocked.CompareExchange(ref _bIoOutFlag, 1, 0) == 0) { // 异步输出脉冲信号 new TaskFactory().StartNew(() => { try { if (_Camera != null) { //选择输出信号 using (IEnumParameter ep = _Camera.ParameterCollection[ParametrizeNameSet.IOLineSelector]) { ep.SetValue("Line0"); } // 选择用户输出 using (IEnumParameter ep = _Camera.ParameterCollection[ParametrizeNameSet.IOUserOutputSelector]) { ep.SetValue("UserOutPut0"); } // 输出信号脉冲 using (IBooleanParameter bp = _Camera.ParameterCollection[ParametrizeNameSet.IOUserOutputValue]) { bp.SetValue(false); } Thread.Sleep(millSeconds); // 停止输出脉冲 using (IBooleanParameter bp = _Camera.ParameterCollection[ParametrizeNameSet.IOUserOutputValue]) { bp.SetValue(true); } // 允许输出 Interlocked.CompareExchange(ref _bIoOutFlag, 0, 1); } } catch (Exception e) { MvBarCodeGlobalVar.Log.Error(e); } }); } }
// Shown here for demonstration purposes only to illustrate the effect of this configuration. static void DisableCompression(object sender, EventArgs e) { ICamera camera = sender as ICamera; // Disable compression mode. //------------------------------------------------------------------------------ // Get required enumeration. IEnumParameter compressionMode = camera.Parameters [(EnumName)"ImageCompressionMode"]; if (compressionMode.IsWritable) { // Turn off compression mode. compressionMode.SetValue("Off"); } }
public override void Open() { objDev = Enumerator.GetDeviceByKey(strName); // 注册链接事件 objDev.CameraOpened += OnCameraOpen; objDev.ConnectionLost += OnConnectLoss; objDev.CameraClosed += OnCameraClose; // 打开设备 // open device if (!objDev.Open()) { MessageBox.Show("Open camera failed"); return; } // 打开Software Trigger objDev.TriggerSet.Open(TriggerSourceEnum.Software); // 设置图像格式 // set PixelFormat using (IEnumParameter p = objDev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { p.SetValue("Mono8"); } // 开启图像采集函数线程 renderThread = new Thread(new ThreadStart(ShowThread)); renderThread.IsBackground = true; renderThread.Start(); // 设置缓存个数为8(默认值为16) objDev.StreamGrabber.SetBufferCount(8); // 注册码流回调事件 objDev.StreamGrabber.ImageGrabbed += OnImageGrabbed; // 开启码流 // start grabbing if (!objDev.GrabUsingGrabLoopThread()) { MessageBox.Show(@"Start grabbing failed"); return; } }
public override bool InitialCamera(string _serialNumber) // 初始化相机 { string name = "Machine Vision:" + _serialNumber; this.userID = name; /* 设备搜索 */ if (li.Count > 0) { for (int i = 0; i < li.Count; i++) { if (li[i].Key == userID) { m_dev = Enumerator.GetDeviceByKey(userID); try { if (m_dev.Open()) { using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { p.SetValue("Mono8"); } /* 开启相机线程 */ renderThread = new Thread(new ThreadStart(ShowThread)); renderThread.IsBackground = true; renderThread.Start(); /* 设置缓存个数为8(默认值为16) */ m_dev.StreamGrabber.SetBufferCount(8); /* 注册码流回调事件 图像回调函数 */ m_dev.StreamGrabber.ImageGrabbed += OnImageGrabbed; /* 相机短线回调 */ m_dev.ConnectionLost += OnConnectLoss; ConnectState = true; } } catch (Exception) { return(false); } } } } return(true); }
public void Setup(ParameterEditorSetupData data) { m_parameter = data.Parameter as IEnumParameter; foreach (var ch in m_parameter.Options.OrderBy(o => m_parameter.GetName(o))) { m_comboBoxItems.Add(new TItem(m_parameter.GetName(ch), ch)); } if (!m_parameter.Corrupted) { var valueName = m_parameter.GetName(m_parameter.Value); if (valueName != null) { m_comboBox.SelectedItem = new TItem(valueName, m_parameter.Value); } else { m_comboBox.SelectedItem = new TItem(InvalidValue); } } }
public DynamicEnumerationValue(IEnumParameter parameter) { Type = ParameterType.Basic.FromGuid(parameter.Value); }
/* 打开相机按钮事件 */ private void btnOpen_Click(object sender, EventArgs e) { try { /* 设备搜索 */ List <IDeviceInfo> li = Enumerator.EnumerateDevices(); if (li.Count > 0) { /* 获取搜索到的第一个设备 */ m_dev = Enumerator.GetDeviceByIndex(0); /* 注册链接时间 */ m_dev.CameraOpened += OnCameraOpen; m_dev.ConnectionLost += OnConnectLoss; m_dev.CameraClosed += OnCameraClose; /* 打开设备 */ if (!m_dev.Open()) { MessageBox.Show(@"连接相机失败"); return; } /* 打开Software Trigger */ if (bVideoMode) { m_dev.TriggerSet.Close(); } else { m_dev.TriggerSet.Open(TriggerSourceEnum.Software); } /* 设置图像格式 */ using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { p.SetValue("Mono8"); } /* 设置曝光 */ using (IFloatParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ExposureTime]) { p.SetValue(nExpTime); } /* 设置增益 */ using (IFloatParameter p = m_dev.ParameterCollection[ParametrizeNameSet.GainRaw]) { p.SetValue(fCamGain); } /* 设置缓存个数为8(默认值为16) */ m_dev.StreamGrabber.SetBufferCount(8); /* 注册码流回调事件 */ m_dev.StreamGrabber.ImageGrabbed += OnImageGrabbed; /* 开启码流 */ if (!m_dev.GrabUsingGrabLoopThread()) { MessageBox.Show(@"开启码流失败"); return; } } } catch (Exception exception) { Catcher.Show(exception); } }
public EnumItem(IEnumParameter parameter, string valueName) { ValueName = valueName; ValueDisplayName = parameter.GetAdvancedValueProperties(valueName).GetPropertyOrDefault(AdvancedParameterAccessKey.DisplayName, valueName); }
// Provides the display name and the name of an enum value. public EnumItem(IEnumParameter parameter) { ValueName = parameter.GetValue(); ValueDisplayName = parameter.GetAdvancedValueProperties(ValueName).GetPropertyOrDefault(AdvancedParameterAccessKey.DisplayName, ValueName); }
public static void Test() { Random random = new Random(0); Func <string> randomString = () => "test" + random.NextDouble().ToString(CultureInfo.InvariantCulture); Func <Id <Parameter> > randomParameterId = () => { byte[] bytes = new byte[16]; random.NextBytes(bytes); return(Id <Parameter> .FromGuid(new Guid(bytes))); //Not really a guid but should be unique enough for this test }; List <DecimalData> decimals = new List <DecimalData>(); List <IntegerData> integers = new List <IntegerData>(); List <EnumerationData> enums = new List <EnumerationData>(); List <EnumerationData> hiddenEnums = new List <EnumerationData>(); List <DynamicEnumerationData> dynamicEnums = new List <DynamicEnumerationData>(); List <LocalDynamicEnumerationData> localDynamicEnums = new List <LocalDynamicEnumerationData>(); List <LocalizedStringData> localizedStrings = new List <LocalizedStringData>(); List <OtherData> others = new List <OtherData>(); TypeSet t = new TypeSet(); Action CheckContents = () => { foreach (var x in decimals) { CheckIs(t, x.TypeId, dec: true); Assert.That(t.GetTypeName(x.TypeId), Is.EqualTo(x.Name)); IParameter parameter = CheckBasicMake(randomString(), randomParameterId(), randomString(), t, x.TypeId, null, true); //This type shouldn't care about document Assert.That(parameter, Is.InstanceOf <IDecimalParameter>()); IDecimalParameter p = parameter as IDecimalParameter; Assert.That(p.Min, Is.EqualTo(x.Min)); Assert.That(p.Max, Is.EqualTo(x.Max)); } foreach (var x in integers) { CheckIs(t, x.TypeId, integer: true); Assert.That(t.GetTypeName(x.TypeId), Is.EqualTo(x.Name)); IParameter parameter = CheckBasicMake(randomString(), randomParameterId(), randomString(), t, x.TypeId, null, true); //This type shouldn't care about document Assert.That(parameter, Is.InstanceOf <IIntegerParameter>()); IIntegerParameter p = parameter as IIntegerParameter; Assert.That(p.Min, Is.EqualTo(x.Min)); Assert.That(p.Max, Is.EqualTo(x.Max)); } foreach (var x in enums) { CheckIs(t, x.TypeId, enumeration: true); Assert.That(t.GetTypeName(x.TypeId), Is.EqualTo(x.Name)); { IParameter parameter = CheckBasicMake(randomString(), randomParameterId(), randomString(), t, x.TypeId, null, true); //This type shouldn't care about document Assert.That(parameter, Is.InstanceOf <IEnumParameter>()); IEnumParameter p = parameter as IEnumParameter; Assert.That(p.Options, Is.EquivalentTo(x.Elements.Select(a => a.Guid))); } //Check set parameter creation { IParameter parameter = CheckBasicMake(randomString(), randomParameterId(), randomString(), t, ParameterType.ValueSetType.Of(x.TypeId), null, true); //This type shouldn't care about document Assert.That(parameter, Is.InstanceOf <ISetParameter>()); ISetParameter p = parameter as ISetParameter; Assert.That(p.Options, Is.EquivalentTo(x.Elements.Select(a => a.Guid))); } } foreach (var x in dynamicEnums) { CheckIs(t, x.TypeId, dynamicEnum: true); Assert.That(t.GetTypeName(x.TypeId), Is.EqualTo(x.Name)); IParameter parameter = CheckBasicMake(randomString(), randomParameterId(), randomString(), t, x.TypeId, null, true); //This type shouldn't care about document Assert.That(parameter, Is.InstanceOf <IDynamicEnumParameter>()); IDynamicEnumParameter p = parameter as IDynamicEnumParameter; Assert.That(p.Local, Is.False); } foreach (var x in localDynamicEnums) { CheckIs(t, x.TypeId, localDynamicEnum: true); Assert.That(t.GetTypeName(x.TypeId), Is.EqualTo(x.Name)); object document = new object(); IParameter parameter = CheckBasicMake(randomString(), randomParameterId(), randomString(), t, x.TypeId, document, true); Assert.That(parameter, Is.InstanceOf <IDynamicEnumParameter>()); IDynamicEnumParameter p = parameter as IDynamicEnumParameter; Assert.That(p.Local, Is.True); } foreach (var x in localizedStrings) { CheckIs(t, x.TypeId, localizedString: true); Assert.That(t.GetTypeName(x.TypeId), Is.EqualTo(x.Name)); object document = new object(); IParameter parameter = CheckBasicMake(randomString(), randomParameterId(), randomString(), t, x.TypeId, document, false); Assert.That(parameter, Is.InstanceOf <ILocalizedStringParameter>()); } foreach (var x in others) { CheckIs(t, x.TypeId); Assert.That(t.GetTypeName(x.TypeId), Is.EqualTo(x.Name)); string name = randomString(); var id = randomParameterId(); var def = randomString(); object document = new object(); IParameter parameter = CheckBasicMake(name, id, def, t, x.TypeId, document, true); Assert.That(x.LastGeneratorParameters, Is.Not.Null); Assert.That(x.LastGeneratorParameters.name, Is.EqualTo(name)); Assert.That(x.LastGeneratorParameters.id, Is.EqualTo(id)); Assert.That(x.LastGeneratorParameters.defaultValue, Is.EqualTo(def)); Assert.That(x.LastGeneratorParameters.document, Is.EqualTo(document)); Assert.That(x.LastGeneratorParameters.createdParameter, Is.EqualTo(parameter)); x.LastGeneratorParameters = null; } Assert.That(t.VisibleDecimals, Is.EquivalentTo(decimals)); Assert.That(t.VisibleDynamicEnums, Is.EquivalentTo(dynamicEnums)); CheckEnumsMatch(t.VisibleEnums, enums); Assert.That(t.VisibleIntegers, Is.EquivalentTo(integers)); Assert.That(t.VisibleLocalDynamicEnums, Is.EquivalentTo(localDynamicEnums)); Assert.That(t.VisibleLocalizedStrings, Is.EquivalentTo(localizedStrings)); var expected = decimals.Select(x => x.TypeId). Concat(integers.Select(x => x.TypeId)). Concat(enums.Select(x => x.TypeId)). Concat(dynamicEnums.Select(x => x.TypeId)). Concat(localDynamicEnums.Select(x => x.TypeId)). Concat(localizedStrings.Select(x => x.TypeId)). Concat(others.Select(x => x.TypeId)). Concat(enums.Select(x => ParameterType.ValueSetType.Of(x.TypeId))). Concat(hiddenEnums.Select(x => x.TypeId)). //AllTypes includes hidden types Concat(hiddenEnums.Select(x => ParameterType.ValueSetType.Of(x.TypeId))). ToList(); Assert.That(t.AllTypes, Is.EquivalentTo(expected)); }; ParameterType modifiedType = null; Action <ParameterType> modifiedCallback = x => { Assert.That(modifiedType, Is.Null); modifiedType = x; }; t.Modified += modifiedCallback; CheckDecimals(decimals, t, CheckContents, ref modifiedType); CheckIntegers(integers, t, CheckContents, ref modifiedType); CheckEnums(enums, t, CheckContents, ref modifiedType, false); CheckEnums(hiddenEnums, t, CheckContents, ref modifiedType, true); CheckDynamicEnums(dynamicEnums, t, CheckContents, ref modifiedType); CheckLocalDynamicEnums(localDynamicEnums, t, CheckContents, ref modifiedType); CheckLocalizedStrings(localizedStrings, t, CheckContents, ref modifiedType); CheckOthers(others, t, CheckContents, ref modifiedType); }
/// <summary> /// 打开一个相机驱动, /// </summary> /// <param name="IDa"></param> /// <param name="camer_number"></param> /// <param name="CameraOpened"></param> /// <param name="CameraClosed"></param> /// <param name="event_OnConnectLoss"></param> /// <param name="event_OnImageGrabbed"></param> /// <param name="result"></param> public void open_camer(IDaHua IDa, int camer_number, EventHandler <EventArgs> CameraOpened, EventHandler <EventArgs> CameraClosed, delegate_OnConnectLoss event_OnConnectLoss , ref string result) { try { int number = 0; get_camer_number(ref number); if (number > 0) { if (camer_number < number) { #region 检测打开的相机是否有配置的数据 #region 无用代码 //string filename="Camer" + camer_number.ToString(); //Config.IniFile.IniFiles inifiles = new Config.IniFile.IniFiles(ref filename,"DaHua", null); //if (File.Exists(inifiles.FileName_Path1)) //{ // IDa.CamerIndx1 = Convert.ToInt16(inifiles.ReadString(IDa.ToString(), "CamerIndx1", IDa.CamerIndx1.ToString())); // IDa.TriggerSourceenum= inifiles.ReadString(IDa.ToString(), "TriggerSourceenum", IDa.TriggerSourceenum); // IDa.Exposuretime=Convert.ToDouble(inifiles.ReadString(IDa.ToString(), "Exposuretime", IDa.Exposuretime.ToString())); // IDa.Gainraw=Convert.ToDouble(inifiles.ReadString(IDa.ToString(), "Gainraw", IDa.Gainraw.ToString())); //} //else //{ // inifiles.WriteString(IDa.ToString(), "CamerIndx1", camer_number.ToString()); // inifiles.WriteString(IDa.ToString(), "TriggerSourceenum", IDa.TriggerSourceenum); // inifiles.WriteString(IDa.ToString(), "Exposuretime", IDa.Exposuretime.ToString()); // inifiles.WriteString(IDa.ToString(), "Gainraw", IDa.Gainraw.ToString()); //} #endregion load_DaHua_ShuJu(IDa, camer_number); #endregion IDa.Dev = Enumerator.GetDeviceByIndex(camer_number); // 注册链接时间 if (CameraOpened != null) { IDa.Dev.CameraOpened += CameraOpened; } IDa.Dev.ConnectionLost += IDa.OnConnectLoss;; if (CameraClosed != null) { IDa.Dev.CameraClosed += CameraClosed; } if (event_OnConnectLoss != null) { IDa.event_OnConnectLoss += event_OnConnectLoss; } //if (event_OnImageGrabbed != null) //{ // IDa.event_OnImageGrabbed += event_OnImageGrabbed; //} // 打开设备 if (!IDa.Dev.Open()) { result = "设备打开失败"; return; } // 打开Software Trigger // IDa.Dev.TriggerSet.Open(TriggerSourceEnum.Line1); IDa.Dev.TriggerSet.Open(IDa.TriggerSourceenum); /* 设置图像格式 */ using (IEnumParameter p = IDa.Dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { p.SetValue("Mono8"); } /* 设置曝光 */ using (IFloatParameter p = IDa.Dev.ParameterCollection[ParametrizeNameSet.ExposureTime]) { p.SetValue(IDa.Exposuretime); } /* 设置增益 */ using (IFloatParameter p = IDa.Dev.ParameterCollection[ParametrizeNameSet.GainRaw]) { p.SetValue(IDa.Gainraw); } /* 设置缓存个数为8(默认值为16) */ IDa.Dev.StreamGrabber.SetBufferCount(8); // 注册码流回调事件 // IDa.Dev.StreamGrabber.ImageGrabbed +=IDa.OnImageGrabbed; /* 开启码流 */ if (!IDa.Dev.GrabUsingGrabLoopThread()) { MessageBox.Show(@"开启码流失败"); return; } } else { result = "绑定相机number大于相机实际个数"; } } else { result = "相机驱动个数为零"; } } catch (Exception ex) { MessageBox.Show("打开相机报错:" + ex.Message, this.ToString()); } }
public static ConnectorPosition Read(IEnumParameter parameter) { return((new[] { Top, Bottom, Left, Right }).First(a => a.m_guid == parameter.Value)); }
// 打开相机 private void btnOpen_Click(object sender, EventArgs e) { try { // 设备搜索 List <IDeviceInfo> li = Enumerator.EnumerateDevices(); if (li.Count > 0) { // 获取搜索到的第一个设备 m_dev = Enumerator.GetDeviceByIndex(0); // 注册链接时间 m_dev.CameraOpened += OnCameraOpen; m_dev.ConnectionLost += OnConnectLoss; m_dev.CameraClosed += OnCameraClose; // 打开设备 if (!m_dev.Open()) { MessageBox.Show(@"连接相机失败"); return; } // 打开Software Trigger m_dev.TriggerSet.Open(TriggerSourceEnum.Software); // 设置图像格式 using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { p.SetValue("BayerRG12Packed"); } // 设置图片亮度 using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.Brightness]) { p.SetValue(100); } //设置曝光时间 using (IFloatParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ExposureTime]) { p.SetValue(50000); } /* * // 设置图片高度 * using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageHeight]) * { * p.SetValue(600); * } * // 设置图片宽度 * using (IIntegraParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImageWidth]) * { * p.SetValue(600); * } */ // 注册码流回调事件 m_dev.StreamGrabber.ImageGrabbed += OnImageGrabbed; // 开启码流 if (!m_dev.GrabUsingGrabLoopThread()) { MessageBox.Show(@"开启码流失败"); return; } m_dev.ExecuteSoftwareTrigger(); } } catch (Exception exception) { Catcher.Show(exception); } }
private void LoadFormInfo() { try { halconHelper = new HalconHelper(hWindowControl1.HalconWindow); List <IDeviceInfo> li = Enumerator.EnumerateDevices(); //if (Convert.ToInt32(this.Tag) != -1) if (li.Count > 0) { m_dev = Enumerator.GetDeviceByIndex(0); //m_dev = Enumerator.GetDeviceByIndex(Convert.ToInt32(this.Tag)); // 注册链接时间 m_dev.CameraOpened += OnCameraOpen; m_dev.ConnectionLost += OnConnectLoss; m_dev.CameraClosed += OnCameraClose; // 打开设备 if (!m_dev.Open()) { MessageBox.Show(@"连接相机失败"); return; } // 关闭Trigger //m_dev.TriggerSet.Close(); // 打开Software Trigger m_dev.TriggerSet.Open(TriggerSourceEnum.Software); // 设置图像格式 using (IEnumParameter p = m_dev.ParameterCollection[ParametrizeNameSet.ImagePixelFormat]) { p.SetValue("Mono8"); } // 注册码流回调事件 m_dev.StreamGrabber.ImageGrabbed += OnImageGrabbed; // 开启码流 if (!m_dev.GrabUsingGrabLoopThread()) { MessageBox.Show(@"开启码流失败"); return; } else { m_dev.ExecuteSoftwareTrigger(); } } else { } //注册一维码识别完成事件 halconHelper.Complete += OnComplete; halconHelper.Error += OnError; //注册串口接收事件 serialComm.DateReceived += new Comm.EventHandle(OnDataReceived); weightComm.DateReceived += new Comm.EventHandle(OnWeightDataReceived); } catch (Exception ex) { Catcher.Show(ex); } }