casper před 1 měsícem
rodič
revize
2acc540d0f

+ 15 - 16
sri-pysdk/xclient/xmqtt.py

@@ -64,30 +64,29 @@ if __name__ == '__main__':
 
 
     # --- test subscribe ---
-    def m1(_, __, p3):
-        # print(f'#message: {p3.payload}')
-        print(f"#message.payload: {p3.payload}")
-        # print(f"#message.payload: {json.loads(p3.payload)}")
+    # def m1(_, __, p3):
+    #     # print(f'#message: {p3.payload}')
+    #     print(f"#message.payload: {p3.payload}")
+    #     # print(f"#message.payload: {json.loads(p3.payload)}")
 
 
     # subscribe_topic = 'bg/log'
     # subscribe_topic = 'qtmqtt'
     # subscribe_topic = 'client'
     # subscribe_topic = 'Vehicle/ControlVehicle/Veh001'
-    subscribe_topic = 'Cockpit/CanBus/CanId001/Cop001'
-    c1.start_subscribe_loop(decorate_method=m1, subscribe_topic=subscribe_topic)
+    # subscribe_topic = 'Cockpit/CanBus/CanId001/Cop001'
+    # c1.start_subscribe_loop(decorate_method=m1, subscribe_topic=subscribe_topic)
 
     # --- test publish ---
-    # while True:
-    #     data = {
-    #         'code': 1001,
-    #         '方向': 6000,
-    #         '刹车': 6000,
-    #         '油门': 8000,
-    #     }
-    #     # c1.publish_message('bg/log', json.dumps(data))
-    #     c1.publish_message('hs/vehicle/state', json.dumps(data))
-    #     time.sleep(3)
+    while True:
+        data = {
+            'code': 1001,
+        }
+        # topic = 'hs/vehicle/state'
+        # topic = 'Vehicle/ControlVehicle/Veh0533'
+        topic = 'Cockpit/CanBus/CanId001/Cop001'
+        c1.publish_message(topic, json.dumps(data))
+        time.sleep(3)
 
     # --- test publish ---
     # while True:

+ 1 - 0
sri-server-bg02/lib/MessageListener.py

@@ -7,6 +7,7 @@ import json
 import os
 
 
+
 class MessageListener:
     """
     """

+ 254 - 240
sri-server-bg02/lib/TopicListener.py

@@ -8,12 +8,255 @@ import os
 
 from lib.UserWorkRecord import UserWorkRecord
 
