删除旧版本的感知数据绘制

Signed-off-by: 董宏宇 <martindhy@gmail.com>
This commit is contained in:
董宏宇
2021-10-20 14:56:32 +08:00
parent d803c7897d
commit a8d8e19f67
6 changed files with 73 additions and 175 deletions

View File

@@ -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)

View File

@@ -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')
}
}

View File

@@ -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<TrafficData> allList = new ArrayList<>();
List<TrafficData> 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<TrafficData> allList = new ArrayList<>();
List<TrafficData> 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;
}

View File

@@ -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);
// }
// }
});
}

View File

@@ -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<TrafficData> recognizedResults);
}

View File

@@ -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<IMogoAdasWarnMessageCallback> mMogoAdasWarnMessageCallbackList = new CopyOnWriteArrayList<>();
/**
* adas 识别物体回调
*/
private final List<IMogoAdasRecognizedDataCallback> mMogoAdasRecognizedDataCallbacks = new CopyOnWriteArrayList<>();
/**
* 自动驾驶路线回调
*/
@@ -117,21 +109,6 @@ public class MogoADASController implements IMogoADASController {
private final List<IMogoAdasOCHCallback> 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<TrafficData>) 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<TrafficData> models) {
if (models == null
|| models.isEmpty()) {
invokeCallbackPerSecond(null);
return;
}
invokeCallbackPerSecond(models);
}
private void invokeCallbackPerSecond(List<TrafficData> 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<TrafficData> recognizedResults) {
if (!mMogoAdasRecognizedDataCallbacks.isEmpty()) {
for (IMogoAdasRecognizedDataCallback callback : mMogoAdasRecognizedDataCallbacks) {
if (callback == null) {
continue;
}
callback.onAdasDataCallback(recognizedResults);
}
}
}
}