# -*- coding:ISO-8859-1 -*- import binascii import hashlib import json import struct import base64 import time import send_sms """ ??????? """ def analysisUnPack(data,type=1): keys = [ 'x', 'c', 'b', 'B', '?', 'h', 'H', 'i', 'I', 'l', 'L', 'q', 'Q', 'f', 'd', 's', 'p', 'P', ] two_key = [ '', '<', '=', '>', '!', '@' ] arr = {} for v in keys: for v1 in two_key: try: if type == 1: arr["{}{}".format(v1,v)] = struct.unpack("{}{}".format(v,v1), data) else: arr["{}{}".format(v, v1)] = struct.pack("{}{}".format(v, v1), data) except BaseException as e: arr["{}{}".format(v, v1)] = "{}: {}".format('error', str(e)) for v in arr: print(v, arr[v]) print("----") return arr """ ??????? """ def return_x_o_r(data): t = None for i in range(len(data)): if i: t ^= data[i] else: t = data[i] ^ 0 return t """ ???? """ def printf(self, *data): print(data, time.time()) if __name__ == '__main__': # time_base = int(time.time()) # str_res = struct.pack('i', time_base) str_res = struct.pack('i', 1) # x_o_y = return_x_o_r(str_res) # str_res += binascii.a2b_hex(hex(x_o_y).encode()[2:]) print(str_res) exit() # self.mqtt_obj.publish("{}/Ack".format(ball_cart_id), str_res) # data = b'\x44\x68\x68\x63\x34\x36\x30\x31\x31\x35\x32\x31\x30\x39\x31\x37\x34\x37\x32\x00\x00\x00\x00\x00\x38\x39\x38\x36\x30\x33\x32\x31\x32\x34\x35\x39\x32\x36\x33\x36\x37\x33\x39\x36\x1F\x01\x01\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69' # # data = 'KLloY9IVAQDIJQEAw++mW3aEOEC9N4YA4IddQAAAAACd' # # data = b"\xbc\x07\x00\x00460115210917473\x00\x00\x00\x00\x0089860321245926367404\x1c\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb" # data = b'(\xb9hc\xd2\x15\x01\x00\xc8%\x01\x00\xc3\xef\xa6[v\x848@\xbd7\x86\x00\xe0\x87]@\x00\x00\x00\x00\x9d' # # data = base64.b64decode(data) # data = b'\x00hnc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00e' # # data = b"\xbc\x07\x00\x00460115210917473\x00\x00\x00\x00\x0089860321245926367404\x1c\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb" # arr = {} # data = "0v91YzQ2MDA0ODQyMzQwODQ5NgAAAAAAODk4NjA0NjQxMTIwNzA1ODg0OTYaAAAASwAAAAAAAAAAAAAAAAAAAABU" # data = base64.b64decode(data) # analysisUnPack(data[0:4]) # print(data) handle_type = 0 pattern = 0 ball_cart_id = 20221000898 time_base = 1667786802 str_res = struct.pack('i', time_base) str_res += struct.pack('B', handle_type) str_res += struct.pack('B', pattern) str_res += (hashlib.md5("{}+{}".format(str(ball_cart_id).zfill(16), time_base).encode( "utf8")).hexdigest()).upper().encode() x_o_y = return_x_o_r(str_res) str_res += binascii.a2b_hex(hex(x_o_y).encode()[2:]) print(str_res) # print(data) # print(data[0:8]) # print(analysisUnPack(data[0:4])) # exit(); # print(arr)