Merge branch 'dev_robotaxi-d_230809_6.0.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_230809_6.0.0
This commit is contained in:
@@ -62,7 +62,7 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener;
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager;
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
|
||||
|
||||
@@ -31,7 +31,7 @@ import com.mogo.och.bus.util.BusTrajectoryManager;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.voice.VoiceNotice;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -16,7 +16,6 @@ import com.magic.mogo.och.charter.manager.CharterAnalyticsManager
|
||||
import com.magic.mogo.och.charter.manager.CharterTrajectoryManager
|
||||
import com.magic.mogo.och.charter.net.DriverM1ServiceManager
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.module.intent.IMogoIntentListener
|
||||
import com.mogo.commons.module.intent.IntentManager
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
@@ -56,14 +55,10 @@ import com.mogo.och.common.module.manager.CharterSendTripInfoManager
|
||||
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.ARRIVE_STATION
|
||||
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP
|
||||
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.utils.*
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.data.bean.*
|
||||
import io.reactivex.exceptions.UndeliverableException
|
||||
import io.reactivex.functions.Consumer
|
||||
import io.reactivex.plugins.RxJavaPlugins
|
||||
import java.io.IOException
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
|
||||
@@ -22,7 +22,7 @@ import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.StopSideStatusManager
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import mogo.telematics.pad.MessagePad
|
||||
|
||||
@@ -41,7 +41,7 @@ import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.manager.CharterSendTripInfoManager
|
||||
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.LEAVE_STATION
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.PinYinUtil
|
||||
@@ -964,7 +964,7 @@ object CharterPassengerModel {
|
||||
// 清理轨迹
|
||||
cleanRoutePoints()
|
||||
// 到站结束自驾
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
CallerAutoPilotControlManager.cancelAutoPilot4Passenger()
|
||||
// 结束路距计算 到达目的站点
|
||||
endCalculateDistanceLoop()
|
||||
// 到站置距离位0
|
||||
|
||||
@@ -32,7 +32,7 @@ import com.mogo.och.charter.passenger.ui.MainFragment
|
||||
import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteName
|
||||
import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteNamewithCheck
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.StopSideStatusManager
|
||||
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
|
||||
|
||||
@@ -25,5 +25,8 @@ class OchCommonConst {
|
||||
const val LOGINSERVICE = "/ochbiz/common/login"
|
||||
|
||||
const val BUSINESS_STRING = 100
|
||||
|
||||
// 自动驾驶自动规划的最大距离
|
||||
const val AUTOMATIC_PLANNING_MAX_DISTANCE = 15
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.manager;
|
||||
package com.mogo.och.common.module.manager.autopilotmanager;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
@@ -59,8 +59,11 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo
|
||||
return "未知异常";
|
||||
}else {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (UnableAutopilotReason unableAutopilotReason : unableAutopilotReasons) {
|
||||
stringBuilder.append(unableAutopilotReason.toString()).append("\n");
|
||||
for (int i = 0; i < unableAutopilotReasons.size(); i++) {
|
||||
stringBuilder.append(unableAutopilotReasons.get(i));
|
||||
if(i<unableAutopilotReasons.size()-1){
|
||||
stringBuilder.append("\n");
|
||||
}
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
@@ -12,6 +12,8 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
|
||||
import com.mogo.eagle.core.utilcode.util.LocationUtils
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
|
||||
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
|
||||
@@ -541,4 +543,87 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
d(M_OCHCOMMON+ TAG,location)
|
||||
}
|
||||
|
||||
|
||||
fun canStartAutopilot(lineId: Long):String{
|
||||
|
||||
fun distanceWithStartStation():String{
|
||||
if (startStationInfo.stationPoint==null) {
|
||||
return "请选择起始结束站点"
|
||||
}
|
||||
val currentPoint = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
|
||||
val distance = CoordinateUtils.calculateLineDistance(
|
||||
currentPoint.longitude,
|
||||
currentPoint.latitude,
|
||||
startStationInfo.stationPoint!!.longitude,
|
||||
startStationInfo.stationPoint!!.latitude
|
||||
)
|
||||
if(distance <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE){
|
||||
return ""
|
||||
}else{
|
||||
return "距离起始站点过远:${distance}米"
|
||||
}
|
||||
}
|
||||
|
||||
if(mRoutePoints.isNullOrEmpty()){
|
||||
// 判断距离起始站的距离
|
||||
return distanceWithStartStation()
|
||||
}else{
|
||||
if(lineId!=this.lineId){
|
||||
// 判断距离起始站的距离
|
||||
return distanceWithStartStation()
|
||||
}else{
|
||||
val currentPoint = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
|
||||
// 判断距离轨迹的距离
|
||||
val carLocationInfo: Triple<Int, Boolean?, Float> =
|
||||
CoordinateCalculateRouteUtil.getNearestPointInfo(
|
||||
preCarLocationIndexInTrajectory,
|
||||
mRoutePoints!!.size - 1,
|
||||
mRoutePoints!!,
|
||||
currentPoint,
|
||||
2
|
||||
)
|
||||
if(carLocationInfo.first<=OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE){
|
||||
return ""// 可以启动自驾
|
||||
}else{
|
||||
mRoutePoints?.let {
|
||||
// 判断距离线段的距离 垂足的距离
|
||||
val nextPoint:MogoLocation
|
||||
val prePoint:MogoLocation
|
||||
if(carLocationInfo.second==true){
|
||||
if(carLocationInfo.first>0){
|
||||
nextPoint = it[carLocationInfo.first]
|
||||
prePoint = it[carLocationInfo.first-1]
|
||||
} else {
|
||||
// 距离第一个点大于15m 过远
|
||||
return "距离第一个轨迹点超过15m:${carLocationInfo.first}米"
|
||||
}
|
||||
}else{
|
||||
if (carLocationInfo.first + 1 < it.size) {
|
||||
nextPoint = it[carLocationInfo.first + 1]
|
||||
prePoint = it[carLocationInfo.first]
|
||||
}else{
|
||||
nextPoint = it[carLocationInfo.first ]
|
||||
prePoint = it[carLocationInfo.first-1]
|
||||
}
|
||||
}
|
||||
val pointToLine = LocationUtils.pointToLine(
|
||||
prePoint.longitude,
|
||||
prePoint.latitude,
|
||||
nextPoint.longitude,
|
||||
nextPoint.latitude,
|
||||
currentPoint.longitude,
|
||||
currentPoint.latitude
|
||||
)
|
||||
if(pointToLine<=OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE){
|
||||
return ""
|
||||
}else{
|
||||
return "距离轨迹线的距离大于15m,无法启动自驾"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return "未能计算出车辆距离轨迹或站点的距离"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -150,4 +150,21 @@ public class DateTimeUtil {
|
||||
return stringBuffer.toString();
|
||||
|
||||
}
|
||||
|
||||
public static String second2MMSS(Long second) {
|
||||
if (second == null || second < 0) {
|
||||
return "00:00";
|
||||
}
|
||||
long m = (long) Math.floor((second % 3600) / 60.0);// 向上取整
|
||||
long s = second % 60;
|
||||
StringBuilder stringBuffer = new StringBuilder();
|
||||
if (m > 0) {
|
||||
stringBuffer.append(m < 10 ? ("0" + m) : m).append(":");
|
||||
}else {
|
||||
stringBuffer.append("00:");
|
||||
}
|
||||
stringBuffer.append(s < 10 ? ("0" + s) : s);
|
||||
return stringBuffer.toString();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil;
|
||||
import com.mogo.och.common.module.utils.NumberFormatUtil;
|
||||
|
||||
@@ -31,9 +31,8 @@ import com.mogo.och.bus.util.BusTrajectoryManager;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.voice.VoiceNotice;
|
||||
import com.mogo.och.data.manager.cache.CacheDataManager;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.mogo.och.sweepercloud.fragment;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
@@ -16,7 +13,6 @@ import androidx.constraintlayout.widget.Group;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.amap.api.maps.model.LatLng;
|
||||
import com.elegant.network.utils.GsonUtil;
|
||||
import com.google.protobuf.TextFormat;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.mvp.IView;
|
||||
@@ -33,7 +29,6 @@ import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxBubbleView;
|
||||
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView;
|
||||
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView;
|
||||
import com.mogo.eagle.core.function.view.MapBizView;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
@@ -42,9 +37,8 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.listener.MogoMapListenerHandler;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.map.uicontroller.VisualAngleMode;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
|
||||
import com.mogo.och.common.module.utils.PinYinUtil;
|
||||
import com.mogo.och.sweepercloud.R;
|
||||
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
|
||||
import com.mogo.och.sweepercloud.callback.ISweeperTaskDataToFragmentCallback;
|
||||
|
||||
@@ -29,7 +29,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSyste
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCloudTaskListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
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;
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.mogo.commons.mvp.Presenter;
|
||||
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.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean;
|
||||
import com.mogo.och.sweepercloud.callback.ISweeperControllerStatusCallback;
|
||||
import com.mogo.och.sweepercloud.callback.ISweeperCloudTaskCallback;
|
||||
|
||||
@@ -33,7 +33,7 @@ import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManag
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage;
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
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.common.module.utils.PinYinUtil;
|
||||
|
||||
@@ -20,7 +20,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSystemListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
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;
|
||||
|
||||
@@ -49,7 +49,7 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.distancemamager.IDistanceListener;
|
||||
import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener;
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager;
|
||||
|
||||
@@ -19,7 +19,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.voice.VoiceNotice;
|
||||
import com.mogo.och.taxi.bean.OrderQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean;
|
||||
@@ -37,8 +37,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2021/1/18
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
app:cardUseCompatPadding="true"
|
||||
app:cardPreventCornerOverlap="false"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
<com.mogo.och.taxi.ui.navi.auto.TaxiMapDirectionView
|
||||
<com.mogo.och.taxi.ui.TaxiMapDirectionView
|
||||
android:id="@+id/rotting_navi_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
@@ -12,7 +12,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.utils.PinYinUtil
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
|
||||
|
||||
@@ -16,13 +16,12 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.distancemamager.IDistanceListener
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
|
||||
@@ -30,7 +29,6 @@ import com.mogo.och.common.module.manager.loopmanager.LoopInfo
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager
|
||||
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.UiThreadHandler
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
|
||||
|
||||
@@ -20,5 +20,6 @@ data class UnmannedLogoutReqBean(var sn: String, var loc: GcjLatLon?)
|
||||
data class StartServiceReqBean(var sn: String, var gcjLat: Double, var gcjLon: Double)
|
||||
|
||||
data class StartServiceRespBean(var data: Result?): BaseData(){
|
||||
data class Result(var siteId: Long,var siteName: String,var gcjLat: Double, var gcjLon: Double)
|
||||
data class Result(var siteId: Long,var siteName: String,var gcjLat: Double, var gcjLon: Double,
|
||||
var wgs84Lon: Double, var wgs84Lat: Double )
|
||||
}
|
||||
@@ -12,4 +12,6 @@ interface ITaxiTaskWithOrderCallback {
|
||||
fun onOrderTotalMileAndDurationChanged(mileage: Float, duration: Int)
|
||||
fun onOrderJourneyCompleted()
|
||||
fun onStartAutopilot()
|
||||
|
||||
fun onStartPrepareTask120s(isStart: Boolean)
|
||||
}
|
||||
@@ -12,7 +12,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
|
||||
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
|
||||
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
|
||||
|
||||
@@ -4,13 +4,20 @@ import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.text.SpannableString
|
||||
import android.text.Spanned
|
||||
import android.text.method.ScrollingMovementMethod
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
import com.mogo.eagle.core.function.main.MainMoGoApplication
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.taxi.R
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
|
||||
@@ -28,6 +35,7 @@ import kotlinx.android.synthetic.main.taxi_debug_order.view.currentOrderStopInfo
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.currentOrderTrajectoryInfo
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.currentStatus
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.currentTaskType
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.debugLogHistoryTextView
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.orderEndSiteInfo
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.orderNo
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.orderPreLoadLines
|
||||
@@ -36,16 +44,54 @@ import kotlinx.android.synthetic.main.taxi_debug_order.view.orderStatus
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.taskEndSite
|
||||
import kotlinx.android.synthetic.main.taxi_debug_order.view.taskStartSite
|
||||
|
||||
|
||||
public class DebugView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0,
|
||||
defStyleRes: Int = 0
|
||||
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0
|
||||
) : LinearLayout(context, attrs, defStyleAttr, defStyleRes), ITaxiTaskWithOrderCallback {
|
||||
companion object {
|
||||
const val TAG = "DebugView"
|
||||
const val BROADCAST_ACTION = "com.mogo.och.driver.debugview.show"
|
||||
const val BROADCAST_DATA_SHOW = "isShow"
|
||||
|
||||
private var logHistoryTextView: TextView? = null
|
||||
fun printInfoMsg(msg: String) {
|
||||
printMsg("Info $msg", MainMoGoApplication.getApp().getColor(R.color.background_info))
|
||||
}
|
||||
|
||||
fun printWarnMsg(msg: String) {
|
||||
printMsg("Warn $msg", MainMoGoApplication.getApp().getColor(R.color.background_warn))
|
||||
}
|
||||
|
||||
fun printErrorMsg(msg: String) {
|
||||
printMsg("Error $msg", MainMoGoApplication.getApp().getColor(R.color.background_error))
|
||||
}
|
||||
|
||||
private fun printMsg(msg: String, textColor: Int) {
|
||||
logHistoryTextView?.also {
|
||||
val msg = "${currentDateTimeString()} $msg"
|
||||
val spannableMsg = SpannableString(msg)
|
||||
|
||||
spannableMsg.setSpan(
|
||||
ForegroundColorSpan(textColor), 0, msg.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
)
|
||||
UiThreadHandler.post({
|
||||
it.append("\n")
|
||||
it.append(spannableMsg)
|
||||
|
||||
val offset: Int = it.lineCount * it.lineHeight
|
||||
if (offset > it.height) {
|
||||
it.scrollTo(0, offset - it.height)
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
private fun currentDateTimeString(): String {
|
||||
return DateTimeUtil.formatCalendarToString(
|
||||
DateTimeUtil.formatLongToCalendar(System.currentTimeMillis()),
|
||||
DateTimeUtil.yyyy_MM_dd_HH_mm_ss
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private val broadcastReceiver = object : BroadcastReceiver() {
|
||||
@@ -59,9 +105,10 @@ public class DebugView @JvmOverloads constructor(
|
||||
|
||||
init {
|
||||
initBroadcastReceiver()
|
||||
LayoutInflater.from(context)
|
||||
.inflate(R.layout.taxi_debug_order, this, true)
|
||||
LayoutInflater.from(context).inflate(R.layout.taxi_debug_order, this, true)
|
||||
debugLogHistoryTextView.setMovementMethod(ScrollingMovementMethod.getInstance())
|
||||
visibility = GONE
|
||||
logHistoryTextView = debugLogHistoryTextView
|
||||
}
|
||||
|
||||
private fun initBroadcastReceiver() {
|
||||
@@ -71,11 +118,8 @@ public class DebugView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
fun toggleOrderDebugView() {
|
||||
visibility =
|
||||
if (visibility == View.VISIBLE)
|
||||
View.GONE
|
||||
else
|
||||
View.VISIBLE
|
||||
visibility = if (visibility == View.VISIBLE) View.GONE
|
||||
else View.VISIBLE
|
||||
val data = TaxiTaskModel.getCurrentTaskWithOrder()
|
||||
initViewByData(data)
|
||||
}
|
||||
@@ -100,17 +144,13 @@ public class DebugView @JvmOverloads constructor(
|
||||
|
||||
private fun initViewByData(data: QueryCurrentTaskRespBean.Result?) {
|
||||
val curContrail = TaxiTaskModel.getCurrentTaskTrajectory()
|
||||
currentDataTimestamps.text = "【当前数据返回时间】${
|
||||
DateTimeUtil.formatCalendarToString(
|
||||
DateTimeUtil.formatLongToCalendar(System.currentTimeMillis()),
|
||||
DateTimeUtil.yyyy_MM_dd_HH_mm_ss
|
||||
)
|
||||
}"
|
||||
currentDataTimestamps.text = "【当前数据返回时间】${currentDateTimeString()}"
|
||||
currentCarStatus.text =
|
||||
"【当前车辆状态】${data?.servingStatus} / ${if (data?.servingStatus == 1) "开始接单" else "暂停接单"}"
|
||||
currentTaskType.text = "【当前任务类型】${data?.taskType} / ${TaskTypeEnum.valueOf(data?.taskType ?: -1)?.name}"
|
||||
"【当前车辆状态】${data?.servingStatus} --> ${if (data?.servingStatus == 1) "开始接单" else "暂停接单"}"
|
||||
currentTaskType.text =
|
||||
"【当前任务类型】${data?.taskType} --> ${TaskTypeEnum.valueOf(data?.taskType ?: -1)?.name}"
|
||||
currentStatus.text =
|
||||
"【当前任务状态】${data?.currentStatus} / ${TaskStatusEnum.valueOf(data?.currentStatus ?: -1)?.name}"
|
||||
"【当前任务状态】${data?.currentStatus} --> ${TaskStatusEnum.valueOf(data?.currentStatus ?: -1)?.name}"
|
||||
currentLineId.text = "【当前任务lineId】 ${data?.lineId}"
|
||||
taskStartSite.text =
|
||||
"【当前任务起点】${data?.startSite?.siteName} siteId=${data?.startSite?.siteId}"
|
||||
@@ -119,7 +159,7 @@ public class DebugView @JvmOverloads constructor(
|
||||
currentOrder.text = "【订单信息】${if (data?.order == null) "null" else "不为空"}"
|
||||
orderNo.text = "【订单编号】${data?.order?.orderNo}"
|
||||
orderStatus.text =
|
||||
"【订单状态】${data?.order?.orderStatus} / ${TaxiOrderStatusEnum.valueOf(data?.order?.orderStatus ?: -1)?.name}"
|
||||
"【订单状态】${data?.order?.orderStatus} --> ${TaxiOrderStatusEnum.valueOf(data?.order?.orderStatus ?: -1)?.name}"
|
||||
orderStartSiteInfo.text =
|
||||
"【订单起点】${data?.order?.orderStartSite?.siteName} siteId=${data?.order?.orderStartSite?.siteId}"
|
||||
orderEndSiteInfo.text =
|
||||
@@ -157,4 +197,8 @@ public class DebugView @JvmOverloads constructor(
|
||||
|
||||
override fun onStartAutopilot() {
|
||||
}
|
||||
|
||||
override fun onStartPrepareTask120s() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.taxi.ui.unmanned
|
||||
package com.mogo.och.taxi.ui.task
|
||||
|
||||
import com.mogo.och.taxi.base.IUiState
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
|
||||
@@ -24,4 +24,6 @@ sealed class TaskWithOrderUIState {
|
||||
TaskWithOrderUIState()
|
||||
|
||||
data class UpdateTaskTripInfo(val mileage: Float, val duration: Int) : TaskWithOrderUIState()
|
||||
|
||||
data class UpdatePrepareTaskDelay120S(val isStart: Boolean) : TaskWithOrderUIState()
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import android.annotation.SuppressLint
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.GradientDrawable
|
||||
import android.os.Bundle
|
||||
import android.os.CountDownTimer
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
@@ -24,6 +26,8 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
|
||||
import com.mogo.och.common.module.map.ICommonNaviChangedCallback
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.common.module.wigets.OCHCommitDialog
|
||||
import com.mogo.och.taxi.R
|
||||
import com.mogo.och.taxi.bean.OrderDetail
|
||||
@@ -34,9 +38,9 @@ import com.mogo.och.taxi.constant.TaskTypeEnum
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAKER
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TIMER_PREPARE_TASK_INTERVAL_120S
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER
|
||||
import com.mogo.och.taxi.ui.base.TaxiFragment
|
||||
import com.mogo.och.taxi.ui.unmanned.TaskWithOrderUIState
|
||||
import com.mogo.och.taxi.utils.MapMakerManager
|
||||
import com.mogo.och.taxi.utils.TaskUtils
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.cancelOrder
|
||||
@@ -47,6 +51,7 @@ import kotlinx.android.synthetic.main.task_fragment_current.naviToEnd
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.naviToStart
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.noTaskData
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.orderPhoneAndNum
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.pathwayPoint
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.startPoint
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.startStationName
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.taskClickBtn
|
||||
@@ -54,6 +59,7 @@ import kotlinx.android.synthetic.main.task_fragment_current.taskOtherInfo
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.taskStatus
|
||||
import kotlinx.android.synthetic.main.task_fragment_current.taskTypeTv
|
||||
import kotlinx.android.synthetic.main.taxi_no_data_common_view.noOrderDataTv
|
||||
import kotlinx.android.synthetic.main.taxi_no_data_common_view.prepareTaskCountdownTv
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
/**
|
||||
@@ -65,6 +71,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
|
||||
private lateinit var mViewModel: TaxiCurrentTaskViewModel
|
||||
|
||||
private var mPrepareTasCountDownTimer: CountDownTimer? = null
|
||||
|
||||
companion object {
|
||||
const val TAG = M_TAXI + "TaxiCurrentTaskFragment"
|
||||
private var mTaxiFragment: TaxiFragment? = null
|
||||
@@ -157,6 +165,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
if (taskAndOrderUiState.driveToNearestStationTask != null) {
|
||||
updateViewByDriveToNearestStationTask(taskAndOrderUiState.driveToNearestStationTask)
|
||||
} else {
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
initContainerView(false)
|
||||
removeAllMapMarker()
|
||||
}
|
||||
@@ -181,11 +190,51 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
taskAndOrderUiState.duration
|
||||
)
|
||||
}
|
||||
|
||||
is TaskWithOrderUIState.UpdatePrepareTaskDelay120S -> {
|
||||
updatePrepareTaskDelay120SUI(taskAndOrderUiState.isStart)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新120s倒计时
|
||||
*/
|
||||
private fun updatePrepareTaskDelay120SUI(isStart: Boolean) {
|
||||
|
||||
if (!isStart){
|
||||
prepareTaskCountdownTv.visibility = View.GONE
|
||||
mPrepareTasCountDownTimer?.cancel()
|
||||
mPrepareTasCountDownTimer = null
|
||||
return
|
||||
}
|
||||
|
||||
prepareTaskCountdownTv.visibility = View.VISIBLE
|
||||
mPrepareTasCountDownTimer = object : CountDownTimer(TIMER_PREPARE_TASK_INTERVAL_120S, 1000L) {// 5倒计时后开启自驾
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
// 倒计时
|
||||
UiThreadHandler.post {
|
||||
prepareTaskCountdownTv.text =
|
||||
"距离任务获取还有 ${DateTimeUtil.second2MMSS(millisUntilFinished/1000)}"
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
//倒计时结束了...
|
||||
UiThreadHandler.post {
|
||||
prepareTaskCountdownTv.visibility = View.GONE
|
||||
}
|
||||
mPrepareTasCountDownTimer?.cancel()
|
||||
}
|
||||
}
|
||||
|
||||
mPrepareTasCountDownTimer?.start()
|
||||
}
|
||||
|
||||
private fun updateViewByDriveToNearestStationTask(driveToNearestStationTask: StartServiceRespBean.Result?) {
|
||||
if (driveToNearestStationTask == null) return
|
||||
initContainerView(true)
|
||||
@@ -200,6 +249,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
naviToStart.visibility = View.GONE
|
||||
naviToEnd.visibility = View.VISIBLE
|
||||
taskOtherInfo.visibility = View.VISIBLE
|
||||
pathwayPoint.visibility = View.GONE
|
||||
|
||||
// 更新任务状态,起点,终点
|
||||
taskStatus.text = resources.getString(R.string.task_start_to_virtual_site)
|
||||
@@ -207,6 +257,14 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
endStationName.text = driveToNearestStationTask.siteName
|
||||
updateStartAndEndStationPointByStatus(true)
|
||||
|
||||
setOrRemoveMapMaker(
|
||||
true,
|
||||
TAXI_END_MAP_MAKER,
|
||||
driveToNearestStationTask.wgs84Lat,
|
||||
driveToNearestStationTask.wgs84Lon,
|
||||
R.raw.end_marker
|
||||
)
|
||||
|
||||
// 使用高德获取导航数据
|
||||
startNaviToStation(
|
||||
false,
|
||||
@@ -296,6 +354,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
TaskTypeEnum.None.code -> {
|
||||
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
|
||||
handleOrderView(order)
|
||||
updateOrderUI(order)
|
||||
VoiceNotice.showNotice("已为您接到订单")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,19 +372,12 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
if (currentStatus >= TaskStatusEnum.StartTask.code) View.VISIBLE else View.GONE
|
||||
taskOtherInfo.visibility =
|
||||
if (currentStatus == TaskStatusEnum.GetTask.code) View.GONE else View.VISIBLE
|
||||
}
|
||||
|
||||
TaskTypeEnum.ToOrderEndTask.code, TaskTypeEnum.ToOrderStartTask.code -> {// 接驾任务 或 送驾任务
|
||||
order.also {
|
||||
handleOrderView(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
pathwayPoint.visibility = View.GONE
|
||||
|
||||
when (taskType) {
|
||||
TaskTypeEnum.VirtualTask.code -> {// 演练任务
|
||||
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
|
||||
updateOrderUI(order)
|
||||
VoiceNotice.showNotice("已为您接到订单")
|
||||
return
|
||||
}
|
||||
if (startSite == null || endSite == null) return
|
||||
@@ -335,24 +388,30 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
taskTypeTv.text = resources.getString(R.string.task_exercise)
|
||||
startStationName.text = startSite.siteName
|
||||
endStationName.text = endSite.siteName
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
updateStartAndEndStationPointByStatus(true)
|
||||
}
|
||||
|
||||
TaskTypeEnum.ToOrderEndTask.code, TaskTypeEnum.ToOrderStartTask.code -> {// 送驾/接驾任务任务
|
||||
if (order == null) return
|
||||
updateOrderUI(order)
|
||||
}
|
||||
|
||||
TaskTypeEnum.None.code -> {
|
||||
if (order != null) {
|
||||
updateOrderUI(order)
|
||||
TaskTypeEnum.ToOrderEndTask.code, TaskTypeEnum.ToOrderStartTask.code -> {// 接驾任务 或 送驾任务
|
||||
order?.also {
|
||||
updatePathwayPoint(taskType,endSite?.siteName)
|
||||
handleOrderView(it)
|
||||
updateOrderUI(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateMapMarkers(taskAndOrder)
|
||||
updateRemainDistanceAndTime(false)
|
||||
}
|
||||
|
||||
private fun updatePathwayPoint(taskType: Int,endSiteName: String?) {
|
||||
if (TextUtils.isEmpty(endSiteName)) return
|
||||
pathwayPoint.visibility = if (taskType == TaskTypeEnum.ToOrderStartTask.code)
|
||||
View.VISIBLE else View.GONE
|
||||
pathwayPoint.text = "途径: $endSiteName"
|
||||
}
|
||||
|
||||
private fun updateMapMarkers(taskAndOrder: QueryCurrentTaskRespBean.Result?) {
|
||||
if (taskAndOrder != null && taskAndOrder!!.startSite != null
|
||||
&& taskAndOrder!!.endSite != null
|
||||
@@ -418,6 +477,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
}
|
||||
|
||||
private fun updateOrderUI(order: OrderDetail) {
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
taskTypeTv.text = resources.getString(R.string.task_order)
|
||||
taskTypeTv.background =
|
||||
ContextCompat.getDrawable(
|
||||
@@ -546,6 +606,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
|
||||
override fun onDestroyView() {
|
||||
AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
|
||||
updatePrepareTaskDelay120SUI(false)
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
|
||||
@@ -24,9 +24,7 @@ import com.mogo.och.taxi.constant.TaskStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager
|
||||
import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager.cancelOrder
|
||||
import com.mogo.och.taxi.ui.unmanned.TaskWithOrderUIState
|
||||
import com.mogo.och.taxi.ui.unmanned.UnmannedState
|
||||
import com.mogo.och.taxi.ui.debug.DebugView
|
||||
import com.mogo.och.taxi.utils.TaxiTrajectoryManager
|
||||
|
||||
/**
|
||||
@@ -82,8 +80,10 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
fun startOrStopCurrentTaskWithOrderLoop(start: Boolean) {
|
||||
d(TAG, "startOrStopCurrentTaskWithOrderLoop(): isStart=$start")
|
||||
if (start) {
|
||||
DebugView.printInfoMsg("[查询TaskWithOrder信息] start loop")
|
||||
TaxiTaskModel.startQueryCurrentTaskWithOrderLoop()
|
||||
} else {
|
||||
DebugView.printInfoMsg("[查询TaskWithOrder信息] stop loop")
|
||||
TaxiTaskModel.stopQueryCurrentTaskWithOrderLoop()
|
||||
}
|
||||
}
|
||||
@@ -91,21 +91,24 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
private fun cancelOrder(cancelType: Int) {
|
||||
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
|
||||
currentTaskWithOrder?.order?.also {
|
||||
TaxiTaskModel.cancelOrder(it.orderNo,cancelType)
|
||||
TaxiTaskModel.cancelOrder(it.orderNo, cancelType)
|
||||
}
|
||||
}
|
||||
|
||||
private fun jumpPassengerCheck() {
|
||||
DebugView.printInfoMsg("[开始服务] 准备发送请求")
|
||||
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
|
||||
currentTaskWithOrder?.order?.also {
|
||||
TaxiTaskWithOrderServiceManager.jumpPassengerCheck(AbsMogoApplication.getApp().applicationContext,
|
||||
it.orderNo,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
DebugView.printInfoMsg("[开始服务] 请求success")
|
||||
d(TAG, "jumpPassengerCheck onSuccess:")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
DebugView.printInfoMsg("[开始服务] 请求fail, code=$code, msg=$msg")
|
||||
d(TAG, "jumpPassengerCheck onFail: code=$code, msg=$msg")
|
||||
}
|
||||
})
|
||||
@@ -113,16 +116,19 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
|
||||
private fun journeyCompleted() {
|
||||
DebugView.printInfoMsg("[服务完成] 准备发送请求")
|
||||
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
|
||||
currentTaskWithOrder?.order?.also {
|
||||
TaxiTaskWithOrderServiceManager.orderCompleted(AbsMogoApplication.getApp().applicationContext,
|
||||
it.orderNo,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
DebugView.printInfoMsg("[服务完成] 请求success")
|
||||
d(TAG, "journeyCompleted onSuccess")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
DebugView.printInfoMsg("[服务完成] 请求fail, code=$code, msg=$msg")
|
||||
d(TAG, "journeyCompleted onFail: code=$code, msg=$msg")
|
||||
}
|
||||
})
|
||||
@@ -167,6 +173,17 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
}
|
||||
|
||||
private fun updatePrepareTaskDelay120SUI(isStart: Boolean){
|
||||
d(TAG, "UpdatePrepareTaskDelay120SUI = $isStart")
|
||||
sendUiState {
|
||||
copy(
|
||||
taskWithOrderUIState = TaskWithOrderUIState.UpdatePrepareTaskDelay120S(
|
||||
isStart
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateDriveToNearestStationTaskUI(driveToNearestStationTask: StartServiceRespBean.Result?) {
|
||||
d(TAG, "updateDriveToNearestStationTaskUI = ${driveToNearestStationTask?.toString()}")
|
||||
sendUiState {
|
||||
@@ -191,12 +208,14 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
|
||||
override fun onTaskWithOrderDataChanged(result: QueryCurrentTaskRespBean.Result?) {
|
||||
d(TAG, "onTaskWithOrderChanged = result = " + GsonUtil.jsonFromObject(result))
|
||||
DebugView.printInfoMsg("[查询TaskWithOrder信息] 更新数据, 刷新UI")
|
||||
updateTaskAndOrderUi(result)
|
||||
}
|
||||
|
||||
override fun onTaskCompleted(isOrderArrivedAtStart: Boolean, siteId: Long) {
|
||||
d(TAG, "onTaskCompleted: isOrderArrivedAtStart=$isOrderArrivedAtStart, siteId=$siteId")
|
||||
if (isOrderArrivedAtStart) {
|
||||
TaxiTaskModel.removePrepareTaskDelay120S()
|
||||
TaxiTaskModel.prepareNextTask(siteId)
|
||||
} else {
|
||||
TaxiTaskModel.startPrepareTaskDelay120S(siteId)
|
||||
@@ -208,7 +227,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
|
||||
override fun onOrderCancel() {
|
||||
VoiceNotice.showNotice("订单已经取消")
|
||||
VoiceNotice.showNotice("已取消行程")
|
||||
// updateTaskAndOrderUi(null)
|
||||
}
|
||||
|
||||
@@ -237,19 +256,28 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}, TaxiUnmannedConst.START_AUTOPILOT_COUNTDOWN_INTERVAL) // 10s后开启自驾, 状态流转
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始倒计时120拉取任务
|
||||
*/
|
||||
override fun onStartPrepareTask120s(isStart: Boolean) {
|
||||
updatePrepareTaskDelay120SUI(isStart)
|
||||
}
|
||||
|
||||
override fun onCarEndServiceSuccess(
|
||||
driveToNearestStationTask: StartServiceRespBean.Result?,
|
||||
currentTaskWithOrder: QueryCurrentTaskRespBean.Result?
|
||||
) {
|
||||
if (currentTaskWithOrder?.endSite != null && currentTaskWithOrder.startSite != null
|
||||
&& currentTaskWithOrder.currentStatus < TaskStatusEnum.CompleteTask.code) {
|
||||
&& currentTaskWithOrder.currentStatus < TaskStatusEnum.CompleteTask.code
|
||||
) {
|
||||
VoiceNotice.showNotice("暂停接单啦!要完成当前订单哦")
|
||||
} else {
|
||||
VoiceNotice.showNotice("暂停接单啦")
|
||||
}
|
||||
// TODO 如果当前有订单就不要刷新
|
||||
if (currentTaskWithOrder?.startSite != null &&
|
||||
currentTaskWithOrder.endSite != null){
|
||||
currentTaskWithOrder.endSite != null
|
||||
) {
|
||||
return
|
||||
}
|
||||
updateDriveToNearestStationTaskUI(driveToNearestStationTask)
|
||||
@@ -273,14 +301,6 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
currentTaskWithOrder: QueryCurrentTaskRespBean.Result?
|
||||
) {
|
||||
VoiceNotice.showNotice("开始接单啦")
|
||||
currentTaskWithOrder?.apply {
|
||||
if (endSite != null) {
|
||||
when {
|
||||
currentStatus == TaskStatusEnum.CompleteTask.code && order != null -> return
|
||||
currentStatus < TaskStatusEnum.CompleteTask.code -> return
|
||||
}
|
||||
}
|
||||
}
|
||||
updateDriveToNearestStationTaskUI(driveToNearestStationTask)
|
||||
}
|
||||
|
||||
|
||||
@@ -46,13 +46,14 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.provider.LoginService
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.distancemamager.IDistanceListener
|
||||
import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.setStationPoint
|
||||
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjLocations
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.taxi.bean.PrepareTaskRespBean
|
||||
import com.mogo.och.taxi.bean.QueryCarOrderByNoRespBean
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
|
||||
@@ -71,6 +72,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.BUSINESSTYPE
|
||||
import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager
|
||||
import com.mogo.och.taxi.ui.debug.DebugView
|
||||
import com.mogo.och.taxi.utils.RxJavaUtils
|
||||
import com.mogo.och.taxi.utils.TaxiAnalyticsManager
|
||||
import com.mogo.och.taxi.utils.TaxiTrajectoryManager
|
||||
@@ -134,6 +136,8 @@ object TaxiTaskModel {
|
||||
|
||||
private val mCurrentTaskRoutePointsGcj: MutableList<MogoLocation> = ArrayList()
|
||||
|
||||
private var mPrepareTaskDelay120SRunnable: Runnable? = null
|
||||
|
||||
fun addTaskWithOrderListener(tag: String, listener: ITaxiTaskWithOrderCallback) {
|
||||
if (mTaxiTaskWithOrderCallbackMap.containsKey(tag)) {
|
||||
return
|
||||
@@ -325,6 +329,7 @@ object TaxiTaskModel {
|
||||
override fun onAutopilotSNRequest() {}
|
||||
override fun onAutopilotArriveAtStation(arrivalNotification: ArrivalNotification?) {
|
||||
i(TAG, "onAutopilotArriveAtStation = ${arrivalNotification.toString()}")
|
||||
DebugView.printInfoMsg("[MAP到站通知] 上报到站,location=${arrivalNotification?.endLocation}")
|
||||
if (arrivalNotification == null || !checkCurrentTaskCondition() ||
|
||||
mCurrentTaskWithOrder?.currentStatus == TaskStatusEnum.CompleteTask.code
|
||||
) {
|
||||
@@ -387,6 +392,7 @@ object TaxiTaskModel {
|
||||
d(
|
||||
TAG, "getWayPointsList.Size = ${globalPathResp.wayPointsList.size}"
|
||||
)
|
||||
DebugView.printInfoMsg("[MAP全局规划回调] 回调,getWayPointsList.Size=${globalPathResp.wayPointsList.size}")
|
||||
if (it.size > 0) {
|
||||
// 本地计算全路径长度(实时更新剩余距离,剩余时间,预计到达时间)
|
||||
if (checkCurrentTaskCondition()) {
|
||||
@@ -416,6 +422,7 @@ object TaxiTaskModel {
|
||||
startFailedCode: String,
|
||||
startFailedMessage: String
|
||||
) {
|
||||
DebugView.printInfoMsg("[启自驾回调] 执行失败,code=$startFailedCode, msg=$startFailedMessage")
|
||||
TaxiAnalyticsManager.getInstance()
|
||||
.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage)
|
||||
if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) {
|
||||
@@ -523,7 +530,8 @@ object TaxiTaskModel {
|
||||
"judgeDriveToNearestStationTaskStation() ${virtualTask.siteName} distance = $distance"
|
||||
)
|
||||
if (distance <= TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE) { // 15米内到站
|
||||
submitArriveSite(virtualTask.siteId, true)
|
||||
DebugView.printInfoMsg("[高德定位围栏] 触发围栏,任务类型:DriveToNearestStationTask,围栏范围:${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}米")
|
||||
submitArriveSite(virtualTask.siteId, true, isArrivedNearestStation = true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -560,7 +568,9 @@ object TaxiTaskModel {
|
||||
* @siteId : 站点id
|
||||
* @isArriveAtEndSite: true 终点, false 起点
|
||||
*/
|
||||
fun submitArriveSite(siteId: Long, isArriveAtEndSite: Boolean) {
|
||||
fun submitArriveSite(siteId: Long, isArriveAtEndSite: Boolean,
|
||||
isArrivedNearestStation : Boolean = false) {
|
||||
DebugView.printInfoMsg("[上报ArriveSite] siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite")
|
||||
i(TAG, message = "submitArriveSite: siteId=$siteId isArriveAtEndSite=$isArriveAtEndSite")
|
||||
TaxiTaskWithOrderServiceManager.arriveSite(
|
||||
mContext,
|
||||
@@ -568,8 +578,13 @@ object TaxiTaskModel {
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (data == null || data.code != 0) return
|
||||
DebugView.printInfoMsg("[上报ArriveSite] success siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite")
|
||||
d(TAG, "submitArriveSite-onSuccess data=" + GsonUtil.jsonFromObject(data))
|
||||
mDriveToNearestStationTask = null
|
||||
if (isArrivedNearestStation){// 播报提醒
|
||||
VoiceNotice.showNotice("已到达出车点")
|
||||
}
|
||||
|
||||
if (isArriveAtEndSite) {
|
||||
updateLocalCalculateStation()
|
||||
//到站后不再调用取消自驾. 原因是取消自驾,D档位会溜车
|
||||
@@ -578,6 +593,7 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
DebugView.printErrorMsg("[上报ArriveSite] failed, code=$code, msg=$msg")
|
||||
d(TAG, "code=$code msg=$msg")
|
||||
}
|
||||
})
|
||||
@@ -633,10 +649,11 @@ object TaxiTaskModel {
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
object : OchCommonServiceCallback<QueryCurrentTaskRespBean> {
|
||||
override fun onSuccess(data: QueryCurrentTaskRespBean?) {
|
||||
//DebugView.printInfoMsg("[查询TaskWithOrder信息] success")
|
||||
if (data?.data == null) {
|
||||
d(
|
||||
TAG,
|
||||
"queryCurrentTaskOnce onSuccess: data.code != 0 || data === null || data.data === null"
|
||||
"queryCurrentTaskOnce onSuccess: data == null || data.data == null"
|
||||
)
|
||||
return
|
||||
}
|
||||
@@ -690,7 +707,9 @@ object TaxiTaskModel {
|
||||
// 主要是解决A-B演练任务同时接到A-B订单状态流转的问题
|
||||
//注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务
|
||||
if (result?.currentStatus == TaskStatusEnum.CompleteTask.code
|
||||
&& !QueryCurrentTaskRespBean.isOrderArriveAtStart(result)) {
|
||||
&& (!QueryCurrentTaskRespBean.isOrderArriveAtStart(result)
|
||||
|| !QueryCurrentTaskRespBean.isOrderArriveAtEnd(result))
|
||||
) {
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onTaskCompleted(
|
||||
@@ -748,6 +767,7 @@ object TaxiTaskModel {
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
d(TAG, "queryCurrentTaskOnce onFail: code=$code, msg=$msg")
|
||||
DebugView.printErrorMsg("[查询TaskWithOrder信息] fail, code=$code, msg=$msg")
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -755,15 +775,18 @@ object TaxiTaskModel {
|
||||
/**
|
||||
* 取消订单 进行中/待服务
|
||||
*/
|
||||
fun cancelOrder(orderNo: String,cancelType: Int){
|
||||
fun cancelOrder(orderNo: String, cancelType: Int) {
|
||||
DebugView.printInfoMsg("[取消订单] 准备发送请求")
|
||||
TaxiTaskWithOrderServiceManager.cancelOrder(AbsMogoApplication.getApp().applicationContext,
|
||||
orderNo, cancelType,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
DebugView.printInfoMsg("[取消订单] 请求success")
|
||||
d(TAG, "handleCancelOrder() = onSuccess")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
DebugView.printErrorMsg("[取消订单] 请求fail, code=$code, msg=$msg")
|
||||
d(TAG, "handleCancelOrder() $code $msg")
|
||||
}
|
||||
})
|
||||
@@ -836,22 +859,26 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
fun startTask(lineId: Long) {
|
||||
DebugView.printInfoMsg("[开始任务] 准备发送请求")
|
||||
TaxiTaskWithOrderServiceManager.startTask(
|
||||
mContext,
|
||||
lineId,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
DebugView.printInfoMsg("[开始任务] 请求success")
|
||||
startAutoPilot() //自驾开启
|
||||
d(TAG, "startTask onSuccess: data=${GsonUtil.jsonFromObject(data)}")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
DebugView.printErrorMsg("[开始任务] 请求fail, code=$code, msg=$msg")
|
||||
d(TAG, "startTask onFail: code=$code, msg=$msg")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun prepareNextTask(siteId: Long) {
|
||||
DebugView.printInfoMsg("[PrepareNextTask] 准备发送请求")
|
||||
TaxiTaskWithOrderServiceManager.prepareTask(
|
||||
mContext,
|
||||
siteId,
|
||||
@@ -862,6 +889,7 @@ object TaxiTaskModel {
|
||||
"prepareNextTask onSuccess:${GsonUtil.jsonFromObject(data)}, " +
|
||||
"isCarServingStatus = ${TaxiCarServingStatusManager.isCarServingStatus()}"
|
||||
)
|
||||
DebugView.printInfoMsg("[PrepareNextTask] 请求success")
|
||||
if (data?.data == null) return
|
||||
//去下载轨迹, 下发给工控机下载
|
||||
// queryTaskTrajectoryByLineIds(
|
||||
@@ -871,6 +899,7 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
DebugView.printErrorMsg("[PrepareNextTask] 请求fail, code=$code ,msg=$msg")
|
||||
d(TAG, "prepareNextTask onFail: code=$code ,msg=$msg")
|
||||
if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()) {
|
||||
startPrepareTaskDelay120S(siteId)
|
||||
@@ -880,15 +909,38 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
fun startPrepareTaskDelay120S(siteId: Long) {
|
||||
UiThreadHandler.postDelayed({
|
||||
prepareNextTask(siteId)
|
||||
}, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S)
|
||||
removePrepareTaskDelay120S()
|
||||
|
||||
if (mPrepareTaskDelay120SRunnable == null){
|
||||
mPrepareTaskDelay120SRunnable = Runnable {
|
||||
prepareNextTask(siteId)
|
||||
}
|
||||
}
|
||||
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onStartPrepareTask120s(true)
|
||||
}
|
||||
DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S/1000}秒后prepareNextTask")
|
||||
UiThreadHandler.postDelayed(mPrepareTaskDelay120SRunnable, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S)
|
||||
}
|
||||
|
||||
fun removePrepareTaskDelay120S() {
|
||||
if (mPrepareTaskDelay120SRunnable != null){
|
||||
DebugView.printInfoMsg("[PrepareNextTask] removeCallbacks prepareNextTask120s")
|
||||
UiThreadHandler.removeCallbacks(mPrepareTaskDelay120SRunnable)
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onStartPrepareTask120s(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询当前任务的轨迹
|
||||
*/
|
||||
fun queryTaskTrajectoryByLineIds(planningLineIds: Array<Long>, currentTaskLineId: Long) {
|
||||
DebugView.printInfoMsg("[查询轨迹信息] 准备发送请求")
|
||||
TaxiTaskWithOrderServiceManager.queryTrajectoryByLindIds(
|
||||
mContext,
|
||||
planningLineIds,
|
||||
@@ -898,6 +950,7 @@ object TaxiTaskModel {
|
||||
TAG,
|
||||
"queryTaskTrajectoryByLineIds onSuccess: ${GsonUtil.jsonFromObject(data?.data)}"
|
||||
)
|
||||
DebugView.printInfoMsg("[查询轨迹信息] 请求success")
|
||||
data?.data?.also {
|
||||
mTaskTrajectoryList.addAll(it)
|
||||
mCurrentTaskTrajectory = it.first { currentTaskLineId == it.lineId }
|
||||
@@ -909,6 +962,7 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
DebugView.printErrorMsg("[查询轨迹信息] 请求fail, code=$code, msg=$msg")
|
||||
d(TAG, "queryTaskTrajectoryByLineIds onFail: code=$code, msg=$msg")
|
||||
}
|
||||
})
|
||||
@@ -920,10 +974,12 @@ object TaxiTaskModel {
|
||||
return
|
||||
}
|
||||
if (TaxiCarServingStatusManager.isCarServingStatus()) {//接单状态下,去结束
|
||||
DebugView.printInfoMsg("[暂停接单] 准备发送请求")
|
||||
TaxiTaskWithOrderServiceManager.endService(
|
||||
mContext,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
DebugView.printInfoMsg("[暂停接单] 请求success")
|
||||
loginService?.queryLoginStatusByNet()
|
||||
//需要将虚拟任务停掉, 虚拟任务会再开始接单后获取新的
|
||||
mDriveToNearestStationTask = null
|
||||
@@ -935,22 +991,34 @@ object TaxiTaskModel {
|
||||
|
||||
override fun onError() {
|
||||
mTaxiCarServiceCallback?.onCarEndServiceError()
|
||||
DebugView.printErrorMsg("[暂停接单] 请求error")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
DebugView.printErrorMsg("[暂停接单] 请求fail, code=$code, msg=$msg")
|
||||
mTaxiCarServiceCallback?.onCarEndServiceFailed(code, msg)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
//暂停接单状态下,去接单
|
||||
DebugView.printInfoMsg("[开始接单] 准备发送请求")
|
||||
TaxiTaskWithOrderServiceManager.startService(mContext,
|
||||
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().latitude,
|
||||
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().longitude,
|
||||
object : OchCommonServiceCallback<StartServiceRespBean> {
|
||||
override fun onSuccess(data: StartServiceRespBean?) {
|
||||
if (data == null) return
|
||||
DebugView.printInfoMsg("[开始接单] 请求success")
|
||||
d(TAG, "data.data=" + GsonUtil.jsonFromObject(data.data))
|
||||
loginService?.queryLoginStatusByNet()
|
||||
mCurrentTaskWithOrder?.apply {
|
||||
if (endSite != null) {
|
||||
when {
|
||||
currentStatus == TaskStatusEnum.CompleteTask.code && order != null -> return
|
||||
currentStatus < TaskStatusEnum.CompleteTask.code -> return
|
||||
}
|
||||
}
|
||||
}
|
||||
mDriveToNearestStationTask = data.data
|
||||
mTaxiCarServiceCallback?.onCarStartServiceSuccess(
|
||||
mDriveToNearestStationTask,
|
||||
@@ -959,10 +1027,12 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
DebugView.printErrorMsg("[开始接单] 请求fail, code=$code, msg=$msg")
|
||||
mTaxiCarServiceCallback?.onCarStartServiceFailed(code, msg)
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
DebugView.printErrorMsg("[开始接单] 请求error")
|
||||
mTaxiCarServiceCallback?.onCarStartServiceError()
|
||||
}
|
||||
})
|
||||
@@ -981,12 +1051,14 @@ object TaxiTaskModel {
|
||||
fun startAutoPilot() {
|
||||
if (!checkCurrentTaskCondition()) {
|
||||
e(TAG, "no order or order is empty.")
|
||||
DebugView.printErrorMsg("[启自驾] 当前订单不存在或异常!")
|
||||
ToastUtils.showShort("当前订单不存在或异常!")
|
||||
return
|
||||
}
|
||||
|
||||
if (mCurrentTaskTrajectory == null) {
|
||||
e(TAG, "no order or order is empty.")
|
||||
DebugView.printErrorMsg("[启自驾] 轨迹信息不存在!")
|
||||
ToastUtils.showShort("轨迹信息不存在!")
|
||||
}
|
||||
|
||||
@@ -997,6 +1069,7 @@ object TaxiTaskModel {
|
||||
&& TextUtils.isEmpty(mCurrentTaskTrajectory!!.csvFileUrlDPQP)
|
||||
) {
|
||||
ToastUtils.showLong("无发布轨迹, 请发布后重试")
|
||||
DebugView.printErrorMsg("[启自驾] 无发布轨迹, 请发布后重试")
|
||||
e(
|
||||
TAG, "isPassStartAutopilotCommand = " +
|
||||
FunctionBuildConfig.isPassStartAutopilotCommand
|
||||
@@ -1014,6 +1087,7 @@ object TaxiTaskModel {
|
||||
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason +
|
||||
", 请稍候重试"
|
||||
)
|
||||
DebugView.printErrorMsg("[启自驾] ${OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason}")
|
||||
TaxiAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent(
|
||||
mCurrentTaskWithOrder!!.startSite!!.siteName,
|
||||
mCurrentTaskWithOrder!!.endSite!!.siteName,
|
||||
@@ -1032,6 +1106,7 @@ object TaxiTaskModel {
|
||||
return
|
||||
}
|
||||
CallerAutoPilotControlManager.startAutoPilot(parameters)
|
||||
DebugView.printInfoMsg("[启自驾] 调用成功")
|
||||
d(
|
||||
TAG, "start autopilot with parameter: %s",
|
||||
GsonUtil.jsonFromObject(parameters)
|
||||
@@ -1099,6 +1174,7 @@ object TaxiTaskModel {
|
||||
fun cancelAutopilot() {
|
||||
try {
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
DebugView.printInfoMsg("[取消自驾] 调用成功")
|
||||
d(TAG, "结束自动驾驶")
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
@@ -1141,11 +1217,25 @@ object TaxiTaskModel {
|
||||
//3、刚过站且过站距离在15m内, 提交到站
|
||||
if (stationAngle > 90) {
|
||||
i(TAG, "judgeEndStation() = 刚过站且在15m内")
|
||||
DebugView.printInfoMsg(
|
||||
"[高德定位围栏] 触发围栏,任务类型:${
|
||||
TaskTypeEnum.valueOf(
|
||||
mCurrentTaskWithOrder?.taskType ?: 0
|
||||
)?.name
|
||||
},围栏范围:${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}米 刚过站且在15m内"
|
||||
)
|
||||
submitArriveSite(endSite.siteId, true)
|
||||
}else{
|
||||
} else {
|
||||
// 4、 没有过站距离小于15m 速度小于0.5(根据M1来的模数 可能要调)
|
||||
if (currentLocation.gnssSpeed < 0.5) {
|
||||
i(TAG, "judgeEndStation() = 没有过站、速度基本为零且在15m内")
|
||||
DebugView.printInfoMsg(
|
||||
"[高德定位围栏] 触发围栏,任务类型:${
|
||||
TaskTypeEnum.valueOf(
|
||||
mCurrentTaskWithOrder?.taskType ?: 0
|
||||
)?.name
|
||||
},围栏范围:${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}米 没有过站、速度基本为零且在15m内"
|
||||
)
|
||||
submitArriveSite(endSite.siteId, true)
|
||||
}
|
||||
}
|
||||
@@ -1209,6 +1299,7 @@ object TaxiTaskModel {
|
||||
)
|
||||
mCurrentTaskWithOrder = null
|
||||
mDriveToNearestStationTask = null
|
||||
DebugView.printInfoMsg("[登出] 退出登陆")
|
||||
}
|
||||
|
||||
//导航去订单终点目的地
|
||||
@@ -1282,11 +1373,13 @@ object TaxiTaskModel {
|
||||
return
|
||||
}
|
||||
d(TAG, "AutopilotControlParameters is update.")
|
||||
DebugView.printInfoMsg("[启自驾] updateAutopilotControlParameters调用成功")
|
||||
updateAutopilotControlParameters(parameters)
|
||||
}
|
||||
|
||||
private fun clearAutopilotControlParameters() {
|
||||
d(TAG, "AutopilotControlParameters is clear.")
|
||||
DebugView.printInfoMsg("[启自驾] clearAutopilotControlParameters调用成功")
|
||||
updateAutopilotControlParameters(null)
|
||||
}
|
||||
|
||||
@@ -1303,7 +1396,6 @@ object TaxiTaskModel {
|
||||
ToastUtils.showShort("无任务!")
|
||||
return
|
||||
}
|
||||
// arriveSite(mCurrentTaskAndOrder?.endSite!!.siteId, true)
|
||||
autopilotArriveAtStation()
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean;
|
||||
import com.mogo.och.taxi.bean.TrajectoryListRespBean;
|
||||
import com.mogo.och.taxi.constant.TaskStatusEnum;
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst;
|
||||
import com.mogo.och.taxi.ui.debug.DebugView;
|
||||
import com.mogo.och.taxi.ui.task.TaxiTaskModel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -163,7 +164,6 @@ public class TaxiTrajectoryManager {
|
||||
final List<TrajectoryListRespBean.Result> orderContrails = TaxiTaskModel.INSTANCE.getCurrentOrderTrajectoryList();
|
||||
|
||||
if (orderDetail != null && orderContrails != null && orderContrails.size() != 0 ){
|
||||
|
||||
List<Long> lineIds = new ArrayList<>();
|
||||
lineIds.addAll(Arrays.asList(orderDetail.getPlanningLines())); // 接驾
|
||||
lineIds.add(orderDetail.getOrderLine());//送驾
|
||||
@@ -249,6 +249,7 @@ public class TaxiTrajectoryManager {
|
||||
if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) {
|
||||
return;
|
||||
}
|
||||
DebugView.Companion.printInfoMsg("[下发轨迹] startTrajectoryReqLoop");
|
||||
CallerLogger.d(M_TAXI + TAG, "startTrajReqLoop()");
|
||||
setupAutoPilotLine();
|
||||
mSendReqDisposable = Observable.interval(TaxiUnmannedConst.LOOP_DELAY,
|
||||
@@ -268,6 +269,7 @@ public class TaxiTrajectoryManager {
|
||||
}
|
||||
|
||||
private void stopTrajReqLoop() {
|
||||
DebugView.Companion.printInfoMsg("[下发轨迹] stopTrajectoryReqLoop");
|
||||
if (mSendReqDisposable != null) {
|
||||
CallerLogger.d(M_TAXI + TAG, "stopTrajReqLoop()");
|
||||
mSendReqDisposable.dispose();
|
||||
@@ -278,13 +280,15 @@ public class TaxiTrajectoryManager {
|
||||
|
||||
private void sendTrajectoryReq() {
|
||||
if (mAutoPilotLine != null) {
|
||||
DebugView.Companion.printInfoMsg("[下发轨迹] sendTrajectoryDownloadReq, lindId=" + mAutoPilotLine.getLineId() + ", lineName=" + mAutoPilotLine.getLineName());
|
||||
CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine,COMMON_LOADING);
|
||||
}else {
|
||||
CallerLogger.e(M_TAXI + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!");
|
||||
}
|
||||
|
||||
if (mPreAutoPilotLine != null){
|
||||
CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mPreAutoPilotLine,PRE_LOADING);
|
||||
DebugView.Companion.printInfoMsg("[下发轨迹] sendTrajectoryDownloadReq, lindId=" + mPreAutoPilotLine.getLineId() + ", lineName=" + mPreAutoPilotLine.getLineName());
|
||||
CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mPreAutoPilotLine, PRE_LOADING);
|
||||
}else {
|
||||
CallerLogger.e(M_TAXI + TAG, "sendTrajectoryReq(): mPreAutoPilotLine is null!!!");
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid
|
||||
android:color="#6E172B80"/>
|
||||
<corners
|
||||
android:radius="@dimen/dp_18"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="8dp" />
|
||||
<stroke
|
||||
android:width="@dimen/dp_2"
|
||||
android:color="@color/background_verbose" />
|
||||
</shape>
|
||||
@@ -59,6 +59,24 @@
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:text="183XXXX5400 | -人"/>
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/pathwayPoint"
|
||||
android:layout_width="@dimen/dp_478"
|
||||
android:layout_height="@dimen/dp_68"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
app:layout_goneMarginTop="@dimen/dp_40"
|
||||
android:maxLines="1"
|
||||
android:text="途径: "
|
||||
android:textSize="@dimen/dp_32"
|
||||
android:textColor="@color/station_tag_color"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="@dimen/dp_36"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/task_pathway_point_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/orderPhoneAndNum"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/taskStatus"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/startStationTag"
|
||||
@@ -66,12 +84,12 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="上车:"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_goneMarginTop="@dimen/dp_104"
|
||||
android:layout_marginTop="@dimen/dp_52"
|
||||
app:layout_goneMarginTop="@dimen/dp_68"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:layout_marginStart="@dimen/dp_78"
|
||||
android:textColor="@color/station_tag_color"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/orderPhoneAndNum"/>
|
||||
app:layout_constraintTop_toBottomOf="@+id/pathwayPoint"/>
|
||||
|
||||
<com.mogo.och.common.module.wigets.MarqueeTextView
|
||||
android:id="@+id/startStationName"
|
||||
|
||||
@@ -5,157 +5,193 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentDataTimestamps"
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/btnContainer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_to_virtual"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock到达标定站点"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_start_service_confirm"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock开启服务"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_on_the_way_to_end"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock开启自动驾驶"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_to_end"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock到达站点"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_route"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock模拟轨迹"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_toLeftOf="@id/btnContainer"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:text="车辆当前任务&订单信息"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentDataTimestamps"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentCarStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentTaskType"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentLineId"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/taskStartSite"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/taskEndSite"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentOrder"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderNo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderStartSiteInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderEndSiteInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderPreLoadLines"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentOrderTrajectoryInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentOrderStopInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentCarStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentTaskType"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentLineId"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/taskStartSite"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/taskEndSite"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentOrder"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderNo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderStartSiteInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderEndSiteInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/orderPreLoadLines"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentOrderTrajectoryInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/currentOrderStopInfo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:orientation="horizontal">
|
||||
android:text="无人化运营流程关键节点日志(司机端)"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_to_virtual"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock到达标定站点"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_start_service_confirm"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock开启服务"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_on_the_way_to_end"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock开启自动驾驶"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
<TextView
|
||||
android:id="@+id/debugLogHistoryTextView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_to_end"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock到达站点"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/test_bar_route"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Mock模拟轨迹"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
android:background="@drawable/taxi_debug_view_log_history_bg"
|
||||
android:fadeScrollbars="false"
|
||||
android:maxLines="15"
|
||||
android:minLines="15"
|
||||
android:scrollbars="vertical"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_24" />
|
||||
</LinearLayout>
|
||||
@@ -25,4 +25,16 @@
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/no_order_data_iv"
|
||||
android:text="暂无服务订单"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/prepareTaskCountdownTv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#91A1EA"
|
||||
android:textSize="@dimen/dp_30"
|
||||
android:layout_marginTop="50dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toBottomOf="@+id/noOrderDataTv" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
<com.mogo.och.taxi.ui.debug.DebugView
|
||||
android:id="@+id/orderDebugView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="@dimen/taxi_debug_view_width"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent" />
|
||||
|
||||
@@ -119,4 +119,6 @@
|
||||
<dimen name="taxi_traffic_light_time_size">60dp</dimen>
|
||||
|
||||
<dimen name="taxi_passenger_txt_size">34dp</dimen>
|
||||
|
||||
<dimen name="taxi_debug_view_width">1000dp</dimen>
|
||||
</resources>
|
||||
@@ -43,5 +43,11 @@ class TaxiPassengerConst {
|
||||
const val TaskType_VIRTUAL = 1 // 虚拟任务
|
||||
const val TaskType_DRIVE_TO_START = 2 // 接驾任务
|
||||
const val TaskType_DRIVE_TO_END = 3 //送驾任务
|
||||
|
||||
//任务状态
|
||||
const val TaskStatus_None = 0 //空闲
|
||||
const val TaskStatus_GetTask = 1 //获取任务
|
||||
const val TaskStatus_StartTask = 2 //开始任务
|
||||
const val TaskStatus_CompleteTask = 3 //到达目的地
|
||||
}
|
||||
}
|
||||
@@ -7,12 +7,11 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst
|
||||
@@ -46,12 +45,13 @@ object AutopilotManager : IMoGoAutopilotStatusListener {
|
||||
if (TaxiPassengerModel.currentOCHOrder!!.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.code) {
|
||||
startAutoPilotServiceByPassenger()
|
||||
}
|
||||
if (CallerAutoPilotStatusListenerManager.getState()
|
||||
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
) {
|
||||
ToastUtils.showShort("自驾中、请勿重复启动")
|
||||
return
|
||||
}
|
||||
// 0831 目前无人化taxi中间不会取消自驾,一直处于自动驾驶状态中,所以这个判断先去掉
|
||||
// if (CallerAutoPilotStatusListenerManager.getState()
|
||||
// == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
// ) {
|
||||
// ToastUtils.showShort("自驾中、请勿重复启动")
|
||||
// return
|
||||
// }
|
||||
if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) {
|
||||
ToastUtils.showLong(
|
||||
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason +
|
||||
|
||||
@@ -21,7 +21,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.distancemamager.IDistanceListener
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
|
||||
@@ -34,7 +34,6 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst.Companion.TaskType_DRIVE_TO_END
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst.Companion.TaskType_NONE
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst.Companion.TaskType_VIRTUAL
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
|
||||
@@ -171,9 +170,15 @@ object TaxiPassengerModel {
|
||||
)
|
||||
// 如果上一个是 接驾或送驾任务 下一个是演练任务,需要reset页面状态
|
||||
if (currentOCHOrder != null) {
|
||||
currentOCHOrder?.orderStatus = TaxiPassengerOrderStatusEnum.None.code
|
||||
orderStatusChange()
|
||||
currentOCHOrder = null
|
||||
currentLineId = null
|
||||
currentTrajectoryInfo = null
|
||||
orderStatusChange()
|
||||
} else {
|
||||
// 当前一直是演练,到终点后清除轨迹信息
|
||||
if (data.data.currentStatus == TaxiPassengerConst.TaskStatus_CompleteTask) {
|
||||
orderStatusChange()
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -278,6 +283,7 @@ object TaxiPassengerModel {
|
||||
//监听网络变化,避免启动机器时无网导致无法更新订单信息
|
||||
private val distanceListener: IDistanceListener = object : IDistanceListener {
|
||||
var allDistance = 0f
|
||||
|
||||
override fun stationDistanceCallback(stationDistance: Float) {
|
||||
allDistance = stationDistance
|
||||
}
|
||||
|
||||
@@ -7,12 +7,10 @@ import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager
|
||||
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.UiThreadHandler
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum
|
||||
import com.mogo.och.taxi.passenger.model.AutopilotManager
|
||||
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel
|
||||
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment
|
||||
|
||||
@@ -50,9 +48,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
|
||||
}
|
||||
|
||||
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) {
|
||||
order?.let {
|
||||
updateOrderView(order)
|
||||
}
|
||||
updateOrderView(order)
|
||||
}
|
||||
|
||||
override fun onCurrentOrderDistToEndChanged(
|
||||
@@ -63,73 +59,72 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
|
||||
}
|
||||
|
||||
private fun updateOrderView(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) {
|
||||
order?.let {
|
||||
setItineraryVisibility()
|
||||
when (TaxiPassengerModel.curOrderStatus) {
|
||||
TaxiPassengerOrderStatusEnum.OnTheWayToStart -> {
|
||||
// 10 接驾中
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.ArriveAtStart -> {
|
||||
// 20 司机到达上车点
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(true)
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.UserArriveAtStart -> {
|
||||
// 30 乘客到达上车点
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideStartAutopilotView(isShow = true)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> {
|
||||
// 服务中(去往目的地)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
overMapViewShow()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.ArriveAtEnd -> {
|
||||
// 50 到达终点 乘客可以评价
|
||||
mView?.showOrHideArrivedEndLayout(true)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
TaxiPassengerOrderStatusEnum.JourneyCompleted -> {
|
||||
// 60 行程完成
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.Cancel -> {
|
||||
// 70 取消订单
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.None -> {
|
||||
// 00 默认状态,在不同任务之间切换时使用
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
else -> {}
|
||||
setItineraryVisibility()
|
||||
when (TaxiPassengerModel.curOrderStatus) {
|
||||
TaxiPassengerOrderStatusEnum.OnTheWayToStart -> {
|
||||
// 10 接驾中
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.ArriveAtStart -> {
|
||||
// 20 司机到达上车点
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(true)
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.UserArriveAtStart -> {
|
||||
// 30 乘客到达上车点
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideStartAutopilotView(isShow = true)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> {
|
||||
// 服务中(去往目的地)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
overMapViewShow()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.ArriveAtEnd -> {
|
||||
// 50 到达终点 乘客可以评价
|
||||
mView?.showOrHideArrivedEndLayout(true)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.JourneyCompleted -> {
|
||||
// 60 行程完成
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.Cancel -> {
|
||||
// 70 取消订单
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
|
||||
TaxiPassengerOrderStatusEnum.None -> {
|
||||
// 00 默认状态,在不同任务之间切换时使用
|
||||
mView?.showOrHideStartAutopilotView(isShow = false)
|
||||
mView?.showOrHidePressengerCheckPager(isShow = false)
|
||||
mView?.showOrHideArrivedEndLayout(isShow = false)
|
||||
overMapViewClear()
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,12 +34,9 @@ class ChekViewModel : ViewModel(), IOCHTaxiPassengerOrderStatusCallback {
|
||||
|
||||
override fun onCurrentOrderStatusChanged(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) {
|
||||
super.onCurrentOrderStatusChanged(order)
|
||||
order?.let {
|
||||
if(it.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.code){
|
||||
this.viewCallback?.dismissWindow()
|
||||
}
|
||||
if(order == null || order.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.code) {
|
||||
this.viewCallback?.dismissWindow()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
|
||||
@@ -215,7 +215,7 @@ ext {
|
||||
btrace : "com.bytedance.btrace:rhea-core:2.0.0",
|
||||
|
||||
mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.6",
|
||||
log_runtime : "com.mogo.eagle.core.log.record:runtime:1.0.12",
|
||||
log_runtime : "com.mogo.eagle.core.log.record:runtime:1.0.15",
|
||||
|
||||
// 安全证书
|
||||
passport_secret : "com.zhidaoauto:sdk-java:1.0.5-SNAPSHOT",
|
||||
|
||||
@@ -7,6 +7,7 @@ import bag_manager.BagManagerOuterClass
|
||||
import chassis.SpecialVehicleTaskCmdOuterClass
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
|
||||
import com.mogo.eagle.core.data.autopilot.toAutoPilotLine
|
||||
import com.mogo.eagle.core.data.autopilot.toRouteInfo
|
||||
@@ -96,14 +97,15 @@ class MoGoAutopilotControlProvider :
|
||||
override fun init(context: Context) {
|
||||
CallerLogger.i("$M_D_C$TAG", "初始化工控机连接……")
|
||||
mContext = context
|
||||
// 初始化ADAS 域控制器
|
||||
CupidLogUtils.setEnableLog(false)
|
||||
msgHandler = TeleMsgHandler()
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {// 司机
|
||||
// 注册地图采集功能
|
||||
CallerMapDataCollectorManager.registerOnMapCollectTaskListener(this)
|
||||
runCatching {
|
||||
// 初始化ADAS 域控制器
|
||||
CupidLogUtils.setEnableLog(false)
|
||||
msgHandler = TeleMsgHandler()
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {// 司机
|
||||
// 注册地图采集功能
|
||||
CallerMapDataCollectorManager.registerOnMapCollectTaskListener(this)
|
||||
|
||||
// 配置默认关闭的连接topic
|
||||
// 配置默认关闭的连接topic
|
||||
// val messageTypes: MutableSet<MessageType> = HashSet()
|
||||
// messageTypes.add(MessageType.TYPE_RECEIVE_POINT_CLOUD)
|
||||
// val subscribeInterfaceOptions = SubscribeInterfaceOptions.newBuilder()
|
||||
@@ -111,125 +113,131 @@ class MoGoAutopilotControlProvider :
|
||||
// .setType(Constants.SUBSCRIBE_TYPE.UNSUBSCRIBE)
|
||||
// .setMessageTypes(messageTypes).build()
|
||||
|
||||
// "192.168.1.102"
|
||||
val options = AdasOptions.Builder()
|
||||
.setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION)
|
||||
.setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext))
|
||||
.setClient(false)
|
||||
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
|
||||
// "192.168.1.102"
|
||||
val options = AdasOptions.Builder()
|
||||
.setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION)
|
||||
.setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext))
|
||||
.setClient(false)
|
||||
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
|
||||
// .setSubscribeInterfaceOptions(subscribeInterfaceOptions)//
|
||||
.build()
|
||||
.build()
|
||||
|
||||
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
//////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听/////////////////////////////////////////////
|
||||
// 监听ADAS-SDK获取到的工控机数据
|
||||
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
|
||||
NSDNettyManager.getInstance().startNSDNettyServerWithSN(context, object :
|
||||
NettyServerListener<MogoProtocolMsg> {
|
||||
override fun onMessageResponseServer(msg: MogoProtocolMsg?, channel: Channel?) {
|
||||
msgHandler.handleMsgFromClient(msg, channel)
|
||||
}
|
||||
|
||||
override fun onStartServer() {
|
||||
ToastUtils.showShort("司机端服务启动成功!")
|
||||
if (timer == null) {
|
||||
timer = Timer()
|
||||
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
//////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听/////////////////////////////////////////////
|
||||
// 监听ADAS-SDK获取到的工控机数据
|
||||
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
|
||||
NSDNettyManager.getInstance().startNSDNettyServerWithSN(context, object :
|
||||
NettyServerListener<MogoProtocolMsg> {
|
||||
override fun onMessageResponseServer(msg: MogoProtocolMsg?, channel: Channel?) {
|
||||
msgHandler.handleMsgFromClient(msg, channel)
|
||||
}
|
||||
// 10s同步一次数据到乘客屏
|
||||
timer!!.schedule(object : TimerTask() {
|
||||
override fun run() {
|
||||
// 同步是否开启美化模式
|
||||
setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
setIgnoreConditionDraw(FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData)
|
||||
msgHandler.synMsgToAllClients()
|
||||
|
||||
override fun onStartServer() {
|
||||
ToastUtils.showShort("司机端服务启动成功!")
|
||||
if (timer == null) {
|
||||
timer = Timer()
|
||||
}
|
||||
}, 1000, 10000)
|
||||
invokeNettyConnResult("司机端服务启动成功!")
|
||||
CallerTelematicStatusListenerManager.invokeServerStatusChanged(true)
|
||||
}
|
||||
|
||||
override fun onStopServer() {
|
||||
ToastUtils.showLong("司机端服务停止!")
|
||||
timer?.cancel()
|
||||
timer = null
|
||||
invokeNettyConnResult("司机端服务停止!")
|
||||
CallerTelematicStatusListenerManager.invokeServerStatusChanged(false)
|
||||
}
|
||||
|
||||
override fun onChannelConnect(channel: Channel?) {
|
||||
msgHandler.handleClientConn2Server(channel)
|
||||
}
|
||||
|
||||
override fun onChannelDisConnect(channel: Channel?) {
|
||||
CallerLogger.d("$M_D_C$TAG", "onChannelDisConnect")
|
||||
}
|
||||
|
||||
override fun onReceiveClientSign(channel: Channel?, sn: String?) {
|
||||
sn?.let {
|
||||
invokeNettyConnResult("连接成功的乘客屏sn为:$it")
|
||||
// 10s同步一次数据到乘客屏
|
||||
timer!!.schedule(object : TimerTask() {
|
||||
override fun run() {
|
||||
// 同步是否开启美化模式
|
||||
setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
setIgnoreConditionDraw(FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData)
|
||||
msgHandler.synMsgToAllClients()
|
||||
}
|
||||
}, 1000, 10000)
|
||||
invokeNettyConnResult("司机端服务启动成功!")
|
||||
CallerTelematicStatusListenerManager.invokeServerStatusChanged(true)
|
||||
}
|
||||
}
|
||||
}, MoGoAiCloudClientConfig.getInstance().sn)
|
||||
} else {
|
||||
NSDNettyManager.getInstance()
|
||||
.searchAndConnectServer(context, MoGoAiCloudClientConfig.getInstance().sn,
|
||||
AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode),
|
||||
object : NettyClientListener<MogoProtocolMsg> {
|
||||
override fun onMessageResponseClient(
|
||||
msg: MogoProtocolMsg?,
|
||||
sign: String?,
|
||||
channel: Channel
|
||||
) {
|
||||
// 乘客端收到adas数据直接解析,后续分发解析后的数据流程同司机端
|
||||
msgHandler.handleMsgFromServer(msg, channel)
|
||||
}
|
||||
|
||||
override fun onClientStatusConnectChanged(
|
||||
statusCode: Int,
|
||||
sign: String?,
|
||||
channel: Channel
|
||||
) {
|
||||
msgHandler.handleClientConnStatus(statusCode, sign, channel)
|
||||
}
|
||||
})
|
||||
}
|
||||
msgHandler.setListener(object : EventListener {
|
||||
override fun connectDevice(isSupportMulti: Boolean) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
if (!isInit) {
|
||||
isInit = true
|
||||
// 转发工控机数据给乘客屏
|
||||
listenDeviceData()
|
||||
override fun onStopServer() {
|
||||
ToastUtils.showLong("司机端服务停止!")
|
||||
timer?.cancel()
|
||||
timer = null
|
||||
invokeNettyConnResult("司机端服务停止!")
|
||||
CallerTelematicStatusListenerManager.invokeServerStatusChanged(false)
|
||||
}
|
||||
} else {
|
||||
if (!isInit) {
|
||||
isInit = true
|
||||
UiThreadHandler.post {
|
||||
if (isSupportMulti) {
|
||||
// 直连工控机
|
||||
directConnect()
|
||||
} else {
|
||||
val options = AdasOptions
|
||||
.Builder()
|
||||
.setClient(true)
|
||||
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
|
||||
.build()
|
||||
AdasManager.getInstance()
|
||||
.create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
// 监听ADAS-SDK获取到的工控机数据
|
||||
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
|
||||
// 接收司机屏发过来的感知、定位等数据
|
||||
listenDeviceData()
|
||||
|
||||
override fun onChannelConnect(channel: Channel?) {
|
||||
msgHandler.handleClientConn2Server(channel)
|
||||
}
|
||||
|
||||
override fun onChannelDisConnect(channel: Channel?) {
|
||||
CallerLogger.d("$M_D_C$TAG", "onChannelDisConnect")
|
||||
}
|
||||
|
||||
override fun onReceiveClientSign(channel: Channel?, sn: String?) {
|
||||
sn?.let {
|
||||
invokeNettyConnResult("连接成功的乘客屏sn为:$it")
|
||||
}
|
||||
}
|
||||
}, MoGoAiCloudClientConfig.getInstance().sn)
|
||||
} else {
|
||||
NSDNettyManager.getInstance()
|
||||
.searchAndConnectServer(context, MoGoAiCloudClientConfig.getInstance().sn,
|
||||
AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode),
|
||||
object : NettyClientListener<MogoProtocolMsg> {
|
||||
override fun onMessageResponseClient(
|
||||
msg: MogoProtocolMsg?,
|
||||
sign: String?,
|
||||
channel: Channel
|
||||
) {
|
||||
// 乘客端收到adas数据直接解析,后续分发解析后的数据流程同司机端
|
||||
msgHandler.handleMsgFromServer(msg, channel)
|
||||
}
|
||||
|
||||
override fun onClientStatusConnectChanged(
|
||||
statusCode: Int,
|
||||
sign: String?,
|
||||
channel: Channel
|
||||
) {
|
||||
msgHandler.handleClientConnStatus(statusCode, sign, channel)
|
||||
}
|
||||
})
|
||||
}
|
||||
msgHandler.setListener(object : EventListener {
|
||||
override fun connectDevice(isSupportMulti: Boolean) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
if (!isInit) {
|
||||
isInit = true
|
||||
// 转发工控机数据给乘客屏
|
||||
listenDeviceData()
|
||||
}
|
||||
} else {
|
||||
if (!isInit) {
|
||||
isInit = true
|
||||
UiThreadHandler.post {
|
||||
if (isSupportMulti) {
|
||||
// 直连工控机
|
||||
directConnect()
|
||||
} else {
|
||||
val options = AdasOptions
|
||||
.Builder()
|
||||
.setClient(true)
|
||||
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
|
||||
.build()
|
||||
AdasManager.getInstance()
|
||||
.create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
// 监听ADAS-SDK获取到的工控机数据
|
||||
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
|
||||
// 接收司机屏发过来的感知、定位等数据
|
||||
listenDeviceData()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
CallerLogger.i("$M_D_C$TAG", "initServer……")
|
||||
// 同步数据给工控机的服务
|
||||
AsyncDataToAutopilotServer.INSTANCE.initServer()
|
||||
}.onFailure { throwable ->
|
||||
if (DebugConfig.isDebug()) {
|
||||
ToastUtils.showLong("AutoPilot出现异常,请立即处理!")
|
||||
}
|
||||
})
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
CallerLogger.i("$M_D_C$TAG", "initServer……")
|
||||
// 同步数据给工控机的服务
|
||||
AsyncDataToAutopilotServer.INSTANCE.initServer()
|
||||
throwable.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
private fun directConnect() {
|
||||
|
||||
@@ -43,10 +43,6 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
|
||||
override fun onConnectionIPCStatus(ipcConnectionStatus: Int, reason: String?) {
|
||||
CallerAutopilotActionsListenerManager.setConnected(ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED)
|
||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotIPCStatusChanged(
|
||||
ipcConnectionStatus,
|
||||
reason
|
||||
)
|
||||
AppConfigInfo.connectStatusDescribe = reason
|
||||
when (ipcConnectionStatus) {
|
||||
Constants.IPC_CONNECTION_STATUS.CONNECTED -> {
|
||||
@@ -103,6 +99,7 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus = ipcConnectionStatus
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusDescribe = reason
|
||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
|
||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotIPCStatusChanged(ipcConnectionStatus, reason)
|
||||
}
|
||||
|
||||
override fun onCompatibility(versionCompatibility: VersionCompatibility?) {
|
||||
|
||||
@@ -19,7 +19,6 @@ import kotlinx.coroutines.flow.*
|
||||
import mogo.telematics.pad.MessagePad.Header
|
||||
import mogo.telematics.pad.MessagePad.SetParamReq
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
import kotlin.concurrent.*
|
||||
|
||||
internal class MoGoLookAroundProviderImpl: IMoGoLookAroundProvider, IMoGoBackCameraVideoListener, IMoGoRoboBusJinlvM1StitchedVideoListener, IMoGoGetParamResponseListener {
|
||||
|
||||
@@ -69,7 +68,9 @@ internal class MoGoLookAroundProviderImpl: IMoGoLookAroundProvider, IMoGoBackCam
|
||||
private fun sendReqForParamPeriod() {
|
||||
scope.launch {
|
||||
while (targetX.get() == 0 || targetY.get() == 0) {
|
||||
CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM)
|
||||
if(CallerAutoPilotStatusListenerManager.isConnect()){
|
||||
CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM)
|
||||
}
|
||||
delay(2000)
|
||||
}
|
||||
}.also {
|
||||
|
||||
@@ -40,7 +40,7 @@ internal class CanImpl(ctx: Context) :
|
||||
private val state: AtomicInteger by lazy { AtomicInteger(Int.MIN_VALUE) }
|
||||
|
||||
override fun onCreate() {
|
||||
send(CanStatus(CallerAutoPilotControlManager.isConnected()))
|
||||
send(CanStatus(CallerAutoPilotStatusListenerManager.isConnect()))
|
||||
|
||||
CallerChassisAccStateListenerManager.addListener(TAG, this)
|
||||
CallerChassisBrakeStateListenerManager.addListener(TAG, this)
|
||||
@@ -58,7 +58,7 @@ internal class CanImpl(ctx: Context) :
|
||||
|
||||
private fun isCanEnabled(): Boolean {
|
||||
val code = CallerAutoPilotStatusListenerManager.getAutoPilotReportMessageCode()
|
||||
return CallerAutoPilotControlManager.isConnected() && code != "EHW_CAN" && (state.get() == Int.MIN_VALUE || state.get() == 0)
|
||||
return CallerAutoPilotStatusListenerManager.isConnect() && code != "EHW_CAN" && (state.get() == Int.MIN_VALUE || state.get() == 0)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ internal class IpcImpl(ctx: Context): IFlow<IpcStatus>(ctx), IMoGoAutopilotStatu
|
||||
}
|
||||
|
||||
private fun checkAndSend() {
|
||||
send(IpcStatus(CallerAutoPilotControlManager.isConnected()))
|
||||
send(IpcStatus(CallerAutoPilotStatusListenerManager.isConnect()))
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -43,7 +43,7 @@ internal class RTKImpl(ctx: Context): IFlow<RTKStatus>(ctx), IMoGoAutopilotStatu
|
||||
CallerLogger.d("$M_DEVA$TAG", "-- onCreate --")
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerChassisLocationWGS84ListenerManager.addListener(TAG, this)
|
||||
if (CallerAutoPilotControlManager.isConnected()) {
|
||||
if (CallerAutoPilotStatusListenerManager.isConnect()) {
|
||||
check()
|
||||
}
|
||||
}
|
||||
@@ -86,13 +86,13 @@ internal class RTKImpl(ctx: Context): IFlow<RTKStatus>(ctx), IMoGoAutopilotStatu
|
||||
|
||||
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {
|
||||
super.onAutopilotIpcConnectStatusChanged(status, reason)
|
||||
if (!CallerAutoPilotControlManager.isConnected()) {
|
||||
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
|
||||
CallerLogger.d("$M_DEVA$TAG", "工控机断开了....")
|
||||
healthInfo.set(null)
|
||||
send(RTKStatus("", -1))
|
||||
}
|
||||
|
||||
if (CallerAutoPilotControlManager.isConnected() && check == null && !isOldVersion.get()) {
|
||||
if (CallerAutoPilotStatusListenerManager.isConnect() && check == null && !isOldVersion.get()) {
|
||||
check()
|
||||
}
|
||||
}
|
||||
@@ -114,7 +114,7 @@ internal class RTKImpl(ctx: Context): IFlow<RTKStatus>(ctx), IMoGoAutopilotStatu
|
||||
private fun isRTKEnabled(): Boolean {
|
||||
val code = CallerAutoPilotStatusListenerManager.getAutoPilotReportMessageCode()
|
||||
val gnssInfo = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
|
||||
return CallerAutoPilotControlManager.isConnected() && (
|
||||
return CallerAutoPilotStatusListenerManager.isConnect() && (
|
||||
code != "EHW_RTK" &&
|
||||
code != "EHW_GNSS" &&
|
||||
code != "ESYS_RTK_STATUS_FAULT" &&
|
||||
|
||||
@@ -58,7 +58,7 @@ internal class TracingImpl(ctx: Context): IFlow<TracingStatus>(ctx), IMoGoAutopi
|
||||
super.onAutopilotIpcConnectStatusChanged(status, reason)
|
||||
try {
|
||||
if (ipcConnectStatus.get() != status) {
|
||||
if (!CallerAutoPilotControlManager.isConnected()) {
|
||||
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
|
||||
old = UNKNOWN
|
||||
send(TracingStatus(UNKNOWN))
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ internal class StatusModel : ViewModel() {
|
||||
const val TAG = "StatusModel"
|
||||
val DEFAULTS = Pair(null, ArrayList<Status>().also {
|
||||
it += OverViewStatus()
|
||||
it += IpcStatus(CallerAutoPilotControlManager.isConnected())
|
||||
it += IpcStatus(CallerAutoPilotStatusListenerManager.isConnect())
|
||||
it += CanStatus(false)
|
||||
// it += TracingStatus(UNKNOWN)
|
||||
it += RTKStatus("", -1)
|
||||
|
||||
@@ -186,7 +186,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
|
||||
svLayout.post {
|
||||
svLayout.fullScroll(View.FOCUS_DOWN)
|
||||
}
|
||||
if (!CallerAutoPilotStatusListenerManager.getConnectStates()) {
|
||||
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
|
||||
ToastUtils.showShort("设置车速失败,请启动域控制器")
|
||||
keyBoardUtil?.hideKeyboard()
|
||||
return@setOnTouchListener true
|
||||
|
||||
@@ -68,7 +68,7 @@ open class BlueToothView: LinearLayout, IMoGoMoFangProvider.OnMoFangStatusListen
|
||||
it.setTextColor(Color.RED)
|
||||
ivMoFangStatus?.drawable?.setTint(Color.RED)
|
||||
postDelayed({
|
||||
ToastUtils.showShort("当前蘑方处理低电状态, 请及时充电")
|
||||
ToastUtils.showShort("蘑方处于低电状态, 请及时充电")
|
||||
}, 5000)
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -122,12 +122,25 @@ object CallerAutoPilotControlManager {
|
||||
fun cancelAutoPilot() {
|
||||
// 司机屏才能取消自动驾驶
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
providerApi?.cancelAutoPilot()
|
||||
// 更新记录在全局的控制参数
|
||||
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null)
|
||||
cancelAutoPilotInner()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 包车乘客屏 取消自驾(包车 乘客屏为中心)
|
||||
*/
|
||||
fun cancelAutoPilot4Passenger(){
|
||||
if (AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
cancelAutoPilotInner()
|
||||
}
|
||||
}
|
||||
|
||||
private fun cancelAutoPilotInner() {
|
||||
providerApi?.cancelAutoPilot()
|
||||
// 更新记录在全局的控制参数
|
||||
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null)
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启域控制器录制bag包
|
||||
*/
|
||||
@@ -479,13 +492,6 @@ object CallerAutoPilotControlManager {
|
||||
providerApi?.setControlAutopilotCarAuto(isEnable)
|
||||
}
|
||||
|
||||
/**
|
||||
* 车机与工控机是否连上了
|
||||
*/
|
||||
fun isConnected(): Boolean {
|
||||
return providerApi?.isConnected() ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询工控机基础配置信息
|
||||
*/
|
||||
|
||||
@@ -83,7 +83,7 @@ object CallerAutoPilotStatusListenerManager : CallerBase<IMoGoAutopilotStatusLis
|
||||
return mAutopilotStatusInfo.dockVersion
|
||||
}
|
||||
|
||||
fun getConnectStates():Boolean{
|
||||
fun isConnect():Boolean{
|
||||
return mAutopilotStatusInfo.connectStatus
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ bytex.ASM_API=ASM7
|
||||
|
||||
################ 外部依赖引用 ################
|
||||
# loglib
|
||||
LOGLIB_VERSION=1.9.6
|
||||
LOGLIB_VERSION=1.9.12
|
||||
######## MogoAiCloudSDK Version ########
|
||||
# 网络请求LOGLIB_VERSION
|
||||
MOGO_NETWORK_VERSION=1.4.7.16
|
||||
|
||||
@@ -139,6 +139,7 @@ public class AMapWrapper implements IMogoMap {
|
||||
}
|
||||
long time = markerOptionsArrayList.get(0).getTime();
|
||||
batchMarkerOptions.list = markerOptionsArrayList;
|
||||
// batchMarkerOptions.averageFlag = 0;
|
||||
batchMarkerOptions.delayStrategy = false;
|
||||
batchMarkerOptions.ruleAngle = 8.0f;
|
||||
batchMarkerOptions.controlIcon = 1;
|
||||
|
||||
Reference in New Issue
Block a user