From 3a1284bdfaea352a2c6100c86acac8d70be30087 Mon Sep 17 00:00:00 2001 From: bxb Date: Fri, 26 May 2023 22:03:54 +0800 Subject: [PATCH] =?UTF-8?q?[sweeper-cloud]=E5=9C=A8=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E8=B4=B4=E8=BE=B9=E6=95=B0=E6=8D=AE=E5=A4=84=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=A4=84=E7=90=86=EF=BC=8C=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E5=9C=A8=E4=BB=BB=E5=8A=A1=E7=BB=93=E6=9D=9F=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E8=BF=98=E7=BB=98=E5=88=B6=E8=B4=B4=E8=BE=B9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/fragment/SweeperFragment.kt | 6 ++- .../sweepercloud/model/SweeperTaskModel.java | 19 +++++++- .../presenter/SweeperPresenter.java | 6 +++ .../view/FontAdaptionTextView.java | 47 +++++++++++++++++++ .../view/SweeperTrafficLightView.kt | 3 ++ .../och/sweepercloud/view/WeltMapOverView.kt | 4 +- .../res/layout/dialog_sweeper_cloud_view.xml | 2 +- .../res/layout/sweeper_welt_map_overview.xml | 9 ++-- 8 files changed, 85 insertions(+), 11 deletions(-) create mode 100644 OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/FontAdaptionTextView.java diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt index f7e747fd2e..b96883a263 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt @@ -186,6 +186,7 @@ class SweeperFragment : BaseSweeperTabFragment points = new ArrayList<>();//全路径信息 private SweeperTask.TaskModel mSubTaskType = SweeperTask.TaskModel.DEFAULT_MODEL; //1自动驾驶 2.人工驾驶 0:无效值 private int mCurrentLineId = 0; //当前路线id - private int mLineId = 0;//上一次存储的路线id + private int mLineId = -1;//上一次存储的路线id //自动驾驶状态 private int mAutopilotState = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE; //当前子任务id @@ -99,6 +99,8 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM private String latitude;//纬度 + private boolean isHasTaskInfo=false;//判断是否有任务数据 + //用于对应messageType和reqNo绑定在一起,保证请求的reqNo和响应的reqNo一致 private HashMap msgTypeAndReqNo = new HashMap<>(); @@ -188,6 +190,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM @Override public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) { if (null != routeList && routeList.getWayPointsList() != null && routeList.getWayPointsList().size() > 0) { + CallerLogger.INSTANCE.d(M_SWEEPER + TAG,"onAutopilotRotting: "+printMessage(routeList)); if (mCurrentLineId != mLineId) {//判断是否同一条路线 mLineId = mCurrentLineId; points.addAll(coordinateConverterWgsToGcjList(mContext, routeList.getWayPointsList())); @@ -212,8 +215,16 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM public void clearRouteList() { points.clear(); mSubTaskType = SweeperTask.TaskModel.UNRECOGNIZED; + mCurrentLineId=0; + mLineId=-1; } + /** + * 判断是否有任务数据 + */ + public void isHasTaskInfo(boolean isHasTaskInfo){ + this.isHasTaskInfo=isHasTaskInfo; + } /** * 获取自动开始状态 @@ -398,12 +409,16 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM if (roboSweeperTaskIndex == null) { return; } + //没有任务数据时,不处理贴边 + if (!isHasTaskInfo){ + return; + } long current = System.currentTimeMillis(); if (current - mWeltDataCurrentTimeMillis <= WELT_DATA_INTERVAL_MILLIS) { return; } mWeltDataCurrentTimeMillis = current; - //CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onSweeperFutianTaskIndexData:" + printMessage(roboSweeperTaskIndex)); + CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onSweeperFutianTaskIndexData:" + printMessage(roboSweeperTaskIndex)); handleWeltData(roboSweeperTaskIndex); } diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/presenter/SweeperPresenter.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/presenter/SweeperPresenter.java index 2fe3d90424..225e1b0046 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/presenter/SweeperPresenter.java +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/presenter/SweeperPresenter.java @@ -109,6 +109,12 @@ public class SweeperPresenter extends Presenter SweeperTaskModel.getInstance().setSubtask(subTaskId, subTaskType, currentLineId); } + /** + * 判断是否有任务数据 + */ + public void isHasTaskInfo(boolean isHasTaskInfo){ + SweeperTaskModel.getInstance().isHasTaskInfo(isHasTaskInfo); + } /** * 获取当前正在执行的任务 */ diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/FontAdaptionTextView.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/FontAdaptionTextView.java new file mode 100644 index 0000000000..816baff142 --- /dev/null +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/FontAdaptionTextView.java @@ -0,0 +1,47 @@ +package com.mogo.och.sweepercloud.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.util.TypedValue; +import android.widget.TextView; + +public class FontAdaptionTextView extends TextView { + public FontAdaptionTextView(Context context) { + super(context); + } + + public FontAdaptionTextView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public FontAdaptionTextView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + if (getMeasuredWidth() != 0) { + + //判断View字体行数 + if (getLayout().getLineCount() > 1) { + //获取view内部间隔 + int l = getPaddingLeft(); + int r = getPaddingRight(); + float pp = 0; + //计算字符串长度 + for (int i = 0; i < getLayout().getLineCount(); i++) { + pp = pp + l + r + getLayout().getLineWidth(i); + } + + //计算view的宽度与字符串长度的比例 + float f = getMeasuredWidth() / pp; + //获取缩放后的字体高度 + float s = getTextSize() * f; + //设置控件字体大小 + setTextSize(TypedValue.COMPLEX_UNIT_PX, s); + } + } + } + +} diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt index 1e97488bad..4984e7866a 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt @@ -8,6 +8,8 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.sweepercloud.R import kotlinx.android.synthetic.main.sweeper_traffic_light_view.view.* @@ -56,6 +58,7 @@ class SweeperTrafficLightView @JvmOverloads constructor( override fun showTrafficLight(checkLightId: TrafficLightEnum, lightSource: DataSourceType) { mCurrentLightId = checkLightId updateTrafficLightIcon(checkLightId) + CallerLogger.d(SceneConstant.M_SWEEPER + TAG,lightSource.name) } /** diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/WeltMapOverView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/WeltMapOverView.kt index 20e8978498..5f157e0d67 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/WeltMapOverView.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/WeltMapOverView.kt @@ -26,6 +26,7 @@ import com.mogo.och.sweepercloud.database.bean.WeltDataBean import com.mogo.och.sweepercloud.util.SweeperMapAssetStyleUtil import kotlinx.android.synthetic.main.sweeper_welt_map_overview.view.* + /** * 作业任务全览图 */ @@ -302,7 +303,7 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { } private fun setDistance(distance: String) { - taskWeltDistanceTv.text = "贴边:${distance}" + taskWeltDistanceTv.text="贴边:${distance}" } fun setProgress(progress: String?) { @@ -319,7 +320,6 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { } } } - fun onCreateView(savedInstanceState: Bundle?) { sweeperTextureMapView.onCreate(savedInstanceState) } diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml b/OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml index 1f8c7ed1b2..a0b0c6a17b 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml +++ b/OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml @@ -123,7 +123,7 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> -