From 10f3ed5a78e925da01ed5d8917aa711734803530 Mon Sep 17 00:00:00 2001 From: Arturo Hernandez Date: Fri, 4 May 2018 15:26:46 -0400 Subject: [PATCH] test_voice doesn't raise error anymore --- test_machine.py | 6 +++--- zk/base.py | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/test_machine.py b/test_machine.py index d260a84..fd9480a 100755 --- a/test_machine.py +++ b/test_machine.py @@ -24,7 +24,7 @@ parser.add_argument('-a', '--address', parser.add_argument('-p', '--port', type=int, help='ZK device port [4370]', default=4370) parser.add_argument('-T', '--timeout', type=int, - help='Default [10] seconds (0: disable timeout)', default=10) + help='Default [10] seconds (0: disable timeout)', default=1) parser.add_argument('-P', '--password', type=int, help='Device code/password', default=0) parser.add_argument('-f', '--force-udp', action="store_true", @@ -163,8 +163,8 @@ try: else: conn.test_voice(23) # not registered conn.refresh_data() - print ("Voice Test ...") - conn.test_voice(10) + #print ("Voice Test ...") + #conn.test_voice(10) if args.templates: print ("Read Templates...") templates = conn.get_templates() diff --git a/zk/base.py b/zk/base.py index b949c2b..77474af 100644 --- a/zk/base.py +++ b/zk/base.py @@ -4,6 +4,7 @@ import sys from datetime import datetime from socket import AF_INET, SOCK_DGRAM, SOCK_STREAM, socket, timeout from struct import pack, unpack +import codecs from zk import const from zk.attendance import Attendance @@ -177,6 +178,15 @@ class ZK(object): return pack('H', checksum) + def __test_tcp_top(self, packet): + """ return size!""" + if len(packet)<=8: + return 0 # invalid packet + tcp_header = unpack('0: #jic data_recv = self.__sock.recv(bytes) #ideal limit? recieved = len(data_recv) + if self.verbose: print ("partial recv {}".format(recieved)) data.append(data_recv) # w/o tcp and header bytes -= recieved data_recv = self.__sock.recv(16) @@ -928,7 +948,7 @@ class ZK(object): while True: #limitado por respuesta no por tamaño data_recv = self.__sock.recv(response_size) response = unpack('HHHH', data_recv[:8])[0] - if self.verbose: print("# %s packet response is: %s" % (pac, response)) + if self.verbose: print("# packet response is: {}".format(response)) if response == const.CMD_DATA: data.append(data_recv[8:]) #header turncated bytes -= 1024 @@ -939,10 +959,12 @@ class ZK(object): if self.verbose: print("broken!") break if self.verbose: print("still needs %s" % bytes) - data = b''.join(data) + data = b''.join(data)[:-1] + if data[-6:] == b'\x00\x00\x00\x00\x00\x00': # padding? bug? + data = data[:-6] #uid 32 fing 03, starts with 4d-9b-53-53-32-31 #CMD_USERTEMP_RRQ desn't need [:-1] - return Finger(uid, temp_id, 1, data[:-1]) #udp + return Finger(uid, temp_id, 1, data) def get_templates(self): """ return array of all fingers """ @@ -1279,7 +1301,7 @@ class ZK(object): while True: #limitado por respuesta no por tamaño data_recv = self.__sock.recv(response_size) response = unpack('HHHH', data_recv[:8])[0] - if self.verbose: print ("# %s packet response is: %s" % (pac, response)) + if self.verbose: print ("# packet response is: {}".format(response)) if response == const.CMD_DATA: data.append(data_recv[8:]) #header turncated bytes -= 1024 #UDP