Merge remote-tracking branch 'origin/dev_robotaxi-d-app-module_270_220510_2.7.0' into dev_robotaxi-d-app-module_270_220510_2.7.0
This commit is contained in:
@@ -45,7 +45,10 @@ public class OrderQueryRespBean extends BaseData {
|
||||
public long startTime;
|
||||
//预计用车时间:预约单=下单时的预约用车时间;即时单=派单成功的时间+预估的达到上车点的时间
|
||||
public long bookingTime;
|
||||
|
||||
//乘客手机号
|
||||
public String passengerPhone;
|
||||
//订单多少乘客
|
||||
public String passengerNum;
|
||||
|
||||
|
||||
// !!!接口中暂无此字段,仅用于本地实现逻辑使用:起始站目的站距离km
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.mogo.och.taxi.bean;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
* 查询订单返回数据结构
|
||||
*/
|
||||
public class TaxiCheckPhoneBaseRespBean extends BaseData {
|
||||
public Object data;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.mogo.och.taxi.bean;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
* 验证手机号后四位同时流转订单状态
|
||||
*/
|
||||
public class TaxiCheckPhoneUpdateOrderReqBean {
|
||||
|
||||
public String orderNo;
|
||||
public String phone;
|
||||
|
||||
public TaxiCheckPhoneUpdateOrderReqBean(String orderNo, String phone) {
|
||||
this.orderNo = orderNo;
|
||||
this.phone = phone;
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import com.amap.api.maps.model.LatLng;
|
||||
import com.elegant.network.utils.GsonUtil;
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
|
||||
@@ -47,6 +48,7 @@ import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
||||
import com.mogo.och.taxi.bean.TaxiCheckPhoneBaseRespBean;
|
||||
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
|
||||
import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
|
||||
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
|
||||
@@ -73,9 +75,11 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.exceptions.UndeliverableException;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.plugins.RxJavaPlugins;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo_msg.MogoReportMsg;
|
||||
|
||||
@@ -187,12 +191,6 @@ public class TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
public void startOrStopOrderLoop() {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
startOrStopOrderLoop(mOCHCarStatus == 1);
|
||||
}
|
||||
}
|
||||
|
||||
public void release() {
|
||||
startOrStopOrderLoop(false);
|
||||
startOrStopCalculateRouteInfo(false);
|
||||
@@ -1297,5 +1295,29 @@ public class TaxiModel {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 调试使用,没有乘客屏时可使用此按钮跳过乘客验证
|
||||
*/
|
||||
public void debugPassengerCheckDone() {
|
||||
if (mCurrentOCHOrder == null
|
||||
|| mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.ArriveAtStart.getCode()
|
||||
|| mCurrentOCHOrder.passengerPhone == null || mCurrentOCHOrder.passengerPhone.length() < 5) {
|
||||
TipToast.shortTip("订单状态不匹配该操作或者手机号有误!");
|
||||
return;
|
||||
}
|
||||
TaxiServiceManager.getInstance().checkPhoneAndUpdateOrderStatus(mContext
|
||||
, mCurrentOCHOrder.orderNo, mCurrentOCHOrder.passengerPhone.substring(mCurrentOCHOrder.passengerPhone.length() -4)
|
||||
, new TaxiServiceCallback<TaxiCheckPhoneBaseRespBean>() {
|
||||
@Override
|
||||
public void onSuccess(TaxiCheckPhoneBaseRespBean data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ import com.mogo.och.taxi.bean.OrdersListQueryReqBean;
|
||||
import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
||||
import com.mogo.och.taxi.bean.TaxiCheckPhoneBaseRespBean;
|
||||
import com.mogo.och.taxi.bean.TaxiCheckPhoneUpdateOrderReqBean;
|
||||
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
@@ -44,7 +46,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @GET("/autopilot-car-hailing/api/v1/driver/orderInService/query")
|
||||
@GET("/autopilot-car-hailing/order/v2/driver/taxi/orderInService/query")
|
||||
Observable<OrdersInServiceQueryRespBean> queryOrdersInAndWaitService(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
Observable<OrdersInServiceQueryRespBean> queryOrdersInAndWaitService(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 查询新到的预约单
|
||||
@@ -54,7 +57,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @GET( "/autopilot-car-hailing/api/v1/driver/newBookingOrder/query" )
|
||||
@GET( "/autopilot-car-hailing/order/v2/driver/taxi/newBookingOrder/query" )
|
||||
Observable<OrdersNewBookingQueryRespBean> queryNewBookingOrder(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||
Observable<OrdersNewBookingQueryRespBean> queryNewBookingOrder(@Header ("appId") String appId
|
||||
,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* (预约单)执行抢单动作
|
||||
@@ -64,7 +68,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/grabOrder" )
|
||||
@POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabOrder" )
|
||||
Observable<OrderGrabRespBean> grabOrder(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderGrabReqBean data);
|
||||
Observable<OrderGrabRespBean> grabOrder(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body OrderGrabReqBean data);
|
||||
|
||||
/**
|
||||
* (预约单)查询抢单结果
|
||||
@@ -74,7 +79,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/grabStatus/query" )
|
||||
@POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabStatus/query" )
|
||||
Observable<OrderGrabStatusQueryRespBean> queryOrderGrabStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderGrabReqBean data);
|
||||
Observable<OrderGrabStatusQueryRespBean> queryOrderGrabStatus(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body OrderGrabReqBean data);
|
||||
|
||||
/**
|
||||
* 查询订单路径规划信息(到上车点、起始点间的距离和预估时间)
|
||||
@@ -84,7 +90,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/routeInfo/query" )
|
||||
@POST( "/autopilot-car-hailing/order/v2/driver/taxi/routeInfo/query" )
|
||||
Observable<OrderQueryRouteInfoRespBean> queryOrderRouteInfo(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderQueryRouteInfoReqBean data);
|
||||
Observable<OrderQueryRouteInfoRespBean> queryOrderRouteInfo(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body OrderQueryRouteInfoReqBean data);
|
||||
|
||||
/**
|
||||
* 通过orderId查询订单信息(用于本地已经有orderId时)
|
||||
@@ -95,7 +102,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/queryOrderById" )
|
||||
@POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderById" )
|
||||
Observable<OrderQueryRespBean> queryOrderById(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderQueryReqBean data);
|
||||
Observable<OrderQueryRespBean> queryOrderById(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body OrderQueryReqBean data);
|
||||
|
||||
/**
|
||||
* 查询服务中订单信息(用于本地无orderId时)
|
||||
@@ -107,7 +115,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @GET( "/autopilot-car-hailing/api/v1/driver/queryOrderInService" )
|
||||
@GET( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderInService" )
|
||||
Observable<OrderQueryRespBean> queryOrderInService(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||
Observable<OrderQueryRespBean> queryOrderInService(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 取消订单
|
||||
@@ -115,7 +124,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
// @POST("/autopilot-car-hailing/api/v1/driver/cancelOrder")
|
||||
@POST("/autopilot-car-hailing/order/v2/driver/taxi/cancelOrder")
|
||||
Observable<BaseData> cancelOrder(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderCancelReqBean data);
|
||||
Observable<BaseData> cancelOrder(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body OrderCancelReqBean data);
|
||||
|
||||
/**
|
||||
* 订单列表获取
|
||||
@@ -125,7 +135,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/queryOrders" )
|
||||
@POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrders" )
|
||||
Observable<OrdersListQueryRespBean> queryOrdersList(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrdersListQueryReqBean data);
|
||||
Observable<OrdersListQueryRespBean> queryOrdersList(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body OrdersListQueryReqBean data);
|
||||
|
||||
/**
|
||||
* 订单状态更新
|
||||
@@ -136,7 +147,8 @@ interface TaxiServiceApiNew {
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/order/updateStatus" )
|
||||
// @POST( "/autopilot-car-hailing/order/v2/driver/taxi/order/updateStatus" )
|
||||
@POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/driver/updateStatus" )
|
||||
Observable<BaseData> updateOrderStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderStatusUpdateReqBean data);
|
||||
Observable<BaseData> updateOrderStatus(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body OrderStatusUpdateReqBean data);
|
||||
|
||||
/**
|
||||
* 收车/出车状态更新
|
||||
@@ -146,7 +158,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" )
|
||||
@POST( "/autopilot-car-hailing/car/v2/driver/taxi/serviceStatus/update" )
|
||||
Observable<BaseData> updateDriverServiceStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Body DriverStatusUpdateReqBean data);
|
||||
Observable<BaseData> updateDriverServiceStatus(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body DriverStatusUpdateReqBean data);
|
||||
|
||||
/**
|
||||
* 收车/出车状态查询
|
||||
@@ -156,7 +169,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
|
||||
@GET( "/autopilot-car-hailing/car/v2/driver/taxi/serviceStatus/query" )
|
||||
Observable<DriverStatusQueryRespBean> queryDriverServiceStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||
Observable<DriverStatusQueryRespBean> queryDriverServiceStatus(@Header ("appId") String appId
|
||||
,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
|
||||
@@ -166,7 +180,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @POST( "/autopilot-car-hailing/api/v1/driver/heartbeat" )
|
||||
@POST( "/autopilot-car-hailing/location/v2/driver/taxi/heartbeat" )
|
||||
Observable<BaseData> runCarHeartbeat(@Header ("appId") String appId,@Header("ticket") String ticket,@Body CarHeartbeatReqBean data);
|
||||
Observable<BaseData> runCarHeartbeat(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||
,@Body CarHeartbeatReqBean data);
|
||||
|
||||
/**
|
||||
* 查询司机服务数据
|
||||
@@ -176,7 +191,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @GET( "/autopilot-car-hailing/api/v1/driver/serviceData/query" )
|
||||
@GET( "/autopilot-car-hailing/order/v2/driver/taxi/serviceData/query" )
|
||||
Observable<DriverServiceDataRespBean> queryServiceData(@Header ("appId") String appId,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||
Observable<DriverServiceDataRespBean> queryServiceData(@Header ("appId") String appId
|
||||
,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 上传工控机返回的全路径规划数据
|
||||
@@ -188,7 +204,8 @@ interface TaxiServiceApiNew {
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST("/autopilot-car-hailing/order/v2/driver/taxi/saveOrderRoute")
|
||||
// @POST("/mock/268/autopilot-car-hailing/order/v2/driver/taxi/orderRoute")
|
||||
Observable<BaseData> updateOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Body OrderRouteUpdateReqBean data);
|
||||
Observable<BaseData> updateOrderRoute(@Header ("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body OrderRouteUpdateReqBean data);
|
||||
|
||||
/**
|
||||
* 上报订单剩余里程和剩余时间
|
||||
@@ -199,11 +216,24 @@ interface TaxiServiceApiNew {
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST("/autopilot-car-hailing/order/v2/driver/taxi/reportOrderRemain")
|
||||
Observable<BaseData> reportOrderRemain(@Header ("appId") String appId, @Header("ticket") String ticket, @Body UpdateOrderDisAndTimeReqBean data);
|
||||
Observable<BaseData> reportOrderRemain(@Header ("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body UpdateOrderDisAndTimeReqBean data);
|
||||
|
||||
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
|
||||
@GET( "/autopilot-car-hailing/order/v2/driver/taxi/orderRoute" )
|
||||
Observable<QueryOrderRouteResp> queryOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("orderNo") String orderNo);
|
||||
Observable<QueryOrderRouteResp> queryOrderRoute(@Header ("appId") String appId
|
||||
, @Header("ticket") String ticket, @Query("orderNo") String orderNo);
|
||||
|
||||
/**
|
||||
* 提交用户输入的手机后4位、并进行状态扭转 用于调试跳过乘客屏使用
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/passenger/verification/phone" )
|
||||
Observable<TaxiCheckPhoneBaseRespBean> checkPhoneAndUpdateOrderStatus(@Header ("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiCheckPhoneUpdateOrderReqBean data);
|
||||
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ import com.mogo.och.taxi.bean.OrdersListQueryReqBean;
|
||||
import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
||||
import com.mogo.och.taxi.bean.TaxiCheckPhoneBaseRespBean;
|
||||
import com.mogo.och.taxi.bean.TaxiCheckPhoneUpdateOrderReqBean;
|
||||
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
|
||||
import com.mogo.och.taxi.constant.TaxiConst;
|
||||
|
||||
@@ -345,6 +347,18 @@ public class TaxiServiceManager {
|
||||
.subscribe(getSubscribeImpl(context,callback,"queryOrderRoute"));
|
||||
}
|
||||
|
||||
public void checkPhoneAndUpdateOrderStatus(Context context, String orderNo,String phone
|
||||
,TaxiServiceCallback<TaxiCheckPhoneBaseRespBean> callback){
|
||||
|
||||
mOCHTaxiServiceApi.checkPhoneAndUpdateOrderStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||
,MoGoAiCloudClientConfig.getInstance().getToken()
|
||||
,new TaxiCheckPhoneUpdateOrderReqBean(orderNo,phone))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus"));
|
||||
}
|
||||
|
||||
private <T extends BaseData> SubscribeImpl getSubscribeImpl(
|
||||
Context context, TaxiServiceCallback<T> callback, String apiName) {
|
||||
return new SubscribeImpl<T>(RequestOptions.create(context)) {
|
||||
|
||||
@@ -355,6 +355,9 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
}
|
||||
TaxiModel.getInstance().setOnTheWayToEndStation();
|
||||
});
|
||||
findViewById(R.id.test_passenger_check_done).setOnClickListener(v -> {
|
||||
TaxiModel.getInstance().debugPassengerCheckDone();
|
||||
});
|
||||
}
|
||||
|
||||
private void testRouteInfoUpload() {
|
||||
|
||||
@@ -62,6 +62,13 @@
|
||||
android:onClick="testToEnd"
|
||||
android:text="到达目的地"
|
||||
android:textSize="12sp" />
|
||||
<Button
|
||||
android:id="@+id/test_passenger_check_done"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:onClick="testToEnd"
|
||||
android:text="跳过乘客验证"
|
||||
android:textSize="12sp" />
|
||||
|
||||
</LinearLayout>
|
||||
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>
|
||||
@@ -154,9 +154,15 @@ internal class TracingStatus(var state: Tracing = UNKNOWN): Status() {
|
||||
*/
|
||||
ROUTE_FAILED("EMAP_HADMAP_ENGINE_NO_ROUTING_INFO"),
|
||||
|
||||
/**
|
||||
* 未知状态
|
||||
*/
|
||||
UNKNOWN;
|
||||
|
||||
fun isException(): Boolean = this == TRACK_FINDED || this == TRACK_NOT_EXIST || this == TRACK_LOAD_FAIL || this == ROUTE_FAILED || this == UNKNOWN
|
||||
fun isException(): Boolean = when (this) {
|
||||
TRACK_FINDED, TRACK_NOT_EXIST, TRACK_LOAD_FAIL, ROUTE_FAILED, UNKNOWN -> true
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
@@ -178,7 +184,7 @@ internal class TracingStatus(var state: Tracing = UNKNOWN): Status() {
|
||||
}
|
||||
}
|
||||
|
||||
internal fun String.toState(): Tracing {
|
||||
internal fun String.toState(): Tracing? {
|
||||
return when(this) {
|
||||
"IMAP_TRA_EXIST" -> TRACK_FINDED
|
||||
"IMAP_TRA_LOADED" -> TRACK_LOADED
|
||||
@@ -186,6 +192,6 @@ internal fun String.toState(): Tracing {
|
||||
"EMAP_TRA_LOAD_FAILED" -> TRACK_LOAD_FAIL
|
||||
"IMAP_TRA_ROUTING" -> ROUTE_LOADED
|
||||
"EMAP_HADMAP_ENGINE_NO_ROUTING_INFO" -> ROUTE_FAILED
|
||||
else -> UNKNOWN
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,11 @@ package com.zhjt.mogo_core_function_devatools.status.flow.trace
|
||||
|
||||
import android.content.*
|
||||
import android.util.*
|
||||
import com.mogo.eagle.core.data.autopilot.*
|
||||
import com.mogo.eagle.core.function.api.autopilot.*
|
||||
import com.mogo.eagle.core.function.call.autopilot.*
|
||||
import com.zhjt.mogo_core_function_devatools.status.entity.*
|
||||
import com.zhjt.mogo_core_function_devatools.status.entity.TracingStatus.Tracing.UNKNOWN
|
||||
import com.zhjt.mogo_core_function_devatools.status.flow.*
|
||||
import mogo_msg.MogoReportMsg.MogoReportMessage
|
||||
|
||||
@@ -14,13 +16,14 @@ internal class TracingImpl(ctx: Context): IFlow<TracingStatus>(ctx), IMoGoAutopi
|
||||
const val TAG = "TracingImpl"
|
||||
}
|
||||
|
||||
private var old: String = ""
|
||||
private var old: TracingStatus.Tracing = UNKNOWN
|
||||
|
||||
override fun onCreate() {
|
||||
Log.d(TAG, "-- onCreate --")
|
||||
val code = CallerAutoPilotStatusListenerManager.getAutoPilotReportMessageCode()
|
||||
old = code
|
||||
send(TracingStatus(code.toState()))
|
||||
val state = code.toState() ?: UNKNOWN
|
||||
old = state
|
||||
send(TracingStatus(state))
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
@@ -29,9 +32,18 @@ internal class TracingImpl(ctx: Context): IFlow<TracingStatus>(ctx), IMoGoAutopi
|
||||
super.onAutopilotGuardian(guardianInfo)
|
||||
val current = guardianInfo?.code
|
||||
Log.d(TAG, "-- onAutopilotGuardian --: $current")
|
||||
if (current != null && current != old) {
|
||||
send(TracingStatus(current.toState()))
|
||||
old = current
|
||||
val newState = current?.toState()
|
||||
if (newState != null && newState != old) {
|
||||
send(TracingStatus(newState))
|
||||
old = newState
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
super.onAutopilotStatusResponse(autoPilotStatusInfo)
|
||||
if (autoPilotStatusInfo.pilotmode != 1) {
|
||||
send(TracingStatus(UNKNOWN))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,10 @@ internal class StatusModel : ViewModel() {
|
||||
}
|
||||
}
|
||||
is TracingStatus -> {
|
||||
if (CallerAutoPilotManager.isConnected() && (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().pilotmode == 1) && s.state.isException()) {
|
||||
val c1 = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().pilotmode == 1
|
||||
val c2 = s.state.isException()
|
||||
Log.d(TAG, "getExceptionStatus-::c1: $c1 -> c2: $c2")
|
||||
if (c1 && c2) {
|
||||
s
|
||||
} else {
|
||||
null
|
||||
|
||||
@@ -73,6 +73,7 @@ open class AutopilotStatusInfo : Serializable, Cloneable {
|
||||
/**
|
||||
* 底盘的自动驾驶状态 0非自动驾驶,1自动驾驶
|
||||
*/
|
||||
@Volatile
|
||||
var pilotmode = 0
|
||||
|
||||
// 默认未连接
|
||||
|
||||
Reference in New Issue
Block a user