From 61396842af04e1887845d3f8f67d229ffcf16d4b Mon Sep 17 00:00:00 2001 From: FEIJINTI <83849113+FEIJINTI@users.noreply.github.com> Date: Wed, 5 Oct 2022 11:26:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=81=B6=E6=80=A7bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QT_test.py | 14 ++++++++------ root_dir.py | 4 ++-- socket_detector.py | 5 +++-- utils.py | 13 ++++++++----- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/QT_test.py b/QT_test.py index 109ece6..dd90774 100755 --- a/QT_test.py +++ b/QT_test.py @@ -77,9 +77,11 @@ def rec_socket(recv_sock: socket.socket, cmd_type: str, ack: bool) -> bool: def main(): socket_receive = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + socket_receive.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) socket_receive.bind(('127.0.0.1', 21123)) socket_receive.listen(5) socket_send = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + socket_send.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) socket_send.bind(('127.0.0.1', 21122)) socket_send.listen(5) print('等待连接') @@ -91,8 +93,8 @@ def main(): while True: cmd = input().strip().upper() if cmd == 'IM': - # img = cv2.imread(r"/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color/data/data20220919/dark/rgb60.png") - img = cv2.imread(r"C:\Users\FEIJINTI\PycharmProjects\wood_color\data\data20220919\dark\rgb60.png") + img = cv2.imread(r"/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color/data/data20220919/dark/rgb60.png") + # img = cv2.imread(r"C:\Users\FEIJINTI\PycharmProjects\wood_color\data\data20220919\dark\rgb60.png") img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img = np.asarray(img, dtype=np.float32) width = img.shape[0] @@ -116,8 +118,8 @@ def main(): # else: # print('指令执行失败') elif cmd == 'TR': - # model = "/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color/data/data20220919" - model = "C:/Users/FEIJINTI/PycharmProjects/wood_color/data/data20220919" + model = "/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color/data/data20220919" + # model = "C:/Users/FEIJINTI/PycharmProjects/wood_color/data/data20220919" model = model.encode('ascii') length = len(model) + 4 length = length.to_bytes(4, byteorder='big') @@ -135,8 +137,8 @@ def main(): # else: # print('指令执行失败') elif cmd == 'MD': - # model = "/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color/models/model_2020-11-08_20-49.p" - model = "C:/Users/FEIJINTI/PycharmProjects/wood_color/models/model_2020-11-08_20-49.p" + model = "/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color/models/model_2020-11-08_20-49.p" + # model = "C:/Users/FEIJINTI/PycharmProjects/wood_color/models/model_2020-11-08_20-49.p" model = model.encode('ascii') length = len(model) + 4 length = length.to_bytes(4, byteorder='big') diff --git a/root_dir.py b/root_dir.py index 634151c..89b43fa 100755 --- a/root_dir.py +++ b/root_dir.py @@ -7,5 +7,5 @@ Created on Nov 3 21:18:26 2020 """ import os -ROOT_DIR = r"C:\Users\FEIJINTI\PycharmProjects\wood_color" -# ROOT_DIR = r"/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color" \ No newline at end of file +# ROOT_DIR = r"C:\Users\FEIJINTI\PycharmProjects\wood_color" +ROOT_DIR = r"/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color" \ No newline at end of file diff --git a/socket_detector.py b/socket_detector.py index 219a2ff..72a7ccd 100644 --- a/socket_detector.py +++ b/socket_detector.py @@ -52,13 +52,14 @@ def main(is_debug=False): while not dual_sock.status: dual_sock.reconnect() - # model_path = os.path.join(ROOT_DIR, r"/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color/models/model_2022-09-28_13-15.p") - model_path = os.path.join(ROOT_DIR, r"C:\Users\FEIJINTI\PycharmProjects\wood_color\models\model_2022-09-28_13-15.p") + model_path = os.path.join(ROOT_DIR, r"models/model_2022-09-28_13-15.p") + # model_path = os.path.join(ROOT_DIR, r"models\model_2022-09-28_13-15.p") detector = WoodClass(w=4096, h=1200, n=3000, debug_mode=False) detector.load(path=model_path) while True: pack, next_pack = receive_sock(dual_sock) if pack == b"": + time.sleep(5) dual_sock.reconnect() continue diff --git a/utils.py b/utils.py index 67c7dc1..1976e00 100755 --- a/utils.py +++ b/utils.py @@ -85,7 +85,8 @@ def try_connect(connect_ip: str, port_number: int, is_repeat: bool = False, max_ connected_sock.connect((connect_ip, port_number)) except Exception as e: reconnect_time += 1 - logging.error(f'第{reconnect_time}次连接失败\n {e}') + logging.error(f'第{reconnect_time}次连接失败... 5秒后重新连接...\n {e}') + time.sleep(5) continue logging.warning(f'{"重新" if is_repeat else ""}连接成功') return True, connected_sock @@ -125,9 +126,8 @@ class DualSock(PreSocket): def receive(self, *args, **kwargs) -> bytes: return self.received_sock.receive(*args, **kwargs) - # def set_prepack(self, pre_pack: bytes): - # temp = self.pre_pack - # self.pre_pack = temp + pre_pack + def set_prepack(self, pre_pack: bytes): + self.received_sock.set_prepack(pre_pack) def reconnect(self, connect_ip='127.0.0.1', recv_port:int = 21122, send_port: int = 21123): received_status, self.received_sock = try_connect(connect_ip=connect_ip, port_number=recv_port) @@ -135,7 +135,7 @@ class DualSock(PreSocket): return received_status and send_status -def receive_sock(recv_sock: PreSocket, pre_pack: bytes = b'', time_out: float = -1.0, time_out_single=0.5) -> ( +def receive_sock(recv_sock: PreSocket, pre_pack: bytes = b'', time_out: float = -1.0, time_out_single=5e20) -> ( bytes, bytes): """ 从指定的socket中读取数据. @@ -163,6 +163,9 @@ bytes, bytes): # logging.error(f'超时了,错误代码: \n{e}') logging.info('运行中,等待指令..') continue + except socket.timeout as e: + logging.info('运行中,等待指令..') + continue except Exception as e: logging.error(f'遇见未知错误,错误代码: \n{e}') return b'', b''