2023-10-24 14:54:18 +08:00

95 lines
3.3 KiB
Python

# -*- 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)