大华相机C#学习之IDevice类

获取方式

Enumerator.GetDeviceByGigeIP()

        通过IP地址获取设备对象。

private void test_Click(object sender, EventArgs e)
{devices=Enumerator.EnumerateDevices();device = Enumerator.GetDeviceByGigeIP("192.168.0.11");
}

常用属性

 DeviceInfo 

        获取设备的信息、


IsGrabbing

        当前设备如果开启码流捕获,返回true;否则,返回false。


IsOpen

        当前设备打开,返回true;否则,返回false。


IsTriggerOn

        当前设备如果开启触发模式,返回true;否则,返回false。如果此属性为on,那么当码流获取图像时,不需要用户控制,相机一直读取图像;如果需要人为控制,一个信号采集一张图,那么需要将IsTriggerOn设为on,并设置其他参数。此参数可以通过TriggerSet属性获取的ITrigger对象进行控制。

private void button1_Click(object sender, EventArgs e)
{List<IDeviceInfo> devices=Enumerator.EnumerateDevices();IDevice device = Enumerator.GetDeviceByGigeIP("192.168.0.10");Console.WriteLine("------------------------------------------------------------");Console.WriteLine("打开相机前,isTriggerOn属性:"+device.IsTriggerOn);device.Open();Thread.Sleep(100);Console.WriteLine("打开相机后,isTriggerOn属性:" + device.IsTriggerOn);ITrigger trigger=device.TriggerSet;Thread.Sleep(100);Console.WriteLine("------------------------------------------------------------");Console.WriteLine("获取设备trigger对象后");Console.WriteLine("trigger的isOpen属性为"+trigger.IsOpen);Console.WriteLine("device的isTriggerOn属性为"+device.IsTriggerOn);trigger.Close();Thread.Sleep(100);Console.WriteLine("------------------------------------------------------------");Console.WriteLine("执行trigger的close()方法后");Console.WriteLine("trigger的isOpen属性为" + trigger.IsOpen);Console.WriteLine("device的isTriggerOn属性为" + device.IsTriggerOn);trigger.Open(TriggerSourceEnum.Software);Thread.Sleep(100);Console.WriteLine("------------------------------------------------------------");Console.WriteLine("执行trigger的open()方法后");Console.WriteLine("trigger的isOpen属性为" + trigger.IsOpen);Console.WriteLine("device的isTriggerOn属性为" + device.IsTriggerOn);
}运行结果:
------------------------------------------------------------
打开相机前,isTriggerOn属性:False
打开相机后,isTriggerOn属性:True
------------------------------------------------------------
获取设备trigger对象后
trigger的isOpen属性为True
device的isTriggerOn属性为True
------------------------------------------------------------
执行trigger的close()方法后
trigger的isOpen属性为False
device的isTriggerOn属性为False
------------------------------------------------------------
执行trigger的open()方法后
trigger的isOpen属性为True
device的isTriggerOn属性为True

StreamGrabber

        获取设备的取流对象。类型为IStream。


ParameterCollection

        获取相机的配置操作集。


TriggerSet(未理解Open方法参数有哪些)

        获取触发操作集合,返回ITrigger接口,以下为ITrigger接口对象的方法。


 常用方法

ExecuteSoftwareTrigger()        

        执行单帧软触发,执行成功,返回true;否则,返回false。与Device的trigger对象执行ExecuteSoftwareTrigger()方法的效果一样。


GrabUsingGrabLoopThread()

        使用内部线程捕获帧数据。简单点说,就是使用这方法,可以在不获取stream对象的情况下开启码流捕捉,其效果等于stream.Start()。


SaveDeviceCfg(string strFullFileName)

        将相机配置保存到strFullFileName指示的路径上。(需先打开相机,否则,保存失败)

 private void test_Click(object sender, EventArgs e){devices=Enumerator.EnumerateDevices();device = Enumerator.GetDeviceByGigeIP("192.168.0.11");device.Open();int rst=device.SaveDeviceCfg("config.xml");if (rst==0){Console.WriteLine("保存相机配置成功");}else{Console.WriteLine("保存相机配置失败");}device.Close();}运行结果:
保存相机配置成功

LoadDeviceCfg(string strFullFileName,ref List<string> oErrPropertyList)

        从strFullFileName路径的文件读取相机配置到IDevice中,如果成功,返回0;否则,返回其他值。(需先打开相机再读取配置,否则,会失败)

