Workswell远程协议客户端

wrpclient的Python项目详细描述


欢迎使用WRP客户端文档!WRP客户机和WRP Server是驱动程序的两个部分,允许使用Python连接到Workswell InfraRed Camera。这个存储库包含用Python编写的客户机部分。第二部分,WRP Server,是用C语言编写的,因为Workswell公司只提供和支持通过C#SDK而不通过任何其他语言访问摄像机。在

安装

安装WRP客户端的最简单方法是从pypi:

pip install wrpclient

另一种方法是构建此存储库:

^{pr2}$

使用

这个项目是使用asyncio库实现的。但是由于使用asyncio库对Python初学者来说可能会有一点问题,因此也有一些关于异步的同步包装器。首先,我们必须创建一个客户端类的实例,然后将其连接到服务器:

fromdatetimeimportdatetimeimportwrp_clientimportasyncioclient=wrp_client.Client()SERVER_IP_ADDRESS="127.0.0.1"# synchronous wrapper for the method (coroutine)# client.connect_async(ip_adress=SERVER_IP_ADDRESS)client.connect(ip_adress=SERVER_IP_ADDRESS,timeout="20")

一旦客户机连接到服务器,我们就可以得到服务器识别的所有摄像机的列表。在

# get all camerasall_cameras=client.get_cameras(timeout="20")

或者我们只能用序列号识别一个摄像头。如果摄像机不可用,则引发ValueError异常。 然后我们必须打开相机获取帧:

# find camera with specific serial numbermy_camera=client.get_camera(serial_number="ABCDEF",timeout="20")my_camera.open(timeout="20")# Return 2D frame (numpy matrix) with dtype np.float32 filled with raw data (decimal values of temperatures)frame=my_camera.get_frame(timeout="20")

如您所见,上面所有的函数都有参数超时。这是因为每个函数都在发送一些请求,并期望从服务器得到响应,而服务器的延迟取决于摄像机的延迟。对于更高级的用户,也有这些函数的异步版本。它们被命名为xxx\u async,如client.connect_异步。在

您也可以要求相机提供连续的帧流:

defcallback(frame):time_str=datetime.now().strftime("%Y-%m-%d-%H-%M-%S-%f")frame_color=cv2.applyColorMap(frame,cv2.COLORMAP_JET)cv2.imwrite(f"frame-{time_str}.jpg",frame_color)# give handler for continuous shot that saves colorized images with timestamp suffixmy_camera.start_continuous_shot(callback)# wait some time to collect imagesasyncio.sleep(5)my_camera.stop_continuous_shot(callback)

如果要在IPython环境中使用API(最常见的是Jupyter笔记本电脑),则必须在使用wrpclient之前安装Nest asyncio并运行以下代码:

importnest_asyncionest_asyncio.apply()

文件

您可以在上面找到安装指南和使用示例。还包含类和方法描述(API)的文档的完整版本可以在ReadTheDocs page上找到,或者您可以使用代码从存储库构建它:

git clone https://github.com/Kasape/wrpclient.git
cd wrpclient/docs
pip install sphinx
make html

然后在地址file://<path_to_repo>/docs/_build/html/index.html上用浏览器打开它。在

许可证

此项目具有GNU GPLv3许可证。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从IBM MQ的JMSException检测可恢复错误   java Lucene6。4.2:找不到类,尝试添加查询。   Java Pdf差异库   在Java中多线程处理我的线程   java将字符串传递给Uri。下载中的parse()   java在列表中查找原语位置   java JPA条件从另一个查询中选择   java中的强制转换和转换   java如何在没有上下文的情况下获取SOAP Web服务(Apache Axis 1.4)的调用客户端的IP地址   java Android IllegalBlockSizeException:解密中最后一个块未完成   java Jersey是否要自定义无效资源路径的错误处理?   如何将JavaCVS web项目转换为基于maven的web项目?   java如何检查通用列表是否与jUnit相等?   arraylist java。util。尝试使用迭代器时发生ConcurrentModificationException错误   使用springsecurity,jsp上的java${u csrf.token}始终为空   sql使用java从临时表中选择数据   spring验证中的java@Notnull和@Pattern无效   java如何使用jQuery将包含对象数组的对象数组传递给Spring MVC控制器?