Merge branch 'dev_robotaxi-d-app-module_2110_220915_2.11.0' into 'test_robotaxi-d-app-module_2110_220915_2.11.0.1'
Dev robotaxi d app module 2110 220915 2.11.0 See merge request zhjt/AndroidApp/MoGoEagleEye!244
This commit is contained in:
@@ -372,6 +372,7 @@ public class BusOrderModel {
|
||||
if (refreshBusStationsCallback != null){
|
||||
refreshBusStationsCallback.updateEmptyUi();
|
||||
}
|
||||
clearAutopilotControlParameters();
|
||||
return;
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + data );
|
||||
@@ -429,11 +430,13 @@ public class BusOrderModel {
|
||||
refreshBusStationsCallback.updateBusTaskStatus(busRoutesResult.getName(),lineTime,
|
||||
stationList,arrivingOrArrivedStationIndex,true);
|
||||
}
|
||||
clearAutopilotControlParameters();
|
||||
}else {
|
||||
if (refreshBusStationsCallback != null){
|
||||
refreshBusStationsCallback.updateBusTaskStatus(busRoutesResult.getName(),lineTime,
|
||||
stationList,arrivingOrArrivedStationIndex,false);
|
||||
}
|
||||
updateAutopilotControlParameters();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -490,6 +493,7 @@ public class BusOrderModel {
|
||||
private void startAutopilot(boolean isRestart) {
|
||||
|
||||
if (backgroundCurrentStationIndex +1 > stationList.size() - 1 || !isGoingToNextStation){
|
||||
CallerLogger.INSTANCE.e(M_BUS + TAG, "mismatch condition.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -498,30 +502,16 @@ public class BusOrderModel {
|
||||
BusStationBean currentStation = stationList.get( backgroundCurrentStationIndex);
|
||||
BusStationBean nextStation = stationList.get( backgroundCurrentStationIndex + 1);
|
||||
|
||||
AutopilotControlParameters parameters = new AutopilotControlParameters();
|
||||
parameters.isSpeakVoice = !isRestart;
|
||||
parameters.routeID = busRoutesResult.getLineId();
|
||||
parameters.routeName = busRoutesResult.getName();
|
||||
parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.getName());
|
||||
parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.getName());
|
||||
parameters.startLatLon = new AutopilotControlParameters
|
||||
.AutoPilotLonLat( currentStation.getLat(), currentStation.getLon() );
|
||||
parameters.endLatLon = new AutopilotControlParameters
|
||||
.AutoPilotLonLat( nextStation.getLat(), nextStation.getLon() );
|
||||
parameters.vehicleType = VEHICLE_TYPE;
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
|
||||
busRoutesResult.getLineId(),
|
||||
busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5,
|
||||
busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5,
|
||||
busRoutesResult.contrailSaveTime, busRoutesResult.carModel,
|
||||
busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP,
|
||||
busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP,
|
||||
busRoutesResult.contrailSaveTimeDPQP);
|
||||
AutopilotControlParameters parameters = initAutopilotControlParameters();
|
||||
if (null == parameters) {
|
||||
CallerLogger.INSTANCE.e(M_BUS + TAG, "AutopilotControlParameters is empty.");
|
||||
return;
|
||||
}
|
||||
|
||||
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
|
||||
|
||||
CallerLogger.INSTANCE.d( M_BUS + TAG, "开启自动驾驶====" + GsonUtil.jsonFromObject(parameters)
|
||||
+" startLatLon="+currentStation.getName()+",endLatLon="+nextStation.getName());
|
||||
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
|
||||
|
||||
if (mControllerStatusCallback != null) {
|
||||
mControllerStatusCallback.startOpenAutopilot();
|
||||
@@ -905,4 +895,55 @@ public class BusOrderModel {
|
||||
public int getCurrentStationIndex() {
|
||||
return backgroundCurrentStationIndex;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将业务订单信息保存,鹰眼可取用
|
||||
*/
|
||||
private void updateAutopilotControlParameters() {
|
||||
|
||||
AutopilotControlParameters parameters = initAutopilotControlParameters();
|
||||
if (null == parameters){
|
||||
CallerLogger.INSTANCE.e(M_BUS + TAG, "AutopilotControlParameters is empty.");
|
||||
return;
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "AutopilotControlParameters is update.");
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters);
|
||||
}
|
||||
|
||||
private void clearAutopilotControlParameters(){
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "AutopilotControlParameters is clear.");
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null);
|
||||
}
|
||||
|
||||
private AutopilotControlParameters initAutopilotControlParameters() {
|
||||
if (backgroundCurrentStationIndex +1 > stationList.size() - 1 || !isGoingToNextStation){
|
||||
CallerLogger.INSTANCE.e(M_BUS + TAG, "mismatch condition.");
|
||||
return null;
|
||||
}
|
||||
|
||||
BusStationBean currentStation = stationList.get( backgroundCurrentStationIndex);
|
||||
BusStationBean nextStation = stationList.get( backgroundCurrentStationIndex + 1);
|
||||
|
||||
AutopilotControlParameters parameters = new AutopilotControlParameters();
|
||||
parameters.routeID = busRoutesResult.getLineId();
|
||||
parameters.routeName = busRoutesResult.getName();
|
||||
parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.getName());
|
||||
parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.getName());
|
||||
parameters.startLatLon = new AutopilotControlParameters
|
||||
.AutoPilotLonLat( currentStation.getLat(), currentStation.getLon() );
|
||||
parameters.endLatLon = new AutopilotControlParameters
|
||||
.AutoPilotLonLat( nextStation.getLat(), nextStation.getLon() );
|
||||
parameters.vehicleType = VEHICLE_TYPE;
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
|
||||
busRoutesResult.getLineId(),
|
||||
busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5,
|
||||
busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5,
|
||||
busRoutesResult.contrailSaveTime, busRoutesResult.carModel,
|
||||
busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP,
|
||||
busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP,
|
||||
busRoutesResult.contrailSaveTimeDPQP);
|
||||
}
|
||||
return parameters;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import com.amap.api.maps.model.LatLng;
|
||||
import com.elegant.network.utils.GsonUtil;
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo;
|
||||
@@ -29,6 +28,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
@@ -318,6 +318,8 @@ public class TaxiModel {
|
||||
//1.1.2. 当本地有currentOrder:
|
||||
//orderId不一致时:通过currentOrder.orderId查询订单状态,并通知ui更新
|
||||
//orderId一致且orderStatus不一致时:则更新currentOrder,并通知ui更新
|
||||
Logger.d(TAG,"AutopilotControl-mCurrentOCHOrder = "+mCurrentOCHOrder.orderStatus
|
||||
+ ", orderStatus = " +data.data.servicing.get(0).orderStatus);
|
||||
if (!mCurrentOCHOrder.orderNo.equals(data.data.servicing.get(0).orderNo)) {
|
||||
queryCurOrderStatus();
|
||||
} else if (mCurrentOCHOrder.orderStatus != data.data.servicing.get(0).orderStatus) {
|
||||
@@ -787,24 +789,52 @@ public class TaxiModel {
|
||||
TaxiTrajectoryManager.getInstance().syncTrajectoryInfo();
|
||||
SharedPrefsMgr.getInstance(mContext).putString(TaxiConst.SP_KEY_OCH_TAXI_ORDER,
|
||||
GsonUtil.jsonFromObject(data));
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){
|
||||
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){
|
||||
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
|
||||
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
|
||||
CallerAutoPilotManager.INSTANCE.setIgnoreConditionDraw(true);
|
||||
CallerAutoPilotManager.INSTANCE.setIPCDemoMode(true);
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为true(更新本地order信息)");
|
||||
}
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.getCode()){
|
||||
|
||||
updateAutopilotControlParameters();
|
||||
}
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.getCode()){
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
CallerAutoPilotManager.INSTANCE.setIPCDemoMode(false);
|
||||
}
|
||||
|
||||
clearAutopilotControlParameters();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将业务订单信息保存,鹰眼可取用
|
||||
*/
|
||||
private void updateAutopilotControlParameters() {
|
||||
|
||||
AutopilotControlParameters parameters = initAutopilotControlParameters();
|
||||
if (null == parameters){
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "AutopilotControlParameters is empty.");
|
||||
return;
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "AutopilotControlParameters is update.");
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters);
|
||||
}
|
||||
|
||||
private void clearAutopilotControlParameters(){
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "AutopilotControlParameters is clear.");
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null);
|
||||
}
|
||||
|
||||
//清除订单信息
|
||||
public void clearCurrentOCHOrder() {
|
||||
startOrStopCalculateRouteInfo(false);
|
||||
mCurrentOCHOrder = null;
|
||||
clearAutopilotControlParameters();
|
||||
TaxiTrajectoryManager.getInstance().syncTrajectoryInfo();
|
||||
SharedPrefsMgr.getInstance(mContext).remove(TaxiConst.SP_KEY_OCH_TAXI_ORDER);
|
||||
isRestartAutopilot = false;
|
||||
@@ -859,12 +889,38 @@ public class TaxiModel {
|
||||
isRestartAutopilot = true;
|
||||
}
|
||||
|
||||
AutopilotControlParameters parameters = initAutopilotControlParameters();
|
||||
|
||||
if (null == parameters) {
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "AutopilotControlParameters is empty.");
|
||||
return;
|
||||
}
|
||||
|
||||
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters)
|
||||
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr);
|
||||
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, false,
|
||||
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
|
||||
|
||||
// TODO: 2021/8/20 无工控机环境, 手动调起自动驾驶开启返回结果,有工控机环境要删除
|
||||
// OCHTaxiUiController.getInstance().onAutoPilotStatusChanged( IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "开启自动驾驶" );
|
||||
}
|
||||
|
||||
private AutopilotControlParameters initAutopilotControlParameters() {
|
||||
|
||||
if (!checkCurrentOCHOrder()) {
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "no order or order is empty.");
|
||||
return null;
|
||||
}
|
||||
|
||||
AutopilotControlParameters parameters = new AutopilotControlParameters();
|
||||
|
||||
double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0);
|
||||
double startWgsLat = mCurrentOCHOrder.startSitePoint.get(1);
|
||||
double endWgsLon = mCurrentOCHOrder.endSitePoint.get(0);
|
||||
double endWgsLat = mCurrentOCHOrder.endSitePoint.get(1);
|
||||
|
||||
AutopilotControlParameters parameters = new AutopilotControlParameters();
|
||||
parameters.vehicleType = mCurrentOCHOrder.businessType;
|
||||
parameters.startName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.startSiteAddr); // 起点名称拼音首字母大写:科学城B区2号门(KXCBQ2HM)
|
||||
parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.endSiteAddr); // 终点名称拼音首字母大写:科学城C区三号门(KXCCQSHM)
|
||||
@@ -880,15 +936,7 @@ public class TaxiModel {
|
||||
mCurrentOCHOrder.txtFileUrlDPQP, mCurrentOCHOrder.txtFileMd5DPQP,
|
||||
mCurrentOCHOrder.contrailSaveTimeDPQP);
|
||||
}
|
||||
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters)
|
||||
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr);
|
||||
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, false,
|
||||
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
|
||||
|
||||
// TODO: 2021/8/20 无工控机环境, 手动调起自动驾驶开启返回结果,有工控机环境要删除
|
||||
// OCHTaxiUiController.getInstance().onAutoPilotStatusChanged( IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "开启自动驾驶" );
|
||||
return parameters;
|
||||
}
|
||||
|
||||
//结束自动驾驶
|
||||
@@ -913,18 +961,8 @@ public class TaxiModel {
|
||||
startLon, startLat,
|
||||
location.getLongitude(), location.getLatitude());
|
||||
|
||||
// if (DebugConfig.isDebug() && mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) {
|
||||
// // ToastUtils.showShort("距离上车点:" + Double.valueOf(distance).intValue());
|
||||
// }
|
||||
|
||||
CallerLogger.INSTANCE.i(M_TAXI + TAG, "judgeStartStation() distance = " + distance);
|
||||
|
||||
// if (distance > TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) {
|
||||
// distance = CoordinateUtils.calculateLineDistance(startLon, startLat,
|
||||
// CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon(),
|
||||
// CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat());
|
||||
// }
|
||||
|
||||
if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) {
|
||||
arrivedStartPoint();
|
||||
return;
|
||||
@@ -1011,12 +1049,6 @@ public class TaxiModel {
|
||||
|
||||
CallerLogger.INSTANCE.i(M_TAXI + TAG, "judgeEndStation() distance = " + distance);
|
||||
|
||||
// if (distance > TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) {
|
||||
// distance = CoordinateUtils.calculateLineDistance(startLon, startLat,
|
||||
// CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon(),
|
||||
// CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat());
|
||||
// }
|
||||
|
||||
if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) {
|
||||
if (!checkCurrentOCHOrder()
|
||||
|| (getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {
|
||||
@@ -1277,9 +1309,7 @@ public class TaxiModel {
|
||||
private void reportTotalDisAndTime() {
|
||||
float lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(mRoutePoints);
|
||||
double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6; //秒
|
||||
// if (mOrderStatusCallback != null) {
|
||||
// mOrderStatusCallback.onCurrentOrderDistToEndChanged((long) lastSumLength, (long) lastTime);
|
||||
// }
|
||||
|
||||
reportOrderRemain((long) lastSumLength, (long) lastTime);
|
||||
}
|
||||
|
||||
@@ -1401,9 +1431,7 @@ public class TaxiModel {
|
||||
, new TaxiServiceCallback<TaxiDataBaseRespBean>() {
|
||||
@Override
|
||||
public void onSuccess(TaxiDataBaseRespBean data) {
|
||||
if (null != data && 0 == data.code){
|
||||
updateOrderStatus(TaxiOrderStatusEnum.UserArriveAtStart);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1425,9 +1453,7 @@ public class TaxiModel {
|
||||
, new TaxiServiceCallback<TaxiDataBaseRespBean>() {
|
||||
@Override
|
||||
public void onSuccess(TaxiDataBaseRespBean data) {
|
||||
if (null != data && 0 == data.code){
|
||||
updateOrderStatus(TaxiOrderStatusEnum.OnTheWayToEnd);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1447,9 +1473,7 @@ public class TaxiModel {
|
||||
, new TaxiServiceCallback<TaxiDataBaseRespBean>() {
|
||||
@Override
|
||||
public void onSuccess(TaxiDataBaseRespBean data) {
|
||||
if (null != data && 0 == data.code){
|
||||
updateOrderStatus(TaxiOrderStatusEnum.ArriveAtStart);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1470,9 +1494,7 @@ public class TaxiModel {
|
||||
, new TaxiServiceCallback<TaxiDataBaseRespBean>() {
|
||||
@Override
|
||||
public void onSuccess(TaxiDataBaseRespBean data) {
|
||||
if (null != data && 0 == data.code){
|
||||
updateOrderStatus(TaxiOrderStatusEnum.ArriveAtEnd);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1493,9 +1515,9 @@ public class TaxiModel {
|
||||
, new TaxiServiceCallback<TaxiDataBaseRespBean>() {
|
||||
@Override
|
||||
public void onSuccess(TaxiDataBaseRespBean data) {
|
||||
if (null != data && 0 == data.code){
|
||||
updateOrderStatus(TaxiOrderStatusEnum.JourneyCompleted);
|
||||
}
|
||||
// if (null != data && 0 == data.code){
|
||||
// updateOrderStatus(TaxiOrderStatusEnum.JourneyCompleted);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1504,16 +1526,6 @@ public class TaxiModel {
|
||||
}
|
||||
});
|
||||
}
|
||||
//更新当前订单状态
|
||||
public void updateOrderStatus(final TaxiOrderStatusEnum orderStatus) {
|
||||
if (mCurrentOCHOrder == null) {
|
||||
return;
|
||||
}
|
||||
mCurrentOCHOrder.orderStatus = orderStatus.getCode();
|
||||
if (mOrderStatusCallback != null) {
|
||||
mOrderStatusCallback.onCurrentOrderStatusChanged(mCurrentOCHOrder);
|
||||
}
|
||||
}
|
||||
|
||||
// 登出
|
||||
public void logout() {
|
||||
|
||||
@@ -37,6 +37,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.telematic.MogoProtocolMsg
|
||||
import com.mogo.telematic.MogoProtocolMsg.NORMAL_DATA
|
||||
import com.mogo.telematic.MogoProtocolMsg.SYNC_MODE_STATUS
|
||||
@@ -53,7 +54,6 @@ import com.zhidao.support.adas.high.common.CupidLogUtils
|
||||
import com.zhidao.support.adas.high.common.MogoReport
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
import com.zhjt.service_biz.BizConfig
|
||||
import io.netty.channel.Channel
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import java.util.*
|
||||
@@ -73,6 +73,7 @@ class MoGoAutopilotProvider :
|
||||
private var mContext: Context? = null
|
||||
private lateinit var msgHandler: IMsgHandler
|
||||
private var timer: Timer? = null
|
||||
|
||||
@Volatile
|
||||
private var isInit = false
|
||||
|
||||
@@ -107,6 +108,9 @@ class MoGoAutopilotProvider :
|
||||
.build()
|
||||
|
||||
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
//////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听/////////////////////////////////////////////
|
||||
// 监听ADAS-SDK获取到的工控机数据
|
||||
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
|
||||
NSDNettyManager.getInstance().startNSDNettyServerWithSN(context, object :
|
||||
NettyServerListener<MogoProtocolMsg> {
|
||||
override fun onMessageResponseServer(msg: MogoProtocolMsg?, channel: Channel?) {
|
||||
@@ -153,16 +157,19 @@ class MoGoAutopilotProvider :
|
||||
override fun connectDevice(isSupportMulti: Boolean) {
|
||||
if (!isInit) {
|
||||
isInit = true
|
||||
if (isSupportMulti) {
|
||||
// 直连工控机
|
||||
directConnect()
|
||||
} else {
|
||||
val options = AdasOptions
|
||||
.Builder()
|
||||
.setClient(true)
|
||||
.build()
|
||||
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
listenDeviceData()
|
||||
UiThreadHandler.post {
|
||||
if (isSupportMulti) {
|
||||
// 直连工控机
|
||||
directConnect()
|
||||
} else {
|
||||
val options = AdasOptions
|
||||
.Builder()
|
||||
.setClient(true)
|
||||
.build()
|
||||
AdasManager.getInstance()
|
||||
.create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
listenDeviceData()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -189,10 +196,6 @@ class MoGoAutopilotProvider :
|
||||
}
|
||||
})
|
||||
}
|
||||
//////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听/////////////////////////////////////////////
|
||||
|
||||
// 监听ADAS-SDK获取到的工控机数据(乘客也需注册)
|
||||
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
CallerLogger.i("$M_ADAS_IMPL$TAG", "initServer……")
|
||||
// 同步数据给工控机的服务
|
||||
@@ -209,6 +212,9 @@ class MoGoAutopilotProvider :
|
||||
.setClient(false)// 乘客端直连工控机改为false
|
||||
.build()
|
||||
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
//////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听/////////////////////////////////////////////
|
||||
// 监听ADAS-SDK获取到的工控机数据
|
||||
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.mogo.eagle.core.function
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
|
||||
/**
|
||||
* cmdb 域名
|
||||
*/
|
||||
class BindHostConst {
|
||||
|
||||
companion object {
|
||||
private const val UPGRADE_APP_HOST_DEV = "https://eagle-qa.zhidaozhixing.com/"
|
||||
private const val UPGRADE_APP_HOST = "http://eagle-mis.zhidaozhixing.com/"
|
||||
|
||||
@JvmStatic
|
||||
fun getBaseUrl(): String {
|
||||
return when (DebugConfig.getNetMode()) {
|
||||
DebugConfig.NET_MODE_DEV -> UPGRADE_APP_HOST_DEV
|
||||
DebugConfig.NET_MODE_QA -> UPGRADE_APP_HOST_DEV
|
||||
DebugConfig.NET_MODE_DEMO -> UPGRADE_APP_HOST
|
||||
DebugConfig.NET_MODE_RELEASE -> UPGRADE_APP_HOST
|
||||
else -> UPGRADE_APP_HOST
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,7 +21,7 @@ public interface UpgradeApiService {
|
||||
* @return {@link UpgradeAppInfo}
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("/eagleEye-mis/config/versionInfo")
|
||||
@POST("eagleEye-mis/config/versionInfo")
|
||||
// Observable<UpgradeAppInfo> getUpgradeInfo(@Query("resources") String res, @Body RequestBody requestBody);
|
||||
Observable<UpgradeAppInfo> getUpgradeInfo(@Body RequestBody requestBody);
|
||||
|
||||
|
||||
@@ -4,20 +4,13 @@ import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.commons.constants.SharedPrefsConstants;
|
||||
import com.mogo.eagle.core.data.bindingcar.BindingcarInfo;
|
||||
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo;
|
||||
import com.mogo.eagle.core.data.bindingcar.UpgradeAppInfo;
|
||||
import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack;
|
||||
import com.mogo.eagle.core.function.BindHostConst;
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory;
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
|
||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils;
|
||||
import com.mogo.module.common.constants.HostConst;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
@@ -39,7 +32,7 @@ public class UpgradeAppNetWorkManager {
|
||||
|
||||
|
||||
private UpgradeAppNetWorkManager() {
|
||||
mUpgradeApiService = MoGoRetrofitFactory.getInstance(HostConst.UPGRADE_APP_HOST)
|
||||
mUpgradeApiService = MoGoRetrofitFactory.getInstance(BindHostConst.getBaseUrl())
|
||||
.create(UpgradeApiService.class);
|
||||
}
|
||||
|
||||
@@ -64,7 +57,7 @@ public class UpgradeAppNetWorkManager {
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
int versionCode = AppUtils.getAppVersionCode();
|
||||
CallerLogger.INSTANCE.d(TAG, "getAppUpgradeInfo mac = " + mac + "---type = " + screenType + "---sn = " + sn + "---versionCode =" + versionCode);
|
||||
Log.d("Upgrade", "mac = " + mac + "---type = " + screenType + "---sn = " + sn + "---versionCode =" + versionCode);
|
||||
Log.d(TAG, "mac = " + mac + "---type = " + screenType + "---sn = " + sn + "---versionCode =" + versionCode);
|
||||
UpgradeAppRequest request = new UpgradeAppRequest(sn, mac, screenType);
|
||||
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
|
||||
mUpgradeApiService.getUpgradeInfo(requestBody)
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
|
||||
import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager;
|
||||
import com.mogo.eagle.core.function.hmi.R;
|
||||
import com.mogo.eagle.core.function.main.moujie.BluetoothMonitorReceiver;
|
||||
@@ -218,7 +219,9 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
if (currentTime - oldTime > 6) {
|
||||
SharedPrefsMgr.getInstance(getContext()).putLong("old_time_up", System.currentTimeMillis() / 1000);
|
||||
// ToastUtils.showShort("长按 ↑↑↑ 开启自动驾驶");
|
||||
CallerAutoPilotManager.INSTANCE.setControlAutopilotCarAuto(true);
|
||||
// CallerAutoPilotManager.INSTANCE.setControlAutopilotCarAuto(true);
|
||||
CallerAutoPilotManager.INSTANCE.startAutoPilot(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getAutopilotControlParameters());
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -337,7 +340,8 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
|
||||
} else if (event.getAction() == KeyEvent.ACTION_UP) {
|
||||
if (numberE == 1) {
|
||||
// ToastUtils.showShort("方块 单击E 开启自动驾驶 ");
|
||||
CallerAutoPilotManager.INSTANCE.setControlAutopilotCarAuto(true);
|
||||
// CallerAutoPilotManager.INSTANCE.setControlAutopilotCarAuto(true);
|
||||
CallerAutoPilotManager.INSTANCE.startAutoPilot(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getAutopilotControlParameters());
|
||||
}
|
||||
numberE = 0;
|
||||
isLongPressE = false;
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.map.identify;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
@@ -10,8 +9,6 @@ import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.eagle.core.data.traffic.TrafficData;
|
||||
import com.mogo.eagle.core.data.traffic.TrafficDataKt;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.geometry.S2CellId;
|
||||
import com.mogo.eagle.core.utilcode.geometry.S2LatLng;
|
||||
import com.mogo.map.MogoMarkerManager;
|
||||
|
||||
@@ -85,12 +85,17 @@ open class AutopilotStatusInfo : Serializable, Cloneable {
|
||||
// 默认未连接
|
||||
var ipcConnStatus = 0x01
|
||||
|
||||
/**
|
||||
* 记录最后一次启动自动驾驶需要的参数,结束自动驾驶后设置为null
|
||||
*/
|
||||
var autopilotControlParameters: AutopilotControlParameters? = null
|
||||
|
||||
override fun toString(): String {
|
||||
return "connectIP=$connectIP, connectPort=$connectPort, " +
|
||||
"connectStatus=$connectStatus, connectDescribe=$connectStatusDescribe, version=$version, dockVersion=$dockVersion," +
|
||||
" locationStatus=$locationStatus), locationLat=$locationLat, locationLon=$locationLon," +
|
||||
" satelliteTime=$satelliteTime, speed=$speed, state=$state, reason=$reason, camera=$camera," +
|
||||
" radar=$radar, rtk=$rtk, pilotmode=$pilotmode, ipcConnStatus=$ipcConnStatus"
|
||||
" radar=$radar, rtk=$rtk, pilotmode=$pilotmode, ipcConnStatus=$ipcConnStatus, autopilotControlParameters=$autopilotControlParameters"
|
||||
}
|
||||
|
||||
public override fun clone(): AutopilotStatusInfo {
|
||||
|
||||
@@ -67,6 +67,8 @@ object CallerAutoPilotManager {
|
||||
return
|
||||
}
|
||||
providerApi?.startAutoPilot(controlParameters)
|
||||
// 更新记录在全局的控制参数
|
||||
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(controlParameters)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,6 +96,8 @@ object CallerAutoPilotManager {
|
||||
// 司机屏才能取消自动驾驶
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
providerApi?.cancelAutoPilot()
|
||||
// 更新记录在全局的控制参数
|
||||
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.call.autopilot
|
||||
|
||||
import android.util.*
|
||||
import androidx.annotation.Nullable
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
@@ -24,7 +25,7 @@ object CallerAutoPilotStatusListenerManager : CallerBase() {
|
||||
|
||||
// 存储所有注册了监听的对象,invokeXXXX进行遍历回调,将信息同步
|
||||
private val M_AUTOPILOT_STATUS_LISTENERS: ConcurrentHashMap<String, IMoGoAutopilotStatusListener> =
|
||||
ConcurrentHashMap()
|
||||
ConcurrentHashMap()
|
||||
|
||||
@Volatile
|
||||
private var autoPilotMessageCode: String = ""
|
||||
@@ -93,8 +94,8 @@ object CallerAutoPilotStatusListenerManager : CallerBase() {
|
||||
* @param listener 监听回调
|
||||
*/
|
||||
fun addListener(
|
||||
@Nullable tag: String,
|
||||
@Nullable listener: IMoGoAutopilotStatusListener
|
||||
@Nullable tag: String,
|
||||
@Nullable listener: IMoGoAutopilotStatusListener
|
||||
) {
|
||||
if (M_AUTOPILOT_STATUS_LISTENERS.containsKey(tag)) {
|
||||
return
|
||||
@@ -201,10 +202,18 @@ object CallerAutoPilotStatusListenerManager : CallerBase() {
|
||||
*/
|
||||
fun invokeAutopilotStatusRespByQuery(statusInfo: SystemStatusInfo.StatusInfo?) {
|
||||
statusInfo?.also {
|
||||
M_AUTOPILOT_STATUS_LISTENERS.forEach{ itx ->
|
||||
M_AUTOPILOT_STATUS_LISTENERS.forEach { itx ->
|
||||
val listener = itx.value
|
||||
listener.onAutopilotStatusRespByQuery(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新自动驾驶控制参数,结束自动驾驶时候需要更新为null,且更新时候同时触发onAutopilotStatusResponse回调
|
||||
*/
|
||||
fun updateAutopilotControlParameters(autopilotControlParameters: AutopilotControlParameters? = null) {
|
||||
mAutopilotStatusInfo.autopilotControlParameters = autopilotControlParameters
|
||||
invokeAutoPilotStatus(mAutopilotStatusInfo)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
#### CallerAutoPilotStatusListenerManager 管理自动驾驶中的状态及参数信息
|
||||
|
||||
AutopilotStatusInfo:
|
||||
连接信息
|
||||
实时经纬度、速度、车辆硬件状态
|
||||
最后一次启动自动驾驶时候的启动参数 AutopilotControlParameters
|
||||
@@ -366,22 +366,17 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
|
||||
@Override
|
||||
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
|
||||
Log.d("XXXX", "--- 2 -----");
|
||||
MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper();
|
||||
if (mapAutoViewHelper != null) {
|
||||
Log.d("XXXX", "--- 3 -----");
|
||||
mVisualAngleMode = angelMode;
|
||||
if (angelMode == MODE_CLOSE_SIGHT) {
|
||||
Log.d("XXXX", "--- 4 -----");
|
||||
if (mogoLatLng == null) {
|
||||
Log.d("XXXX", "--- 5 -----");
|
||||
CallerLogger.INSTANCE.e(M_MAP + TAG, "切换地图近景需要传入要移动的经纬度数据");
|
||||
return;
|
||||
}
|
||||
// 近景传入经纬度为点击地图上静态marker经纬度数据,为GPS坐标点。
|
||||
mapAutoViewHelper.setNearViewAnglePosition(new LonLatPoint(mogoLatLng.lon, mogoLatLng.lat), true);
|
||||
} else {
|
||||
Log.d("XXXX", "--- 6 -----");
|
||||
mapAutoViewHelper.setMapViewVisualAngle(angelMode.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,4 @@ public class HostConst {
|
||||
public static final String BINDING_SN_HOST = "https://mygateway.zhidaozhixing.com/cmdbapi/"; //中台提供的接口服务
|
||||
public static final String BINDING_SN_HOST_TEST = "https://mygateway.zhidaozhixing.com/cmdbapitest/"; //中台提供的接口服务测试
|
||||
|
||||
// public static final String UPGRADE_APP_HOST = "http://10.0.200.12:32423?/";
|
||||
public static final String UPGRADE_APP_HOST = "https://eagle-qa.zhidaozhixing.com/";
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user