LingxinMeng 5 月之前
父节点
当前提交
4851b64a4f

+ 34 - 9
src/python2/pjibot_patrol/callback-pjibot_patrol.py

@@ -50,6 +50,7 @@ def judge_pcd_xosc(callback_json_oss_key):
     except Exception as e:
         logging.error("Error processing %s", e)
     return pcd,xosc
+
 if __name__ == '__main__':
     while True:
         logging.info("开始新一轮扫描")
@@ -66,7 +67,6 @@ if __name__ == '__main__':
                         file3 = False
                         pcd_ok = False
                         file5 = False
-                        file7 = False
                         xosc_ok = False
                         file9 = False
                         for obj2 in oss2.ObjectIterator(bucket, prefix=prefix + '/'):
@@ -77,27 +77,38 @@ if __name__ == '__main__':
                                 file2 = True
                             if '/objects_pji.csv' in str(obj2.key):
                                 file3 = True
-                            if '/pcd_overlook.mp4' in str(obj2.key):
-                                pcd_ok = True
                             if '/drive.csv' in str(obj2.key):
                                 file5 = True
-                            if '/scenario_orig.mp4' in str(obj2.key):
-                                file7 = True
                             if '/trajectory_pji.csv' in str(obj2.key):
                                 file9 = True
-                        if file1 or not file2 or not file3 or not file5 or not file7 or not file9:
+                            if '/pcd_overlook.mp4' in str(obj2.key):
+                                pcd_ok = True
+                            if '/scenario_hmi.xosc' in str(obj2.key):
+                                xosc_ok = True
+                        if file1 or not file2 or not file3 or not file5 or not file9:
                             continue
                         if not pcd_ok:
-                            pcd_ok,xosc_ok = judge_pcd_xosc(str(obj1.key))
+                            pcd_ok,temp = judge_pcd_xosc(str(obj1.key))
                             if not pcd_ok:
                                 continue
+                        if not xosc_ok:
+                            temp,xosc_ok = judge_pcd_xosc(str(obj1.key))
                             if not xosc_ok:
                                 continue
                         time.sleep(1)
                         logging.info("发送:%s", prefix)
                         json_content = bucket.get_object(str(obj1.key)).read()
                         json_object = json.loads(json_content)
-                        data1 = {"equipmentNo": json_object['equipmentNo'],"secretKey": json_object['secretKey']}
+                        if  'secretKey' not in json_object:
+                            logging.warning("缺少'secretKey'键")
+                            data1 = {
+                                "equipmentNo": json_object['equipmentNo'],
+                                "secretKey": prefix.split('/')[1].split('-')[1]
+                            }
+                            logging.info("数据已处理:%s", data1)
+                        else:
+                            data1 = {"equipmentNo": json_object['equipmentNo'],"secretKey": json_object['secretKey']}
+                            # 如果任何一个键不存在,则记录日志或执行其他错误处理
                         json_data1 = json.dumps(data1)
                         logging.info("授权接口请求中: %s" % url1_private)
                         logging.info("授权发送参数为: %s" % str(data1))
@@ -114,7 +125,21 @@ if __name__ == '__main__':
                         old_ros_bag_path = json_object['rosBagPath']
                         task_id = json_object['taskId']
                         trigger_id = json_object['triggerId']
-                        check = json_object['check']
+                        check = []
+                        # 检查 'check' 键的值是列表还是字符串
+                        if 'check' in json_object:
+                            if isinstance(json_object['check'], list):
+                                # 如果 'check' 是列表,则直接使用它(或者根据需要处理)
+                                check = json_object['check']  # 如果不需要修改列表,可以直接赋值
+                            elif isinstance(json_object['check'], basestring):
+                                # 如果 'check' 是字符串,则将其添加到空列表中
+                                check = [json_object['check']]
+                            else:
+                                # 如果 'check' 不是列表也不是字符串,记录日志或进行其他错误处理
+                                logging.warning("'check' 的类型不是列表也不是字符串,类型为:%s", type(json_object['check']))
+                        else:
+                            # 如果 'check' 键不存在,记录日志或进行其他错误处理
+                            logging.warning("'check' 键在 json_object 中不存在")
                         check_order = ['自车数据缺失', '不在道路范围', '无规划路径', '目标点缺失','点云缺失', '点云丢帧', '解析程序错误', '还原程序错误', '评价程序错误']
                         check_order_dict = dict((item, idx) for idx, item in enumerate(check_order))
                         check = sorted(check, key=lambda x: check_order_dict.get(x, float('inf')))

+ 65 - 1
src/python2/pjibot_patrol/csv-errorBag.json

