基于大恒相机SDK,二次开发

本文介绍如何基于大恒相机的SDK进行C#的二次开发,提供了曝光和增益参数调整的界面,并提供了相关的代码示例。
摘要由CSDN通过智能技术生成

基于大恒相机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[
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值