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 babc4987fe..d4b8b69e37 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,5 +1,7 @@ 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; @@ -52,6 +54,8 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL //自动驾驶车速度 private float mCurrentAutopilotSpeed = 0; private Disposable mdDisposable; + //自动驾驶状态 + private AutopilotStatus.ValuesBean mAutopilotStatus = null; public AdasEventManager() { gson = GsonUtil.getGson(); @@ -88,6 +92,11 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL } } + public void removeStatusListener() { + Logger.d(TAG,"注销adas状态事件监听"); + iAdasStatusListeners.clear(); + } + @Override public void onWarnMessage(WarnMessageInfo warnMessageInfo) { Logger.d(TAG,"onWarnMessage " + warnMessageInfo); @@ -298,4 +307,14 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL } }); } + + public AdasAIDLAutopilotStateModel autopilotStateCall() { + AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel(); + if (mAutopilotStatus != null) { + adasAIDLAutopilotStateModel.setSpeed(mAutopilotStatus.getSpeed()); + adasAIDLAutopilotStateModel.setState(mAutopilotStatus.getState()); + adasAIDLAutopilotStateModel.setReason(mAutopilotStatus.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 fb19aafb94..4809eac748 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 @@ -6,6 +6,8 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.template.IProvider; import com.mogo.service.MogoServicePaths; import com.mogo.utils.logger.Logger; +import com.zhidao.autopilot.support.api.AutopilotServiceManage; +import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel; import com.zhidao.support.adas.high.AdasManager; @@ -51,6 +53,10 @@ public class AdasProvider implements IProvider { adasEventManager.removeStatusListener(listener); } + public void removeAdasStatusListener() { + adasEventManager.removeStatusListener(); + } + public void sendWsMessage(String msg) { AdasManager.getInstance().aiCloudToAdasData(msg); } @@ -60,4 +66,33 @@ public class AdasProvider implements IProvider { AdasManager.getInstance().controlAutopilotCarHead(); } } + + public void hideAdas() { + + } + + public void showAdas() { + + } + + public void killAdas() { + + } + + //原ADAS sdk中为空实现 + public void settingCarModelListInfo(String msg) { + + } + + //原ADAS sdk中为空实现 + public void setSettingStatus(boolean show) { + } + + //原ADAS sdk中为空实现 + public void setUseAlgorithm(boolean open) { + } + + public AdasAIDLAutopilotStateModel autopilotStateCall() { + return adasEventManager.autopilotStateCall(); + } } 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 edfa5c7f2e..6c1bcce43e 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 @@ -5,10 +5,8 @@ import android.content.Context; import android.content.Intent; import android.os.Handler; import android.os.Message; -import android.os.RemoteException; import android.text.TextUtils; import android.util.Log; -import android.widget.Toast; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; @@ -48,7 +46,6 @@ import com.zhidao.adasconfig.api.AdasConfigApiController; import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode; import com.zhidao.adasconfig.common.config.EnumCarHeading; import com.zhidao.adasconfig.common.config.EnumSkinStyle; -import com.zhidao.autopilot.support.api.AutopilotServiceManage; import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel; import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel; import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel; @@ -302,7 +299,8 @@ public class MogoADASController implements IMogoADASController { @Override public void killADAS() { try { - AutopilotServiceManage.getInstance().kill(); + //AutopilotServiceManage.getInstance().kill(); + adasProvider.killAdas(); } catch (Exception e) { } @@ -403,7 +401,8 @@ 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); + //AutopilotServiceManage.getInstance().settingCarModelListInfo(carModelList); + adasProvider.settingCarModelListInfo(carModelList); } // 此处进行网络请求,请求成功后再通知一次adas requestCarModelList(); @@ -547,7 +546,8 @@ public class MogoADASController implements IMogoADASController { } try { - AutopilotServiceManage.getInstance().showAdas(); + //AutopilotServiceManage.getInstance().showAdas(); + adasProvider.showAdas(); } catch (Exception e) { Intent intent = new Intent(ACTION); intent.putExtra(PARAM_COMMAND, VAL_COMMAND); @@ -570,7 +570,8 @@ public class MogoADASController implements IMogoADASController { Logger.d(TAG, "close adas"); try { - AutopilotServiceManage.getInstance().hideAdas(); + //AutopilotServiceManage.getInstance().hideAdas(); + adasProvider.hideAdas(); } catch (Exception e) { Intent intent = new Intent(ACTION); intent.putExtra(PARAM_COMMAND, VAL_COMMAND); @@ -599,7 +600,7 @@ public class MogoADASController implements IMogoADASController { @Override public void init(Context context) { - AutopilotServiceManage.getInstance().init(context); + //AutopilotServiceManage.getInstance().init(context); mIsReleased = false; mAdasMessageFactory = new MyMessageFactory(); adasProvider = ARouter.getInstance().navigation(AdasProvider.class); @@ -608,12 +609,14 @@ public class MogoADASController implements IMogoADASController { @Override public void setSettingStatus(boolean show) { - AutopilotServiceManage.getInstance().setSettingStatus(show); + //AutopilotServiceManage.getInstance().setSettingStatus(show); + adasProvider.setSettingStatus(show); } @Override public void setUseAlgorithm(boolean open) { - AutopilotServiceManage.getInstance().setUseAlgorithm(open); + //AutopilotServiceManage.getInstance().setUseAlgorithm(open); + adasProvider.setUseAlgorithm(open); } @Override @@ -707,7 +710,8 @@ 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); + //AutopilotServiceManage.getInstance().settingCarModelListInfo(value); + adasProvider.settingCarModelListInfo(value); } } @@ -731,7 +735,8 @@ public class MogoADASController implements IMogoADASController { mIsReleased = true; //AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutopolitDataCallBack ); adasProvider.removeAdasEventListener(mAdasDataListener); - AutopilotServiceManage.getInstance().release(); + adasProvider.removeAdasStatusListener(); + //AutopilotServiceManage.getInstance().release(); } @Override @@ -841,7 +846,8 @@ public class MogoADASController implements IMogoADASController { } int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE; try { - status = AutopilotServiceManage.getInstance().autopilotStateCall().getState(); + //status = AutopilotServiceManage.getInstance().autopilotStateCall().getState(); + status = adasProvider.autopilotStateCall().getState(); } catch (Exception e) { e.printStackTrace(); }