You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

50 lines
1.4 KiB

from struct import pack, unpack
from .zkconst import *
def reverseHex(hexstr):
tmp = ''
for i in reversed(range(len(hexstr)/2)):
tmp += hexstr[i*2:(i*2)+2]
return tmp
def zksettime(self, t):
"""Start a connection with the time clock"""
command = CMD_SET_TIME
command_string = pack('I',encode_time(t))
chksum = 0
session_id = self.session_id
reply_id = unpack('HHHH', self.data_recv[:8])[3]
buf = self.createHeader(command, chksum, session_id,
reply_id, command_string)
self.zkclient.sendto(buf, self.address)
#print buf.encode("hex")
try:
self.data_recv, addr = self.zkclient.recvfrom(1024)
self.session_id = unpack('HHHH', self.data_recv[:8])[2]
return self.data_recv[8:]
except:
return False
def zkgettime(self):
"""Start a connection with the time clock"""
command = CMD_GET_TIME
command_string = ''
chksum = 0
session_id = self.session_id
reply_id = unpack('HHHH', self.data_recv[:8])[3]
buf = self.createHeader(command, chksum, session_id,
reply_id, command_string)
self.zkclient.sendto(buf, self.address)
#print buf.encode("hex")
try:
self.data_recv, addr = self.zkclient.recvfrom(1024)
self.session_id = unpack('HHHH', self.data_recv[:8])[2]
return decode_time( int( reverseHex( self.data_recv[8:].encode("hex") ), 16 ) )
except:
return False