Python技术中控考勤实时获取打卡数据

Python技术:中控考勤,实时获取打卡数据,实时数据上传。Python技术中控考勤实时获取打卡数据

代码演示

import win32com.client
import sys,requests,datetime
import time
import threading
import json
from subprocess import run, PIPE

class EventMask:
    def OnConnected(self):
        print ("OnConnected")
        data = {"OnConnected":"OnConnected"}
        senderror('  OnConnected  '+json.dumps(data),'syszk.log')
        # print(requests.post('',json={"EnrollNumber":"EnrollNumber"}))
        # jiu = json.loads(jj.json())
        # print(jiu["EnrollNumber"])
        
    def OnDisConnected(self):
        print ("OnDisConnected")

    def OnAttTransactionEx(self,EnrollNumber,IsInValid,AttState,VerifyMode,Year,Month,Day,Hour,Minute,Second,WorkCode):
        print("OnAttTransactionEx",EnrollNumber,IsInValid,AttState,VerifyMode,Year,Month,Day,Hour,Minute,Second,WorkCode)
        data = {"EnrollNumber":EnrollNumber,"IsInValid":IsInValid,"AttState":AttState,"VerifyMode":VerifyMode,"Year":Year,"Month":Month,"Day":Day,"Hour":Hour,"Minute":Minute,"Second":Second,"WorkCode":WorkCode}
        senderror("  OnAttTransactionEx  "+json.dumps(data),'syszkAttTransactionEx.log')
		# requests.post('',json=data)
		
    def OnAttTransaction(self,EnrollNumber,IsInValid,AttState,VerifyMethod,Year,Month,Day,Hour,Minute,Second):
        print("OnAttTransaction",EnrollNumber,IsInValid,AttState,VerifyMethod,Year,Month,Day,Hour,Minute,Second)
        
        
class Zkong:
    def connect(self):
        jj = win32com.client.DispatchWithEvents('zkemkeeper.ZKEM.1',EventMask)
        jj.Visible = True
        
        if not jj.Connect_Net("192.168.0.201",4370):
            senderror("  Connect Error")
            jj.Disconnect()
            linkto()

        jj.RegEvent(1,65535)
        while True:
            if not jishi():
                senderror("  web link Error")
                jj.Disconnect()
                linkto()
                break
            time.sleep(60)


def senderror(errcont,myfile='syserror.log'):
    enow=datetime.datetime.now()
    now=enow.strftime('%Y-%m-%d %H:%M:%S')
    errfile=open(myfile,'a')
    errfile.write(now)
    errfile.write(str(errcont))
    errfile.write('\n')
    errfile.close()

def jishi():
    r = run('ping ***.***.22.18',
                        stdout=PIPE,
                        stderr=PIPE,
                        stdin=PIPE,
                        shell=True)
    if r.returncode:
        print('不能正常联网')
        return False
    else:
        print('正常联网')
        return True


def linkto():
    print('111')
    uii = True
    cnt = 1
    while uii:
        r = run('ping ***.***.22.18',
                        stdout=PIPE,
                        stderr=PIPE,
                        stdin=PIPE,
                        shell=True)
        if r.returncode:
            print('relogin 第{}次'.format(cnt))
            senderror('  relogin 第{}次'.format(cnt))
            cnt += 1
            time.sleep(60*1) # 暂停时间
        else:
            uii = False
            print('正常联网')
            jis = Zkong()
            jis.connect()


if __name__ == '__main__':
    list = ""
    jis = Zkong()
    jis.connect()
温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
编程技巧

织梦教程DedeCMS系统列表页标题加页码的方法

2023-10-30 0:00:00

编程技巧

织梦教程DedeCMS系统arclist标签生成的代码不换行的方法

2023-11-1 0:00:00

0 条回复 A文章作者 M管理员
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索