@@ -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)
|
||||
|
||||
@@ -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')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
// }
|
||||
// }
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user