diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasDataListener.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasDataListener.java index f32aa8f0f3..fff4dfc621 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasDataListener.java +++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasDataListener.java @@ -20,6 +20,7 @@ import java.util.List; * Created by XuYong on 2021/4/25 16:52 */ public abstract class AdasDataListener { + public void sendMsg( String msg ) { } @@ -54,40 +55,4 @@ public abstract class AdasDataListener { public void notifyOwnerCarRect( List ownerCarStateRectList ) { } -/* - public void onWarnMessage(WarnMessageInfo warnMessageInfo) { - - }; - - public void onVideoSize(int width, int height) { - - }; - - public void onRectData(RectInfo rectInfo) { - - }; - - public void onCarStateData(CarStateInfo carStateInfo){ - - }; - - public void onLightStateData(LightStatueInfo lightStatueInfo){ - - }; - - public void onObstaclesInfo(ObstaclesInfo obstaclesInfo) { - - }; - - public void onCarLaneInfo(CarLaneInfo carLaneInfo) { - - }; - - public void autopilotStatus(AutopilotStatus autopilotStatus) { - - }; - - public void autopilotArrive(AutopilotWayArrive autopilotWayArrive) { - - };*/ } 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 1e57e4f15d..4068ba4914 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 @@ -96,6 +96,8 @@ public class MogoADASController implements IMogoADASController { //private IAutopolitDataCallBack mAutopolitDataCallBack; private AdasDataListener mAdasDataListener; + private AdasProvider adasProvider; + /** * 获取adas前车距离 @@ -299,7 +301,6 @@ public class MogoADASController implements IMogoADASController { } Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); init( AbsMogoApplication.getApp() ); - AdasProvider adasProvider = ARouter.getInstance().navigation(AdasProvider.class); adasProvider.addAdaStatusListener(new AdasStatusListener() { @Override public void onServiceConnected() { @@ -312,165 +313,8 @@ public class MogoADASController implements IMogoADASController { super.onServiceDisconnected(); } }); - /*AutopilotServiceManage.getInstance().registerAutopilotServiceStatusListener( new IAutopilotServiceStatusListener() { - @Override - public void onServiceConnected() { - invokeShowADASOperation(); - } - - @Override - public void onServiceDisconnected() { - - } - } );*/ invokeShowADASOperation(); - /* - if ( mAutopolitDataCallBack == null ) { - mAutopolitDataCallBack = new IAutopolitDataCallBack() { - @Override - public void sendMsg( String msg ) { - for ( IMogoAdasDataCallback callback : mAdasDataCallbackList ) { - try { - callback.onAdasDataCallback( msg ); - } catch ( Exception e ) { - Logger.e( TAG, e, "sendMsg" ); - } - } - } - - @Override - public void cameraEyeDetectResult( String detectResult ) { - - try { - JSONObject jsonObjectWs = new JSONObject( detectResult ); - String action = jsonObjectWs.optString( "action" ); - if ( TextUtils.isEmpty( action ) ) { - Logger.w( TAG, "--->action is null" ); - return; - } - //识别的他车移动操作 - mAdasMessageFactory.createMessage( action ).handlerMsg( GsonUtil.getGson(), mOnAdasListener, detectResult ); - } catch ( JSONException e ) { - e.printStackTrace(); - } - } - - @Override - public void selectCarModelUrl( String carStyleUrl ) { - Logger.d( TAG, "selectCarModelUrl: " + carStyleUrl ); - needEmphasizeMyLocation = true; - // 修改自车图标展示 - SharedPrefsMgr.getInstance( context ).putString( "MY_LOCATION_CONFIG", carStyleUrl ); - SingletonsHolder.get( IMogoDataManager.class ).syncData( "ADAS", carStyleUrl ); - } - - @Override - public void requestGetCarModelListInfo() { - if ( DebugConfig.isMapBased() ) { - Logger.d( TAG, "requestGetCarModelListInfo" ); - // 向adas发送车模list - String carModelList = SharedPrefsMgr.getInstance( context ).getString( "CAR_MODEL_LIST", "" ); - if ( carModelList != null && !carModelList.isEmpty() ) { - AutopilotServiceManage.getInstance().settingCarModelListInfo( carModelList ); - } - // 此处进行网络请求,请求成功后再通知一次adas - requestCarModelList(); - } - } - - @Override - public void clickSettingBack() { - if ( needEmphasizeMyLocation ) { - SingletonsHolder.get( IMogoDataManager.class ).syncData( "ADAS", null ); - } - needEmphasizeMyLocation = false; - - useTestSn = !useTestSn; - } - - @Override - public void showToast( String msg ) { - UiThreadHandler.post( () -> TipToast.tip( msg ) ); - } - - @Override - public void autopilotArrive( AdasAIDLAutopilotArriveModel autopilotArriveModel ) { - if ( autopilotArriveModel == null ) { - return; - } - if ( mAdasOCHCallback != null ) { - mAdasOCHCallback.onArriveAt( new AdasOCHData( - autopilotArriveModel.getCarType(), - autopilotArriveModel.getLon(), - autopilotArriveModel.getLat() ) - ); - } - } - - @Override - public void ownerCarStateInfo( String ownerCarStateInfo ) { - Message message = mAdasLocationRecHandler.obtainMessage(); - message.obj = ownerCarStateInfo; - message.sendToTarget(); - } - - @Override - public void notifyOwnerCarState( AdasAIDLOwnerCarStateModel ownerCarStateModel ) { - ADASCarStateInfo stateInf = new ADASCarStateInfo(); - stateInf.setAction( "state" ); - ADASCarStateInfo.ValuesBean bean = new ADASCarStateInfo.ValuesBean(); - bean.setSatelliteTime( ownerCarStateModel.getSatelliteTime() ); - bean.setAcceleration( ownerCarStateModel.getAcceleration() ); - bean.setAlt( ownerCarStateModel.getAlt() ); - bean.setGnss_speed( ownerCarStateModel.getGnss_speed() ); - bean.setHeading( ownerCarStateModel.getHeading() ); - bean.setLat( ownerCarStateModel.getLat() ); - bean.setLon( ownerCarStateModel.getLon() ); - bean.setReceiverDataTime( ownerCarStateModel.getReceiverDataTime() ); - bean.setSystemTime( ownerCarStateModel.getSystemTime() ); - bean.setYaw_rate( ownerCarStateModel.getYaw_rate() ); - stateInf.setValues( bean ); - mLastLon = ownerCarStateModel.getLon(); - mLastLat = ownerCarStateModel.getLat(); - mSpeed = ownerCarStateModel.getGnss_speed(); - if ( mMogoAdasCarDataCallback != null ) { - mMogoAdasCarDataCallback.onAdasCarDataCallback( stateInf ); - } - } - - @Override - public void notifyAutopilotState( AdasAIDLAutopilotStateModel autopilotStateModel ) { - Logger.d( TAG, "notifyAutopilotState: " + autopilotStateModel ); - DebugConfig.setAutoPilotStatus( autopilotStateModel.getState() + "" ); - if ( mAdasOCHCallback != null ) { - mAdasOCHCallback.onStateChanged( autopilotStateModel.getState(), autopilotStateModel.getReason() ); - } - } - - @Override - public void notifyOwnerCarRect( List< AdasAIDLOwnerCarRectModel > ownerCarStateRectList ) { - // 物体识别返回 - Logger.d( TAG, "ADAS-REC-received data: size = %s", ownerCarStateRectList == null ? 0 : ownerCarStateRectList.size() ); - final long start = System.currentTimeMillis(); - // 仅在 vr 模式下显示 adas 识别车辆 - if ( !SingletonsHolder.get( IMogoStatusManager.class ).isVrMode() ) { - return; - } - if ( !SingletonsHolder.get( IMogoStatusManager.class ).isMainPageLaunched() ) { - return; - } - try { - handleAdasRecognizedData( ownerCarStateRectList ); - } catch ( Exception e ) { - e.printStackTrace(); - } - Logger.i( "ADAS-REC-timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); - } - }; - AutopilotServiceManage.getInstance().registerAutopilotDataListener( mAutopolitDataCallBack ); - */ - if ( mAdasDataListener == null ) { mAdasDataListener = new AdasDataListener() { @Override @@ -708,6 +552,7 @@ public class MogoADASController implements IMogoADASController { AutopilotServiceManage.getInstance().init( context ); mIsReleased = false; mAdasMessageFactory = new MyMessageFactory(); + adasProvider = ARouter.getInstance().navigation(AdasProvider.class); this.context = context; } @@ -840,6 +685,7 @@ public class MogoADASController implements IMogoADASController { public void release() { mIsReleased = true; //AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutopolitDataCallBack ); + adasProvider.removeAdasEventListener(mAdasDataListener); AutopilotServiceManage.getInstance().release(); }