Compare commits
	
		
			No commits in common. "b8c799b938c12a24dea2d82c6f7e4bdf477a5c04" and "4b52c28b5e881414ed17f1fcc1b11884e3957e44" have entirely different histories.
		
	
	
		
			b8c799b938
			...
			4b52c28b5e
		
	
		|  | @ -16,7 +16,7 @@ def get_checksum(body_msg): | ||||||
| 
 | 
 | ||||||
| def handle_bytes(arr): | def handle_bytes(arr): | ||||||
|     if len(arr) < 8: |     if len(arr) < 8: | ||||||
|         return f"返回数据长度错误-{arr}" |         return "返回数据长度错误" | ||||||
|      |      | ||||||
|     if arr[0] != 0xEB or arr[1] != 0x90: |     if arr[0] != 0xEB or arr[1] != 0x90: | ||||||
|         return "数据头不正确" |         return "数据头不正确" | ||||||
|  | @ -208,36 +208,3 @@ def get_tyy_data(*args, retry=1): | ||||||
|             raise ParseError(f'采集器返回数据错误-{res}') |             raise ParseError(f'采集器返回数据错误-{res}') | ||||||
|         else: |         else: | ||||||
|             return res |             return res | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def get_tyy_data_3(*args, retry=2): |  | ||||||
|     host, port = args[0], int(args[1]) |  | ||||||
|     for attempt in range(retry): |  | ||||||
|         try: |  | ||||||
|             # 每次请求都新建连接(确保无共享状态) |  | ||||||
|             with socket.create_connection((host, port), timeout=10) as sc: |  | ||||||
|                 sc.sendall(b"R") |  | ||||||
|                  |  | ||||||
|                 # 接收完整响应(避免数据不完整) |  | ||||||
|                 # resp = b"" |  | ||||||
|                 # while True: |  | ||||||
|                 #     chunk = sc.recv(4096) |  | ||||||
|                 #     if not chunk: |  | ||||||
|                 #         break |  | ||||||
|                 #     resp += chunk |  | ||||||
|                 resp = sc.recv(4096) |  | ||||||
|                 if not resp: |  | ||||||
|                     raise ParseError("设备未启动") |  | ||||||
|                  |  | ||||||
|                 res = handle_bytes(resp) |  | ||||||
|                 if isinstance(res, str): |  | ||||||
|                     raise ParseError(f"采集器返回数据错误: {res}") |  | ||||||
|                 return res |  | ||||||
|         except (socket.timeout, ConnectionError) as e: |  | ||||||
|             if attempt == retry - 1:  # 最后一次尝试失败才报错 |  | ||||||
|                 raise ParseError(f"采集器连接失败: {str(e)}") |  | ||||||
|             time.sleep(0.5)  # 失败后等待 1s 再重试 |  | ||||||
|         except ParseError: |  | ||||||
|             raise |  | ||||||
|         except Exception as e: |  | ||||||
|             raise ParseError(f"未知错误: {str(e)}") |  | ||||||
		Loading…
	
		Reference in New Issue