From 7ceeeeddf7f4116702da3e706f1222b0e6ed75d4 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 18 十二月 2024 13:13:55 +0800
Subject: [PATCH] #
---
/dev/null | 208 ----------------------------------------------------
1 files changed, 0 insertions(+), 208 deletions(-)
diff --git a/zy-acs-manager/src/main/resources/agv1.py b/zy-acs-manager/src/main/resources/agv1.py
deleted file mode 100644
index b7b8006..0000000
--- a/zy-acs-manager/src/main/resources/agv1.py
+++ /dev/null
@@ -1,159 +0,0 @@
-import ast
-import sys
-import numpy as np
-import json
-import time
-import redis
-from collections import deque
-
-radiusLen = None
-
-# 灏嗗瓧绗︿覆杞崲涓烘诞鐐瑰瀷鏁扮粍
-def convert_to_float_array(str_array):
- if isinstance(str_array, str):
- return np.array(ast.literal_eval(str_array), dtype=float)
- return str_array
-
-def getWaveScopeByCode(x, y):
- code = codeMatrix[x, y]
- includeList = []
- existNodes = set()
- spreadWaveNode({"x": x, "y": y}, {"x": x, "y": y}, existNodes, includeList)
- return includeList
-
-def spreadWaveNode(originNode, currNode, existNodes, includeList):
- x, y = currNode['x'], currNode['y']
- neighbors = [(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)]
- for neighbor in neighbors:
- extendNeighborNodes(originNode, {"x": neighbor[0], "y": neighbor[1]}, existNodes, includeList)
-
-def extendNeighborNodes(originNode, nextNode, existNodes, includeList):
- x, y = nextNode['x'], nextNode['y']
- if (x < 0 or x >= codeMatrix.shape[0] or y < 0 or y >= codeMatrix.shape[1]):
- return
-
- if (x, y) in existNodes:
- return
-
- existNodes.add((x, y))
-
- nextNodeCodeData = codeMatrix[x, y]
-
- if nextNodeCodeData == 'NONE':
- spreadWaveNode(originNode, nextNode, existNodes, includeList)
- else:
- o1Cda = convert_to_float_array(cdaMatrix[originNode['x'], originNode['y']])
- o2Cda = convert_to_float_array(cdaMatrix[x, y])
-
- num1 = (o1Cda[0] - o2Cda[0]) ** 2
- num2 = (o1Cda[1] - o2Cda[1]) ** 2
- if num1 + num2 <= radiusLen ** 2:
- includeList.append({"x": int(x), "y": int(y), "code": str(codeMatrix[x, y])})
- spreadWaveNode(originNode, nextNode, existNodes, includeList)
-
-# 鎵惧埌鏌愪釜鍊煎搴旂殑 x, y 涓嬫爣
-def find_value_in_matrix(value):
- indices = np.where(codeMatrix == value)
- return list(zip(indices[0], indices[1]))
-
-def initWaveMatrix():
- lev = 1
- waveMatrix = np.empty_like(codeMatrix, dtype=object)
-
- for x in range(codeMatrix.shape[0]):
- for y in range(codeMatrix.shape[1]):
- if codeMatrix[x][y] == 'NONE':
- waveMatrix[x][y] = "-"
- else:
- waveMatrix[x][y] = '[]'
-
- return waveMatrix
-
-# 浼樺寲鐗堟湰锛氫娇鐢ㄩ泦鍚堟潵鎻愰珮鎬ц兘
-def mergeWave(originWave, vehicle):
- # 灏嗗瓧绗︿覆瑙f瀽涓洪泦鍚�
- set_data = set(ast.literal_eval(originWave))
- # 濡傛灉 vehicle 涓嶅湪闆嗗悎涓紝鍒欐坊鍔�
- set_data.add(vehicle)
- # 杩斿洖搴忓垪鍖栧悗鐨勫瓧绗︿覆
- return json.dumps(list(set_data))
-
-# 灏� dynamicMatrix 杞崲涓� numpy 缁撴瀯鍖栨暟缁�
-def convert_to_structured_array(dynamicMatrix):
- # 瀹氫箟缁撴瀯鍖栨暟缁勭殑 dtype
- dtype = [('serial', int), ('vehicle', 'U2')]
- # 灏嗗祵濂楃殑鍒楄〃杞崲涓虹粨鏋勫寲鏁扮粍
- structured_array = np.array([tuple(d.values()) for row in dynamicMatrix for d in row], dtype=dtype)
- # 閲嶅涓哄師濮嬬殑浜岀淮褰㈢姸
- return structured_array.reshape(len(dynamicMatrix), -1)
-
-# 浣跨敤 numpy 鍔犻�熺殑浠g爜
-def process_dynamic_matrix(dynamicMatrix, codeMatrix):
- # 灏� dynamicMatrix 杞崲涓虹粨鏋勫寲鏁扮粍
- dynamicMatrix = convert_to_structured_array(dynamicMatrix)
-
- # 鑾峰彇 dynamicMatrix 鐨勫舰鐘�
- rows, cols = dynamicMatrix.shape
-
- # 鍒涘缓涓�涓竷灏旀帺鐮侊紝鐢ㄤ簬绛涢�夊嚭 vehicle 涓嶄负 '0' 鍜� '-1' 鐨勫厓绱�
- mask = (dynamicMatrix['vehicle'] != '0') & (dynamicMatrix['vehicle'] != '-1')
-
- # 鑾峰彇婊¤冻鏉′欢鐨� x 鍜� y 鍧愭爣
- x_indices, y_indices = np.where(mask)
-
- # 閬嶅巻婊¤冻鏉′欢鐨勫潗鏍�
- for x, y in zip(x_indices, y_indices):
- # print(code)
- data = dynamicMatrix[x][y]
- vehicle = data['vehicle']
- includeList = getWaveScopeByCode(x,y)
- for include in includeList:
- originWave = waveMatrix[include['x']][include['y']]
- waveMatrix[include['x']][include['y']] = mergeWave(originWave, vehicle)
-
-radiusLenStr = sys.argv[1]
-radiusLen = float(radiusLenStr)
-
-redisHost = sys.argv[2]
-redisPwd = sys.argv[3]
-redisPort = sys.argv[4]
-redisIdx = sys.argv[5]
-
-startTime = time.perf_counter()
-
-# 鍒涘缓涓�涓繛鎺ユ睜
-pool = redis.ConnectionPool(host=redisHost, port=int(redisPort), password=redisPwd, db=int(redisIdx))
-r = redis.Redis(connection_pool=pool)
-
-codeMatrixStr = r.get('KV.AGV_MAP_ASTAR_CODE_FLAG.1')
-codeMatrix = np.array(json.loads(codeMatrixStr))
-
-cdaMatrixStr = r.get('KV.AGV_MAP_ASTAR_CDA_FLAG.1')
-cdaMatrix = np.array(json.loads(cdaMatrixStr))
-
-dynamicMatrixStr = r.get('KV.AGV_MAP_ASTAR_DYNAMIC_FLAG.1')
-dynamicMatrix = np.array(json.loads(dynamicMatrixStr))
-
-waveMatrix = initWaveMatrix()
-
-# # 浣跨敤 numpy 鍔犻�熺殑浠g爜
-process_dynamic_matrix(dynamicMatrix, codeMatrix)
-
-# for x in range(dynamicMatrix.shape[0]):
-# for y in range(dynamicMatrix.shape[1]):
-# data = dynamicMatrix[x, y]
-# vehicle = data['vehicle']
-# if vehicle != '0' and vehicle != '-1':
-# getWaveScopeByCode(x, y)
-
-# 灏� numpy.ndarray 杞崲涓哄祵濂楀垪琛�
-waveMatrixList = waveMatrix.tolist()
-# 灏嗗祵濂楀垪琛ㄨ浆鎹负 JSON 瀛楃涓�
-waveMatrixJsonStr = json.dumps(waveMatrixList)
-
-r.set("KV.AGV_MAP_ASTAR_WAVE_FLAG.1",waveMatrixJsonStr)
-
-end = time.perf_counter()
-# print('绋嬪簭杩愯鏃堕棿涓�: %s Seconds' % (end - startTime))
-print("1")
-
diff --git a/zy-acs-manager/src/main/resources/agv2.py b/zy-acs-manager/src/main/resources/agv2.py
deleted file mode 100644
index 2425f67..0000000
--- a/zy-acs-manager/src/main/resources/agv2.py
+++ /dev/null
@@ -1,208 +0,0 @@
-import ast
-import sys
-import numpy as np
-import json
-import time
-import redis
-
-radiusLen = None
-codeMatrix = None # 鍏ㄥ眬鍙橀噺
-cdaMatrix = None # 鍏ㄥ眬鍙橀噺
-waveMatrix = None # 鍏ㄥ眬鍙橀噺
-
-# 灏嗗瓧绗︿覆杞崲涓烘诞鐐瑰瀷鏁扮粍
-def convert_to_float_array(str_array):
- if isinstance(str_array, str):
- return np.array(ast.literal_eval(str_array), dtype=float)
- return str_array
-
-def getWaveScopeByCode(x, y):
- code = codeMatrix[x, y]
- includeList = []
- existNodes = set()
- spreadWaveNode({"x": x, "y": y}, {"x": x, "y": y}, existNodes, includeList)
- return includeList
-
-def spreadWaveNode(originNode, currNode, existNodes, includeList):
- x, y = currNode['x'], currNode['y']
- neighbors = [(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)]
- for neighbor in neighbors:
- extendNeighborNodes(originNode, {"x": neighbor[0], "y": neighbor[1]}, existNodes, includeList)
-
-def extendNeighborNodes(originNode, nextNode, existNodes, includeList):
- x, y = nextNode['x'], nextNode['y']
- if (x < 0 or x >= codeMatrix.shape[0] or y < 0 or y >= codeMatrix.shape[1]):
- return
-
- if (x, y) in existNodes:
- return
-
- existNodes.add((x, y))
-
- nextNodeCodeData = codeMatrix[x, y]
-
- if nextNodeCodeData == 'NONE':
- spreadWaveNode(originNode, nextNode, existNodes, includeList)
- else:
- o1Cda = convert_to_float_array(cdaMatrix[originNode['x'], originNode['y']])
- o2Cda = convert_to_float_array(cdaMatrix[x, y])
-
- num1 = (o1Cda[0] - o2Cda[0]) ** 2
- num2 = (o1Cda[1] - o2Cda[1]) ** 2
- if num1 + num2 <= radiusLen ** 2:
- includeList.append({"x": int(x), "y": int(y), "code": str(codeMatrix[x, y])})
- spreadWaveNode(originNode, nextNode, existNodes, includeList)
-
-# 鎵惧埌鏌愪釜鍊煎搴旂殑 x, y 涓嬫爣
-def find_value_in_matrix(value):
- indices = np.where(codeMatrix == value)
- return list(zip(indices[0], indices[1]))
-
-def initWaveMatrix():
- global codeMatrix, waveMatrix # 澹版槑浣跨敤鍏ㄥ眬鍙橀噺
- lev = 1
- waveMatrix = np.empty_like(codeMatrix, dtype=object)
-
- for x in range(codeMatrix.shape[0]):
- for y in range(codeMatrix.shape[1]):
- if codeMatrix[x][y] == 'NONE':
- waveMatrix[x][y] = "-"
- else:
- waveMatrix[x][y] = '[]'
-
- return waveMatrix
-
-# 浼樺寲鐗堟湰锛氫娇鐢ㄩ泦鍚堟潵鎻愰珮鎬ц兘
-def mergeWave(originWave, vehicle):
- # 灏嗗瓧绗︿覆瑙f瀽涓洪泦鍚�
- try:
- set_data = set(ast.literal_eval(originWave))
- except (ValueError, SyntaxError):
- set_data = set()
- # 濡傛灉 vehicle 涓嶅湪闆嗗悎涓紝鍒欐坊鍔�
- set_data.add(vehicle)
- # 杩斿洖搴忓垪鍖栧悗鐨勫瓧绗︿覆
- return json.dumps(list(set_data))
-
-# 灏� dynamicMatrix 杞崲涓� numpy 缁撴瀯鍖栨暟缁�
-def convert_to_structured_array(dynamicMatrix):
- # 瀹氫箟缁撴瀯鍖栨暟缁勭殑 dtype
- dtype = [('serial', int), ('vehicle', 'U2')]
- # 灏嗗祵濂楃殑鍒楄〃杞崲涓虹粨鏋勫寲鏁扮粍
- structured_array = np.array([tuple(d.values()) for row in dynamicMatrix for d in row], dtype=dtype)
- # 閲嶅涓哄師濮嬬殑浜岀淮褰㈢姸
- return structured_array.reshape(len(dynamicMatrix), -1)
-
-# 浣跨敤 numpy 鍔犻�熺殑浠g爜
-def process_dynamic_matrix(dynamicMatrix, codeMatrix):
- global waveMatrix # 澹版槑浣跨敤鍏ㄥ眬鍙橀噺
- # 灏� dynamicMatrix 杞崲涓虹粨鏋勫寲鏁扮粍
- dynamicMatrix = convert_to_structured_array(dynamicMatrix)
-
- # 鑾峰彇 dynamicMatrix 鐨勫舰鐘�
- rows, cols = dynamicMatrix.shape
-
- # 鍒涘缓涓�涓竷灏旀帺鐮侊紝鐢ㄤ簬绛涢�夊嚭 vehicle 涓嶄负 '0' 鍜� '-1' 鐨勫厓绱�
- mask = (dynamicMatrix['vehicle'] != '0') & (dynamicMatrix['vehicle'] != '-1')
-
- # 鑾峰彇婊¤冻鏉′欢鐨� x 鍜� y 鍧愭爣
- x_indices, y_indices = np.where(mask)
-
- # 閬嶅巻婊¤冻鏉′欢鐨勫潗鏍�
- for x, y in zip(x_indices, y_indices):
- # print(code)
- vehicle = dynamicMatrix[x][y]['vehicle']
- includeList = getWaveScopeByCode(x, y)
- for include in includeList:
- originWave = waveMatrix[include['x']][include['y']]
- waveMatrix[include['x']][include['y']] = mergeWave(originWave, vehicle)
-
-def main():
- global radiusLen, codeMatrix, cdaMatrix, waveMatrix # 澹版槑浣跨敤鍏ㄥ眬鍙橀噺
-
- if len(sys.argv) != 6:
- print("鐢ㄦ硶: python agv.py <radiusLen> <redisHost> <redisPwd> <redisPort> <redisIdx>")
- sys.exit(1)
-
- radiusLenStr = sys.argv[1]
- try:
- radiusLen = float(radiusLenStr)
- except ValueError:
- print("radiusLen 蹇呴』鏄竴涓诞鐐规暟")
- sys.exit(1)
-
- redisHost = sys.argv[2]
- redisPwd = sys.argv[3]
- redisPort = sys.argv[4]
- redisIdx = sys.argv[5]
-
- startTime = time.perf_counter()
-
- # 鍒涘缓涓�涓繛鎺ユ睜
- try:
- pool = redis.ConnectionPool(host=redisHost, port=int(redisPort), password=redisPwd, db=int(redisIdx))
- r = redis.Redis(connection_pool=pool, decode_responses=True)
- except Exception as e:
- print(f"鏃犳硶杩炴帴鍒� Redis: {e}")
- sys.exit(1)
-
- try:
- codeMatrixStr = r.get('KV.AGV_MAP_ASTAR_CODE_FLAG.1')
- if codeMatrixStr is None:
- raise ValueError("Redis 涓湭鎵惧埌閿�: KV.AGV_MAP_ASTAR_CODE_FLAG.1")
- codeMatrix = np.array(json.loads(codeMatrixStr))
- except Exception as e:
- print(f"鑾峰彇 codeMatrix 澶辫触: {e}")
- sys.exit(1)
-
- try:
- cdaMatrixStr = r.get('KV.AGV_MAP_ASTAR_CDA_FLAG.1')
- if cdaMatrixStr is None:
- raise ValueError("Redis 涓湭鎵惧埌閿�: KV.AGV_MAP_ASTAR_CDA_FLAG.1")
- cdaMatrix = np.array(json.loads(cdaMatrixStr))
- except Exception as e:
- print(f"鑾峰彇 cdaMatrix 澶辫触: {e}")
- sys.exit(1)
-
- try:
- dynamicMatrixStr = r.get('KV.AGV_MAP_ASTAR_DYNAMIC_FLAG.1')
- if dynamicMatrixStr is None:
- raise ValueError("Redis 涓湭鎵惧埌閿�: KV.AGV_MAP_ASTAR_DYNAMIC_FLAG.1")
- dynamicMatrix = np.array(json.loads(dynamicMatrixStr))
- except Exception as e:
- print(f"鑾峰彇 dynamicMatrix 澶辫触: {e}")
- sys.exit(1)
-
- # 鍒濆鍖� waveMatrix
- try:
- waveMatrix = initWaveMatrix()
- except Exception as e:
- print(f"鍒濆鍖� waveMatrix 澶辫触: {e}")
- sys.exit(1)
-
- # 澶勭悊 dynamicMatrix
- try:
- process_dynamic_matrix(dynamicMatrix, codeMatrix)
- except Exception as e:
- print(f"澶勭悊 dynamicMatrix 澶辫触: {e}")
- sys.exit(1)
-
- # 灏� numpy.ndarray 杞崲涓哄祵濂楀垪琛�
- waveMatrixList = waveMatrix.tolist()
- # 灏嗗祵濂楀垪琛ㄨ浆鎹负 JSON 瀛楃涓�
- waveMatrixJsonStr = json.dumps(waveMatrixList)
-
- try:
- r.set("KV.AGV_MAP_ASTAR_WAVE_FLAG.1", waveMatrixJsonStr)
- except Exception as e:
- print(f"灏� waveMatrix 鍐欏叆 Redis 澶辫触: {e}")
- sys.exit(1)
-
- end = time.perf_counter()
- # print('绋嬪簭杩愯鏃堕棿涓�: %s Seconds' % (end - startTime))
- print("1")
- # 濡傛灉闇�瑕侊紝鍙互鎵撳嵃杩愯鏃堕棿
- # print(f"绋嬪簭杩愯鏃堕棿涓�: {end - startTime:.2f} 绉�")
-
-if __name__ == "__main__":
- main()
--
Gitblit v1.9.1