|
|
@@ -0,0 +1,51 @@
|
|
|
+import json
|
|
|
+import datetime
|
|
|
+import zmq
|
|
|
+import asyncio
|
|
|
+from PIL import Image
|
|
|
+from io import BytesIO
|
|
|
+import base64
|
|
|
+import zmq, sys
|
|
|
+
|
|
|
+
|
|
|
+class SmartShooter:
|
|
|
+ SET_REQ = "tcp://127.0.0.1:54544"
|
|
|
+ LISTEN_REQ = "tcp://127.0.0.1:54543"
|
|
|
+
|
|
|
+ def send_tcp_message(self, socket, code):
|
|
|
+ exit(1)
|
|
|
+ req = {}
|
|
|
+ req["msg_type"] = "Request"
|
|
|
+ req["msg_id"] = "ActivateLicense"
|
|
|
+ req["msg_seq_num"] = 0
|
|
|
+ req["ActivationCode"] = code
|
|
|
+ socket.send_string(json.dumps(req))
|
|
|
+ rep = socket.recv()
|
|
|
+ str_msg = rep.decode("utf-8")
|
|
|
+ json_msg = json.loads(str_msg)
|
|
|
+ return json_msg["msg_result"]
|
|
|
+
|
|
|
+ def connect_send(self):
|
|
|
+ context = zmq.Context()
|
|
|
+ req_socket = context.socket(zmq.REQ)
|
|
|
+ req_socket.connect(self.SET_REQ)
|
|
|
+
|
|
|
+ if self.send_tcp_message(req_socket, True):
|
|
|
+ print("License activated")
|
|
|
+ else:
|
|
|
+ print("Failed to activate license", file=sys.stderr)
|
|
|
+ def connect_listen(self):
|
|
|
+ context = zmq.Context()
|
|
|
+ sub_socket = context.socket(zmq.SUB)
|
|
|
+ sub_socket.setsockopt(zmq.SUBSCRIBE, b"")
|
|
|
+ sub_socket.connect(self.LISTEN_REQ)
|
|
|
+
|
|
|
+ while True:
|
|
|
+ raw = sub_socket.recv()
|
|
|
+ str_msg = raw.decode("utf-8")
|
|
|
+ json_msg = json.loads(str_msg)
|
|
|
+ # if args.nopings and json_msg["msg_id"] == "NetworkPing":
|
|
|
+ # continue
|
|
|
+ # print("{0}: {1}".format(datetime.datetime.now(), json_msg["msg_id"]))
|
|
|
+ # if not args.quiet:
|
|
|
+ # print(str_msg)
|