|
|
@@ -3,6 +3,7 @@ from sockets import ConnectionManager
|
|
|
from utils.common import message_queue
|
|
|
from mcu.capture.smart_shooter_class import SmartShooter
|
|
|
|
|
|
+
|
|
|
class BaseClass:
|
|
|
|
|
|
def __init__(
|
|
|
@@ -11,10 +12,11 @@ class BaseClass:
|
|
|
self.websocket_manager = websocket_manager
|
|
|
self.smart_shooter = smart_shooter
|
|
|
self.msg_type = ""
|
|
|
+ self.websocket = None
|
|
|
# -1连接失败 0未连接 1连接中 2连接成功 3端口占用
|
|
|
# self.device_status = 2
|
|
|
|
|
|
- def sendSocketMessage(self, code=0, msg="", data=None,device_status=2):
|
|
|
+ def sendSocketMessage(self, code=0, msg="", data=None, device_status=2):
|
|
|
data = {
|
|
|
"code": code,
|
|
|
"msg": msg,
|
|
|
@@ -23,9 +25,28 @@ class BaseClass:
|
|
|
"msg_type": self.msg_type,
|
|
|
}
|
|
|
loop = asyncio.get_event_loop()
|
|
|
- loop.create_task(message_queue.put(data))
|
|
|
- def change_hex_to_int(self,_bytearray):
|
|
|
- return ' '.join([hex(x) for x in _bytearray])
|
|
|
+ if self.websocket == None:
|
|
|
+ loop.create_task(message_queue.put(data))
|
|
|
+ else:
|
|
|
+ loop.create_task(
|
|
|
+ self.websocket_manager.send_personal_message(data, self.websocket)
|
|
|
+ )
|
|
|
+
|
|
|
+ async def asyncSendSocketMessage(self, code=0, msg="", data=None, device_status=2):
|
|
|
+ data = {
|
|
|
+ "code": code,
|
|
|
+ "msg": msg,
|
|
|
+ "status": device_status,
|
|
|
+ "data": data,
|
|
|
+ "msg_type": self.msg_type,
|
|
|
+ }
|
|
|
+ if self.websocket == None:
|
|
|
+ await asyncio.wait_for(message_queue.put(data), timeout=0.1)
|
|
|
+ else:
|
|
|
+ await self.websocket_manager.send_personal_message(data, self.websocket)
|
|
|
+
|
|
|
+ def change_hex_to_int(self, _bytearray):
|
|
|
+ return " ".join([hex(x) for x in _bytearray])
|
|
|
|
|
|
def read_cmd(self, serial_handle, check=None):
|
|
|
n = 0
|
|
|
@@ -82,7 +103,7 @@ class BaseClass:
|
|
|
else:
|
|
|
self.receive_data = self.receive_data[1:]
|
|
|
|
|
|
- def write_cmd(self, serial_handle,data: list):
|
|
|
+ def write_cmd(self, serial_handle, data: list):
|
|
|
if serial_handle:
|
|
|
# data = [(0xff & par1), (0xff & (par1 >> 8))]
|
|
|
# self.clearn_flush()
|