finish the route search and wait to finish interface

This commit is contained in:
zhongchao
2021-06-23 16:01:00 +08:00
parent 7718f6b218
commit 0a8c361153
18 changed files with 695 additions and 246 deletions

View File

@@ -129,6 +129,18 @@ public interface IMogoADASController extends IProvider {
*/
void removeAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback);
/**
* 添加adas自动驾驶路线回调
* @param callBack
*/
void addAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack);
/**
* 移除adas自动驾驶路线回调
* @param callBack
*/
void removeAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack);
/**
* 自车定位数据
*

View File

@@ -0,0 +1,10 @@
package com.mogo.service.adas;
import com.mogo.map.MogoLatLng;
import java.util.List;
public interface IMogoAdasRouteCallBack {
void routeResult(List<MogoLatLng> routeList);
}

View File

@@ -14,16 +14,18 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.map.MogoLatLng;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.adas.AdasDataListener;
import com.mogo.module.adas.AdasProvider;
import com.mogo.module.adas.AdasStatusListener;
import com.mogo.module.adas.IAdasDataListener;
import com.mogo.service.MogoServicePaths;
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.adas.RemoteControlAutoPilotParameters;
import com.mogo.service.adas.entity.ADASCarStateInfo;
@@ -47,12 +49,11 @@ import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
import com.zhidao.adasconfig.common.config.EnumCarHeading;
import com.zhidao.adasconfig.common.config.EnumSkinStyle;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarStateModel;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.BasicInfo;
import com.zhidao.support.adas.high.bean.AutopilotRoute;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import com.zhidao.support.adas.high.msg.MyMessageFactory;
@@ -93,8 +94,7 @@ public class MogoADASController implements IMogoADASController {
private boolean mIsReleased = true;
//private IAutopolitDataCallBack mAutopolitDataCallBack;
private AdasDataListener mAdasDataListener;
private IAdasDataListener mAdasDataListener;
private AdasProvider adasProvider;
@@ -113,6 +113,11 @@ public class MogoADASController implements IMogoADASController {
*/
private final List<IMogoAdasRecognizedDataCallback> mMogoAdasRecognizedDataCallbacks = new CopyOnWriteArrayList<>();
/**
* 自动驾驶路线回调
*/
private final List<IMogoAdasRouteCallBack> mMogoAdasRouteCallBacks = new CopyOnWriteArrayList<>();
private IMogoAdasCarDataCallback mMogoAdasCarDataCallback;
private List<AdasAIDLOwnerCarRectModel> mLastFrameDatums;
@@ -142,7 +147,6 @@ public class MogoADASController implements IMogoADASController {
final long start = System.currentTimeMillis();
ADASCarStateInfo stateInfo = GsonUtil.objectFromJson(((String) msg.obj), ADASCarStateInfo.class);
if (stateInfo == null || stateInfo.getValues() == null) {
Logger.d(TAG, "ADAS-LOC-timer", "upd 到 aidl 传输数据 stateInfo or stateInfo.getValues() is null");
@@ -233,7 +237,7 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void onAutopilotRoute(String route) {
public void onAutopilotRoute(AutopilotRoute autopilotRoute) {
}
@@ -299,7 +303,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void killADAS() {
try {
//AutopilotServiceManage.getInstance().kill();
adasProvider.killAdas();
} catch (Exception e) {
@@ -311,10 +314,10 @@ public class MogoADASController implements IMogoADASController {
private void testOCH() {
RemoteControlAutoPilotParameters currentAutopilot = new RemoteControlAutoPilotParameters();
currentAutopilot.isSpeakVoice = true;
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 0, 1 );
currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 2, 3 );
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(0, 1);
currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(2, 3);
currentAutopilot.vehicleType = 10;
Logger.d( TAG, "开启自动驾驶====" + currentAutopilot );
Logger.d(TAG, "开启自动驾驶====" + currentAutopilot);
aiCloudToAdasData(currentAutopilot);
}
@@ -326,19 +329,17 @@ public class MogoADASController implements IMogoADASController {
return;
}
}
if (SingletonsHolder.get(IMogoStatusManager.class).isVrMode()) {
return;
}
// if (SingletonsHolder.get(IMogoStatusManager.class).isVrMode()) {
// return;
// }
Logger.d(TAG, Log.getStackTraceString(new Throwable()));
init(AbsMogoApplication.getApp());
adasProvider.addAdasStatusListener(new AdasStatusListener() {
@Override
public void onServiceConnected() {
super.onServiceConnected();
Logger.d( TAG, "adas statuslistener connected & send sn");
BasicInfo info=new BasicInfo();
info.setSn(MoGoAiCloudClientConfig.getInstance().getSn());
AdasManager.getInstance().setBasicInfo(info);
Logger.d(TAG, "adas statusListener connected & send sn");
adasProvider.setBasicInfo();
invokeShowADASOperation();
//测试网约车
@@ -354,7 +355,7 @@ public class MogoADASController implements IMogoADASController {
invokeShowADASOperation();
if (mAdasDataListener == null) {
mAdasDataListener = new AdasDataListener() {
mAdasDataListener = new IAdasDataListener() {
@Override
public void sendMsg(String msg) {
Logger.d(TAG, "adas AdasDataListener sendmsg " + msg);
@@ -401,7 +402,6 @@ 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);
adasProvider.settingCarModelListInfo(carModelList);
}
// 此处进行网络请求请求成功后再通知一次adas
@@ -439,6 +439,23 @@ public class MogoADASController implements IMogoADASController {
}
}
@Override
public void autopilotRoute(AutopilotRoute autopilotRoute) {
if (autopilotRoute.getModels() == null || autopilotRoute.getModels().size() == 0) {
return;
}
List<MogoLatLng> latLngList = new ArrayList<>();
for (AutopilotRoute.RouteModels routeModel : autopilotRoute.getModels()) {
latLngList.add(new MogoLatLng(routeModel.getLat(), routeModel.getLon()));
}
for (IMogoAdasRouteCallBack callback : mMogoAdasRouteCallBacks) {
if (callback == null) {
continue;
}
callback.routeResult(latLngList);
}
}
@Override
public void ownerCarStateInfo(String ownerCarStateInfo) {
Logger.d(TAG, "ownerCarStateInfo " + ownerCarStateInfo);
@@ -473,11 +490,11 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void notifyAutopilotState(AdasAIDLAutopilotStateModel autopilotStateModel) {
Logger.d(TAG, "notifyAutopilotState: " + autopilotStateModel);
DebugConfig.setAutoPilotStatus(autopilotStateModel.getState() + "");
public void notifyAutopilotState(AutopilotStatus autopilotStatus) {
Logger.d(TAG, "notifyAutopilotState: " + autopilotStatus);
DebugConfig.setAutoPilotStatus(autopilotStatus.getValues().getState() + "");
if (mAdasOCHCallback != null) {
mAdasOCHCallback.onStateChanged(autopilotStateModel.getState(), autopilotStateModel.getReason());
mAdasOCHCallback.onStateChanged(autopilotStatus.getValues().getState(), autopilotStatus.getValues().getReason());
}
}
@@ -546,7 +563,6 @@ public class MogoADASController implements IMogoADASController {
}
try {
//AutopilotServiceManage.getInstance().showAdas();
adasProvider.showAdas();
} catch (Exception e) {
Intent intent = new Intent(ACTION);
@@ -570,7 +586,6 @@ public class MogoADASController implements IMogoADASController {
Logger.d(TAG, "close adas");
try {
//AutopilotServiceManage.getInstance().hideAdas();
adasProvider.hideAdas();
} catch (Exception e) {
Intent intent = new Intent(ACTION);
@@ -600,7 +615,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void init(Context context) {
//AutopilotServiceManage.getInstance().init(context);
mIsReleased = false;
mAdasMessageFactory = new MyMessageFactory();
adasProvider = ARouter.getInstance().navigation(AdasProvider.class);
@@ -609,13 +623,11 @@ public class MogoADASController implements IMogoADASController {
@Override
public void setSettingStatus(boolean show) {
//AutopilotServiceManage.getInstance().setSettingStatus(show);
adasProvider.setSettingStatus(show);
}
@Override
public void setUseAlgorithm(boolean open) {
//AutopilotServiceManage.getInstance().setUseAlgorithm(open);
adasProvider.setUseAlgorithm(open);
}
@@ -687,7 +699,6 @@ public class MogoADASController implements IMogoADASController {
AdasControlCommandParameter parameter = new AdasControlCommandParameter(action, result);
//位置信息 action是aiCloudToStartAutopilot
try {
//AutopilotServiceManage.getInstance().aiCloudToAdasData(GsonUtil.jsonFromObject(parameter));
adasProvider.sendWsMessage(GsonUtil.jsonFromObject(parameter));
} catch (Exception e) {
e.printStackTrace();
@@ -710,7 +721,6 @@ 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);
adasProvider.settingCarModelListInfo(value);
}
}
@@ -733,7 +743,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void release() {
mIsReleased = true;
//AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutopolitDataCallBack );
adasProvider.removeAdasEventListener(mAdasDataListener);
adasProvider.removeAdasStatusListener();
//AutopilotServiceManage.getInstance().release();
@@ -812,6 +821,24 @@ public class MogoADASController implements IMogoADASController {
mMogoAdasRecognizedDataCallbacks.remove(callback);
}
@Override
public void addAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack) {
if (callBack == null) {
return;
}
if (!mMogoAdasRouteCallBacks.contains(callBack)) {
mMogoAdasRouteCallBacks.add(callBack);
}
}
@Override
public void removeAdasAutopilotRouteCallBack(IMogoAdasRouteCallBack callBack) {
if (callBack == null) {
return;
}
mMogoAdasRouteCallBacks.remove(callBack);
}
@Override
public void setAdasCarDataCallback(IMogoAdasCarDataCallback carDataCallback) {
mMogoAdasCarDataCallback = carDataCallback;
@@ -846,7 +873,6 @@ public class MogoADASController implements IMogoADASController {
}
int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE;
try {
//status = AutopilotServiceManage.getInstance().autopilotStateCall().getState();
status = adasProvider.autopilotStateCall().getState();
} catch (Exception e) {
e.printStackTrace();
@@ -872,12 +898,7 @@ public class MogoADASController implements IMogoADASController {
@Override
public void cancelAutopilot() {
//try {
//AutopilotServiceManage.getInstance().cancelAutopilot();
adasProvider.cancelPilot();
//} catch (RemoteException e) {
// e.printStackTrace();
//}
adasProvider.cancelPilot();
}
@Override