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 93f9295869..82625092e3 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
@@ -1461,4 +1461,20 @@ class MoGoAutopilotControlProvider :
return AdasManager.getInstance().getNodeStateInfo(name)
}
+ override fun sendFrontCamera30Cmd(isStart: Boolean): Boolean {
+ return AdasManager.getInstance().sendFrontCamera30Cmd(isStart)>-1
+ }
+
+ override fun sendLidarCmd(isStart: Boolean): Boolean {
+ return AdasManager.getInstance().sendLidarCmd(isStart)> -1
+ }
+
+ override fun sendLeftFrontRadarCmd(isStart: Boolean): Boolean {
+ return AdasManager.getInstance().sendLeftFrontRadarCmd(isStart)>-1
+ }
+
+ override fun sendSimulationWireFailure(isTrigger: Boolean): Boolean {
+ return AdasManager.getInstance().sendSimulationWireFailure(isTrigger)>-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/exam/ExamControlWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/exam/ExamControlWindow.kt
index 81e38db78d..f8399abb88 100644
--- 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
@@ -63,6 +63,14 @@ class ExamControlWindow constructor(activity: Activity): View.OnTouchListener{
private lateinit var tvRamp: TextView //环岛文字
private lateinit var tbStopYield: ToggleButton //停车图标
private lateinit var tvStopYield: TextView //停车文字
+ private lateinit var ivCameraFault: ImageView //摄像头故障
+ private lateinit var ivCameraReset: ImageView //摄像头恢复
+ private lateinit var ivLidarFault: ImageView //激光雷达故障
+ private lateinit var ivLidarReset: ImageView //激光雷达恢复
+ private lateinit var ivRadarFault: ImageView //毫米波雷达故障
+ private lateinit var ivRadarReset: ImageView //毫米波雷达恢复
+ private lateinit var ivWireFault: ImageView //线控故障
+ private lateinit var ivWireReset: ImageView //线控恢复
private lateinit var tbSeatMainDriver: ToggleButton //主驾
private lateinit var tbSeatPassenger: ToggleButton //副驾
private lateinit var tbSeatRear: ToggleButton //乘客
@@ -89,8 +97,8 @@ class ExamControlWindow constructor(activity: Activity): View.OnTouchListener{
it.format = PixelFormat.RGBA_8888
it.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
it.gravity = Gravity.START or Gravity.TOP
- it.width = 906
- it.height = 1176
+ it.width = 933
+ it.height = 1489
it.alpha = 1.0f
}
}
@@ -107,6 +115,14 @@ class ExamControlWindow constructor(activity: Activity): View.OnTouchListener{
tvRamp = mFloatLayout.findViewById(R.id.tvRamp)
tbStopYield = mFloatLayout.findViewById(R.id.tbStopYield)
tvStopYield = mFloatLayout.findViewById(R.id.tvStopYield)
+ ivCameraFault = mFloatLayout.findViewById(R.id.ivCameraFault)
+ ivCameraReset = mFloatLayout.findViewById(R.id.ivCameraReset)
+ ivLidarFault = mFloatLayout.findViewById(R.id.ivLidarFault)
+ ivLidarReset = mFloatLayout.findViewById(R.id.ivLidarReset)
+ ivRadarFault = mFloatLayout.findViewById(R.id.ivRadarFault)
+ ivRadarReset = mFloatLayout.findViewById(R.id.ivRadarReset)
+ ivWireFault = mFloatLayout.findViewById(R.id.ivWireFault)
+ ivWireReset = mFloatLayout.findViewById(R.id.ivWireReset)
tbSeatMainDriver = mFloatLayout.findViewById(R.id.tbSeatMainDriver)
tbSeatPassenger = mFloatLayout.findViewById(R.id.tbSeatPassenger)
tbSeatRear = mFloatLayout.findViewById(R.id.tbSeatRear)
@@ -166,6 +182,38 @@ class ExamControlWindow constructor(activity: Activity): View.OnTouchListener{
tvStopYield.setOnClickListener {
tbStopYield.performClick()
}
+ //摄像头故障
+ ivCameraFault.setOnClickListener {
+ CallerAutoPilotControlManager.sendFrontCamera30Cmd(false)
+ }
+ //摄像头恢复
+ ivCameraReset.setOnClickListener {
+ CallerAutoPilotControlManager.sendFrontCamera30Cmd(true)
+ }
+ //激光雷达故障
+ ivLidarFault.setOnClickListener {
+ CallerAutoPilotControlManager.sendLidarCmd(false)
+ }
+ //激光雷达恢复
+ ivLidarReset.setOnClickListener {
+ CallerAutoPilotControlManager.sendLidarCmd(true)
+ }
+ //毫米波雷达故障
+ ivRadarFault.setOnClickListener {
+ CallerAutoPilotControlManager.sendLeftFrontRadarCmd(false)
+ }
+ //毫米波雷达恢复
+ ivRadarReset.setOnClickListener {
+ CallerAutoPilotControlManager.sendLeftFrontRadarCmd(true)
+ }
+ //线控故障
+ ivWireFault.setOnClickListener {
+ CallerAutoPilotControlManager.sendSimulationWireFailure(true)
+ }
+ //线控恢复
+ ivWireReset.setOnClickListener {
+ CallerAutoPilotControlManager.sendSimulationWireFailure(false)
+ }
//向左变道
ivLineToLeft.setOnClickListener{
CallerAutoPilotControlManager.sendPlanningLineChangeCmd(1)
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_normal.png
new file mode 100644
index 0000000000..545e0f5f23
Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_normal.png differ
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_pressed.png
new file mode 100644
index 0000000000..b1b03f613d
Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_pressed.png differ
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_reset_normal.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_reset_normal.png
new file mode 100644
index 0000000000..f65979bcb9
Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_reset_normal.png differ
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_reset_pressed.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_reset_pressed.png
new file mode 100644
index 0000000000..ee65af2d3e
Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_exam_fault_reset_pressed.png differ
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
index ad6d51ad00..3403bc0a95 100644
Binary files a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_exam_control.png 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/exam_fault_reset.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_fault_reset.xml
new file mode 100644
index 0000000000..07b9a844d0
--- /dev/null
+++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_fault_reset.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_fault_trigger.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_fault_trigger.xml
new file mode 100644
index 0000000000..ca44f900f9
--- /dev/null
+++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/exam_fault_trigger.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
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
index f87e7f04f6..0e52f402fc 100644
--- 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
@@ -1,7 +1,7 @@
@@ -180,14 +180,181 @@
android:textColor="@color/exam_text_color"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -255,11 +422,11 @@
android:id="@+id/ivLineToRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- app:layout_constraintTop_toBottomOf="@id/viewVehicleModeBg"
+ app:layout_constraintTop_toBottomOf="@id/viewFaultBg"
app:layout_constraintRight_toRightOf="parent"
android:src="@drawable/exam_line_to_right_selector"
- android:layout_marginTop="@dimen/dp_40"
- android:layout_marginRight="@dimen/dp_78"
+ android:layout_marginTop="@dimen/dp_30"
+ android:layout_marginRight="@dimen/dp_92"
android:contentDescription="@string/exam_line_to_right"
/>
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 1ea3d4ae20..ba13a4df93 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
@@ -23,6 +23,11 @@
限速
环岛
停车
+ 故障告警
+ 摄像头
+ 激光雷达
+ 毫米波雷达
+ 线控
乘坐状态
左变道
右变道
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 a00b103231..5441e4b38c 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
@@ -679,4 +679,28 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
*/
fun getNodeStateInfo(name: AdasConstants.NodeName): NodeStateInfo
+ /**
+ * 摄像头故障模拟
+ * @param isStart false故障 true恢复
+ */
+ fun sendFrontCamera30Cmd(isStart: Boolean): Boolean
+
+ /**
+ * 激光雷达故障模拟
+ * @param isStart false故障 true恢复
+ */
+ fun sendLidarCmd(isStart: Boolean): Boolean
+
+ /**
+ * 毫米波雷达故障模拟
+ * @param isStart false故障 true恢复
+ */
+ fun sendLeftFrontRadarCmd(isStart: Boolean): Boolean
+
+ /**
+ * 线控失效故障模拟
+ * @param isTrigger false故障 true恢复
+ */
+ fun sendSimulationWireFailure(isTrigger: 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 994f239b8e..87c791c4b6 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
@@ -1029,4 +1029,37 @@ object CallerAutoPilotControlManager {
fun getNodeStateInfo(name: AdasConstants.NodeName): NodeStateInfo? {
return providerApi?.getNodeStateInfo(name)
}
+
+ /**
+ * 摄像头故障模拟
+ * @param isStart false故障 true恢复
+ */
+ fun sendFrontCamera30Cmd(isStart: Boolean): Boolean{
+ return providerApi?.sendFrontCamera30Cmd(isStart)?: false
+ }
+
+ /**
+ * 激光雷达故障模拟
+ * @param isStart false故障 true恢复
+ */
+ fun sendLidarCmd(isStart: Boolean): Boolean{
+ return providerApi?.sendLidarCmd(isStart)?:false
+ }
+
+ /**
+ * 毫米波雷达故障模拟
+ * @param isStart false故障 true恢复
+ */
+ fun sendLeftFrontRadarCmd(isStart: Boolean): Boolean{
+ return providerApi?.sendLeftFrontRadarCmd(isStart)?:false
+ }
+
+ /**
+ * 线控失效故障模拟
+ * @param isTrigger false故障 true恢复
+ */
+ fun sendSimulationWireFailure(isTrigger: Boolean): Boolean{
+ return providerApi?.sendSimulationWireFailure(isTrigger)?:false
+ }
+
}
\ No newline at end of file
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 5193688dc8..d212e6b0ec 100644
--- a/core/mogo-core-res/src/main/res/values/dimens.xml
+++ b/core/mogo-core-res/src/main/res/values/dimens.xml
@@ -1061,6 +1061,7 @@
1306dp
1373dp
1386dp
+ 1489dp
1550dp
1600dp
1860dp