diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/LaunchConditionData.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/LaunchConditionData.java index 5cb6b0df08..8a435ddcfe 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/LaunchConditionData.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/LaunchConditionData.java @@ -9,6 +9,8 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.util.List; + import chassis.Chassis; import chassis.ChassisStatesOuterClass; import fsm.Fsm2024; @@ -149,16 +151,16 @@ public class LaunchConditionData { array.put(chassisStatesObject); } if (statusInfo != null) { - arrayPut(array, statusInfo); + arrayPutSSM1(array, statusInfo); } if (ssmInfo != null) { - arrayPut(array, ssmInfo); - } - if (fsmStatusReasonRespond != null) { - arrayPut(array, fsmStatusReasonRespond); + arrayPutSSM2(array, ssmInfo); } +// if (fsmStatusReasonRespond != null) { +// arrayPut(array, fsmStatusReasonRespond); +// } if (fsmState != null) { - arrayPut(array, fsmState); + arrayPutFSM(array, fsmState); } if (array.length() > 0) { jsonObject.put("data", array); @@ -169,14 +171,53 @@ public class LaunchConditionData { return jsonObject.toString(); } - private void arrayPut(JSONArray array, String name, boolean isReady, String reason) throws JSONException { + private void arrayPutSSM1(JSONArray array, SystemStatusInfo.StatusInfo ssmInfo) throws JSONException { JSONObject objectParse = new JSONObject(); - objectParse.put("auto_pilot_ready", isReady); - if (reason != null) { - objectParse.put("auto_pilot_unready_reason", reason); - } + objectParse.put("map_version", ssmInfo.getMapVersion()); + objectParse.put("master_version", ssmInfo.getMasterVersion()); + objectParse.put("auto_pilot_ready", ssmInfo.getAutoPilotReady()); + objectParse.put("auto_pilot_unready_reason", ssmInfo.getAutoPilotUnreadyReason()); JSONObject object = new JSONObject(); - object.put("name", name); + object.put("name", ssmInfo.getClass().getName()); + object.put("parse", objectParse); + array.put(object); + } + + private void arrayPutSSM2(JSONArray array, SsmInfo.SsmStatusInf ssmInfo) throws JSONException { + JSONObject objectParse = new JSONObject(); + objectParse.put("map_version", ssmInfo.getMapVersion()); + objectParse.put("master_version", ssmInfo.getMasterVersion()); + objectParse.put("auto_pilot_ready", ssmInfo.getAutoPilotReady()); + List autoPilotUnreadyList = ssmInfo.getAutoPilotUnreadyListList(); + if (!autoPilotUnreadyList.isEmpty()) { + JSONArray arr = new JSONArray(); + for (SsmInfo.NodeInf inf : autoPilotUnreadyList) { + arr.put(TextFormat.printer().escapingNonAscii(false).printToString(inf)); + } + objectParse.put("auto_pilot_unready_list", arr); + }else { + objectParse.put("auto_pilot_unready_list", "null"); + } + + objectParse.put("auto_pilot_unready_reason", ssmInfo.getAutoPilotUnreadyReason()); + JSONObject object = new JSONObject(); + object.put("name", ssmInfo.getClass().getName()); + object.put("parse", objectParse); + array.put(object); + } + + private void arrayPutFSM(JSONArray array, Fsm2024.FSMStateMsg fsmState) throws JSONException { + JSONObject objectParse = new JSONObject(); + objectParse.put("header", TextFormat.printer().escapingNonAscii(false).printToString(fsmState.getHeader())); + objectParse.put("function_state", fsmState.getFunctionState()); + objectParse.put("fsm_safety_stop_mode", fsmState.getFsmSafetyStopMode()); + objectParse.put("active_mode", fsmState.getActiveMode()); + objectParse.put("pilot_standby_flag", fsmState.getPilotStandbyFlag()); + objectParse.put("pilot_not_standby_reason", fsmState.getPilotNotStandbyReason()); + objectParse.put("fail_to_pilot_session_id", fsmState.getFailToPilotSessionId()); + objectParse.put("abnormal_state_trans_reason", fsmState.getAbnormalStateTransReason()); + JSONObject object = new JSONObject(); + object.put("name", fsmState.getClass().getName()); object.put("parse", objectParse); array.put(object); }