diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperControllerStatusCallback.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperControllerStatusCallback.java index 1b247f036e..2ad48d1d5b 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperControllerStatusCallback.java +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperControllerStatusCallback.java @@ -12,6 +12,6 @@ public interface ISweeperControllerStatusCallback { void onVRModeChanged(boolean isVRMode); // 自车定位 void onCarLocationChanged(MogoLocation location); - //开始开启自动驾驶 - void startOpenAutopilot(); + //自动驾驶状态 + void onAutopilotState(int state); } diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java index 54945e8432..012fde2668 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java @@ -183,7 +183,9 @@ public abstract class BaseSweeperTabFragment } } + @Override + public void onAutopilotState(int state) { + ThreadUtils.runOnUiThread(() ->mView.setAutoState(state)); + } + /** * 获取自动驾驶状态 * @return @@ -90,12 +95,6 @@ public class SweeperPresenter extends Presenter public int getAutopilotState() { return SweeperTaskModel.getInstance().getAutopilotState(); } - - @Override - public void startOpenAutopilot() { - - } - /** * 清除路线缓存数据 */ diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt index 6d1e0d6bd2..a1895fc2ee 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt @@ -30,9 +30,10 @@ object SweeperCloudTaskUtils { */ @JvmStatic fun mockQueryCurrentTaskInfo() { - UiThreadHandler.getsUiHandler().postDelayed({ - mockSendCloudTaskInfo(MessageType.PadSendGetTaskReq) - },1000) +// UiThreadHandler.getsUiHandler().postDelayed({ +// mockSendCloudTaskInfo(MessageType.PadSendGetTaskReq) +// },1000) + SweeperTaskModel.getInstance().getCurrentTask() } /** diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficDataView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficDataView.kt index b8885f7231..6ee2639db7 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficDataView.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficDataView.kt @@ -12,10 +12,7 @@ import chassis.Chassis.LightSwitch import chassis.ChassisStatesOuterClass.BMSSystemStates import chassis.ChassisStatesOuterClass.SweeperFuTianTaskSystemStates import com.elegant.utils.UiThreadHandler -import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGearStateListener -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener -import com.mogo.eagle.core.function.api.autopilot.IMoGoSweeperFutianCleanSystemListener +import com.mogo.eagle.core.function.api.autopilot.* import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d @@ -32,16 +29,15 @@ class SweeperTrafficDataView : ConstraintLayout, IMoGoBatteryManagementSystemListener, IMoGoChassisLamplightListener, IMoGoChassisGearStateListener, - IMoGoSweeperFutianCleanSystemListener -{ + IMoGoSweeperFutianCleanSystemListener { private var tapPositionView //方向盘下方的档位 : TapPositionView? = null private var speedImage //速度图标 : ImageView? = null private var speedTextView //速度值 : TextView? = null - private var sweeperTurnSignal //转向灯 - : TurnSignalView? = null + private var sweeperAutoState //自动驾驶状态 + : TextView? = null private var tvBattery //电量百分比展示 : TextView? = null private var ivBgWaterWarning //水位预警背景图 @@ -72,7 +68,7 @@ class SweeperTrafficDataView : ConstraintLayout, tapPositionView = findViewById(R.id.sweeperTrafficPosition) speedImage = findViewById(R.id.sweeperSpeedImage) speedTextView = findViewById(R.id.sweeperSpeedText) - sweeperTurnSignal = findViewById(R.id.sweeperTurnSignal) + sweeperAutoState = findViewById(R.id.sweeperAutoState) tvBattery = findViewById(R.id.tvBattery) ivBgWaterWarning = findViewById(R.id.sweeperIvBgWaterWarning) ivWater = findViewById(R.id.sweeperIvWater) @@ -92,7 +88,7 @@ class SweeperTrafficDataView : ConstraintLayout, override fun onDetachedFromWindow() { super.onDetachedFromWindow() - CallerBatteryManagementSystemListenerManager.removeListener(TAG ) + CallerBatteryManagementSystemListenerManager.removeListener(TAG) CallerChassisLamplightListenerManager.removeListener(TAG) CallerChassisGearStateListenerManager.removeListener(TAG) CallerSweeperFutianCleanSystemListenerManager.removeListener(TAG) @@ -101,7 +97,7 @@ class SweeperTrafficDataView : ConstraintLayout, override fun onSweeperFutianTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) {} override fun onSweeperFutianCleanSystemState(cleanSystemState: SweeperFuTianTaskSystemStates) { val current = System.currentTimeMillis() - if (current - mCurrentTimeWaterMillis <=VEHICLE_STATE_INTERVAL_MILLIS) { + if (current - mCurrentTimeWaterMillis <= VEHICLE_STATE_INTERVAL_MILLIS) { return } mCurrentTimeWaterMillis = current @@ -121,23 +117,49 @@ class SweeperTrafficDataView : ConstraintLayout, @SuppressLint("SetTextI18n") override fun onBatteryManagementSystemStates(states: BMSSystemStates) { val current = System.currentTimeMillis() - if (current - mCurrentTimeBatteryMillis <=VEHICLE_STATE_INTERVAL_MILLIS) { + if (current - mCurrentTimeBatteryMillis <= VEHICLE_STATE_INTERVAL_MILLIS) { return } mCurrentTimeBatteryMillis = current d(SceneConstant.M_SWEEPER + TAG, "电量:${states.bmsSoc}") - UiThreadHandler.post{ + UiThreadHandler.post { tvBattery?.text = "${states.bmsSoc.roundToInt()}%" } } + /** * 车辆转向灯 * @param directionLight */ override fun onAutopilotLightSwitchData(lightSwitch: LightSwitch?) { //转向灯状态 0是正常 1是左转 2是右转 - if (lightSwitch != null) { - sweeperTurnSignal?.setTurnLight(lightSwitch) + } + + /** + * 设置自动驾驶状态 + */ + fun setAutoState(state: Int) { + when (state) { + //不可自动驾驶 + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> { + sweeperAutoState?.text="自动驾驶" + sweeperAutoState?.setBackgroundResource(R.drawable.icon_not_auto) + } + //人工驾驶 + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> { + sweeperAutoState?.text="人工驾驶" + sweeperAutoState?.setBackgroundResource(R.drawable.icon_auto) + } + //自动驾驶中 + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { + sweeperAutoState?.text="自动驾驶" + sweeperAutoState?.setBackgroundResource(R.drawable.icon_auto) + } + //平行驾驶 + IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { + sweeperAutoState?.text="平行驾驶" + sweeperAutoState?.setBackgroundResource(R.drawable.icon_auto) + } } } @@ -148,6 +170,7 @@ class SweeperTrafficDataView : ConstraintLayout, override fun onAutopilotBrakeLightData(brakeLight: Boolean) { d(TAG, "刹车灯:$brakeLight") } + /** * 方向盘下方的档位 * @param gear @@ -158,9 +181,11 @@ class SweeperTrafficDataView : ConstraintLayout, tapPositionView?.updateWithGear(gear) } } - fun getSpeedImage():ImageView?{ - return speedImage + + fun getSpeedImage(): ImageView? { + return speedImage } + /** * 速度设置 */ diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_auto.png b/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_auto.png new file mode 100755 index 0000000000..b76ce3dd2b Binary files /dev/null and b/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_auto.png differ diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_not_auto.png b/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_not_auto.png new file mode 100755 index 0000000000..3cb8679a55 Binary files /dev/null and b/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_not_auto.png differ diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_traffic_data.xml b/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_traffic_data.xml index b6ae34a471..17e9645c22 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_traffic_data.xml +++ b/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_traffic_data.xml @@ -68,21 +68,27 @@ app:layout_constraintBottom_toBottomOf="@+id/sweeperTrafficPosition" android:layout_marginStart="@dimen/dp_34" /> - + android:layout_marginTop="@dimen/dp_20" + android:gravity="center" + android:textColor="@color/white" + android:textSize="@dimen/dp_28" + android:text="自动驾驶" + android:background="@drawable/icon_not_auto" + android:layout_marginStart="@dimen/dp_20"/>