@@ -1,4 +1,68 @@
 [
     "pjibot_patrol/pjibot-P1YVXJ1M231M00022/data_parse/2024-08-01-17-28-27_1038/", 
-    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-23-25/"
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-23-25/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00022/data_parse/2024-09-14-17-43-12/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-22-52/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-24-26/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-25-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-26-04/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-20-32/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-21-16/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-22-22/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-23-36/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-24-05/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-35-14/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-36-59/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-37-34/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-38-10/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-46-02/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-46-52/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-47-29/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-48-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-48-57/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-50-02/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-50-34/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-51-12/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-54-04/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-54-47/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-55-28/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-56-17/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-57-13/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-57-56/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-58-29/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-59-09/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-02-35/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-03-33/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-04-27/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-05-30/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-29-13/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-31-55/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-33-54/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-36-11/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-39-18/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-40-33/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-52-37/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-53-24/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-54-22/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-02-07/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-04-24/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-05-18/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-07-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-08-12/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-07-41/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-24-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-26-11/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-27-41/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-29-01/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-30-19/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-04-31/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-06-59/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-10-38/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-11-44/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-17-53/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-19-41/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-20-50/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-21-47/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-25-17/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-27-48/"
 ]

+ 16 - 8
src/python2/pjibot_patrol/csv-pjibot_patrol.py

@@ -26,6 +26,7 @@ error_bag_json = "/mnt/disk001/dcl_data_process/src/python2/pjibot_patrol/csv-er
 # ------- 全局配置 -------
 
 
+    
 def parse_csv(data_bag, parse_prefix, local_parse_dir, local_delete_list):
     try:
         bagtocsv_robot.parse(data_bag, local_parse_dir + '/csv/')
@@ -72,14 +73,18 @@ def parse_csv(data_bag, parse_prefix, local_parse_dir, local_delete_list):
             logging.error("没有 ego_pji.csv")
             json_utils.add_error(parse_prefix,error_bag_json)
 
-        csv_file_name3 = 'targetposition'
-        local_csv_file_path3 = str(local_csv_dir) + '/' + str(csv_file_name3) + '.csv'
-        oss_csv_object_key3 = parse_prefix + csv_file_name3 + '.csv'
-        if os.path.exists(local_csv_file_path3):
-            bucket.put_object_from_file(oss_csv_object_key3, local_csv_file_path3)
-        else:
-            logging.error("没有 targetposition.csv")
+        if '目标点缺失' in outputs:
+            logging.error("报错【目标点缺失】,不上传targetposition.csv了")
             json_utils.add_error(parse_prefix,error_bag_json)
+        else:
+            csv_file_name3 = 'targetposition'
+            local_csv_file_path3 = str(local_csv_dir) + '/' + str(csv_file_name3) + '.csv'
+            oss_csv_object_key3 = parse_prefix + csv_file_name3 + '.csv'
+            if os.path.exists(local_csv_file_path3):
+                bucket.put_object_from_file(oss_csv_object_key3, local_csv_file_path3)
+            else:
+                logging.error("没有 targetposition.csv")
+                json_utils.add_error(parse_prefix,error_bag_json)
 
         csv_file_name4 = 'objects_pji'
         local_csv_file_path4 = str(local_csv_dir) + '/' + str(csv_file_name4) + '.csv'
@@ -160,6 +165,7 @@ if __name__ == '__main__':
                                                                                                           '/')  # data_parse 目录
                     csv1_done = False
                     csv2_done = False
+                    csv3_done = False
                     csv4_done = False
                     csv5_done = False
                     for obj2 in oss2.ObjectIterator(bucket, prefix=parse_prefix_full): # 判断 data_parse 目录下是否有解析后的文件
@@ -167,11 +173,13 @@ if __name__ == '__main__':
                             csv1_done = True
                         if '/ego_pji.csv' in str(obj2.key):
                             csv2_done = True
+                        if '/targetposition.csv' in str(obj2.key):
+                            csv3_done = True
                         if '/objects_pji.csv' in str(obj2.key):
                             csv4_done = True
                         if '/drive.csv' in str(obj2.key):
                             csv5_done = True
-                    if csv1_done and csv2_done and csv4_done and csv5_done:
+                    if csv1_done and csv2_done and csv3_done and csv4_done and csv5_done:
                         continue
                     error_bag_list = json_utils.parse_json_to_string_array(error_bag_json)
                     if parse_prefix_full in error_bag_list:

+ 3 - 0
src/python2/pjibot_patrol/pcd-errorBag.json

@@ -0,0 +1,3 @@
+[
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00022/data_parse/2024-08-01-17-28-27_1038/"
+]

+ 20 - 0
src/python2/pjibot_patrol/pcd-pjibot_patrol.py

