From ea4b7e06cbfb2e0a77e45022deb8e971095d122d Mon Sep 17 00:00:00 2001 From: FEIJINTI <83849113+FEIJINTI@users.noreply.github.com> Date: Wed, 5 Oct 2022 13:20:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8E=E5=82=AC=E5=82=AC=E5=93=A5=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E9=80=9A=E8=BF=87tr=E5=92=8Cmd=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 0 QT_test.py | 2 ++ README.md | 0 classifer.py | 0 pics/TODO.png | Bin pics/result.png | Bin pics/从木板中提取色彩.png | Bin pics/色彩分类.png | Bin root_dir.py | 0 socket_detector.py | 7 ++++--- utils.py | 13 ++++++++----- 11 files changed, 14 insertions(+), 8 deletions(-) mode change 100755 => 100644 .gitignore mode change 100755 => 100644 QT_test.py mode change 100755 => 100644 README.md mode change 100755 => 100644 classifer.py mode change 100755 => 100644 pics/TODO.png mode change 100755 => 100644 pics/result.png mode change 100755 => 100644 pics/从木板中提取色彩.png mode change 100755 => 100644 pics/色彩分类.png mode change 100755 => 100644 root_dir.py mode change 100755 => 100644 utils.py diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/QT_test.py b/QT_test.py old mode 100755 new mode 100644 index 109ece6..14b186b --- 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('等待连接') diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/classifer.py b/classifer.py old mode 100755 new mode 100644 diff --git a/pics/TODO.png b/pics/TODO.png old mode 100755 new mode 100644 diff --git a/pics/result.png b/pics/result.png old mode 100755 new mode 100644 diff --git a/pics/从木板中提取色彩.png b/pics/从木板中提取色彩.png old mode 100755 new mode 100644 diff --git a/pics/色彩分类.png b/pics/色彩分类.png old mode 100755 new mode 100644 diff --git a/root_dir.py b/root_dir.py old mode 100755 new mode 100644 diff --git a/socket_detector.py b/socket_detector.py index 219a2ff..cab92f7 100644 --- a/socket_detector.py +++ b/socket_detector.py @@ -48,17 +48,18 @@ def main(is_debug=False): console_handler.setLevel(logging.DEBUG if is_debug else logging.WARNING) logging.basicConfig(format='%(asctime)s %(filename)s[line:%(lineno)d] - %(levelname)s - %(message)s', handlers=[file_handler, console_handler], level=logging.DEBUG) - dual_sock = DualSock() + dual_sock = DualSock(connect_ip='192.168.2.221') 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 old mode 100755 new mode 100644 index 67c7dc1..1976e00 --- 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''