大华相机C#学习之Enumerator类

构造函数

Enumerator()

创建一个Enumerator实例。


常用方法

EnumerateDevices()

枚举所有发现设备,返回List<IDeviceInfo>对象。

cs 复制代码
List<IDeviceInfo> devices = new List<IDeviceInfo>();

private void test_Click(object sender, EventArgs e)
{
    devices=Enumerator.EnumerateDevices();
    Console.WriteLine(devices.Count);
}

点击后运行结果:
1

GetDeviceByGigeIP(string ip)

通过IP地址(静态)获得设备对象,返回IDevice。(注意,获取设备前需要先用EnumerateDevices()来遍历设备)

cs 复制代码
private void test_Click(object sender, EventArgs e)
{
    devices=Enumerator.EnumerateDevices();
    device=Enumerator.GetDeviceByGigeIP("192.168.0.10");
    device.Open();
    if (device.IsOpen)
    {
        Console.WriteLine("相机已打开");
    }
    device.Close();
}

运行结果:
相机已打开

GetDeviceByIndex(int idx)

通过索引值获取指定设备,返回IDevice。(注意:获取设备前需要先用EnumerateDevices()来遍历设备)

cs 复制代码
 private void test_Click(object sender, EventArgs e)
 {
     devices=Enumerator.EnumerateDevices();
     device=Enumerator.GetDeviceByIndex(0);
     device.Open();
     if (device.IsOpen)
     {
         Console.WriteLine("相机已打开");
     }
     device.Close();
 }

运行结果:
相机已打开

GigeCameraInfo(int idx)

根据索引号idx获取设备信息对象,返回IGigeDeviceInfo。

cs 复制代码
private void test_Click(object sender, EventArgs e)
{
    devices=Enumerator.EnumerateDevices();
    IGigeDeviceInfo deviceInfo=Enumerator.GigeCameraInfo(0);
    Console.WriteLine("设备索引:"+deviceInfo.Index);
    Console.WriteLine("IP地址:" + deviceInfo.IpAddress);
    Console.WriteLine("Mac地址:" + deviceInfo.MacAddress);
}

运行结果:
设备索引:0
IP地址:192.168.0.10
Mac地址:38:af:29:c3:b0:44

GigeInterfaceInfo(int idx)

获取当前主机的Gige接口信息,即与远程设备通信接口的信息。返回IGigeInterfaceInfo对象。

cs 复制代码
private void test_Click(object sender, EventArgs e)
{
    devices=Enumerator.EnumerateDevices();
    IGigeInterfaceInfo interfaceInfo = Enumerator.GigeInterfaceInfo(0);

    Console.WriteLine("IP地址:" + interfaceInfo.IPAddress);
    Console.WriteLine("子网掩码:" + interfaceInfo.SubnetMask);
    Console.WriteLine("网关:" + interfaceInfo.GateWay);
}

运行结果:
IP地址:192.168.0.50
子网掩码:255.255.255.0
网关:0.0.0.0

GigeForceIP(int idx,string ipAddress,string subnetMask,string defaultGateway)

强制修改相机ip,如果成功,返回true;否则,返回false。(通过此方法修改的IP地址会在相机断电后回复成原来的IP)

cs 复制代码
private void test_Click(object sender, EventArgs e)
{
    devices=Enumerator.EnumerateDevices();
    IGigeInterfaceInfo interfaceInfo = Enumerator.GigeInterfaceInfo(0);

    bool rst=Enumerator.GigeForceIP(0,"192.168.0.11",interfaceInfo.SubnetMask,interfaceInfo.GateWay);
    if (rst==true)
    {
        Console.WriteLine("强制修改ip成功");
    }
}

运行结果:
强制修改ip成功
相关推荐
海伯森技术9 分钟前
光谱共焦技术在高精度尺寸与3D表面缺陷检测中的工业应用研究
视觉检测·传感器·光谱
唐青枫21 分钟前
C#.NET ConcurrentBag<T> 设计原理与使用场景
c#·.net
MM_MS9 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
玩泥巴的9 小时前
飞书 .NET SDK 事件处理的幂等性与去重机制
c#·.net·二次开发·飞书
在路上看风景10 小时前
3.2 FileStream
c#
zwm26988881510 小时前
6号楼 部分声光24v电压达不到,显示11v
c#
椒颜皮皮虾14 小时前
TensorRtSharp:在 C# 世界中释放 GPU 推理的极致性能
c#·tensorrt
行止9514 小时前
WinForms 彻底隐藏 滚动条的终极解决方案
c#
bugcome_com14 小时前
WPF样式进阶实战:外置样式+MVVM主题切换+样式优先级全解析
c#·.net·wpf
时光追逐者15 小时前
TIOBE 公布 C# 是 2025 年度编程语言
开发语言·c#·.net·.net core·tiobe