add func of upload autopilot status

This commit is contained in:
zhongchao
2021-08-05 16:52:25 +08:00
parent ea4e380b35
commit 2545d1c868
6 changed files with 391 additions and 327 deletions

View File

@@ -11,27 +11,20 @@ import com.mogo.map.MogoLatLng;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.service.dispatch.bean.AutopilotRoute;
import com.mogo.module.service.dispatch.bean.AutopilotStatus;
import com.mogo.module.service.dispatch.bean.DispatchAdasAutoPilotLocReceiverBean;
import com.mogo.module.service.dispatch.bean.DispatchData;
import com.mogo.module.service.dispatch.bean.EndLatLon;
import com.mogo.module.service.dispatch.bean.StartLatLon;
import com.mogo.module.service.dispatch.model.DispatchResult;
import com.mogo.module.service.dispatch.model.DispatchServiceModel;
import com.mogo.module.service.dispatch.model.IDispatch;
import com.mogo.service.adas.IMogoAdasOCHCallback;
import com.mogo.service.adas.RemoteControlAutoPilotParameters;
import com.mogo.service.adas.entity.AdasOCHData;
import com.mogo.service.connection.IMogoOnMessageListener;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
import java.util.ArrayList;
import java.util.List;
//todo 后续拆解是否放到网约车模块,画线部分已与产品沟通,放入后续迭代需求
//负责监听自动驾驶状态并进行状态上报,自动驾驶路线上报,接收调度指令展示指令弹窗
public class DispatchAutoPilotManager implements IMogoOnMessageListener<DispatchAdasAutoPilotLocReceiverBean>
, DispatchRemindDialog.IDispatchRemindClickListener
, IMogoCarLocationChangedListener2 {
, IMogoCarLocationChangedListener2, IMogoAdasOCHCallback {
private static final String TAG = "DispatchAutoPilotManager";
private static volatile DispatchAutoPilotManager instance;
@@ -64,6 +57,10 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == MSG_TYPE_SHOW_DIALOG) {
if (dispatchRemindDialog.isShowing()) {
Logger.d(TAG, "此时已经有调度,又收到调度信息");
return;
}
DispatchAdasAutoPilotLocReceiverBean msgData = (DispatchAdasAutoPilotLocReceiverBean) msg.obj;
dispatchRemindDialog.showDialog(msgData);
}
@@ -72,11 +69,12 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
public void initSocket(Context context) {
mContext = context;
MogoApisHandler.getInstance()
.getApis()
MogoApisHandler.getInstance().getApis()
.getSocketManagerApi(context).registerOnMessageListener(MSG_SOCKET_TYPE, this);
MogoApisHandler.getInstance().getApis().getRegisterCenterApi()
.registerCarLocationChangedListener(TAG, this);
MogoApisHandler.getInstance().getApis().getAdasControllerApi()
.addAdasOCHCallback(this);
dispatchRemindDialog = new DispatchRemindDialog(context);
dispatchRemindDialog.addIDispatchRemindListener(this);
}
@@ -99,13 +97,11 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
}
}
@Override
public void affirm() {
DispatchServiceModel.getInstance().dispatchResultUpload(DISPATCH_RESULT_AFFIRM, new IDispatch() {
@Override
public void onSuccess() {
Logger.d(TAG, "");
RemoteControlAutoPilotParameters currentAutopilot = new RemoteControlAutoPilotParameters();
currentAutopilot.isSpeakVoice = false;
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(receiverBean.getStartLat(), receiverBean.getStartLon());
@@ -152,15 +148,6 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
dispatchRemindDialog.showDialog(adasAutoPilotLocReceiverBean);
}
public void testUploadAutopilotRoute() {
List<AutopilotRoute.RouteModels> list = new ArrayList<>();
AutopilotRoute.RouteModels routeModels = new AutopilotRoute.RouteModels();
routeModels.setLat(12.12);
routeModels.setLon(13.14);
list.add(routeModels);
DispatchServiceModel.getInstance().uploadAutopilotRoute(list);
}
public void testDispatchResultUpload() {
DispatchServiceModel.getInstance().dispatchResultUpload(DISPATCH_RESULT_AFFIRM, new IDispatch() {
@Override
@@ -175,4 +162,19 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
});
}
@Override
public void onArriveAt(AdasOCHData data) {
}
@Override
public void onStateChanged(int state, String reason) {
AutopilotStatus autopilotStatus = new AutopilotStatus();
autopilotStatus.setAction("autopilotstate");
AutopilotStatus.ValuesBean valuesBean = new AutopilotStatus.ValuesBean();
valuesBean.setState(state);
valuesBean.setReason(reason);
autopilotStatus.setValues(valuesBean);
DispatchServiceModel.getInstance().uploadAutopilotStatus(autopilotStatus);
}
}

View File

@@ -1,6 +1,7 @@
package com.mogo.module.service.dispatch;
import android.content.Context;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.TextView;
@@ -44,11 +45,21 @@ public class DispatchRemindDialog extends BaseFloatDialog {
public void showDialog(DispatchAdasAutoPilotLocReceiverBean dispatchContent) {
show();
tvStartLoc.setText(dispatchContent.getStartLocAddress());
tvEndLoc.setText(dispatchContent.getEndLocAddress());
tvTaskTime.setText(dispatchContent.getTaskTime());
tvFlightInfo.setText(dispatchContent.getFlightInfo());
tvTaskContent.setText(dispatchContent.getTaskInfo());
if(!TextUtils.isEmpty(dispatchContent.getStartLocAddress())){
tvStartLoc.setText(dispatchContent.getStartLocAddress());
}
if(!TextUtils.isEmpty(dispatchContent.getEndLocAddress())){
tvEndLoc.setText(dispatchContent.getEndLocAddress());
}
if(!TextUtils.isEmpty(dispatchContent.getTaskTime())){
tvTaskTime.setText(dispatchContent.getTaskTime());
}
if(!TextUtils.isEmpty(dispatchContent.getFlightInfo())){
tvFlightInfo.setText(dispatchContent.getFlightInfo());
}
if(!TextUtils.isEmpty(dispatchContent.getTaskInfo())){
tvTaskContent.setText(dispatchContent.getTaskInfo());
}
}
private void dismissDialog() {

View File

@@ -39,9 +39,7 @@ public class DispatchTestPanelBroadCastReceiver extends BroadcastReceiver {
Logger.d(TAG, "sceneType=" + sceneType);
if (sceneType == 0) {//打开调度弹窗
DispatchAutoPilotManager.getInstance().test();
} else if(sceneType == 1){ //验证自动驾驶路线上报接口
DispatchAutoPilotManager.getInstance().testUploadAutopilotRoute();
} else if(sceneType == 2){ //验证自动驾驶调度上报接口
}else if(sceneType == 1){ //验证自动驾驶调度上报接口
DispatchAutoPilotManager.getInstance().testDispatchResultUpload();
}
}

View File

@@ -8,6 +8,7 @@ import com.mogo.commons.data.BaseData;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.service.dispatch.bean.AutopilotRoute;
import com.mogo.module.service.dispatch.bean.AutopilotStatus;
import com.mogo.module.service.dispatch.bean.ReportDispatchResult;
import com.mogo.module.service.dispatch.bean.ReportedRoute;
import com.mogo.utils.logger.Logger;
@@ -48,6 +49,40 @@ public class DispatchServiceModel {
return instance;
}
/**
* 上报自动驾驶状态
*
* @param autopilotStatus {@link AutopilotStatus}
*/
public void uploadAutopilotStatus(AutopilotStatus autopilotStatus) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
ReportedRoute reportedRoute = new ReportedRoute(sn, autopilotStatus.getValues());
Map<String, Object> map = new HashMap<>();
map.put("sn", sn);
map.put("data", GsonUtil.jsonFromObject(reportedRoute));
mAdasApiService.uploadAutopilotState(map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
@Override
public void onNext(BaseData o) {
super.onNext(o);
Logger.d(TAG, "uploadAutopilotStatus success");
}
@Override
public void onError(Throwable e) {
super.onError(e);
Logger.d(TAG, "uploadAutopilotStatus error : " + e.getMessage());
}
@Override
public void onSuccess(BaseData o) {
super.onSuccess(o);
}
});
}
/**
* 上报自动驾驶路线
*

View File

@@ -30,4 +30,14 @@ public interface IDispatchAdasApiService {
@FormUrlEncoded
@POST("/dataService/autoDriver/receiverDestSiteResult")
Observable<BaseData> uploadDispatchResult(@FieldMap Map<String, Object> parameters);
/**
* 上报自动驾驶状态 服务于业务调度
*
* @param parameters map
* @return {@link BaseData}
*/
@FormUrlEncoded
@POST("/dataService/autoDriver/receiveAutopilotState")
Observable<BaseData> uploadAutopilotState(@FieldMap Map<String, Object> parameters);
}