private void test_Click(object sender, EventArgs e)
{List<IDeviceInfo> devices = Enumerator.EnumerateDevices();IDevice device = Enumerator.GetDeviceByGigeIP("192.168.0.11");device.Open();List<string> errorList = new List<string>();int rst=device.LoadDeviceCfg("config.xml",ref errorList);if (rst == 0){Console.WriteLine("加载相机配置成功");}else {Console.WriteLine("加载相机配置失败");}device.Close();
}运行结果:
加载相机配置成功

Open()

        打开相机,如果成功,返回true;否则,返回false。


ShutdownGrab()

        关闭流通道。与stream的Close()方法效果相同。


常用事件

CameraOpened

        当相机打开时,触发该事件。


CameraClosed

        当相机关闭时,触发该事件。

private void test_Click(object sender, EventArgs e)
{List<IDeviceInfo> devices = Enumerator.EnumerateDevices();IDevice device = Enumerator.GetDeviceByGigeIP("192.168.0.11");device.CameraOpened += Device_CameraOpened;device.CameraClosed += Device_CameraClosed;device.Open();device.Close();
}private void Device_CameraClosed(object sender, EventArgs e)
{Console.WriteLine("相机关闭事件触发");
}private void Device_CameraOpened(object sender, EventArgs e)
{Console.WriteLine("相机打开事件触发");
}运行结果:
相机打开事件触发
相机关闭事件触发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp_微信小程序_预约时间组件的使用

一、官方文档 DatetimePicker 选择器 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架 (uviewui.com) 二、完成的效果 之前使用的是Calendar 日历 这个太耗性能了&#xff0c;直接页面卡顿&#xff0c;所以就换成以上选择器了 三、代码 <u-datetime-p…

短信登录session-redis

1.流程 1.1 发送验证码 模拟路径 http://127.0.0.1:8080/api/user/code?phone1335566 Request Method:POSTcontroller层 /*** 发送手机验证码*/PostMapping("code")public Result sendCode(RequestParam("phone") String phone, HttpSession session) {…

flink on k8s部署

在 Kubernetes 上部署一套 Flink 集群需要使用 Kubernetes 原生资源和工具,如 StatefulSet、Deployment、Service 等,或使用专门的 Flink Operator 来自动化和简化 Flink 集群的部署和管理。以下是一般的部署步骤: 使用 Flink Operator 部署 Flink 集群: 安装 Flink Opera…

C#自定义窗体更换皮肤的方法:创建特殊窗体

目录 1.窗体更换皮肤 2.实例 &#xff08;1&#xff09;图片资源管理器Resources.Designer.cs设计 &#xff08;2&#xff09;Form1.Designer.cs设计 &#xff08;3&#xff09;Form1.cs设计 &#xff08;4&#xff09; 生成效果 &#xff08;5&#xff09;一个遗憾 1.窗…

【银角大王——Django课程Day1】

Django框架第一课 安装Django框架方式一&#xff08;命令行的形式创建Django项目&#xff09;方式二&#xff08;适合企业版的pycharm&#xff09;默认文件介绍app文件介绍快速上手我的导包一直爆红是因为我没使用解释器&#xff0c;没导入包&#xff0c;去设置里面导入包即可—…

Java注解相关

Java注解相关 TableId注解 需要 import com.baomidou.mybatisplus.annotation.TableId; <!-- 各个依赖的版本号 --><properties><spring-boot.version>3.2.5</spring-boot.version><java.version>17</java.version><mybatis-plus.versi…

在 Node.js 中配置代理 IP 采集文章

不说废话&#xff0c;直接上代码&#xff1a; const http require(http); const https require(https);// 之后可以使用 http 或 https 模块发起请求&#xff0c;它们将自动使用配置的代理 // 代理ip&#xff1a;https://www.kuaidaili.com/?refrg3jlsko0ymg const proxy …

mysql常用

文章目录 匹配和正则表达式匹配&#xff1a;like正则表达式&#xff1a;rlike&#xff08;与regexp完全一样没有区别&#xff09; 窗口函数 匹配和正则表达式 匹配&#xff1a;like %&#xff1a;用来匹配 0 个或多个字符 _&#xff1a;用来匹配1个字符 SELECT * FROM Webs…

OpenHarmony实战开发-如何视频弹幕功能。

介绍 本示例介绍如何使用ohos.danmakuflamemaster和ohos.gsyvideoplayer开发支持视频弹幕的播放器。可以自定义弹幕样式、占据屏幕宽度&#xff0c;发送弹幕&#xff0c;开关弹幕视图。 效果图预览 使用说明 点击播放按钮&#xff0c;进行视频播放&#xff0c;弹幕自动开启点…

