From ec1a359dd3f2c6d01dbc28ce8b1f8fdefb59562c Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 13 Apr 2023 18:43:26 +0800 Subject: [PATCH 1/4] [2.15.0].. --- .../core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt index 57f6e064f3..2885e542e1 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt @@ -16,7 +16,6 @@ class AiCloudIdentifyNetWorkModel private constructor(){ val aiCloudIdentifyNetWorkModel by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { AiCloudIdentifyNetWorkModel() } - } private fun getNetWorkApi(baseUrl: String = getEagleHost()): IAiCloudIdentifyApiService { return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl) From 5a0718e1c40d54ad50e61546f4d938bfd2f1b503 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 13 Apr 2023 19:15:22 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[dev=5Frobotaxi-d=5F230412=5F2.15.0]?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=AE=B1=E8=BD=A6=E9=80=9F=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=8B=E5=8A=A8=E8=BE=93=E5=85=A5=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/tools/AutoPilotAndCheckView.kt | 117 ++++++++++++++---- .../function/hmi/ui/utils/KeyBoardUtil.java | 8 ++ .../main/res/layout/view_auto_pilot_check.xml | 17 +-- 3 files changed, 109 insertions(+), 33 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index 4410ea8827..a2713a6c12 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -70,29 +70,60 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( @SuppressLint("ClickableViewAccessibility") private fun initView() { background = ColorDrawable(Color.parseColor("#F0151D41")) - - keyBoardUtil?.setActionListener { inputContent -> - inputContent.toIntOrNull()?.let { speed -> - when { - speed > 60 -> { - // 设置失败键盘不消失,让用户直接修改 - ToastUtils.showShort("超过最大限速值60,设置失败") - } - else -> { - // 设置自动驾驶速度 - val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speed) - when { - isSuccess -> { - ToastUtils.showShort("车速设置成功,立即生效") - } - else -> { - ToastUtils.showShort("设置车速失败,请启动域控制器") + if (keyBoardUtil == null) { + keyBoardUtil = KeyBoardUtil(sKeyBoardView, etInputSpeed) + } + keyBoardUtil?.setActionListener(object: KeyBoardUtil.ActionListener{ + override fun onComplete(inputContent: String?) { + inputContent?.toIntOrNull()?.let { speed -> + when { + speed > 60 -> { + // 设置失败键盘不消失,让用户直接修改 + ToastUtils.showShort("超过最大限速值60,设置失败") + } + else -> { + keyBoardUtil?.hideKeyboard() + etInputSpeed.clearFocus() + // 设置自动驾驶速度 + val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speed) + when { + isSuccess -> { + ToastUtils.showShort("车速设置成功,立即生效") + } + else -> { + ToastUtils.showShort("设置车速失败,请启动域控制器") + } } } } } } - } + + override fun onUpdate(inputContent: String?) { + if (inputContent != null) { + try { + if(inputContent.isEmpty()){ + speedLimit = 0 + }else{ + speedLimit = inputContent.toInt() + if(speedLimit>60){ + speedLimit = 60 + ToastUtils.showShort("最大限速60") + } + } + }catch (t: Exception){ + ToastUtils.showShort("最大限速60") + speedLimit = 60 + + } + etInputSpeed.setText(speedLimit.toString()) + etInputSpeed.setSelection(speedLimit.toString().length) + } + } + + }) + + KeyBoardUtil.hideSystemSoftKeyboard(context, etInputSpeed) ivCloseIcon.setOnClickListener { clickListener?.onClose(it) } @@ -123,16 +154,42 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( // } tvAcceleration.text = "每次调整车速±5km/h,点击确定生效" if (speedLimit > 0) { - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) }else{ - tvSpeed.text = "0" + etInputSpeed.setText("0") + } + + etInputSpeed.setOnTouchListener { _, _ -> + val curTime = System.currentTimeMillis() + if (curTime - lastTime < 1000) { + return@setOnTouchListener true + } + etInputSpeed.isFocusableInTouchMode = true + if (keyBoardUtil == null) { + keyBoardUtil = KeyBoardUtil(sKeyBoardView, etInputSpeed) + } + keyBoardUtil?.showKeyboard() + //滑动滚动条 + svLayout.post { + svLayout.fullScroll(View.FOCUS_DOWN) + } + if (!connectStatus) { + ToastUtils.showShort("设置车速失败,请启动域控制器") + keyBoardUtil?.hideKeyboard() + return@setOnTouchListener true + } else { + return@setOnTouchListener false + } } ivSpeedReduce.setOnClickListener { if(speedLimit>=5){ speedLimit -= 5 - tvSpeed.text = speedLimit.toString() - }else{ + etInputSpeed.setText(speedLimit.toString()) + }else if(speedLimit in 1..4){ + speedLimit = 0 + etInputSpeed.setText(speedLimit.toString()) + } else{ ToastUtils.showShort("车速不能再减了") } } @@ -140,19 +197,27 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( ivSpeedAdd.setOnClickListener { if(speedLimit<=55){ speedLimit += 5 - tvSpeed.text = speedLimit.toString() - }else{ + etInputSpeed.setText(speedLimit.toString()) + }else if(speedLimit in 56..59){ + speedLimit = 60 + etInputSpeed.setText(speedLimit.toString()) + } else{ ToastUtils.showShort("车速不能再加了") } } //速度确认 tvSureModify.setOnClickListener { + if(speedLimit>60){ + // 设置失败键盘不消失,让用户直接修改 + ToastUtils.showShort("超过最大限速值60,设置失败") + return@setOnClickListener + } val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speedLimit) when { isSuccess -> { //速度显示 - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) ToastUtils.showShort("车速设置成功,立即生效") } else -> { @@ -243,7 +308,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( // } maxAcceleration = carConfigResp.maxAcceleration speedLimit = (carConfigResp.speedLimit * 3.6).toInt() - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) } } } \ 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/utils/KeyBoardUtil.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java index 8b826a2255..b06500228f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java @@ -6,6 +6,7 @@ import android.inputmethodservice.KeyboardView; import android.os.Build; import android.text.Editable; import android.text.InputType; +import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; @@ -78,6 +79,9 @@ public class KeyBoardUtil { editable.delete(start - 1, start); } } + if(actionListener != null){ + actionListener.onUpdate(editText.getText().toString()); + } break; case Keyboard.KEYCODE_DONE: if (actionListener != null) { @@ -86,6 +90,9 @@ public class KeyBoardUtil { break; default: editable.insert(start, Character.toString((char) primaryCode)); + if(actionListener != null){ + actionListener.onUpdate(editText.getText().toString()); + } break; } } @@ -133,5 +140,6 @@ public class KeyBoardUtil { public interface ActionListener { void onComplete(String inputContent); + void onUpdate(String inputContent); } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml index 0c2efda5b6..00d935bb03 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml @@ -6,6 +6,7 @@ android:layout_height="match_parent"> - @@ -297,8 +300,8 @@ android:textColor="@android:color/white" android:textSize="42dp" android:layout_marginLeft="50dp" - app:layout_constraintTop_toTopOf="@id/tvSpeed" - app:layout_constraintBottom_toBottomOf="@id/tvSpeed" + app:layout_constraintTop_toTopOf="@id/ivSpeedAdd" + app:layout_constraintBottom_toBottomOf="@id/ivSpeedAdd" app:layout_constraintLeft_toRightOf="@id/tvUnit" tools:visibility="visible" /> From 3b008b0b85ba0ff5ba427c16ce19f787be56d4bb Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 13 Apr 2023 19:26:16 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[dev=5Frobotaxi-d=5F230412=5F2.15.0]?= =?UTF-8?q?=E6=8E=A5=E7=AE=A1=E6=8F=90=E7=A4=BA=E5=8A=A0=E5=85=A5=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E7=9B=92=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/vehicle/TakeOverView.kt | 72 ++++++++++++++++--- .../eagle/core/data/enums/EventTypeEnumNew.kt | 12 ++++ .../zhjt/mogo/adas/data/bean/MogoReport.java | 2 + 3 files changed, 75 insertions(+), 11 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt index 90ea0b57ab..bfc61ae6ef 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt @@ -7,10 +7,15 @@ import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.EventTypeEnumNew +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.zhjt.mogo.adas.data.bean.MogoReport @@ -54,18 +59,63 @@ class TakeOverView @JvmOverloads constructor( MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_PLANNING, MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_LOCATION, MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS, - MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE -> { - CallerHmiManager.warningV2X(EventTypeEnumNew.TAKE_OVER_EVENT.poiType, EventTypeEnumNew.TAKE_OVER_EVENT.content, EventTypeEnumNew.TAKE_OVER_EVENT.tts, object : IMoGoWarningStatusListener { - override fun onShow() { - takeOver = true - visibility = View.VISIBLE - } + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE ->{ + CallerHmiManager.warningV2X( + EventTypeEnumNew.TAKE_OVER_EVENT.poiType, + EventTypeEnumNew.TAKE_OVER_EVENT.content, + EventTypeEnumNew.TAKE_OVER_EVENT.tts, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOver = true + visibility = View.VISIBLE + //加入消息盒子 + saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, V2XMsg( + EventTypeEnumNew.TAKE_OVER_EVENT.poiType, + EventTypeEnumNew.TAKE_OVER_EVENT.content, + EventTypeEnumNew.TAKE_OVER_EVENT.tts + ) + ) + ) + } - override fun onDismiss() { - takeOver = false - visibility = View.GONE - } - }, isFromObu = false) + override fun onDismiss() { + takeOver = false + visibility = View.GONE + } + },isFromObu = false + ) + } + //弱网 + MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_NETWORK_WEAK, + MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_CONNECTION_ERROR -> { + CallerHmiManager.warningV2X( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOver = true + visibility = View.VISIBLE + //加入消息盒子 + saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, V2XMsg( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts + ) + ) + ) + } + + override fun onDismiss() { + takeOver = false + visibility = View.GONE + } + },isFromObu = false + ) } } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index d7ddc07c0d..d3282ce9ab 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -112,6 +112,10 @@ enum class EventTypeEnumNew( "注意周围、立即接管", "自动驾驶退出请立即接管" ), + //弱网接管 + NETWORK_WEAK_EVENT("20001", "接管", "注意周围、立即接管", R.drawable.icon_warning_take_over, + "注意周围、立即接管", "平行驾驶遇弱网已退出,注意随时接管"), + // 前方静止or慢速车辆报警 ALERT_FRONT_CAR("99999","前方预警"), @@ -843,6 +847,10 @@ enum class EventTypeEnumNew( TAKE_OVER_EVENT.poiType ->{ TAKE_OVER_EVENT.poiTypeStr } + //弱网接管 + NETWORK_WEAK_EVENT.poiType ->{ + NETWORK_WEAK_EVENT.poiTypeStr + } //机动车 TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType ->{ TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiTypeStr @@ -1142,6 +1150,10 @@ enum class EventTypeEnumNew( TAKE_OVER_EVENT.poiType -> { R.drawable.icon_warning_take_over } + //弱网接管 + NETWORK_WEAK_EVENT.poiType -> { + R.drawable.icon_warning_take_over + } //机动车 TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType -> { R.drawable.icon_warning_v2x_motorcycle_collision diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java index c0dcddf7ad..d469c8f52f 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java @@ -155,6 +155,8 @@ public class MogoReport { String EXIT_AUTOPILOT_FOR_LOCATION = "EMAP_EXIT_AUTOPILOT_FOR_LOCATION";//因location掉帧强退自动驾驶 String EXIT_AUTOPILOT_FOR_CHASSIS = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS";//因底盘消息掉帧强退自动驾驶 String EXIT_AUTOPILOT_FOR_DISTANCE = "EMAP_EXIT_AUTOPILOT_FOR_DISTANCE";//因planning起点距离当前过远强退自动驾驶 + String EPARALLEL_AICLOUD_CONNECTION_ERROR = "EPARALLEL_AICLOUD_CONNECTION_ERROR";//断网(此时不符合平行驾驶条件) 平行驾驶退出到自驾,同时减速停车 + String EPARALLEL_AICLOUD_NETWORK_WEAK = "EPARALLEL_AICLOUD_NETWORK_WEAK";//弱网,平行驾驶退出到自驾,同时减速停车 String EXIT_AUTOPILOT_FOR_BRAKE = "EMAP_EXIT_AUTOPILOT_FOR_BRAKE";//制动踏板干预而强退自动驾驶 String EXIT_AUTOPILOT_FOR_ACCEL = "EMAP_EXIT_AUTOPILOT_FOR_ACCEL";//加速踏板干预而强退自动驾驶 String EXIT_AUTOPILOT_FOR_STEER = "EMAP_EXIT_AUTOPILOT_FOR_STEER";//方向盘干预而强退自动驾驶 From 143f01dd4c0a44a8328561bcb1884c9ec7b11fe7 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 13 Apr 2023 19:30:21 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[dev=5Frobotaxi-d=5F230412=5F2.15.0]?= =?UTF-8?q?=E8=B0=83=E6=95=B4M2=E5=B8=83=E5=B1=80=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/item_m_box_notice.xml | 2 +- .../src/main/res/layout/item_m_box_operation.xml | 2 +- .../src/main/res/layout/item_m_box_v2x.xml | 2 +- .../src/main/res/layout/layout_m_box_bubble.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml index 75d41bf8bf..9d2020f352 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml @@ -1,6 +1,6 @@