@@ -28,6 +28,26 @@ def parse_to_pcd_mp4(merged_bag_file_path, parse_prefix2, local_parse_dir, local
         local_mp4_path = str(local_pcd_mp4_dir) + '/'+pcd_mp4_file_name+'.mp4'
         oss_csv_object_key3 = parse_prefix2 + pcd_mp4_file_name + '.mp4'
         bucket.put_object_from_file(oss_csv_object_key3, local_mp4_path)
+        if not os.path.exists(local_mp4_path):
+            # ------- 处理 output.json - 开始 -------
+            try:
+                # 2 将 output.json 添加到 callback.json 的 check 字段
+                callback_json_oss_key = parse_prefix+'callback.json'
+                callback_json_local = local_parse_dir+'/callback.json'
+                bucket.get_object_to_file(callback_json_oss_key, callback_json_local)
+                with io.open(callback_json_local, 'r', encoding='utf-8') as f:
+                    data = json.load(f)
+                if 'check' not in data:
+                    data['check'] = []
+                data['check'].extend(['点云缺失'])
+                data['check'] = list(set(data['check'])) # 去重
+                json_data = json.dumps(data, ensure_ascii=False, indent=4)
+                with io.open(callback_json_local, 'w', encoding='utf-8') as f:
+                    f.write(unicode(json_data))
+                bucket.put_object_from_file(callback_json_oss_key, callback_json_local)
+            except Exception as e3:
+                pass
+            # ------- 处理 output.json - 结束 -------
         logging.info("上传点云视频到: %s", oss_csv_object_key3)
         local_delete_list.append(local_mp4_path)
     except Exception as e:

+ 5 - 8
src/python2/pjibot_patrol/simulation-pjibot_patrol.py

@@ -69,15 +69,12 @@ def upload_simulation(parse_prefix, mp41):
         logging.info('上传仿真视频到 %s' % parse_prefix + 'scenario_orig.mp4')
         shutil.rmtree(path1)  # 仿真完就删除
     except Exception as e:
-        error_bag_list = json_utils.parse_json_to_string_array(error_bag_json)
-        error_bag_list.append(parse_prefix)
-        json_utils.list_to_json_file(error_bag_list, error_bag_json)
         logging.exception("上传视频报错 %s" % str(e))
 
 
 def simulation(parse_prefix, mp41):
     try:
-        os.system("docker start "+container_name)
+        os.system('docker start '+container_name)
         # 实例化Docker客户端
         client = docker.from_env()
         while True:
@@ -109,6 +106,10 @@ def is_upload_completed(bucket, prefix):
 
 # ------- 获取合并之后的bag包,解析出csv -------
 if __name__ == '__main__':
+    # 1 创建阿里云对象
+    auth = oss2.Auth('n8glvFGS25MrLY7j', 'xZ2Fozoarpfw0z28FUhtg8cu0yDc5d')
+    endpoint = 'oss-cn-beijing-gqzl-d01-a.ops.gqzl-cloud.com'
+    bucket = oss2.Bucket(auth, endpoint, 'pji-bucket1')
     while True:
         try:
             logging.info("开始新一轮扫描")
@@ -135,9 +136,6 @@ if __name__ == '__main__':
                             continue
                         if mp4_done:
                             continue
-                        error_bag_list = json_utils.parse_json_to_string_array(error_bag_json)
-                        if str(parse_prefix_full) in error_bag_list:
-                            continue
                         logging.info("需要生成仿真视频: %s" % str(parse_prefix_full))
                         parse_prefix_full = str(parse_prefix_full)
                         local_dir_full = path1 + parse_prefix_full
@@ -152,7 +150,6 @@ if __name__ == '__main__':
                         simulation(parse_prefix_full, root_path1 + 'simulation.mp4')
                 except Exception as e:
                     logging.exception("局部异常处理: %s", str(e))
-            # 删除本地临时文件
             time.sleep(sleep_time)
         except Exception as e:
             logging.exception("全局异常处理: %s", str(e))

+ 59 - 1
src/python2/pjibot_patrol/xosc-errorBag.json

@@ -1,4 +1,62 @@
 [
     "pjibot_patrol/pjibot-P1YVXJ1M231M00022/data_parse/2024-08-01-17-28-27_1038/", 
-    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-23-25/"
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-23-25/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-22-52/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-24-26/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-25-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Locate-2024-10-18-16-26-04/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-20-32/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-21-16/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-22-22/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-23-36/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-14-15-24-05/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-35-14/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-36-59/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-37-34/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-38-10/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-46-02/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-46-52/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-47-29/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-48-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-48-57/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-50-02/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-50-34/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-51-12/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-54-04/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-54-47/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-55-28/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-56-17/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-57-13/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-57-56/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-58-29/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-10-59-09/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-02-35/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-03-33/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-04-27/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-Perception2024-11-15-11-05-30/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-29-13/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-31-55/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-33-54/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-36-11/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-39-18/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-40-33/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-52-37/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-53-24/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-54-22/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-dock-2024-10-18-16-55-21/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-02-07/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-04-24/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-05-18/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-06-02/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-07-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-10-18-17-08-12/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-07-41/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-24-15/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-26-11/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-27-41/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-29-01/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-11-30-19/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-04-31/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-10-38/", 
+    "pjibot_patrol/pjibot-P1YVXJ1M231M00023/data_parse/VP100M23-BJ-movebase-2024-11-15-14-11-44/"
 ]

+ 1 - 1
src/python2/pjibot_patrol/xosc-pjibot_patrol.py

@@ -74,7 +74,7 @@ def generate_xosc(parse_prefix, local_parse_dir, local_delete_list):
     except Exception as e:
         json_utils.add_error(parse_prefix,error_bag_json)
         logging.exception("生成xosc报错: %s" % str(e))
-
+        
 if __name__ == '__main__':
     while True:
         try: