From afd0ccecf9e7f10c6062a90970eafb20fa50f30c Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 19 Apr 2023 19:23:31 +0800 Subject: [PATCH] =?UTF-8?q?[dev2.15.0][adas]=E6=B7=BB=E5=8A=A0=E5=BC=B1?= =?UTF-8?q?=E7=BD=91=E5=87=8F=E9=80=9F=E5=81=9C=E8=BD=A6=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E5=BC=80=E5=85=B3=E3=80=81=E6=B7=BB=E5=8A=A0=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=AF=B7=E6=B1=82=E5=92=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=8E=B7=E5=8F=96=E5=BA=94=E7=AD=94=E5=9B=9E?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/adas/client/DataDistribution.java | 13 ++++ .../com/zhidao/adas/client/bean/SendCmd.java | 16 +++++ .../zhidao/adas/client/ui/InfoFragment.java | 4 +- .../zhidao/adas/client/ui/MainActivity.java | 12 ++++ .../zhidao/adas/client/ui/SendCmdDialog.java | 6 ++ .../zhidao/adas/client/utils/Constants.java | 2 + .../autopilot/MoGoAutopilotControlProvider.kt | 35 ++++++++++ .../autopilot/adapter/MoGoAdasListenerImpl.kt | 12 ++++ .../IMoGoAutopilotControlProvider.kt | 27 +++++++- .../CallerAutoPilotControlManager.kt | 30 +++++++++ .../src/main/proto/message_pad.proto | 39 +++++++---- .../src/main/proto/param_set_cmd.proto | 2 +- .../zhidao/support/adas/high/AdasChannel.java | 67 +++++++++++++++++-- .../zhidao/support/adas/high/AdasManager.java | 34 ++++++++++ .../support/adas/high/IAdasNetCommApi.java | 24 +++++++ .../support/adas/high/OnAdasListener.java | 11 +++ .../support/adas/high/common/Constants.java | 14 ++++ .../support/adas/high/common/Define.java | 8 +++ .../support/adas/high/common/MessageType.java | 2 + .../adas/high/msg/GetParamRespMessage.java | 32 +++++++++ .../adas/high/msg/MyMessageFactory.java | 7 ++ 21 files changed, 373 insertions(+), 24 deletions(-) create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/GetParamRespMessage.java diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java index c2bf8cd3a5..1ca2dffaad 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java @@ -52,9 +52,11 @@ public class DataDistribution { } return INSTANCE; } + public void setResId(int resId) { this.resId = resId; } + public void registerAdasClientListener(Pair listener) { this.listener = listener; } @@ -120,6 +122,7 @@ public class DataDistribution { public final List listObuMap = new ArrayList<>(); public final List listV2nCongestionEvent = new ArrayList<>(); public final List listV2nGlobalPathEvents = new ArrayList<>(); + public final List listGetParamResp = new ArrayList<>(); private long listTrajectorySize = 0; private long listTrackedObjectsSize = 0; @@ -150,6 +153,7 @@ public class DataDistribution { private long listObuMapSize = 0; private long listV2nCongestionEventSize = 0; private long listV2nGlobalPathEventsSize = 0; + private long listGetParamRespSize = 0; public void clearCount() { listTrajectorySize = 1; @@ -181,6 +185,7 @@ public class DataDistribution { listObuMapSize = 1; listV2nCongestionEventSize = 1; listV2nGlobalPathEventsSize = 1; + listGetParamRespSize = 1; } public String cutDown(String str) { @@ -393,6 +398,14 @@ public class DataDistribution { if (listener != null && Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS.equals(listener.first)) { listener.second.onRefresh(); } + } else if (messageType == MessagePad.MessageType.MsgTypeGetParamResp) { + listGetParamResp.add(0, new DataShow(listGetParamRespSize++, time + str)); + if (listGetParamResp.size() > LIST_SIZE) { + listGetParamResp.remove(listGetParamResp.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_GET_PARAM_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } } else if (data instanceof PerceptionTrafficLight) { listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str)); if (listPerceptionTrafficLight.size() > LIST_SIZE) { diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SendCmd.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SendCmd.java index 0eb66f7f6c..c428773481 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SendCmd.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SendCmd.java @@ -99,6 +99,7 @@ public class SendCmd { cmds.add(new SendCmdOption("不使用地图限速功能", SendCmdOption.TAG.HADMAP_SPEED_LIMIT_VALID, 0)); return new SendCmd(Constants.TITLE.SEND_HADMAP_SPEED_LIMIT_VALID, cmds); } + //环岛模式开关 public static SendCmd getSendRampThetaValid() { List> cmds = new ArrayList<>(); @@ -106,4 +107,19 @@ public class SendCmd { cmds.add(new SendCmdOption("普通模式", SendCmdOption.TAG.RAMP_THETA_VALID, 0)); return new SendCmd(Constants.TITLE.SEND_RAMP_THETA_VALID, cmds); } + + //参数获取请求 + public static SendCmd getSendGetParamReq() { + List> cmds = new ArrayList<>(); + cmds.add(new SendCmdOption("获取全部", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.UNKNOWN, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.UNKNOWN)); + cmds.add(new SendCmdOption("绕障类功能开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING)); + cmds.add(new SendCmdOption("变道绕障的目标障碍物速度阈值", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING_SPEED, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.DETOURING_SPEED)); + cmds.add(new SendCmdOption("AEB开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.AEB, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.AEB)); + cmds.add(new SendCmdOption("限制绕障开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID)); + cmds.add(new SendCmdOption("停车让行线前避让等待开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.STOP_YIELD_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.STOP_YIELD_VALID)); + cmds.add(new SendCmdOption("地图限速功能开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID)); + cmds.add(new SendCmdOption("环岛模式开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.RAMP_THETA_VALID, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.RAMP_THETA_VALID)); + cmds.add(new SendCmdOption("弱网减速停车策略开关", com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN, com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN)); + return new SendCmd(Constants.TITLE.SEND_GET_PARAM_REQ, cmds); + } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java index def9da6227..fca90549b5 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java @@ -231,7 +231,9 @@ public class InfoFragment extends BaseFragment { adapter.setData(DataDistribution.getInstance().listV2nCongestionEvent); } else if (Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS.equals(title)) { adapter.setData(DataDistribution.getInstance().listV2nGlobalPathEvents); - } else { + }else if (Constants.TITLE.RECEIVE_GET_PARAM_RESP.equals(title)) { + adapter.setData(DataDistribution.getInstance().listGetParamResp); + } else { adapter.setData(DataDistribution.getInstance().listErrorData); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 6e706eaf3d..f795234fd4 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -833,6 +833,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_BACK_CAMERA_VIDEO); titleFragmentData.add(Constants.TITLE.RECEIVE_V2N_CONGESTION_EVENT); titleFragmentData.add(Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS); + titleFragmentData.add(Constants.TITLE.RECEIVE_GET_PARAM_RESP); titleFragmentData.add(Constants.TITLE.RECEIVE_WARN); titleFragmentData.add(Constants.TITLE.RECEIVE_ERROR); @@ -863,6 +864,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleBtnData.add(Constants.TITLE.SEND_PLANNING_CMD); titleBtnData.add(Constants.TITLE.SEND_BLIND_AREA); titleBtnData.add(Constants.TITLE.SEND_V2N_TO_PNC); + titleBtnData.add(Constants.TITLE.SEND_GET_PARAM_REQ); } private void initBtnRecyclerView() { @@ -1276,6 +1278,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas DataDistribution.getInstance().addData(base); } + @Override + public void onGetParamResp(@NonNull MessagePad.Header header, @NonNull MessagePad.SetParamReq getParamResp) { + ReceiveData base = new ReceiveData(header, getParamResp, sdf); + DataDistribution.getInstance().addData(base); + } + private void initAdas() { CupidLogUtils.e(TAG, "--->初始化"); AdasOptions options; @@ -1690,6 +1698,10 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas //环岛模式开关 new SendCmdDialog(this, SendCmd.getSendRampThetaValid()).show(); break; + case Constants.TITLE.SEND_GET_PARAM_REQ: + //获取参数 + new SendCmdDialog(this, SendCmd.getSendGetParamReq()).show(); + break; case Constants.TITLE.SEND_DETOURING_SPEED: //绕障速度设置 showDetouringSpeedDialog(); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/SendCmdDialog.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/SendCmdDialog.java index d21651b7a4..93fbe2ab5c 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/SendCmdDialog.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/SendCmdDialog.java @@ -112,6 +112,12 @@ public class SendCmdDialog extends Dialog { if (data.tag == SendCmdOption.TAG.RAMP_THETA_VALID) { AdasManager.getInstance().sendRampThetaValid((int) data.value); } + } else if (Constants.TITLE.SEND_GET_PARAM_REQ.equals(name)) { + if (data.tag == com.zhidao.support.adas.high.common.Constants.PARAM_TYPE.UNKNOWN) { + AdasManager.getInstance().sendGetAllParamReq(); + } else { + AdasManager.getInstance().sendGetParamReq((int) data.value); + } } } }); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java index fd9ddec2d7..86b863cee1 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java @@ -164,6 +164,7 @@ public class Constants { String RECEIVE_SWEEPER_TASK_INDEX_DATA = MessageType.TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA.desc; String RECEIVE_V2N_CONGESTION_EVENT = MessageType.TYPE_RECEIVE_V2N_CONGESTION_EVENT.desc; String RECEIVE_V2N_GLOBAL_PATH_EVENTS = MessageType.TYPE_RECEIVE_V2N_GLOBAL_PATH_EVENTS.desc; + String RECEIVE_GET_PARAM_RESP = MessageType.TYPE_RECEIVE_GET_PARAM_RESP.desc; // String RECEIVE_BASIC_INFO_REQ = "自动驾驶设备基础信息请求"; String TITLE_CAR_CONFIG_RESP = "工控机版本\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t配置"; @@ -208,6 +209,7 @@ public class Constants { String SEND_STOP_YIELD_VALID = "停车让行线前避让等待开关"; String SEND_HADMAP_SPEED_LIMIT_VALID = "地图限速开关"; String SEND_RAMP_THETA_VALID = "环岛模式开关"; + String SEND_GET_PARAM_REQ = "参数获取"; } } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index b2b2029787..339b5457a9 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -536,6 +536,41 @@ class MoGoAutopilotControlProvider : return AdasManager.getInstance().sendDetouringSpeed(speed) } + /** + * 弱网减速停车策略开关 + * isEnable = true 使用弱网减速停车策略 + * isEnable = false 关闭弱网减速停车策略 + * @return boolean + */ + override fun sendWeakNetSlowDown(isEnable: Boolean): Boolean { + return if(isEnable){ + AdasManager.getInstance().sendWeakNetSlowDown(1) + }else{ + AdasManager.getInstance().sendWeakNetSlowDown(0) + } + } + + /** + * 获取全部参数 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @return boolean + */ + override fun sendGetAllParamReq(): Boolean { + return AdasManager.getInstance().sendGetAllParamReq() + } + + /** + * 参数获取请求 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @param paramType 参数类型{@link com.zhidao.support.adas.high.common.Constants.PARAM_TYPE} + * @return boolean + */ + override fun sendGetParamReq(paramType: Int): Boolean { + return AdasManager.getInstance().sendGetParamReq(paramType) + } + /** * 获取数据采集录制模式配置列表 * @param reqType 0: all, 1:获取当前所有topic列表, 2:配置需要预加载的topic组合 diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index e63b201b23..649c663fe1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -676,6 +676,18 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerV2XListenerManager.dispatchV2nGlobalPathEvents(roadOverview.eventCount, construct, triangle, congestion, parkingViolation) } + /** + * 参数获取应答 + *

+ * 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(int)} + * 如果对应的value是空串,说明没有这个param或者get失败了。重启后值还是在redis里 + * + * @param header 头 + * @param getParamResp 配置参数 + */ + override fun onGetParamResp(header: MessagePad.Header, getParamResp: MessagePad.SetParamReq) { + } + /** * 是否可以启动自动驾驶 * 使用方法查看:app_ipc_monitoring/uiMainActivity/onAutopilotAbility diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt index eb5a03b877..23a5d037ea 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt @@ -2,8 +2,8 @@ package com.mogo.eagle.core.function.api.autopilot import chassis.SpecialVehicleTaskCmdOuterClass import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters -import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult +import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider /** @@ -179,6 +179,31 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider { */ fun sendDetouringSpeed(speed: Double): Boolean + /** + * 弱网减速停车策略开关 + * isEnable = true 使用弱网减速停车策略 + * isEnable = false 关闭弱网减速停车策略 + * @return boolean + */ + fun sendWeakNetSlowDown(isEnable: Boolean): Boolean + + /** + * 获取全部参数 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @return boolean + */ + fun sendGetAllParamReq(): Boolean + + /** + * 参数获取请求 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @param paramType 参数类型{@link com.zhidao.support.adas.high.common.Constants.PARAM_TYPE} + * @return boolean + */ + fun sendGetParamReq(paramType: Int): Boolean + /** * 获取数据采集录制模式配置列表 * @param reqType 0: all, 1:获取当前所有topic列表, 2:配置需要预加载的topic组合 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt index f5c5c16400..0051c23e40 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt @@ -254,6 +254,36 @@ object CallerAutoPilotControlManager { return providerApi?.sendDetouringSpeed(speed) } + /** + * 弱网减速停车策略开关 + * isEnable = true 使用弱网减速停车策略 + * isEnable = false 关闭弱网减速停车策略 + * @return boolean + */ + fun sendWeakNetSlowDown(isEnable: Boolean): Boolean? { + return providerApi?.sendWeakNetSlowDown(isEnable) + } + + /** + * 获取全部参数 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @return boolean + */ + fun sendGetAllParamReq(): Boolean? { + return providerApi?.sendGetAllParamReq() + } + + /** + * 参数获取请求 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @param paramType 参数类型{@link com.zhidao.support.adas.high.common.Constants.PARAM_TYPE} + * @return boolean + */ + fun sendGetParamReq(paramType: Int): Boolean? { + return providerApi?.sendGetParamReq(paramType) + } /** * 获取数据采集录制模式配置列表 * @param reqType 0: all, 1:获取当前所有topic列表, 2:配置需要预加载的topic组合 diff --git a/libraries/mogo-adas-data/src/main/proto/message_pad.proto b/libraries/mogo-adas-data/src/main/proto/message_pad.proto index a707584675..fd1991ca0e 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -64,6 +64,8 @@ enum MessageType MsgTypeSetParamReqV2 = 0x1011d; //设置参数命令V2 MsgTypeV2nCongestionEvent = 0x1011e; //主车附近拥堵事件推送, 透传 MsgTypeV2nGlobalPathEvents = 0x1011f; //主车路径全局事件推送, 透传 + MsgTypeGetParamReq = 0x10120; //参数获取请求 + MsgTypeGetParamResp = 0x10121; //参数获取应答 } message Header @@ -251,7 +253,7 @@ message BasicInfoReq { } -// message definition for MessageType: MsgTypeBasicInfoRsp +// message definition for MessageType: MsgTypeBasicInfoResp message BasicInfoResp { string sn = 1; @@ -312,6 +314,8 @@ message CarConfigResp double maxSpeedLimit = 6; //最大自动驾驶限速, 单位:m/s double minAcceleration = 7; //最小加速度, 单位:m/s² double maxAcceleration = 8; //最大加速度, 单位:m/s² + string carType = 9; //车辆类型 + string subCarType = 10; //车辆子类型 } // message definition for MsgTypeRecordCause @@ -502,19 +506,19 @@ enum DrivingState AUTO_LANE_CHANGE_RIGHT_RSI = 18; //V2N RSI主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 LANE_AVOID_LEFT_RSI = 19; //V2N RSI主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 LANE_AVOID_RIGHT_RSI = 20; //V2N RSI主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 - WAITING_RSI = 21; //V2N RSI正在等待变道避让施工场景: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶; + WAITING_RSI = 21; //V2N RSI正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶; AUTO_LANE_CHANGE_LEFT_RSM = 22; //V2N RSM主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 AUTO_LANE_CHANGE_RIGHT_RSM = 23; //V2N RSM主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 LANE_AVOID_LEFT_RSM = 24; //V2N RSM主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 LANE_AVOID_RIGHT_RSM = 25; //V2N RSM主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 - WAITING_RSM = 26; //V2N RSM正在等待变道避让静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶; + WAITING_RSM = 26; //V2N RSM正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶; - AUTO_LANE_CHANGE_LEFT_RSI_TRIANGLE = 27; //V2N 三角牌(道路事故)主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 - AUTO_LANE_CHANGE_RIGHT_RSI_TRIANGLE = 28; //V2N 三角牌(道路事故)主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 - LANE_AVOID_LEFT_RSI_TRIANGLE = 29; //V2N 三角牌(道路事故)主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 - LANE_AVOID_RIGHT_RSI_TRIANGLE = 30; //V2N 三角牌(道路事故)主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 - WAITING_RSI_TRIANGLE = 31; //V2N 正在等待变道避让三角牌(道路事故): driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶 + AUTO_LANE_CHANGE_LEFT_RSI_TRIANGLE = 27; //V2N 三角锥主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + AUTO_LANE_CHANGE_RIGHT_RSI_TRIANGLE = 28; //V2N 三角锥主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + LANE_AVOID_LEFT_RSI_TRIANGLE = 29; //V2N 三角锥主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + LANE_AVOID_RIGHT_RSI_TRIANGLE = 30; //V2N 三角锥主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + WAITING_RSI_TRIANGLE = 31; //V2N 三角锥正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶 } enum DrivingAction @@ -575,12 +579,13 @@ message PlanningActionMsg //message definition for MsgTypeSetParamReq message SetOneParam { - uint32 type = 1; // 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标碍物速度闻值(double,Ds) - // 3:AEB开关(bool) 0: 关闭自动紧急制动功能 1:启用自动紧急制动功能 - // 4:限制绕障开关(bool) 0:正常绕障 1:限制绕障 默认0 - // 5:停车让行线前避让等待开关(bool) 0:停车让行线前无需等待 1:停车让行线前需要等待 默认0 - // 6:地图限速功能开关(bol) :不使用地图限速功能 1:使用地图限速功能 默认0 - // 7:环岛模式开关(bool) //0:普通模式 1:环岛模式 默认0 + uint32 type = 1; // 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s) + // 3:AEB开关(bool) 0:关闭自动紧急制动功能 1:启用自动紧急制动功能 + // 4:限制绕障开关(bool) 0:正常绕障 1:限制绕障 默认0 + // 5:停车让行线前避让等待开关(bool) 0:停车让行线前无需等待 1:停车让行线前需要等待 默认0 + // 6:地图限速功能开关(bool) 0:不使用地图限速功能 1:使用地图限速功能 默认0 + // 7:环岛模式开关(bool) 0:普通模式 1:环岛模式 默认0 + // 8:弱网减速停车策略开关(bool) 0:关闭弱网减速停车策略 1:使用弱网减速停车策略 string value = 2; // 转成字符串的值 } @@ -643,3 +648,9 @@ message PlanningCmd //message definition for MsgTypeV2nGlobalPathEvents //refer to road_overview_events.proto for details +//message definition for MsgTypeGetParamReq +//复用 SetParamReq + +//message definition for MsgTypeGetParamResp +//复用 SetParamReq + diff --git a/libraries/mogo-adas-data/src/main/proto/param_set_cmd.proto b/libraries/mogo-adas-data/src/main/proto/param_set_cmd.proto index cce727e633..155cf621d4 100644 --- a/libraries/mogo-adas-data/src/main/proto/param_set_cmd.proto +++ b/libraries/mogo-adas-data/src/main/proto/param_set_cmd.proto @@ -4,7 +4,7 @@ package mogo.telematics; enum ParamSetType { ParamSetTypeNone = 0; - ParamSetTypeBlindArea = 1; //bool, :off 1:on + ParamSetTypeBlindArea = 1; //bool, 0:off 1:on ParamSetTypeV2N = 2; //bool, 0:不发给PnC 1:发给Pnc } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 5c51ac1801..b99696303c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -1541,7 +1541,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public boolean sendDetouring(int enable) { - return sendSetParamReq(1, String.valueOf(enable)); + return sendSetParamReq(Constants.PARAM_TYPE.DETOURING, String.valueOf(enable)); } /** @@ -1552,7 +1552,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public boolean sendDetouringSpeed(double speed) { - return sendSetParamReq(2, String.valueOf(speed)); + return sendSetParamReq(Constants.PARAM_TYPE.DETOURING_SPEED, String.valueOf(speed)); } /** @@ -1564,7 +1564,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public boolean sendAebCmd(int enable) { - return sendSetParamReq(3, String.valueOf(enable)); + return sendSetParamReq(Constants.PARAM_TYPE.AEB, String.valueOf(enable)); } /** @@ -1576,7 +1576,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public boolean sendLaneChangeRestrainValid(int enable) { - return sendSetParamReq(4, String.valueOf(enable)); + return sendSetParamReq(Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID, String.valueOf(enable)); } /** @@ -1588,7 +1588,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public boolean sendStopYieldValid(int enable) { - return sendSetParamReq(5, String.valueOf(enable)); + return sendSetParamReq(Constants.PARAM_TYPE.STOP_YIELD_VALID, String.valueOf(enable)); } @@ -1601,7 +1601,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public boolean sendHadmapSpeedLimitValid(int enable) { - return sendSetParamReq(6, String.valueOf(enable)); + return sendSetParamReq(Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID, String.valueOf(enable)); } /** @@ -1613,7 +1613,60 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public boolean sendRampThetaValid(int enable) { - return sendSetParamReq(7, String.valueOf(enable)); + return sendSetParamReq(Constants.PARAM_TYPE.RAMP_THETA_VALID, String.valueOf(enable)); + } + + /** + * 弱网减速停车策略开关 + * + * @param enable 0:关闭弱网减速停车策略 1:使用弱网减速停车策略 + * @return boolean + */ + @Override + public boolean sendWeakNetSlowDown(int enable) { + return sendSetParamReq(Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN, String.valueOf(enable)); + } + + /** + * 获取全部参数 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @return boolean + */ + @Override + public boolean sendGetAllParamReq() { + return sendGetParamReq(Constants.PARAM_TYPE.UNKNOWN); + } + + /** + * 参数获取请求 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @param paramType 参数类型{@link Constants.PARAM_TYPE} + * @return boolean + */ + @Override + public boolean sendGetParamReq(@Define.ParamType int paramType) { + MessagePad.SetParamReq req; + if (paramType == Constants.PARAM_TYPE.UNKNOWN) { + req = MessagePad.SetParamReq + .newBuilder() + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.DETOURING)) + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.DETOURING_SPEED)) + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.AEB)) + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID)) + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.STOP_YIELD_VALID)) + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID)) + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.RAMP_THETA_VALID)) + .addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN)) + .build(); + } else { + req = MessagePad.SetParamReq + .newBuilder() + .addReqs(MessagePad.SetOneParam.newBuilder().setType(paramType)) + .build(); + } + return sendPBMessage(MessageType.TYPE_SEND_GET_PARAM_REQ.typeCode, req.toByteArray()); } /** diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 9739478724..8732af2ce3 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -894,6 +894,40 @@ public class AdasManager implements IAdasNetCommApi { return mChannel != null && mChannel.sendRampThetaValid(enable); } + /** + * 弱网减速停车策略开关 + * + * @param enable 0:关闭弱网减速停车策略 1:使用弱网减速停车策略 + * @return boolean + */ + @Override + public boolean sendWeakNetSlowDown(int enable) { + return mChannel != null && mChannel.sendWeakNetSlowDown(enable); + } + + /** + * 获取全部参数 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @return boolean + */ + @Override + public boolean sendGetAllParamReq() { + return mChannel != null && mChannel.sendGetAllParamReq(); + } + + /** + * 参数获取请求 + * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)} + * + * @param paramType 参数类型{@link Constants.PARAM_TYPE} + * @return boolean + */ + @Override + public boolean sendGetParamReq(@Define.ParamType int paramType) { + return mChannel != null && mChannel.sendGetParamReq(paramType); + } + /** * 发生行程相关 * type=1或2的时 需要参数 lineName diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index 098546b240..9a3852d477 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -548,6 +548,30 @@ public interface IAdasNetCommApi { */ boolean sendRampThetaValid(int enable); + /** + * 弱网减速停车策略开关 + * + * @param enable 0:关闭弱网减速停车策略 1:使用弱网减速停车策略 + * @return boolean + */ + boolean sendWeakNetSlowDown(int enable); + + /** + * 获取全部参数 + * + * @return boolean + */ + boolean sendGetAllParamReq(); + + /** + * 参数获取请求 + * + * @param paramType + * @return boolean + */ + boolean sendGetParamReq(@Define.ParamType int paramType); + + /** * 发生行程相关 * type=1或2的时 需要参数 lineName diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java index cf7b382bd8..8baedd2c90 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java @@ -284,6 +284,17 @@ public interface OnAdasListener { */ void onV2nGlobalPathEvents(@NotNull MessagePad.Header header, @NotNull RoadOverviewEvents.RoadOverviewData roadOverview, @Nullable MogoV2X.RSI_PB construct, @Nullable MogoV2X.RSI_PB triangle, @Nullable MogoV2X.RSI_PB congestion, @Nullable MogoV2X.RSM_PB parkingViolation); + /** + * 参数获取应答 + *

+ * 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(int)} + * 如果对应的value是空串,说明没有这个param或者get失败了。重启后值还是在redis里 + * + * @param header 头 + * @param getParamResp 配置参数 + */ + void onGetParamResp(@NotNull MessagePad.Header header, @NotNull MessagePad.SetParamReq getParamResp); + /** * 是否有能力启动自动驾驶 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java index 503d7f8eb2..08670c2d31 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java @@ -120,4 +120,18 @@ public class Constants { int OLD_CHASSIS = 1;//老底盘 } + /** + * 参数类型 + */ + public interface PARAM_TYPE { + int UNKNOWN = -1; + int DETOURING = 1;//绕障类功能开关 + int DETOURING_SPEED = 2;//变道绕障的目标障碍物速度阈值 + int AEB = 3;//AEB开关 + int LANE_CHANGE_RESTRAIN_VALID = 4;//限制绕障开关 + int STOP_YIELD_VALID = 5;//停车让行线前避让等待开关 + int HADMAP_SPEED_LIMIT_VALID = 6;//地图限速功能开关 + int RAMP_THETA_VALID = 7;//环岛模式开关 + int WEAK_NET_SLOW_DOWN = 8;//弱网减速停车策略开关 + } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java index 598ccc3f8c..fe3064ddfa 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java @@ -54,4 +54,12 @@ public final class Define { @Retention(RetentionPolicy.SOURCE) public @interface AutopilotStartStatus { } + + @IntDef(flag = true, value = {Constants.PARAM_TYPE.DETOURING, Constants.PARAM_TYPE.DETOURING_SPEED, + Constants.PARAM_TYPE.AEB, Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID, + Constants.PARAM_TYPE.STOP_YIELD_VALID, Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID, + Constants.PARAM_TYPE.RAMP_THETA_VALID, Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN}) + @Retention(RetentionPolicy.SOURCE) + public @interface ParamType { + } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java index 1372784e3f..aacb85c6dd 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java @@ -62,6 +62,8 @@ public enum MessageType { TYPE_SEND_SET_PARAM_REQ_V2(MessagePad.MessageType.MsgTypeSetParamReqV2, "设置参数命令V2"), TYPE_RECEIVE_V2N_CONGESTION_EVENT(MessagePad.MessageType.MsgTypeV2nCongestionEvent, "主车附近事件推送"), TYPE_RECEIVE_V2N_GLOBAL_PATH_EVENTS(MessagePad.MessageType.MsgTypeV2nGlobalPathEvents, "主车路径全局事件推送"), + TYPE_SEND_GET_PARAM_REQ(MessagePad.MessageType.MsgTypeGetParamReq, "参数获取请求"), + TYPE_RECEIVE_GET_PARAM_RESP(MessagePad.MessageType.MsgTypeGetParamResp, "参数获取应答"), //TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释 TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"), TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, "清扫车指标数据"), diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/GetParamRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/GetParamRespMessage.java new file mode 100644 index 0000000000..8eb3299767 --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/GetParamRespMessage.java @@ -0,0 +1,32 @@ +package com.zhidao.support.adas.high.msg; + +import android.os.SystemClock; + +import com.google.protobuf.InvalidProtocolBufferException; +import com.zhidao.support.adas.high.AdasChannel; +import com.zhidao.support.adas.high.OnAdasListener; +import com.zhidao.support.adas.high.common.CupidLogUtils; +import com.zhidao.support.adas.high.protocol.RawData; + +import mogo.telematics.pad.MessagePad; + +/** + * 参数获取应答 + */ +public class GetParamRespMessage extends MyAbstractMessageHandler { + + @Override + public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { + MessagePad.SetParamReq getParamResp = MessagePad.SetParamReq.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); + AdasChannel.calculateTimeConsumingOnDispatchRaw("参数获取应答", raw.receiveTime); + long nowTime = 0; + if (CupidLogUtils.isEnableLog()) + nowTime = SystemClock.elapsedRealtime(); + if (adasListener != null) { + adasListener.onGetParamResp(raw.getHeader(), getParamResp); + } + AdasChannel.calculateTimeConsumingBusiness("参数获取应答", nowTime); +// CupidLogUtils.e("到站提醒--->" + arrivalNotification.toString()); + } + +} diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java index 00c6b36f15..bc5e40c1cf 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java @@ -40,6 +40,7 @@ public class MyMessageFactory implements IMyMessageFactory { private IMsg pointCloudMessage;//3D点云 private IMsg v2nCongestionEventMessage;//主车附近事件推送 private IMsg v2nGlobalPathEventsMessage;//主车路径全局事件推送 + private IMsg getParamRespMessage;//参数获取应答 private final AutopilotReview autopilotReview; @@ -211,6 +212,12 @@ public class MyMessageFactory implements IMyMessageFactory { v2nGlobalPathEventsMessage = new V2nGlobalPathEventsMessage(); } return v2nGlobalPathEventsMessage; + } else if (messageType == MessageType.TYPE_RECEIVE_GET_PARAM_RESP.typeCode) { + //参数获取应答 + if (getParamRespMessage == null) { + getParamRespMessage = new GetParamRespMessage(); + } + return getParamRespMessage; } else { //MessageType.TYPE_DEFAULT.typeCode return null;