diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 164d27a233..50c2ead876 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -55,6 +55,8 @@ import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import com.zhjt.mogo_core_function_devatools.binding.BindingCarManager import com.zhjt.mogo_core_function_devatools.block.MoGoBlockProviderImpl import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager +import com.zhjt.mogo_core_function_devatools.exam.ExamControlManager +import com.zhjt.mogo_core_function_devatools.exam.ExamControlWindow import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigCenter.Companion.bizConfigCenter import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigImpl import com.zhjt.mogo_core_function_devatools.logcat.CrashLogAnalyticsManager @@ -417,6 +419,13 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener { BadCaseManager.initAiCollect(view) } + /** + * 展示考试车辆控制窗口 + */ + override fun showExamControlWindow(view: View) { + ExamControlManager.showExamControlWindow(view) + } + override fun onReceiveBadCaseRecord( msgBoxBean: MsgBoxBean, activity: Activity, diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/exam/ExamControlManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/exam/ExamControlManager.kt new file mode 100644 index 0000000000..47590f0190 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/exam/ExamControlManager.kt @@ -0,0 +1,55 @@ +package com.zhjt.mogo_core_function_devatools.exam + +import android.view.View +import androidx.fragment.app.FragmentActivity +import com.mogo.eagle.core.utilcode.util.ClickUtils +import com.mogo.eagle.core.utilcode.util.NetworkUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig + +/** + * 考试控制管理 + */ +internal object ExamControlManager { + + /** + * 开启考试车辆控制窗口 + */ + fun showExamControlWindow(view: View){ + val activity = view.context as? FragmentActivity + ?: throw IllegalStateException("please ensure context is FragmentActivity.") + view.setOnClickListener{ + if (ClickUtils.isFastClick()){ + if (NetworkUtils.isConnected()){ + + //TODO + val examControlWindow = ExamControlWindow(activity) + examControlWindow.setClickListener(object: ExamControlWindow.ClickListener{ + override fun closeWindow() { + examControlWindow.hideWindow() + } + }) + examControlWindow.showWindow() + + + if (BadCaseConfig.dockerVersion != null){ + val examControlWindow = ExamControlWindow(activity) + examControlWindow.setClickListener(object: ExamControlWindow.ClickListener{ + override fun closeWindow() { + examControlWindow.hideWindow() + } + }) + examControlWindow.showWindow() + }else{ + ToastUtils.showShort("工控机连接状态异常") + } + }else{ + ToastUtils.showShort("网络异常,请检查网络") + } + }else{ + ToastUtils.showShort("请勿连续点击,稍后再试") + } + } + } + +} \ 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/exam/ExamControlWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/exam/ExamControlWindow.kt new file mode 100644 index 0000000000..9983b3880e --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/exam/ExamControlWindow.kt @@ -0,0 +1,280 @@ +package com.zhjt.mogo_core_function_devatools.exam + +import android.annotation.SuppressLint +import android.app.Activity +import android.graphics.PixelFormat +import android.util.DisplayMetrics +import android.view.Gravity +import android.view.LayoutInflater +import android.view.MotionEvent +import android.view.View +import android.view.WindowManager +import android.widget.ImageView +import android.widget.TextView +import android.widget.ToggleButton +import com.mogo.eagle.core.data.enums.EventTypeEnumNew +import com.mogo.eagle.core.data.msgbox.AutopilotMsg +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.takeover.TAKE_OVER_REQUEST +import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +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.setting.CallerTakeOverManager +import com.mogo.eagle.core.utilcode.util.BarUtils +import com.mogo.eagle.core.utilcode.util.SPUtils +import com.mogo.eagle.core.utilcode.util.SoundUtils +import com.zhjt.mogo_core_function_devatools.R +import kotlin.math.absoluteValue + +class ExamControlWindow constructor(activity: Activity): View.OnTouchListener{ + + companion object{ + const val TAG = "ExamControlWindow" + } + + private var mActivity: Activity = activity + private var mWindowParams: WindowManager.LayoutParams? = null + private var mWindowManager: WindowManager? = null + private lateinit var mFloatLayout: View + private var clickListener: ClickListener? = null + + private var mInViewX = 0f + private var mInViewY = 0f + private var mInScreenX = 0f + private var mInScreenY = 0f + + private var takeOverRequest: Boolean = false + + private lateinit var ivCloseExam: ImageView //关闭按钮 + private lateinit var tbLaneChange: ToggleButton //障碍物图标 + private lateinit var tvLineChange: TextView //障碍物文字 + private lateinit var tbAeb: ToggleButton //制动图标 + private lateinit var tvAeb: TextView //制动文字 + private lateinit var tbMapSpeed: ToggleButton //限速图标 + private lateinit var tvMapSpeed: TextView //限速文字 + private lateinit var tbRamp: ToggleButton //环岛图标 + private lateinit var tvRamp: TextView //环岛文字 + private lateinit var tbStopYield: ToggleButton //停车图标 + private lateinit var tvStopYield: TextView //停车文字 + private lateinit var tbSeatMainDriver: ToggleButton //主驾 + private lateinit var tbSeatPassenger: ToggleButton //副驾 + private lateinit var tbSeatRear: ToggleButton //乘客 + private lateinit var ivLineToRight: ImageView //右变道 + private lateinit var ivLineToLeft: ImageView //左变道 + private lateinit var ivOverTake: ImageView //超车 + private lateinit var ivPullOver: ImageView //路边停车 + private lateinit var ivTakeOverRecover: ImageView //恢复自驾 + private lateinit var ivTakeOverRequest: ImageView //接管请求 + private lateinit var ivEmergencyStop: ImageView //应急停车 + + init { + initFloatWindow() + } + + @SuppressLint("InflateParams") + private fun initFloatWindow(){ + mFloatLayout = LayoutInflater.from(mActivity).inflate(R.layout.view_exam_control, null) as View + mFloatLayout.setOnTouchListener(this) + initEvent() + mWindowParams = WindowManager.LayoutParams() + mWindowManager = mActivity.windowManager + mWindowParams?.let { + it.format = PixelFormat.RGBA_8888 + it.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL + it.gravity = Gravity.START or Gravity.TOP + it.width = 844 + it.height = 1114 + it.alpha = 1.0f + } + } + + private fun initEvent(){ + ivCloseExam = mFloatLayout.findViewById(R.id.ivCloseExam) + tbLaneChange = mFloatLayout.findViewById(R.id.tbLaneChange) + tvLineChange = mFloatLayout.findViewById(R.id.tvLineChange) + tbAeb = mFloatLayout.findViewById(R.id.tbAeb) + tvAeb = mFloatLayout.findViewById(R.id.tvAeb) + tbMapSpeed = mFloatLayout.findViewById(R.id.tbMapSpeed) + tvMapSpeed = mFloatLayout.findViewById(R.id.tvMapSpeed) + tbRamp = mFloatLayout.findViewById(R.id.tbRamp) + tvRamp = mFloatLayout.findViewById(R.id.tvRamp) + tbStopYield = mFloatLayout.findViewById(R.id.tbStopYield) + tvStopYield = mFloatLayout.findViewById(R.id.tvStopYield) + tbSeatMainDriver = mFloatLayout.findViewById(R.id.tbSeatMainDriver) + tbSeatPassenger = mFloatLayout.findViewById(R.id.tbSeatPassenger) + tbSeatRear = mFloatLayout.findViewById(R.id.tbSeatRear) + ivLineToRight = mFloatLayout.findViewById(R.id.ivLineToRight) + ivLineToLeft = mFloatLayout.findViewById(R.id.ivLineToLeft) + ivOverTake = mFloatLayout.findViewById(R.id.ivOverTake) + ivPullOver = mFloatLayout.findViewById(R.id.ivPullOver) + ivTakeOverRecover = mFloatLayout.findViewById(R.id.ivTakeOverRecover) + ivTakeOverRequest = mFloatLayout.findViewById(R.id.ivTakeOverRequest) + ivEmergencyStop = mFloatLayout.findViewById(R.id.ivEmergencyStop) + //关闭按钮 + ivCloseExam.setOnClickListener { + hideWindow() + } + //绕障开关 + tbLaneChange.isChecked = SPUtils.getInstance().getBoolean("lane_change",false) + tbLaneChange.setOnCheckedChangeListener{ _, isChecked -> + CallerAutoPilotControlManager.sendLaneChangeRestrainValid(isChecked) + SPUtils.getInstance().put("lane_change",isChecked) + } + tvLineChange.setOnClickListener { + tbLaneChange.performClick() + } + //AEB开关 + tbAeb.isChecked = SPUtils.getInstance().getBoolean("aeb",false) + tbAeb.setOnCheckedChangeListener{ _, isChecked -> + CallerAutoPilotControlManager.sendAebCmd(isChecked) + SPUtils.getInstance().put("aeb",isChecked) + } + tvAeb.setOnClickListener { + tbAeb.performClick() + } + //地图限速开关 + tbMapSpeed.isChecked = SPUtils.getInstance().getBoolean("map_speed",false) + tbMapSpeed.setOnCheckedChangeListener { _, isChecked -> + CallerAutoPilotControlManager.sendHadmapSpeedLimitValid(isChecked) + SPUtils.getInstance().put("map_speed",isChecked) + } + tvMapSpeed.setOnClickListener { + tbMapSpeed.performClick() + } + //环岛模式 + tbRamp.isChecked = SPUtils.getInstance().getBoolean("ramp",false) + tbRamp.setOnCheckedChangeListener { _, isChecked -> + CallerAutoPilotControlManager.sendRampThetaValid(isChecked) + SPUtils.getInstance().put("ramp",isChecked) + } + tvRamp.setOnClickListener { + tbRamp.performClick() + } + //停车让行开关 + tbStopYield.isChecked = SPUtils.getInstance().getBoolean("stop_yield",false) + tbStopYield.setOnCheckedChangeListener{ _, isChecked -> + CallerAutoPilotControlManager.sendStopYieldValid(isChecked) + SPUtils.getInstance().put("stop_yield",isChecked) + } + tvStopYield.setOnClickListener { + tbStopYield.performClick() + } + //向左变道 + ivLineToLeft.setOnClickListener{ + CallerAutoPilotControlManager.sendPlanningLineChangeCmd(1) + } + //向右变道 + ivLineToRight.setOnClickListener{ + CallerAutoPilotControlManager.sendPlanningLineChangeCmd(2) + } + //路边停车 + ivPullOver.setOnClickListener{ + CallerAutoPilotControlManager.sendPlanningPullOverCmd(1) + } + //超车 + ivOverTake.setOnClickListener{ + CallerAutoPilotControlManager.sendPlanningLineChangeCmd(3) + } + //接管请求 + ivTakeOverRequest.setOnClickListener{ + // takeOverRequest 执行时,避免多次提示 + if (takeOverRequest) { + return@setOnClickListener + } + // 接管请求提示 + CallerDevaToolsManager.takeOver(TAKE_OVER_REQUEST) + CallerHmiManager.warningV2X( + EventTypeEnumNew.TAKE_OVER_EVENT.poiType, + EventTypeEnumNew.TAKE_OVER_EVENT.content, + EventTypeEnumNew.TAKE_OVER_EVENT.tts, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOverRequest = true + CallerTakeOverManager.invokeTakeOverEvent(true) + //加入消息盒子 + CallerMsgBoxManager.saveMsgBox( + MsgBoxBean( + MsgBoxType.AUTOPILOT, AutopilotMsg( + EventTypeEnumNew.TAKE_OVER_EVENT.poiType.toInt(), + EventTypeEnumNew.TAKE_OVER_EVENT.content, + EventTypeEnumNew.TAKE_OVER_EVENT.tts, + System.currentTimeMillis() + ) + ) + ) + } + + override fun onDismiss() { + takeOverRequest = false + CallerTakeOverManager.invokeTakeOverEvent(false) + } + },expireTime =3000L, isFromObu = false + ) + SoundUtils.playRing(mActivity) + } + //恢复自驾 + ivTakeOverRecover.setOnClickListener{ + CallerAutoPilotControlManager.sendPlanningLineChangeCmd(4) + } + //应急停车 + ivEmergencyStop.setOnClickListener { + CallerAutoPilotControlManager.sendPlanningPullOverCmd(3) + } + } + + @SuppressLint("ClickableViewAccessibility") + override fun onTouch(v: View?, motionEvent: MotionEvent?): Boolean { + when (motionEvent?.action) { + MotionEvent.ACTION_DOWN -> { + // 获取相对View的坐标,即以此View左上角为原点 + mInViewX = motionEvent.x + mInViewY = motionEvent.y + // 获取相对屏幕的坐标,即以屏幕左上角为原点 + mInScreenX = motionEvent.rawX + mInScreenY = motionEvent.rawY + } + MotionEvent.ACTION_MOVE -> { + // 更新浮动窗口位置参数 + mInScreenX = motionEvent.rawX + mInScreenY = motionEvent.rawY + if(((mInScreenX - mInViewX)-mWindowParams!!.x).absoluteValue>150 || ((mInScreenY - mInViewY)-mWindowParams!!.y).absoluteValue>150){ + return true + } + mWindowParams!!.x = (mInScreenX - mInViewX).toInt() + mWindowParams!!.y = (mInScreenY - mInViewY).toInt() + // 手指移动的时候更新小悬浮窗的位置 + mWindowManager!!.updateViewLayout(mFloatLayout, mWindowParams) + } + } + return true + } + + fun showWindow() { + if (mFloatLayout.parent == null) { + val metrics = DisplayMetrics() + // 默认固定位置,靠屏幕右边缘的中间 + mWindowManager!!.defaultDisplay.getMetrics(metrics) + mWindowParams!!.x = metrics.widthPixels-890 + mWindowParams!!.y = metrics.heightPixels - BarUtils.getStatusBarHeight()-1140 + mWindowManager!!.addView(mFloatLayout, mWindowParams) + } + } + + fun hideWindow(){ + if (mFloatLayout.parent != null){ + mWindowManager!!.removeView(mFloatLayout) + } + } + + fun setClickListener(clickListener: ClickListener) { + this.clickListener = clickListener + } + + interface ClickListener { + fun closeWindow() + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_control.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_control.png new file mode 100644 index 0000000000..a40da16f09 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_control.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_control_title.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_control_title.png new file mode 100644 index 0000000000..585ffb61a2 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_control_title.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_seat_status.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_seat_status.xml new file mode 100644 index 0000000000..a5c4aef6b3 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_seat_status.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_vehicle_mode.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_vehicle_mode.xml new file mode 100644 index 0000000000..a5c4aef6b3 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_vehicle_mode.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_emergency_stop_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_emergency_stop_selector.xml new file mode 100644 index 0000000000..cdd4550690 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_emergency_stop_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_line_to_left_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_line_to_left_selector.xml new file mode 100644 index 0000000000..b2457ae91d --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_line_to_left_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_line_to_right_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_line_to_right_selector.xml new file mode 100644 index 0000000000..252b8b2bea --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_line_to_right_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_over_take_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_over_take_selector.xml new file mode 100644 index 0000000000..ee6d19f6c3 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_over_take_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_pull_over_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_pull_over_selector.xml new file mode 100644 index 0000000000..ed908b36c1 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_pull_over_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_take_over_recover_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_take_over_recover_selector.xml new file mode 100644 index 0000000000..ee16c7a210 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_take_over_recover_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_take_over_request_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_take_over_request_selector.xml new file mode 100644 index 0000000000..107d1aac83 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_take_over_request_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_aeb_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_aeb_normal.png new file mode 100644 index 0000000000..ce1e907804 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_aeb_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_aeb_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_aeb_pressed.png new file mode 100644 index 0000000000..d0af17c447 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_aeb_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_central_control.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_central_control.png new file mode 100644 index 0000000000..127af713a5 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_central_control.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_emergency_stop_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_emergency_stop_normal.png new file mode 100644 index 0000000000..3a9a84b659 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_emergency_stop_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_emergency_stop_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_emergency_stop_pressed.png new file mode 100644 index 0000000000..8e1c977419 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_emergency_stop_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_exam_close.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_exam_close.png new file mode 100644 index 0000000000..1cfacfa7cd Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_exam_close.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_lane_change_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_lane_change_normal.png new file mode 100644 index 0000000000..92745cfb2a Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_lane_change_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_lane_change_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_lane_change_pressed.png new file mode 100644 index 0000000000..f708d033f0 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_lane_change_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_left_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_left_normal.png new file mode 100644 index 0000000000..7482f54aaa Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_left_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_left_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_left_pressed.png new file mode 100644 index 0000000000..3233076639 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_left_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_right_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_right_normal.png new file mode 100644 index 0000000000..3e1b5e01bc Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_right_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_right_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_right_pressed.png new file mode 100644 index 0000000000..817f4a295d Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_line_to_right_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_map_speed_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_map_speed_normal.png new file mode 100644 index 0000000000..98367889ab Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_map_speed_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_map_speed_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_map_speed_pressed.png new file mode 100644 index 0000000000..131d9e4585 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_map_speed_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_over_take_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_over_take_normal.png new file mode 100644 index 0000000000..a62e75c72a Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_over_take_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_over_take_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_over_take_pressed.png new file mode 100644 index 0000000000..692a14fbdd Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_over_take_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_pull_over_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_pull_over_normal.png new file mode 100644 index 0000000000..4a9eab62f3 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_pull_over_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_pull_over_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_pull_over_pressed.png new file mode 100644 index 0000000000..d198e112d2 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_pull_over_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_ramp_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_ramp_normal.png new file mode 100644 index 0000000000..c52bf24264 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_ramp_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_ramp_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_ramp_pressed.png new file mode 100644 index 0000000000..b6b5e17b2f Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_ramp_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_stop_yield_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_stop_yield_normal.png new file mode 100644 index 0000000000..cd94d7ae62 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_stop_yield_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_stop_yield_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_stop_yield_pressed.png new file mode 100644 index 0000000000..37c52b4a41 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_stop_yield_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_recover_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_recover_normal.png new file mode 100644 index 0000000000..a54fa85dad Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_recover_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_recover_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_recover_pressed.png new file mode 100644 index 0000000000..c8e1060915 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_recover_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_request_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_request_normal.png new file mode 100644 index 0000000000..00d1510afc Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_request_normal.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_request_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_request_pressed.png new file mode 100644 index 0000000000..4360ad9f90 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/icon_take_over_request_pressed.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_driver_normal_bg.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_driver_normal_bg.png new file mode 100644 index 0000000000..d89b7aeb2e Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_driver_normal_bg.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_driver_press_bg.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_driver_press_bg.png new file mode 100644 index 0000000000..d1e60e4e92 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_driver_press_bg.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_rear_normal_bg.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_rear_normal_bg.png new file mode 100644 index 0000000000..953da2edc1 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_rear_normal_bg.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_rear_press_bg.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_rear_press_bg.png new file mode 100644 index 0000000000..9621aa158c Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/seat_rear_press_bg.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_aeb.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_aeb.xml new file mode 100644 index 0000000000..d3466aaeb1 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_aeb.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_lane_change.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_lane_change.xml new file mode 100644 index 0000000000..c3bca4b006 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_lane_change.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_map_speed.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_map_speed.xml new file mode 100644 index 0000000000..ccf9af9e4c --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_map_speed.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_ramp.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_ramp.xml new file mode 100644 index 0000000000..4e65c942d0 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_ramp.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_seat_driver.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_seat_driver.xml new file mode 100644 index 0000000000..e41e39b2b4 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_seat_driver.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_seat_rear.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_seat_rear.xml new file mode 100644 index 0000000000..89d64d52a0 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_seat_rear.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_stop_yield.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_stop_yield.xml new file mode 100644 index 0000000000..8fc7e7cd46 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/selector_stop_yield.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_exam_control.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_exam_control.xml new file mode 100644 index 0000000000..3684b72e84 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_exam_control.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/values/color.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/values/color.xml new file mode 100644 index 0000000000..b4c9edcf08 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/values/color.xml @@ -0,0 +1,7 @@ + + + + #D5D5D5 + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml index de843c7a8f..095996c9f2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml @@ -16,4 +16,21 @@ 环境 其他 + 车辆控制 + 车辆模式 + 障碍物 + 制动 + 限速 + 环岛 + 停车 + 乘坐状态 + 左变道 + 右变道 + 路边停车 + 超车 + 接管请求 + 恢复自驾 + 应急停车 + 关闭考试车辆控制 + \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index ac721b3ae5..356329d740 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -117,6 +117,11 @@ interface IDevaToolsProvider : IProvider { */ fun initAiCollect(view: View) + /** + * 展示考试车辆控制窗口 + */ + fun showExamControlWindow(view: View) + /** * 当工控机回调时调用 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index c04b727233..e84a09e65f 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -157,6 +157,13 @@ object CallerDevaToolsManager { devaToolsProviderApi?.initAiCollect(view) } + /** + * 展示考试车辆控制窗口 + */ + fun showExamControlWindow(view: View){ + devaToolsProviderApi?.showExamControlWindow(view) + } + /** * 收到工控机回调时触发 */ diff --git a/core/mogo-core-res/src/main/res/values/dimens.xml b/core/mogo-core-res/src/main/res/values/dimens.xml index aa3fbd6092..a4e640e404 100644 --- a/core/mogo-core-res/src/main/res/values/dimens.xml +++ b/core/mogo-core-res/src/main/res/values/dimens.xml @@ -1032,6 +1032,7 @@ 1090dp 1092dp 1100dp + 1114dp 1125dp 1170dp 1200dp