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.
71 lines
1.2 KiB
71 lines
1.2 KiB
from datetime import datetime, date
|
|
|
|
USHRT_MAX = 65535
|
|
|
|
|
|
CMD_CONNECT = 1000
|
|
CMD_EXIT = 1001
|
|
CMD_ENABLEDEVICE = 1002
|
|
CMD_DISABLEDEVICE = 1003
|
|
|
|
CMD_ACK_OK = 2000
|
|
CMD_ACK_ERROR = 2001
|
|
CMD_ACK_DATA = 2002
|
|
|
|
CMD_PREPARE_DATA = 1500
|
|
CMD_DATA = 1501
|
|
|
|
CMD_USERTEMP_RRQ = 9
|
|
CMD_ATTLOG_RRQ = 13
|
|
CMD_CLEAR_DATA = 14
|
|
CMD_CLEAR_ATTLOG = 15
|
|
|
|
CMD_WRITE_LCD = 66
|
|
|
|
CMD_GET_TIME = 201
|
|
CMD_SET_TIME = 202
|
|
|
|
CMD_VERSION = 1100
|
|
CMD_DEVICE = 11
|
|
|
|
CMD_CLEAR_ADMIN = 20
|
|
CMD_SET_USER = 8
|
|
|
|
LEVEL_USER = 0
|
|
LEVEL_ADMIN = 14
|
|
|
|
def encode_time(t):
|
|
"""Encode a timestamp send at the timeclock
|
|
|
|
copied from zkemsdk.c - EncodeTime"""
|
|
d = ( (t.year % 100) * 12 * 31 + ((t.month - 1) * 31) + t.day - 1) *\
|
|
(24 * 60 * 60) + (t.hour * 60 + t.minute) * 60 + t.second
|
|
|
|
return d
|
|
|
|
|
|
def decode_time(t):
|
|
"""Decode a timestamp retrieved from the timeclock
|
|
|
|
copied from zkemsdk.c - DecodeTime"""
|
|
second = t % 60
|
|
t = t / 60
|
|
|
|
minute = t % 60
|
|
t = t / 60
|
|
|
|
hour = t % 24
|
|
t = t / 24
|
|
|
|
day = t % 31+1
|
|
t = t / 31
|
|
|
|
month = t % 12+1
|
|
t = t / 12
|
|
|
|
year = t + 2000
|
|
|
|
d = datetime(int(year), int(month), int(day), int(hour), int(minute), int(second))
|
|
|
|
return d
|
|
|
|
|