diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt index 38f8466312..703a49d5e7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt @@ -12,7 +12,6 @@ import android.view.WindowManager import android.view.animation.OvershootInterpolator import android.widget.FrameLayout import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.function.hmi.R @@ -46,6 +45,48 @@ class SpeedPanelView @JvmOverloads constructor( var mDebugSettingViewFloat: WarningFloat.Builder? = null init { + setOnLongClickListener { + Log.d(TAG, "长按显示状态工具栏") + context.let { + val debugSettingView = DebugSettingView(it) + + if (mDebugSettingViewFloat != null) { + WarningFloat.dismiss(mDebugSettingViewFloat!!.config.floatTag, false) + mDebugSettingViewFloat = null + } else { + mDebugSettingViewFloat = WarningFloat.with(it) + .setTag("DebugSettingView") + .setLayout(debugSettingView) + .setSidePattern(SidePattern.RIGHT) + .setGravity(Gravity.RIGHT, offsetY = 70) + .setImmersionStatusBar(true) + .setAnimator(object : DefaultAnimator() { + override fun enterAnim( + view: View, + params: WindowManager.LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.enterAnim(view, params, windowManager, sidePattern) + ?.apply { + interpolator = OvershootInterpolator() + } + + override fun exitAnim( + view: View, + params: WindowManager.LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.exitAnim(view, params, windowManager, sidePattern) + ?.setDuration(200) + }) + .show() + } + } + true + } + setBackgroundResource(R.drawable.yi_biao_pan_bg_nor) mContext = context mSpeedChartView = SpeedChartView(context) @@ -58,51 +99,6 @@ class SpeedPanelView @JvmOverloads constructor( mSpeedChartView.layoutParams = layoutParams addView(mSpeedChartView) - if (DebugConfig.isDebug()) { - mSpeedChartView.isLongClickable = true - mSpeedChartView.setOnLongClickListener { - Log.d(TAG, "长按显示状态工具栏") - context.let { - val debugSettingView = DebugSettingView(it) - - if (mDebugSettingViewFloat != null) { - WarningFloat.dismiss(mDebugSettingViewFloat!!.config.floatTag, false) - mDebugSettingViewFloat = null - } else { - mDebugSettingViewFloat = WarningFloat.with(it) - .setTag("DebugSettingView") - .setLayout(debugSettingView) - .setSidePattern(SidePattern.RIGHT) - .setGravity(Gravity.RIGHT, offsetY = 70) - .setImmersionStatusBar(true) - .setAnimator(object : DefaultAnimator() { - override fun enterAnim( - view: View, - params: WindowManager.LayoutParams, - windowManager: WindowManager, - sidePattern: SidePattern - ): Animator? = - super.enterAnim(view, params, windowManager, sidePattern) - ?.apply { - interpolator = OvershootInterpolator() - } - - override fun exitAnim( - view: View, - params: WindowManager.LayoutParams, - windowManager: WindowManager, - sidePattern: SidePattern - ): Animator? = - super.exitAnim(view, params, windowManager, sidePattern) - ?.setDuration(200) - }) - .show() - } - } - true - } - } - // 注册位置回调 mMogoServiceApis.registerCenterApi .registerCarLocationChangedListener(TAG, this) diff --git a/modules/mogo-module-service/build.gradle b/modules/mogo-module-service/build.gradle index f51f32bd73..eef378592e 100644 --- a/modules/mogo-module-service/build.gradle +++ b/modules/mogo-module-service/build.gradle @@ -61,6 +61,7 @@ dependencies { implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-res') + implementation project(':core:mogo-core-utils') implementation project(':core:mogo-core-function-call') } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java index 2c489f05ec..36e6b33a64 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java @@ -18,9 +18,12 @@ import com.mogo.cloud.socket.entity.SocketDownDataHelper; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; +import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.traffic.TrafficData; +import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.navi.IMogoNaviListener; @@ -35,12 +38,12 @@ import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.constants.DataTypes; import com.mogo.module.common.datacenter.SnapshotLocationDataCenter; import com.mogo.module.common.dialog.WMDialog; +import com.mogo.module.common.drawer.IdentifyDataDrawer; import com.mogo.module.common.drawer.SnapshotSetDataDrawer; import com.mogo.module.service.MarkerServiceHandler; import com.mogo.module.service.R; import com.mogo.module.service.status.EnvStatusManager; import com.mogo.module.service.timedelay.TimeDelayUploadManager; -import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo; import com.mogo.service.entrance.ButtonIndex; import com.mogo.utils.TipToast; import com.mogo.utils.WorkThreadHandler; @@ -905,17 +908,26 @@ public class MockIntentHandler implements IntentHandler { } } - List allList = new ArrayList<>(); + List trafficData = new ArrayList<>(); for (BufferedReader reader : readers) { String line = reader.readLine(); TrafficData adasRecognizedResult = GsonUtil.objectFromJson(line, TrafficData.class); if (adasRecognizedResult != null) { - allList.add(adasRecognizedResult); + trafficData.add(adasRecognizedResult); } } - MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockAdasRecognized(allList); - Log.i("mock-timer-adas", "cost " + (System.currentTimeMillis() - start) + "ms"); + try { + if (FunctionBuildConfig.isDrawIdentifyData) { + ThreadUtils.getSinglePool().execute(() -> + IdentifyDataDrawer.getInstance().renderAdasRecognizedResult(trafficData) + ); + } else { + IdentifyDataDrawer.getInstance().clearOldMarker(); + } + } catch (Exception e) { + e.printStackTrace(); + } return true; } @@ -932,17 +944,26 @@ public class MockIntentHandler implements IntentHandler { } } - List allList = new ArrayList<>(); + List trafficData = new ArrayList<>(); for (BufferedReader reader : readers2) { String line = reader.readLine(); TrafficData adasRecognizedResult = GsonUtil.objectFromJson(line, TrafficData.class); if (adasRecognizedResult != null) { - allList.add(adasRecognizedResult); + trafficData.add(adasRecognizedResult); } } - MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockAdasRecognized(allList); - Log.i("mock-timer-adas", "cost " + (System.currentTimeMillis() - start) + "ms"); + try { + if (FunctionBuildConfig.isDrawIdentifyData) { + ThreadUtils.getSinglePool().execute(() -> + IdentifyDataDrawer.getInstance().renderAdasRecognizedResult(trafficData) + ); + } else { + IdentifyDataDrawer.getInstance().clearOldMarker(); + } + } catch (Exception e) { + e.printStackTrace(); + } return true; } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 43a5d79d64..876522bd4c 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -173,32 +173,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, DebugConfig.setStatus(DebugConfig.sDownloadLink, false); } }); - - // adas 每隔一定频率传递过来的数据 - MarkerServiceHandler.getApis().getAdasControllerApi().addAdasRecognizedDataCallback(resultList -> { - // Message msg = mSnapshotHandler.obtainMessage(); - // msg.obj = resultList; - // msg.what = MSG_ADAS; - // msg.sendToTarget(); - // 使用与渠道配置一样的gps提供者提供的数据 修改fPadLenovo.gradle文件中的GPS_PROVIDER字段控制渲染来源 - Logger.d(TAG, "result.addAdasRecognizedDataCallback == 3 ------> "); - if (FunctionBuildConfig.isDrawIdentifyData) { - IdentifyDataDrawer.getInstance().renderAdasRecognizedResult(resultList); - } - - //添加自车的定位图标,碰撞只有一个预警,还需要和adas 联调, - // for ( ADASRecognizedResult result : resultList) { - // if (result.drawlevel == 3) { //找出可能碰撞的车 - // Logger.d("liyz", "result.drawlevel == 3 ------> "); - //// 绘制他车的线,从列表中查出可能碰撞的车的经纬度(没有或者只有一个),然后预设20米的长度 - //// 绘制碰撞的他车指引线,需要实时给数据更新 TODO - // drawLimberCollisionPolyline(result); - // //通过这个传值到 AMapViewWrapper,根据数据更新自车的模型数据 - // MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().setAdasRecognizedResult(result.drawlevel); - // } - // } - - }); } 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 6aff8eef3c..6b8a085a7e 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 @@ -87,20 +87,6 @@ public interface IMogoADASController extends IProvider { */ void removeAdasWarnMessageCallback(IMogoAdasWarnMessageCallback callback); - /** - * 添加adas识别物体回调 - * - * @param callback - */ - void addAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback); - - /** - * 移除adas识别物体回调 - * - * @param callback - */ - void removeAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback); - /** * 添加adas自动驾驶路线回调 * @@ -183,6 +169,4 @@ public interface IMogoADASController extends IProvider { */ void cancelAutopilot(); - void mockAdasRecognized(List recognizedResults); - } 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 2fb376ee2c..fd99053cad 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,7 +5,6 @@ import android.content.Context; import android.content.Intent; import android.os.Handler; import android.os.Message; -import android.util.Log; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; @@ -29,7 +28,6 @@ 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.impl.singleton.SingletonsHolder; @@ -48,7 +46,6 @@ import org.json.JSONObject; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.TimeUnit; @Route(path = MogoServicePaths.PATH_ADAS_CONTROLLER) public class MogoADASController implements IMogoADASController { @@ -79,11 +76,6 @@ public class MogoADASController implements IMogoADASController { */ private final List mMogoAdasWarnMessageCallbackList = new CopyOnWriteArrayList<>(); - /** - * adas 识别物体回调 - */ - private final List mMogoAdasRecognizedDataCallbacks = new CopyOnWriteArrayList<>(); - /** * 自动驾驶路线回调 */ @@ -117,21 +109,6 @@ public class MogoADASController implements IMogoADASController { private final List mAdasOCHCallback = new CopyOnWriteArrayList<>(); - /** - * 接收 adas 识别数据线程 - */ - private final Handler mAdasRecognizedRecHandler = new Handler(WorkThreadHandler.newInstance("AdasRecognizedRecThread").getLooper()) { - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - if (msg.obj instanceof List) { - handleAdasRecognizedData((List) msg.obj); - } else if (msg.obj == null) { - handleAdasRecognizedData(null); - } - } - }; - /** * 接收 adas 定位数据线程 */ @@ -163,30 +140,6 @@ public class MogoADASController implements IMogoADASController { } }; - /** - * 处理数据 - * - * @param models - */ - private void handleAdasRecognizedData(List models) { - if (models == null - || models.isEmpty()) { - invokeCallbackPerSecond(null); - return; - } - invokeCallbackPerSecond(models); - } - - private void invokeCallbackPerSecond(List models) { - if (!mMogoAdasRecognizedDataCallbacks.isEmpty()) { - for (IMogoAdasRecognizedDataCallback callback : mMogoAdasRecognizedDataCallbacks) { - if (callback == null) { - continue; - } - callback.onAdasDataCallback(models); - } - } - } @Override public void openADAS() { @@ -488,24 +441,6 @@ public class MogoADASController implements IMogoADASController { mMogoAdasWarnMessageCallbackList.remove(callback); } - @Override - public void addAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback) { - if (callback == null) { - return; - } - if (!mMogoAdasRecognizedDataCallbacks.contains(callback)) { - mMogoAdasRecognizedDataCallbacks.add(callback); - } - } - - @Override - public void removeAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback) { - if (callback == null) { - return; - } - mMogoAdasRecognizedDataCallbacks.remove(callback); - } - @Override public void addAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack) { if (callBack == null) { @@ -598,19 +533,6 @@ public class MogoADASController implements IMogoADASController { public void cancelAutopilot() { adasProvider.cancelPilot(); } - - @Override - public void mockAdasRecognized(List recognizedResults) { - if (!mMogoAdasRecognizedDataCallbacks.isEmpty()) { - for (IMogoAdasRecognizedDataCallback callback : mMogoAdasRecognizedDataCallbacks) { - if (callback == null) { - continue; - } - callback.onAdasDataCallback(recognizedResults); - } - } - } - }