+class LocalClass(object):
+    last_log_key = str()
+
+def method_v001(_client, _userdata, message):
+    """消息处理方法"""
+    # --- debug ---
+    methods.debug_log(f"TopicListener|17", f"#message.payload: {message.payload}")
+    # return
+
+    # --- check ---
+    # if not methods.is_dir(Global.save_dir):
+    #     out = methods.run_command(f'mkdir -p {Global.save_dir}', callback=True)
+    #     methods.debug_log('MessageListener46', f"#out: {out}")
+
+    # --- check ---
+    try:
+        log_dict = json.loads(message.payload)
+        log_time = int(log_dict.get('timestamp')) / 1000
+        user_uuid = log_dict.get('userID')
+        vehicle_id = log_dict.get('VehicleID')
+        cockpit_id = log_dict.get('cockpitID')
+    except Exception as exception:
+        methods.debug_log("method_v001|41", f"#message.payload: {message.payload}")
+        methods.debug_log("method_v001|41", f"#exception: {exception.__class__.__name__}")
+        methods.debug_log("method_v001|41", f"#traceback: {traceback.format_exc()}")
+        return
+
+    # --- check ---
+    log_uuid = UserWorkRecord.get_log_uuid(user_uuid, log_time, vehicle_id, cockpit_id)
+    if not log_uuid:
+        methods.debug_log(f"MessageListenerV001|error50", f"user_uuid: {user_uuid}, log_time: {log_time}")
+        return
+
+    # --- fill log_list ---
+    log_list = [
+
+        f"timestamp: {methods.ts_to_string(log_time)}",  # 时间
+        f"topic: Vehicle/ControlVehicle/Veh001",  # 话题
+        # f"userID: {log_dict.get('userID')}",  # 用户id
+        # f"VehicleID: {log_dict.get('VehicleID')}",  # 车id
+        # f"cockpitID: {log_dict.get('cockpitID')}",  # 舱id
+
+        f"directSwitch: {log_dict.get('baseControl')[0].get('directSwitch')}",  # 前后切换
+        f"eStop: {log_dict.get('baseControl')[0].get('eStop')}",  # 急停开关
+        f"gearCaontrol: {log_dict.get('baseControl')[0].get('gearCaontrol')}",  # 车辆档位控制
+        f"hazardLight: {log_dict.get('baseControl')[0].get('hazardLight')}",  # 双闪灯
+        f"keyStatus: {log_dict.get('baseControl')[0].get('keyStatus')}",  # 钥匙状态
+        f"parkControl: {log_dict.get('baseControl')[0].get('parkControl')}",  # 驻车控制
+        f"silencedAlarm: {log_dict.get('baseControl')[0].get('silencedAlarm')}",  # 消报警音按钮
+        f"travelLight: {log_dict.get('baseControl')[0].get('travelLight')}",  # 行驶灯光
+        f"travelMode: {log_dict.get('baseControl')[0].get('travelMode')}",  # 驾驶模式
+        f"vehicleHorn: {log_dict.get('baseControl')[0].get('vehicleHorn')}",  # 喇叭
+
+        f"accPedalF: {log_dict.get('driveControl')[0].get('accPedal')[0].get('accPedalF')}",  # 油门踏板.手油门
+        f"accPedalH: {log_dict.get('driveControl')[0].get('accPedal')[0].get('accPedalH')}",  # 油门踏板.脚油门
+
+        f"accPedalH: {log_dict.get('driveControl')[0].get('brakePedal')}",  # 刹车踏板
+        f"steeringWheel: {log_dict.get('driveControl')[0].get('steeringWheel')}",  # 方向盘转速
+        f"turnMode: {log_dict.get('driveControl')[0].get('turnMode')}",  # 转向模式
+        f"turnSignal: {log_dict.get('driveControl')[0].get('turnSignal')}",  # 转向灯
+
+        f"errAccPedal: {log_dict.get('errCode')[0].get('errAccPedal')}",  # 油门信号故障
+        f"errBasOperation: {log_dict.get('errCode')[0].get('errBasOperation')}",  # 基本操作故障
+        f"errBrakePedal: {log_dict.get('errCode')[0].get('errBrakePedal')}",  # 刹车信号故障
+        f"errEndTool: {log_dict.get('errCode')[0].get('errEndTool')}",  # 末端工具控制故障
+        f"errHandle: {log_dict.get('errCode')[0].get('errHandle')}",  # 手柄信号故障
+        f"errOther: {log_dict.get('errCode')[0].get('errOther')}",  # 其他故障
+        f"errSteeringWheel: {log_dict.get('errCode')[0].get('errSteeringWheel')}",  # 转向故障
+
+        f"baseLegControl: {log_dict.get('taskControl')[0].get('baseLegControl')}",  # 支腿动作控制
+        f"baseLegSwitch: {log_dict.get('taskControl')[0].get('baseLegSwitch')}",  # 支腿选择开关
+        f"bypassSwitch: {log_dict.get('taskControl')[0].get('bypassSwitch')}",  # 旁通开关
+        f"cabLift: {log_dict.get('taskControl')[0].get('cabLift')}",  # 驾驶室升降机构
+        f"coopSignal: {log_dict.get('taskControl')[0].get('coopSignal')}",  # 协同作业信号
+        f"enableHydraulic: {log_dict.get('taskControl')[0].get('enableHydraulic')}",  # 液压使能开关
+        f"endJoint: {log_dict.get('taskControl')[0].get('endJoint')}",  # 末端关节控制
+        f"esCabLift: {log_dict.get('taskControl')[0].get('esCabLift')}",  # 驾驶室应急下降开关
+        f"suckerSelect: {log_dict.get('taskControl')[0].get('suckerSelect')}",  # 吸盘选择开关
+        f"taskJoint_1: {log_dict.get('taskControl')[0].get('taskJoint_1')}",  # 第一个作业关节控制
+        f"taskJoint_2: {log_dict.get('taskControl')[0].get('taskJoint_2')}",  # 第二个作业关节控制
+        f"taskJoint_3: {log_dict.get('taskControl')[0].get('taskJoint_3')}",  # 第三个作业关节控制
+        f"toolControl: {log_dict.get('taskControl')[0].get('toolControl')}",  # 末端工具控制
+        f"workLight: {log_dict.get('taskControl')[0].get('workLight')}",  # 工作灯
+
+    ]
+
+    # --- check ---
+    log_key = '-'.join(log_list[1:])
+    if LocalClass.last_log_key and LocalClass.last_log_key == log_key:
+        return
+
+    # --- update --
+    LocalClass.last_log_key = log_key
+
+    # --- save ---
+    # methods.debug_log(f"MessageListenerV001|113", f"#log_list: {log_list}")
+    log_file_path = os.path.join(Global.save_dir, f'{log_uuid}.log')
+    methods.write_text(log_file_path, ' | '.join(log_list) + '\n', 'a')
+
+
+
+
+def method_c001(_client, _userdata, message):
+    """消息处理方法"""
+    """
+    {
+        'basControl': {
+            'directSwitch': 1,
+            'eStop': 0,
+            'gearControl': 0,
+            'hazardLight': 0,
+            'keyStatus': 0,
+            'parkControl': 0,
+            'silencedAlarm': 0,
+            'travelLight': 2,
+            'travelMode': 0,
+            'vehicleHorn': 0
+        },
+        'driverControl': {
+            'accPedal': '0 AND 0 || 0 AND -1',
+            'brakePedal': '2 AND 2',
+            'steeringWheel': '1 AND 0',
+            'turnMode': 0,
+            'turnSignal': 0
+        },
+        'errCode': {
+            'errAccPedal': 0,
+            'errBasOperation': '',
+            'errBrakePedal': 0,
+            'errEndTool': 0,
+            'errHandle': 0,
+            'errOther': '',
+            'errSteeringWheel': 0
+        },
+        'taskControl': {
+            'baseLegControl': '103 AND 24',
+            'baseLegSwitch': 0,
+            'bypassSwitch': 0,
+            'cabLift': 0,
+            'coopSignal': 3,
+            'enableHydraulic': 1,
+            'endJoint': '1 AND 0',
+            'esCabLift': 0,
+            'suckerSelect': 0,
+            'taskJoint_1': '5 AND 0',
+            'taskJoint_2': '0 AND 0',
+            'taskJoint_3': '0 AND 0',
+            'toolControl': '0 AND 0',
+            'workLight': 0
+        },
+        'timeStamp': 576301601,
+        'userID': 'Ego',
+        'cockpitID': 'Cop001',
+        'vehicleID': '0538'
+    }
+    """
+    # --- debug ---
+    # methods.debug_log(f"TopicListener|168", f"#message.payload: {message.payload}")
+    # return
+
+    # --- check ---
+    try:
+        log_dict = json.loads(message.payload)
+    except Exception as exception:
+        methods.debug_log("method_c001|79", f"#message.payload: {message.payload}")
+        methods.debug_log("method_c001|79", f"#exception: {exception.__class__.__name__}")
+        methods.debug_log("method_c001|79", f"#traceback: {traceback.format_exc()}")
+        return
+
+    # --- check ---
+    # log_dict = json.loads(message.payload)
+    log_time = int(log_dict.get('timeStamp')) / 1000
+    user_uuid = log_dict.get('userID')
+    vehicle_id = log_dict.get('vehicleID')
+    cockpit_id = log_dict.get('cockpitID')
+    log_uuid = UserWorkRecord.get_log_uuid(user_uuid, log_time, vehicle_id, cockpit_id)
+    if not log_uuid:
+        methods.debug_log(f"MessageListenerC001|error92", f"user_uuid: {user_uuid}, log_time: {log_time}")
+        return
+
+    # --- fill log_list ---
+    log_list = [
+
+        f"timeStamp: {methods.ts_to_string(log_time)}",  # 时间
+        f"topic: Cockpit/CanBus/CanId001/Cop001",  # 话题
+        # f"userID: {log_dict.get('userID')}",  # 用户id
+        # f"cockpitID: {log_dict.get('cockpitID')}",  # 舱id
+        # f"vehicleID: {log_dict.get('vehicleID')}",  # 车id
+
+        f"directSwitch: {log_dict.get('basControl').get('directSwitch')}",
+        f"eStop: {log_dict.get('basControl').get('eStop')}",
+        f"gearControl: {log_dict.get('basControl').get('gearControl')}",
+        f"hazardLight: {log_dict.get('basControl').get('hazardLight')}",
+        f"keyStatus: {log_dict.get('basControl').get('keyStatus')}",
+        f"parkControl: {log_dict.get('basControl').get('parkControl')}",
+        f"silencedAlarm: {log_dict.get('basControl').get('silencedAlarm')}",
+        f"travelLight: {log_dict.get('basControl').get('travelLight')}",
+        f"travelMode: {log_dict.get('basControl').get('travelMode')}",
+        f"vehicleHorn: {log_dict.get('basControl').get('vehicleHorn')}",
+
+        f"accPedal: {log_dict.get('driverControl').get('accPedal').replace('||', 'OR')}",
+        f"brakePedal: {log_dict.get('driverControl').get('brakePedal')}",
+        f"steeringWheel: {log_dict.get('driverControl').get('steeringWheel')}",
+        f"turnMode: {log_dict.get('driverControl').get('turnMode')}",
+        f"turnSignal: {log_dict.get('driverControl').get('turnSignal')}",
+
+        f"errAccPedal: {log_dict.get('errCode').get('errAccPedal')}",
+        f"errBasOperation: {log_dict.get('errCode').get('errBasOperation')}",
+        f"errBrakePedal: {log_dict.get('errCode').get('errBrakePedal')}",
+        f"errEndTool: {log_dict.get('errCode').get('errEndTool')}",
+        f"errHandle: {log_dict.get('errCode').get('errHandle')}",
+        f"errOther: {log_dict.get('errCode').get('errOther')}",
+        f"errSteeringWheel: {log_dict.get('errCode').get('errSteeringWheel')}",
+
+        f"baseLegControl: {log_dict.get('taskControl').get('baseLegControl')}",
+        f"baseLegSwitch: {log_dict.get('taskControl').get('baseLegSwitch')}",
+        f"bypassSwitch: {log_dict.get('taskControl').get('bypassSwitch')}",
+        f"cabLift: {log_dict.get('taskControl').get('cabLift')}",
+        f"coopSignal: {log_dict.get('taskControl').get('coopSignal')}",
+        f"enableHydraulic: {log_dict.get('taskControl').get('enableHydraulic')}",
+        f"endJoint: {log_dict.get('taskControl').get('endJoint')}",
+        f"esCabLift: {log_dict.get('taskControl').get('esCabLift')}",
+        f"suckerSelect: {log_dict.get('taskControl').get('suckerSelect')}",
+        f"taskJoint_1: {log_dict.get('taskControl').get('taskJoint_1')}",
+        f"taskJoint_2: {log_dict.get('taskControl').get('taskJoint_2')}",
+        f"taskJoint_3: {log_dict.get('taskControl').get('taskJoint_3')}",
+        f"toolControl: {log_dict.get('taskControl').get('toolControl')}",
+        f"workLight: {log_dict.get('taskControl').get('workLight')}",
+
+    ]
+
+    # --- check ---
+    log_key = '-'.join(log_list[1:])
+    if LocalClass.last_log_key and LocalClass.last_log_key == log_key:
+        return
+
+    # --- update --
+    LocalClass.last_log_key = log_key
+
+    # --- save ---
+    # methods.debug_log(f"MessageListenerC001|158", f"#log_list: {log_list}")
+    log_file_path = os.path.join(Global.save_dir, f'{log_uuid}.log')
+    methods.write_text(log_file_path, ' | '.join(log_list) + '\n', 'a')
+
 
 class TopicListener:
     """
     """
 
