From 62dbd7e739a4ee3ab954445352a93a29b2face8c Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 16 十二月 2024 15:33:15 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/resources/agv.py | 126 +++++++++++++----------------------------- 1 files changed, 39 insertions(+), 87 deletions(-) diff --git a/zy-acs-manager/src/main/resources/agv.py b/zy-acs-manager/src/main/resources/agv.py index 2425f67..a366634 100644 --- a/zy-acs-manager/src/main/resources/agv.py +++ b/zy-acs-manager/src/main/resources/agv.py @@ -1,14 +1,13 @@ 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): @@ -59,7 +58,6 @@ return list(zip(indices[0], indices[1])) def initWaveMatrix(): - global codeMatrix, waveMatrix # 澹版槑浣跨敤鍏ㄥ眬鍙橀噺 lev = 1 waveMatrix = np.empty_like(codeMatrix, dtype=object) @@ -75,10 +73,7 @@ # 浼樺寲鐗堟湰锛氫娇鐢ㄩ泦鍚堟潵鎻愰珮鎬ц兘 def mergeWave(originWave, vehicle): # 灏嗗瓧绗︿覆瑙f瀽涓洪泦鍚� - try: - set_data = set(ast.literal_eval(originWave)) - except (ValueError, SyntaxError): - set_data = set() + set_data = set(ast.literal_eval(originWave)) # 濡傛灉 vehicle 涓嶅湪闆嗗悎涓紝鍒欐坊鍔� set_data.add(vehicle) # 杩斿洖搴忓垪鍖栧悗鐨勫瓧绗︿覆 @@ -95,7 +90,6 @@ # 浣跨敤 numpy 鍔犻�熺殑浠g爜 def process_dynamic_matrix(dynamicMatrix, codeMatrix): - global waveMatrix # 澹版槑浣跨敤鍏ㄥ眬鍙橀噺 # 灏� dynamicMatrix 杞崲涓虹粨鏋勫寲鏁扮粍 dynamicMatrix = convert_to_structured_array(dynamicMatrix) @@ -111,98 +105,56 @@ # 閬嶅巻婊¤冻鏉′欢鐨勫潗鏍� for x, y in zip(x_indices, y_indices): # print(code) - vehicle = dynamicMatrix[x][y]['vehicle'] - includeList = getWaveScopeByCode(x, y) + 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) -def main(): - global radiusLen, codeMatrix, cdaMatrix, waveMatrix # 澹版槑浣跨敤鍏ㄥ眬鍙橀噺 +radiusLenStr = sys.argv[1] +radiusLen = float(radiusLenStr) - if len(sys.argv) != 6: - print("鐢ㄦ硶: python agv.py <radiusLen> <redisHost> <redisPwd> <redisPort> <redisIdx>") - sys.exit(1) +redisHost = sys.argv[2] +redisPwd = sys.argv[3] +redisPort = sys.argv[4] +redisIdx = sys.argv[5] - radiusLenStr = sys.argv[1] - try: - radiusLen = float(radiusLenStr) - except ValueError: - print("radiusLen 蹇呴』鏄竴涓诞鐐规暟") - sys.exit(1) +startTime = time.perf_counter() - redisHost = sys.argv[2] - redisPwd = sys.argv[3] - redisPort = sys.argv[4] - redisIdx = sys.argv[5] +# 鍒涘缓涓�涓繛鎺ユ睜 +pool = redis.ConnectionPool(host=redisHost, port=int(redisPort), password=redisPwd, db=int(redisIdx)) +r = redis.Redis(connection_pool=pool) - startTime = time.perf_counter() +codeMatrixStr = r.get('KV.AGV_MAP_ASTAR_CODE_FLAG.1') +codeMatrix = np.array(json.loads(codeMatrixStr)) - # 鍒涘缓涓�涓繛鎺ユ睜 - 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) +cdaMatrixStr = r.get('KV.AGV_MAP_ASTAR_CDA_FLAG.1') +cdaMatrix = np.array(json.loads(cdaMatrixStr)) - 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) +dynamicMatrixStr = r.get('KV.AGV_MAP_ASTAR_DYNAMIC_FLAG.1') +dynamicMatrix = np.array(json.loads(dynamicMatrixStr)) - 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) +waveMatrix = initWaveMatrix() - 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) +# # 浣跨敤 numpy 鍔犻�熺殑浠g爜 +process_dynamic_matrix(dynamicMatrix, codeMatrix) - # 鍒濆鍖� waveMatrix - try: - waveMatrix = initWaveMatrix() - except Exception as e: - print(f"鍒濆鍖� waveMatrix 澶辫触: {e}") - sys.exit(1) +# 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) - # 澶勭悊 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) - # 灏� numpy.ndarray 杞崲涓哄祵濂楀垪琛� - waveMatrixList = waveMatrix.tolist() - # 灏嗗祵濂楀垪琛ㄨ浆鎹负 JSON 瀛楃涓� - waveMatrixJsonStr = json.dumps(waveMatrixList) +r.set("KV.AGV_MAP_ASTAR_WAVE_FLAG.1",waveMatrixJsonStr) - 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") - end = time.perf_counter() - # print('绋嬪簭杩愯鏃堕棿涓�: %s Seconds' % (end - startTime)) - print("1") - # 濡傛灉闇�瑕侊紝鍙互鎵撳嵃杩愯鏃堕棿 - # print(f"绋嬪簭杩愯鏃堕棿涓�: {end - startTime:.2f} 绉�") - -if __name__ == "__main__": - main() -- Gitblit v1.9.1