【位运算】Leetcode 只出现一次的数字 ||

题目解析 137. 只出现一次的数字 II 算法讲解 nums中要么一个数字出现三次&#xff0c;一个数字出现一次&#xff0c;按照比特位来说只可能出现上面的四种情况&#xff1a; 3n个0 0 或者 3n个0 1 或者 3n个1 0 或者 3n个1 1&#xff0c;它们相加的结果依次是0&#xff0c;…

websocket 连接,http 协议下用 ws, https 协议下必须要使用 wss

解决方案&#xff1a; https 相当于使用 httpssl 认证&#xff0c;使用 https 时 websocket 访问&#xff08;比如建立链接时&#xff09;必须要使用 wss。 详细解释&#xff1a; WebSocket 协议有两个主要版本&#xff1a;“ws”和“wss”。"ws"表示非加密的 Web…

【机器学习300问】77、什么是梯度消失和梯度爆炸?

一、梯度消失&#xff08;Vanishing gradients&#xff09; &#xff08;1&#xff09;定义 在训练深度神经网络时&#xff0c;随着误差梯度从输出层向输入层逐层回传&#xff0c;梯度可能因为连乘效应逐渐减小。当使用激活函数的导数的最大值小于1时&#xff0c;深度网络中越…

qt-C++笔记之QProcess声明在堆上和声明在栈上对进程执行是否异步的影响

qt-C笔记之QProcess声明在堆上和声明在栈上对进程执行是否异步的影响 —— 2024-04-13 code review! 文章目录 qt-C笔记之QProcess声明在堆上和声明在栈上对进程执行是否异步的影响1.结论2.关于异步执行在堆上声明 QProcess在栈上声明 QProcess 3.waitForFinished详解函数原…

动静态库详解

文章目录 动静态库动态库静态库动静态链接 动静态库 库LinuxWindows动态库.so.dll静态库.a.lib 动静态库的本质就是文件。lld ldd命令可以查看一个可执行程序所依赖的库文件 ldd code&#xff1a;查看code依赖的库文件 平台要支持开发&#xff0c;必须要提前在系统中安装&am…

flutter书架形式格口的动态创建(行、列数,是否全选的配置)

根据传入的行列数创建不同格口数量的书架 左图&#xff1a;5行3列、右图&#xff1a;3行3列 代码 import package:jade/bean/experienceStation/ExpCellSpecsBean.dart; import package:jade/configs/PathConfig.dart; import package:jade/utils/DialogUtils.dart; import p…

基于SpringBoot+Vue的外卖点餐网站 免费获取源码

项目源码获取方式放在文章末尾处 项目技术 数据库&#xff1a;Mysql5.7/8.0 数据表&#xff1a;12张 开发语言&#xff1a;Java(jdk1.8) 开发工具&#xff1a;idea 前端技术&#xff1a;vue html 后端技术&#xff1a;SpringBoot 功能简介 (有文档) 项目获取关键字&…

K8s: 在Pod中将configmap数据注入容器

configMap 概述 文档: https://kubernetes.io/zh-cn/docs/concepts/configuration/configmap/ Kubernetes 为我们提供了 ConfigMap&#xff0c;可以方便的配置一些变量 是一个存储键值对 key-value 对象的 创建一个可以包含多个键值对的 ConfigMap, 以下是&#xff1a;mul-c…

Java 笔试强训篇- Day1

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 点击消除 1.1 解题思路一 1.2 解题思路二 2.0 在两个数组中找出相同的数 2.1 解题思路 笔试强训说明&#xff1a;有一些题目提供不了原题。 1.0 点击消除 该题链…

Group Query Attention (GQA) 机制详解以及手动实现计算

Group Query Attention (GQA) 机制详解 1. GQA的定义 Grouped-Query Attention (GQA) 是对 Multi-Head Attention (MHA) 和 Multi-Query Attention (MQA) 的扩展。通过提供计算效率和模型表达能力之间的灵活权衡&#xff0c;实现了查询头的分组。GQA将查询头分成了G个组&#…

事务的传播行为介绍和事务失效

常用的就下图介绍的这两种&#xff0c;REQUIRED 支持当前事务&#xff0c;如果不存在&#xff0c;就新建一个&#xff0c;EQUIRES_NEW 如果有事务存在&#xff0c;挂起当前事务&#xff0c;创建一个新的事务 同一个service中必须用代理对象调用&#xff0c;否则失效