通过XMLRpc控制海康VB2200视觉控制器自带光源接口

拓朴薄雾
• 阅读 83

在使用Hik VB2200视觉控制器时,由于并未使用VisionMaster软件,但是使用了视觉控制器的光源接口。导致无法直接控制该光源接口。
VB2200视觉控制器提供了一个IOController应用程序,其中对应的exe文件可以设置为对应光源接口的亮度等参数,基本满足需求。但是IOController只能设置对应的参数,当我们用该控制器时一般都是跑一些自动化程序,并不能每次都来点击IOController的界面来实现光源的控制。
LightControllForXmlRpc基于XMLRPC请求,封装了设置光源亮度的接口.

功能

基于.net5.0提供x64位的xmlrpc光源控制程序。
该程序会根据控制器的所有网卡的地址上创建XMLRPC 服务器并监听,

├─.vscode
├─runtime                        # .net5.0运行时
├─lib                            # Hik提供的X64位dll
├─src
  ├─IOControllSDK.cs            # 控制器SDK接口
├─Main.cs                        # XMLRPC实现&设置光源接口

XMLRPC方法

XMLRpc Request port:9090
MethodName:SetLightParam
Param: serialName string 串口号
Param: serialName int    端口号(port1对应0,port2对应1 ... )
Param: serialName int    光源亮度
Param: serialName bool   是否常亮
Param: serialName int    持续时间

上述参数均可通过IOController测试获取

通过XMLRpc控制海康VB2200视觉控制器自带光源接口

如何安装使用

  1. 下载Release Package,解压得到
├─LightControlForXMLRpc.deps.json
├─LightControlForXMLRpc.dll
├─LightControlForXMLRpc.exe
├─LightControlForXMLRpc.pdb
├─LightControlForXMLRpc.runtimeconfig.json
├─MvIOInterfaceBox.dll
├─MvIOInterfaceBox.pdb
├─MvSerial.dll
  1. 以管理员权限运行cmd,并且运行LightControlForXMLRpc.exe

通过XMLRpc控制海康VB2200视觉控制器自带光源接口

  1. XMLRPC请求测试通过XMLRpc控制海康VB2200视觉控制器自带光源接口

通过XMLRpc控制海康VB2200视觉控制器自带光源接口

测试

测试Python版本3.7

import xmlrpc.client
import time

# XML-RPC服务器的地址和端口
server_url = 'http://your_url:9090'

# 创建一个XML-RPC客户端代理
proxy = xmlrpc.client.ServerProxy(server_url)

value = 0
while 1:
    
    time.sleep(1)
    # 发送XML-RPC请求并接收响应
    result = proxy.SetLightParam("com2",0,value,True,0)

    # 打印响应结果
    print(f"SetLightParam|LightValue:{value}")
    print("value", value)
    value += 10
    if value >= 100:
        value = 0

Tips:

实际使用过程中建议将该exe封装为Windows服务,并且重定向输出使用
推荐NSSM软件,详细使用方法,微信搜索 NSSM最详细解说

Github链接

[https://github.com/JunJie-zhang-o/VB2200-LightControllForXmlRpc](

本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java中的方法返回值使用泛型,实现灵活的返回值类型
<divclass"htmledit\_views"<p<br</p<p痛点:&nbsp;&nbsp;&nbsp;使用Mybatis框架的时候,想封装一个底层JDBC控制器,用于提供和Mybatis交互的增删改查接口(公用的接口),但由于公用的查询方法可能是用户自定义的任意一个和表对应的javabean类型,所以要考虑怎么样给调用
Wesley13 Wesley13
3年前
UITabBarController的简单使用
UITabBarController的使用步骤初始化UITabBarController设置UIWindow的rootViewController为UITabBarController根据具体情况,通过addChildViewController方法添加对应个数的子控制器通常而言,UITabBarController一般作为应用程序的
伊丽莎白-简 伊丽莎白-简
4年前
Go Iris学习笔记01
IrisMVC支持文档:支持所有HTTP方法,例如,如果想要写一个 GET 那么在控制器中也要写一个 Get() 函数,你可以在一个控制器内定义多个函数。每个控制器通过 BeforeActivation 自定义事件回调,用来自定义控制器的结构的方法与自定义路径处理程序,如下:(还未实验)func(m
Wesley13 Wesley13
3年前
Unity RPG游戏,场景任务的设计
0:讨论群qq群号:390313628unity4.6版本运行1场景任务的设计参考开源赛达尔传说游戏SolarusDX。每个地图存在一个控制脚本,脚本名字mapxxxxxx为地图ID。地图控制器提供标准接口,进入地图事件处理和退出地图事件处理。每次切换场景地图的时候,加载对应的脚本,脚本挂在一个Game
Wesley13 Wesley13
3年前
3、Angular JS 学习笔记 – Controllers [翻译中]
理解控制器在Angular中,一个控制器是一个javascript构造函数用于填充Angular作用域。当一个控制器通过使用ngcontroller指令附加到DOM上的时候,Angular将初始化一个新的Controller对象,使用指定的控制器构造函数。一个新的子作用域将可以作为一个参数$scope被注入到控制器构造函数。控制器用
Wesley13 Wesley13
3年前
K8S各知识点整理
一、k8s组成部分Master1、  kubeapiserver封装了核心对象的增删改查操作,以RESTAPI接口方式提供给外部和内部组件调用。它维护的REST对象将持久化到Etcd中2、  kubecontroller负责执行各种控制器,目前已经实现很多控制器来
Easter79 Easter79
3年前
SpringMVC中url映射到Controller
SpringMVC也是一种基于请求驱动的WEB框架,并且使用了前端控制器的设计模式。前端控制器就是DispatcherServlet控制器,只要满足web.xml文件中的【urlpattern】的规则,这个请求就会交给这个前端控制器(DispatcherServlet),然而前端控制器在收到请求后自己不进行任何处理,根据相应的【URL的映射规则】委托给其他
Stella981 Stella981
3年前
Agile Lite默认控制器CSS扩展实现H5组件动画切换
AgileLite中提供了很多控制器和组件的交互,但是实际开发过程中还会遇到很多种场景无法满足。这里介绍一下如何使用AgileLite的默认控制器和组件的UI渲染来满足不同的场景需要默认控制器的扩展默认控制器的扩展是指通过CSS样式对控制器进行UI渲染,使得默认控制器的使用场景更丰富。扩展默认控制器的方法
Wesley13 Wesley13
3年前
thinkphp url模式
入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作:1.http://serverName/index.php/模块/控制器/操作这是3.2版本的标准URL格式。可以通过设置模块绑定或者域名部署等方式简化URL地址中的模块及控制器名称。URL大小写
Easter79 Easter79
3年前
ThingJS:如何基于JS语法来设置聚光灯功能
SpotLight聚光灯具有锥形效果的光源,可以产生阴影,类似我们日常生活中的手电筒。ThingJS如何基于JS语法来设置聚光灯功能呢?光源(Lights)是每个场景的重要组成部分。网格和纹理决定了场景的形状和外观,而光源则决定了三维环境的颜色和氛围。您可能会在每个场景中使用多个光源。让它们一起工作需要一些实践,但结果却相当惊人。!1.jpg(h
Stella981 Stella981
3年前
Noark入门之协议映射
0x00消息控制器消息控制器,主要作用就是为每个模块提供消息处理的入口.这里的消息不仅仅是协议,还有内部指令,事件等等逻辑入口,这也是为了响应线程模型作出的一种支撑,只要入口在此消息控制器内,那必然走期望的线程调度。@Controller用于标识一个类为当前模块的消息控制器入口.@Controller(threadGroup