From fae45e0cd4102f3575f2c7435a1e4f6f2bde254a Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 29 Jul 2024 16:01:09 +0800 Subject: [PATCH] =?UTF-8?q?[6.5.1]Bus=E8=80=83=E8=AF=95=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=88=B0=E4=B8=BB=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoAutopilotControlProvider.kt | 27 ++++++++++++++ .../trace/network/StartUpTraceNetWorkModel.kt | 12 ++++--- .../function/hmi/ui/vehicle/PncActionsView.kt | 20 +++++++++++ .../data/autopilot/pnc/PncActionsHelper.kt | 4 +++ .../IMoGoAutopilotControlProvider.kt | 10 ++++++ .../CallerAutoPilotControlManager.kt | 14 ++++++++ .../zhidao/support/adas/high/AdasChannel.java | 35 +++++++++++++++++++ .../zhidao/support/adas/high/AdasManager.java | 14 ++++++++ .../support/adas/high/IAdasNetCommApi.java | 11 ++++++ .../support/adas/high/chain/AdasChain.java | 1 + 10 files changed, 143 insertions(+), 5 deletions(-) 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 20d84040a4..8edb0ea159 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 @@ -1244,7 +1244,34 @@ class MoGoAutopilotControlProvider : return AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) > -1 } + @ChainLog( + linkChainLog = AdasChain.CHAIN_TYPE_SOCKET_AUTOPILOT, + linkCode = AdasChain.CHAIN_SOURCE_ADAS, + nodeAliasCode = AdasChain.CHAIN_CODE_ADAS_SEND_PLANNING_CMD, + paramIndexes = [0] + ) override fun sendPlanningCmd(cmd: Int): Boolean { return AdasManager.getInstance().sendPlanningCmd(cmd) > -1 } + + @ChainLog( + linkChainLog = AdasChain.CHAIN_TYPE_SOCKET_AUTOPILOT, + linkCode = AdasChain.CHAIN_SOURCE_ADAS, + nodeAliasCode = AdasChain.CHAIN_CODE_ADAS_SEND_PLANNING_CMD, + paramIndexes = [0] + ) + override fun sendPlanningLineChangeCmd(cmd: Int): Boolean { + return AdasManager.getInstance().sendPlanningLaneChangeCmd(cmd) > -1 + } + + /** + * 设置座椅压力接口 + * @param driver 主驾是否有人 + * @param copilot 副驾是否有人 + * @param backRow 后排是否有人 + */ + override fun sendSeatPressure(driver: Boolean, copilot: Boolean, backRow: Boolean): Boolean { + return AdasManager.getInstance().sendSeatPressure(driver, copilot, backRow) > -1 + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/network/StartUpTraceNetWorkModel.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/network/StartUpTraceNetWorkModel.kt index 19fa83eaac..68140a2a73 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/network/StartUpTraceNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/network/StartUpTraceNetWorkModel.kt @@ -17,7 +17,6 @@ class StartUpTraceNetWorkModel { .create(TraceStartUpApiService::class.java) } - private var retryTime = 0 private var success: ((String) -> Unit)? = null private var error: ((String) -> Unit)? = null @Volatile @@ -29,7 +28,8 @@ class StartUpTraceNetWorkModel { onError: ((String) -> Unit)? = null ) { request> { - var map: MutableMap = mutableMapOf() + var retryTime = 0 + var map: MutableMap start { if (success == null) { success = onSuccess @@ -54,11 +54,13 @@ class StartUpTraceNetWorkModel { onSuccess { if (it.result != null) { onSuccess?.invoke(it.result) + traceId = "" } else { if (retryTime < 3) { retryTime += 1 - report() + report(id) } else { + traceId = "" error?.invoke("startUp report error msg is null") } } @@ -66,13 +68,13 @@ class StartUpTraceNetWorkModel { onError { if (retryTime < 3) { retryTime += 1 - report() + report(id) } else if (it.message != null) { + traceId = "" error?.invoke(it.message ?: "startUp report error msg is null") } } - } } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt index 7c7e6da225..5da0bc4f42 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.hmi.ui.vehicle import android.content.Context +import android.os.CountDownTimer import android.util.AttributeSet import android.util.TypedValue.COMPLEX_UNIT_PX import android.view.LayoutInflater @@ -21,6 +22,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.util.SoundPoolUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.zhjt.service_biz.BizConfig import kotlinx.android.synthetic.main.view_pnc_actions.view.* @@ -122,6 +124,24 @@ class PncActionsView @JvmOverloads constructor( AppCompatResources.getDrawable(context, bgResources) tvHmiPncActions.text = actions } + //voice tip + if(actions == "已超出ODD"){ + val countDownTimer = object : CountDownTimer(3000, 1000){ + override fun onTick(p0: Long) { + try { + SoundPoolUtils.getSoundPool().playSoundWithRedId(context,R.raw.weak_net_tips) + }catch (e: Exception){ + e.printStackTrace() + } + } + + override fun onFinish() { + + } + + } + countDownTimer.start() + } } else { tvHmiPncActions.background = null tvHmiPncActions.text = "" diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/pnc/PncActionsHelper.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/pnc/PncActionsHelper.kt index 97643d3e2b..d8adb85699 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/pnc/PncActionsHelper.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/pnc/PncActionsHelper.kt @@ -94,6 +94,10 @@ class PncActionsHelper { YIELD_TO_VEHICLE_COMING_FROM_BEHIND_VALUE -> { if (driveAction == 1) "正在避让后方来车" else "" } + // 考试项 + OUT_OF_ODD_VALUE -> { + if (driveAction == 1 || driveAction == 2 || driveAction == 3) "已超出ODD" else "" + } else -> "" } } 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 0637b9c3ff..1d53758617 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 @@ -536,4 +536,14 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider { fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean fun sendPlanningCmd(cmd: Int): Boolean + + fun sendPlanningLineChangeCmd(cmd: Int): Boolean + + /** + * 设置座椅压力接口 + * @param driver 主驾是否有人 + * @param copilot 副驾是否有人 + * @param backRow 后排是否有人 + */ + fun sendSeatPressure(driver: Boolean,copilot: Boolean,backRow: Boolean): Boolean } \ No newline at end of file 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 3cd08a6536..7b44b76145 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 @@ -841,4 +841,18 @@ object CallerAutoPilotControlManager { fun sendPlanningCmd(cmd: Int): Boolean { return providerApi?.sendPlanningCmd(cmd) ?: false } + + fun sendPlanningLineChangeCmd(cmd: Int): Boolean { + return providerApi?.sendPlanningLineChangeCmd(cmd) ?: false + } + + /** + * 设置座椅压力接口 + * @param driver 主驾是否有人 + * @param copilot 副驾是否有人 + * @param backRow 后排是否有人 + */ + fun sendSeatPressure(driver: Boolean,copilot: Boolean,backRow: Boolean): Boolean?{ + return providerApi?.sendSeatPressure(driver, copilot, backRow) + } } \ 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 81fd08cf90..b62b2855cb 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 @@ -14,6 +14,7 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_SOCKET_AUT import android.content.Context; import android.os.SystemClock; import android.text.TextUtils; +import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -2408,6 +2409,40 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec return sendSetParamReq(AdasConstants.MapSystemParamType.RAMP_THETA_VALID_VALUE, String.valueOf(enable)); } + /** + * 座椅压力 + * TODO 目前仅襄阳牌照考试支持 + * + * @param driver 主驾是否有人 + * @param copilot 副驾是否有人 + * @param backRow 后排是否有人 + * @return boolean + */ + @Override + public long sendSeatPressure(boolean driver, boolean copilot, boolean backRow) { + Log.i(TAG, "主驾是否有人=" + driver + " 副驾是否有人=" + copilot + " 后排是否有人=" + backRow); + int value = 255; + if (driver && !copilot && !backRow) { + value = 0; + } else if (!driver && copilot && !backRow) { + value = 1; + } else if (driver && copilot && !backRow) { + value = 2; + } else if (!driver && !copilot && backRow) { + value = 3; + } else if (driver && !copilot && backRow) { + value = 4; + } else if (!driver && copilot && backRow) { + value = 5; + } else if (driver && copilot && backRow) { + value = 6; + } else if (!driver && !copilot && !backRow) { + value = 7; + } + Log.i(TAG, "\n0:表示仅主驾位有人\n1:表示仅副驾位有人\n2:表示主驾和副驾同时有人\n3:表示仅后排有人\n4:表示主驾有人+后排有人\n5:表示副驾有人+后排有人\n6:表示主驾和副驾同时有人+后排有人\n7: 所有座位都无人\n255:缺省\n下发数据=" + value); + return sendSetParamReq(15, String.valueOf(value)); + } + /** * 弱网减速停车策略开关 * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck 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 a65b345c6f..e6dd160740 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 @@ -935,6 +935,20 @@ public class AdasManager implements IAdasNetCommApi { return mChannel == null ? -1L : mChannel.sendPlanningLaneChangeCmd(laneChangeCmd); } + /** + * 座椅压力 + * TODO 目前仅襄阳牌照考试支持 + * + * @param driver 主驾是否有人 + * @param copilot 副驾是否有人 + * @param backRow 后排是否有人 + * @return boolean + */ + @Override + public long sendSeatPressure(boolean driver, boolean copilot, boolean backRow) { + return mChannel == null ? -1L : mChannel.sendSeatPressure(driver, copilot, backRow); + } + /** * 给Planning发送指令 * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck 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 4efee2505d..2336fee188 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 @@ -899,6 +899,17 @@ public interface IAdasNetCommApi { */ long sendRampThetaValid(int enable); + /** + * 座椅压力 + * TODO 目前仅襄阳牌照考试支持 + * + * @param driver 主驾是否有人 + * @param copilot 副驾是否有人 + * @param backRow 后排是否有人 + * @return boolean + */ + long sendSeatPressure(boolean driver, boolean copilot, boolean backRow); + /** * 弱网减速停车策略开关 * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java index 5e762dc21e..a9abbfc9bb 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java @@ -16,6 +16,7 @@ public class AdasChain { //operation by user public static final String CHAIN_CODE_ADAS_START_AUTOPILOT = "CHAIN_CODE_ADAS_START_AUTOPILOT"; + public static final String CHAIN_CODE_ADAS_SEND_PLANNING_CMD = "CHAIN_CODE_ADAS_SEND_PLANNING_CMD"; public static final String CHAIN_CODE_ADAS_SEND_GLOBAL_PATH = "CHAIN_CODE_ADAS_SEND_GLOBAL_PATH"; public static final String CHAIN_CODE_ADAS_SEND_SYSTEM_CMD = "CHAIN_CODE_ADAS_SEND_SYSTEM_CMD"; public static final String CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD = "CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD";