From 7529d51e5bd920b6af0a2f163fb523d411ed7d7a Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 17 Apr 2025 15:13:59 +0800 Subject: [PATCH] =?UTF-8?q?[8.0.0][adas]=20=E5=9F=9F=E6=8E=A7=E6=91=84?= =?UTF-8?q?=E5=83=8F=E5=A4=B4=E4=B8=8A=E4=BC=A0NDE=E4=BA=91=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E5=91=BD=E4=BB=A4=E4=BB=A5=E5=8F=8A=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 6 ++++ .../zhjt/mogo/adas/common/MessageType.java | 3 ++ .../src/main/proto/message_pad.proto | 13 ++++++++ .../zhidao/support/adas/high/AdasChannel.java | 30 +++++++++++++++++ .../zhidao/support/adas/high/AdasManager.java | 27 ++++++++++++++++ .../support/adas/high/IAdasNetCommApi.java | 21 ++++++++++++ .../support/adas/high/OnAdasListener.java | 8 +++++ .../msg/ImgUploadCloudStatusRespMessage.java | 32 +++++++++++++++++++ .../adas/high/msg/MyMessageFactory.java | 7 ++++ 9 files changed, 147 insertions(+) create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ImgUploadCloudStatusRespMessage.java 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 a65aa0ce1b..f3e2b0ef2e 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 @@ -1478,6 +1478,12 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerCloudConfigListenerManager.invokeCloudConfig(config) } + override fun onImgUploadCloudStatusResp( + header: MessagePad.Header, + resp: MessagePad.ImgUploadCloudStatusResp + ) { + } + /** * 是否可以启动自动驾驶 * 使用方法查看:app_ipc_monitoring/uiMainActivity/onAutopilotAbility diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java index a16ca16261..cdf74eff2b 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java @@ -101,6 +101,9 @@ public enum MessageType { TYPE_RECEIVE_COPY_BAG(MessagePad.MessageType.MsgTypeCopyBag, "数据落盘响应"), TYPE_SEND_CLOUD_CONFIG(MessagePad.MessageType.MsgTypeCloudConfig, "云端配置查询"), TYPE_RECEIVE_CLOUD_CONFIG(MessagePad.MessageType.MsgTypeCloudConfig, "云端配置响应"), + TYPE_SEND_IMG_UPLOAD_CLOUD_ENABLE(MessagePad.MessageType.MsgTypeImgUploadCloudEnable, "摄像头上传NDE云开关"), + TYPE_SEND_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, "摄像头上传NDE云状态查询"), + TYPE_RECEIVE_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, "摄像头上传NDE云状态响应"), //TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释 TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"), 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 e129f1c26e..03c2de6c1d 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -105,6 +105,8 @@ enum MessageType MsgTypeEzhouCloud = 0x10133;//NED pad通信(不仅限于鄂州) bus ros1 MAP500版本支持, bus ros2 MAP480版本支持,taxi 还没有上 MsgTypeCopyBag = 0x10134;//数据落盘(上下行) MsgTypeCloudConfig = 0x10135;//云端配置查询和返回(上下行) + MsgTypeImgUploadCloudEnable = 0x10136;//摄像头上传NDE云开关 + MsgTypeImgUploadCloudStatusQuery = 0x10137;//查询摄像头上传NDE云状态 } message Header @@ -1004,4 +1006,15 @@ message CloudLinkAddr message CloudConfig { repeated CloudLinkAddr addrs = 1; +} + +//message definition for MsgTypeImgUploadCloudEnable +//发送摄像头上传NDE云开关命令: +message ImgUploadCloudCmd { + bool enable = 1; //false: 关闭, true: 打开 +} +//message definition for MsgTypeImgUploadCloudStatusQuery +//查询摄像头上传NDE云状态返回 +message ImgUploadCloudStatusResp { + bool enable = 1; //false: 关闭, true: 打开 } \ No newline at end of file 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 f24044b19e..0e2c91ea5b 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 @@ -3187,5 +3187,35 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec public long sendCloudConfigRequest() { return sendPBMessage(MessageType.TYPE_SEND_CLOUD_CONFIG, null); } + + /** + * 域控摄像头上传NDE云开关命令 + * + * @param enable false: 关闭, true: 打开 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendImgUploadCloudEnable(boolean enable) { + MessagePad.ImgUploadCloudCmd.Builder builder = MessagePad.ImgUploadCloudCmd + .newBuilder() + .setEnable(enable); + return sendPBMessage(MessageType.TYPE_SEND_IMG_UPLOAD_CLOUD_ENABLE, builder.build().toByteArray()); + } + + /** + * 查询域控摄像头上传NDE云开关状态查询 + * + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendImgUploadCloudStatusQuery() { + return sendPBMessage(MessageType.TYPE_SEND_IMG_UPLOAD_CLOUD_STATUS_QUERY, null); + } } 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 04b9166aba..0b2d8054b4 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 @@ -1940,6 +1940,33 @@ public class AdasManager implements IAdasNetCommApi { return mChannel == null ? -1L : mChannel.sendCloudConfigRequest(); } + /** + * 域控摄像头上传NDE云开关命令 + * + * @param enable false: 关闭, true: 打开 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendImgUploadCloudEnable(boolean enable) { + return mChannel == null ? -1L : mChannel.sendImgUploadCloudEnable(enable); + } + + /** + * 查询域控摄像头上传NDE云开关状态查询 + * + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendImgUploadCloudStatusQuery() { + return mChannel == null ? -1L : mChannel.sendImgUploadCloudStatusQuery(); + } + /** * 查询节点状态 * 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 9b6fe1bd03..3fbd10dbca 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 @@ -1413,6 +1413,27 @@ public interface IAdasNetCommApi { */ long sendCloudConfigRequest(); + /** + * 域控摄像头上传NDE云开关命令 + * + * @param enable false: 关闭, true: 打开 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + long sendImgUploadCloudEnable(boolean enable); + + /** + * 查询域控摄像头上传NDE云开关状态查询 + * + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + long sendImgUploadCloudStatusQuery(); + // TODO 需求暂停 待讨论 // boolean getRoutes(); 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 35899b00f2..0b1f4da5a8 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 @@ -664,6 +664,14 @@ public interface OnAdasListener { */ void onCloudConfig(@NonNull MessagePad.Header header, @NonNull MessagePad.CloudConfig config); + /** + * 摄像头上传NDE云状态响应 + * + * @param header 头 + * @param resp 数据 + */ + void onImgUploadCloudStatusResp(@NonNull MessagePad.Header header, @NonNull MessagePad.ImgUploadCloudStatusResp resp); + /** * 是否有能力启动自动驾驶 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ImgUploadCloudStatusRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ImgUploadCloudStatusRespMessage.java new file mode 100644 index 0000000000..b1009e0978 --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ImgUploadCloudStatusRespMessage.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; + +/** + * 摄像头上传NDE云状态响应 + */ +public class ImgUploadCloudStatusRespMessage extends MyAbstractMessageHandler { + + @Override + public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { + MessagePad.ImgUploadCloudStatusResp resp = MessagePad.ImgUploadCloudStatusResp.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); + AdasChannel.calculateTimeConsumingOnDispatchRaw("摄像头上传NDE云状态响应", raw.receiveTime); + long nowTime = 0; + if (CupidLogUtils.isEnableLog()) + nowTime = SystemClock.elapsedRealtime(); + if (adasListener != null) { + adasListener.onImgUploadCloudStatusResp(raw.getHeader(), resp); + } + AdasChannel.calculateTimeConsumingBusiness("摄像头上传NDE云状态响应", 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 15f5f635ce..2ec41343d4 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 @@ -58,6 +58,7 @@ public class MyMessageFactory implements IMyMessageFactory { private IMsg captureImgOnTakeOverMessage;//接管时前方和后方摄像头数据请求的响应 private IMsg copyBagMessage;//数据落盘 private IMsg cloudConfigMessage;//云端配置 + private IMsg imgUploadCloudStatusRespMessage;//摄像头上传NDE云状态响应 private final AutopilotReview autopilotReview; private final TurnLightState lightLeft = new TurnLightState(); @@ -338,6 +339,12 @@ public class MyMessageFactory implements IMyMessageFactory { cloudConfigMessage = new CloudConfigMessage(); } return cloudConfigMessage; + } else if (messageType == MessageType.TYPE_RECEIVE_IMG_UPLOAD_CLOUD_STATUS_QUERY.typeCode) { + //摄像头上传NDE云状态响应 + if (imgUploadCloudStatusRespMessage == null) { + imgUploadCloudStatusRespMessage = new ImgUploadCloudStatusRespMessage(); + } + return imgUploadCloudStatusRespMessage; } else { //MessageType.TYPE_DEFAULT.typeCode return null;