Merge branch 'dev_robosweeper-d_231016_6.1.0_combine_business_model' into dev_robosweeper-d_231016_6.1.0_combine_business_model_new

This commit is contained in:
aibingbing
2023-10-18 19:45:59 +08:00
432 changed files with 555 additions and 6445 deletions

View File

@@ -48,6 +48,7 @@ dependencies {
implementation rootProject.ext.dependencies.kotlinstdlib
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.arouter
testImplementation 'junit:junit:4.12'
annotationProcessor rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.amapnavi3dmap

View File

@@ -2,11 +2,11 @@
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "0897ef4b7b6a43fccf8bcf4b2144dafa",
"identityHash": "48873cc5d9f967e9df0245dc045cf91a",
"entities": [
{
"tableName": "welt_data_table",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `subTaskId` INTEGER NOT NULL, `locLon` REAL NOT NULL, `locLat` REAL NOT NULL, `weltDistance` REAL NOT NULL, `cleanMode` INTEGER NOT NULL, `cleanDirection` INTEGER NOT NULL, `cleanIntensity` INTEGER NOT NULL)",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `subTaskId` TEXT, `locLon` REAL NOT NULL, `locLat` REAL NOT NULL, `weltDistance` REAL NOT NULL, `cleanMode` INTEGER NOT NULL, `cleanDirection` INTEGER NOT NULL, `cleanIntensity` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
@@ -17,8 +17,8 @@
{
"fieldPath": "subTaskId",
"columnName": "subTaskId",
"affinity": "INTEGER",
"notNull": true
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "locLon",
@@ -80,7 +80,7 @@
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '0897ef4b7b6a43fccf8bcf4b2144dafa')"
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '48873cc5d9f967e9df0245dc045cf91a')"
]
}
}

View File

@@ -4,7 +4,7 @@
<application>
<!--这里是为了测试增加的广播-->
<receiver android:name=".receiver.TestSweeperBroadcastReceiver">
<receiver android:name=".common.receiver.TestSweeperBroadcastReceiver">
<intent-filter>
<action android:name="com.bus.test_control" />

View File

