基于大恒相机SDK,二次开发(C#)
界面如下 有曝光、增益两个参数可以调整(平台是X64)
有问题可以问 看到就回答
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using GxIAPINET;
using System.IO;
using GxIAPINET.Sample.Common;
namespace _Cam_调用及参数设置
{
public partial class Form1 : Form
{
bool m_bIsOpen = false; ///<设备打开状态
bool m_bIsSnap = false; ///<发送开采命令标识
bool m_bTriggerMode = false; ///<是否支持触发模式
//bool m_bTriggerActive = false; ///<是否支持触发极性
bool m_bTriggerSource = false; ///<是否支持触发源
// bool m_bWhiteAuto = false; ///<标识是否支持白平衡
//bool m_bBalanceRatioSelector = false; ///<标识是否支持白平衡通道
//bool m_bWhiteAutoSelectedIndex = true; ///<白平衡列表框转换标志
IGXFactory m_objIGXFactory = null; ///<Factory对像
IGXDevice m_objIGXDevice = null; ///<设备对像
IGXStream m_objIGXStream = null; ///<流对像
IGXFeatureControl m_objIGXFeatureControl = null; ///<远端设备属性控制器对像
// string m_strBalanceWhiteAutoValue = "Off"; ///<自动白平衡当前的值
GxBitmap m_objGxBitmap = null; ///<图像显示类对象
string m_strFilePath = ""; ///<应用程序当前路径
public Form1()
{
// 获取应用程序的当前执行路径
m_strFilePath = Directory.GetCurrentDirectory().ToString();
m_strFilePath = m_strFilePath + "\\GxSingleCamImages";
//查看是否存在此文件
if (!Directory.Exists(m_strFilePath))
{
Directory.CreateDirectory(m_strFilePath);
}
InitializeComponent();
}
/// <summary>
/// 设备打开后初始化界面
/// </summary>
private void __InitUI()
{
__InitEnumComBoxUI(m_cb_TriggerMode, "TriggerMode", m_objIGXFeatureControl, ref m_bTriggerMode); //触发模式初始化
__InitEnumComBoxUI(m_cb_TriggerSource, "TriggerSource", m_objIGXFeatureControl, ref m_bTriggerSource); //触发源初始化
__InitShutterUI(); //曝光初始化
__InitGainUI();
//增益的初始化
}
/// <summary>
/// 对枚举型变量按照功能名称设置值
/// </summary>
/// <param name="strFeatureName">枚举功能名称</param>
/// <param name="strValue">功能的值</param>
/// <param name="objIGXFeatureControl">属性控制器对像</param>
private void __SetEnumValue(string strFeatureName, string strValue, IGXFeatureControl objIGXFeatureControl)
{
if (null != objIGXFeatureControl)
{
//设置当前功能值
objIGXFeatureControl.GetEnumFeature(strFeatureName).SetValue(strValue);
}
}
/// <summary>
/// 枚举型功能ComBox界面初始化
/// </summary>
/// <param name="cbEnum">ComboBox控件名称</param>
/// <param name="strFeatureName">枚举型功能名称</param>
/// <param name="objIGXFeatureControl">属性控制器对像</param>
/// <param name="bIsImplemented">是否支持</param>
private void __InitEnumComBoxUI(ComboBox cbEnum, string strFeatureName, IGXFeatureControl objIGXFeatureControl, ref bool bIsImplemented)
{
string strTriggerValue = ""; //当前选择项
List<string> list = new List<string>(); //Combox将要填入的列表
bool bIsReadable = false; //是否可读
// 获取是否支持
if (null != objIGXFeatureControl)
{
bIsImplemented = objIGXFeatureControl.IsImplemented(strFeatureName);
// 如果不支持则直接返回
if (!bIsImplemented)
{
return;
}
bIsReadable = objIGXFeatureControl.IsReadable(strFeatureName);
if (bIsReadable)
{
list.AddRange(objIGXFeatureControl.GetEnumFeature(strFeatureName).GetEnumEntryList());
//获取当前功能值
strTriggerValue = objIGXFeatureControl.GetEnumFeature(strFeatureName).GetValue();
}
}
//清空组合框并更新数据到窗体
cbEnum.Items.Clear();
foreach (string str in list)
{
cbEnum.Items.Add(str);
}
//获得相机值和枚举到值进行比较,刷新对话框
for (int i = 0; i < cbEnum.Items.Count; i++)
{
string strTemp = cbEnum.Items[