首页 > 编程语言 >Python 调用中控门禁并包装成webservice供移动设备调用。

Python 调用中控门禁并包装成webservice供移动设备调用。

时间:2022-11-23 19:38:21浏览次数:41  
标签:__ 中控 调用 webservice zk server soaplib import rlt


前段时间做了个小试验,用Python 调用中控门禁并包装成webservice供移动设备调用。 移动端用的是泛微的OA企业微信端。

实现手机远程开门效果,拿着手机,走到哪,哪的门就自动开了,很屌的样子。  

 

Python 调用中控门禁并包装成webservice供移动设备调用。_web服务

#!/usr/bin/python
# -*- coding: utf-8 -*-
# ZK_Door_Helper.py
#
# Copyright (C) 2019 - xulong <[email protected]>
#
from soaplib.service import rpc
from soaplib.service import DefinitionBase
from soaplib.serializers.primitive import String, Integer

from soaplib.wsgi import Application
from soaplib.serializers.clazz import Array

import win32com.client




'''
中控门禁控制web服务

'''

class ZK_Door_Helper_Srv(DefinitionBase):
@rpc(String, _returns=String)
def open(self, macip):
'''
call example for E8 mobile
Mobile_NS.callWebService({
endpoint : "http://192.168.126.xxx:7789/",
operationName : "open",
parameters : [
{
name : "macip",
type : "String",
value : "192.168.122.xxx"
}
],
callbackFn : function(result){
alert("webservice result:" + result);
}
});

'''
zk = win32com.client.Dispatch('zkemkeeper.ZKEM') #通过调用中控com组件控制门禁设备开门
rlt = ""
if zk.Connect_Net(macip,4370):
rlt= "connected"
if zk.ACUnlock(1,100):
rlt= "success!! open the door"
else:
rlt= "faild!! open the door"
else:
rlt= "faild!! connected"

del zk

return rlt

if __name__=='__main__':
try:
from wsgiref.simple_server import make_server
server = make_server('192.168.126.xxx', 7789, Application([ZK_Door_Helper_Srv], 'tns'))
server.serve_forever()
except ImportError:
print "Error: example server code requires Python >= 2.5"


标签:__,中控,调用,webservice,zk,server,soaplib,import,rlt
From: https://blog.51cto.com/fangkailove/5881707

相关文章

  • 通过调用ffmpeg来将mp3和jpg合并为mp4视频-批处理。
     听歌练乐器的时候想同时看一下简谱,没找到好用的app,自己动手写个批处理。只要把找到的歌(mp3文件)和谱(jpg文件)改成同名,并执行下面批处理,就能自动合并为视频。音遍就歌,画......
  • C#如何反射出委托的签名,反射调用委托
    本文阐述C#中如何反射出委托的签名,假如我们有委托FooDelegate定义如下delegatedoubleFooDelegate(stringparam,boolcondition);那么我们怎么用反射知道这个委托......
  • c#开发和学习(c#调用dll)
        c和c++作为早期的开发语言,积累了大量的可用库。后续的开发语言,虽然在易用性和容易程度上面有了很大的提高,但是对于曾经的开发库,是无法做到弃之不用的。因此,对于......
  • 直播app源码,输入密码和用户名调用开发者工具
    直播app源码,输入密码和用户名调用开发者工具 <!DOCTYPEhtml><html><head> <metacharset="UTF-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <me......
  • FR11 webservice程序数据集
    packagecom.fr.data;importcn.hutool.core.lang.Console;importcn.hutool.http.webservice.SoapClient;importcn.hutool.json.JSONArray;importcn.hutool.json.......
  • python编程(python和c相互调用)
      通常为了扩展python的功能,我们需要将c库移植到python上面。python和c调用一般分成两种情况,一种是python调用c,这种情况最为普遍,也比较简单。另外一种就是c调用python,这......
  • wpf 子页面调用父窗口方法
     参考:http://www.360doc.com/content/17/1113/11/24811_703389993.shtml//1)子页面后台定义委托(namespace下class外)//定义委托internaldelegatevoidColorChange(o......
  • 随想录(c&cpp之间的相互调用)
    【声明:版权所有,欢迎转载,请勿用于商业用途。】  作为系统工程师,平时用c可能多一些。这两天因为工作的原因,了解了linux上面cpp的编写方法。很多时候,cpp对编写者的要求比......
  • c++ 调用 python 2.7
    本来想调用python3.10的,但一直安装不成功,先记录一下python2.7。先上代码:#include<iostream>usingnamespacestd;#include"Python.h"intmain(intargc,cha......
  • memcached 使用与go客户端调用
    介绍详细的介绍参考:​​​https://www.runoob.com/memcached/memcached-tutorial.html​​由于memcached仅仅是一个高度内存的kv存储块,如果有更严谨的需求,需要如下选择:集......