@@ -9,8 +9,9 @@ import androidx.fragment.app.FragmentManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.fragment.SweeperFragment;
import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.operate.fragment.SweeperOperateFragment;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -25,7 +26,7 @@ public class SweeperProvider implements IMogoOCH {
private static final String TAG = "SweeperProvider";
private SweeperFragment sweeperFragment;
private SweeperOperateFragment sweeperOperateFragment;
private int containerId;
private FragmentActivity activity;
@@ -34,26 +35,26 @@ public class SweeperProvider implements IMogoOCH {
}
private void showFragment() {
FragmentManager supportFragmentManager = activity.getSupportFragmentManager();
if (sweeperFragment == null) {
if (sweeperOperateFragment == null) {
CallerLogger.d(TAG, "准备add fragment======");
Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(sweeperFragment.TAG);
if (fragmentByTag instanceof SweeperFragment) {
sweeperFragment = (SweeperFragment) fragmentByTag;
Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(sweeperOperateFragment.TAG);
if (fragmentByTag instanceof SweeperCloudFragment) {
sweeperOperateFragment = (SweeperOperateFragment) fragmentByTag;
} else {
sweeperFragment = new SweeperFragment();
sweeperOperateFragment = new SweeperOperateFragment();
}
if(!sweeperFragment.isAdded()) {
supportFragmentManager.beginTransaction().add(containerId, sweeperFragment, sweeperFragment.TAG).commitAllowingStateLoss();
if(!sweeperOperateFragment.isAdded()) {
supportFragmentManager.beginTransaction().add(containerId, sweeperOperateFragment, sweeperOperateFragment.TAG).commitAllowingStateLoss();
}
return;
}
CallerLogger.d(TAG, "准备show fragment");
supportFragmentManager.beginTransaction().show(sweeperFragment).commitAllowingStateLoss();
supportFragmentManager.beginTransaction().show(sweeperOperateFragment).commitAllowingStateLoss();
}
private void hideFragment() {
if (sweeperFragment != null) {
if (sweeperOperateFragment != null) {
CallerLogger.d(TAG, "准备hide fragment");
activity.getSupportFragmentManager().beginTransaction().hide(sweeperFragment).commitAllowingStateLoss();
activity.getSupportFragmentManager().beginTransaction().hide(sweeperOperateFragment).commitAllowingStateLoss();
}
}

View File

@@ -1,17 +1,13 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.cloud.callback
import chassis.ChassisStatesOuterClass
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootableResp
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.Code
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.ActionType
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionPush
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskType
/**
@@ -62,7 +58,7 @@ interface ISweeperCloudTaskCallback {
/**
* 设置轨迹坐标点集合
*/
fun setRouteList(routeList: java.util.ArrayList<SweeperRoutePlanningUpdateReqBean.Result>)
fun setRouteList(routeList: java.util.ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>)
/**
* 贴边数据回传
*/

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback;
package com.mogo.och.sweeper.cloud.callback;
import com.mogo.eagle.core.data.map.MogoLocation;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.cloud.callback
interface SweeperCloudDialogClickListener {
fun onConfirm()

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.fragment;
package com.mogo.och.sweeper.cloud.fragment;
import static com.mogo.map.MogoMap.DEFAULT;
@@ -41,15 +41,16 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.sweepercloud.R;
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweepercloud.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweepercloud.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.util.AutopilotModeConfigManager;
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils;
import com.mogo.och.sweepercloud.view.SweeperTrafficDataView;
import com.mogo.och.sweepercloud.view.WeltSmallMapView;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweeper.common.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.cloud.util.AutopilotModeConfigManager;
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils;
import com.mogo.och.sweeper.cloud.view.SweeperCloudTrafficDataView;
import com.mogo.och.sweeper.common.fragment.WeltMapOverViewFragment;
import com.mogo.och.sweeper.common.view.WeltSmallMapView;
import com.zhjt.mogo.adas.data.AiCloudTask;
import java.math.BigDecimal;
@@ -65,7 +66,7 @@ import mogo.telematics.pad.MessagePad;
*
* @author tongchenfei
*/
public abstract class BaseSweeperTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener,
public abstract class BaseSweeperCloudTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener,
IWeltMapSwitchToSmallCallback, View.OnTouchListener {
private static final String TAG = "BaseSweeperTabFragment";
@@ -82,7 +83,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
private MapBizView mapBizView;
private Group groupTestPanel;
//清扫车车辆基本信息 速度 档位 转向灯 红绿灯等
private SweeperTrafficDataView mTrafficDataView;
private SweeperCloudTrafficDataView mTrafficDataView;
//作业任务贴边数据展示图
private WeltSmallMapView mMapWeltView;
//任务作业全览图
@@ -101,7 +102,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
@Override
protected int getLayoutId() {
return R.layout.sweeper_base_fragment;
return R.layout.sweeper_cloud_base_fragment;
}
@Override
@@ -368,7 +369,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
*
* @return
*/
public SweeperTrafficDataView getTrafficDataView() {
public SweeperCloudTrafficDataView getTrafficDataView() {
return mTrafficDataView;
}
@@ -464,8 +465,8 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
mWeltDataBeanList,
mSubTaskCoordinates,
mRouteList,
mProgress,
(SweeperFragment) this);
mProgress);
this.setTaskDataToFragmentCallback(mWeltMapOverViewFragment);
}
if (mWeltMapOverViewFragment.isHidden()) {
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.fragment
package com.mogo.och.sweeper.cloud.fragment
import android.os.Bundle
import android.view.View
@@ -16,24 +16,22 @@ import com.mogo.map.overlay.core.Level
import com.mogo.map.overlay.point.Point
import com.mogo.och.common.module.utils.OCHThreadPoolManager
import com.mogo.och.common.module.voice.VoiceNotice.showNotice
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener
import com.mogo.och.sweepercloud.constant.SweeperConst.Companion.TYPE_MARKER_SWEEPER_SUBTASK_START_END
import com.mogo.och.sweepercloud.database.MyDataBase
import com.mogo.och.sweepercloud.presenter.SweeperPresenter
import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog
import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudLoadingDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createConfirmStartSubTaskDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createReceivedBigTaskInfoDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskEndDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskExceptionEndDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskNormalEndDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskResumeDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskSuspendDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.printMessage
import com.mogo.och.sweepercloud.view.SweeperCurrentTaskInfoView
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.constant.SweeperConst.Companion.TYPE_MARKER_SWEEPER_SUBTASK_START_END
import com.mogo.och.sweeper.common.database.MyDataBase
import com.mogo.och.sweeper.cloud.presenter.SweeperCloudPresenter
import com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog
import com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudLoadingDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createConfirmStartSubTaskDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createReceivedBigTaskInfoDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskEndDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskExceptionEndDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskNormalEndDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskResumeDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.createSweeperTaskSuspendDialog
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils.printMessage
import com.mogo.och.sweeper.cloud.view.SweeperCloudCurrentTaskInfoView
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
@@ -44,15 +42,15 @@ import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import kotlinx.android.synthetic.main.fragment_och_sweeper.*
import kotlinx.android.synthetic.main.sweeper_no_data_common_view.*
import kotlinx.android.synthetic.main.fragment_och_sweeper_cloud.*
import kotlinx.android.synthetic.main.sweeper_cloud_no_data_common_view.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
/**
* 清扫车主界面
*/
class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresenter?>() {
class SweeperCloudFragment : BaseSweeperCloudTabFragment<SweeperCloudFragment?, SweeperCloudPresenter?>() {
companion object {
const val TAG = "SweeperFragment"
@@ -82,8 +80,8 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
sweeper_cl_work_mode.setTrafficDataView(trafficDataView)
}
override fun createPresenter(): SweeperPresenter {
return SweeperPresenter(this)
override fun createPresenter(): SweeperCloudPresenter {
return SweeperCloudPresenter(this)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
@@ -92,7 +90,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
override fun getTaskListPanelViewId(): Int {
return R.layout.fragment_och_sweeper
return R.layout.fragment_och_sweeper_cloud
}
/**
@@ -378,7 +376,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
ToastUtils.showLong("任务已结束")
} else {
// 产品确认有弹框时不需要同步弹toast, 只需有TTS
mDialog = createSweeperTaskEndDialog(context, object : SweeperCloudDialogClickListener {
mDialog = createSweeperTaskEndDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_CONFIRM)
// mLoadingDialog.showLoading()
@@ -420,7 +418,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
* 大任务结束弹窗
*/
private fun sweeperCloudTaskNormalEndDialog(): SweeperCloudDialog? {
return createSweeperTaskNormalEndDialog(context, object : SweeperCloudDialogClickListener {
return createSweeperTaskNormalEndDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// ToastUtils.showLong("任务已结束")
// resetTaskInfoPanel()
@@ -447,7 +445,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
private fun sweeperCloudTaskExceptionEndDialog(isCancel: Boolean): SweeperCloudDialog? {
return createSweeperTaskExceptionEndDialog(
context,
object : SweeperCloudDialogClickListener {
object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// ToastUtils.showLong("任务已结束")
// resetTaskInfoPanel()
@@ -691,11 +689,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 设置路线轨迹
*/
override fun setTaskRouteList(routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>) {
override fun setTaskRouteList(routeList: ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>) {
super.setTaskRouteList(routeList)
}
private fun getCurrentTaskView(): SweeperCurrentTaskInfoView = sweeper_current_task_view
private fun getCurrentTaskView(): SweeperCloudCurrentTaskInfoView = sweeper_current_task_view
fun handleSubTaskInfoDialog(taskId: String, subTaskId: String, isPop: Boolean) {
if (mTaskInfo == null) return
@@ -733,7 +731,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
return
}
mDialog =
createConfirmStartSubTaskDialog(context, object : SweeperCloudDialogClickListener {
createConfirmStartSubTaskDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// //ToastUtils.showLong("确认")
// mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_CONFIRM)
@@ -791,7 +789,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
return
}
mDialog =
createReceivedBigTaskInfoDialog(context, object : SweeperCloudDialogClickListener {
createReceivedBigTaskInfoDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// ToastUtils.showLong("确认")
// mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.MANUAL_CONFIRM)
@@ -839,7 +837,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
* 大任务暂停弹框
*/
private fun sweeperCloudTaskSuspendDialog(taskId: String): SweeperCloudDialog? {
return createSweeperTaskSuspendDialog(context, object : SweeperCloudDialogClickListener {
return createSweeperTaskSuspendDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(
@@ -873,7 +871,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
contentStr: String,
taskId: String
): SweeperCloudDialog? {
return createSweeperTaskResumeDialog(context, object : SweeperCloudDialogClickListener {
return createSweeperTaskResumeDialog(context, object : com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener {
override fun onConfirm() {
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperSuspendResumeTaskResp(

View File

@@ -1,7 +1,6 @@
package com.mogo.och.sweepercloud.model;
package com.mogo.och.sweeper.cloud.model;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
import static com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.printMessage;
import android.content.Context;
@@ -32,13 +31,13 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweepercloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweepercloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweepercloud.constant.SweeperConst;
import com.mogo.och.sweepercloud.database.MyDataBase;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.cloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweeper.cloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.common.database.MyDataBase;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.cloud.util.SweeperCloudTaskUtils;
import com.zhjt.mogo.adas.data.AiCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
@@ -73,9 +72,9 @@ import system_master.SystemStatusInfo;
* <p>
* 清扫车任务管理
*/
public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IMoGoAutopilotStatusListener, IMoGoSweeperFutianCleanSystemListener {
private final String TAG = SweeperTaskModel.class.getSimpleName();
private static volatile SweeperTaskModel sInstance;
public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListener, IMoGoAutopilotStatusListener, IMoGoSweeperFutianCleanSystemListener {
private final String TAG = SweeperCloudTaskModel.class.getSimpleName();
private static volatile SweeperCloudTaskModel sInstance;
public double mLongitude = 0;
public double mLatitude = 0;
private Context mContext;
@@ -112,18 +111,18 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
//用于对应messageType和reqNo绑定在一起保证请求的reqNo和响应的reqNo一致
private HashMap<Integer, String> msgTypeAndReqNo = new HashMap<>();
public static SweeperTaskModel getInstance() {
public static SweeperCloudTaskModel getInstance() {
if (sInstance == null) {
synchronized (SweeperTaskModel.class) {
synchronized (SweeperCloudTaskModel.class) {
if (sInstance == null) {
sInstance = new SweeperTaskModel();
sInstance = new SweeperCloudTaskModel();
}
}
}
return sInstance;
}
private SweeperTaskModel() {
private SweeperCloudTaskModel() {
}
@@ -197,7 +196,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.d(M_SWEEPER + TAG, "onAutopilotRotting: " + printMessage(routeList));
CallerLogger.d(M_SWEEPER + TAG, "onAutopilotRotting: " + SweeperCloudTaskUtils.printMessage(routeList));
// MAP返回路线信息在1秒内返回了2次这里加上数据过滤
long current = System.currentTimeMillis();
@@ -336,7 +335,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTask.TaskInfo taskInfo) {
CallerLogger.d(M_SWEEPER + TAG,
"messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " onSweeperFutianCloudTask" + (taskInfo == null ? "null" : printMessage(taskInfo)) + " mSweeperTaskCallback" + mSweeperTaskCallback);
"messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " onSweeperFutianCloudTask" + (taskInfo == null ? "null" : SweeperCloudTaskUtils.printMessage(taskInfo)) + " mSweeperTaskCallback" + mSweeperTaskCallback);
if (mSweeperTaskCallback != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTask(messageType, taskInfo);
@@ -348,7 +347,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTaskConfirm.TaskConfirm taskConfirm) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskConfirm" + printMessage(taskConfirm));
"onSweeperFutianCloudTaskConfirm" + SweeperCloudTaskUtils.printMessage(taskConfirm));
if (mSweeperTaskCallback != null && taskConfirm != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskConfirm(taskConfirm.getTaskId(), taskConfirm.getSubTaskId(), taskConfirm.getIsPop());
@@ -359,7 +358,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskStatus(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperTaskStatus.TaskStatusPush taskStatusPush) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskStatus" + printMessage(taskStatusPush));
"onSweeperFutianCloudTaskStatus" + SweeperCloudTaskUtils.printMessage(taskStatusPush));
if (mSweeperTaskCallback != null && taskStatusPush != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskStatus(taskStatusPush.getTaskId(), taskStatusPush.getSubTaskId(), taskStatusPush.getTaskStatus());
@@ -370,7 +369,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskStop(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperTaskStop.StopTaskReq stopTaskReq) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskStop" + printMessage(stopTaskReq));
"onSweeperFutianCloudTaskStop" + SweeperCloudTaskUtils.printMessage(stopTaskReq));
if (mSweeperTaskCallback != null && stopTaskReq != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskStop(stopTaskReq.getTaskId(), stopTaskReq.getType(), stopTaskReq.getIsPop());
@@ -381,7 +380,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskSuspendResume(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskSuspendResume" + printMessage(suspendResumeTaskResp));
"onSweeperFutianCloudTaskSuspendResume" + SweeperCloudTaskUtils.printMessage(suspendResumeTaskResp));
if (mSweeperTaskCallback != null && suspendResumeTaskResp != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudTaskSuspendResume(messageType, suspendResumeTaskResp.getTaskId(),
@@ -393,7 +392,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudBootable(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperBootable.IsBootableResp isBootableResp) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudBootable" + printMessage(isBootableResp));
"onSweeperFutianCloudBootable" + SweeperCloudTaskUtils.printMessage(isBootableResp));
if (mSweeperTaskCallback != null && isBootableResp != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudBootable(isBootableResp.getTaskId(), isBootableResp.getSubTaskId(), isBootableResp);
@@ -404,7 +403,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudBigTaskStatus(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudBigTaskStatus" + printMessage(bigTaskStatusPush));
"onSweeperFutianCloudBigTaskStatus" + SweeperCloudTaskUtils.printMessage(bigTaskStatusPush));
if (mSweeperTaskCallback != null && bigTaskStatusPush != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudBigTaskStatus(bigTaskStatusPush.getTaskId(), bigTaskStatusPush.getTaskStatus(), bigTaskStatusPush.getIsPop());
@@ -415,7 +414,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
public void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime,
@Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush) {
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime" + sysTime + " reqNo" + reqNo + " " +
"onSweeperFutianCloudTaskCloudSuspendResume" + printMessage(bigTaskActionPush));
"onSweeperFutianCloudTaskCloudSuspendResume" + SweeperCloudTaskUtils.printMessage(bigTaskActionPush));
if (mSweeperTaskCallback != null && bigTaskActionPush != null) {
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
mSweeperTaskCallback.onSweeperCloudBigTaskSuspendResume(bigTaskActionPush.getTaskId(), bigTaskActionPush.getAction(), bigTaskActionPush.getIsPop());
@@ -521,7 +520,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTask.GetTaskReq getTaskReq = builder.build();
CallerLogger.d(M_SWEEPER + TAG,
"getCurrentTask:" + printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendGetTaskReq.getNumber());
"getCurrentTask:" + SweeperCloudTaskUtils.printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendGetTaskReq.getNumber());
getAutoPilotControlManager().sendSweeperGetTaskReq(reqNo, getTaskReq);
}
@@ -538,7 +537,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
getAutoPilotControlManager().sendSweeperStartTaskResp(reqNo, startTaskResp);
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperStartTaskResp:" + printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTask.getNumber());
"sendSweeperStartTaskResp:" + SweeperCloudTaskUtils.printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTask.getNumber());
}
/**
@@ -553,7 +552,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
SweeperTaskConfirm.TaskConfirmResp taskConfirmResp = builder.build();
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperTaskConfirmResp" + printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
"sendSweeperTaskConfirmResp" + SweeperCloudTaskUtils.printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
getAutoPilotControlManager().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp);
}
@@ -572,7 +571,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperStopTaskResp" + printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
"sendSweeperStopTaskResp" + SweeperCloudTaskUtils.printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
getAutoPilotControlManager().sendSweeperStopTaskResp(reqNo, stopTaskResp);
}
@@ -593,7 +592,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
String reqNo = SweeperCloudTaskUtils.getRequestId();
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperAutopilotBootable" + printMessage(isBootable) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendBootable.getNumber());
"sendSweeperAutopilotBootable" + SweeperCloudTaskUtils.printMessage(isBootable) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendBootable.getNumber());
getAutoPilotControlManager().sendSweeperAutopilotBootable(reqNo, isBootable);
//SweeperCloudTaskUtils.mockSendCloudBootable();
}
@@ -612,7 +611,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskSuspendResume.getNumber());
CallerLogger.d(M_SWEEPER + TAG,
"sendSweeperSuspendResumeTaskResp" + printMessage(resp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskSuspendResume);
"sendSweeperSuspendResumeTaskResp" + SweeperCloudTaskUtils.printMessage(resp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskSuspendResume);
getAutoPilotControlManager().sendSweeperCloudSuspendResumeTaskResp(reqNo, resp);
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.presenter;
package com.mogo.och.sweeper.cloud.presenter;
import androidx.annotation.NonNull;
@@ -10,13 +10,13 @@ import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSystemListenerManager;
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweepercloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweepercloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweepercloud.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.fragment.SweeperFragment;
import com.mogo.och.sweepercloud.model.SweeperTaskModel;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.cloud.callback.ISweeperCloudTaskCallback;
import com.mogo.och.sweeper.cloud.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.common.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment;
import com.mogo.och.sweeper.cloud.model.SweeperCloudTaskModel;
import com.zhjt.mogo.adas.data.AiCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon;
@@ -34,15 +34,15 @@ import chassis.ChassisStatesOuterClass;
*
* @author tongchenfei
*/
public class SweeperPresenter extends Presenter<SweeperFragment>
public class SweeperCloudPresenter extends Presenter<SweeperCloudFragment>
implements ISweeperControllerStatusCallback,
ISweeperCloudTaskCallback, ISweeperTaskRouteCallback {
private static final String TAG = "SweeperPresenter";
public SweeperPresenter(SweeperFragment view) {
public SweeperCloudPresenter(SweeperCloudFragment view) {
super(view);
SweeperTaskModel.getInstance().init();
SweeperCloudTaskModel.getInstance().init();
OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp());
}
@@ -55,18 +55,18 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
super.onDestroy(owner);
SweeperTaskModel.getInstance().release();
SweeperCloudTaskModel.getInstance().release();
releaseListener();
}
public void initModelListener() {
SweeperTaskModel.getInstance().setControllerStatusCallback(this);
SweeperTaskModel.getInstance().setSweeperTaskCallback(this);
SweeperCloudTaskModel.getInstance().setControllerStatusCallback(this);
SweeperCloudTaskModel.getInstance().setSweeperTaskCallback(this);
}
public void releaseListener() {
SweeperTaskModel.getInstance().setControllerStatusCallback(null);
SweeperTaskModel.getInstance().setSweeperTaskCallback(null);
SweeperCloudTaskModel.getInstance().setControllerStatusCallback(null);
SweeperCloudTaskModel.getInstance().setSweeperTaskCallback(null);
CallerSweeperFutianCleanSystemListenerManager.INSTANCE.removeListener(TAG);
}
@@ -94,28 +94,28 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* @return
*/
public int getAutopilotState() {
return SweeperTaskModel.getInstance().getAutopilotState();
return SweeperCloudTaskModel.getInstance().getAutopilotState();
}
/**
* 清除路线缓存数据
*/
public void clearRouteList() {
SweeperTaskModel.getInstance().clearRouteList();
SweeperCloudTaskModel.getInstance().clearRouteList();
}
/**
* 设置当前子任务信息
*/
public void setSubtask(String subTaskId, SweeperTask.TaskModel subTaskType, int currentLineId) {
SweeperTaskModel.getInstance().setSubtask(subTaskId, subTaskType, currentLineId);
SweeperCloudTaskModel.getInstance().setSubtask(subTaskId, subTaskType, currentLineId);
}
/**
* 判断是否有任务数据
*/
public void isHasTaskInfo(boolean isHasTaskInfo) {
SweeperTaskModel.getInstance().isHasTaskInfo(isHasTaskInfo);
SweeperCloudTaskModel.getInstance().isHasTaskInfo(isHasTaskInfo);
}
/**
@@ -123,14 +123,14 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* @param preLineId
*/
public void setPreLineId(int preLineId) {
SweeperTaskModel.getInstance().setPreLineId(preLineId);
SweeperCloudTaskModel.getInstance().setPreLineId(preLineId);
}
/**
* 获取当前正在执行的任务
*/
public void getCurrentTask() {
SweeperTaskModel.getInstance().getCurrentTask();
SweeperCloudTaskModel.getInstance().getCurrentTask();
}
/**
@@ -140,7 +140,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* @param code
*/
public void sendSweeperStartTaskResp(String taskId, SweeperTask.StartTaskCode code) {
SweeperTaskModel.getInstance().sendSweeperStartTaskResp(taskId, code);
SweeperCloudTaskModel.getInstance().sendSweeperStartTaskResp(taskId, code);
}
/**
@@ -151,7 +151,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* @param code
*/
public void sendSweeperTaskConfirmResp(String taskId, String subTaskId, SweeperTaskConfirm.TaskConfirmCode code) {
SweeperTaskModel.getInstance().sendSweeperTaskConfirmResp(taskId, subTaskId, code);
SweeperCloudTaskModel.getInstance().sendSweeperTaskConfirmResp(taskId, subTaskId, code);
}
/**
@@ -161,7 +161,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* @param code
*/
public void sendSweeperStopTaskResp(String taskId, SweeperTaskStop.StopTaskCode code) {
SweeperTaskModel.getInstance().sendSweeperStopTaskResp(taskId, code);
SweeperCloudTaskModel.getInstance().sendSweeperStopTaskResp(taskId, code);
}
/**
@@ -172,7 +172,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* @param lineId
*/
public void sendSweeperAutopilotBootable(String taskId, String subTaskId, long lineId) {
SweeperTaskModel.getInstance().sendSweeperAutopilotBootable(taskId, subTaskId, lineId);
SweeperCloudTaskModel.getInstance().sendSweeperAutopilotBootable(taskId, subTaskId, lineId);
}
/**
@@ -181,7 +181,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* @param code
*/
public void sendSweeperSuspendResumeTaskResp(String taskId, SweeperTaskCloudSuspendResume.Code code) {
SweeperTaskModel.getInstance().sendSweeperSuspendResumeTaskResp(taskId, code);
SweeperCloudTaskModel.getInstance().sendSweeperSuspendResumeTaskResp(taskId, code);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.ui.dialog
package com.mogo.och.sweeper.cloud.ui.dialog
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
@@ -10,9 +10,8 @@ import android.widget.TextView
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener
import com.mogo.och.sweepercloud.view.CountDownView
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.cloud.view.CountDownView
/**
* 清扫车云控任务dialog基类
@@ -115,7 +114,7 @@ import com.mogo.och.sweepercloud.view.CountDownView
var middleStr: String = ""
var rightStr: String = ""
var countDownTime: Int = 0
var listener: SweeperCloudDialogClickListener? = null
var listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener? = null
fun build(context: Context): SweeperCloudDialog {
return SweeperCloudDialog(this, context)
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.ui.dialog
package com.mogo.och.sweeper.cloud.ui.dialog
import android.animation.ObjectAnimator
import android.content.Context
@@ -7,7 +7,7 @@ import androidx.lifecycle.LifecycleObserver
import com.elegant.utils.UiThreadHandler
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import kotlinx.android.synthetic.main.dialog_sweeper_cloud_loading.*
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util;
package com.mogo.och.sweeper.cloud.util;
import android.os.Environment;
import android.text.TextUtils;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util
package com.mogo.och.sweeper.cloud.util
import android.content.Context
import android.util.Log
@@ -14,11 +14,8 @@ import com.mogo.map.overlay.point.Point
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.OCHThreadPoolManager
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener
import com.mogo.och.sweepercloud.constant.SweeperConst
import com.mogo.och.sweepercloud.model.SweeperTaskModel
import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.cloud.model.SweeperCloudTaskModel
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
@@ -43,7 +40,7 @@ object SweeperCloudTaskUtils {
// UiThreadHandler.getsUiHandler().postDelayed({
// mockSendCloudTaskInfo(MessageType.PadSendGetTaskReq)
// },1000)
SweeperTaskModel.getInstance().getCurrentTask()
SweeperCloudTaskModel.getInstance().getCurrentTask()
}
/**
@@ -150,7 +147,7 @@ object SweeperCloudTaskUtils {
// subBuilder3.lineId = 126
// subBuilder3.lineName = "测试路线3"
// builder.addSubList(subBuilder3.build())
SweeperTaskModel.getInstance().onSweeperFutianCloudTask(
SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTask(
messageType,
"${System.currentTimeMillis()}",
System.currentTimeMillis(),
@@ -171,7 +168,7 @@ object SweeperCloudTaskUtils {
builder.sn = getDriverSn()
builder.taskId = "10"
builder.subTaskId = "1"
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskConfirm(
SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTaskConfirm(
AiCloudTask.MessageType.CloudPushTaskConfirm, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -187,7 +184,7 @@ object SweeperCloudTaskUtils {
builder.taskId = "10"
builder.subTaskId = "1"
builder.taskStatus = SweeperCommon.TaskStatus.RUNNING
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStatus(
SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTaskStatus(
AiCloudTask.MessageType.CloudPushTaskStatus, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -202,7 +199,7 @@ object SweeperCloudTaskUtils {
builder.sn = getDriverSn()
builder.taskId = "10"
builder.type = SweeperTaskStop.StopTaskType.ADVANCE
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStop(
SweeperCloudTaskModel.getInstance().onSweeperFutianCloudTaskStop(
AiCloudTask.MessageType.CloudPushTaskStop, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -218,7 +215,7 @@ object SweeperCloudTaskUtils {
builder.taskId = "10"
builder.taskStatus = SweeperCommon.TaskStatus.FINISHED
builder.systemTime = System.currentTimeMillis()
SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus(
SweeperCloudTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus(
AiCloudTask.MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -235,7 +232,7 @@ object SweeperCloudTaskUtils {
builder.subTaskId = "1"
builder.code = SweeperCommon.Code.SUCCEED
UiThreadHandler.getsUiHandler().postDelayed({
SweeperTaskModel.getInstance().onSweeperFutianCloudBootable(
SweeperCloudTaskModel.getInstance().onSweeperFutianCloudBootable(
AiCloudTask.MessageType.PadSendBootable, "${System.currentTimeMillis()}",
System.currentTimeMillis(), builder.build()
)
@@ -251,7 +248,7 @@ object SweeperCloudTaskUtils {
val setMapMarkerRunnable = Runnable {
val builder =
Point.Options.Builder(
SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END,
com.mogo.och.sweeper.common.constant.SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END,
Level.MAP_MARKER
)
.setId(uuid)
@@ -277,7 +274,7 @@ object SweeperCloudTaskUtils {
//开启线程移除起终点marker设置
val removeMapMarkerRunnable = Runnable {
val overlayManager = CallerMapUIServiceManager.getOverlayManager()
overlayManager?.removeAllPointsInOwner(SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END)
overlayManager?.removeAllPointsInOwner(com.mogo.och.sweeper.common.constant.SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END)
}
OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable)
}
@@ -291,11 +288,11 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createReceivedBigTaskInfoDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
taskInfo: TaskInfo
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
taskInfo: TaskInfo
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
val startCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskStartTime)
val endCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskEndTime)
builder.titleStr = "任务接取"
@@ -320,11 +317,11 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createConfirmStartSubTaskDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
subTaskInfo: SubTaskInfo
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
subTaskInfo: SubTaskInfo
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "子任务确认"
builder.contentStr = "请确认并执行子任务 ${subTaskInfo.subTaskName}"
builder.tipStr =
@@ -342,12 +339,12 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createSweeperTaskEndDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
stopTaskType: SweeperTaskStop.StopTaskType,
timeoutStr: String
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
stopTaskType: SweeperTaskStop.StopTaskType,
timeoutStr: String
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
val titleStr = when (stopTaskType) {
SweeperTaskStop.StopTaskType.ADVANCE -> "任务中止"
SweeperTaskStop.StopTaskType.EXCEPTION -> "任务异常结束"
@@ -385,9 +382,9 @@ object SweeperCloudTaskUtils {
@JvmStatic
fun createSweeperTaskNormalEndDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务结束"
builder.contentStr = "任务已完成,干的漂亮!"
builder.tipStr = ""
@@ -404,11 +401,11 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun createSweeperTaskExceptionEndDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
isCancel: Boolean
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
isCancel: Boolean
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务结束"
builder.contentStr = if (isCancel) "任务已取消!" else "任务已异常结束!"
builder.tipStr = ""
@@ -423,9 +420,9 @@ object SweeperCloudTaskUtils {
@JvmStatic
fun createSweeperTaskSuspendDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务暂停"
builder.contentStr = "云端暂停任务,注意车辆即将停车!"
builder.tipStr = "【云端任务恢复前不可启动自动驾驶】"
@@ -439,11 +436,11 @@ object SweeperCloudTaskUtils {
@JvmStatic
fun createSweeperTaskResumeDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
contentStr: String
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
context: Context?,
listener: com.mogo.och.sweeper.cloud.callback.SweeperCloudDialogClickListener?,
contentStr: String
): com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog? {
val builder: com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder = com.mogo.och.sweeper.cloud.ui.dialog.SweeperCloudDialog.Builder()
builder.titleStr = "任务恢复"
builder.contentStr = contentStr
builder.tipStr = "【注意安全,坐稳扶好】"

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.content.Context
import android.os.Handler

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.cloud.view;
import android.content.Context;
import android.util.AttributeSet;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.content.Context
import android.graphics.Color
@@ -6,11 +6,11 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel
import kotlinx.android.synthetic.main.sweeper_subtask_view.view.*
import kotlinx.android.synthetic.main.sweeper_cloud_subtask_view.view.*
/**
* 子任务View
@@ -24,7 +24,7 @@ class SubTaskView : ConstraintLayout {
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_subtask_view, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_subtask_view, this)
}
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.annotation.SuppressLint
import android.content.Context
@@ -10,23 +10,23 @@ import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.TaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskInfo
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.currentSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.lastSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.preSubTask
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvStartAuto
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskName
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskState
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskTime
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.currentSubTask
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.lastSubTask
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.preSubTask
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvStartAuto
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvTaskName
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvTaskState
import kotlinx.android.synthetic.main.sweeper_cloud_current_task_info.view.tvTaskTime
/**
* 清扫车当前任务信息展示
*/
class SweeperCurrentTaskInfoView : ConstraintLayout {
class SweeperCloudCurrentTaskInfoView : ConstraintLayout {
private val TAG: String = "SweeperCurrentTaskInfoView"
//当前任务操作菜单
@@ -53,7 +53,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_current_task_info, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_current_task_info, this)
updateTaskStateText(TaskStatus.TO_START)
}
@@ -116,7 +116,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
) {
// 更新 任务名称、任务时间
taskInfo?.apply {
this@SweeperCurrentTaskInfoView.listTask = subListList
this@SweeperCloudCurrentTaskInfoView.listTask = subListList
tvTaskName.text = taskName
val calendarStart = DateTimeUtil.formatLongToCalendar(taskStartTime)
val calendarEnd = DateTimeUtil.formatLongToCalendar(taskEndTime)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.annotation.SuppressLint
import android.content.Context
@@ -18,14 +18,14 @@ import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweeper.R
import planning.RoboSweeperTaskIndexOuterClass
import kotlin.math.roundToInt
/**
* 车辆基本信息方向盘下方的档位 转向灯 限速 速度 电量 水量
*/
class SweeperTrafficDataView : ConstraintLayout,
class SweeperCloudTrafficDataView : ConstraintLayout,
IMoGoBatteryManagementSystemListener,
IMoGoChassisLamplightListener,
IMoGoChassisGearStateListener,
@@ -64,7 +64,7 @@ class SweeperTrafficDataView : ConstraintLayout,
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_traffic_data, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_cloud_traffic_data, this)
tapPositionView = findViewById(R.id.sweeperTrafficPosition)
speedImage = findViewById(R.id.sweeperSpeedImage)
speedTextView = findViewById(R.id.sweeperSpeedText)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.cloud.view
import android.content.Context
import android.util.AttributeSet
@@ -9,18 +9,22 @@ import chassis.ChassisStatesOuterClass.SweeperFuTianTaskSystemStates
import com.elegant.utils.UiThreadHandler
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.callback.ICleaningModeStateCallback
import com.mogo.och.sweepercloud.constant.OperateStateEnum
import com.mogo.och.sweepercloud.ui.popwindow.SweeperOperatePanelPopWindow
import com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.constant.OperateStateEnum
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil
import com.mogo.och.sweeper.common.view.SweeperOperatePanelPopWindow
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel
import kotlinx.android.synthetic.main.sweeper_work_mode.view.*
import kotlinx.android.synthetic.main.sweeper_work_mode.view.groupWorkModelPanel
import kotlinx.android.synthetic.main.sweeper_work_mode.view.ivOpenOperatePanel
import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvCleaningDirection
import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvCleaningIntensity
import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvCleaningMode
import kotlinx.android.synthetic.main.sweeper_work_mode.view.tvNoDataDesc
/**
* 清扫车模式信息展示
*/
class SweeperWorkModeView : ConstraintLayout,ICleaningModeStateCallback {
class SweeperCloudWorkModeView : ConstraintLayout {
private var isSelectPureSweepMode: Boolean = false
private val TAG = "SweeperWorkModeView"
@@ -46,7 +50,7 @@ class SweeperWorkModeView : ConstraintLayout,ICleaningModeStateCallback {
/**
* 设置view
*/
fun setTrafficDataView(trafficDataView: SweeperTrafficDataView){
fun setTrafficDataView(trafficDataView: com.mogo.och.sweeper.cloud.view.SweeperCloudTrafficDataView){
//清扫模式选择面板打开关闭处理
ivOpenOperatePanel.setOnClickListener {
if (mOperatePanelPopWindow?.isShowing != true) {
@@ -126,7 +130,7 @@ class SweeperWorkModeView : ConstraintLayout,ICleaningModeStateCallback {
}
}
override fun cleaningModeState(operateState: OperateStateEnum, cleanSystemState: SweeperFuTianTaskSystemStates?, isSelectPureSweepMode: Boolean) {
fun cleaningModeState(operateState: OperateStateEnum, cleanSystemState: SweeperFuTianTaskSystemStates?, isSelectPureSweepMode: Boolean) {
this.isSelectPureSweepMode = isSelectPureSweepMode
this.operateState=operateState
setShowOrHideCleanSystemState(operateState, cleanSystemState)

View File

@@ -1,9 +1,7 @@
package com.mogo.och.sweeper.bean;
package com.mogo.och.sweeper.common.bean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* Created by pangfan on 2021/8/19
*

View File

@@ -1,6 +1,6 @@
package com.mogo.och.sweepercloud.callback;
package com.mogo.och.sweeper.common.callback;
import com.mogo.och.sweepercloud.constant.OperateStateEnum;
import com.mogo.och.sweeper.common.constant.OperateStateEnum;
import chassis.ChassisStatesOuterClass;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback;
package com.mogo.och.sweeper.common.callback;
/**
* Created on 2021/9/8

View File

@@ -1,8 +1,8 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.common.callback
import com.amap.api.maps.model.LatLng
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import java.util.ArrayList
interface ISweeperTaskDataToFragmentCallback {

View File

@@ -1,6 +1,6 @@
package com.mogo.och.sweeper.callback
package com.mogo.och.sweeper.common.callback
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import java.util.ArrayList
interface ISweeperTaskRouteCallback {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.callback
package com.mogo.och.sweeper.common.callback
interface IWeltMapSwitchToSmallCallback {
fun onWeltMapSwitchToSmall()

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.constant
package com.mogo.och.sweeper.common.constant
/**
* 上装面板操作状态

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.constant
package com.mogo.och.sweeper.common.constant
import com.mogo.commons.debug.DebugConfig

View File

@@ -1,8 +1,8 @@
package com.mogo.och.sweeper.database;
package com.mogo.och.sweeper.common.database;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.och.sweeper.database.bean.WeltDataBean;
import com.mogo.och.sweeper.database.dao.WeltDataDao;
import com.mogo.och.sweeper.common.database.dao.WeltDataDao;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import androidx.room.Database;
import androidx.room.Room;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.database.bean;
package com.mogo.och.sweeper.common.database.bean;
import java.io.Serializable;

View File

@@ -1,7 +1,6 @@
package com.mogo.och.sweepercloud.database.dao;
package com.mogo.och.sweeper.common.database.dao;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import java.util.List;
@@ -10,7 +9,7 @@ import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import static com.mogo.och.sweepercloud.database.bean.WeltDataBean.WeltDataTable;
import static com.mogo.och.sweeper.common.database.bean.WeltDataBean.WeltDataTable;
@Dao
public interface WeltDataDao {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment;
package com.mogo.och.sweeper.common.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment;
package com.mogo.och.sweeper.common.fragment;
import android.os.Bundle;
import android.view.View;
@@ -43,21 +43,21 @@ public class SweeperAmapNaviFragment extends BaseSweeperUIFragment implements AM
protected void initViews(Bundle savedInstanceState) {
super.initViews(savedInstanceState);
if (mAMapNaviView != null)
mAMapNaviView.onCreate(savedInstanceState);
mAMapNaviView.onCreate(savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
if (mAMapNaviView != null)
mAMapNaviView.onResume();
mAMapNaviView.onResume();
}
@Override
public void onPause() {
super.onPause();
if (mAMapNaviView != null)
mAMapNaviView.onPause();
mAMapNaviView.onPause();
}
@Override

View File

@@ -1,13 +1,12 @@
package com.mogo.och.sweepercloud.fragment
package com.mogo.och.sweeper.common.fragment
import android.os.Bundle
import com.amap.api.maps.model.LatLng
import com.mogo.commons.mvp.BaseFragment
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.callback.ISweeperTaskDataToFragmentCallback
import com.mogo.och.sweepercloud.callback.IWeltMapSwitchToSmallCallback
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback
import com.mogo.och.sweeper.common.callback.IWeltMapSwitchToSmallCallback
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import kotlinx.android.synthetic.main.fragment_welt_map_overview.*
import kotlinx.android.synthetic.main.sweeper_welt_map_overview.*
@@ -16,7 +15,6 @@ import kotlinx.android.synthetic.main.sweeper_welt_map_overview.*
*/
class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallback {
private var mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback? = null
private var mFragment: SweeperFragment? = null
override fun getLayoutId(): Int = R.layout.fragment_welt_map_overview
override fun getTagName(): String {
return "WeltMapOverViewFragment"
@@ -28,10 +26,6 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
fun setWeltMapSwitchToSmallCallBack(iWeltMapSwitchToSmallCallback: IWeltMapSwitchToSmallCallback){
this.mIWeltMapSwitchToSmallCallBack=iWeltMapSwitchToSmallCallback
}
fun setSweeperFragment(fragment: SweeperFragment){
this.mFragment=fragment
mFragment?.setTaskDataToFragmentCallback(this)
}
override fun initViews(savedInstanceState: Bundle?) {
super.initViews(savedInstanceState)
weltMapOverView?.onCreateView(savedInstanceState)
@@ -43,7 +37,7 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
val latLngs = bundle.getSerializable("subTaskCoordinates") as? ArrayList<LatLng>
val latLng = bundle.getParcelable<LatLng>("subTaskEndCoordinates")
val weltDataList = bundle.getSerializable("weltDataList") as? ArrayList<WeltDataBean>
val routeList = bundle.getSerializable("routeList") as? ArrayList<SweeperRoutePlanningUpdateReqBean.Result>
val routeList = bundle.getSerializable("routeList") as? ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>
val progress = bundle.getString("progress")
routeList?.let {
weltMapOverView?.setRouteList(it)
@@ -67,13 +61,12 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
companion object {
@JvmStatic
fun newInstance(
mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback,
mCurrentTaskEndStation:LatLng?,
weltDataList: ArrayList<WeltDataBean>?,
latLngs: ArrayList<LatLng>?,
routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>?,
progress:String?,
sweeperFragment: SweeperFragment
mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback,
mCurrentTaskEndStation:LatLng?,
weltDataList: ArrayList<WeltDataBean>?,
latLngs: ArrayList<LatLng>?,
routeList: ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>?,
progress:String?
): WeltMapOverViewFragment {
val args = Bundle()
args.putSerializable("weltDataList", weltDataList)
@@ -83,7 +76,6 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
args.putString("progress", progress)
val fragment = WeltMapOverViewFragment()
fragment.setWeltMapSwitchToSmallCallBack(mIWeltMapSwitchToSmallCallBack)
fragment.setSweeperFragment(sweeperFragment)
fragment.arguments = args
return fragment
}
@@ -119,7 +111,7 @@ class WeltMapOverViewFragment : BaseFragment(), ISweeperTaskDataToFragmentCallba
weltMapOverView?.setProgress(progress)
}
override fun setRouteList(routeList: java.util.ArrayList<SweeperRoutePlanningUpdateReqBean.Result>) {
override fun setRouteList(routeList: java.util.ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>) {
weltMapOverView?.setRouteList(routeList)
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.receiver;
package com.mogo.och.sweeper.common.receiver;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
@@ -7,7 +7,7 @@ import android.content.Context;
import android.content.Intent;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.common.constant.SweeperConst;
/**
* 测试小巴车的场景

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.util;
package com.mogo.och.sweeper.common.util;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
@@ -14,7 +14,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import java.util.HashMap;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util;
package com.mogo.och.sweeper.common.util;
import chassis.ChassisStatesOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.util;
package com.mogo.och.sweeper.common.util;
import android.content.Context;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.util.AttributeSet

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.common.view;
import android.content.Context;
import android.util.AttributeSet;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.common.view;
import android.content.Context;
import android.util.AttributeSet;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.util.AttributeSet

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.dialog
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.widget.TextView
@@ -16,7 +16,7 @@ class SweeperManualDrivingDialog: BaseFloatDialog, LifecycleObserver {
private var clickListener: ClickListener? = null
constructor(builder: Builder,context: Context) : super(context) {
constructor(builder: Builder, context: Context) : super(context) {
commonTips?.text = builder.tipsStr
commonConfirm?.text = builder.confirmStr
}
@@ -53,12 +53,12 @@ class SweeperManualDrivingDialog: BaseFloatDialog, LifecycleObserver {
class Builder{
var tipsStr:String = ""
var confirmStr:String = ""
fun tips(tips: String) : Builder{
fun tips(tips: String) : Builder {
this.tipsStr = tips
return this
}
fun confirmStr(commit: String) : Builder{
fun confirmStr(commit: String) : Builder {
this.confirmStr = commit
return this
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.dialog
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.widget.TextView
@@ -17,7 +17,7 @@ class SweeperNoTitleCommonDialog: BaseFloatDialog, LifecycleObserver {
private var clickListener: ClickListener? = null
constructor(builder: Builder,context: Context) : super(context) {
constructor(builder: Builder, context: Context) : super(context) {
commonTips?.text = builder.tipsStr
commonCancel?.text = builder.cancelStr
commonConfirm?.text = builder.confirmStr
@@ -62,17 +62,17 @@ class SweeperNoTitleCommonDialog: BaseFloatDialog, LifecycleObserver {
var tipsStr:String = ""
var confirmStr:String = ""
var cancelStr:String = ""
fun tips(tips: String) : Builder{
fun tips(tips: String) : Builder {
this.tipsStr = tips
return this
}
fun confirmStr(commit: String) : Builder{
fun confirmStr(commit: String) : Builder {
this.confirmStr = commit
return this
}
fun cancelStr(cancel: String) : Builder{
fun cancelStr(cancel: String) : Builder {
this.cancelStr = cancel
return this
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.popwindow
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.graphics.Color
@@ -8,9 +8,9 @@ import android.view.ViewGroup
import android.widget.PopupWindow
import chassis.ChassisStatesOuterClass
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.callback.ICleaningModeStateCallback
import com.mogo.och.sweeper.constant.OperateStateEnum
import com.mogo.och.sweeper.ui.SweeperOperatePanelView
import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback
import com.mogo.och.sweeper.common.constant.OperateStateEnum
import com.mogo.och.sweeper.common.view.SweeperOperatePanelView
/**
* 清扫车面板浮窗

View File

@@ -1,14 +1,4 @@
package com.mogo.och.sweepercloud.ui;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_BOTH_SIDE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_LEFT_SIDE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_RIGHT_SIDE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRAND;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_INTENSITY_STRONG;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_DRAW;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_SWEEP;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_PURE_WASH;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_WASH_SWEEP;
package com.mogo.och.sweeper.common.view;
import android.animation.ObjectAnimator;
import android.content.Context;
@@ -31,14 +21,11 @@ import androidx.annotation.Nullable;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.och.sweepercloud.R;
import com.mogo.och.sweepercloud.callback.ICleaningModeStateCallback;
import com.mogo.och.sweepercloud.constant.OperateStateEnum;
import com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil;
import com.mogo.och.sweepercloud.view.NoTouchConstraintLayout;
import com.mogo.och.sweepercloud.callback.ICleaningModeStateCallback;
import com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil;
import com.mogo.och.sweepercloud.view.NoTouchConstraintLayout;
import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.common.constant.OperateStateEnum;
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.common.view.NoTouchConstraintLayout;
import java.util.Arrays;
import java.util.HashMap;
@@ -47,11 +34,6 @@ import java.util.List;
import chassis.ChassisStatesOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_DIRECTION_CLOSE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_MODE_CLOSE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_WORK_CLOSE;
import static com.mogo.och.sweepercloud.util.SweeperFutianCmdUtil.CLEAN_WORK_OPEN;
/**
* 清扫车操作面板View
*/

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.util.AttributeSet

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.animation.AnimatorSet
import android.animation.ObjectAnimator

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view;
package com.mogo.och.sweeper.common.view;
import android.content.Context;
import android.graphics.Canvas;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.graphics.Color
@@ -20,10 +20,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.constant.SweeperConst
import com.mogo.och.sweeper.database.bean.WeltDataBean
import com.mogo.och.sweeper.util.SweeperMapAssetStyleUtil
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.common.constant.SweeperConst
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil
import kotlinx.android.synthetic.main.sweeper_welt_map_overview.view.*
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweepercloud.view
package com.mogo.och.sweeper.common.view
import android.content.Context
import android.graphics.Color
@@ -19,11 +19,8 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweepercloud.R
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweepercloud.constant.SweeperConst
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
import com.mogo.och.sweepercloud.util.SweeperMapAssetStyleUtil
import com.mogo.och.sweeper.common.database.bean.WeltDataBean
import com.mogo.och.sweeper.R
import kotlinx.android.synthetic.main.sweeper_welt_small_map_view.view.*
@@ -120,8 +117,8 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
.setStyleData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
mAMap?.setOnMapLoadedListener(AMap.OnMapLoadedListener {
@@ -129,8 +126,8 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
// 加载自定义样式
val customMapStyleOptions = CustomMapStyleOptions()
.setEnable(true)
.setStyleData(SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
.setStyleData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsStyle(context, "map_style.data"))
.setStyleExtraData(com.mogo.och.sweeper.common.util.SweeperMapAssetStyleUtil.getAssetsExtraStyle(context, "map_style_extra.data"))
// 设置自定义样式
mAMap?.setCustomMapStyle(customMapStyleOptions)
mAMap?.setPointToCenter(sweeperSmallTextureMapView.width / 2, sweeperSmallTextureMapView.height / 2)
@@ -184,7 +181,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
}
}
if (weltDataBean.weltDistance == SweeperConst.NONWELT) {//非贴边
if (weltDataBean.weltDistance == com.mogo.och.sweeper.common.constant.SweeperConst.NONWELT) {//非贴边
colorList.add(ContextCompat.getColor(context,R.color.sweeper_236299))
} else if (weltDataBean.weltDistance < 0) {
colorList.add(ContextCompat.getColor(context,R.color.sweeper_c22101))
@@ -249,7 +246,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
/**
* 设置任务轨迹数据
*/
fun setRouteList(routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>) {
fun setRouteList(routeList: ArrayList<com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean.Result>) {
val routeCoordinatesLatLngs = mutableListOf<LatLng>()
for (i in routeList.indices) {
routeCoordinatesLatLngs.add(LatLng(routeList[i].latitude, routeList[i].longitude))

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean;
package com.mogo.och.sweeper.operate.bean;
import com.mogo.eagle.core.data.BaseData;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean
package com.mogo.och.sweeper.operate.bean
import com.mogo.cloud.passport.MoGoAiCloudClientConfig

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean
package com.mogo.och.sweeper.operate.bean
/**
* 子任务信息

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.bean;
package com.mogo.och.sweeper.operate.bean;
public class SweeperSubTaskDetailBean {
private int id; //子任务id

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.callback;
package com.mogo.och.sweeper.operate.callback;
import com.mogo.eagle.core.data.map.MogoLocation;

View File

@@ -1,27 +1,27 @@
package com.mogo.och.sweeper.callback
package com.mogo.och.sweeper.operate.callback
import com.mogo.och.sweeper.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean
import com.mogo.och.sweeper.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.constant.TaskStatusEnum
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum
import java.util.ArrayList
/**
* @author: wangmingjun
* @date: 2021/10/22
*/
interface ISweeperTaskCallback {
interface ISweeperOperateTaskCallback {
/**
* 获取主任务列表
*/
fun setMainTaskList(mainTaskBeanList: MutableList<SweeperMainTaskBean>?,refresh:Boolean)
fun setMainTaskList(mainTaskBeanList: MutableList<SweeperMainTaskBean>?, refresh:Boolean)
/**
* 获取子任务列表
*/
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean,isWorkingSubTask:Boolean)
fun setSubTaskBean(subTaskBean: SweeperSubTaskBean, isWorkingSubTask:Boolean)
/**
* 更新子任务状态

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.constant
package com.mogo.och.sweeper.operate.constant
/**
* 任务类型

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.constant
package com.mogo.och.sweeper.operate.constant
/**
* 当前任务操作菜单

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment;
package com.mogo.och.sweeper.operate.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -29,12 +29,14 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.och.common.module.map.AmapNaviToDestinationModel;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweeper.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweeper.database.bean.WeltDataBean;
import com.mogo.och.sweeper.view.SweeperTrafficDataView;
import com.mogo.och.sweeper.view.WeltSmallMapView;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.common.callback.ISweeperTaskDataToFragmentCallback;
import com.mogo.och.sweeper.common.callback.IWeltMapSwitchToSmallCallback;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.common.fragment.SweeperAmapNaviFragment;
import com.mogo.och.sweeper.common.fragment.WeltMapOverViewFragment;
import com.mogo.och.sweeper.operate.view.SweeperOperateTrafficDataView;
import com.mogo.och.sweeper.common.view.WeltSmallMapView;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -52,7 +54,7 @@ import androidx.fragment.app.FragmentTransaction;
*
* @author tongchenfei
*/
public abstract class BaseSweeperTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener,
public abstract class BaseSweeperOperateTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener,
View.OnClickListener, IWeltMapSwitchToSmallCallback, View.OnTouchListener {
private static final String TAG = "BaseSweeperTabFragment";
@@ -69,7 +71,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
private MapBizView mapBizView;
private Group groupTestPanel;
//清扫车车辆基本信息 速度 档位 转向灯 红绿灯等
private SweeperTrafficDataView mTrafficDataView;
private SweeperOperateTrafficDataView mTrafficDataView;
//人工驾驶地图View组控制
private Group mGroupNaviPanel;
//人工驾驶地图Fragment
@@ -282,7 +284,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
/**
* 车辆基本信息View
*/
public SweeperTrafficDataView getTrafficDataView() {
public SweeperOperateTrafficDataView getTrafficDataView() {
return mTrafficDataView;
}
@@ -362,7 +364,7 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
if (isShow) {
mGroupNaviPanel.setVisibility(View.VISIBLE);
if (mOchAmapNaviFragment == null) {
mOchAmapNaviFragment=SweeperAmapNaviFragment.newInstance();
mOchAmapNaviFragment= SweeperAmapNaviFragment.newInstance();
}
if (mOchAmapNaviFragment.isHidden()) {
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
@@ -414,8 +416,8 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
mWeltDataBeanList,
mSubTaskCoordinates,
mRouteList,
mProgress,
(SweeperFragment) this);
mProgress);
this.setTaskDataToFragmentCallback(mWeltMapOverViewFragment);
}
if (mWeltMapOverViewFragment.isHidden()) {
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.fragment
package com.mogo.och.sweeper.operate.fragment
import android.graphics.Color
import android.os.Bundle
@@ -17,18 +17,21 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.*
import com.mogo.och.sweeper.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.constant.TaskStatusEnum
import com.mogo.och.sweeper.database.MyDataBase
import com.mogo.och.sweeper.presenter.SweeperPresenter
import com.mogo.och.sweeper.ui.adapter.TaskListAdapter
import com.mogo.och.sweeper.ui.dialog.SweeperManualDrivingDialog
import com.mogo.och.sweeper.ui.dialog.SweeperNoTitleCommonDialog
import com.mogo.och.sweeper.ui.popwindow.MenuPopWindow
import kotlinx.android.synthetic.main.fragment_och_sweeper.*
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.*
import kotlinx.android.synthetic.main.sweeper_no_data_common_view.*
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum
import com.mogo.och.sweeper.common.database.MyDataBase
import com.mogo.och.sweeper.operate.bean.SubInfo
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.operate.presenter.SweeperOperatePresenter
import com.mogo.och.sweeper.operate.ui.adapter.TaskListAdapter
import com.mogo.och.sweeper.common.view.SweeperManualDrivingDialog
import com.mogo.och.sweeper.common.view.SweeperNoTitleCommonDialog
import com.mogo.och.sweeper.operate.ui.popwindow.MenuPopWindow
import kotlinx.android.synthetic.main.fragment_och_sweeper_operate.*
import kotlinx.android.synthetic.main.sweeper_operate_current_task_info.view.*
import kotlinx.android.synthetic.main.sweeper_operate_no_data_common_view.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlin.math.roundToInt
@@ -36,7 +39,7 @@ import kotlin.math.roundToInt
/**
* 清扫车主界面
*/
class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresenter?>(), MenuPopWindow.OnMenuItemOnClickListener {
class SweeperOperateFragment : BaseSweeperOperateTabFragment<SweeperOperateFragment?, SweeperOperatePresenter?>(), MenuPopWindow.OnMenuItemOnClickListener {
companion object {
const val TAG = "SweeperFragment"
@@ -80,8 +83,8 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
}
override fun createPresenter(): SweeperPresenter {
return SweeperPresenter(this)
override fun createPresenter(): SweeperOperatePresenter {
return SweeperOperatePresenter(this)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
@@ -90,7 +93,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
override fun getTaskListPanelViewId(): Int {
return R.layout.fragment_och_sweeper
return R.layout.fragment_och_sweeper_operate
}
/**
@@ -179,7 +182,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
mAdapter?.selectPosition(position)
tvTaskConfirm.isSelected = true
tvTaskConfirm.setTextColor(Color.parseColor("#FFFFFFFF"))
this@SweeperFragment.mMainTask = mainTask
this@SweeperOperateFragment.mMainTask = mainTask
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.model;
package com.mogo.och.sweeper.operate.model;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
@@ -40,21 +40,21 @@ import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.sweeper.R;
import com.mogo.och.sweeper.bean.BaseResponse;
import com.mogo.och.sweeper.bean.SubInfo;
import com.mogo.och.sweeper.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperTaskCallback;
import com.mogo.och.sweeper.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.constant.TaskStatusEnum;
import com.mogo.och.sweeper.net.SweeperServiceManager;
import com.mogo.och.sweeper.util.SweeperAnalyticsManager;
import com.mogo.och.sweeper.util.SweeperTrajectoryManager;
import com.mogo.och.sweeper.operate.bean.BaseResponse;
import com.mogo.och.sweeper.operate.bean.SubInfo;
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.common.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperOperateTaskCallback;
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum;
import com.mogo.och.sweeper.operate.net.SweeperOperateServiceManager;
import com.mogo.och.sweeper.common.util.SweeperAnalyticsManager;
import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager;
import org.jetbrains.annotations.NotNull;
@@ -73,9 +73,9 @@ import mogo.telematics.pad.MessagePad;
* <p>
* 清扫车任务管理
*/
public class SweeperTaskModel {
private final String TAG = SweeperTaskModel.class.getSimpleName();
private static volatile SweeperTaskModel sInstance;
public class SweeperOperateTaskModel {
private final String TAG = SweeperOperateTaskModel.class.getSimpleName();
private static volatile SweeperOperateTaskModel sInstance;
public double mLongitude = 0;
public double mLatitude = 0;
private Context mContext;
@@ -83,7 +83,7 @@ public class SweeperTaskModel {
private static final int VEHICLE_TYPE = 10;
private ISweeperControllerStatusCallback mControllerStatusCallback; //Model->PresenterVR mode等
private ISweeperADASStatusCallback mADASStatusCallback;
private ISweeperTaskCallback mSweeperTaskCallback;
private ISweeperOperateTaskCallback mSweeperTaskCallback;
ArrayList<SweeperRoutePlanningUpdateReqBean.Result> points = new ArrayList<>();//全路径信息
//当前子任务详情信息包括轨迹文件信息
private SweeperSubTaskDetailBean mCurrentSubTaskDetail;
@@ -105,18 +105,18 @@ public class SweeperTaskModel {
//自动驾驶状态
private int mAutopilotState = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE;
public static SweeperTaskModel getInstance() {
public static SweeperOperateTaskModel getInstance() {
if (sInstance == null) {
synchronized (SweeperTaskModel.class) {
synchronized (SweeperOperateTaskModel.class) {
if (sInstance == null) {
sInstance = new SweeperTaskModel();
sInstance = new SweeperOperateTaskModel();
}
}
}
return sInstance;
}
private SweeperTaskModel() {
private SweeperOperateTaskModel() {
}
@@ -183,7 +183,7 @@ public class SweeperTaskModel {
this.mControllerStatusCallback = callback;
}
public void setSweeperTaskCallback(ISweeperTaskCallback callback) {
public void setSweeperTaskCallback(ISweeperOperateTaskCallback callback) {
this.mSweeperTaskCallback = callback;
}
@@ -538,7 +538,7 @@ public class SweeperTaskModel {
* 获取当前正在执行的任务
*/
public void getCurrentTask() {
SweeperServiceManager.getCurrentTask(mContext, new OchCommonServiceCallback<BaseResponse<SweeperSubTaskBean>>() {
SweeperOperateServiceManager.getCurrentTask(mContext, new OchCommonServiceCallback<BaseResponse<SweeperSubTaskBean>>() {
@Override
public void onSuccess(BaseResponse<SweeperSubTaskBean> data) {
CallerLogger.d(M_SWEEPER + TAG, "getCurrentTask" + GsonUtil.jsonFromObject(data));
@@ -578,7 +578,7 @@ public class SweeperTaskModel {
* 获取主任务列表
*/
public void getMainTaskList(boolean refresh) {
SweeperServiceManager.getMainTaskList(mContext, new OchCommonServiceCallback<BaseResponse<List<SweeperMainTaskBean>>>() {
SweeperOperateServiceManager.getMainTaskList(mContext, new OchCommonServiceCallback<BaseResponse<List<SweeperMainTaskBean>>>() {
@Override
public void onSuccess(BaseResponse<List<SweeperMainTaskBean>> data) {
CallerLogger.d(M_SWEEPER + TAG, "getMainTaskList" + GsonUtil.jsonFromObject(data));
@@ -614,7 +614,7 @@ public class SweeperTaskModel {
* 获取子任务列表
*/
public void getSubTaskList(int taskId, SweeperSubTaskBean sweeperSubTaskBean) {
SweeperServiceManager.getSubTaskList(taskId, mContext, new OchCommonServiceCallback<BaseResponse<List<SubInfo>>>() {
SweeperOperateServiceManager.getSubTaskList(taskId, mContext, new OchCommonServiceCallback<BaseResponse<List<SubInfo>>>() {
@Override
public void onSuccess(BaseResponse<List<SubInfo>> data) {
CallerLogger.d(M_SWEEPER + TAG, "getSubTaskList" + GsonUtil.jsonFromObject(data));
@@ -655,7 +655,7 @@ public class SweeperTaskModel {
* 获取子任务详情包括轨迹文件信息
*/
public void getSubTaskDetail(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType, boolean isStartSubtask) {
SweeperServiceManager.getSubTaskDetail(subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<SweeperSubTaskDetailBean>>() {
SweeperOperateServiceManager.getSubTaskDetail(subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<SweeperSubTaskDetailBean>>() {
@Override
public void onSuccess(BaseResponse<SweeperSubTaskDetailBean> data) {
CallerLogger.d(M_SWEEPER + TAG, "getSubTaskDetail" + GsonUtil.jsonFromObject(data));
@@ -714,7 +714,7 @@ public class SweeperTaskModel {
* 子任务开始上报
*/
public void subTaskStart(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType) {
SweeperServiceManager.subTaskStart(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
SweeperOperateServiceManager.subTaskStart(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
@Override
public void onSuccess(BaseResponse<Boolean> data) {
CallerLogger.d(M_SWEEPER + TAG, "subTaskStart" + GsonUtil.jsonFromObject(data));
@@ -725,7 +725,7 @@ public class SweeperTaskModel {
mSweeperTaskCallback.updateSubTaskStatus(TaskStatusEnum.START_SUBTASK, false);
if (subTaskType == SubTaskTypeEnum.AUTOPILOT_SUBTYPE) {//如果是自动驾驶子任务子开启自驾
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
SweeperTaskModel.getInstance().startBeautificationMode();
SweeperOperateTaskModel.getInstance().startBeautificationMode();
}
//ÏstartAutopilot(false);
} else {
@@ -764,7 +764,7 @@ public class SweeperTaskModel {
* 子任务结束上报
*/
public void subTaskEnd(boolean isFirst, boolean isEnd, int subTaskId) {
SweeperServiceManager.subTaskEnd(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
SweeperOperateServiceManager.subTaskEnd(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
@Override
public void onSuccess(BaseResponse<Boolean> data) {
CallerLogger.d(M_SWEEPER + TAG, "subTaskEnd" +
@@ -777,7 +777,7 @@ public class SweeperTaskModel {
}
if (isEnd) {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
SweeperTaskModel.getInstance().closeBeautificationMode();
SweeperOperateTaskModel.getInstance().closeBeautificationMode();
}
clearAutopilotControlParameters();
//结束自动驾驶
@@ -815,7 +815,7 @@ public class SweeperTaskModel {
* 子任务跳过上报
*/
public void subTaskSkip(boolean isFirst, boolean isEnd, int subTaskId) {
SweeperServiceManager.subTaskSkip(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
SweeperOperateServiceManager.subTaskSkip(isFirst, isEnd, subTaskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
@Override
public void onSuccess(BaseResponse<Boolean> data) {
CallerLogger.d(M_SWEEPER + TAG, "subTaskSkip" +
@@ -856,7 +856,7 @@ public class SweeperTaskModel {
* 主任务重置
*/
public void mainTaskReset(int taskId) {
SweeperServiceManager.mainTaskReset(taskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
SweeperOperateServiceManager.mainTaskReset(taskId, mContext, new OchCommonServiceCallback<BaseResponse<Boolean>>() {
@Override
public void onSuccess(BaseResponse<Boolean> data) {
CallerLogger.d(M_SWEEPER + TAG, "mainTaskReset" + GsonUtil.jsonFromObject(data));

View File

@@ -1,10 +1,10 @@
package com.mogo.och.sweeper.net;
import com.mogo.och.sweeper.bean.BaseResponse;
import com.mogo.och.sweeper.bean.SubInfo;
import com.mogo.och.sweeper.bean.SubStartRequest;
import com.mogo.och.sweeper.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean;
package com.mogo.och.sweeper.operate.net;
import com.mogo.och.sweeper.operate.bean.BaseResponse;
import com.mogo.och.sweeper.operate.bean.SubInfo;
import com.mogo.och.sweeper.operate.bean.SubStartRequest;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean;
import java.util.List;
import java.util.Map;
@@ -21,7 +21,7 @@ import retrofit2.http.QueryMap;
/**
* 清扫车相关接口
*/
public interface ISweeperApiService {
public interface ISweeperOperateApiService {
/**
* 获取当前正在执行的任务
* @param appId

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.net
package com.mogo.och.sweeper.operate.net
import android.content.Context
import com.elegant.network.utils.GsonUtil
@@ -10,13 +10,18 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.biz.network.interceptor.transformTry
import com.mogo.och.sweeper.bean.*
import com.mogo.och.sweeper.model.SweeperTaskModel
import com.mogo.och.sweeper.operate.model.SweeperOperateTaskModel
import com.mogo.och.sweeper.operate.bean.BaseResponse
import com.mogo.och.sweeper.operate.bean.SubInfo
import com.mogo.och.sweeper.operate.bean.SubStartRequest
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean
object SweeperServiceManager {
private val TAG = SweeperTaskModel::class.java.simpleName
private val mService: ISweeperApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getSweeperUrl()).create(
ISweeperApiService::class.java
object SweeperOperateServiceManager {
private val TAG = SweeperOperateTaskModel::class.java.simpleName
private val mService: ISweeperOperateApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getSweeperUrl()).create(
ISweeperOperateApiService::class.java
)
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.presenter;
package com.mogo.och.sweeper.operate.presenter;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
@@ -23,23 +23,23 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.sweeper.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.callback.ISweeperTaskCallback;
import com.mogo.och.sweeper.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweeper.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.constant.TaskStatusEnum;
import com.mogo.och.sweeper.database.MyDataBase;
import com.mogo.och.sweeper.database.bean.WeltDataBean;
import com.mogo.och.sweeper.fragment.SweeperFragment;
import com.mogo.och.sweeper.model.SweeperTaskModel;
import com.mogo.och.sweeper.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.util.SweeperTrajectoryManager;
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean;
import com.mogo.och.sweeper.common.bean.SweeperRoutePlanningUpdateReqBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.common.callback.ISweeperADASStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperControllerStatusCallback;
import com.mogo.och.sweeper.operate.callback.ISweeperOperateTaskCallback;
import com.mogo.och.sweeper.common.callback.ISweeperTaskRouteCallback;
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum;
import com.mogo.och.sweeper.common.database.MyDataBase;
import com.mogo.och.sweeper.common.database.bean.WeltDataBean;
import com.mogo.och.sweeper.operate.fragment.SweeperOperateFragment;
import com.mogo.och.sweeper.operate.model.SweeperOperateTaskModel;
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil;
import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager;
import org.jetbrains.annotations.NotNull;
@@ -60,9 +60,9 @@ import system_master.SystemStatusInfo;
*
* @author tongchenfei
*/
public class SweeperPresenter extends Presenter<SweeperFragment>
public class SweeperOperatePresenter extends Presenter<SweeperOperateFragment>
implements IMoGoAutopilotStatusListener, ISweeperControllerStatusCallback, ISweeperADASStatusCallback,
IMoGoSweeperFutianCleanSystemListener, ISweeperTaskCallback, ISweeperTaskRouteCallback {
IMoGoSweeperFutianCleanSystemListener, ISweeperOperateTaskCallback, ISweeperTaskRouteCallback {
private static final String TAG = "SweeperPresenter";
//当前子任务id
@@ -80,13 +80,13 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
private String longitude;//经度
private String latitude;//纬度
public SweeperPresenter(SweeperFragment view) {
public SweeperOperatePresenter(SweeperOperateFragment view) {
super(view);
//2021.11.1 鹰眼架构整合由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口
CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this);
//清扫车模式和贴边数据回调监听
CallerSweeperFutianCleanSystemListenerManager.INSTANCE.addListener(TAG, this);
SweeperTaskModel.getInstance().init();
SweeperOperateTaskModel.getInstance().init();
OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp());
}
@@ -99,20 +99,20 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
super.onDestroy(owner);
SweeperTaskModel.getInstance().release();
SweeperOperateTaskModel.getInstance().release();
releaseListener();
}
public void initModelListener() {
SweeperTaskModel.getInstance().setControllerStatusCallback(this);
SweeperTaskModel.getInstance().setAdasStatusCallback(this);
SweeperTaskModel.getInstance().setSweeperTaskCallback(this);
SweeperOperateTaskModel.getInstance().setControllerStatusCallback(this);
SweeperOperateTaskModel.getInstance().setAdasStatusCallback(this);
SweeperOperateTaskModel.getInstance().setSweeperTaskCallback(this);
}
public void releaseListener() {
SweeperTaskModel.getInstance().setControllerStatusCallback(null);
SweeperTaskModel.getInstance().setAdasStatusCallback(null);
SweeperTaskModel.getInstance().setSweeperTaskCallback(null);
SweeperOperateTaskModel.getInstance().setControllerStatusCallback(null);
SweeperOperateTaskModel.getInstance().setAdasStatusCallback(null);
SweeperOperateTaskModel.getInstance().setSweeperTaskCallback(null);
CallerSweeperFutianCleanSystemListenerManager.INSTANCE.removeListener(TAG);
}
@@ -126,34 +126,34 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
@Override
public void onAutopilotStatusResponse(int state) {
SweeperTaskModel.getInstance().setAutopilotState(state);
SweeperOperateTaskModel.getInstance().setAutopilotState(state);
ThreadUtils.runOnUiThread(() -> mView.startAutoBtn(state));
switch (state) {
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE://不可自动驾驶
break;
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE://人工驾驶
if (SweeperTaskModel.getInstance().getSubWorking()) {
if (SweeperOperateTaskModel.getInstance().getSubWorking()) {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
SweeperTaskModel.getInstance().startBeautificationMode();
SweeperOperateTaskModel.getInstance().startBeautificationMode();
}
} else {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
//关闭美化模式
SweeperTaskModel.getInstance().closeBeautificationMode();
SweeperOperateTaskModel.getInstance().closeBeautificationMode();
}
}
break;
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING://自动驾驶中
SweeperTaskModel.getInstance().triggerStartServiceEvent(
SweeperTaskModel.getInstance().isRestartAutopilot(), true);
if (SweeperTaskModel.getInstance().getSubWorking()) {
SweeperOperateTaskModel.getInstance().triggerStartServiceEvent(
SweeperOperateTaskModel.getInstance().isRestartAutopilot(), true);
if (SweeperOperateTaskModel.getInstance().getSubWorking()) {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
SweeperTaskModel.getInstance().startBeautificationMode();
SweeperOperateTaskModel.getInstance().startBeautificationMode();
}
}
break;
case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING://平行驾驶
if (SweeperTaskModel.getInstance().getSubWorking()) {
if (SweeperOperateTaskModel.getInstance().getSubWorking()) {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;//是否强制绘制引导线
CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾
@@ -161,7 +161,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
} else {
if (FunctionBuildConfig.isDemoMode) {//美化模式开启时
//关闭美化模式
SweeperTaskModel.getInstance().closeBeautificationMode();
SweeperOperateTaskModel.getInstance().closeBeautificationMode();
}
}
break;
@@ -191,10 +191,10 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* 清除路线缓存数据
*/
public void clearRouteList(){
SweeperTaskModel.getInstance().clearRouteList();
SweeperOperateTaskModel.getInstance().clearRouteList();
}
public void startAutopilot() {
SweeperTaskModel.getInstance().startAutopilot();
SweeperOperateTaskModel.getInstance().startAutopilot();
}
/**
@@ -202,10 +202,10 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
*/
public void setSubtask(boolean isFirstSubtask, boolean isLastSubtask, int subTaskId,int subTaskType) {
this.mSubTaskId = subTaskId;
SweeperTaskModel.getInstance().setSubtask(isFirstSubtask, isLastSubtask, subTaskId,subTaskType);
SweeperOperateTaskModel.getInstance().setSubtask(isFirstSubtask, isLastSubtask, subTaskId,subTaskType);
}
public void setWorking(boolean isWorking){
SweeperTaskModel.getInstance().setWorking(isWorking);
SweeperOperateTaskModel.getInstance().setWorking(isWorking);
}
/**
* 测试使用
@@ -236,7 +236,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
@Override
public void onAutopilotArriveAtStation(@Nullable MessagePad.ArrivalNotification arrivalNotification) {
SweeperTaskModel.getInstance().onArriveTaskEnd(arrivalNotification);
SweeperOperateTaskModel.getInstance().onArriveTaskEnd(arrivalNotification);
}
@Override
@@ -248,7 +248,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
}
public void onArriveTaskEnd(@Nullable MessagePad.ArrivalNotification arrivalNotification) {
SweeperTaskModel.getInstance().onArriveTaskEnd(arrivalNotification);
SweeperOperateTaskModel.getInstance().onArriveTaskEnd(arrivalNotification);
}
@Override
@@ -348,7 +348,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
weltDataBean.setCleanMode(roboSweeperTaskIndex.getCleanMode());
weltDataBean.setCleanDirection(roboSweeperTaskIndex.getCleanDirection());
weltDataBean.setCleanIntensity(roboSweeperTaskIndex.getCleanIntensity());
weltDataBean.setSubTaskId(mSubTaskId);
weltDataBean.setSubTaskId(String.valueOf(mSubTaskId));
MyDataBase.getInstance().getWeltDataDao().insert(weltDataBean);
String distance;
if (roboSweeperTaskIndex.getDistToRefEdgePoint() >= 1.0) {//大于等于1m
@@ -370,28 +370,28 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* 获取当前正在执行的任务
*/
public void getCurrentTask() {
SweeperTaskModel.getInstance().getCurrentTask();
SweeperOperateTaskModel.getInstance().getCurrentTask();
}
/**
* 获取主任务列表
*/
public void getMainTaskList(boolean refresh) {
SweeperTaskModel.getInstance().getMainTaskList(refresh);
SweeperOperateTaskModel.getInstance().getMainTaskList(refresh);
}
/**
* 获取子任务列表
*/
public void getSubTaskList(int taskId, SweeperSubTaskBean sweeperSubTaskBean) {
SweeperTaskModel.getInstance().getSubTaskList(taskId, sweeperSubTaskBean);
SweeperOperateTaskModel.getInstance().getSubTaskList(taskId, sweeperSubTaskBean);
}
/**
* 获取子任务详情包括轨迹文件信息
*/
public void getSubTaskDetail(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType, boolean isStartSubtask) {
SweeperTaskModel.getInstance().getSubTaskDetail(isFirst, isEnd, subTaskId, subTaskType, isStartSubtask);
SweeperOperateTaskModel.getInstance().getSubTaskDetail(isFirst, isEnd, subTaskId, subTaskType, isStartSubtask);
}
/**
@@ -399,7 +399,7 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
*/
public void startTask(boolean isFirst, boolean isEnd, int subTaskId, SubTaskTypeEnum subTaskType, int subTaskStatus) {
if (SubTaskTypeEnum.AUTOPILOT_SUBTYPE.getCode() == subTaskStatus) {
SweeperTaskModel.getInstance().subTaskStart(isFirst, isEnd, subTaskId, subTaskType);
SweeperOperateTaskModel.getInstance().subTaskStart(isFirst, isEnd, subTaskId, subTaskType);
}
}
@@ -407,21 +407,21 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
* 子任务结束上报
*/
public void subTaskEnd(boolean isFirst, boolean isEnd, int subTaskId) {
SweeperTaskModel.getInstance().subTaskEnd(isFirst, isEnd, subTaskId);
SweeperOperateTaskModel.getInstance().subTaskEnd(isFirst, isEnd, subTaskId);
}
/**
* 子任务跳过上报
*/
public void subTaskSkip(boolean isFirst, boolean isEnd, int subTaskId) {
SweeperTaskModel.getInstance().subTaskSkip(isFirst, isEnd, subTaskId);
SweeperOperateTaskModel.getInstance().subTaskSkip(isFirst, isEnd, subTaskId);
}
/**
* 主任务重置
*/
public void mainTaskReset(int taskId) {
SweeperTaskModel.getInstance().mainTaskReset(taskId);
SweeperOperateTaskModel.getInstance().mainTaskReset(taskId);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.adapter
package com.mogo.och.sweeper.operate.ui.adapter
import android.graphics.Color
import android.view.LayoutInflater
@@ -9,7 +9,7 @@ import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SweeperMainTaskBean
import com.mogo.och.sweeper.operate.bean.SweeperMainTaskBean
class TaskListAdapter() : RecyclerView.Adapter<TaskListAdapter.TaskViewHolder>() {
private var mItemClickListener: TaskItemClickListener? = null
@@ -42,12 +42,12 @@ class TaskListAdapter() : RecyclerView.Adapter<TaskListAdapter.TaskViewHolder>()
notifyDataSetChanged()
}
interface TaskItemClickListener {
fun onItemClick(position: Int,mainTask:SweeperMainTaskBean)
fun onItemClick(position: Int,mainTask: SweeperMainTaskBean)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TaskViewHolder {
val view = LayoutInflater.from(parent.context).inflate(
R.layout.sweeper_item_task_info, parent, false
R.layout.sweeper_operate_item_task_info, parent, false
)
return TaskViewHolder(view)
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.ui.popwindow
package com.mogo.och.sweeper.operate.ui.popwindow
import android.content.Context
import android.graphics.Color
@@ -9,7 +9,7 @@ import android.view.ViewGroup.LayoutParams
import android.widget.PopupWindow
import android.widget.TextView
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.constant.TaskStatusEnum
import com.mogo.och.sweeper.operate.constant.TaskStatusEnum
/**
* 当前任务操作菜单栏
@@ -24,9 +24,9 @@ class MenuPopWindow : PopupWindow, View.OnClickListener{
private var mTvCancelTask: TextView? = null
private var mMenuItemClickListener:OnMenuItemOnClickListener?=null
private var mMenuItemClickListener: OnMenuItemOnClickListener?=null
constructor(context: Context,menuItemClickListener:OnMenuItemOnClickListener) : super(context) {
constructor(context: Context,menuItemClickListener: OnMenuItemOnClickListener) : super(context) {
init(context)
this.mMenuItemClickListener=menuItemClickListener
}
@@ -36,7 +36,7 @@ class MenuPopWindow : PopupWindow, View.OnClickListener{
*/
private fun init(context: Context) {
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
var view: View = LayoutInflater.from(context).inflate(R.layout.sweeper_task_menu, null)
var view: View = LayoutInflater.from(context).inflate(R.layout.sweeper_operate_task_menu, null)
mTvJumpOverTask = view.findViewById(R.id.tvJumpOverTask)
mTaskJumpLineView = view.findViewById(R.id.taskJumpLineView)
mTvEndTask = view.findViewById(R.id.tvEndTask)

View File

@@ -1,11 +1,11 @@
package com.mogo.och.sweeper.util;
package com.mogo.och.sweeper.operate.util;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.och.sweeper.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.constant.SweeperConst;
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskDetailBean;
import com.mogo.och.sweeper.common.constant.SweeperConst;
import java.util.concurrent.TimeUnit;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view;
package com.mogo.och.sweeper.operate.view;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.operate.view
import android.content.Context
import android.graphics.Color
@@ -11,22 +11,22 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SubInfo
import com.mogo.och.sweeper.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.presenter.SweeperPresenter
import com.mogo.och.sweeper.ui.popwindow.MenuPopWindow
import kotlinx.android.synthetic.main.sweeper_current_task_info.view.*
import com.mogo.och.sweeper.operate.bean.SubInfo
import com.mogo.och.sweeper.operate.bean.SweeperSubTaskBean
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.operate.presenter.SweeperOperatePresenter
import com.mogo.och.sweeper.operate.ui.popwindow.MenuPopWindow
import kotlinx.android.synthetic.main.sweeper_operate_current_task_info.view.*
/**
* 清扫车当前任务信息展示
*/
class SweeperCurrentTaskInfoView : ConstraintLayout {
class SweeperOperateCurrentTaskInfoView : ConstraintLayout {
private val TAG: String = "SweeperCurrentTaskInfoView"
//当前任务操作菜单
private var mTaskMenuPopWindow: MenuPopWindow? = null
private var presenter: SweeperPresenter? = null
private var presenter: SweeperOperatePresenter? = null
private var mCurrentPosition = 0
private var listTask: List<SubInfo>? = null
private var mSubTaskType: SubTaskTypeEnum = SubTaskTypeEnum.AUTOPILOT_SUBTYPE
@@ -43,7 +43,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_current_task_info, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_operate_current_task_info, this)
setEnableClickBtn(false)
tvStartAuto.setOnClickListener {
if (ClickUtils.isFastClick()){//防止重复点击
@@ -51,7 +51,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
ToastUtils.showLong("任务未开始无轨迹,无法启动自驾")
return@setOnClickListener
}
if (mSubTaskType==SubTaskTypeEnum.MANUAL_DRIVING_SUBTYPE){
if (mSubTaskType== SubTaskTypeEnum.MANUAL_DRIVING_SUBTYPE){
ToastUtils.showLong("人工子任务无轨迹,无法启动自驾")
return@setOnClickListener
}
@@ -66,17 +66,17 @@ class SweeperCurrentTaskInfoView : ConstraintLayout {
* 设置当前任务数据
*/
fun setData(
workModePanelView: SweeperWorkModeView,
subTaskBean: SweeperSubTaskBean?,
currentPosition: Int,
menuItemClickListener: MenuPopWindow.OnMenuItemOnClickListener,
presenter: SweeperPresenter?
workModePanelView: SweeperOperateWorkModeView,
subTaskBean: SweeperSubTaskBean?,
currentPosition: Int,
menuItemClickListener: MenuPopWindow.OnMenuItemOnClickListener,
presenter: SweeperOperatePresenter?
) {
this.presenter = presenter
this.mCurrentPosition = currentPosition
mTaskMenuPopWindow = MenuPopWindow(context, menuItemClickListener)
subTaskBean?.apply {
this@SweeperCurrentTaskInfoView.listTask = subList
this@SweeperOperateCurrentTaskInfoView.listTask = subList
tvTaskName.text = taskName
val calendar = DateTimeUtil.formatLongToCalendar(taskStartTime)
tvTaskTime.text = DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.operate.view
import android.content.Context
import android.graphics.Color
@@ -8,13 +8,13 @@ import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.bean.SubInfo
import kotlinx.android.synthetic.main.sweeper_subtask_view.view.*
import com.mogo.och.sweeper.operate.bean.SubInfo
import kotlinx.android.synthetic.main.sweeper_operate_subtask_view.view.*
/**
* 子任务View
*/
class SubTaskView : ConstraintLayout {
class SweeperOperateSubTaskView : ConstraintLayout {
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
initView(context)
@@ -24,7 +24,7 @@ class SubTaskView : ConstraintLayout {
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_subtask_view, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_operate_subtask_view, this)
}
/**

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.operate.view
import android.annotation.SuppressLint
import android.content.Context
@@ -22,13 +22,14 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.common.view.TurnSignalView
import planning.RoboSweeperTaskIndexOuterClass
import kotlin.math.roundToInt
/**
* 车辆基本信息方向盘下方的档位 转向灯 限速 速度 电量 水量
*/
class SweeperTrafficDataView : ConstraintLayout,
class SweeperOperateTrafficDataView : ConstraintLayout,
IMoGoBatteryManagementSystemListener,
IMoGoChassisLamplightListener,
IMoGoChassisGearStateListener,
@@ -68,7 +69,7 @@ class SweeperTrafficDataView : ConstraintLayout,
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {}
private fun initView(context: Context) {
LayoutInflater.from(context).inflate(R.layout.sweeper_traffic_data, this)
LayoutInflater.from(context).inflate(R.layout.sweeper_operate_traffic_data, this)
tapPositionView = findViewById(R.id.sweeperTrafficPosition)
speedImage = findViewById(R.id.sweeperSpeedImage)
speedTextView = findViewById(R.id.sweeperSpeedText)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.sweeper.view
package com.mogo.och.sweeper.operate.view
import android.content.Context
import android.util.AttributeSet
@@ -10,25 +10,25 @@ import com.elegant.utils.UiThreadHandler
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.sweeper.R
import com.mogo.och.sweeper.callback.ICleaningModeStateCallback
import com.mogo.och.sweeper.constant.OperateStateEnum
import com.mogo.och.sweeper.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.ui.popwindow.SweeperOperatePanelPopWindow
import com.mogo.och.sweeper.util.SweeperFutianCmdUtil
import com.mogo.och.sweeper.common.callback.ICleaningModeStateCallback
import com.mogo.och.sweeper.common.constant.OperateStateEnum
import com.mogo.och.sweeper.operate.constant.SubTaskTypeEnum
import com.mogo.och.sweeper.common.view.SweeperOperatePanelPopWindow
import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil
import kotlinx.android.synthetic.main.sweeper_work_mode.view.*
/**
* 清扫车模式信息展示
*/
class SweeperWorkModeView : ConstraintLayout,
ICleaningModeStateCallback {
class SweeperOperateWorkModeView : ConstraintLayout,
ICleaningModeStateCallback {
private var isSelectPureSweepMode: Boolean = false
private val TAG = "SweeperWorkModeView"
//清扫模式选择面板
private var mOperatePanelPopWindow: SweeperOperatePanelPopWindow? = null
private var operateState: OperateStateEnum=OperateStateEnum.SYNCING_STATUS
private var operateState: OperateStateEnum = OperateStateEnum.SYNCING_STATUS
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
@@ -47,7 +47,7 @@ class SweeperWorkModeView : ConstraintLayout,
/**
* 设置view
*/
fun setTrafficDataView(trafficDataView: SweeperTrafficDataView){
fun setTrafficDataView(trafficDataView: SweeperOperateTrafficDataView){
//清扫模式选择面板打开关闭处理
ivOpenOperatePanel.setOnClickListener {
if (mOperatePanelPopWindow?.isShowing != true) {
@@ -72,12 +72,12 @@ class SweeperWorkModeView : ConstraintLayout,
fun setSweeperFutianCleanSystemState(taskType: SubTaskTypeEnum, cleanSystemState: SweeperFuTianTaskSystemStates?) {
// TODO:传递清扫车底盘数据给上装面板
//mOperatePanelPopWindow?.setCleanSystemState(cleanSystemState, this@SweeperWorkModeView)
if (this.operateState.code==OperateStateEnum.STARTING_STATUS.code){
if (this.operateState.code== OperateStateEnum.STARTING_STATUS.code){
return
}
//如果状态是同步中,在底盘首次回调时把状态强制修改成成功
if (this.operateState.code==OperateStateEnum.SYNCING_STATUS.code){
this.operateState=OperateStateEnum.SUCCESS_STATUS
if (this.operateState.code== OperateStateEnum.SYNCING_STATUS.code){
this.operateState= OperateStateEnum.SUCCESS_STATUS
d(SceneConstant.M_SWEEPER + TAG, "SystemState operateState"+operateState.code)
}
//清扫车暂未选择清扫模式或者任务类型是人工驾驶子任务,则暂无清扫模式

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 544 B

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Some files were not shown because too many files have changed in this diff Show More