finish the route search and wait to finish interface

This commit is contained in:
zhongchao
2021-06-23 16:01:00 +08:00
parent 7718f6b218
commit 0a8c361153
18 changed files with 695 additions and 246 deletions

View File

@@ -45,7 +45,7 @@ dependencies {
// 现有的ADAS的通讯SDK需要将里面的东西融合到我们项目中
compileOnly rootProject.ext.dependencies.adasapi
api "com.zhidao.support.adas:high:1.1.9.2"
api "com.zhidao.support.adas:high:1.2.0.1"
annotationProcessor rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(RELEASE)) {

View File

@@ -2,4 +2,14 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.module.adas">
<application>
<receiver android:name=".receiver.AdasTestPanelBroadCastReceiver">
<intent-filter>
<action android:name="com.adas.test_panel_control" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@@ -3,21 +3,29 @@ package com.mogo.module.adas;
import android.content.Context;
import com.mogo.module.adas.entity.AdasAutoPilotLocReceiverBean;
import com.mogo.module.adas.model.AdasServiceModel;
import com.mogo.module.adas.view.DispatchRemindDialog;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.service.connection.IMogoOnMessageListener;
import com.mogo.utils.logger.Logger;
import com.zhidao.support.adas.high.bean.AutopilotRoute;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
//todo 自动驾驶车辆状态上报,路线上报,监听自动驾驶状态,结束置空 autoPilotLocReceiverBean
public class AdasAutoPilotManager implements IMogoOnMessageListener<AdasAutoPilotLocReceiverBean>, DispatchRemindDialog.IDispatchRemindClickListener {
import static com.mogo.module.adas.model.AdasServiceModel.DISPATCH_RESULT_AFFIRM;
import static com.mogo.module.adas.model.AdasServiceModel.DISPATCH_RESULT_MANUAL_CANCEL;
import static com.mogo.module.adas.model.AdasServiceModel.DISPATCH_RESULT_TIMER_CANCEL;
//负责监听自动驾驶状态并进行状态上报,自动驾驶路线上报,接收调度指令展示指令弹窗
public class AdasAutoPilotManager implements IMogoOnMessageListener<AdasAutoPilotLocReceiverBean>
, IAdasDataListener
, DispatchRemindDialog.IDispatchRemindClickListener {
private static final String TAG = "AdasAutoPilotManager";
private static volatile AdasAutoPilotManager instance;
private static final byte[] obj = new byte[0];
private static final int MSG_SOCKET_TYPE = 1;
private Context mContext;
private DispatchRemindDialog dispatchRemindDialog;
private AdasAutoPilotLocReceiverBean autoPilotLocReceiverBean;
private AdasAutoPilotManager() {
@@ -35,10 +43,10 @@ public class AdasAutoPilotManager implements IMogoOnMessageListener<AdasAutoPilo
}
public void initSocket(Context context) {
this.mContext = context;
MogoApisHandler.getInstance()
.getApis()
.getSocketManagerApi(mContext).registerOnMessageListener(MSG_SOCKET_TYPE, this);
.getSocketManagerApi(context).registerOnMessageListener(MSG_SOCKET_TYPE, this);
AdasEventManager.getInstance().addEventListener(this);
dispatchRemindDialog = new DispatchRemindDialog(context);
dispatchRemindDialog.addIDispatchRemindListener(this);
}
@@ -53,24 +61,36 @@ public class AdasAutoPilotManager implements IMogoOnMessageListener<AdasAutoPilo
if (adasAutoPilotLocReceiverBean != null
&& adasAutoPilotLocReceiverBean.getLat() != 0.0
&& adasAutoPilotLocReceiverBean.getLon() != 0.0) {
if (this.autoPilotLocReceiverBean != null) {
Logger.d(TAG, "onMsgReceived 上次下发调度还未确认完");
if (AdasEventManager.getInstance().getAutopilotValuesStatus().getPilotmode() == 1) {
Logger.d(TAG, "onMsgReceived 接收到服务端调度信息,但现在已经在自动驾驶状态,下发重复 略过");
return;
}
this.autoPilotLocReceiverBean = adasAutoPilotLocReceiverBean;
dispatchRemindDialog.show(adasAutoPilotLocReceiverBean.getPoiAddress());
}
}
@Override
public void affirm() {
//todo 网络请求
public void notifyAutopilotState(AutopilotStatus autopilotStatus) {
AdasServiceModel.getInstance().uploadAutopilotStatus(autopilotStatus);
}
@Override
public void cancel() {
//todo 网络请求
public void autopilotRoute(AutopilotRoute autopilotRoute) {
AdasServiceModel.getInstance().uploadAutopilotRoute(autopilotRoute.getModels());
}
@Override
public void affirm() {
AdasServiceModel.getInstance().dispatchResultUpload(DISPATCH_RESULT_AFFIRM);
}
@Override
public void cancel(boolean manualTrigger) {
AdasServiceModel.getInstance().dispatchResultUpload(manualTrigger ?
DISPATCH_RESULT_MANUAL_CANCEL : DISPATCH_RESULT_TIMER_CANCEL);
}
public void test(){
dispatchRemindDialog.show("123123123");
}
}

View File

@@ -1,5 +1,7 @@
package com.mogo.module.adas;
import com.mogo.commons.debug.DebugConfig;
/**
* Created by XuYong on 2021/5/28 15:24
*/
@@ -8,4 +10,17 @@ public class AdasConstant {
public static final String HOST_TEST = "http://dzt-test.zhidaohulian.com";
public static final String HOST_DEMO = "http://dzt-show.zhidaohulian.com";
public static final String HOST_PRODUCT = "https://dzt.zhidaohulian.com";
public static String getBaseUrl(){
switch ( DebugConfig.getNetMode() ) {
case DebugConfig.NET_MODE_DEV:
return HOST_DEV;
case DebugConfig.NET_MODE_QA:
return HOST_TEST;
case DebugConfig.NET_MODE_DEMO:
return HOST_DEMO;
default:
return HOST_PRODUCT;
}
}
}

View File

@@ -1,58 +0,0 @@
package com.mogo.module.adas;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarStateModel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.AutopilotWayArrive;
import com.zhidao.support.adas.high.bean.CarLaneInfo;
import com.zhidao.support.adas.high.bean.CarStateInfo;
import com.zhidao.support.adas.high.bean.LightStatueInfo;
import com.zhidao.support.adas.high.bean.ObstaclesInfo;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import java.util.List;
/**
* Created by XuYong on 2021/4/25 16:52
*/
public abstract class AdasDataListener {
public void sendMsg( String msg ) {
}
public void cameraEyeDetectResult( String detectResult ) {
}
public void selectCarModelUrl( String carStyleUrl ) {
}
public void requestGetCarModelListInfo() {
}
public void clickSettingBack() {
}
public void showToast( String msg ) {
}
public void autopilotArrive( AdasAIDLAutopilotArriveModel autopilotArriveModel ) {
}
public void ownerCarStateInfo( String ownerCarStateInfo ) {
}
public void notifyOwnerCarState( AdasAIDLOwnerCarStateModel ownerCarStateModel ) {
}
public void notifyAutopilotState( AdasAIDLAutopilotStateModel autopilotStateModel ) {
}
public void notifyOwnerCarRect( List<AdasAIDLOwnerCarRectModel> ownerCarStateRectList ) {
}
}

View File

@@ -1,7 +1,5 @@
package com.mogo.module.adas;
import android.os.RemoteException;
import com.google.gson.Gson;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.data.BaseData;
@@ -9,6 +7,7 @@ import com.mogo.commons.network.SubscribeImpl;
import com.mogo.module.adas.entity.AutonomousDriveStatusBean;
import com.mogo.module.adas.entity.ReportSiteBean;
import com.mogo.module.adas.entity.WarnMessageModel;
import com.mogo.module.adas.network.IAdasApiService;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.RequestOptions;
@@ -17,6 +16,7 @@ import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.OnAdasMsgConnectStatusListener;
import com.zhidao.support.adas.high.bean.AutopilotRoute;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.AutopilotWayArrive;
import com.zhidao.support.adas.high.bean.CarLaneInfo;
@@ -40,15 +40,20 @@ import okhttp3.MediaType;
import okhttp3.RequestBody;
import static com.mogo.commons.context.ContextHolderUtil.getContext;
import static com.mogo.module.adas.AdasConstant.getBaseUrl;
/**
* Created by XuYong on 2021/4/25 14:43
*/
public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusListener {
public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusListener { //todo 新增查询路线方法
private final String TAG = "AdasEventManager";
private static volatile AdasEventManager adasEventManager;
private static final byte[] obj = new byte[0];
private final Gson gson;
private final ArrayList<AdasDataListener> iAdasEventListeners = new ArrayList<>();
private final ArrayList<IAdasDataListener> iAdasEventListeners = new ArrayList<>();
private final ArrayList<AdasStatusListener> iAdasStatusListeners = new ArrayList<>();
private IAdasApiService mAdasApiService;
private Disposable uploadAutopilotStatus;
@@ -58,54 +63,61 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
private float mCurrentAutopilotSpeed = 0;
private Disposable mdDisposable;
//自动驾驶状态
private AutopilotStatus.ValuesBean mAutopilotStatus = null;
private AutopilotStatus.ValuesBean mAutopilotValuesStatus = null;
public AdasEventManager() {
gson = GsonUtil.getGson();
mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create( IAdasApiService.class, AdasConstant.HOST_PRODUCT );
private AdasEventManager() {
gson = GsonUtil.getGson();
mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create(IAdasApiService.class, getBaseUrl());
}
public void addEventListener(AdasDataListener listener) {
Logger.d(TAG,"添加adas事件监听");
if(iAdasEventListeners.contains(listener)){
public static AdasEventManager getInstance() {
if (adasEventManager == null) {
synchronized (obj) {
if (adasEventManager == null) {
adasEventManager = new AdasEventManager();
}
}
}
return adasEventManager;
}
public void addEventListener(IAdasDataListener listener) {
Logger.d(TAG, "添加adas事件监听");
if (iAdasEventListeners.contains(listener)) {
return;
}
iAdasEventListeners.add(listener);
}
public void removeEventListener(AdasDataListener listener) {
Logger.d(TAG,"注销adas事件监听");
if (iAdasEventListeners != null) {
iAdasEventListeners.remove(listener);
}
public void removeEventListener(IAdasDataListener listener) {
Logger.d(TAG, "注销adas事件监听");
iAdasEventListeners.remove(listener);
}
public void addStatusListener(AdasStatusListener listener) {
Logger.d(TAG,"添加adas状态事件监听");
if(iAdasStatusListeners.contains(listener)){
Logger.d(TAG, "添加adas状态事件监听");
if (iAdasStatusListeners.contains(listener)) {
return;
}
iAdasStatusListeners.add(listener);
}
public void removeStatusListener(AdasStatusListener listener) {
Logger.d(TAG,"注销adas状态事件监听");
if (iAdasStatusListeners != null) {
iAdasStatusListeners.remove(listener);
}
Logger.d(TAG, "注销adas状态事件监听");
iAdasStatusListeners.remove(listener);
}
public void removeStatusListener() {
Logger.d(TAG,"注销adas状态事件监听");
Logger.d(TAG, "注销adas状态事件监听");
iAdasStatusListeners.clear();
}
@Override
public void onWarnMessage(WarnMessageInfo warnMessageInfo) {
Logger.d(TAG,"onWarnMessage " + warnMessageInfo);
Logger.d(TAG, "onWarnMessage " + warnMessageInfo);
//报警model
WarnMessageModel warnMessageModel = null;
for (AdasDataListener listener:iAdasEventListeners) {
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
if (warnMessageModel == null) {
warnMessageModel = new WarnMessageModel();
@@ -119,8 +131,8 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onVideoSize(int width, int height) {
Logger.d(TAG,"onVideoSize");
for (AdasDataListener listener:iAdasEventListeners) {
Logger.d(TAG, "onVideoSize");
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
}
}
@@ -128,9 +140,8 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onRectData(RectInfo rectInfo) {
Logger.d(TAG,"onRectData " + rectInfo);
for (AdasDataListener listener:iAdasEventListeners) {
Logger.d(TAG, "onRectData " + rectInfo);
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
listener.cameraEyeDetectResult(gson.toJson(rectInfo));
}
@@ -139,8 +150,8 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onCarStateData(CarStateInfo carStateInfo) {
Logger.d(TAG,"onCarStateData " + carStateInfo);
for (AdasDataListener listener:iAdasEventListeners) {
Logger.d(TAG, "onCarStateData " + carStateInfo);
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
listener.ownerCarStateInfo(gson.toJson(carStateInfo));
}
@@ -149,8 +160,8 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onLightStateData(LightStatueInfo lightStatueInfo) {
Logger.d(TAG,"onLightStateData " + lightStatueInfo);
for (AdasDataListener listener:iAdasEventListeners) {
Logger.d(TAG, "onLightStateData " + lightStatueInfo);
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
}
}
@@ -158,8 +169,8 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onObstaclesInfo(ObstaclesInfo obstaclesInfo) {
Logger.d(TAG,"onObstaclesInfo " + obstaclesInfo);
for (AdasDataListener listener:iAdasEventListeners) {
Logger.d(TAG, "onObstaclesInfo " + obstaclesInfo);
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
}
}
@@ -167,8 +178,8 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onCarLaneInfo(CarLaneInfo carLaneInfo) {
Logger.d(TAG,"onCarLaneInfo " + carLaneInfo);
for (AdasDataListener listener:iAdasEventListeners) {
Logger.d(TAG, "onCarLaneInfo " + carLaneInfo);
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
}
}
@@ -176,32 +187,25 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void autopilotStatus(AutopilotStatus autopilotStatus) {
Logger.d(TAG,"autopilotStatus " + autopilotStatus);
Logger.d(TAG, "autopilotStatus " + autopilotStatus);
AutopilotStatus.ValuesBean autopilotStatusValues = autopilotStatus.getValues();
AutopilotStatus.ValuesBean mAutopilotStatus;
if (autopilotStatusValues != null) {
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel();
adasAIDLAutopilotStateModel.setReason(autopilotStatusValues.getReason());
mAutopilotStatus = autopilotStatusValues;
int state = autopilotStatusValues.getState();
float speed = autopilotStatusValues.getSpeed();
adasAIDLAutopilotStateModel.setState(state);
adasAIDLAutopilotStateModel.setSpeed(speed);
mCurrentAutopilotStatus = state;
mCurrentAutopilotSpeed = speed;
for (AdasDataListener listener:iAdasEventListeners) {
this.mAutopilotValuesStatus = autopilotStatus.getValues();
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
listener.notifyAutopilotState(adasAIDLAutopilotStateModel);
listener.notifyAutopilotState(autopilotStatus);
}
}
}
}
@Override
public void autopilotArrive(AutopilotWayArrive autopilotWayArrive) {
Logger.d(TAG,"autopilotArrive " + autopilotWayArrive);
Logger.d(TAG, "autopilotArrive " + autopilotWayArrive);
if (autopilotWayArrive != null) {
AutopilotWayArrive.ResultBean result = autopilotWayArrive.getResult();
if (result != null) {
@@ -213,9 +217,9 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
double lat = endLatLon.getLat();
adasAIDLAutopilotArriveModel.setLat(lat);
adasAIDLAutopilotArriveModel.setLon(lon);
Logger.d(TAG,"autopilotArrive reportSite");
Logger.d(TAG, "autopilotArrive reportSite");
reportSite(lon, lat);
for (AdasDataListener listener:iAdasEventListeners) {
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
listener.autopilotArrive(adasAIDLAutopilotArriveModel);
}
@@ -226,14 +230,21 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
}
@Override
public void onAutopilotRoute(String route) {
//todo
public void onAutopilotRoute(AutopilotRoute autopilotRoute) {
if (autopilotRoute.getModels() == null || autopilotRoute.getModels().size() == 0) {
return;
}
for (IAdasDataListener listener : iAdasEventListeners) {
if (listener != null) {
listener.autopilotRoute(autopilotRoute);
}
}
}
@Override
public void onWebSocketConnectSuccess() {
Logger.d(TAG,"webSocket 连接成功");
for (AdasStatusListener listener :iAdasStatusListeners) {
Logger.d(TAG, "webSocket 连接成功");
for (AdasStatusListener listener : iAdasStatusListeners) {
listener.onServiceConnected();
}
updateDriveStatusTask();
@@ -241,15 +252,15 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onWebSocketConnectFailed() {
Logger.d(TAG,"webSocket 连接失败");
for (AdasStatusListener listener :iAdasStatusListeners) {
Logger.d(TAG, "webSocket 连接失败");
for (AdasStatusListener listener : iAdasStatusListeners) {
listener.onServiceDisconnected();
}
}
public void updateDriveStatusTask() {
Logger.d(TAG,"updateDriveStatusTask");
mdDisposable = Flowable.interval(0,5, TimeUnit.SECONDS)
Logger.d(TAG, "updateDriveStatusTask");
mdDisposable = Flowable.interval(0, 5, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
@@ -264,34 +275,9 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
private void updateDriveStatus() {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
AutonomousDriveStatusBean request = new AutonomousDriveStatusBean(sn, mCurrentAutopilotStatus, mCurrentAutopilotSpeed);
RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( request ) );
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
mAdasApiService.updateAutonomousDriveStatus(requestBody).
subscribeOn( Schedulers.io() ).observeOn( AndroidSchedulers.mainThread() )
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
@Override
public void onError(String message, int code) {
super.onError(message, code);
}
@Override
public void onError(Throwable e) {
super.onError(e);
}
@Override
public void onSuccess(BaseData o) {
super.onSuccess(o);
Logger.d(TAG,"updateDriveStatus success");
}
});
}
private void reportSite( double lon, double lat) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
ReportSiteBean reportSiteBean = new ReportSiteBean(sn, lon, lat);
RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( reportSiteBean ) );
mAdasApiService.updateReportSite(requestBody).
subscribeOn( Schedulers.io() ).observeOn( AndroidSchedulers.mainThread() )
subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
@Override
public void onError(String message, int code) {
@@ -306,17 +292,46 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
@Override
public void onSuccess(BaseData o) {
super.onSuccess(o);
Logger.d(TAG,"autopilotArrive success");
Logger.d(TAG, "updateDriveStatus success");
}
});
}
private void reportSite(double lon, double lat) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
ReportSiteBean reportSiteBean = new ReportSiteBean(sn, lon, lat);
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(reportSiteBean));
mAdasApiService.updateReportSite(requestBody).
subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
@Override
public void onError(String message, int code) {
super.onError(message, code);
}
@Override
public void onError(Throwable e) {
super.onError(e);
}
@Override
public void onSuccess(BaseData o) {
super.onSuccess(o);
Logger.d(TAG, "autopilotArrive success");
}
});
}
public AutopilotStatus.ValuesBean getAutopilotValuesStatus(){
return mAutopilotValuesStatus;
}
public AdasAIDLAutopilotStateModel autopilotStateCall() {
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel();
if (mAutopilotStatus != null) {
adasAIDLAutopilotStateModel.setSpeed(mAutopilotStatus.getSpeed());
adasAIDLAutopilotStateModel.setState(mAutopilotStatus.getState());
adasAIDLAutopilotStateModel.setReason(mAutopilotStatus.getReason());
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel = new AdasAIDLAutopilotStateModel();
if (mAutopilotValuesStatus != null) {
adasAIDLAutopilotStateModel.setSpeed(mAutopilotValuesStatus.getSpeed());
adasAIDLAutopilotStateModel.setState(mAutopilotValuesStatus.getState());
adasAIDLAutopilotStateModel.setReason(mAutopilotValuesStatus.getReason());
}
return adasAIDLAutopilotStateModel;
}

View File

@@ -4,10 +4,12 @@ import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.service.MogoServicePaths;
import com.mogo.utils.logger.Logger;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.bean.BasicInfo;
/**
@@ -18,14 +20,14 @@ import com.zhidao.support.adas.high.AdasManager;
* wikihttp://wiki.zhidaohulian.com/pages/viewpage.action?pageId=52840459
*/
@Route(path = MogoServicePaths.PATH_ADAS)
public class AdasProvider implements IProvider {
public class AdasProvider implements IProvider { //todo 新增查询路线方法 扩展接口至 serviceApi
private static final String TAG = "AdasProvider";
private AdasEventManager adasEventManager;
@Override
public void init(Context context) {
Logger.d(TAG, "初始化 AdasProvider 模块");
adasEventManager = new AdasEventManager();
adasEventManager = AdasEventManager.getInstance();
initAdas(context, adasEventManager);
initAutoPilotBusiness(context);
}
@@ -34,17 +36,24 @@ public class AdasProvider implements IProvider {
AdasManager.getInstance().create(context);
AdasManager.getInstance().setOnAdasListener(adasEventManager);
AdasManager.getInstance().setOnAdasConnectStatusListener(adasEventManager);
AdasManager.getInstance().queryAutopilotRoute();
}
private void initAutoPilotBusiness(Context context) {
AdasAutoPilotManager.getInstance().initSocket(context);
}
public void addAdasEventListener(AdasDataListener listener) {
public void setBasicInfo(){
BasicInfo info = new BasicInfo();
info.setSn(MoGoAiCloudClientConfig.getInstance().getSn());
AdasManager.getInstance().setBasicInfo(info);
}
public void addAdasEventListener(IAdasDataListener listener) {
adasEventManager.addEventListener(listener);
}
public void removeAdasEventListener(AdasDataListener listener) {
public void removeAdasEventListener(IAdasDataListener listener) {
adasEventManager.removeEventListener(listener);
}
@@ -64,6 +73,13 @@ public class AdasProvider implements IProvider {
AdasManager.getInstance().aiCloudToAdasData(msg);
}
/**
* 查询自动驾驶路线,接口回调至 OnAdasListener
*/
public void queryAutopilotRoute() {
AdasManager.getInstance().queryAutopilotRoute();
}
public void cancelPilot() {
if (AdasManager.getInstance().isSocketConnect()) {
AdasManager.getInstance().controlAutopilotCarHead();

View File

@@ -1,24 +0,0 @@
package com.mogo.module.adas;
import com.mogo.commons.data.BaseData;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Headers;
import retrofit2.http.POST;
/**
* Created by XuYong on 2021/5/28 14:24
*/
public interface IAdasApiService {
//上传自动驾驶状态接口
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/yycp-carDataService/autonomousDrive/updateAutonomousDriveStatus" )
Observable<BaseData> updateAutonomousDriveStatus(@Body RequestBody requestBody );
//站点上报
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/yycp-carDataService/autonomousDrive/reportSite" )
Observable<BaseData> updateReportSite(@Body RequestBody requestBody );
}

View File

@@ -0,0 +1,79 @@
package com.mogo.module.adas;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarStateModel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.AutopilotRoute;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.AutopilotWayArrive;
import com.zhidao.support.adas.high.bean.CarLaneInfo;
import com.zhidao.support.adas.high.bean.CarStateInfo;
import com.zhidao.support.adas.high.bean.LightStatueInfo;
import com.zhidao.support.adas.high.bean.ObstaclesInfo;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import java.util.List;
/**
* Created by XuYong on 2021/4/25 16:52
*/
public interface IAdasDataListener {
default void sendMsg( String msg ){
};
default void cameraEyeDetectResult( String detectResult ) {
}
default void selectCarModelUrl( String carStyleUrl ) {
}
default void requestGetCarModelListInfo() {
}
default void clickSettingBack() {
}
default void showToast( String msg ) {
}
/**
* 自动驾驶到达站点回调接口
* @param autopilotArriveModel
*/
default void autopilotArrive( AdasAIDLAutopilotArriveModel autopilotArriveModel ) {
}
/**
* 自动驾驶路线回调
* @param autopilotRoute {@link AutopilotRoute}
*/
default void autopilotRoute(AutopilotRoute autopilotRoute){
}
/**
* 自车定位信息
* @param ownerCarStateInfo
*/
default void ownerCarStateInfo( String ownerCarStateInfo ) {
}
default void notifyOwnerCarState( AdasAIDLOwnerCarStateModel ownerCarStateModel ) {
}
/**
* 自动驾驶状态信息
* @param autopilotStatus {@link AutopilotStatus}
*/
default void notifyAutopilotState( AutopilotStatus autopilotStatus ) {
}
default void notifyOwnerCarRect( List<AdasAIDLOwnerCarRectModel> ownerCarStateRectList ) {
}
}

View File

@@ -0,0 +1,36 @@
package com.mogo.module.adas.entity;
public class ReportDispatchResult {
private String sn;
private int dispatchResult;
public ReportDispatchResult(String sn, int dispatchResult) {
this.sn = sn;
this.dispatchResult = dispatchResult;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public int getDispatchResult() {
return dispatchResult;
}
public void setDispatchResult(int dispatchResult) {
this.dispatchResult = dispatchResult;
}
@Override
public String toString() {
return "ReportDispatchResult{" +
"sn='" + sn + '\'' +
", dispatchResult=" + dispatchResult +
'}';
}
}

View File

@@ -0,0 +1,38 @@
package com.mogo.module.adas.entity;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
/**
* 上报自动驾驶规划的路径
*/
public class ReportedRoute {
private String sn;
private AutopilotStatus.ValuesBean bean;
private String siteList;
public ReportedRoute(String sn, AutopilotStatus.ValuesBean bean) {
this.sn = sn;
this.bean = bean;
}
public ReportedRoute(String sn, String siteList) {
this.sn = sn;
this.siteList = siteList;
}
public String getSiteList() {
return siteList;
}
public String getState() {
return "{\"sn\":\"" + sn + "\",\"state\":" + bean.getState() + ",\"speed\":" + bean.getSpeed() + ",\"reason\":\"" + bean.getReason() + "\",\"camera\":" + bean.getCamera() + ",\"radar\":" + bean.getRadar() + ",\"rtk\":" + bean.getRtk() + "}";
}
public String getRoute() {
return "{\"sn\":\"" + sn + "\",\"siteList\":" + siteList + "}";
}
}

View File

@@ -0,0 +1,155 @@
package com.mogo.module.adas.model;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.data.BaseData;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.module.adas.entity.ReportDispatchResult;
import com.mogo.module.adas.entity.ReportedRoute;
import com.mogo.module.adas.network.IAdasApiService;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.RequestOptions;
import com.zhidao.support.adas.high.bean.AutopilotRoute;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import static com.mogo.commons.context.ContextHolderUtil.getContext;
import static com.mogo.module.adas.AdasConstant.getBaseUrl;
public class AdasServiceModel {
private static final String TAG = "AdasServiceModel";
private static volatile AdasServiceModel instance;
private static final byte[] obj = new byte[0];
public static final int DISPATCH_RESULT_AFFIRM = 0;
public static final int DISPATCH_RESULT_MANUAL_CANCEL = 1;
public static final int DISPATCH_RESULT_TIMER_CANCEL = 2;
private final IAdasApiService mAdasApiService;
private AdasServiceModel() {
this.mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create(IAdasApiService.class, getBaseUrl());
}
public static AdasServiceModel getInstance() {
if (instance == null) {
synchronized (obj) {
if (instance == null) {
instance = new AdasServiceModel();
}
}
}
return instance;
}
/**
* 上报自动驾驶状态
*
* @param autopilotStatus {@link AutopilotStatus}
*/
public void uploadAutopilotStatus(AutopilotStatus autopilotStatus) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
ReportedRoute reportedRoute = new ReportedRoute(sn, autopilotStatus.getValues());
Map<String, Object> map = new HashMap<>();
map.put("sn", sn);
map.put("reportedRoute", reportedRoute);
mAdasApiService.uploadAutopilotState(map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
@Override
public void onNext(BaseData o) {
super.onNext(o);
Logger.d(TAG, "uploadAutopilotStatus success");
}
@Override
public void onError(Throwable e) {
super.onError(e);
Logger.d(TAG, "uploadAutopilotStatus error : " + e.getMessage());
}
@Override
public void onSuccess(BaseData o) {
super.onSuccess(o);
}
});
}
/**
* 上报自动驾驶路线
*
* @param list 路线集合
*/
public void uploadAutopilotRoute(List<AutopilotRoute.RouteModels> list) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
ReportedRoute reportedRoute = new ReportedRoute(sn, Arrays.toString(list.toArray()));
Map<String, Object> map = new HashMap<>();
map.put("sn", sn);
map.put("reportedRoute", reportedRoute);
mAdasApiService.uploadAutopilotRoute(map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
@Override
public void onNext(BaseData o) {
super.onNext(o);
Logger.d(TAG, "uploadAutopilotRoute success");
}
@Override
public void onError(Throwable e) {
super.onError(e);
Logger.d(TAG, "uploadAutopilotRoute error : " + e.getMessage());
}
@Override
public void onSuccess(BaseData o) {
super.onSuccess(o);
}
});
}
/**
* 上报调度处理结果
*
* @param dispatchResultType int
*/
public void dispatchResultUpload(int dispatchResultType) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
ReportDispatchResult reportDispatchResult = new ReportDispatchResult(sn, dispatchResultType);
Map<String, Object> map = new HashMap<>();
map.put("sn", sn);
map.put("reportDispatchResult", reportDispatchResult);
mAdasApiService.uploadDispatchResult(map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
@Override
public void onNext(BaseData o) {
super.onNext(o);
Logger.d(TAG, "dispatchResultUpload success");
}
@Override
public void onError(Throwable e) {
super.onError(e);
Logger.d(TAG, "dispatchResultUpload error : " + e.getMessage());
}
@Override
public void onSuccess(BaseData o) {
super.onSuccess(o);
}
});
}
}

View File

@@ -0,0 +1,55 @@
package com.mogo.module.adas.network;
import com.mogo.commons.data.BaseData;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.POST;
public interface IAdasApiService {
//上传自动驾驶状态接口
@Headers({"Content-Type:application/json;charset=UTF-8"})
@POST("/yycp-carDataService/autonomousDrive/updateAutonomousDriveStatus")
Observable<BaseData> updateAutonomousDriveStatus(@Body RequestBody requestBody);
//站点上报 用于网约车业务
@Headers({"Content-Type:application/json;charset=UTF-8"})
@POST("/yycp-carDataService/autonomousDrive/reportSite")
Observable<BaseData> updateReportSite(@Body RequestBody requestBody);
/**
* 上报自动驾驶状态 服务于业务调度
*
* @param parameters map
* @return {@link BaseData}
*/
@FormUrlEncoded
@POST("/dataService/autoDriver/receiveAutopilotState")
Observable<BaseData> uploadAutopilotState(Map<String, Object> parameters);
/**
* 上报自动驾驶路径 服务于业务调度
*
* @param parameters map
* @return {@link BaseData}
*/
@FormUrlEncoded
@POST("/dataService/autoDriver/receiveCarPreSetPath")
Observable<BaseData> uploadAutopilotRoute(Map<String, Object> parameters);
/**
* 上报自动驾驶调度处理结果 服务于业务调度
*
* @param parameters map
* @return {@link BaseData}
*/
@FormUrlEncoded
@POST("")
Observable<BaseData> uploadDispatchResult(Map<String, Object> parameters);
}

View File

@@ -0,0 +1,45 @@
package com.mogo.module.adas.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.mogo.module.adas.AdasAutoPilotManager;
import com.mogo.utils.logger.Logger;
public class AdasTestPanelBroadCastReceiver extends BroadcastReceiver {
private static final String TAG = "AdasTestPanelBroadCastReceiver";
/**
* Adas测试控制面板广播Action
*/
public static final String BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY = "sceneType";
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
try {
this.mContext = context;
int sceneType = intent.getIntExtra(BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0);
Logger.d(TAG, "textPanelOpenType:" + sceneType);
// 分发场景
dispatchSceneTest(sceneType);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 分发处理场景
*
* @param sceneType 场景类型
*/
private void dispatchSceneTest(int sceneType) {
Logger.d(TAG, "sceneType=" + sceneType);
if (sceneType == 0) {//打开调度弹窗
AdasAutoPilotManager.getInstance().test();
}
}
}

View File

@@ -19,12 +19,12 @@ public class DispatchRemindDialog extends BaseFloatDialog {
private static int TIMER = 10;
private IDispatchRemindClickListener mListener;
private TextView tvTimer;
private TextView tvLoc;
private TextView tvAffirm;
private TextView tvCancel;
private final TextView tvTimer;
private final TextView tvLoc;
private final TextView tvAffirm;
private final TextView tvCancel;
private Handler handler = new Handler() {
private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
@@ -34,7 +34,7 @@ public class DispatchRemindDialog extends BaseFloatDialog {
tvTimer.setText(TIMER);
handler.sendEmptyMessage(MSG_TYPE_TIMER);
} else {
hide();
hideDialog();
}
}
}
@@ -55,7 +55,7 @@ public class DispatchRemindDialog extends BaseFloatDialog {
});
tvCancel.setOnClickListener(v -> {
if (mListener != null) {
mListener.cancel();
mListener.cancel(true);
}
});
}
@@ -66,14 +66,18 @@ public class DispatchRemindDialog extends BaseFloatDialog {
tvLoc.setText(locContent);
}
public void hide() {
dismiss();
public void hideDialog() {
if (mListener != null) {
mListener.cancel(false);
}
mListener = null;
handler.removeMessages(MSG_TYPE_TIMER);
dismiss();
}
public void addIDispatchRemindListener(IDispatchRemindClickListener listener) {
if (listener != null) {
Logger.d(TAG, "addIDispatchRemindListener has listener");
if (listener == null) {
Logger.d(TAG, "addIDispatchRemindListener listener is null");
return;
}
this.mListener = listener;
@@ -83,6 +87,6 @@ public class DispatchRemindDialog extends BaseFloatDialog {
void affirm();
void cancel();
void cancel(boolean manualTrigger);
}
}

View File

@@ -129,6 +129,18 @@ public interface IMogoADASController extends IProvider {
*/
void removeAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback);
/**
* 添加adas自动驾驶路线回调
* @param callBack
*/
void addAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack);
/**
* 移除adas自动驾驶路线回调
* @param callBack
*/
void removeAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack);
/**
* 自车定位数据
*

View File

@@ -0,0 +1,10 @@
package com.mogo.service.adas;
import com.mogo.map.MogoLatLng;
import java.util.List;
public interface IMogoAdasRouteCallBack {
void routeResult(List<MogoLatLng> routeList);
}

View File

@@ -14,16 +14,18 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.map.MogoLatLng;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.adas.AdasDataListener;
import com.mogo.module.adas.AdasProvider;
import com.mogo.module.adas.AdasStatusListener;
import com.mogo.module.adas.IAdasDataListener;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.adas.IMogoADASController;
import com.mogo.service.adas.IMogoAdasCarDataCallback;
import com.mogo.service.adas.IMogoAdasDataCallback;
import com.mogo.service.adas.IMogoAdasOCHCallback;
import com.mogo.service.adas.IMogoAdasRecognizedDataCallback;
import com.mogo.service.adas.IMogoAdasRouteCallBack;
import com.mogo.service.adas.IMogoAdasWarnMessageCallback;
import com.mogo.service.adas.RemoteControlAutoPilotParameters;
import com.mogo.service.adas.entity.ADASCarStateInfo;
@@ -47,12 +49,11 @@ import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
import com.zhidao.adasconfig.common.config.EnumCarHeading;
import com.zhidao.adasconfig.common.config.EnumSkinStyle;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarStateModel;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.BasicInfo;
import com.zhidao.support.adas.high.bean.AutopilotRoute;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import com.zhidao.support.adas.high.msg.MyMessageFactory;
@@ -93,8 +94,7 @@ public class MogoADASController implements IMogoADASController {
private boolean mIsReleased = true;
//private IAutopolitDataCallBack mAutopolitDataCallBack;
private AdasDataListener mAdasDataListener;
private IAdasDataListener mAdasDataListener;
private AdasProvider adasProvider;
@@ -113,6 +113,11 @@ public class MogoADASController implements IMogoADASController {
*/
private final List<IMogoAdasRecognizedDataCallback> mMogoAdasRecognizedDataCallbacks = new CopyOnWriteArrayList<>();
/**
* 自动驾驶路线回调
*/
private final List<IMogoAdasRouteCallBack> mMogoAdasRouteCallBacks = new CopyOnWriteArrayList<>();
private IMogoAdasCarDataCallback mMogoAdasCarDataCallback;
private List<AdasAIDLOwnerCarRectModel> mLastFrameDatums;
@@ -142,7 +147,6 @@ public class MogoADASController implements IMogoADASController {
final long start = System.currentTimeMillis();
ADASCarStateInfo stateInfo = GsonUtil.objectFromJson(((String) msg.obj), ADASCarStateInfo.class);
if (stateInfo == null || stateInfo.getValues() == null) {
Logger.d(TAG, "ADAS-LOC-timer", "upd 到 aidl 传输数据 stateInfo or stateInfo.getValues() is null");
@@ -233,7 +237,7 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void onAutopilotRoute(String route) {
public void onAutopilotRoute(AutopilotRoute autopilotRoute) {
}
@@ -299,7 +303,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void killADAS() {
try {
//AutopilotServiceManage.getInstance().kill();
adasProvider.killAdas();
} catch (Exception e) {
@@ -311,10 +314,10 @@ public class MogoADASController implements IMogoADASController {
private void testOCH() {
RemoteControlAutoPilotParameters currentAutopilot = new RemoteControlAutoPilotParameters();
currentAutopilot.isSpeakVoice = true;
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 0, 1 );
currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 2, 3 );
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(0, 1);
currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(2, 3);
currentAutopilot.vehicleType = 10;
Logger.d( TAG, "开启自动驾驶====" + currentAutopilot );
Logger.d(TAG, "开启自动驾驶====" + currentAutopilot);
aiCloudToAdasData(currentAutopilot);
}
@@ -326,19 +329,17 @@ public class MogoADASController implements IMogoADASController {
return;
}
}
if (SingletonsHolder.get(IMogoStatusManager.class).isVrMode()) {
return;
}
// if (SingletonsHolder.get(IMogoStatusManager.class).isVrMode()) {
// return;
// }
Logger.d(TAG, Log.getStackTraceString(new Throwable()));
init(AbsMogoApplication.getApp());
adasProvider.addAdasStatusListener(new AdasStatusListener() {
@Override
public void onServiceConnected() {
super.onServiceConnected();
Logger.d( TAG, "adas statuslistener connected & send sn");
BasicInfo info=new BasicInfo();
info.setSn(MoGoAiCloudClientConfig.getInstance().getSn());
AdasManager.getInstance().setBasicInfo(info);
Logger.d(TAG, "adas statusListener connected & send sn");
adasProvider.setBasicInfo();
invokeShowADASOperation();
//测试网约车
@@ -354,7 +355,7 @@ public class MogoADASController implements IMogoADASController {
invokeShowADASOperation();
if (mAdasDataListener == null) {
mAdasDataListener = new AdasDataListener() {
mAdasDataListener = new IAdasDataListener() {
@Override
public void sendMsg(String msg) {
Logger.d(TAG, "adas AdasDataListener sendmsg " + msg);
@@ -401,7 +402,6 @@ public class MogoADASController implements IMogoADASController {
// 向adas发送车模list
String carModelList = SharedPrefsMgr.getInstance(context).getString("CAR_MODEL_LIST", "");
if (carModelList != null && !carModelList.isEmpty()) {
//AutopilotServiceManage.getInstance().settingCarModelListInfo(carModelList);
adasProvider.settingCarModelListInfo(carModelList);
}
// 此处进行网络请求请求成功后再通知一次adas
@@ -439,6 +439,23 @@ public class MogoADASController implements IMogoADASController {
}
}
@Override
public void autopilotRoute(AutopilotRoute autopilotRoute) {
if (autopilotRoute.getModels() == null || autopilotRoute.getModels().size() == 0) {
return;
}
List<MogoLatLng> latLngList = new ArrayList<>();
for (AutopilotRoute.RouteModels routeModel : autopilotRoute.getModels()) {
latLngList.add(new MogoLatLng(routeModel.getLat(), routeModel.getLon()));
}
for (IMogoAdasRouteCallBack callback : mMogoAdasRouteCallBacks) {
if (callback == null) {
continue;
}
callback.routeResult(latLngList);
}
}
@Override
public void ownerCarStateInfo(String ownerCarStateInfo) {
Logger.d(TAG, "ownerCarStateInfo " + ownerCarStateInfo);
@@ -473,11 +490,11 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void notifyAutopilotState(AdasAIDLAutopilotStateModel autopilotStateModel) {
Logger.d(TAG, "notifyAutopilotState: " + autopilotStateModel);
DebugConfig.setAutoPilotStatus(autopilotStateModel.getState() + "");
public void notifyAutopilotState(AutopilotStatus autopilotStatus) {
Logger.d(TAG, "notifyAutopilotState: " + autopilotStatus);
DebugConfig.setAutoPilotStatus(autopilotStatus.getValues().getState() + "");
if (mAdasOCHCallback != null) {
mAdasOCHCallback.onStateChanged(autopilotStateModel.getState(), autopilotStateModel.getReason());
mAdasOCHCallback.onStateChanged(autopilotStatus.getValues().getState(), autopilotStatus.getValues().getReason());
}
}
@@ -546,7 +563,6 @@ public class MogoADASController implements IMogoADASController {
}
try {
//AutopilotServiceManage.getInstance().showAdas();
adasProvider.showAdas();
} catch (Exception e) {
Intent intent = new Intent(ACTION);
@@ -570,7 +586,6 @@ public class MogoADASController implements IMogoADASController {
Logger.d(TAG, "close adas");
try {
//AutopilotServiceManage.getInstance().hideAdas();
adasProvider.hideAdas();
} catch (Exception e) {
Intent intent = new Intent(ACTION);
@@ -600,7 +615,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void init(Context context) {
//AutopilotServiceManage.getInstance().init(context);
mIsReleased = false;
mAdasMessageFactory = new MyMessageFactory();
adasProvider = ARouter.getInstance().navigation(AdasProvider.class);
@@ -609,13 +623,11 @@ public class MogoADASController implements IMogoADASController {
@Override
public void setSettingStatus(boolean show) {
//AutopilotServiceManage.getInstance().setSettingStatus(show);
adasProvider.setSettingStatus(show);
}
@Override
public void setUseAlgorithm(boolean open) {
//AutopilotServiceManage.getInstance().setUseAlgorithm(open);
adasProvider.setUseAlgorithm(open);
}
@@ -687,7 +699,6 @@ public class MogoADASController implements IMogoADASController {
AdasControlCommandParameter parameter = new AdasControlCommandParameter(action, result);
//位置信息 action是aiCloudToStartAutopilot
try {
//AutopilotServiceManage.getInstance().aiCloudToAdasData(GsonUtil.jsonFromObject(parameter));
adasProvider.sendWsMessage(GsonUtil.jsonFromObject(parameter));
} catch (Exception e) {
e.printStackTrace();
@@ -710,7 +721,6 @@ public class MogoADASController implements IMogoADASController {
String value = GsonUtil.jsonFromObject(o.getResult());
SharedPrefsMgr.getInstance(context).putString("CAR_MODEL_LIST", value);
if (value != null && !value.isEmpty()) {
//AutopilotServiceManage.getInstance().settingCarModelListInfo(value);
adasProvider.settingCarModelListInfo(value);
}
}
@@ -733,7 +743,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void release() {
mIsReleased = true;
//AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutopolitDataCallBack );
adasProvider.removeAdasEventListener(mAdasDataListener);
adasProvider.removeAdasStatusListener();
//AutopilotServiceManage.getInstance().release();
@@ -812,6 +821,24 @@ public class MogoADASController implements IMogoADASController {
mMogoAdasRecognizedDataCallbacks.remove(callback);
}
@Override
public void addAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack) {
if (callBack == null) {
return;
}
if (!mMogoAdasRouteCallBacks.contains(callBack)) {
mMogoAdasRouteCallBacks.add(callBack);
}
}
@Override
public void removeAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack) {
if (callBack == null) {
return;
}
mMogoAdasRouteCallBacks.remove(callBack);
}
@Override
public void setAdasCarDataCallback(IMogoAdasCarDataCallback carDataCallback) {
mMogoAdasCarDataCallback = carDataCallback;
@@ -846,7 +873,6 @@ public class MogoADASController implements IMogoADASController {
}
int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE;
try {
//status = AutopilotServiceManage.getInstance().autopilotStateCall().getState();
status = adasProvider.autopilotStateCall().getState();
} catch (Exception e) {
e.printStackTrace();
@@ -872,12 +898,7 @@ public class MogoADASController implements IMogoADASController {
@Override
public void cancelAutopilot() {
//try {
//AutopilotServiceManage.getInstance().cancelAutopilot();
adasProvider.cancelPilot();
//} catch (RemoteException e) {
// e.printStackTrace();
//}
adasProvider.cancelPilot();
}
@Override