diff --git a/modules/mogo-module-adas/build.gradle b/modules/mogo-module-adas/build.gradle
index dd802e716d..75fa6cc4e6 100644
--- a/modules/mogo-module-adas/build.gradle
+++ b/modules/mogo-module-adas/build.gradle
@@ -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)) {
diff --git a/modules/mogo-module-adas/src/main/AndroidManifest.xml b/modules/mogo-module-adas/src/main/AndroidManifest.xml
index 592a5f5be0..e6c2b1f20c 100644
--- a/modules/mogo-module-adas/src/main/AndroidManifest.xml
+++ b/modules/mogo-module-adas/src/main/AndroidManifest.xml
@@ -2,4 +2,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasAutoPilotManager.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasAutoPilotManager.java
index 6fdbfda35e..925a22e85d 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasAutoPilotManager.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasAutoPilotManager.java
@@ -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, 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
+ , 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 ownerCarStateRectList ) {
- }
-}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java
index eeabdf5f0b..97b10ecee2 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java
@@ -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 iAdasEventListeners = new ArrayList<>();
+ private final ArrayList iAdasEventListeners = new ArrayList<>();
private final ArrayList 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(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(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(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;
}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java
index 5288467af5..8c07921128 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java
@@ -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;
* wiki:http://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();
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasApiService.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasApiService.java
deleted file mode 100644
index d1c58c2da9..0000000000
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasApiService.java
+++ /dev/null
@@ -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 updateAutonomousDriveStatus(@Body RequestBody requestBody );
- //站点上报
- @Headers( {"Content-Type:application/json;charset=UTF-8"} )
- @POST( "/yycp-carDataService/autonomousDrive/reportSite" )
- Observable updateReportSite(@Body RequestBody requestBody );
-}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java
new file mode 100644
index 0000000000..a0775e71a3
--- /dev/null
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java
@@ -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 ownerCarStateRectList ) {
+ }
+}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportDispatchResult.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportDispatchResult.java
new file mode 100644
index 0000000000..b124381df5
--- /dev/null
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportDispatchResult.java
@@ -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 +
+ '}';
+ }
+}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportedRoute.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportedRoute.java
new file mode 100644
index 0000000000..850473685e
--- /dev/null
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportedRoute.java
@@ -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 + "}";
+
+ }
+
+
+}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/model/AdasServiceModel.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/model/AdasServiceModel.java
new file mode 100644
index 0000000000..ce1543c1d6
--- /dev/null
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/model/AdasServiceModel.java
@@ -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 map = new HashMap<>();
+ map.put("sn", sn);
+ map.put("reportedRoute", reportedRoute);
+ mAdasApiService.uploadAutopilotState(map)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl(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 list) {
+ String sn = MoGoAiCloudClientConfig.getInstance().getSn();
+ ReportedRoute reportedRoute = new ReportedRoute(sn, Arrays.toString(list.toArray()));
+ Map map = new HashMap<>();
+ map.put("sn", sn);
+ map.put("reportedRoute", reportedRoute);
+ mAdasApiService.uploadAutopilotRoute(map)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl(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 map = new HashMap<>();
+ map.put("sn", sn);
+ map.put("reportDispatchResult", reportDispatchResult);
+ mAdasApiService.uploadDispatchResult(map)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl(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);
+ }
+ });
+ }
+
+}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/network/IAdasApiService.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/network/IAdasApiService.java
new file mode 100644
index 0000000000..8d54f6cb2f
--- /dev/null
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/network/IAdasApiService.java
@@ -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 updateAutonomousDriveStatus(@Body RequestBody requestBody);
+
+ //站点上报 用于网约车业务
+ @Headers({"Content-Type:application/json;charset=UTF-8"})
+ @POST("/yycp-carDataService/autonomousDrive/reportSite")
+ Observable updateReportSite(@Body RequestBody requestBody);
+
+ /**
+ * 上报自动驾驶状态 服务于业务调度
+ *
+ * @param parameters map
+ * @return {@link BaseData}
+ */
+ @FormUrlEncoded
+ @POST("/dataService/autoDriver/receiveAutopilotState")
+ Observable uploadAutopilotState(Map parameters);
+
+ /**
+ * 上报自动驾驶路径 服务于业务调度
+ *
+ * @param parameters map
+ * @return {@link BaseData}
+ */
+ @FormUrlEncoded
+ @POST("/dataService/autoDriver/receiveCarPreSetPath")
+ Observable uploadAutopilotRoute(Map parameters);
+
+ /**
+ * 上报自动驾驶调度处理结果 服务于业务调度
+ *
+ * @param parameters map
+ * @return {@link BaseData}
+ */
+ @FormUrlEncoded
+ @POST("")
+ Observable uploadDispatchResult(Map parameters);
+}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/receiver/AdasTestPanelBroadCastReceiver.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/receiver/AdasTestPanelBroadCastReceiver.java
new file mode 100644
index 0000000000..1c9efda496
--- /dev/null
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/receiver/AdasTestPanelBroadCastReceiver.java
@@ -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();
+ }
+ }
+}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/view/DispatchRemindDialog.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/view/DispatchRemindDialog.java
index a2c7c22ae8..1fa94256a0 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/view/DispatchRemindDialog.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/view/DispatchRemindDialog.java
@@ -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);
}
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
index 1439a9389b..079e04204b 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
@@ -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);
+
/**
* 自车定位数据
*
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasRouteCallBack.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasRouteCallBack.java
new file mode 100644
index 0000000000..a0da1cccc2
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasRouteCallBack.java
@@ -0,0 +1,10 @@
+package com.mogo.service.adas;
+
+import com.mogo.map.MogoLatLng;
+
+import java.util.List;
+
+public interface IMogoAdasRouteCallBack {
+
+ void routeResult(List routeList);
+}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
index 126ccc2719..1916ecd3e4 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
@@ -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 mMogoAdasRecognizedDataCallbacks = new CopyOnWriteArrayList<>();
+ /**
+ * 自动驾驶路线回调
+ */
+ private final List mMogoAdasRouteCallBacks = new CopyOnWriteArrayList<>();
+
private IMogoAdasCarDataCallback mMogoAdasCarDataCallback;
private List 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 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