-    # last_log_key = str()
 
     def __init__(self, subscribe_topic, method_name):
         self.subscribe_topic = subscribe_topic
@@ -21,247 +264,18 @@ class TopicListener:
 
     def subscribe(self):
 
-        last_log_key = str()
-
-        def method_c001(_client, _userdata, message):
-            """消息处理方法"""
-            """
-            {
-                'basControl': {
-                    'directSwitch': 1,
-                    'eStop': 0,
-                    'gearControl': 0,
-                    'hazardLight': 0,
-                    'keyStatus': 0,
-                    'parkControl': 0,
-                    'silencedAlarm': 0,
-                    'travelLight': 2,
-                    'travelMode': 0,
-                    'vehicleHorn': 0
-                },
-                'driverControl': {
-                    'accPedal': '0 AND 0 || 0 AND -1',
-                    'brakePedal': '2 AND 2',
-                    'steeringWheel': '1 AND 0',
-                    'turnMode': 0,
-                    'turnSignal': 0
-                },
-                'errCode': {
-                    'errAccPedal': 0,
-                    'errBasOperation': '',
-                    'errBrakePedal': 0,
-                    'errEndTool': 0,
-                    'errHandle': 0,
-                    'errOther': '',
-                    'errSteeringWheel': 0
-                },
-                'taskControl': {
-                    'baseLegControl': '103 AND 24',
-                    'baseLegSwitch': 0,
-                    'bypassSwitch': 0,
-                    'cabLift': 0,
-                    'coopSignal': 3,
-                    'enableHydraulic': 1,
-                    'endJoint': '1 AND 0',
-                    'esCabLift': 0,
-                    'suckerSelect': 0,
-                    'taskJoint_1': '5 AND 0',
-                    'taskJoint_2': '0 AND 0',
-                    'taskJoint_3': '0 AND 0',
-                    'toolControl': '0 AND 0',
-                    'workLight': 0
-                },
-                'timeStamp': 576301601,
-                'userID': 'Ego',
-                'cockpitID': 'Cop001',
-                'vehicleID': '0538'
-            }
-            """
-            # --- check ---
-            # methods.debug_log(f"method_c001|75", f"#message.payload: {message.payload}")
-            try:
-                log_dict = json.loads(message.payload)
-            except Exception as exception:
-                methods.debug_log("method_c001|79", f"#message.payload: {message.payload}")
-                methods.debug_log("method_c001|79", f"#exception: {exception.__class__.__name__}")
-                methods.debug_log("method_c001|79", f"#traceback: {traceback.format_exc()}")
-                return
-
-            # --- check ---
-            # log_dict = json.loads(message.payload)
-            log_time = int(log_dict.get('timeStamp')) / 1000
-            user_uuid = log_dict.get('userID')
-            vehicle_id = log_dict.get('vehicleID')
-            cockpit_id = log_dict.get('cockpitID')
-            log_uuid = UserWorkRecord.get_log_uuid(user_uuid, log_time, vehicle_id, cockpit_id)
-            if not log_uuid:
-                methods.debug_log(f"MessageListenerC001|error92", f"user_uuid: {user_uuid}, log_time: {log_time}")
-                return
-
-            # --- fill log_list ---
-            log_list = [
-
-                f"timeStamp: {methods.ts_to_string(log_time)}",  # 时间
-                f"topic: Cockpit/CanBus/CanId001/Cop001",  # 话题
-                # f"userID: {log_dict.get('userID')}",  # 用户id
-                # f"cockpitID: {log_dict.get('cockpitID')}",  # 舱id
-                # f"vehicleID: {log_dict.get('vehicleID')}",  # 车id
-
-                f"directSwitch: {log_dict.get('basControl').get('directSwitch')}",
-                f"eStop: {log_dict.get('basControl').get('eStop')}",
-                f"gearControl: {log_dict.get('basControl').get('gearControl')}",
-                f"hazardLight: {log_dict.get('basControl').get('hazardLight')}",
-                f"keyStatus: {log_dict.get('basControl').get('keyStatus')}",
-                f"parkControl: {log_dict.get('basControl').get('parkControl')}",
-                f"silencedAlarm: {log_dict.get('basControl').get('silencedAlarm')}",
-                f"travelLight: {log_dict.get('basControl').get('travelLight')}",
-                f"travelMode: {log_dict.get('basControl').get('travelMode')}",
-                f"vehicleHorn: {log_dict.get('basControl').get('vehicleHorn')}",
-
-                f"accPedal: {log_dict.get('driverControl').get('accPedal').replace('||', 'OR')}",
-                f"brakePedal: {log_dict.get('driverControl').get('brakePedal')}",
-                f"steeringWheel: {log_dict.get('driverControl').get('steeringWheel')}",
-                f"turnMode: {log_dict.get('driverControl').get('turnMode')}",
-                f"turnSignal: {log_dict.get('driverControl').get('turnSignal')}",
-
-                f"errAccPedal: {log_dict.get('errCode').get('errAccPedal')}",
-                f"errBasOperation: {log_dict.get('errCode').get('errBasOperation')}",
-                f"errBrakePedal: {log_dict.get('errCode').get('errBrakePedal')}",
-                f"errEndTool: {log_dict.get('errCode').get('errEndTool')}",
-                f"errHandle: {log_dict.get('errCode').get('errHandle')}",
-                f"errOther: {log_dict.get('errCode').get('errOther')}",
-                f"errSteeringWheel: {log_dict.get('errCode').get('errSteeringWheel')}",
-
-                f"baseLegControl: {log_dict.get('taskControl').get('baseLegControl')}",
-                f"baseLegSwitch: {log_dict.get('taskControl').get('baseLegSwitch')}",
-                f"bypassSwitch: {log_dict.get('taskControl').get('bypassSwitch')}",
-                f"cabLift: {log_dict.get('taskControl').get('cabLift')}",
-                f"coopSignal: {log_dict.get('taskControl').get('coopSignal')}",
-                f"enableHydraulic: {log_dict.get('taskControl').get('enableHydraulic')}",
-                f"endJoint: {log_dict.get('taskControl').get('endJoint')}",
-                f"esCabLift: {log_dict.get('taskControl').get('esCabLift')}",
-                f"suckerSelect: {log_dict.get('taskControl').get('suckerSelect')}",
-                f"taskJoint_1: {log_dict.get('taskControl').get('taskJoint_1')}",
-                f"taskJoint_2: {log_dict.get('taskControl').get('taskJoint_2')}",
-                f"taskJoint_3: {log_dict.get('taskControl').get('taskJoint_3')}",
-                f"toolControl: {log_dict.get('taskControl').get('toolControl')}",
-                f"workLight: {log_dict.get('taskControl').get('workLight')}",
-
-            ]
-
-            # --- check ---
-            log_key = '-'.join(log_list[1:])
-            if last_log_key and last_log_key == log_key:
-                # methods.debug_log(f"MessageListener24", f"#86: {last_log_key == log_key}")
-                return
-
-            # --- update --
-            last_log_key = log_key
-
-            # --- save ---
-            # methods.debug_log(f"MessageListenerC001|158", f"#log_list: {log_list}")
-            log_file_path = os.path.join(Global.save_dir, f'{log_uuid}.log')
-            methods.write_text(log_file_path, ' | '.join(log_list) + '\n', 'a')
-
-        def method_v001(client, userdata, message):
-            """消息处理方法"""
-            # --- log ---
-            # methods.debug_log(f"method_v001|26", f"#message.payload: {message.payload}")
-            # return
-
-            # --- check ---
-            # if not methods.is_dir(Global.save_dir):
-            #     out = methods.run_command(f'mkdir -p {Global.save_dir}', callback=True)
-            #     methods.debug_log('MessageListener46', f"#out: {out}")
-
-            # --- check ---
-            try:
-                log_dict = json.loads(message.payload)
-                log_time = int(log_dict.get('timestamp')) / 1000
-                user_uuid = log_dict.get('userID')
-                vehicle_id = log_dict.get('VehicleID')
-                cockpit_id = log_dict.get('cockpitID')
-            except Exception as exception:
-                methods.debug_log("method_v001|41", f"#message.payload: {message.payload}")
-                methods.debug_log("method_v001|41", f"#exception: {exception.__class__.__name__}")
-                methods.debug_log("method_v001|41", f"#traceback: {traceback.format_exc()}")
-                return
-
-            # --- check ---
-            log_uuid = UserWorkRecord.get_log_uuid(user_uuid, log_time, vehicle_id, cockpit_id)
-            if not log_uuid:
-                methods.debug_log(f"MessageListenerV001|error50", f"user_uuid: {user_uuid}, log_time: {log_time}")
-                return
-
-            # --- fill log_list ---
-            log_list = [
-
-                f"timestamp: {methods.ts_to_string(log_time)}",  # 时间
-                f"topic: Vehicle/ControlVehicle/Veh001",  # 话题
-                # f"userID: {log_dict.get('userID')}",  # 用户id
-                # f"VehicleID: {log_dict.get('VehicleID')}",  # 车id
-                # f"cockpitID: {log_dict.get('cockpitID')}",  # 舱id
-
-                f"directSwitch: {log_dict.get('baseControl')[0].get('directSwitch')}",  # 前后切换
-                f"eStop: {log_dict.get('baseControl')[0].get('eStop')}",  # 急停开关
-                f"gearCaontrol: {log_dict.get('baseControl')[0].get('gearCaontrol')}",  # 车辆档位控制
-                f"hazardLight: {log_dict.get('baseControl')[0].get('hazardLight')}",  # 双闪灯
-                f"keyStatus: {log_dict.get('baseControl')[0].get('keyStatus')}",  # 钥匙状态
-                f"parkControl: {log_dict.get('baseControl')[0].get('parkControl')}",  # 驻车控制
-                f"silencedAlarm: {log_dict.get('baseControl')[0].get('silencedAlarm')}",  # 消报警音按钮
-                f"travelLight: {log_dict.get('baseControl')[0].get('travelLight')}",  # 行驶灯光
-                f"travelMode: {log_dict.get('baseControl')[0].get('travelMode')}",  # 驾驶模式
-                f"vehicleHorn: {log_dict.get('baseControl')[0].get('vehicleHorn')}",  # 喇叭
-
-                f"accPedalF: {log_dict.get('driveControl')[0].get('accPedal')[0].get('accPedalF')}",  # 油门踏板.手油门
-                f"accPedalH: {log_dict.get('driveControl')[0].get('accPedal')[0].get('accPedalH')}",  # 油门踏板.脚油门
-
-                f"accPedalH: {log_dict.get('driveControl')[0].get('brakePedal')}",  # 刹车踏板
-                f"steeringWheel: {log_dict.get('driveControl')[0].get('steeringWheel')}",  # 方向盘转速
-                f"turnMode: {log_dict.get('driveControl')[0].get('turnMode')}",  # 转向模式
-                f"turnSignal: {log_dict.get('driveControl')[0].get('turnSignal')}",  # 转向灯
-
-                f"errAccPedal: {log_dict.get('errCode')[0].get('errAccPedal')}",  # 油门信号故障
-                f"errBasOperation: {log_dict.get('errCode')[0].get('errBasOperation')}",  # 基本操作故障
-                f"errBrakePedal: {log_dict.get('errCode')[0].get('errBrakePedal')}",  # 刹车信号故障
-                f"errEndTool: {log_dict.get('errCode')[0].get('errEndTool')}",  # 末端工具控制故障
-                f"errHandle: {log_dict.get('errCode')[0].get('errHandle')}",  # 手柄信号故障
-                f"errOther: {log_dict.get('errCode')[0].get('errOther')}",  # 其他故障
-                f"errSteeringWheel: {log_dict.get('errCode')[0].get('errSteeringWheel')}",  # 转向故障
-
-                f"baseLegControl: {log_dict.get('taskControl')[0].get('baseLegControl')}",  # 支腿动作控制
-                f"baseLegSwitch: {log_dict.get('taskControl')[0].get('baseLegSwitch')}",  # 支腿选择开关
-                f"bypassSwitch: {log_dict.get('taskControl')[0].get('bypassSwitch')}",  # 旁通开关
-                f"cabLift: {log_dict.get('taskControl')[0].get('cabLift')}",  # 驾驶室升降机构
-                f"coopSignal: {log_dict.get('taskControl')[0].get('coopSignal')}",  # 协同作业信号
-                f"enableHydraulic: {log_dict.get('taskControl')[0].get('enableHydraulic')}",  # 液压使能开关
-                f"endJoint: {log_dict.get('taskControl')[0].get('endJoint')}",  # 末端关节控制
-                f"esCabLift: {log_dict.get('taskControl')[0].get('esCabLift')}",  # 驾驶室应急下降开关
-                f"suckerSelect: {log_dict.get('taskControl')[0].get('suckerSelect')}",  # 吸盘选择开关
-                f"taskJoint_1: {log_dict.get('taskControl')[0].get('taskJoint_1')}",  # 第一个作业关节控制
-                f"taskJoint_2: {log_dict.get('taskControl')[0].get('taskJoint_2')}",  # 第二个作业关节控制
-                f"taskJoint_3: {log_dict.get('taskControl')[0].get('taskJoint_3')}",  # 第三个作业关节控制
-                f"toolControl: {log_dict.get('taskControl')[0].get('toolControl')}",  # 末端工具控制
-                f"workLight: {log_dict.get('taskControl')[0].get('workLight')}",  # 工作灯
-
-            ]
-
-            # --- check ---
-            log_key = '-'.join(log_list[1:])
-            if last_log_key and last_log_key == log_key:
-                # methods.debug_log(f"MessageListener24", f"#86: {last_log_key == log_key}")
-                return
-
-            # --- update --
-            last_log_key = log_key
-
-            # --- save ---
-            # methods.debug_log(f"MessageListenerV001|113", f"#log_list: {log_list}")
-            log_file_path = os.path.join(Global.save_dir, f'{log_uuid}.log')
-            methods.write_text(log_file_path, ' | '.join(log_list) + '\n', 'a')
+
+        
+        if self.method_name == 'method_v001':
+            method = method_v001
+        elif self.method_name == 'method_c001':
+            method = method_c001
+        else:
+            method = None
+
 
         client = Global.emqx_factory.Client(host=Global.emqx_host, port=Global.emqx_port)
         client.start_subscribe_loop(
-            decorate_method=getattr(locals(), self.method_name, None),
+            decorate_method=method,
             subscribe_topic=self.subscribe_topic
         )