修改了一个恶性bug

This commit is contained in:
FEIJINTI 2022-10-05 11:26:14 +08:00
parent 7ee701f0d8
commit 61396842af
4 changed files with 21 additions and 15 deletions

View File

@ -77,9 +77,11 @@ def rec_socket(recv_sock: socket.socket, cmd_type: str, ack: bool) -> bool:
def main(): def main():
socket_receive = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 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.bind(('127.0.0.1', 21123))
socket_receive.listen(5) socket_receive.listen(5)
socket_send = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 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.bind(('127.0.0.1', 21122))
socket_send.listen(5) socket_send.listen(5)
print('等待连接') print('等待连接')
@ -91,8 +93,8 @@ def main():
while True: while True:
cmd = input().strip().upper() cmd = input().strip().upper()
if cmd == 'IM': 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"/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"C:\Users\FEIJINTI\PycharmProjects\wood_color\data\data20220919\dark\rgb60.png")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = np.asarray(img, dtype=np.float32) img = np.asarray(img, dtype=np.float32)
width = img.shape[0] width = img.shape[0]
@ -116,8 +118,8 @@ def main():
# else: # else:
# print('指令执行失败') # print('指令执行失败')
elif cmd == 'TR': elif cmd == 'TR':
# model = "/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/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 = "C:/Users/FEIJINTI/PycharmProjects/wood_color/data/data20220919"
model = model.encode('ascii') model = model.encode('ascii')
length = len(model) + 4 length = len(model) + 4
length = length.to_bytes(4, byteorder='big') length = length.to_bytes(4, byteorder='big')
@ -135,8 +137,8 @@ def main():
# else: # else:
# print('指令执行失败') # print('指令执行失败')
elif cmd == 'MD': elif cmd == 'MD':
# model = "/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/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 = "C:/Users/FEIJINTI/PycharmProjects/wood_color/models/model_2020-11-08_20-49.p"
model = model.encode('ascii') model = model.encode('ascii')
length = len(model) + 4 length = len(model) + 4
length = length.to_bytes(4, byteorder='big') length = length.to_bytes(4, byteorder='big')

View File

@ -7,5 +7,5 @@ Created on Nov 3 21:18:26 2020
""" """
import os import os
ROOT_DIR = r"C:\Users\FEIJINTI\PycharmProjects\wood_color" # ROOT_DIR = r"C:\Users\FEIJINTI\PycharmProjects\wood_color"
# ROOT_DIR = r"/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color" ROOT_DIR = r"/Users/zhouchao/Library/CloudStorage/OneDrive-macrosolid/PycharmProjects/wood_color"

View File

@ -52,13 +52,14 @@ def main(is_debug=False):
while not dual_sock.status: while not dual_sock.status:
dual_sock.reconnect() 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"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")
detector = WoodClass(w=4096, h=1200, n=3000, debug_mode=False) detector = WoodClass(w=4096, h=1200, n=3000, debug_mode=False)
detector.load(path=model_path) detector.load(path=model_path)
while True: while True:
pack, next_pack = receive_sock(dual_sock) pack, next_pack = receive_sock(dual_sock)
if pack == b"": if pack == b"":
time.sleep(5)
dual_sock.reconnect() dual_sock.reconnect()
continue continue

View File

@ -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)) connected_sock.connect((connect_ip, port_number))
except Exception as e: except Exception as e:
reconnect_time += 1 reconnect_time += 1
logging.error(f'{reconnect_time}次连接失败\n {e}') logging.error(f'{reconnect_time}次连接失败... 5秒后重新连接...\n {e}')
time.sleep(5)
continue continue
logging.warning(f'{"重新" if is_repeat else ""}连接成功') logging.warning(f'{"重新" if is_repeat else ""}连接成功')
return True, connected_sock return True, connected_sock
@ -125,9 +126,8 @@ class DualSock(PreSocket):
def receive(self, *args, **kwargs) -> bytes: def receive(self, *args, **kwargs) -> bytes:
return self.received_sock.receive(*args, **kwargs) return self.received_sock.receive(*args, **kwargs)
# def set_prepack(self, pre_pack: bytes): def set_prepack(self, pre_pack: bytes):
# temp = self.pre_pack self.received_sock.set_prepack(pre_pack)
# self.pre_pack = temp + pre_pack
def reconnect(self, connect_ip='127.0.0.1', recv_port:int = 21122, send_port: int = 21123): 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) 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 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): bytes, bytes):
""" """
从指定的socket中读取数据. 从指定的socket中读取数据.
@ -163,6 +163,9 @@ bytes, bytes):
# logging.error(f'超时了,错误代码: \n{e}') # logging.error(f'超时了,错误代码: \n{e}')
logging.info('运行中,等待指令..') logging.info('运行中,等待指令..')
continue continue
except socket.timeout as e:
logging.info('运行中,等待指令..')
continue
except Exception as e: except Exception as e:
logging.error(f'遇见未知错误,错误代码: \n{e}') logging.error(f'遇见未知错误,错误代码: \n{e}')
return b'', b'' return b'', b''