|
@@ -0,0 +1,126 @@
|
|
|
+from hub import methods, Global
|
|
|
+
|
|
|
+import threading
|
|
|
+import traceback
|
|
|
+import time
|
|
|
+import json
|
|
|
+import os
|
|
|
+
|
|
|
+from lib.UserWorkRecord import UserWorkRecord
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+save_dir = r'C:\logs'
|
|
|
+
|
|
|
+
|
|
|
+class LocalClass(object):
|
|
|
+ last_log_key = str()
|
|
|
+
|
|
|
+
|
|
|
+def method_v001(client, userdata, message):
|
|
|
+ """消息处理方法"""
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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
|
|
|
+
|
|
|
+
|
|
|
+ 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
|
|
|
+
|
|
|
+
|
|
|
+ log_list = [
|
|
|
+
|
|
|
+ f"timestamp: {methods.ts_to_string(log_time)}",
|
|
|
+ f"topic: Vehicle/ControlVehicle/Veh001",
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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')}",
|
|
|
+
|
|
|
+ ]
|
|
|
+
|
|
|
+
|
|
|
+ log_key = '-'.join(log_list[1:])
|
|
|
+ if LocalClass.last_log_key and LocalClass.last_log_key == log_key:
|
|
|
+
|
|
|
+ return
|
|
|
+
|
|
|
+
|
|
|
+ LocalClass.last_log_key = log_key
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ log_file_path = os.path.join(save_dir, f'{log_uuid}.log')
|
|
|
+ methods.write_text(log_file_path, ' | '.join(log_list) + '\n', 'a')
|
|
|
+
|
|
|
+
|
|
|
+def subscribe_Veh0533():
|
|
|
+ """"""
|
|
|
+ Global.emqx_Veh0533.start_subscribe_loop(
|
|
|
+ decorate_method=method_v001,
|
|
|
+ subscribe_topic='Vehicle/ControlVehicle/Veh0533'
|
|
|
+ )
|