Merge branch 'dev_robotaxi-d_230612_3.3.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_230612_3.3.0
This commit is contained in:
@@ -29,7 +29,6 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener;
|
||||
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager;
|
||||
@@ -65,10 +64,8 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
|
||||
import com.mogo.och.common.module.utils.PinYinUtil;
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import com.mogo.och.common.module.utils.PinYinUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -85,7 +82,7 @@ import system_master.SystemStatusInfo;
|
||||
public class BusPassengerModel {
|
||||
private static final String TAG = BusPassengerModel.class.getSimpleName();
|
||||
|
||||
private List<MogoLocation> mRoutePoints = new ArrayList<>();
|
||||
private final List<MogoLocation> mRoutePoints = new ArrayList<>();
|
||||
|
||||
private static final class SingletonHolder {
|
||||
private static final BusPassengerModel INSTANCE = new BusPassengerModel();
|
||||
@@ -98,12 +95,12 @@ public class BusPassengerModel {
|
||||
private Context mContext;
|
||||
private IBusPassengerADASStatusCallback mADASStatusCallback; //Model->Presenter:自动驾驶状态相关
|
||||
private IBusPassengerAutopilotPlanningCallback mAutopilotPlanningCallback; //Model->Presenter:自动驾驶线路规划
|
||||
private Map<String, IBusPassengerControllerStatusCallback> mControllerStatusCallbackMap = new ConcurrentHashMap<>();
|
||||
private final Map<String, IBusPassengerControllerStatusCallback> mControllerStatusCallbackMap = new ConcurrentHashMap<>();
|
||||
|
||||
private IBusPassegerDriverStatusCallback mDriverStatusCallback; //出车收车状态
|
||||
private IBusPassengerRouteLineInfoCallback mRouteLineInfoCallback; // bus路线信息更新
|
||||
|
||||
private MogoLocation mLocation = null;
|
||||
private MogoLocation mLocation = null;
|
||||
|
||||
private BusPassengerRoutesResult routesResult = null;
|
||||
|
||||
@@ -117,7 +114,7 @@ public class BusPassengerModel {
|
||||
private final Handler handler = new Handler(new Handler.Callback() {
|
||||
@Override
|
||||
public boolean handleMessage(Message msg) {
|
||||
if ( msg.what == MSG_QUERY_BUS_P_STATION ) {
|
||||
if (msg.what == MSG_QUERY_BUS_P_STATION) {
|
||||
queryDriverOperationStatus();
|
||||
return true;
|
||||
}
|
||||
@@ -128,7 +125,7 @@ public class BusPassengerModel {
|
||||
private BusPassengerModel() {
|
||||
}
|
||||
|
||||
public void init( Context context ) {
|
||||
public void init(Context context) {
|
||||
mContext = context.getApplicationContext();
|
||||
initListeners();
|
||||
// TODO: 2022/3/31
|
||||
@@ -136,16 +133,16 @@ public class BusPassengerModel {
|
||||
startOrStopOrderLoop(true);
|
||||
}
|
||||
|
||||
public void setDriverStatusCallback(IBusPassegerDriverStatusCallback callback){
|
||||
public void setDriverStatusCallback(IBusPassegerDriverStatusCallback callback) {
|
||||
this.mDriverStatusCallback = callback;
|
||||
}
|
||||
|
||||
public void setRouteLineInfoCallback(IBusPassengerRouteLineInfoCallback callback){
|
||||
public void setRouteLineInfoCallback(IBusPassengerRouteLineInfoCallback callback) {
|
||||
this.mRouteLineInfoCallback = callback;
|
||||
}
|
||||
|
||||
private void queryDriverOperationDelay() {
|
||||
handler.sendEmptyMessageDelayed( MSG_QUERY_BUS_P_STATION, QUERY_BUS_P_STATION_DELAY );
|
||||
handler.sendEmptyMessageDelayed(MSG_QUERY_BUS_P_STATION, QUERY_BUS_P_STATION_DELAY);
|
||||
}
|
||||
|
||||
private void queryDriverOperationStatus() {
|
||||
@@ -155,7 +152,7 @@ public class BusPassengerModel {
|
||||
public void onSuccess(BusPassengerOperationStatusResponse data) {
|
||||
if (data == null || data.data == null) return;
|
||||
if (mDriverStatusCallback != null) {
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverOperationStatus = %s", data.data.plateNumber );
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "queryDriverOperationStatus = %s", data.data.plateNumber);
|
||||
mDriverStatusCallback.changeOperationStatus(data.data.driverStatus == 1);
|
||||
mDriverStatusCallback.updatePlateNumber(data.data.plateNumber);
|
||||
}
|
||||
@@ -179,13 +176,13 @@ public class BusPassengerModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void queryDriverSiteByCoordinate(){
|
||||
public void queryDriverSiteByCoordinate() {
|
||||
BusPassengerServiceManager.queryDriverSiteByCoordinate(mContext
|
||||
, new OchCommonServiceCallback<BusPassengerRoutesResponse>() {
|
||||
@Override
|
||||
public void onSuccess(BusPassengerRoutesResponse data) {
|
||||
if ( data == null || data.getResult() == null) {
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = null");
|
||||
if (data == null || data.getResult() == null) {
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "queryDriverSiteByCoordinate = null");
|
||||
if (routesResult != null) {
|
||||
routesResult = null;
|
||||
mNextStationIndex = 0;
|
||||
@@ -193,7 +190,7 @@ public class BusPassengerModel {
|
||||
|
||||
startOrStopCalculateRouteInfo(false);
|
||||
|
||||
if (mRouteLineInfoCallback != null){
|
||||
if (mRouteLineInfoCallback != null) {
|
||||
mRouteLineInfoCallback.showNoTaskView();
|
||||
}
|
||||
|
||||
@@ -201,8 +198,8 @@ public class BusPassengerModel {
|
||||
|
||||
return;
|
||||
}
|
||||
if (routesResult != null && data.getResult().equals(routesResult)){
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = not update");
|
||||
if (routesResult != null && data.getResult().equals(routesResult)) {
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "queryDriverSiteByCoordinate = not update");
|
||||
return;
|
||||
}
|
||||
routesResult = data.getResult();
|
||||
@@ -211,16 +208,16 @@ public class BusPassengerModel {
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = %s", msg
|
||||
+ ", sn = " +BusPassengerServiceManager.INSTANCE.getDriverAppSn());
|
||||
if (code == 1003){
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "queryDriverSiteByCoordinate = %s", msg
|
||||
+ ", sn = " + BusPassengerServiceManager.INSTANCE.getDriverAppSn());
|
||||
if (code == 1003) {
|
||||
queryDriverOperationDelay();
|
||||
}
|
||||
if (BusPassengerServiceManager.INSTANCE.getDriverAppSn().isEmpty()){
|
||||
if (BusPassengerServiceManager.INSTANCE.getDriverAppSn().isEmpty()) {
|
||||
//此处拦截是为了防止过程中乘客屏和司机端断连,拿不到司机端sn, 造成请求失败去刷新了界面
|
||||
return;
|
||||
}
|
||||
if (code == 1003){
|
||||
if (code == 1003) {
|
||||
routesResult = null;
|
||||
startOrStopCalculateRouteInfo(false);
|
||||
return;
|
||||
@@ -230,35 +227,35 @@ public class BusPassengerModel {
|
||||
}
|
||||
|
||||
private void updatePassengerRouteInfo(BusPassengerRoutesResult result) {
|
||||
if (mRouteLineInfoCallback != null){
|
||||
mRouteLineInfoCallback.updateLineInfo(result.getName(),result.getRunningDur());
|
||||
if (mRouteLineInfoCallback != null) {
|
||||
mRouteLineInfoCallback.updateLineInfo(result.getName(), result.getRunningDur());
|
||||
mRouteLineInfoCallback.hideNoTaskView();
|
||||
if (result.getSites() != null){
|
||||
if (result.getSites() != null) {
|
||||
List<BusPassengerStation> stations = result.getSites();
|
||||
mStations.clear();
|
||||
mStations.addAll(stations);
|
||||
for (int i = 0; i< stations.size(); i++){
|
||||
BusPassengerStation station = stations.get(i);
|
||||
if (station.getDrivingStatus() == STATION_STATUS_STOPPED && station.isLeaving() && i+1 < stations.size()){ //离站
|
||||
mRouteLineInfoCallback.updateStationsInfo(stations,i+1,false);
|
||||
if(mNextStationIndex != i+1){
|
||||
mTwoStationsRouts.clear();
|
||||
startRemainRouteInfo();
|
||||
}
|
||||
mNextStationIndex = i+1;
|
||||
for (int i = 0; i < stations.size(); i++) {
|
||||
BusPassengerStation station = stations.get(i);
|
||||
if (station.getDrivingStatus() == STATION_STATUS_STOPPED && station.isLeaving() && i + 1 < stations.size()) { //离站
|
||||
mRouteLineInfoCallback.updateStationsInfo(stations, i + 1, false);
|
||||
if (mNextStationIndex != i + 1) {
|
||||
mTwoStationsRouts.clear();
|
||||
startRemainRouteInfo();
|
||||
}
|
||||
mNextStationIndex = i + 1;
|
||||
|
||||
updateAutopilotControlParameters(result,i);
|
||||
return;
|
||||
}else if (station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving()){ //到站
|
||||
if (i == 0){
|
||||
startOrStopRouteAndWipe(false);
|
||||
}
|
||||
mPreRouteIndex = 0;
|
||||
startOrStopCalculateRouteInfo(false);
|
||||
mRouteLineInfoCallback.updateStationsInfo(stations,i,true);
|
||||
clearAutopilotControlParameters();
|
||||
return;
|
||||
}
|
||||
updateAutopilotControlParameters(result, i);
|
||||
return;
|
||||
} else if (station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving()) { //到站
|
||||
if (i == 0) {
|
||||
startOrStopRouteAndWipe(false);
|
||||
}
|
||||
mPreRouteIndex = 0;
|
||||
startOrStopCalculateRouteInfo(false);
|
||||
mRouteLineInfoCallback.updateStationsInfo(stations, i, true);
|
||||
clearAutopilotControlParameters();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -268,7 +265,7 @@ public class BusPassengerModel {
|
||||
private void updateAutopilotControlParameters(BusPassengerRoutesResult busRoutesResult,
|
||||
int leaveIndex) {
|
||||
|
||||
AutopilotControlParameters parameters = initAutopilotControlParameters(busRoutesResult,leaveIndex);
|
||||
AutopilotControlParameters parameters = initAutopilotControlParameters(busRoutesResult, leaveIndex);
|
||||
if (null == parameters) {
|
||||
CallerLogger.INSTANCE.e(M_BUS_P + TAG, "AutopilotControlParameters is empty.");
|
||||
return;
|
||||
@@ -284,11 +281,13 @@ public class BusPassengerModel {
|
||||
|
||||
private AutopilotControlParameters initAutopilotControlParameters(BusPassengerRoutesResult busRoutesResult,
|
||||
int leaveIndex) {
|
||||
if (busRoutesResult.getSites() == null){ return null ;}
|
||||
if (busRoutesResult.getSites() == null) {
|
||||
return null;
|
||||
}
|
||||
List<BusPassengerStation> stations = busRoutesResult.getSites();
|
||||
if (leaveIndex + 1 > stations.size() - 1) {
|
||||
CallerLogger.INSTANCE.e(M_BUS_P + TAG, "行程日志-mismatch condition1.");
|
||||
return null;
|
||||
CallerLogger.INSTANCE.e(M_BUS_P + TAG, "行程日志-mismatch condition1.");
|
||||
return null;
|
||||
}
|
||||
BusPassengerStation currentStation = stations.get(leaveIndex);
|
||||
BusPassengerStation nextStation = stations.get(leaveIndex + 1);
|
||||
@@ -340,7 +339,7 @@ public class BusPassengerModel {
|
||||
return;
|
||||
}
|
||||
|
||||
mControllerStatusCallbackMap.put(tag,callback);
|
||||
mControllerStatusCallbackMap.put(tag, callback);
|
||||
|
||||
}
|
||||
|
||||
@@ -348,16 +347,16 @@ public class BusPassengerModel {
|
||||
|
||||
// 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener);
|
||||
IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener );
|
||||
MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener );
|
||||
IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener);
|
||||
MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener);
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, mMapLocationListener);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, 10,mMapLocationListener);
|
||||
|
||||
//2021.11.1 自动驾驶路线规划接口
|
||||
CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener);
|
||||
CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener);
|
||||
|
||||
//监听司机端消息
|
||||
CallerTelematicListenerManager.INSTANCE.addListener(TAG,mReceivedMsgListener);
|
||||
CallerTelematicListenerManager.INSTANCE.addListener(TAG, mReceivedMsgListener);
|
||||
|
||||
AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext);
|
||||
}
|
||||
@@ -381,7 +380,7 @@ public class BusPassengerModel {
|
||||
private final IReceivedMsgListener mReceivedMsgListener = new IReceivedMsgListener() {
|
||||
@Override
|
||||
public void onReceivedServerSn(@Nullable String sn) {
|
||||
Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedServerSn = "+sn);
|
||||
Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedServerSn = " + sn);
|
||||
if (mDriverStatusCallback != null) {
|
||||
mDriverStatusCallback.updateDriverSn(sn);
|
||||
}
|
||||
@@ -389,16 +388,16 @@ public class BusPassengerModel {
|
||||
|
||||
@Override
|
||||
public void onReceivedMsg(int type, @NonNull byte[] byteArray) {
|
||||
if (OchCommonConst.BUSINESS_STRING == type){
|
||||
if (OchCommonConst.BUSINESS_STRING == type) {
|
||||
|
||||
BaseDPMsg baseMsg = GsonUtils.fromJson(new String(byteArray), BaseDPMsg.class);
|
||||
Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(baseMsg));
|
||||
Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(baseMsg));
|
||||
|
||||
if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_COMMON.getType()){
|
||||
if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_COMMON.getType()) {
|
||||
AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class);
|
||||
if (msg.isViewShow()){ //消息盒子显示内容
|
||||
if (msg.isViewShow()) { //消息盒子显示内容
|
||||
OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox(
|
||||
DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(),
|
||||
DateTimeUtil.getCurrentTimeStamp(), msg.getMsg(),
|
||||
OCHSocketMessageManager.OPERATION_SYSTEM);
|
||||
}
|
||||
}
|
||||
@@ -409,10 +408,10 @@ public class BusPassengerModel {
|
||||
//监听网络变化,避免启动机器时无网导致无法更新订单信息
|
||||
private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() {
|
||||
@Override
|
||||
public void onIntentReceived( String intentStr, Intent intent ) {
|
||||
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "onIntentReceived = %s", intentStr );
|
||||
if ( ConnectivityManager.CONNECTIVITY_ACTION.equals( intentStr ) ) {
|
||||
if ( NetworkUtils.isConnected( mContext ) ) {
|
||||
public void onIntentReceived(String intentStr, Intent intent) {
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "onIntentReceived = %s", intentStr);
|
||||
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
queryDriverOperationStatus();
|
||||
}
|
||||
}
|
||||
@@ -423,31 +422,33 @@ public class BusPassengerModel {
|
||||
private final IMogoStatusChangedListener mMogoStatusChangedListener = (descriptor, isTrue) -> {
|
||||
if (StatusDescriptor.VR_MODE == descriptor) {
|
||||
if (mControllerStatusCallbackMap.size() > 0) {
|
||||
for (IBusPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){
|
||||
for (IBusPassengerControllerStatusCallback callback : mControllerStatusCallbackMap.values()) {
|
||||
callback.onVRModeChanged(isTrue);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() {
|
||||
@Override
|
||||
public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) {
|
||||
if (null == gnssInfo) return;
|
||||
mLocation = gnssInfo;
|
||||
for (IBusPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){
|
||||
callback.onCarLocationChanged(gnssInfo);
|
||||
}
|
||||
private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = gnssInfo -> {
|
||||
if (null == gnssInfo) return;
|
||||
mLocation = gnssInfo;
|
||||
for (IBusPassengerControllerStatusCallback callback : mControllerStatusCallbackMap.values()) {
|
||||
callback.onCarLocationChanged(gnssInfo);
|
||||
}
|
||||
};
|
||||
|
||||
private volatile int mPreAutoStatus = -1;
|
||||
private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener() {
|
||||
|
||||
private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NonNull AutopilotStatusInfo autoPilotStatusInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotDockerInfo(@NonNull String dockerVersion) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotRouteLineId(long lineId) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -456,34 +457,24 @@ public class BusPassengerModel {
|
||||
|
||||
@Override
|
||||
public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {
|
||||
|
||||
}
|
||||
|
||||
private boolean arriveAtEnd = false; //乘客app专用字段
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
if (autopilotStatusInfo == null) return;
|
||||
int state = autopilotStatusInfo.getState();
|
||||
public void onAutopilotStatusResponse(int state) {
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning();
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
|
||||
if(state != mPreAutoStatus){
|
||||
mTwoStationsRouts.clear();
|
||||
}
|
||||
mTwoStationsRouts.clear();
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotEnable();
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
if(state != mPreAutoStatus){
|
||||
mTwoStationsRouts.clear();
|
||||
}
|
||||
mTwoStationsRouts.clear();
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotDisable();
|
||||
}else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING){
|
||||
if(state != mPreAutoStatus){
|
||||
mTwoStationsRouts.clear();
|
||||
}
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
|
||||
mTwoStationsRouts.clear();
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning();
|
||||
}
|
||||
mPreAutoStatus = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -502,60 +493,55 @@ public class BusPassengerModel {
|
||||
if (DebugConfig.isDebug()) {
|
||||
// ToastUtils.showShort("到达目的地");
|
||||
}
|
||||
if (mADASStatusCallback != null){
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotArriveEnd();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener(){
|
||||
|
||||
@Override
|
||||
public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp routeList) {
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "onAutopilotRotting = "
|
||||
+ GsonUtil.jsonFromObject(routeList));
|
||||
List<MessagePad.Location> routePoints = routeList.getWayPointsList();
|
||||
if (null != routePoints && routePoints.size() > 0){
|
||||
updateRoutePoints(routePoints);
|
||||
startToRouteAndWipe();
|
||||
}
|
||||
private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = routeList -> {
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "onAutopilotRotting = "
|
||||
+ GsonUtil.jsonFromObject(routeList));
|
||||
List<MessagePad.Location> routePoints = routeList.getWayPointsList();
|
||||
if (null != routePoints && routePoints.size() > 0) {
|
||||
updateRoutePoints(routePoints);
|
||||
startToRouteAndWipe();
|
||||
}
|
||||
};
|
||||
|
||||
public void updateRoutePoints(List<MessagePad.Location> routePoints){
|
||||
public void updateRoutePoints(List<MessagePad.Location> routePoints) {
|
||||
mRoutePoints.clear();
|
||||
List<MogoLocation> latLngModels = CoordinateCalculateRouteUtil
|
||||
.coordinateConverterWgsToGcjLocations(mContext,routePoints);
|
||||
.coordinateConverterWgsToGcjLocations(mContext, routePoints);
|
||||
mRoutePoints.addAll(latLngModels);
|
||||
calculateTwoStationsRoute();
|
||||
}
|
||||
|
||||
private void calculateTwoStationsRoute(){
|
||||
private void calculateTwoStationsRoute() {
|
||||
//找出前往站对应的轨迹点,拿出两站点的集合
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "mRoutePoints.size() = " + mRoutePoints.size());
|
||||
if (mRoutePoints.size() > 0) {
|
||||
if (mStations.size() > 1){ //两个站点及以上要计算两个站点间的轨迹路线
|
||||
if (mNextStationIndex <= mStations.size()-1 && mNextStationIndex - 1 >=0){
|
||||
if (mStations.size() > 1) { //两个站点及以上要计算两个站点间的轨迹路线
|
||||
if (mNextStationIndex <= mStations.size() - 1 && mNextStationIndex - 1 >= 0) {
|
||||
mTwoStationsRouts.clear();
|
||||
BusPassengerStation stationNext = mStations.get(mNextStationIndex);
|
||||
BusPassengerStation stationCur = mStations.get(mNextStationIndex - 1);
|
||||
//当前站在轨迹中对应的点
|
||||
int currentRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew(0
|
||||
,mRoutePoints
|
||||
,stationCur.getGcjLon(),stationCur.getGcjLat());
|
||||
, mRoutePoints
|
||||
, stationCur.getGcjLon(), stationCur.getGcjLat());
|
||||
//要前往的站在轨迹中对应的点
|
||||
int nextRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew(currentRouteIndex
|
||||
,mRoutePoints
|
||||
,stationNext.getGcjLon(),stationNext.getGcjLat());
|
||||
, mRoutePoints
|
||||
, stationNext.getGcjLon(), stationNext.getGcjLat());
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "轨迹排查==currentRouteIndex = " + currentRouteIndex
|
||||
+ ", nextRouteIndex = " + nextRouteIndex);
|
||||
if (currentRouteIndex < nextRouteIndex){ //如果找到的next在起点的轨迹前面,直接舍弃这个轨迹,不显示
|
||||
mTwoStationsRouts.addAll(mRoutePoints.subList(currentRouteIndex,nextRouteIndex + 1));
|
||||
if (currentRouteIndex < nextRouteIndex) { //如果找到的next在起点的轨迹前面,直接舍弃这个轨迹,不显示
|
||||
mTwoStationsRouts.addAll(mRoutePoints.subList(currentRouteIndex, nextRouteIndex + 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -563,10 +549,10 @@ public class BusPassengerModel {
|
||||
// mTwoStationsRouts.clear();
|
||||
// mTwoStationsRouts.addAll(mRoutePoints);
|
||||
// }
|
||||
if (mTwoStationsRouts.size() > 0){
|
||||
if (mTwoStationsRouts.size() > 0) {
|
||||
float sumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(mTwoStationsRouts);
|
||||
SharedPrefsMgr.getInstance(mContext).putInt(BusPassengerConst.BUS_SP_KEY_ORDER_SUM_DIS,(int) sumLength);
|
||||
if (mAutopilotPlanningCallback != null){
|
||||
SharedPrefsMgr.getInstance(mContext).putInt(BusPassengerConst.BUS_SP_KEY_ORDER_SUM_DIS, (int) sumLength);
|
||||
if (mAutopilotPlanningCallback != null) {
|
||||
mAutopilotPlanningCallback.updateTotalDistance();
|
||||
}
|
||||
}
|
||||
@@ -576,46 +562,46 @@ public class BusPassengerModel {
|
||||
public void dynamicCalculateRouteInfo() {
|
||||
//计算当前位置和下一站的剩余点集合
|
||||
//计算剩余点总里程和时间
|
||||
if (mTwoStationsRouts.size() == 0){
|
||||
if (mTwoStationsRouts.size() == 0) {
|
||||
calculateTwoStationsRoute();
|
||||
}
|
||||
if (mTwoStationsRouts.size() > 0 && mLocation != null){
|
||||
Map<Integer,List<MogoLocation>> lastPointsMap = CoordinateCalculateRouteUtil
|
||||
.getRemainPointListByCompareNew(mPreRouteIndex,mTwoStationsRouts,mLocation);
|
||||
for (int index: lastPointsMap.keySet()) {
|
||||
mPreRouteIndex = index;
|
||||
if (mTwoStationsRouts.size() > 0 && mLocation != null) {
|
||||
Map<Integer, List<MogoLocation>> lastPointsMap = CoordinateCalculateRouteUtil
|
||||
.getRemainPointListByCompareNew(mPreRouteIndex, mTwoStationsRouts, mLocation);
|
||||
for (int index : lastPointsMap.keySet()) {
|
||||
mPreRouteIndex = index;
|
||||
break;
|
||||
}
|
||||
|
||||
for (List<MogoLocation> lastPoints: lastPointsMap.values()){
|
||||
for (List<MogoLocation> lastPoints : lastPointsMap.values()) {
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "轨迹排查==lastPoints.size() = " + lastPoints.size());
|
||||
float lastSumLength = 0;
|
||||
if (lastPoints.size() == 1){ //只是最后一个点,计算当前位置和最后一个点的距离
|
||||
if (mNextStationIndex <= mStations.size()-1 && mNextStationIndex >= 0){
|
||||
if (lastPoints.size() == 1) { //只是最后一个点,计算当前位置和最后一个点的距离
|
||||
if (mNextStationIndex <= mStations.size() - 1 && mNextStationIndex >= 0) {
|
||||
BusPassengerStation stationNext = mStations.get(mNextStationIndex);
|
||||
lastSumLength = CoordinateUtils.calculateLineDistance(
|
||||
stationNext.getGcjLon(), stationNext.getGcjLat(),
|
||||
mLocation.getLongitude(), mLocation.getLatitude());
|
||||
}else {
|
||||
} else {
|
||||
lastSumLength = CoordinateUtils.calculateLineDistance(
|
||||
lastPoints.get(0).getLongitude(), lastPoints.get(0).getLatitude(),
|
||||
mLocation.getLongitude(), mLocation.getLatitude());
|
||||
}
|
||||
|
||||
}else {
|
||||
} else {
|
||||
lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(lastPoints);
|
||||
}
|
||||
|
||||
double lastTime = lastSumLength / getAverageSpeed() * 3.6 ; //秒
|
||||
double lastTime = lastSumLength / getAverageSpeed() * 3.6; //秒
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "轨迹排查==lastSumLength = " + lastSumLength);
|
||||
if (mAutopilotPlanningCallback != null){
|
||||
mAutopilotPlanningCallback.routePlanningToNextStationChanged((long)lastSumLength,(long) lastTime);
|
||||
if (mAutopilotPlanningCallback != null) {
|
||||
mAutopilotPlanningCallback.routePlanningToNextStationChanged((long) lastSumLength, (long) lastTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getAverageSpeed(){
|
||||
public int getAverageSpeed() {
|
||||
return BusPassengerConst.BUS_AVERAGE_SPEED;
|
||||
}
|
||||
|
||||
@@ -630,19 +616,20 @@ public class BusPassengerModel {
|
||||
|
||||
/**
|
||||
* 实时轨迹擦除
|
||||
*
|
||||
* @param isStart
|
||||
*/
|
||||
public void startOrStopRouteAndWipe(boolean isStart){
|
||||
if (isStart){
|
||||
public void startOrStopRouteAndWipe(boolean isStart) {
|
||||
if (isStart) {
|
||||
BusPassengerModelLoopManager.getInstance().startOrStopRouteAndWipe();
|
||||
}else {
|
||||
} else {
|
||||
mWipePreIndex = 0;
|
||||
BusPassengerModelLoopManager.getInstance().stopOrStopRouteAndWipe();
|
||||
}
|
||||
}
|
||||
|
||||
public void loopRouteAndWipe() {
|
||||
if (mRoutePoints != null && mRoutePoints.size() > 0 && mLocation != null){
|
||||
if (mRoutePoints != null && mRoutePoints.size() > 0 && mLocation != null) {
|
||||
int haveArrivedIndex = CoordinateCalculateRouteUtil
|
||||
.getArrivedPointIndexNew(mWipePreIndex,
|
||||
mRoutePoints,
|
||||
@@ -650,17 +637,18 @@ public class BusPassengerModel {
|
||||
|
||||
mWipePreIndex = haveArrivedIndex;
|
||||
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "thread = "+ Thread.currentThread().getName()+" haveArrivedIndex== " + haveArrivedIndex);
|
||||
if (mAutopilotPlanningCallback != null){
|
||||
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "thread = " + Thread.currentThread().getName() + " haveArrivedIndex== " + haveArrivedIndex);
|
||||
if (mAutopilotPlanningCallback != null) {
|
||||
List<LatLng> routePoints = CoordinateCalculateRouteUtil
|
||||
.coordinateConverterLocationToLatLng(mContext,mRoutePoints);
|
||||
mAutopilotPlanningCallback.routeResult(routePoints,haveArrivedIndex);
|
||||
.coordinateConverterLocationToLatLng(mContext, mRoutePoints);
|
||||
mAutopilotPlanningCallback.routeResult(routePoints, haveArrivedIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始轮询计算剩余里程和时间
|
||||
*
|
||||
* @param isStart
|
||||
*/
|
||||
public void startOrStopCalculateRouteInfo(boolean isStart) {
|
||||
|
||||
@@ -32,7 +32,6 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Liste
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.bus.passenger.R;
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerMapViewCallback;
|
||||
import com.mogo.och.bus.passenger.utils.BusPassengerMapAssetStyleUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -103,7 +102,7 @@ public class BusPassengerMapDirectionView
|
||||
initAMapView();
|
||||
|
||||
// 注册定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, this);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, 10,this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -94,8 +94,6 @@ public class OrderModel {
|
||||
private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引
|
||||
|
||||
private static volatile OrderModel sInstance;
|
||||
public double mLongitude = 0;
|
||||
public double mLatitude = 0;
|
||||
private Context mContext;
|
||||
private final List<BusStationBean> stationList = new ArrayList<>();
|
||||
private BusRoutesResult busRoutesResult = null;
|
||||
@@ -153,7 +151,7 @@ public class OrderModel {
|
||||
mContext = AbsMogoApplication.getApp();
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, mMapLocationListener);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,10, mMapLocationListener);
|
||||
|
||||
MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener);
|
||||
|
||||
@@ -382,8 +380,6 @@ public class OrderModel {
|
||||
@Override
|
||||
public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) {
|
||||
if (null == gnssInfo) return;
|
||||
mLongitude = gnssInfo.getLongitude();
|
||||
mLatitude = gnssInfo.getLatitude();
|
||||
if (mControllerStatusCallback != null) {
|
||||
mControllerStatusCallback.onCarLocationChanged(gnssInfo);
|
||||
}
|
||||
@@ -606,7 +602,7 @@ public class OrderModel {
|
||||
private void onStartAutopilot(int leaveIndex) {
|
||||
//开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启
|
||||
isGoingToNextStation = true;
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
|
||||
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
startAutopilot(false, leaveIndex);
|
||||
} else {
|
||||
@@ -1113,6 +1109,8 @@ public class OrderModel {
|
||||
|
||||
// 车机端上传心跳数据(只在出车状态时上传)
|
||||
public void runCarHeartbeat() {
|
||||
double mLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude();
|
||||
double mLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude();
|
||||
OrderServiceManager.runCarHeartbeat(mContext, mLongitude, mLatitude,
|
||||
new OchCommonServiceCallback<BaseData>() {
|
||||
@Override
|
||||
@@ -1138,6 +1136,8 @@ public class OrderModel {
|
||||
|
||||
// 登出
|
||||
public void logout() {
|
||||
double mLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude();
|
||||
double mLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude();
|
||||
loginService.loginOut(mLatitude, mLongitude);
|
||||
}
|
||||
|
||||
|
||||
@@ -158,7 +158,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
});
|
||||
|
||||
initListener();
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() {
|
||||
|
||||
@Override
|
||||
@@ -301,9 +301,6 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
|
||||
@Override
|
||||
public void onAutopilotRecordResult(@Nullable RecordPanelOuterClass.RecordPanel recordPanel) {
|
||||
// if (!HmiBuildConfig.isShowBadCaseView && recordPanel != null && recordPanel.getType() == 1 && recordPanel.getStat() == 100) {
|
||||
// CallerDevaToolsManager.INSTANCE.onReceiveBadCaseRecord(recordPanel);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -448,7 +445,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
|
||||
public void stopAnimAndUpdateBtnStatus() {
|
||||
stopAutopilotAnimation();
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -522,7 +519,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
public void run() { //未启动成功做处理
|
||||
if (isAnimateRunning) {// 只判断动画是否在进行,根据自动驾驶当前状态去设置自动驾驶状态
|
||||
stopAutopilotAnimation();
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
}
|
||||
}
|
||||
}, TIMER_START_AUTOPILOT_INTERVAL);
|
||||
|
||||
@@ -13,7 +13,6 @@ import androidx.constraintlayout.widget.Group;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.data.map.CenterLine;
|
||||
import com.mogo.eagle.core.data.temp.EventLogout;
|
||||
@@ -108,7 +107,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
groupStationsPanel = findViewById(R.id.group_stations_panel);
|
||||
noDataView = findViewById(R.id.no_line_data_view);
|
||||
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
// 初始化的时候设置 UI 按钮状态
|
||||
showAutopilotBiz();
|
||||
|
||||
@@ -455,7 +454,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
}
|
||||
|
||||
//清除鹰眼右下角小地图轨迹
|
||||
CallerLogger.INSTANCE.d(SceneConstant.M_MAP, "clearBusStationsMarkers --------->");
|
||||
CallerLogger.INSTANCE.d(SceneConstant.M_BUS, "clearBusStationsMarkers --------->");
|
||||
smallMapView.clearPolyline();
|
||||
}
|
||||
|
||||
@@ -532,7 +531,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
public void onClick(View v) {
|
||||
if (v.getId() == R.id.switch_line_btn) {//切换路线条件: 自动驾驶过程中,点击则toast提示:自动驾驶中,不可切换路线
|
||||
//本次行程未结束,不支持切换路线。点击则toast提示:当前行程未完成,不可切换路线
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
|
||||
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
ToastUtils.showLong(getResources().getString(R.string.bus_switch_line_btn_warning1));
|
||||
return;
|
||||
|
||||
@@ -34,8 +34,6 @@ import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.voice.VoiceNotice;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -45,8 +43,6 @@ import system_master.SystemStatusInfo;
|
||||
|
||||
/**
|
||||
* 网约车小巴
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class BusPresenter extends Presenter<BusFragment>
|
||||
implements IRefreshBusStationsCallback, ISlidePannelHideCallback
|
||||
@@ -55,7 +51,7 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
private static final String TAG = "BusPresenter";
|
||||
|
||||
private int currentAutopilotStatus = -1;
|
||||
private List<BusStationBean> mStationList = new ArrayList<>();
|
||||
private final List<BusStationBean> mStationList = new ArrayList<>();
|
||||
private int mCurrentStation = 0;
|
||||
|
||||
public BusPresenter(BusFragment view) {
|
||||
@@ -168,9 +164,7 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
int state = autopilotStatusInfo.getState();
|
||||
// CallerLogger.INSTANCE.d(M_BUS + TAG, "onStateChange: " + state + "currentAutopilotStatus = " + currentAutopilotStatus);
|
||||
public void onAutopilotStatusResponse(int state) {
|
||||
switch (state) {
|
||||
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE:
|
||||
if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
|
||||
@@ -206,26 +200,21 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
&& (
|
||||
(mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1)
|
||||
&& OrderModel.getInstance().isGoingToNextStation()
|
||||
|
||||
)
|
||||
) {
|
||||
CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel=", "有美化功能");
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
currentAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE;
|
||||
}
|
||||
runOnUIThread(() -> {
|
||||
mView.onAutopilotStatusChanged(currentAutopilotStatus);
|
||||
});
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(currentAutopilotStatus));
|
||||
break;
|
||||
case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING:
|
||||
if (FunctionBuildConfig.isDemoMode
|
||||
&& (
|
||||
(mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1)
|
||||
&& OrderModel.getInstance().isGoingToNextStation()
|
||||
|
||||
)
|
||||
) {
|
||||
CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel=", "有美化功能");
|
||||
@@ -234,9 +223,7 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
|
||||
currentAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING;
|
||||
}
|
||||
runOnUIThread(() -> {
|
||||
mView.onAutopilotStatusChanged(currentAutopilotStatus);
|
||||
});
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(currentAutopilotStatus));
|
||||
break;
|
||||
default:
|
||||
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
|
||||
@@ -275,8 +262,6 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
|
||||
/**
|
||||
* 测试使用
|
||||
*
|
||||
* @param status
|
||||
*/
|
||||
public void debugAutoPilotStatus(int status) {
|
||||
AutopilotStatusInfo info = new AutopilotStatusInfo();
|
||||
@@ -340,4 +325,13 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
public void onStartAdasFailure() {
|
||||
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NonNull AutopilotStatusInfo autoPilotStatusInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotDockerInfo(@NonNull String dockerVersion) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -50,13 +50,13 @@ public class BusAnalyticsManager {
|
||||
|
||||
CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg );
|
||||
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() !=
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() !=
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_CODE, failCode);
|
||||
mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_MSG, failMsg);
|
||||
}
|
||||
mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_RESULT
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() ==
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getState() ==
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING);
|
||||
|
||||
MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams);
|
||||
|
||||
@@ -54,6 +54,7 @@ public class SlidePanelView extends View {
|
||||
NORMAL_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_RIGHT, NORMAL_TEXT_MARGIN_RIGHT);
|
||||
SHORT_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_LEFT, SHORT_TEXT_MARGIN_LEFT);
|
||||
SHORT_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_RIGHT, SHORT_TEXT_MARGIN_RIGHT);
|
||||
mTypedArray.recycle();
|
||||
init();
|
||||
}
|
||||
|
||||
@@ -129,7 +130,7 @@ public class SlidePanelView extends View {
|
||||
textPaint.setShader(textGradient);
|
||||
textPaint.getFontMetrics(blockTextMetrics);
|
||||
int size = AutoSizeUtils.dp2px(getContext(), 120);
|
||||
BitmapFactory.Options opts = new BitmapFactory.Options();
|
||||
BitmapFactory.Options opts = new BitmapFactory.Options(); //todo yakun 优化
|
||||
opts.inDensity = (int) AutoSizeConfig.getInstance().getInitDensity();
|
||||
bmBlock = BitmapFactory.decodeResource(getResources(), R.drawable.bus_base_slide_block,opts);
|
||||
bmBlock = Bitmap.createScaledBitmap(bmBlock, size, size, true);
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLonLat
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
|
||||
@@ -77,7 +76,8 @@ object CharterPassengerModel {
|
||||
private var mContext: Context = AbsMogoApplication.getApp()
|
||||
|
||||
//Model->Presenter:自动驾驶状态相关
|
||||
var mAutoStatusChnageListener = ConcurrentHashMap<String, ICharterPassengerAutoStatusChangeCallback>()
|
||||
var mAutoStatusChnageListener =
|
||||
ConcurrentHashMap<String, ICharterPassengerAutoStatusChangeCallback>()
|
||||
|
||||
// 定位监听
|
||||
private val mControllerStatusCallbackMap =
|
||||
@@ -110,17 +110,18 @@ object CharterPassengerModel {
|
||||
* 到站是否播报 key 线路id+业务 value 是否播报
|
||||
*
|
||||
*/
|
||||
private var broadcastList : MutableMap<String,Boolean> = HashMap()
|
||||
private var broadcastList: MutableMap<String, Boolean> = HashMap()
|
||||
|
||||
// 到站仅一次
|
||||
private val endKey = "arrivedLine"
|
||||
private val endKeyRequestIng = "arrivedLineRequestIng"
|
||||
private val ending100Key = "arrivingLine"
|
||||
private val min5Speak = "min5Speak"
|
||||
|
||||
private var carTypeChageListener: IOrderChangeCallback?=null
|
||||
private var carTypeChageListener: IOrderChangeCallback? = null
|
||||
|
||||
private var subscribeCountDown: Disposable?=null
|
||||
var switchLine5minWait: Disposable?=null
|
||||
private var subscribeCountDown: Disposable? = null
|
||||
var switchLine5minWait: Disposable? = null
|
||||
|
||||
@Volatile
|
||||
var newCheckedSite: SiteInfoResponse.SiteInfo? = null
|
||||
@@ -147,7 +148,7 @@ object CharterPassengerModel {
|
||||
// 自动驾驶状态变化监听
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener)
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 4 ,mMapLocationListener)
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 4, mMapLocationListener)
|
||||
// 自动驾驶路线规划接口 返回自动驾驶轨迹
|
||||
CallerPlanningRottingListenerManager.addListener(TAG, moGoAutopilotPlanningListener)
|
||||
// 登录状态监听
|
||||
@@ -163,6 +164,7 @@ object CharterPassengerModel {
|
||||
}
|
||||
mControllerStatusCallbackMap[tag] = callback
|
||||
}
|
||||
|
||||
fun setAutoStatusCallback(tag: String, callback: ICharterPassengerAutoStatusChangeCallback?) {
|
||||
if (tag.isBlank()) return
|
||||
if (callback == null) {
|
||||
@@ -213,24 +215,17 @@ object CharterPassengerModel {
|
||||
}
|
||||
}
|
||||
|
||||
// 前一个自动驾驶状体
|
||||
@Volatile
|
||||
private var mPreAutoStatus = -1
|
||||
|
||||
// 自动驾驶状态监听
|
||||
private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener =
|
||||
object : IMoGoAutopilotStatusListener {
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
val state = autoPilotStatusInfo.state
|
||||
if(mPreAutoStatus!=state){
|
||||
mPreAutoStatus = state
|
||||
mAutoStatusChnageListener.forEach {
|
||||
it.value.onAutoStatusChange(state)
|
||||
}
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
mAutoStatusChnageListener.forEach {
|
||||
it.value.onAutoStatusChange(state)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) {
|
||||
CallerLogger.d(M_BUS_P + TAG,"底盘给到站信息")
|
||||
CallerLogger.d(M_BUS_P + TAG, "底盘给到站信息")
|
||||
arriveDest()
|
||||
}
|
||||
}
|
||||
@@ -260,11 +255,15 @@ object CharterPassengerModel {
|
||||
.coordinateConverterWgsToGcjLocations(mContext, routePoints)
|
||||
mRoutePoints = latLngModels
|
||||
}
|
||||
fun cleanRoutePoints(){
|
||||
|
||||
fun cleanRoutePoints() {
|
||||
mRoutePoints = null
|
||||
}
|
||||
|
||||
fun setStatusChangeListener(tag:String,orderStatusChangeListener: IOrderStatusChangeListener?) {
|
||||
fun setStatusChangeListener(
|
||||
tag: String,
|
||||
orderStatusChangeListener: IOrderStatusChangeListener?
|
||||
) {
|
||||
if (tag.isBlank()) return
|
||||
if (orderStatusChangeListener == null) {
|
||||
orderStatusChangeListeners.remove(tag)
|
||||
@@ -272,7 +271,8 @@ object CharterPassengerModel {
|
||||
}
|
||||
orderStatusChangeListeners[tag] = orderStatusChangeListener
|
||||
}
|
||||
fun setStationDistanceListener(tag:String,orderStatusChangeListener: IDistanceCallback?) {
|
||||
|
||||
fun setStationDistanceListener(tag: String, orderStatusChangeListener: IDistanceCallback?) {
|
||||
if (tag.isBlank()) return
|
||||
if (orderStatusChangeListener == null) {
|
||||
stationDistanceListener.remove(tag)
|
||||
@@ -280,7 +280,8 @@ object CharterPassengerModel {
|
||||
}
|
||||
stationDistanceListener[tag] = orderStatusChangeListener
|
||||
}
|
||||
fun setOrderLeftTimeListeners(tag:String,orderStatusChangeListener: ITimeCallback?) {
|
||||
|
||||
fun setOrderLeftTimeListeners(tag: String, orderStatusChangeListener: ITimeCallback?) {
|
||||
if (tag.isBlank()) return
|
||||
if (orderStatusChangeListener == null) {
|
||||
orderLeftTimeListeners.remove(tag)
|
||||
@@ -291,14 +292,15 @@ object CharterPassengerModel {
|
||||
orderStatusChangeListener.setOrderTimeCallBack(leftTime)
|
||||
}
|
||||
|
||||
fun setCarTypeChangeListener(carTypeChageListener: IOrderChangeCallback?){
|
||||
fun setCarTypeChangeListener(carTypeChageListener: IOrderChangeCallback?) {
|
||||
this.carTypeChageListener = carTypeChageListener
|
||||
}
|
||||
|
||||
fun getCurrentOrderStatus(): OrderStatusEnum {
|
||||
return this.orderStatus
|
||||
}
|
||||
fun getCurrentOrderInfo():OrderInfoResponse.OrderInfo?{
|
||||
|
||||
fun getCurrentOrderInfo(): OrderInfoResponse.OrderInfo? {
|
||||
return orderInfo
|
||||
}
|
||||
// endregion
|
||||
@@ -357,13 +359,13 @@ object CharterPassengerModel {
|
||||
BusPassengerServiceManager.queryOrderInfo(
|
||||
mContext, object : OchCommonServiceCallback<OrderInfoResponse> {
|
||||
override fun onSuccess(data: OrderInfoResponse?) {
|
||||
CallerLogger.d(M_BUS_P+TAG,"订单信息:$data")
|
||||
if (data?.data == null){
|
||||
if(orderInfo!=null){
|
||||
CallerLogger.d(M_BUS_P + TAG, "订单信息:$data")
|
||||
if (data?.data == null) {
|
||||
if (orderInfo != null) {
|
||||
// 启动车辆服务状态
|
||||
startCarStatusLoop()
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
// 判断是否有订单
|
||||
ordrLagic(data.data)
|
||||
}
|
||||
@@ -382,21 +384,26 @@ object CharterPassengerModel {
|
||||
// 有订单有线路后结束轮训
|
||||
orderData.let { order ->
|
||||
//设置车模
|
||||
if (this.orderInfo?.productType!=orderData.productType) {
|
||||
if (this.orderInfo?.productType != orderData.productType) {
|
||||
this.carTypeChageListener?.setCarChangeListener(orderData.productType)
|
||||
CallerLogger.d(M_BUS_P+TAG,"设置车模")
|
||||
CallerLogger.d(M_BUS_P + TAG, "设置车模")
|
||||
}
|
||||
if(this.orderInfo?.siteId!=orderData.siteId){
|
||||
if (this.orderInfo?.siteId != orderData.siteId) {
|
||||
val coordinateConverterWgsToGcj =
|
||||
CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(
|
||||
mContext,
|
||||
order.wgs84Lon!!,
|
||||
order.wgs84Lat!!
|
||||
)
|
||||
this.carTypeChageListener?.setEndStationCallBack(order.siteId,order.siteName,coordinateConverterWgsToGcj.longitude,coordinateConverterWgsToGcj.latitude)
|
||||
this.carTypeChageListener?.setEndStationCallBack(
|
||||
order.siteId,
|
||||
order.siteName,
|
||||
coordinateConverterWgsToGcj.longitude,
|
||||
coordinateConverterWgsToGcj.latitude
|
||||
)
|
||||
}
|
||||
this.orderInfo?.orderNo?.let {
|
||||
if(it!=orderData.orderNo){
|
||||
if (it != orderData.orderNo) {
|
||||
// orderNo 变后清理
|
||||
SharedPrefs.getInstance(mContext).remove("${it}$min5Speak")
|
||||
}
|
||||
@@ -413,7 +420,7 @@ object CharterPassengerModel {
|
||||
this.orderInfo = orderData
|
||||
setOrderStatus(OrderStatusEnum.OrdersWithLine)
|
||||
updateAutopilotControlParameters()
|
||||
}else{
|
||||
} else {
|
||||
this.orderInfo = orderData
|
||||
}
|
||||
//计算终点距离
|
||||
@@ -433,7 +440,7 @@ object CharterPassengerModel {
|
||||
)
|
||||
// 小于15m到站
|
||||
if (calculateLineDistance < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE && calculateLineDistance > 0) {
|
||||
CallerLogger.d(M_BUS_P + TAG,"小于15米到站1")
|
||||
CallerLogger.d(M_BUS_P + TAG, "小于15米到站1")
|
||||
arriveDest()
|
||||
}
|
||||
if (calculateLineDistance < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE && calculateLineDistance > 0) {
|
||||
@@ -450,7 +457,7 @@ object CharterPassengerModel {
|
||||
fun hasSetLineAndSite(): Pair<LineInfoResponse.LineInfo, SiteInfoResponse.SiteInfo>? {
|
||||
orderInfo?.let {
|
||||
if (it.lineId != null && it.lineId > 0 && it.siteId != null && it.siteId!! > 0) {
|
||||
if(it.arriveStatus==OrderInfoResponse.ARRIVED){
|
||||
if (it.arriveStatus == OrderInfoResponse.ARRIVED) {
|
||||
return null
|
||||
}
|
||||
val lineInfo = LineInfoResponse.LineInfo(it.lineName, it.lineId)
|
||||
@@ -471,7 +478,8 @@ object CharterPassengerModel {
|
||||
}
|
||||
return null
|
||||
}
|
||||
fun hasOrder():Boolean{
|
||||
|
||||
fun hasOrder(): Boolean {
|
||||
return orderInfo != null
|
||||
}
|
||||
// endregion
|
||||
@@ -542,7 +550,7 @@ object CharterPassengerModel {
|
||||
private fun startCalibrationLoop() {
|
||||
BusPassengerModelLoopManager.setLoopFunction(
|
||||
TAGCALIBRATION,
|
||||
LoopInfo(120, ::queryBusinessTime,immediately = true)
|
||||
LoopInfo(120, ::queryBusinessTime, immediately = true)
|
||||
)
|
||||
CallerLogger.d(M_BUS_P + TAG, "启动时间校准轮询")
|
||||
}
|
||||
@@ -572,42 +580,43 @@ object CharterPassengerModel {
|
||||
}
|
||||
val leadTime = endlast / 1000
|
||||
subscribeCountDown =
|
||||
Observable.intervalRange(0L, leadTime, 0, 5, TimeUnit.SECONDS)
|
||||
.map { aLong -> leadTime - aLong }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(Schedulers.io())
|
||||
.subscribe{millisUntilFinished->
|
||||
if (millisUntilFinished <= 300L) {
|
||||
orderInfo?.let {
|
||||
val isPlayed = SharedPrefs.getInstance(mContext)
|
||||
.getBoolean("${it.orderNo}$min5Speak", false)
|
||||
if (!isPlayed) {
|
||||
//发送 通知
|
||||
OCHSocketMessageManager.pushAppOperationalMsgBox(
|
||||
DateTimeUtil.getCurrentTimeStamp(),
|
||||
AbsMogoApplication.getApp()
|
||||
.getString(R.string.m1_end_order_5min), 2
|
||||
)
|
||||
VoiceManager.surplus5min(VoiceFocusManager.getVoiceCmdCallBack())
|
||||
CallerLogger.d(M_BUS_P+ TAG,"倒计时5分钟${it.orderNo}")
|
||||
SharedPrefs.getInstance(mContext).putBoolean("${it.orderNo}$min5Speak",true)
|
||||
Observable.intervalRange(0L, leadTime, 0, 5, TimeUnit.SECONDS)
|
||||
.map { aLong -> leadTime - aLong }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(Schedulers.io())
|
||||
.subscribe { millisUntilFinished ->
|
||||
if (millisUntilFinished <= 300L) {
|
||||
orderInfo?.let {
|
||||
val isPlayed = SharedPrefs.getInstance(mContext)
|
||||
.getBoolean("${it.orderNo}$min5Speak", false)
|
||||
if (!isPlayed) {
|
||||
//发送 通知
|
||||
OCHSocketMessageManager.pushAppOperationalMsgBox(
|
||||
DateTimeUtil.getCurrentTimeStamp(),
|
||||
AbsMogoApplication.getApp()
|
||||
.getString(R.string.m1_end_order_5min), 2
|
||||
)
|
||||
VoiceManager.surplus5min(VoiceFocusManager.getVoiceCmdCallBack())
|
||||
CallerLogger.d(M_BUS_P + TAG, "倒计时5分钟${it.orderNo}")
|
||||
SharedPrefs.getInstance(mContext)
|
||||
.putBoolean("${it.orderNo}$min5Speak", true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(orderInfo==null){
|
||||
subscribeCountDown?.let {
|
||||
if (!it.isDisposed) {
|
||||
it.dispose()
|
||||
if (orderInfo == null) {
|
||||
subscribeCountDown?.let {
|
||||
if (!it.isDisposed) {
|
||||
it.dispose()
|
||||
}
|
||||
}
|
||||
invokeOrderLeftTimeListeners(-1)
|
||||
invokeStationDistanceListener(-1, -1)
|
||||
} else {
|
||||
invokeOrderLeftTimeListeners(millisUntilFinished)
|
||||
}
|
||||
invokeOrderLeftTimeListeners(-1)
|
||||
invokeStationDistanceListener(-1,-1)
|
||||
}else{
|
||||
invokeOrderLeftTimeListeners(millisUntilFinished)
|
||||
CallerLogger.d(M_BUS_P + TAG, "订单倒计时${millisUntilFinished}")
|
||||
}
|
||||
CallerLogger.d(M_BUS_P + TAG, "订单倒计时${millisUntilFinished}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -627,9 +636,12 @@ object CharterPassengerModel {
|
||||
//设置全局轨迹信息
|
||||
locusInfo = data.data
|
||||
|
||||
CallerLogger.d(M_BUS_P+TAG,"查询自动驾驶轨迹信息")
|
||||
CallerLogger.d(M_BUS_P+TAG,GsonUtil.jsonFromObject(
|
||||
locusInfo))
|
||||
CallerLogger.d(M_BUS_P + TAG, "查询自动驾驶轨迹信息")
|
||||
CallerLogger.d(
|
||||
M_BUS_P + TAG, GsonUtil.jsonFromObject(
|
||||
locusInfo
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
@@ -667,15 +679,15 @@ object CharterPassengerModel {
|
||||
mLocationGCJ02?.let {
|
||||
orderInfo?.let { order ->
|
||||
CallerLogger.d(M_BUS_P + "calculateDistance", "订单信息:$order")
|
||||
if(order.siteId==null||order.siteId==0L||
|
||||
order.wgs84Lat==null||order.wgs84Lat==0.0||
|
||||
order.wgs84Lon==null||order.wgs84Lon==0.0
|
||||
){
|
||||
if (order.siteId == null || order.siteId == 0L ||
|
||||
order.wgs84Lat == null || order.wgs84Lat == 0.0 ||
|
||||
order.wgs84Lon == null || order.wgs84Lon == 0.0
|
||||
) {
|
||||
CallerLogger.d(M_BUS_P + "calculateDistance", "站点信息未获得")
|
||||
return
|
||||
}
|
||||
newCheckedSite?.let {
|
||||
if(it.siteId!=order.siteId){
|
||||
if (it.siteId != order.siteId) {
|
||||
CallerLogger.d(M_BUS_P + "calculateDistance", "站点和已选不吻合")
|
||||
return
|
||||
}
|
||||
@@ -699,46 +711,52 @@ object CharterPassengerModel {
|
||||
mogoLocation.latitude
|
||||
)
|
||||
CallerLogger.d(M_BUS_P + "calculateDistance", "两点距离和站点的直线距离:${lastSumLength}")
|
||||
if(lastSumLength>100) {
|
||||
if (mRoutePoints==null||mRoutePoints?.size == 0){
|
||||
if (lastSumLength > 100) {
|
||||
if (mRoutePoints == null || mRoutePoints?.size == 0) {
|
||||
//ToastCharterUtils.showLong("缺少轨迹数据暂停计算")
|
||||
CallerLogger.d(M_BUS_P + "calculateDistance两点距离",
|
||||
CallerLogger.d(
|
||||
M_BUS_P + "calculateDistance两点距离",
|
||||
"缺少轨迹数据"
|
||||
)
|
||||
return
|
||||
}
|
||||
// 计算距离
|
||||
val templastSumLength =
|
||||
val templastSumLength =
|
||||
CoordinateCalculateRouteUtil.calculateRouteSumLength(
|
||||
mRoutePoints,
|
||||
it,
|
||||
mogoLocation
|
||||
)
|
||||
CallerLogger.d(M_BUS_P + TAG, "使用轨迹轨迹:${mRoutePoints?.size}--第一个点${mRoutePoints!![0]}--最后一个点:${mRoutePoints!!.last()}")
|
||||
CallerLogger.d(
|
||||
M_BUS_P + TAG,
|
||||
"使用轨迹轨迹:${mRoutePoints?.size}--第一个点${mRoutePoints!![0]}--最后一个点:${mRoutePoints!!.last()}"
|
||||
)
|
||||
CallerLogger.d(M_BUS_P + "calculateDistance", "轨迹计算的距离$templastSumLength")
|
||||
if(templastSumLength>100){
|
||||
if (templastSumLength > 100) {
|
||||
lastSumLength = templastSumLength
|
||||
}
|
||||
}
|
||||
|
||||
val lastTime: Double = lastSumLength / CharterPassengerConst.Charter_AVERAGE_SPEED * 3.6 //秒
|
||||
val lastTime: Double =
|
||||
lastSumLength / CharterPassengerConst.Charter_AVERAGE_SPEED * 3.6 //秒
|
||||
|
||||
CallerLogger.d(M_BUS_P + "calculateDistance",
|
||||
CallerLogger.d(
|
||||
M_BUS_P + "calculateDistance",
|
||||
"最终信息:lastSumLength: ${lastSumLength}lastTime : $lastTime thread = ${Thread.currentThread().name}"
|
||||
)
|
||||
if (lastSumLength < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE&&lastSumLength>0) {
|
||||
CallerLogger.d(M_BUS_P + TAG,"小于100米到站2")
|
||||
if (lastSumLength < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE && lastSumLength > 0) {
|
||||
CallerLogger.d(M_BUS_P + TAG, "小于100米到站2")
|
||||
arriveDestSoon()
|
||||
}
|
||||
if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE&&lastSumLength>0) {
|
||||
CallerLogger.d(M_BUS_P + TAG,"小于15米到站2")
|
||||
if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE && lastSumLength > 0) {
|
||||
CallerLogger.d(M_BUS_P + TAG, "小于15米到站2")
|
||||
arriveDest()
|
||||
return
|
||||
}
|
||||
if(order.arriveStatus==OrderInfoResponse.ARRIVING) {
|
||||
if (order.arriveStatus == OrderInfoResponse.ARRIVING) {
|
||||
invokeStationDistanceListener(lastSumLength.toLong(), lastTime.toLong())
|
||||
}else{
|
||||
invokeStationDistanceListener(-1,-1)
|
||||
} else {
|
||||
invokeStationDistanceListener(-1, -1)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -748,7 +766,7 @@ object CharterPassengerModel {
|
||||
|
||||
private fun setOrderStatus(orderStatus: OrderStatusEnum) {
|
||||
if (this.orderStatus != orderStatus) {
|
||||
CallerLogger.d(M_BUS_P + TAG,"${this.orderInfo?.orderNo}新的状态:$orderStatus")
|
||||
CallerLogger.d(M_BUS_P + TAG, "${this.orderInfo?.orderNo}新的状态:$orderStatus")
|
||||
this.orderStatus = orderStatus
|
||||
for (callback in orderStatusChangeListeners.values) {
|
||||
callback.onStatusChange(this.orderStatus)
|
||||
@@ -756,10 +774,10 @@ object CharterPassengerModel {
|
||||
}
|
||||
}
|
||||
|
||||
fun setEndOrderStatus(){
|
||||
fun setEndOrderStatus() {
|
||||
UiThreadHandler.postDelayed({
|
||||
setOrderStatus(OrderStatusEnum.NoOrderUse)
|
||||
},1000)
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -786,16 +804,16 @@ object CharterPassengerModel {
|
||||
val calculateLineDistanceNext = CoordinateUtils.calculateLineDistance(
|
||||
currentInfo.longitude,
|
||||
currentInfo.latitude,
|
||||
data[index+1].GcjLon!!,
|
||||
data[index+1].GcjLat!!
|
||||
data[index + 1].GcjLon!!,
|
||||
data[index + 1].GcjLat!!
|
||||
)
|
||||
if(calculateLineDistanceNext<CharterPassengerConst.MIN_DISTANCE_STATION){
|
||||
if (calculateLineDistanceNext < CharterPassengerConst.MIN_DISTANCE_STATION) {
|
||||
if (index + 2 <= data.size - 1) {
|
||||
return Pair(index + 2, true)// 下下个站点
|
||||
}else{
|
||||
} else {
|
||||
return Pair(-1, true)// 距离最后一个站点小于30m
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
return Pair(index + 1, true)// 下个站点
|
||||
}
|
||||
} else {
|
||||
@@ -807,7 +825,7 @@ object CharterPassengerModel {
|
||||
}
|
||||
}
|
||||
for (mutableEntry in distanceMap) {
|
||||
CallerLogger.d(M_BUS_P+ TAG,"距离:${mutableEntry.key}-----第几个站点${mutableEntry.value}")
|
||||
CallerLogger.d(M_BUS_P + TAG, "距离:${mutableEntry.key}-----第几个站点${mutableEntry.value}")
|
||||
}
|
||||
var middle = -1
|
||||
if (distanceMap.size >= 2) {
|
||||
@@ -815,7 +833,7 @@ object CharterPassengerModel {
|
||||
middle = mutableEntry.value
|
||||
break
|
||||
}
|
||||
if(middle==0){
|
||||
if (middle == 0) {
|
||||
return Pair(1, false)
|
||||
}
|
||||
mLocationGCJ02?.let {
|
||||
@@ -824,7 +842,7 @@ object CharterPassengerModel {
|
||||
// middle middle+1
|
||||
// middle-1 middle-2
|
||||
// middle+1 middle+2
|
||||
if(middle-1>=0) {
|
||||
if (middle - 1 >= 0) {
|
||||
val degree = CoordinateCalculateRouteUtil.getDegree(
|
||||
it.longitude, it.latitude,
|
||||
data.get(middle).GcjLon!!, data.get(middle).GcjLat!!,
|
||||
@@ -834,17 +852,17 @@ object CharterPassengerModel {
|
||||
return Pair(middle, false)
|
||||
}
|
||||
}
|
||||
if(middle+1<data.size) {
|
||||
if (middle + 1 < data.size) {
|
||||
val degree = CoordinateCalculateRouteUtil.getDegree(
|
||||
it.longitude, it.latitude,
|
||||
data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!,
|
||||
data.get(middle).GcjLon!!, data.get(middle).GcjLat!!,
|
||||
)
|
||||
if (degree > 90) {
|
||||
return Pair(middle+1, false)
|
||||
return Pair(middle + 1, false)
|
||||
}
|
||||
}
|
||||
if(middle-2>=0) {
|
||||
if (middle - 2 >= 0) {
|
||||
val degree = CoordinateCalculateRouteUtil.getDegree(
|
||||
it.longitude, it.latitude,
|
||||
data.get(middle - 1).GcjLon!!, data.get(middle - 1).GcjLat!!,
|
||||
@@ -854,11 +872,11 @@ object CharterPassengerModel {
|
||||
return Pair(middle - 1, false)
|
||||
}
|
||||
}
|
||||
if(middle+2<data.size) {
|
||||
if (middle + 2 < data.size) {
|
||||
val degree = CoordinateCalculateRouteUtil.getDegree(
|
||||
it.longitude, it.latitude,
|
||||
data.get(middle + 2).GcjLon!!, data.get(middle + 2).GcjLat!!,
|
||||
data.get(middle+1).GcjLon!!, data.get(middle+1).GcjLat!!,
|
||||
data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!,
|
||||
)
|
||||
if (degree > 90) {
|
||||
return Pair(middle + 2, false)
|
||||
@@ -876,21 +894,29 @@ object CharterPassengerModel {
|
||||
BusPassengerServiceManager.endOrder(mContext, it, callback)
|
||||
}
|
||||
}
|
||||
fun getLineTrajectory(lineId: Long,callback: OchCommonServiceCallback<TrajectoriesResponse>?) {
|
||||
|
||||
fun getLineTrajectory(lineId: Long, callback: OchCommonServiceCallback<TrajectoriesResponse>?) {
|
||||
BusPassengerServiceManager.queryLineLocation(mContext, lineId = lineId.toString(), callback)
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun arriveDest() {
|
||||
val (order, lineId, siteId) = getOrderInfo()
|
||||
if(order!=null&&lineId!=null&&siteId!=null){
|
||||
if (order != null && lineId != null && siteId != null) {
|
||||
val requestSuccessSign = "${siteId}$endKey"
|
||||
val requestIngSign = "${siteId}$endKeyRequestIng"//正在请求中
|
||||
CallerLogger.d(M_BUS_P + BaseDPMsg.TAG,
|
||||
"requestSuccessSign${isSuccess(requestSuccessSign)}---requestIngSign${isSuccess(requestIngSign)}")
|
||||
CallerLogger.d(
|
||||
M_BUS_P + BaseDPMsg.TAG,
|
||||
"requestSuccessSign${isSuccess(requestSuccessSign)}---requestIngSign${
|
||||
isSuccess(
|
||||
requestIngSign
|
||||
)
|
||||
}"
|
||||
)
|
||||
if (order.arriveStatus == OrderInfoResponse.ARRIVING) {
|
||||
if (isSuccess(requestSuccessSign)&&//true 请求还没有成功 false 请求成功
|
||||
isSuccess(requestIngSign)) {// true 还没有正在请求 false 正在请求中
|
||||
if (isSuccess(requestSuccessSign) &&//true 请求还没有成功 false 请求成功
|
||||
isSuccess(requestIngSign)
|
||||
) {// true 还没有正在请求 false 正在请求中
|
||||
val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp()
|
||||
broadcastList[requestIngSign] = true //正在请求中
|
||||
BusPassengerServiceManager.arriveDest(
|
||||
@@ -898,23 +924,23 @@ object CharterPassengerModel {
|
||||
lindId = lineId,
|
||||
writtenVersion = currentTimeStamp,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (null != data && 0 == data.code) {
|
||||
arrivedDeskSuccess(currentTimeStamp,true)
|
||||
broadcastList[requestIngSign] = false
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
ToastCharterUtils.showShort("$code:$msg")
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (null != data && 0 == data.code) {
|
||||
arrivedDeskSuccess(currentTimeStamp, true)
|
||||
broadcastList[requestIngSign] = false
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
super.onError()
|
||||
broadcastList[requestIngSign] = false
|
||||
}
|
||||
})
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
ToastCharterUtils.showShort("$code:$msg")
|
||||
broadcastList[requestIngSign] = false
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
super.onError()
|
||||
broadcastList[requestIngSign] = false
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -922,16 +948,16 @@ object CharterPassengerModel {
|
||||
|
||||
fun arrivedDeskSuccess(
|
||||
currentTimeStamp: Long,
|
||||
needSendDriver:Boolean
|
||||
needSendDriver: Boolean
|
||||
) {
|
||||
val (order, lineId, siteId) = getOrderInfo()
|
||||
val requestSuccessSign = "${siteId}$endKey"
|
||||
|
||||
if (!isSuccess(requestSuccessSign)){
|
||||
if (!isSuccess(requestSuccessSign)) {
|
||||
return
|
||||
}
|
||||
|
||||
if(order!=null&&lineId!=null&&siteId!=null){
|
||||
if (order != null && lineId != null && siteId != null) {
|
||||
VoiceManager.arrivedStation(
|
||||
order.siteName!!,
|
||||
order.siteNameKr ?: "",
|
||||
@@ -948,7 +974,7 @@ object CharterPassengerModel {
|
||||
order.startSiteId ?: 0,
|
||||
order.startSiteName ?: "",
|
||||
siteId.toInt(),
|
||||
order.siteName?:"",
|
||||
order.siteName ?: "",
|
||||
true,
|
||||
OrderInfoResponse.ARRIVED,
|
||||
currentTimeStamp
|
||||
@@ -972,15 +998,15 @@ object CharterPassengerModel {
|
||||
}
|
||||
}
|
||||
|
||||
private fun getOrderInfo():Triple<OrderInfoResponse.OrderInfo?,Long?,Long?>{
|
||||
this.orderInfo?.let { order->
|
||||
private fun getOrderInfo(): Triple<OrderInfoResponse.OrderInfo?, Long?, Long?> {
|
||||
this.orderInfo?.let { order ->
|
||||
this.orderInfo?.lineId?.let { lineId ->
|
||||
this.orderInfo?.siteId?.let { siteId ->
|
||||
return Triple(order,lineId,siteId)
|
||||
return Triple(order, lineId, siteId)
|
||||
}
|
||||
}
|
||||
}
|
||||
return Triple(null,null,null)
|
||||
return Triple(null, null, null)
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
@@ -989,7 +1015,8 @@ object CharterPassengerModel {
|
||||
order.siteId?.let { siteId ->
|
||||
if (order.arriveStatus == OrderInfoResponse.ARRIVING) {
|
||||
if (isSuccess("${siteId}$ending100Key")) {
|
||||
val string = mContext.getString(R.string.arrived_station_left_100,order.siteName)
|
||||
val string =
|
||||
mContext.getString(R.string.arrived_station_left_100, order.siteName)
|
||||
VoiceNotice.showNotice(string)
|
||||
broadcastList["${siteId}$ending100Key"] = true
|
||||
}
|
||||
@@ -1025,8 +1052,12 @@ object CharterPassengerModel {
|
||||
}
|
||||
|
||||
fun leaveStation() {
|
||||
orderInfo?.siteName?.let {cn->
|
||||
VoiceManager.leaveStation(cn,orderInfo?.siteNameKr?:"", VoiceFocusManager.getVoiceCmdCallBack())
|
||||
orderInfo?.siteName?.let { cn ->
|
||||
VoiceManager.leaveStation(
|
||||
cn,
|
||||
orderInfo?.siteNameKr ?: "",
|
||||
VoiceFocusManager.getVoiceCmdCallBack()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1050,14 +1081,17 @@ object CharterPassengerModel {
|
||||
return
|
||||
}
|
||||
orderInfo?.let {
|
||||
if(it.arriveStatus==OrderInfoResponse.ARRIVED){
|
||||
if (it.arriveStatus == OrderInfoResponse.ARRIVED) {
|
||||
ToastCharterUtils.showLong("已到达目的地请重新选择线路")
|
||||
return
|
||||
}
|
||||
val parameters = initAutopilotControlParameters()
|
||||
if (null == parameters) {
|
||||
ToastCharterUtils.showShort("请选择站点")
|
||||
CallerLogger.e(SceneConstant.M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.")
|
||||
CallerLogger.e(
|
||||
SceneConstant.M_BUS + TAG,
|
||||
"行程日志-AutopilotControlParameters is empty."
|
||||
)
|
||||
return
|
||||
}
|
||||
ToastCharterUtils.showShort("启动自动驾驶中")
|
||||
@@ -1118,12 +1152,14 @@ object CharterPassengerModel {
|
||||
fun sendTripInfo() {
|
||||
//发送前后屏出站消息 3:代表出站
|
||||
orderInfo?.let {
|
||||
CharterSendTripInfoManager.sendCharterTripInfo(LEAVE_STATION,
|
||||
it.lineName!!,it.startSiteName!!,it.siteName!!,false)
|
||||
CharterSendTripInfoManager.sendCharterTripInfo(
|
||||
LEAVE_STATION,
|
||||
it.lineName!!, it.startSiteName!!, it.siteName!!, false
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun invokeOrderLeftTimeListeners(timeInSecond: Long){
|
||||
private fun invokeOrderLeftTimeListeners(timeInSecond: Long) {
|
||||
leftTime = timeInSecond
|
||||
UiThreadHandler.post({
|
||||
for (value in orderLeftTimeListeners.values) {
|
||||
@@ -1132,7 +1168,7 @@ object CharterPassengerModel {
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
|
||||
private fun invokeStationDistanceListener(meters:Long , timeInSecond:Long){
|
||||
private fun invokeStationDistanceListener(meters: Long, timeInSecond: Long) {
|
||||
var tempMeters = meters
|
||||
var tempTimeInSecond = timeInSecond
|
||||
if (orderInfo?.arriveStatus == OrderInfoResponse.ARRIVED) {
|
||||
@@ -1141,7 +1177,7 @@ object CharterPassengerModel {
|
||||
}
|
||||
UiThreadHandler.post({
|
||||
for (value in stationDistanceListener.values) {
|
||||
value.setDistancecAndTime(tempMeters,tempTimeInSecond)
|
||||
value.setDistancecAndTime(tempMeters, tempTimeInSecond)
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.bus.passenger.utils.ToastCharterUtils
|
||||
@@ -185,7 +184,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
|
||||
|
||||
override fun onDestroy(owner: LifecycleOwner) {
|
||||
super.onDestroy(owner)
|
||||
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "onDestroy")
|
||||
CallerLogger.d(M_BUS_P + TAG, "onDestroy")
|
||||
RxUtils.disposeSubscribe(subscribeSelectLine)
|
||||
RxUtils.disposeSubscribe(subscribeSelectSite)
|
||||
BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP)
|
||||
@@ -196,7 +195,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
|
||||
/**
|
||||
* 接收司机屏反馈信息
|
||||
*/
|
||||
val msgReceived = object : IReceivedMsgListener {
|
||||
private val msgReceived = object : IReceivedMsgListener {
|
||||
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
|
||||
UiThreadHandler.post {
|
||||
if (type == OchCommonConst.BUSINESS_STRING) {
|
||||
@@ -287,7 +286,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
|
||||
ToastCharterUtils.showShort("断开和司机端连接、请联系安全员")
|
||||
BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP)
|
||||
mView?.hideDataDriverRefuse()
|
||||
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "endAni666")
|
||||
CallerLogger.d(M_BUS_P + TAG, "endAni666")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,7 +315,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
|
||||
val gnssSpeed =
|
||||
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().gnssSpeed
|
||||
if (gnssSpeed < 0.5) {
|
||||
when (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state) {
|
||||
when (CallerAutoPilotStatusListenerManager.getState()) {
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶
|
||||
return true
|
||||
}
|
||||
@@ -325,13 +324,13 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
|
||||
}
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
|
||||
// 自动驾驶中
|
||||
when (StopSideStatusManager.stopSiteStatus) {
|
||||
return when (StopSideStatusManager.stopSiteStatus) {
|
||||
StopSideStatusManager.Status.EndingSuccess -> {
|
||||
return true
|
||||
true
|
||||
}
|
||||
else ->{
|
||||
ToastCharterUtils.showShort("自动驾驶中无法切换线路")
|
||||
return false
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ class BusPassengerPresenter(view: MainFragment?) :
|
||||
}
|
||||
OrderStatusEnum.OrdersWithLine -> {}
|
||||
OrderStatusEnum.NoOrderUse -> {
|
||||
when (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state) {
|
||||
when (CallerAutoPilotStatusListenerManager.getState()) {
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶
|
||||
ToastCharterUtils.showShort("设备未就绪请稍等,请安全员主动停止车辆")
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ class M1ContainFragment :
|
||||
setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏
|
||||
}
|
||||
|
||||
private fun setCheckView() {
|
||||
private fun setCheckView() { //todo yakun 优化
|
||||
CallerLogger.d(M_BUS_P+ TAG, "setCheckView")
|
||||
when (tab) {
|
||||
VIDEOTAB -> {
|
||||
|
||||
@@ -82,7 +82,7 @@ class GoViewWithArrive @JvmOverloads constructor(
|
||||
ToastCharterUtils.showShort(string)
|
||||
return
|
||||
}
|
||||
when (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state) {
|
||||
when (CallerAutoPilotStatusListenerManager.getState()) {
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶
|
||||
ToastCharterUtils.showShort("设备未就绪请稍等")
|
||||
}
|
||||
@@ -122,7 +122,7 @@ class GoViewWithArrive @JvmOverloads constructor(
|
||||
})
|
||||
RxUtils.disposeSubscribe(startAutoTimeOut)
|
||||
startAutoTimeOut = RxUtils.createSubscribe(20_000) {
|
||||
if (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
if (CallerAutoPilotStatusListenerManager.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
val string = AbsMogoApplication.getApp().getString(R.string.m1_start_auto_fail)
|
||||
ToastCharterUtils.showLong(string)
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class StopSiteView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun stopSite(){
|
||||
when (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state) {
|
||||
when (CallerAutoPilotStatusListenerManager.getState()) {
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶
|
||||
ToastCharterUtils.showShort("设备未就绪请稍等,请稍后再试")
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import android.view.ViewGroup
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import chassis.ChassisStatesOuterClass
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener
|
||||
@@ -25,7 +24,6 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.bus.passenger.R
|
||||
import com.mogo.och.bus.passenger.bean.event.DebugView
|
||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
||||
import kotlinx.android.synthetic.main.m1_statusview_datetime.view.*
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
@@ -47,8 +45,6 @@ class StatusBarView @JvmOverloads constructor(
|
||||
|
||||
private var mHits = LongArray(COUNTS)
|
||||
|
||||
private var preStatus = -1
|
||||
|
||||
private fun continuousClick(type:String) {
|
||||
//每次点击时,数组向前移动一位
|
||||
System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1)
|
||||
@@ -93,15 +89,11 @@ class StatusBarView @JvmOverloads constructor(
|
||||
progress.progress = 50
|
||||
tv_power_cos.text = "50%"
|
||||
|
||||
val state = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state
|
||||
setAutoPilotSatusInfo(state)
|
||||
val state = CallerAutoPilotStatusListenerManager.getState()
|
||||
setAutoPilotStatusInfo(state)
|
||||
}
|
||||
|
||||
private fun setAutoPilotSatusInfo(state: Int) {
|
||||
if(preStatus==state){
|
||||
return
|
||||
}
|
||||
preStatus = state
|
||||
private fun setAutoPilotStatusInfo(state: Int) {
|
||||
when (state) {
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {
|
||||
actv_auto_status.text = "安全接管中"
|
||||
@@ -126,9 +118,9 @@ class StatusBarView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
UiThreadHandler.post {
|
||||
setAutoPilotSatusInfo(autoPilotStatusInfo.state)
|
||||
setAutoPilotStatusInfo(state)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -49,13 +49,13 @@ public class CharterAnalyticsManager {
|
||||
|
||||
CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg );
|
||||
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() !=
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() !=
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
mStartAutopilotParams.put(CharterConst.EVENT_PARAM_START_FAILURE_CODE, failCode);
|
||||
mStartAutopilotParams.put(CharterConst.EVENT_PARAM_START_FAILURE_MSG, failMsg);
|
||||
}
|
||||
mStartAutopilotParams.put(CharterConst.EVENT_PARAM_START_RESULT
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() ==
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getState() ==
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING);
|
||||
|
||||
MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams);
|
||||
|
||||
@@ -110,8 +110,7 @@ class DriverM1Model {
|
||||
fun init(context: Context) {
|
||||
mContext = context
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, mMapLocationListener)
|
||||
// CallerChassisLocationGCJ02ListenerManager.setListenerHz(TAG,2)
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 10,mMapLocationListener)
|
||||
|
||||
//开启自驾后 异常信息返回
|
||||
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener)
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.magic.mogo.och.charter.fragment.DriverM1Fragment
|
||||
import com.magic.mogo.och.charter.manager.CharterTrajectoryManager
|
||||
import com.magic.mogo.och.charter.model.DriverM1Model
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
@@ -36,8 +35,9 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
IMoGoAutopilotStatusListener, StopSideStatusManager.OCHPlanningActionsCallback,
|
||||
IDriverM1ControllerStatusCallback {
|
||||
|
||||
private val TAG = DriverM1Presenter::class.java.name
|
||||
private var mCurrentAutopilotStatus : Int = -1
|
||||
companion object{
|
||||
private const val TAG = "DriverM1Presenter"
|
||||
}
|
||||
|
||||
init {
|
||||
DriverM1Model.get().init(context)
|
||||
@@ -139,19 +139,14 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
DriverM1Model.get().onAutopilotArriveAtStation()
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
val status = autoPilotStatusInfo.state
|
||||
if (mCurrentAutopilotStatus == status) return
|
||||
|
||||
mView?.onAutopilotStatusChanged(status)
|
||||
mCurrentAutopilotStatus = status
|
||||
when(status){
|
||||
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
mView?.onAutopilotStatusChanged(state)
|
||||
when(state){
|
||||
// IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> { //
|
||||
//
|
||||
// }
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING ->{
|
||||
DriverM1Model.get().triggerStartServiceEvent(false,true)
|
||||
DriverM1Model.get().triggerStartServiceEvent(isRestart = false, send = true)
|
||||
}
|
||||
// IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE ->{
|
||||
//
|
||||
@@ -187,14 +182,12 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
}
|
||||
|
||||
override fun startOpenAutopilot() {
|
||||
mCurrentAutopilotStatus = -1
|
||||
ThreadUtils.runOnUiThread {
|
||||
mView?.startAutopilotAnimation()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStartAdasFailure() {
|
||||
mCurrentAutopilotStatus = -1
|
||||
ThreadUtils.runOnUiThread {
|
||||
mView?.stopAnimAndUpdateBtnStatus()
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.initAiCollect
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.initBadCase
|
||||
@@ -126,7 +126,7 @@ abstract class CharterBaseFragment<V : IView?, P : Presenter<V>?>() :
|
||||
}
|
||||
})
|
||||
initListener()
|
||||
setAutopilotBtnStatus(getAutoPilotStatusInfo().state)
|
||||
setAutopilotBtnStatus(getState())
|
||||
ctvAutopilotStatus!!.setOnClickListener(object : OnPreventFastClickListener() {
|
||||
override fun onClickImpl(v: View) {
|
||||
restartAutopilot()
|
||||
@@ -394,7 +394,7 @@ abstract class CharterBaseFragment<V : IView?, P : Presenter<V>?>() :
|
||||
|
||||
open fun stopAnimAndUpdateBtnStatus() {
|
||||
stopAutopilotAnimation()
|
||||
updateAutopilotStatus(getAutoPilotStatusInfo().state)
|
||||
updateAutopilotStatus(getState())
|
||||
}
|
||||
|
||||
|
||||
@@ -453,7 +453,7 @@ abstract class CharterBaseFragment<V : IView?, P : Presenter<V>?>() :
|
||||
//未启动成功做处理
|
||||
if (isAnimateRunning) { // 只判断动画是否在进行,根据自动驾驶当前状态去设置自动驾驶状态
|
||||
stopAutopilotAnimation()
|
||||
updateAutopilotStatus(getAutoPilotStatusInfo().state)
|
||||
updateAutopilotStatus(getState())
|
||||
}
|
||||
}, CharterConst.TIMER_START_AUTOPILOT_INTERVAL)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.mogo.och.common.module.manager.trajectorymamager
|
||||
|
||||
data class DistanceDegree(var distance:Float,var degree:Double?,var isNext:Boolean?):Comparable<DistanceDegree>{
|
||||
override fun compareTo(other: DistanceDegree): Int {
|
||||
// 对比面积
|
||||
// 对比距离
|
||||
if(distance == other.distance){
|
||||
return 0;
|
||||
} else if(distance < other.distance){
|
||||
|
||||
@@ -16,7 +16,7 @@ import mogo.telematics.pad.MessagePad
|
||||
import java.util.ArrayList
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
|
||||
private val distanceListeners: ConcurrentHashMap<String, IDistanceListener> = ConcurrentHashMap()
|
||||
private val trajectoryListeners: ConcurrentHashMap<String, ITrajectoryListener> = ConcurrentHashMap()
|
||||
@@ -26,15 +26,15 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
const val TAGDISTANCE = "BusPassengerModelDistance"
|
||||
|
||||
|
||||
fun addListener(tag: String, listener: IDistanceListener) {
|
||||
fun addDistanceListener(tag: String, listener: IDistanceListener) {
|
||||
if (distanceListeners.containsKey(tag)) { return }
|
||||
distanceListeners[tag] = listener
|
||||
}
|
||||
fun addListener(tag: String, listener: ITrajectoryListener) {
|
||||
fun addTrajectoryListener(tag: String, listener: ITrajectoryListener) {
|
||||
if (trajectoryListeners.containsKey(tag)) { return }
|
||||
trajectoryListeners[tag] = listener
|
||||
}
|
||||
fun addListener(tag: String, listener: ITrajectoryWithStationListener) {
|
||||
fun addTrajectoryWithStationListener(tag: String, listener: ITrajectoryWithStationListener) {
|
||||
if (trajectoryWithStationListeners.containsKey(tag)) { return }
|
||||
trajectoryWithStationListeners[tag] = listener
|
||||
}
|
||||
@@ -74,6 +74,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
d(M_OCHCOMMON + TAG, "收到轨迹:${it.size}第一个点${it[0]}最后一个点:${it.last()}")
|
||||
endCalculateDistanceLoop()
|
||||
updateRoutePoints(it)
|
||||
preCarLocationIndexInTrajectory = 0
|
||||
startCalculateDistanceLoop()
|
||||
}
|
||||
}
|
||||
@@ -121,7 +122,6 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
private fun calculateDistance() {
|
||||
//mLocation gcj坐标
|
||||
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let {
|
||||
|
||||
if (mRoutePoints.isNullOrEmpty() || endStationInfo.stationPoint == null) {
|
||||
d(M_OCHCOMMON + TAG, "没有轨迹或站点坐标停止计算")
|
||||
//结束距离计算
|
||||
@@ -175,6 +175,11 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
val carLocationInfo = CoordinateCalculateRouteUtil.getNearestPointInfo(
|
||||
preCarLocationIndexInTrajectory, mRoutePoints!!, location
|
||||
)
|
||||
if(carLocationInfo.second==null||carLocationInfo.third>1_000){
|
||||
preCarLocationIndexInTrajectory = 0
|
||||
return
|
||||
}
|
||||
d(M_OCHCOMMON+ TAG,"距离车最近的点:${carLocationInfo.first} 点下后面的轨迹:${carLocationInfo.second} 距离点的距离:${carLocationInfo.third}")
|
||||
preCarLocationIndexInTrajectory = carLocationInfo.first
|
||||
|
||||
// 计算结束站点在轨迹中的信息 这个是一个常量可以缓存
|
||||
@@ -210,9 +215,9 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
var lastSumLength = 0f
|
||||
|
||||
val stationIndex = endStationInfo.index?:0
|
||||
if (preCarLocationIndexInTrajectory < stationIndex) {
|
||||
if (carLocationInfo.first < stationIndex-1) {
|
||||
// subList 是[) 需要的是[]
|
||||
val subList = mRoutePoints!!.subList(preCarLocationIndexInTrajectory, stationIndex + 1)
|
||||
val subList = mRoutePoints!!.subList(carLocationInfo.first, stationIndex + 1)
|
||||
// 轨迹点所有的距离
|
||||
lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(subList)
|
||||
val stationDistance = endStationInfo.distance ?: 0f
|
||||
@@ -221,16 +226,15 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
} else {// isNext = false
|
||||
lastSumLength += stationDistance
|
||||
}
|
||||
|
||||
if (carLocationInfo.second == true) {
|
||||
if (carLocationInfo.second == true) {// 是否是下一个 true 下一个
|
||||
lastSumLength += carLocationInfo.third
|
||||
} else {
|
||||
lastSumLength -= carLocationInfo.third
|
||||
}
|
||||
} else {
|
||||
val lastPoints = mRoutePoints!![endStationInfo.index!!]
|
||||
val lastPoints = endStationInfo.stationPoint
|
||||
lastSumLength = CoordinateUtils.calculateLineDistance(
|
||||
lastPoints.longitude, lastPoints.latitude,
|
||||
lastPoints!!.longitude, lastPoints!!.latitude,
|
||||
location.longitude, location.latitude
|
||||
)
|
||||
}
|
||||
@@ -272,21 +276,20 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
location: MogoLocation
|
||||
) {
|
||||
if (mRoutePoints.isNullOrEmpty()) return
|
||||
var tempPoints = mutableListOf<MogoLocation>()
|
||||
val routeArrivied = mutableListOf<MogoLocation>()
|
||||
val routeArriving = mutableListOf<MogoLocation>()
|
||||
var fromCut = 0
|
||||
var endCut = mRoutePoints!!.size
|
||||
if (startStationInfo.stationPoint != null
|
||||
&& startStationInfo.isNext != null
|
||||
&& startStationInfo.index != null
|
||||
&& startStationInfo.distance != null
|
||||
) {
|
||||
if(startStationInfo.isNext==true){
|
||||
tempPoints.addAll(mRoutePoints!!.subList(startStationInfo.index!!,mRoutePoints!!.size))
|
||||
fromCut = startStationInfo.index!!
|
||||
}else{
|
||||
tempPoints.addAll(mRoutePoints!!.subList(startStationInfo.index!!+1,mRoutePoints!!.size))
|
||||
fromCut = startStationInfo.index!!+1
|
||||
}
|
||||
}else{
|
||||
tempPoints.addAll(mRoutePoints!!)
|
||||
}
|
||||
|
||||
if (endStationInfo.stationPoint != null
|
||||
@@ -294,21 +297,19 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{
|
||||
&& endStationInfo.index != null
|
||||
&& endStationInfo.distance != null
|
||||
) {
|
||||
val index = endStationInfo.index!!
|
||||
if(endStationInfo.isNext==true){
|
||||
tempPoints = tempPoints.subList(0, index-1)
|
||||
endCut = endStationInfo.index!!
|
||||
}else{
|
||||
tempPoints = tempPoints.subList(0, index)
|
||||
endCut = endStationInfo.index!!+1
|
||||
}
|
||||
}
|
||||
|
||||
if(carLocationInfo.second==true){// isNext = true
|
||||
routeArrivied.addAll(tempPoints.subList(0,carLocationInfo.first))
|
||||
routeArriving.addAll(mRoutePoints!!.subList(carLocationInfo.first,mRoutePoints!!.size))
|
||||
routeArrivied.addAll(mRoutePoints!!.subList(fromCut,carLocationInfo.first))
|
||||
routeArriving.addAll(mRoutePoints!!.subList(carLocationInfo.first,endCut))
|
||||
}else{// isNext = false
|
||||
val indexNext = carLocationInfo.first+1
|
||||
routeArrivied.addAll(tempPoints.subList(0,indexNext))
|
||||
routeArriving.addAll(mRoutePoints!!.subList(indexNext,mRoutePoints!!.size))
|
||||
routeArrivied.addAll(mRoutePoints!!.subList(fromCut,indexNext))
|
||||
routeArriving.addAll(mRoutePoints!!.subList(indexNext,endCut))
|
||||
}
|
||||
|
||||
routeArrivied.add(0, startStationInfo.stationPoint!!)
|
||||
|
||||
@@ -346,7 +346,7 @@ public class BusPassengerModel {
|
||||
IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener );
|
||||
MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener );
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, mMapLocationListener);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, 10,mMapLocationListener);
|
||||
|
||||
//2021.11.1 自动驾驶路线规划接口
|
||||
CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener);
|
||||
|
||||
@@ -103,7 +103,7 @@ public class BusPassengerMapDirectionView
|
||||
initAMapView();
|
||||
|
||||
// 注册定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, this);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, 10,this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -119,8 +119,7 @@ class PM2DrivingModel private constructor() {
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, mAutoPilotStatusListener)
|
||||
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, mMapLocationListener)
|
||||
// CallerChassisLocationGCJ02ListenerManager.setListenerHz(TAG,2)//设置2hz, 1s返回2次
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 10,mMapLocationListener)
|
||||
|
||||
//司乘屏通信监听
|
||||
CallerTelematicListenerManager.addListener(TAG,mReceivedMsgListener)
|
||||
@@ -301,16 +300,10 @@ class PM2DrivingModel private constructor() {
|
||||
private val mAutoPilotStatusListener: IMoGoAutopilotStatusListener =
|
||||
object : IMoGoAutopilotStatusListener {
|
||||
|
||||
override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) {
|
||||
super.onAutopilotArriveAtStation(arrivalNotification)
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
super.onAutopilotStatusResponse(autoPilotStatusInfo)
|
||||
val status = autoPilotStatusInfo.state
|
||||
if (mCurrentAutoStatus == status) return
|
||||
d(SceneConstant.M_BUS_P+TAG, "onAutopilotStatusResponse ===== $status")
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status){
|
||||
override fun onAutopilotStatusResponse(state: Int) { //todo yakun 检查逻辑
|
||||
super.onAutopilotStatusResponse(state)
|
||||
d(SceneConstant.M_BUS_P+TAG, "onAutopilotStatusResponse ===== $state")
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != state){
|
||||
//美化模式下且行程中
|
||||
if (FunctionBuildConfig.isDemoMode &&
|
||||
mNextStationIndex>= 0 && mNextStationIndex <= mStations.size - 1
|
||||
@@ -319,11 +312,9 @@ class PM2DrivingModel private constructor() {
|
||||
}else{//非美化模式下
|
||||
mAutoStatusCallback?.updateAutoStatus(false)
|
||||
}
|
||||
|
||||
}else{//自驾状态 2
|
||||
mAutoStatusCallback?.updateAutoStatus(true)
|
||||
}
|
||||
mCurrentAutoStatus = status
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -161,7 +161,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
});
|
||||
|
||||
initListener();
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() {
|
||||
|
||||
@Override
|
||||
@@ -308,9 +308,6 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
|
||||
@Override
|
||||
public void onAutopilotRecordResult(@Nullable RecordPanelOuterClass.RecordPanel recordPanel) {
|
||||
// if (!HmiBuildConfig.isShowBadCaseView && recordPanel != null && recordPanel.getType() == 1 && recordPanel.getStat() == 100) {
|
||||
// CallerDevaToolsManager.INSTANCE.onReceiveBadCaseRecord(recordPanel);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -455,7 +452,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
|
||||
public void stopAnimAndUpdateBtnStatus() {
|
||||
stopAutopilotAnimation();
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -529,7 +526,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
public void run() { //未启动成功做处理
|
||||
if (isAnimateRunning) {// 只判断动画是否在进行,根据自动驾驶当前状态去设置自动驾驶状态
|
||||
stopAutopilotAnimation();
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
}
|
||||
}
|
||||
}, TIMER_START_AUTOPILOT_INTERVAL);
|
||||
|
||||
@@ -113,7 +113,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
groupStationsPanel = findViewById(R.id.group_stations_panel);
|
||||
noDataView = findViewById(R.id.no_line_data_view);
|
||||
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
// 初始化的时候设置 UI 按钮状态
|
||||
showAutopilotBiz();
|
||||
|
||||
@@ -461,7 +461,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
}
|
||||
|
||||
//清除鹰眼右下角小地图轨迹
|
||||
CallerLogger.INSTANCE.d(SceneConstant.M_MAP, "clearBusStationsMarkers --------->");
|
||||
CallerLogger.INSTANCE.d(SceneConstant.M_BUS, "clearBusStationsMarkers --------->");
|
||||
smallMapView.clearPolyline();
|
||||
}
|
||||
|
||||
@@ -535,7 +535,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
public void onClick(View v) {
|
||||
if (v.getId() == R.id.switch_line_btn) {//切换路线条件: 自动驾驶过程中,点击则toast提示:自动驾驶中,不可切换路线
|
||||
//本次行程未结束,不支持切换路线。点击则toast提示:当前行程未完成,不可切换路线
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
|
||||
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
ToastUtils.showLong(getResources().getString(R.string.bus_switch_line_btn_warning1));
|
||||
return;
|
||||
|
||||
@@ -163,8 +163,7 @@ public class OrderModel {
|
||||
mContext = AbsMogoApplication.getApp();
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,mMapLocationListener);
|
||||
// CallerChassisLocationGCJ02ListenerManager.INSTANCE.setListenerHz(TAG,2);//设置5hz, 1s返回一次
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,10,mMapLocationListener);
|
||||
|
||||
MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener);
|
||||
|
||||
@@ -700,7 +699,7 @@ public class OrderModel {
|
||||
private void onStartAutopilot(int leaveIndex) {
|
||||
//开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启
|
||||
isGoingToNextStation = true;
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
|
||||
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
startAutopilot(false, leaveIndex);
|
||||
} else {
|
||||
|
||||
@@ -167,14 +167,14 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
|
||||
@Override
|
||||
public void onAutopilotSNRequest() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
if (autopilotStatusInfo == null) return;
|
||||
int state = autopilotStatusInfo.getState();
|
||||
// CallerLogger.INSTANCE.d(M_BUS + TAG, "onStateChange: " + state + "currentAutopilotStatus = " + currentAutopilotStatus);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(int state) {
|
||||
switch (state) {
|
||||
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE:
|
||||
if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
|
||||
@@ -210,26 +210,21 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
&& (
|
||||
(mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1)
|
||||
&& OrderModel.getInstance().isGoingToNextStation()
|
||||
|
||||
)
|
||||
) {
|
||||
CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel=", "有美化功能");
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
currentAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE;
|
||||
}
|
||||
runOnUIThread(() -> {
|
||||
mView.onAutopilotStatusChanged(currentAutopilotStatus);
|
||||
});
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(currentAutopilotStatus));
|
||||
break;
|
||||
case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING:
|
||||
if (FunctionBuildConfig.isDemoMode
|
||||
&& (
|
||||
(mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1)
|
||||
&& OrderModel.getInstance().isGoingToNextStation()
|
||||
|
||||
)
|
||||
) {
|
||||
CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel=", "有美化功能");
|
||||
@@ -238,9 +233,7 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
|
||||
currentAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING;
|
||||
}
|
||||
runOnUIThread(() -> {
|
||||
mView.onAutopilotStatusChanged(currentAutopilotStatus);
|
||||
});
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(currentAutopilotStatus));
|
||||
break;
|
||||
default:
|
||||
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
|
||||
@@ -279,8 +272,6 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
|
||||
/**
|
||||
* 测试使用
|
||||
*
|
||||
* @param status
|
||||
*/
|
||||
public void debugAutoPilotStatus(int status) {
|
||||
AutopilotStatusInfo info = new AutopilotStatusInfo();
|
||||
@@ -345,4 +336,9 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
public void onStartAdasFailure() {
|
||||
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotDockerInfo(@NonNull String dockerVersion) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -50,13 +50,13 @@ public class BusAnalyticsManager {
|
||||
|
||||
CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg );
|
||||
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() !=
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() !=
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_CODE, failCode);
|
||||
mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_MSG, failMsg);
|
||||
}
|
||||
mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_RESULT
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() ==
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getState() ==
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING);
|
||||
|
||||
MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams);
|
||||
|
||||
@@ -109,7 +109,6 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
}
|
||||
|
||||
private Context mContext;
|
||||
private volatile int mPrevAPStatus = -1; //前一次自动驾驶状态值
|
||||
private volatile TaxiPassengerOrderQueryRespBean.Result mCurrentOCHOrder; //当前订单
|
||||
private volatile List<TaxiPassengerOrderQueryRespBean.Result> mInServiceList = Collections.emptyList(); //进行中订单
|
||||
private volatile List<TaxiPassengerOrderQueryRespBean.Result> mWaitServiceList = Collections.emptyList(); //待服务订单
|
||||
@@ -241,7 +240,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
IntentManager.getInstance().registerIntentListener( ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener );
|
||||
MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener);
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,mMapLocationListener);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,10,mMapLocationListener);
|
||||
|
||||
//2021.11.1 自动驾驶路线规划接口
|
||||
CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener);
|
||||
@@ -477,7 +476,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
// 自车定位
|
||||
private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() {
|
||||
@Override
|
||||
public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) {
|
||||
public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { //todo mingjun 优化
|
||||
//位置变化时,通过围栏判断是否到达x点
|
||||
if (null == gnssInfo) return;
|
||||
if (checkCurrentOCHOrder()) {
|
||||
@@ -500,8 +499,11 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){
|
||||
|
||||
@Override
|
||||
public void onAutopilotRouteLineId(long lineId) {
|
||||
public void onAutopilotDockerInfo(@NonNull String dockerVersion) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotRouteLineId(long lineId) {
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -510,31 +512,26 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
|
||||
@Override
|
||||
public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
}
|
||||
|
||||
private boolean arriveAtEnd = false; //乘客app专用字段
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
int state = autopilotStatusInfo.getState();
|
||||
public void onAutopilotStatusResponse(int state) {
|
||||
// CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "state = %s", state );
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning();
|
||||
if (mCurrentOCHOrder != null
|
||||
&& getCurOrderStatus() == TaxiPassengerOrderStatusEnum.UserArriveAtStart
|
||||
&& state != mPrevAPStatus) {
|
||||
|
||||
&& getCurOrderStatus() == TaxiPassengerOrderStatusEnum.UserArriveAtStart) {
|
||||
TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, true,
|
||||
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
|
||||
|
||||
// 当高频返回autopilot 2时,不重复调用订单状态变更
|
||||
mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态
|
||||
startServicePilotDone();
|
||||
}
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
|
||||
mPrevAPStatus = state;
|
||||
|
||||
if (FunctionBuildConfig.isDemoMode
|
||||
&& AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
// 当美化模式(演示模式)开启时:且是乘客app、且未到终点时,维持自动驾驶icon开启状态
|
||||
@@ -544,11 +541,8 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
arriveAtEnd = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotEnable();
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
mPrevAPStatus = state;
|
||||
|
||||
if (FunctionBuildConfig.isDemoMode
|
||||
&& AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
// 当美化模式(演示模式)开启时:且是乘客app、且未到终点时,维持自动驾驶icon开启状态
|
||||
@@ -558,14 +552,12 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
arriveAtEnd = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotDisable();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotSNRequest() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -586,7 +578,6 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
updateSwitchMapIcon();
|
||||
initListener();
|
||||
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
|
||||
switchVRFlatMode(MogoStatusManager.getInstance().isVrMode());
|
||||
//预加载视频进程
|
||||
@@ -236,12 +236,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
}
|
||||
|
||||
private void startAutopilotDone(boolean success) {
|
||||
mHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
}
|
||||
}, 1000L);
|
||||
mHandler.postDelayed(() -> onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState()), 1000L);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
@@ -104,7 +104,7 @@ public class TaxiPassengerMapDirectionView
|
||||
initAMapView();
|
||||
|
||||
// 注册定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, this);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, 10,this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -52,7 +52,7 @@ public class TaxiPassengerAnalyticsManager {
|
||||
|
||||
CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg );
|
||||
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() !=
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() !=
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_FAILURE_CODE, failCode);
|
||||
mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_FAILURE_MSG,
|
||||
@@ -60,7 +60,7 @@ public class TaxiPassengerAnalyticsManager {
|
||||
}
|
||||
|
||||
mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_RESULT
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() ==
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getState() ==
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING);
|
||||
|
||||
MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams);
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
package com.mogo.och.taxi.model;
|
||||
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_CODE_OCH_TAXI_START_AUTOPILOT;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_SOURCE_ADAS;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT;
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
@@ -75,7 +80,6 @@ import com.mogo.och.taxi.utils.OrderUtil;
|
||||
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
|
||||
import com.mogo.och.taxi.utils.TaxiTrajectoryManager;
|
||||
import com.zhjt.service.chain.ChainLog;
|
||||
import com.zhjt.service.chain.TracingConstants;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -92,11 +96,6 @@ import mogo.telematics.pad.MessagePad;
|
||||
import mogo_msg.MogoReportMsg;
|
||||
import system_master.SystemStatusInfo;
|
||||
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT;
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
* <p>
|
||||
@@ -115,7 +114,6 @@ public class TaxiModel {
|
||||
}
|
||||
|
||||
private Context mContext;
|
||||
private volatile int mPrevAPStatus = -1; //前一次自动驾驶状态值
|
||||
private volatile String mPrevOrderNo = ""; //前一次的新到单id(当次和前一次orderId相同时,本次不再弹出)
|
||||
private volatile OrderQueryRespBean.Result mNewBookingOrder; //新到待抢预约单
|
||||
private volatile OrderQueryRespBean.Result mCurrentOCHOrder; //当前订单
|
||||
@@ -134,7 +132,7 @@ public class TaxiModel {
|
||||
private int mPreRouteIndex = 0;
|
||||
|
||||
private double mLongitude, mLatitude;
|
||||
private MogoLocation mLocation = null;
|
||||
private MogoLocation mLocation = null;
|
||||
|
||||
private LoginService loginService;
|
||||
|
||||
@@ -224,7 +222,7 @@ public class TaxiModel {
|
||||
MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener);
|
||||
|
||||
//定位监听, 传false是高德坐标系
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,mMapLocationLIstener);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,10, mMapLocationListener);
|
||||
|
||||
//2021.11.1 自动驾驶路线规划接口
|
||||
CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener);
|
||||
@@ -249,13 +247,13 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onMsgReceived(OCHOperationalMessage obj) {
|
||||
if (obj == null){
|
||||
if (obj == null) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onMsgReceived = null");
|
||||
return;
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onMsgReceived = "+obj.getMessage());
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onMsgReceived = " + obj.getMessage());
|
||||
OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox(obj.getPushTimeStamp(),
|
||||
obj.getMessage(),OCHSocketMessageManager.OPERATION_SYSTEM);
|
||||
obj.getMessage(), OCHSocketMessageManager.OPERATION_SYSTEM);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -289,11 +287,11 @@ public class TaxiModel {
|
||||
|
||||
//更新接单状态
|
||||
public void updateCarStatus() {
|
||||
if(!LoginStatusManager.isLogin()){
|
||||
if (!LoginStatusManager.isLogin()) {
|
||||
loginService.queryLoginStatusByNet();
|
||||
return;
|
||||
}
|
||||
TaxiServiceManager.changeOrderServing(mContext,TaxtServingStatusManager.isOpeningOrderStatus(),
|
||||
TaxiServiceManager.changeOrderServing(mContext, TaxtServingStatusManager.isOpeningOrderStatus(),
|
||||
new OchCommonServiceCallback<BaseData>() {
|
||||
@Override
|
||||
public void onSuccess(BaseData data) {
|
||||
@@ -348,8 +346,8 @@ public class TaxiModel {
|
||||
//1.1.2. 当本地有currentOrder:
|
||||
//orderId不一致时:通过currentOrder.orderId查询订单状态,并通知ui更新
|
||||
//orderId一致且orderStatus不一致时:则更新currentOrder,并通知ui更新
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG,"AutopilotControl-mCurrentOCHOrder = "+mCurrentOCHOrder.orderStatus
|
||||
+ ", orderStatus = " +data.data.servicing.get(0).orderStatus);
|
||||
CallerLogger.INSTANCE.d(M_TAXI + 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) {
|
||||
@@ -461,7 +459,7 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
ToastUtilsOch.showWithCodeMessage(code,msg);
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -490,7 +488,7 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
ToastUtilsOch.showWithCodeMessage(code,msg);
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -544,7 +542,7 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
ToastUtilsOch.showWithCodeMessage(code,msg);
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -638,7 +636,7 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
ToastUtilsOch.showWithCodeMessage(code,msg);
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -732,7 +730,7 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
ToastUtilsOch.showWithCodeMessage(code,msg);
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -748,7 +746,7 @@ public class TaxiModel {
|
||||
TaxiServiceManager.confirmAutopilotConditionByDriver(mContext,
|
||||
mCurrentOCHOrder.orderNo,
|
||||
result,
|
||||
new OchCommonServiceCallback<TaxiDataBaseRespBean>(){
|
||||
new OchCommonServiceCallback<TaxiDataBaseRespBean>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(TaxiDataBaseRespBean data) {
|
||||
@@ -762,19 +760,19 @@ public class TaxiModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void updateAutopilotStatus(boolean isSafe){
|
||||
if (mOrderStatusCallback != null){
|
||||
public void updateAutopilotStatus(boolean isSafe) {
|
||||
if (mOrderStatusCallback != null) {
|
||||
mOrderStatusCallback.onDriverHasCheckedPilotCondition(isSafe);
|
||||
}
|
||||
}
|
||||
|
||||
public void queryAutopilotStatus(boolean isStart){
|
||||
if (isStart){
|
||||
public void queryAutopilotStatus(boolean isStart) {
|
||||
if (isStart) {
|
||||
queryAutopilotStatus();
|
||||
}
|
||||
}
|
||||
|
||||
public void queryAutopilotStatus(){
|
||||
public void queryAutopilotStatus() {
|
||||
if (mCurrentOCHOrder == null) return;
|
||||
TaxiServiceManager.queryAutopilotStatus(mContext, mCurrentOCHOrder.orderNo,
|
||||
new OchCommonServiceCallback<TaxiDataBaseRespBean>() {
|
||||
@@ -820,7 +818,7 @@ public class TaxiModel {
|
||||
SharedPrefsMgr.getInstance(mContext).putString(TaxiConst.SP_KEY_OCH_TAXI_ORDER,
|
||||
GsonUtil.jsonFromObject(data));
|
||||
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) {
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
|
||||
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
|
||||
@@ -831,7 +829,7 @@ public class TaxiModel {
|
||||
|
||||
updateAutopilotControlParameters();
|
||||
}
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.getCode()){
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.getCode()) {
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "setIPCDemoMode:false");
|
||||
CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
|
||||
@@ -847,7 +845,7 @@ public class TaxiModel {
|
||||
private void updateAutopilotControlParameters() {
|
||||
|
||||
AutopilotControlParameters parameters = initAutopilotControlParameters();
|
||||
if (null == parameters){
|
||||
if (null == parameters) {
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "AutopilotControlParameters is empty.");
|
||||
return;
|
||||
}
|
||||
@@ -855,7 +853,7 @@ public class TaxiModel {
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters);
|
||||
}
|
||||
|
||||
private void clearAutopilotControlParameters(){
|
||||
private void clearAutopilotControlParameters() {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "AutopilotControlParameters is clear.");
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null);
|
||||
}
|
||||
@@ -891,12 +889,10 @@ public class TaxiModel {
|
||||
* 以当前订单为基础,开启自动驾驶
|
||||
**/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT,
|
||||
paramIndexes = {-1}, //
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_OCH_TAXI_START_AUTOPILOT,
|
||||
paramIndexes = {-1}
|
||||
)
|
||||
public void startAutoPilot() {
|
||||
|
||||
@@ -908,19 +904,19 @@ public class TaxiModel {
|
||||
|
||||
//根据开关和后台是否发布轨迹启动自驾
|
||||
if (FunctionBuildConfig.isPassStartAutopilotCommand && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrl)
|
||||
&& TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrlDPQP)){
|
||||
&& TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrlDPQP)) {
|
||||
ToastUtils.showLong("无发布轨迹, 请发布后重试");
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " +
|
||||
FunctionBuildConfig.isPassStartAutopilotCommand
|
||||
+ "busRoutesResult.csvFileUrl = "+ mCurrentOCHOrder.csvFileUrl
|
||||
+ "busRoutesResult.csvFileUrlDPQP = "+mCurrentOCHOrder.csvFileUrlDPQP);
|
||||
+ "busRoutesResult.csvFileUrl = " + mCurrentOCHOrder.csvFileUrl
|
||||
+ "busRoutesResult.csvFileUrlDPQP = " + mCurrentOCHOrder.csvFileUrlDPQP);
|
||||
return;
|
||||
}
|
||||
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " +
|
||||
FunctionBuildConfig.isPassStartAutopilotCommand);
|
||||
|
||||
if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()){
|
||||
if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()) {
|
||||
ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() +
|
||||
", 请稍候重试");
|
||||
TaxiAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent(
|
||||
@@ -929,17 +925,11 @@ public class TaxiModel {
|
||||
return;
|
||||
}
|
||||
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE
|
||||
== CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()) {
|
||||
// TODO: 2021/11/28 工控机存在刚开始状态为0,但是可以开启变为2,工控机解决前不显示此toast
|
||||
// ToastUtils.showShort("自动驾驶状态为不可用!");
|
||||
}
|
||||
|
||||
//点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode()){
|
||||
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode()) {
|
||||
startServicePilotDone();
|
||||
isRestartAutopilot = false;
|
||||
}else {
|
||||
} else {
|
||||
isRestartAutopilot = true;
|
||||
}
|
||||
|
||||
@@ -953,9 +943,9 @@ public class TaxiModel {
|
||||
CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters);
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s",
|
||||
GsonUtil.jsonFromObject(parameters)
|
||||
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr
|
||||
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr
|
||||
+ " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr
|
||||
+ "isRestartAutopilot = "+isRestartAutopilot);
|
||||
+ "isRestartAutopilot = " + isRestartAutopilot);
|
||||
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, false,
|
||||
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo);
|
||||
@@ -1026,7 +1016,6 @@ public class TaxiModel {
|
||||
|
||||
if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) {
|
||||
arrivedStartPoint();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1037,7 +1026,7 @@ public class TaxiModel {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr);
|
||||
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
startOrStopOrderLoop(LoginStatusManager.isLogin()&&TaxtServingStatusManager.isOpeningOrderStatus());
|
||||
startOrStopOrderLoop(LoginStatusManager.isLogin() && TaxtServingStatusManager.isOpeningOrderStatus());
|
||||
loginService.queryLoginStatusByNet();
|
||||
}
|
||||
}
|
||||
@@ -1048,8 +1037,8 @@ public class TaxiModel {
|
||||
@Override
|
||||
public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage);
|
||||
if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode){
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "mAdasStartFailureListener = "+startFailedMessage);
|
||||
if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) {
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG, "mAdasStartFailureListener = " + startFailedMessage);
|
||||
mADASStatusCallback.onStartAdasFailure();
|
||||
}
|
||||
}
|
||||
@@ -1068,7 +1057,7 @@ public class TaxiModel {
|
||||
};
|
||||
|
||||
// 自车定位
|
||||
private final IMoGoChassisLocationGCJ02Listener mMapLocationLIstener = new IMoGoChassisLocationGCJ02Listener() {
|
||||
private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() {
|
||||
@Override
|
||||
public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) {
|
||||
//位置变化时,通过围栏判断是否到达x点
|
||||
@@ -1078,7 +1067,7 @@ public class TaxiModel {
|
||||
judgeStartStation(gnssInfo);
|
||||
}
|
||||
if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd &&
|
||||
mPrevAPStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
judgeEndStation(gnssInfo);
|
||||
}
|
||||
}
|
||||
@@ -1092,7 +1081,7 @@ public class TaxiModel {
|
||||
}
|
||||
};
|
||||
|
||||
private void judgeEndStation(MogoLocation location) {
|
||||
private void judgeEndStation(MogoLocation location) {
|
||||
if (mCurrentOCHOrder == null || mCurrentOCHOrder.endSiteGcjPoint == null
|
||||
|| mCurrentOCHOrder.endSiteGcjPoint.size() < 2) {
|
||||
return;
|
||||
@@ -1112,7 +1101,6 @@ public class TaxiModel {
|
||||
return;
|
||||
}
|
||||
arriveTerminal();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1161,8 +1149,11 @@ public class TaxiModel {
|
||||
private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener() {
|
||||
|
||||
@Override
|
||||
public void onAutopilotRouteLineId(long lineId) {
|
||||
public void onAutopilotDockerInfo(@NonNull String dockerVersion) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotRouteLineId(long lineId) {
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1176,26 +1167,24 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
int state = autopilotStatusInfo.getState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(int state) {
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
if (state != mPrevAPStatus && mADASStatusCallback != null){
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotRunning();
|
||||
}
|
||||
if (mCurrentOCHOrder != null
|
||||
&& TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus){
|
||||
if (state != mPrevAPStatus) {
|
||||
// 当高频返回autopilot 2时,不重复调用订单状态变更
|
||||
mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态
|
||||
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, true,
|
||||
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo);
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
|
||||
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
|
||||
CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true);
|
||||
CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true);
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)");
|
||||
}
|
||||
&& TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus) {
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, true,
|
||||
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo);
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
|
||||
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
|
||||
CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true);
|
||||
CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true);
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)");
|
||||
}
|
||||
}
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
|
||||
@@ -1206,10 +1195,9 @@ public class TaxiModel {
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
return;
|
||||
}
|
||||
if (mADASStatusCallback != null){
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotEnable();
|
||||
}
|
||||
mPrevAPStatus = state;
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
if (FunctionBuildConfig.isDemoMode
|
||||
&& checkCurrentOCHOrder()
|
||||
@@ -1218,34 +1206,30 @@ public class TaxiModel {
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
return;
|
||||
}
|
||||
if (mADASStatusCallback != null){
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotDisable();
|
||||
}
|
||||
mPrevAPStatus = state;
|
||||
|
||||
}else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING){
|
||||
if (FunctionBuildConfig.isDemoMode){
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
if (checkCurrentOCHOrder()
|
||||
&& (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd
|
||||
|| getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)){//订单中
|
||||
|| getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {//订单中
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
}else { //美化模式下没订单,显示人工驾驶
|
||||
if (mADASStatusCallback != null){
|
||||
} else { //美化模式下没订单,显示人工驾驶
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotDisable();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (mADASStatusCallback != null){
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onManMachineCoDriving();
|
||||
}
|
||||
mPrevAPStatus = state;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotSNRequest() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1277,7 +1261,7 @@ public class TaxiModel {
|
||||
|
||||
@Override
|
||||
public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) {
|
||||
if (null != routeList && routeList.getWayPointsList() != null){
|
||||
if (null != routeList && routeList.getWayPointsList() != null) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "getWayPointsList = "
|
||||
+ routeList.getWayPointsList().size());
|
||||
}
|
||||
@@ -1291,12 +1275,11 @@ public class TaxiModel {
|
||||
|
||||
/**
|
||||
* 设置路径规划起终点
|
||||
*
|
||||
* @param latLngModels
|
||||
*/
|
||||
public void setRouteLineMarker(List<LatLng> latLngModels) {
|
||||
// List<LatLng> latLngModels = CoordinateCalculateRouteUtil
|
||||
// .coordinateConverterWgsToGcjListCommon(mContext,models);
|
||||
if (mAutopilotPlanningCallback != null){
|
||||
if (mAutopilotPlanningCallback != null) {
|
||||
mAutopilotPlanningCallback.setLineMarker(latLngModels);
|
||||
}
|
||||
}
|
||||
@@ -1351,7 +1334,7 @@ public class TaxiModel {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "--------计算出sumLength开始---------- ");
|
||||
|
||||
//转换成高德坐标系
|
||||
if (mRoutePoints.size() > 0){
|
||||
if (mRoutePoints.size() > 0) {
|
||||
mRoutePoints.clear();
|
||||
}
|
||||
mRoutePoints.addAll(CoordinateCalculateRouteUtil
|
||||
@@ -1367,14 +1350,14 @@ public class TaxiModel {
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "--------mRoutePoints.size---------- " + mRoutePoints.size());
|
||||
|
||||
if (mRoutePoints.size() > 0){
|
||||
if (mRoutePoints.size() > 0) {
|
||||
reportTotalDisAndTime();
|
||||
}
|
||||
//开启实时计算剩余距离,剩余时间,预计时间
|
||||
startOrStopCalculateRouteInfo(true);
|
||||
AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi();
|
||||
if (mOrderStatusCallback != null){
|
||||
mOrderStatusCallback.onNaviToEnd(false,false);
|
||||
if (mOrderStatusCallback != null) {
|
||||
mOrderStatusCallback.onNaviToEnd(false, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1389,18 +1372,18 @@ public class TaxiModel {
|
||||
* 实时计算当前剩余里程和时间
|
||||
*/
|
||||
public void dynamicCalculateRouteInfo() {
|
||||
if (mLocation == null){
|
||||
if (mLocation == null) {
|
||||
return;
|
||||
}
|
||||
if (mRoutePoints.size() > 0 && mLocation != null){
|
||||
Map<Integer,List<MogoLocation>> lastPointsMap = CoordinateCalculateRouteUtil
|
||||
.getRemainPointListByCompareNew(mPreRouteIndex,mRoutePoints, mLocation);
|
||||
if (mRoutePoints.size() > 0 && mLocation != null) {
|
||||
Map<Integer, List<MogoLocation>> lastPointsMap = CoordinateCalculateRouteUtil
|
||||
.getRemainPointListByCompareNew(mPreRouteIndex, mRoutePoints, mLocation);
|
||||
|
||||
for (int index: lastPointsMap.keySet()) {
|
||||
for (int index : lastPointsMap.keySet()) {
|
||||
mPreRouteIndex = index;
|
||||
break;
|
||||
}
|
||||
for (List<MogoLocation> lastPoints: lastPointsMap.values()){
|
||||
for (List<MogoLocation> lastPoints : lastPointsMap.values()) {
|
||||
float lastSumLength = 0;
|
||||
if (lastPoints.size() == 1) { //只是最后一个点,计算当前位置和最后一个点的距离
|
||||
lastSumLength = CoordinateUtils.calculateLineDistance(
|
||||
@@ -1413,9 +1396,9 @@ public class TaxiModel {
|
||||
double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6; //秒
|
||||
CallerLogger.INSTANCE.d(M_TAXI + "dynamicCalculateRouteInfo"
|
||||
, "---lastSumLength: " + lastSumLength + "----lastTime : " + lastTime
|
||||
+ " thread = "+ Thread.currentThread().getName());
|
||||
+ " thread = " + Thread.currentThread().getName());
|
||||
|
||||
if (mCurrentOCHOrder != null){
|
||||
if (mCurrentOCHOrder != null) {
|
||||
mCurrentOCHOrder.decreaseTravelDistance(lastSumLength);
|
||||
}
|
||||
if (mOrderStatusCallback != null) {
|
||||
@@ -1430,16 +1413,16 @@ public class TaxiModel {
|
||||
}
|
||||
|
||||
private void routeAndWipe() {
|
||||
if (mRoutePoints != null && mRoutePoints.size() > 0 && mLocation != null){
|
||||
if (mRoutePoints != null && mRoutePoints.size() > 0 && mLocation != null) {
|
||||
int haveArrivedIndex = CoordinateCalculateRouteUtil
|
||||
.getArrivedPointIndexNew(mPreRouteIndex,
|
||||
mRoutePoints,
|
||||
mLocation.getLongitude(),
|
||||
mLocation.getLatitude());
|
||||
List<LatLng> routePoints = CoordinateCalculateRouteUtil
|
||||
.coordinateConverterLocationToLatLng(mContext,mRoutePoints);
|
||||
if (mAutopilotPlanningCallback != null){
|
||||
mAutopilotPlanningCallback.routeResult(routePoints,haveArrivedIndex);
|
||||
.coordinateConverterLocationToLatLng(mContext, mRoutePoints);
|
||||
if (mAutopilotPlanningCallback != null) {
|
||||
mAutopilotPlanningCallback.routeResult(routePoints, haveArrivedIndex);
|
||||
}
|
||||
setRouteLineMarker(routePoints);
|
||||
}
|
||||
@@ -1540,7 +1523,7 @@ public class TaxiModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void startServicePilotDone(){
|
||||
public void startServicePilotDone() {
|
||||
if (mCurrentOCHOrder == null) return;
|
||||
|
||||
TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
|
||||
@@ -1561,7 +1544,7 @@ public class TaxiModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void arrivedStartPoint(){
|
||||
public void arrivedStartPoint() {
|
||||
if (mCurrentOCHOrder == null) return;
|
||||
TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
|
||||
result.lat = mLatitude;
|
||||
@@ -1582,7 +1565,7 @@ public class TaxiModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void arriveTerminal(){
|
||||
public void arriveTerminal() {
|
||||
if (mCurrentOCHOrder == null) return;
|
||||
TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
|
||||
result.lat = mLatitude;
|
||||
@@ -1603,7 +1586,7 @@ public class TaxiModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void orderCompleted(){
|
||||
public void orderCompleted() {
|
||||
if (mCurrentOCHOrder == null) return;
|
||||
TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
|
||||
result.lat = mLatitude;
|
||||
@@ -1625,28 +1608,28 @@ public class TaxiModel {
|
||||
|
||||
// 登出
|
||||
public void logout() {
|
||||
loginService.loginOut(mLatitude,mLongitude);
|
||||
loginService.loginOut(mLatitude, mLongitude);
|
||||
}
|
||||
|
||||
//导航去订单终点目的地
|
||||
public void startNaviToEndStation(boolean isShow){
|
||||
if (mRoutePoints.size() > 0 ){ //使用自驾轨迹
|
||||
if (mOrderStatusCallback != null){
|
||||
mOrderStatusCallback.onNaviToEnd(false,isShow);
|
||||
public void startNaviToEndStation(boolean isShow) {
|
||||
if (mRoutePoints.size() > 0) { //使用自驾轨迹
|
||||
if (mOrderStatusCallback != null) {
|
||||
mOrderStatusCallback.onNaviToEnd(false, isShow);
|
||||
}
|
||||
}else {//若直接要显示导航地图则直接导航, 若不是则2s后若无轨迹数据使用高德导航
|
||||
if (isShow && mRoutePoints.size() == 0 && mOrderStatusCallback != null){
|
||||
} else {//若直接要显示导航地图则直接导航, 若不是则2s后若无轨迹数据使用高德导航
|
||||
if (isShow && mRoutePoints.size() == 0 && mOrderStatusCallback != null) {
|
||||
|
||||
mOrderStatusCallback.onNaviToEnd(true,true);
|
||||
}else {
|
||||
mOrderStatusCallback.onNaviToEnd(true, true);
|
||||
} else {
|
||||
UiThreadHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mRoutePoints.size() == 0 && mOrderStatusCallback != null){
|
||||
mOrderStatusCallback.onNaviToEnd(true,false);
|
||||
if (mRoutePoints.size() == 0 && mOrderStatusCallback != null) {
|
||||
mOrderStatusCallback.onNaviToEnd(true, false);
|
||||
}
|
||||
}
|
||||
},2000l);
|
||||
}, 2000l);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -329,7 +329,6 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
if (null != location){
|
||||
runOnUIThread(() -> {
|
||||
mView.updateSpeedView((float) location.getGnssSpeed());
|
||||
mView.updateLocation(location.getLatitude(),location.getLongitude());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +228,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
@Override
|
||||
public void onClickImpl(View v) {
|
||||
// 如果能自动驾驶,就自动驾驶,不能就提示
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() ==
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() ==
|
||||
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
|
||||
return; //远程代驾状态下不可开启自动驾驶,只能等远程代驾主动退出
|
||||
} else if (!(boolean) ctvAutopilotStatusRL.getTag()) {
|
||||
@@ -251,7 +251,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
});
|
||||
// }
|
||||
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
|
||||
// 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接
|
||||
findViewById(R.id.btnAutopilotDisable).setOnClickListener(view ->
|
||||
@@ -363,9 +363,6 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
|
||||
@Override
|
||||
public void onAutopilotRecordResult(@Nullable RecordPanelOuterClass.RecordPanel recordPanel) {
|
||||
// if (!HmiBuildConfig.isShowBadCaseView && recordPanel != null && recordPanel.getType() == 1 && recordPanel.getStat() == 100) {
|
||||
// CallerDevaToolsManager.INSTANCE.onReceiveBadCaseRecord(recordPanel);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -496,7 +493,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
@Override
|
||||
public void run() {
|
||||
startOrStopLoadingAnim(false);
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
}
|
||||
}, 1000L);
|
||||
}
|
||||
@@ -538,7 +535,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
public void run() { //未启动成功10s后做处理
|
||||
if (isStarting) { //判断动画是否在进行
|
||||
//并且根据状态来设置自动驾驶启动成功还是失败
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
|
||||
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
startAutopilotDone(true);
|
||||
} else {
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.amap.api.navi.model.NaviLatLng;
|
||||
import com.mogo.eagle.core.data.map.CenterLine;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
|
||||
@@ -344,8 +345,12 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment
|
||||
|
||||
private void startNaviToStation(boolean isVoicePlay, double stationLat, double stationLng) {
|
||||
AmapNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "currentLatLng=" + mTaxiFragment.mCurLatitude + " " + mTaxiFragment.mCurLongitude);
|
||||
NaviLatLng startNaviLatLng = new NaviLatLng(mTaxiFragment.mCurLatitude, mTaxiFragment.mCurLongitude);
|
||||
|
||||
double mCurLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude();
|
||||
double mCurLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude();
|
||||
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "currentLatLng=" + mCurLatitude + " " +mCurLongitude);
|
||||
NaviLatLng startNaviLatLng = new NaviLatLng(mCurLatitude, mCurLongitude); //todo mingjun 优化
|
||||
NaviLatLng endNaviLatLng = new NaviLatLng(stationLat, stationLng);
|
||||
AmapNaviToDestinationModel.getInstance(getContext()).initAMapNavi(startNaviLatLng, endNaviLatLng);
|
||||
AmapNaviToDestinationModel.getInstance(getContext()).setVoiceIsMute(isVoicePlay);
|
||||
@@ -454,7 +459,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment
|
||||
//VoiceNotice.showNotice(getResources().getString(R.string.module_och_taxi_order_server_completed_tip));
|
||||
}else if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOrder.orderStatus){//前往目的地过程中可提前结束行程
|
||||
//自驾中提示,接管后才能结束
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
|
||||
== IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
ToastUtils.showLong(R.string.taxi_switch_line_btn_warning1);
|
||||
}else {
|
||||
|
||||
@@ -58,11 +58,9 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
return fragment;
|
||||
}
|
||||
|
||||
private TaxiGrabOrderFragment grabOrderFragment;
|
||||
private TaxiServerOrdersFragment serverOrdersFragment;
|
||||
private WeakReference<TaxiGrabOrderFragment> grabOrderFragmentWR;
|
||||
private WeakReference<TaxiServerOrdersFragment> serverOrdersFragmentWR;
|
||||
private WeakReference<TaxiPersonalDialogFragment> personalDialogFragment = null;
|
||||
protected double mCurLatitude = 0.0;
|
||||
protected double mCurLongitude = 0.0;
|
||||
private LoginService loginService;
|
||||
|
||||
@Override
|
||||
@@ -120,32 +118,34 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
}
|
||||
|
||||
private void initFragment() {
|
||||
serverOrdersFragment = TaxiServerOrdersFragment.newInstance();
|
||||
grabOrderFragment = TaxiGrabOrderFragment.newInstance();
|
||||
serverOrdersFragmentWR = new WeakReference<>(TaxiServerOrdersFragment.newInstance());
|
||||
grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance());
|
||||
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
|
||||
//默认显示OCHTaxiServerOrdersFragment
|
||||
transaction.add(R.id.fragment_container, serverOrdersFragment).show(serverOrdersFragment);
|
||||
transaction.add(R.id.fragment_container, grabOrderFragment).hide(grabOrderFragment);
|
||||
transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get()).show(serverOrdersFragmentWR.get());
|
||||
transaction.add(R.id.fragment_container, grabOrderFragmentWR.get()).hide(grabOrderFragmentWR.get());
|
||||
transaction.commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
private void showGrabFragmentAndUpdate() {
|
||||
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
|
||||
if (grabOrderFragment == null) {
|
||||
grabOrderFragment = TaxiGrabOrderFragment.newInstance();
|
||||
transaction.add(R.id.fragment_container, grabOrderFragment).show(grabOrderFragment).commitAllowingStateLoss();
|
||||
if (grabOrderFragmentWR == null || grabOrderFragmentWR.get() == null) {
|
||||
grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance());
|
||||
transaction.add(R.id.fragment_container, grabOrderFragmentWR.get())
|
||||
.show(grabOrderFragmentWR.get()).commitAllowingStateLoss();
|
||||
} else {
|
||||
transaction.show(grabOrderFragment).hide(serverOrdersFragment).commitAllowingStateLoss();
|
||||
transaction.show(grabOrderFragmentWR.get()).hide(serverOrdersFragmentWR.get()).commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
|
||||
public void showServerFragmentAndUpdate() {
|
||||
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
|
||||
if (serverOrdersFragment == null) {
|
||||
serverOrdersFragment = TaxiServerOrdersFragment.newInstance();
|
||||
transaction.add(R.id.fragment_container, serverOrdersFragment).show(serverOrdersFragment);
|
||||
if (serverOrdersFragmentWR == null || serverOrdersFragmentWR.get() == null) {
|
||||
serverOrdersFragmentWR = new WeakReference<>(TaxiServerOrdersFragment.newInstance());
|
||||
transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get())
|
||||
.show(serverOrdersFragmentWR.get());
|
||||
} else {
|
||||
transaction.show(serverOrdersFragment).hide(grabOrderFragment).commitAllowingStateLoss();
|
||||
transaction.show(serverOrdersFragmentWR.get()).hide(grabOrderFragmentWR.get()).commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,8 +210,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.P)
|
||||
public void updateCurrentOrderStatusChanged(OrderQueryRespBean.Result order) {
|
||||
if (serverOrdersFragment != null) {
|
||||
serverOrdersFragment.updateCurrentOrderStatusChanged(order);
|
||||
if (serverOrdersFragmentWR != null && serverOrdersFragmentWR.get() != null) {
|
||||
serverOrdersFragmentWR.get().updateCurrentOrderStatusChanged(order);
|
||||
}
|
||||
updateTaxiTestBarInfo(); //更新调试bar中信息
|
||||
}
|
||||
@@ -242,25 +242,25 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
|
||||
public void onCurrentOrderCancelDone(){
|
||||
startOrStopLoadingAnim(false);
|
||||
if (null == serverOrdersFragment) return;
|
||||
serverOrdersFragment.onCurrentOrderCancelDone();
|
||||
if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return;
|
||||
serverOrdersFragmentWR.get().onCurrentOrderCancelDone();
|
||||
}
|
||||
|
||||
public void onOrderCancelDone(String orderNo) {
|
||||
if (null == serverOrdersFragment) return;
|
||||
serverOrdersFragment.onOrderCancelDone(orderNo);
|
||||
if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return;
|
||||
serverOrdersFragmentWR.get().onOrderCancelDone(orderNo);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateOrderBottomBtnUI() {
|
||||
if (null == serverOrdersFragment) return;
|
||||
serverOrdersFragment.updateOrderBottomBtnUI();
|
||||
if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return;
|
||||
serverOrdersFragmentWR.get().updateOrderBottomBtnUI();
|
||||
}
|
||||
|
||||
public void onNewBookingOrderGot(OrderQueryRespBean.Result order) {
|
||||
if (null == order) return;
|
||||
showGrabFragmentAndUpdate();
|
||||
grabOrderFragment.updateGrabOrder(order);
|
||||
grabOrderFragmentWR.get().updateGrabOrder(order);
|
||||
}
|
||||
|
||||
public void grabOrder() {
|
||||
@@ -273,18 +273,18 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
}
|
||||
|
||||
public void onGrabOrderExecuteDone() {
|
||||
if (null == grabOrderFragment) return;
|
||||
grabOrderFragment.onGrabOrderExecuteDone();
|
||||
if (null == grabOrderFragmentWR || grabOrderFragmentWR.get() == null) return;
|
||||
grabOrderFragmentWR.get().onGrabOrderExecuteDone();
|
||||
}
|
||||
|
||||
public void onGrabOrderSuccess(OrderQueryRespBean.Result order) {
|
||||
if (null == grabOrderFragment) return;
|
||||
if (null == grabOrderFragmentWR || grabOrderFragmentWR.get() == null) return;
|
||||
if (null == order) {
|
||||
showServerFragmentAndUpdate();
|
||||
return;
|
||||
}
|
||||
showGrabFragmentAndUpdate();
|
||||
grabOrderFragment.onGrabOrderSuccess();
|
||||
grabOrderFragmentWR.get().onGrabOrderSuccess();
|
||||
}
|
||||
|
||||
public void onGrabOrderFailed(OrderQueryRespBean.Result order) {
|
||||
@@ -292,15 +292,15 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
showServerFragmentAndUpdate();
|
||||
return;
|
||||
}
|
||||
if (null == grabOrderFragment) return;
|
||||
if (null == grabOrderFragmentWR || grabOrderFragmentWR.get() == null) return;
|
||||
showGrabFragmentAndUpdate();
|
||||
grabOrderFragment.onGrabOrderFailed();
|
||||
grabOrderFragmentWR.get().onGrabOrderFailed();
|
||||
}
|
||||
|
||||
public void onNaviToEnd(boolean isAmap , boolean isShow){
|
||||
if (isAmap){
|
||||
if (null == serverOrdersFragment) return;
|
||||
serverOrdersFragment.onNaviToEndAmap(isShow);
|
||||
if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return;
|
||||
serverOrdersFragmentWR.get().onNaviToEndAmap(isShow);
|
||||
}else if (isShow){ //使用rotting数据
|
||||
showRottingToStationFragment(true);
|
||||
}else {
|
||||
@@ -324,8 +324,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
|
||||
public void onOrdersWaitServiceChanged(List<OrderQueryRespBean.Result> waitServiceList) {
|
||||
if (null == waitServiceList) return;
|
||||
if (null == serverOrdersFragment) return;
|
||||
serverOrdersFragment.onOrdersWaitServiceChanged(waitServiceList);
|
||||
if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return;
|
||||
serverOrdersFragmentWR.get().onOrdersWaitServiceChanged(waitServiceList);
|
||||
}
|
||||
|
||||
public void queryCurOrderRouteInfo() {
|
||||
@@ -333,18 +333,13 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
}
|
||||
|
||||
public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) {
|
||||
if (null == serverOrdersFragment) return;
|
||||
serverOrdersFragment.onCurrentOrderRouteInfoGot(routeInfo);
|
||||
if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return;
|
||||
serverOrdersFragmentWR.get().onCurrentOrderRouteInfoGot(routeInfo);
|
||||
}
|
||||
|
||||
public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) {
|
||||
if (null == serverOrdersFragment) return;
|
||||
serverOrdersFragment.onCurrentOrderDistToEndChanged(meters, timeInSecond);
|
||||
}
|
||||
|
||||
public void updateLocation(double latitude, double longitude) {
|
||||
this.mCurLatitude = latitude;
|
||||
this.mCurLongitude = longitude;
|
||||
if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return;
|
||||
serverOrdersFragmentWR.get().onCurrentOrderDistToEndChanged(meters, timeInSecond);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -98,7 +98,7 @@ public class TaxiMapDirectionView
|
||||
initAMapView();
|
||||
|
||||
// 注册定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, this);
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, 10,this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -56,14 +56,14 @@ public class TaxiAnalyticsManager {
|
||||
if (mStartAutopilotParams.isEmpty()) return;
|
||||
|
||||
CallerLogger.INSTANCE.e(M_TAXI + "triggerStartAutopilotFailureEvent", failMsg);
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() !=
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() !=
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_FAILURE_CODE, failCode);
|
||||
mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_FAILURE_MSG,
|
||||
failMsg);
|
||||
}
|
||||
mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_RESULT,
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() ==
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.getState() ==
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING);
|
||||
MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams);
|
||||
|
||||
|
||||
@@ -117,16 +117,17 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
|
||||
@Override
|
||||
public void onAutopilotRouteLineId(long lineId) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) {
|
||||
if (autopilotStatusInfo == null) return;
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onAutopilotStatusResponse state:" + autopilotStatusInfo.getState());
|
||||
SweeperTaskModel.getInstance().setAutopilotState(autopilotStatusInfo.getState());
|
||||
ThreadUtils.runOnUiThread(() -> mView.startAutoBtn(autopilotStatusInfo.getState()));
|
||||
switch (autopilotStatusInfo.getState()) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(int state) {
|
||||
SweeperTaskModel.getInstance().setAutopilotState(state);
|
||||
ThreadUtils.runOnUiThread(() -> mView.startAutoBtn(state));
|
||||
switch (state) {
|
||||
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE://不可自动驾驶
|
||||
break;
|
||||
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE://人工驾驶
|
||||
@@ -207,8 +208,6 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
}
|
||||
/**
|
||||
* 测试使用
|
||||
*
|
||||
* @param status
|
||||
*/
|
||||
public void debugAutoPilotStatus(int status) {
|
||||
AutopilotStatusInfo info = new AutopilotStatusInfo();
|
||||
@@ -237,12 +236,10 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
|
||||
@Override
|
||||
public void onAutopilotSNRequest() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartAdasFailure() {
|
||||
|
||||
}
|
||||
|
||||
public void onArriveTaskEnd(@Nullable MessagePad.ArrivalNotification arrivalNotification) {
|
||||
@@ -251,9 +248,6 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) {
|
||||
if (cleanSystemState == null) {
|
||||
return;
|
||||
}
|
||||
long current = System.currentTimeMillis();
|
||||
if (current - mVehicleStateCurrentTimeMillis <= VEHICLE_STATE_INTERVAL_MILLIS) {
|
||||
return;
|
||||
@@ -279,30 +273,29 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
// 纯扫 模式判断:不是另外其他3个模式,同时有清扫方向,说明开启了纯扫模式
|
||||
boolean clean_mode_pure_sweep = SweeperFutianCmdUtil.checkIfCleanModePureSweep(cleanSystemState);
|
||||
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("开关:")
|
||||
.append(clean_open_requirement)
|
||||
.append("\n")
|
||||
.append("纯扫:")
|
||||
.append(clean_mode_wash_sweep)
|
||||
.append("纯洗:")
|
||||
.append(clean_mode_pure_wash)
|
||||
.append("纯吸:")
|
||||
.append(clean_mode_pure_draw)
|
||||
.append("纯扫:")
|
||||
.append("\n")
|
||||
.append(clean_mode_pure_sweep)
|
||||
.append("左侧:")
|
||||
.append(clean_direction_left_side)
|
||||
.append("右侧:")
|
||||
.append(clean_direction_right_side)
|
||||
.append("两侧:")
|
||||
.append("\n")
|
||||
.append(clean_direction_both_side)
|
||||
.append("标准:")
|
||||
.append(clean_intensity_standard)
|
||||
.append("强力:")
|
||||
.append(clean_intensity_strong);
|
||||
String stringBuilder = "开关:" +
|
||||
clean_open_requirement +
|
||||
"\n" +
|
||||
"纯扫:" +
|
||||
clean_mode_wash_sweep +
|
||||
"纯洗:" +
|
||||
clean_mode_pure_wash +
|
||||
"纯吸:" +
|
||||
clean_mode_pure_draw +
|
||||
"纯扫:" +
|
||||
"\n" +
|
||||
clean_mode_pure_sweep +
|
||||
"左侧:" +
|
||||
clean_direction_left_side +
|
||||
"右侧:" +
|
||||
clean_direction_right_side +
|
||||
"两侧:" +
|
||||
"\n" +
|
||||
clean_direction_both_side +
|
||||
"标准:" +
|
||||
clean_intensity_standard +
|
||||
"强力:" +
|
||||
clean_intensity_strong;
|
||||
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onSweeperFutianCleanSystemState:" + stringBuilder);
|
||||
mView.onSweeperFutianCleanSystemState(cleanSystemState);
|
||||
@@ -310,27 +303,23 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianTaskIndexData(@NonNull RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) {
|
||||
if (roboSweeperTaskIndex == null) {
|
||||
return;
|
||||
}
|
||||
long current = System.currentTimeMillis();
|
||||
if (current - mWeltDataCurrentTimeMillis <= WELT_DATA_INTERVAL_MILLIS) {
|
||||
return;
|
||||
}
|
||||
mWeltDataCurrentTimeMillis = current;
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("清扫模式:")
|
||||
.append(roboSweeperTaskIndex.getCleanMode())
|
||||
.append("清扫方向:")
|
||||
.append(roboSweeperTaskIndex.getCleanDirection())
|
||||
.append("清扫强度:")
|
||||
.append(roboSweeperTaskIndex.getCleanIntensity())
|
||||
.append("贴边距离:")
|
||||
.append(roboSweeperTaskIndex.getDistToRefEdgePoint())
|
||||
.append("经度:")
|
||||
.append(roboSweeperTaskIndex.getLocLon())
|
||||
.append("纬度:")
|
||||
.append(roboSweeperTaskIndex.getLocLat());
|
||||
String stringBuilder = "清扫模式:" +
|
||||
roboSweeperTaskIndex.getCleanMode() +
|
||||
"清扫方向:" +
|
||||
roboSweeperTaskIndex.getCleanDirection() +
|
||||
"清扫强度:" +
|
||||
roboSweeperTaskIndex.getCleanIntensity() +
|
||||
"贴边距离:" +
|
||||
roboSweeperTaskIndex.getDistToRefEdgePoint() +
|
||||
"经度:" +
|
||||
roboSweeperTaskIndex.getLocLon() +
|
||||
"纬度:" +
|
||||
roboSweeperTaskIndex.getLocLat();
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onSweeperFutianTaskIndexData:" + stringBuilder);
|
||||
String tempLongitude=NumberFormatUtil.cutOutNumber(roboSweeperTaskIndex.getLocLon(), 6);
|
||||
String tempLatitude=NumberFormatUtil.cutOutNumber(roboSweeperTaskIndex.getLocLat(), 6);
|
||||
@@ -458,4 +447,9 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
public void setRouteList(@NonNull ArrayList<SweeperRoutePlanningUpdateReqBean.Result> routeList) {
|
||||
mView.setTaskRouteList(routeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotDockerInfo(@NonNull String dockerVersion) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -51,13 +51,13 @@ public class SweeperAnalyticsManager {
|
||||
|
||||
CallerLogger.INSTANCE.e( M_SWEEPER + "triggerStartAutopilotFailureEvent", failMsg );
|
||||
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() !=
|
||||
if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() !=
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
|
||||
mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_FAILURE_CODE, failCode);
|
||||
mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_FAILURE_MSG, failMsg);
|
||||
}
|
||||
mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_RESULT
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() ==
|
||||
, CallerAutoPilotStatusListenerManager.INSTANCE.getState() ==
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING);
|
||||
|
||||
MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams);
|
||||
|
||||
@@ -115,25 +115,25 @@
|
||||
},
|
||||
"saas": {
|
||||
"qa": {
|
||||
"och_url": "https://och-a.zhidaozhixing.com",
|
||||
"shuttle_url": "https://och-a.zhidaozhixing.com",
|
||||
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
|
||||
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
|
||||
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
|
||||
"eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/",
|
||||
"eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/",
|
||||
"bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s",
|
||||
"och_url": "https://mogogo-driver-qa.zhidaozhixing.com",
|
||||
"shuttle_url": "https://mogogo-driver-qa.zhidaozhixing.com",
|
||||
"passport_url": "https://mogogo-driver-qa.zhidaozhixing.com/arch/passport/",
|
||||
"socket_base_url": "https://mogogo-driver-qa.zhidaozhixing.com/arch/push/",
|
||||
"socket_tech_url": "https://mogogo-driver-qa.zhidaozhixing.com/arch/",
|
||||
"eagle_mis_url": "https://mogogo-qa.zhidaozhixing.com/",
|
||||
"eagle_dns_url": "https://mogogo-qa.zhidaozhixing.com/",
|
||||
"bind_driver_qr_url": "https://och-mini-mogogo.zhidaozhixing.com?pipe=mogogosafety&sn=%1$s",
|
||||
"chart_socket_url":""
|
||||
},
|
||||
"online": {
|
||||
"och_url": "https://tech.zhidaohulian.com",
|
||||
"och_url": "https://mogogo-driver.zhidaozhixing.com",
|
||||
"shuttle_url": "https://mogogo-driver.zhidaozhixing.com",
|
||||
"passport_url": "https://mogogo-driver.zhidaozhixing.com/arch/passport/",
|
||||
"socket_base_url": "https://mogogo-driver.zhidaozhixing.com/arch/push/",
|
||||
"socket_tech_url": "https://mogogo-driver.zhidaozhixing.com/arch/",
|
||||
"eagle_mis_url": "https://mogogo.zhidaozhixing.com/",
|
||||
"eagle_dns_url": "https://mogogo.zhidaozhixing.com/",
|
||||
"bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s",
|
||||
"bind_driver_qr_url": "https://och-mini-mogogo.zhidaozhixing.com?pipe=mogogosafety&sn=%1$s",
|
||||
"chart_socket_url":""
|
||||
},
|
||||
"demo": {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.mogo.eagle.core.utilcode.util.SharedPrefs;
|
||||
import com.mogo.launcher.crash.CrashSystem;
|
||||
import com.mogo.launcher.startup.ARouterStartUp;
|
||||
import com.mogo.launcher.startup.ConfigStartUp;
|
||||
import com.zhjt.service.chain.TraceNodeCore;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
@@ -22,9 +23,9 @@ public class MogoApplication extends MainMoGoApplication {
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
TraceNodeCore.Companion.getTraceNodeCore().setDebugMode(true); //todo
|
||||
ARouterStartUp.init(this);
|
||||
ConfigStartUp.init(this);
|
||||
CallerStartUpManager.initStageOne();
|
||||
tryEnableStrictMode();
|
||||
super.onCreate();
|
||||
}
|
||||
|
||||
@@ -132,7 +132,6 @@ object ConfigStartUp {
|
||||
val mapParams = MapParams.init()
|
||||
mapParams.setDebugMode(false) // 1-使用本地地图数据,0-使用在线地图数据
|
||||
//.setDataFileSource(1)
|
||||
.setDebugMode(false)
|
||||
.setIsRecordLogs(false)
|
||||
.setCoordinateType(MapParams.COORDINATETYPE_GCJ02)
|
||||
.setPerspectiveMode(MapParams.MAP_PERSPECTIVE_UP_CAR)
|
||||
|
||||
@@ -29,7 +29,7 @@ buildscript {
|
||||
classpath "com.alibaba:arouter-register:10.0.5_mogo"
|
||||
classpath 'com.tencent.bugly:symtabfileuploader:2.2.1'
|
||||
classpath "com.bytedance.android.byteX:base-plugin:${plugin_version}"
|
||||
classpath "com.mogo.cloud:hook:${plugin_version}"
|
||||
classpath "com.mogo.cloud:hook:${service_chain_version}"
|
||||
classpath "com.mogo.cloud:bizconfig:${plugin_version}"
|
||||
classpath 'com.volcengine:apm_insight_plugin:1.4.2'
|
||||
classpath "com.mogo.thread.opt:plg:${plugin_version}"
|
||||
|
||||
@@ -113,8 +113,8 @@ ext {
|
||||
circleimageview : "de.hdodenhof:circleimageview:3.0.1",
|
||||
|
||||
//plugin
|
||||
mogochainbase : "com.mogo.cloud:service-chain:${plugin_version}",
|
||||
mogochainplugin : "com.mogo.cloud:hook:${plugin_version}",
|
||||
mogochainbase : "com.mogo.cloud:service-chain:${service_chain_version}",
|
||||
mogochainplugin : "com.mogo.cloud:hook:${service_chain_version}",
|
||||
mogoservicebiz : "com.mogo.cloud:service-biz:${plugin_version}",
|
||||
mogobizconfig : "com.mogo.cloud:bizconfig:${plugin_version}",
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.mogo.eagle.function.biz.dispatch
|
||||
import android.content.Context
|
||||
import android.os.Handler
|
||||
import android.os.Message
|
||||
import android.util.Log
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
@@ -16,12 +15,13 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener
|
||||
import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BIZ
|
||||
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_COMPLETED
|
||||
@@ -36,7 +36,7 @@ import com.zhjt.mogo.adas.data.bean.MogoReport
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo_msg.MogoReportMsg
|
||||
|
||||
|
||||
//todo emArrow 添加biz链路日志
|
||||
//负责监听自动驾驶状态并进行状态上报,自动驾驶路线上报,接收调度指令展示指令弹窗
|
||||
class DispatchAutoPilotManager private constructor() :
|
||||
IMogoOnMessageListener<DispatchAdasAutoPilotLocReceiverBean>,
|
||||
@@ -73,10 +73,7 @@ class DispatchAutoPilotManager private constructor() :
|
||||
msg.obj as DispatchAdasAutoPilotLocReceiverBean
|
||||
CallerHmiManager.showDispatchDialog(msgData)
|
||||
} else if (msg.what == MSG_TYPE_UPLOAD_AUTOPILOT_STATUS) {
|
||||
dispatchServiceModel.uploadAutopilotStatus(
|
||||
getAutoPilotStatusInfo().state,
|
||||
getAutoPilotStatusInfo().reason
|
||||
)
|
||||
dispatchServiceModel.uploadAutopilotStatus(getState(), "")
|
||||
sendEmptyMessageDelayed(MSG_TYPE_UPLOAD_AUTOPILOT_STATUS, 1000L)
|
||||
} else if(msg.what == MSG_TYPE_UPLOAD_AUTOPILOT_ROTTING){
|
||||
val data = msg.obj as MessagePad.GlobalPathResp
|
||||
@@ -119,7 +116,7 @@ class DispatchAutoPilotManager private constructor() :
|
||||
}
|
||||
|
||||
override fun onMsgReceived(adasAutoPilotLocReceiverBean: DispatchAdasAutoPilotLocReceiverBean?) {
|
||||
Log.i(TAG,"onMsgReceived 收到云调度长链接")
|
||||
CallerLogger.i("$M_BIZ$TAG","onMsgReceived 收到云调度长链接, adasAutoPilotLocReceiver:${adasAutoPilotLocReceiverBean?:""}")
|
||||
if (adasAutoPilotLocReceiverBean != null && adasAutoPilotLocReceiverBean.startLat != 0.0 && adasAutoPilotLocReceiverBean.startLon != 0.0) {
|
||||
receiverBean = adasAutoPilotLocReceiverBean
|
||||
val message = Message()
|
||||
@@ -133,41 +130,9 @@ class DispatchAutoPilotManager private constructor() :
|
||||
val mAutoPilotLine = AutopilotControlParameters.AutoPilotLine(it.lineId.toLong(),it.trajUrl,it.trajMd5,it.stopUrl,it.stopMd5,it.timestamp,
|
||||
it.vehicleModel,it.trajUrl_dpqp,it.trajMd5_dpqp,it.stopUrl_dpqp,it.stopMd5_dpqp,it.timestamp_dpqp)
|
||||
CallerAutoPilotControlManager.sendTrajectoryDownloadReq(mAutoPilotLine)
|
||||
Log.i(TAG,"调用路线下载逻辑")
|
||||
CallerLogger.i("$M_BIZ$TAG","调用路线下载逻辑")
|
||||
}
|
||||
}
|
||||
|
||||
adasAutoPilotLocReceiverBean?.let {
|
||||
Log.i(TAG,"taskId="+it.taskId)
|
||||
Log.i(TAG,"type="+it.type)
|
||||
Log.i(TAG,"source="+it.source)
|
||||
Log.i(TAG,"lineName="+it.lineName)
|
||||
Log.i(TAG,"stopMd5_dpqp="+it.stopMd5_dpqp)
|
||||
Log.i(TAG,"stopUrl_dpqp="+it.stopUrl_dpqp)
|
||||
Log.i(TAG,"trajMd5_dpqp="+it.trajMd5_dpqp)
|
||||
Log.i(TAG,"trajUrl_dpqp="+it.trajUrl_dpqp)
|
||||
Log.i(TAG,"stopMd5_dpqp="+it.stopMd5_dpqp)
|
||||
Log.i(TAG,"stopMd5="+it.stopMd5)
|
||||
Log.i(TAG,"stopUrl="+it.stopUrl)
|
||||
Log.i(TAG,"trajUrl="+it.trajUrl)
|
||||
Log.i(TAG,"trajMd5="+it.trajMd5)
|
||||
Log.i(TAG,"endLocAddress="+it.endLocAddress)
|
||||
Log.i(TAG,"flightInfo="+it.flightInfo)
|
||||
Log.i(TAG,"poiId="+it.poiId)
|
||||
Log.i(TAG,"startLocAddress="+it.startLocAddress)
|
||||
Log.i(TAG,"taskInfo="+it.taskInfo)
|
||||
Log.i(TAG,"taskTime="+it.taskTime)
|
||||
Log.i(TAG,"vehicleModel="+it.vehicleModel)
|
||||
Log.i(TAG,"endLat="+it.endLat)
|
||||
Log.i(TAG,"endLon="+it.endLon)
|
||||
Log.i(TAG,"lineId="+it.lineId)
|
||||
Log.i(TAG,"startLat="+it.startLat)
|
||||
Log.i(TAG,"startLon="+it.startLon)
|
||||
Log.i(TAG,"stopsList="+it.stopsList)
|
||||
Log.i(TAG,"timestamp="+it.timestamp)
|
||||
Log.i(TAG,"systemTime="+it.systemTime)
|
||||
Log.i(TAG,"timestamp_dpqp="+it.timestamp_dpqp)
|
||||
}
|
||||
}
|
||||
|
||||
private fun startAutoPilot() {
|
||||
@@ -231,8 +196,7 @@ class DispatchAutoPilotManager private constructor() :
|
||||
currentAutopilot.endLatLon =
|
||||
AutopilotControlParameters.AutoPilotLonLat(it.endLat, it.endLon)
|
||||
currentAutopilot.vehicleType = 10
|
||||
CallerLogger.d(SceneConstant.Companion.M_DISPATCH + TAG, "开启自动驾驶====$currentAutopilot")
|
||||
Log.i(TAG,"开启自动驾驶====$currentAutopilot")
|
||||
CallerLogger.d(M_BIZ + TAG, "开启自动驾驶====$currentAutopilot")
|
||||
CallerAutoPilotControlManager.startAutoPilot(currentAutopilot)
|
||||
}
|
||||
}
|
||||
@@ -260,7 +224,7 @@ class DispatchAutoPilotManager private constructor() :
|
||||
onSuccess = {
|
||||
//取消自动驾驶
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
Log.i(TAG,"stopAffirm 取消自动驾驶")
|
||||
CallerLogger.i("$M_BIZ$TAG","stopAffirm 取消自动驾驶")
|
||||
}, onError = {})
|
||||
}
|
||||
}
|
||||
@@ -330,10 +294,9 @@ class DispatchAutoPilotManager private constructor() :
|
||||
}
|
||||
|
||||
CallerLogger.d(
|
||||
SceneConstant.Companion.M_DISPATCH + TAG,
|
||||
SceneConstant.Companion.M_BIZ + TAG,
|
||||
"onArriveAt data : $arrivalNotification"
|
||||
)
|
||||
Log.i(TAG,"onArriveAt data : $arrivalNotification")
|
||||
if (arrivalNotification.endLocation == null) {
|
||||
return
|
||||
}
|
||||
@@ -344,12 +307,11 @@ class DispatchAutoPilotManager private constructor() :
|
||||
receiverBean!!.endLon, receiverBean!!.endLat, endLon, endLat
|
||||
)
|
||||
CallerLogger.d(
|
||||
SceneConstant.Companion.M_DISPATCH + TAG,
|
||||
SceneConstant.Companion.M_BIZ + TAG,
|
||||
"onArriveAt cal distance : $distanceFromSelf"
|
||||
)
|
||||
Log.i(TAG,"onArriveAt cal distance : $distanceFromSelf")
|
||||
if (distanceFromSelf < 10) {
|
||||
CallerLogger.d(SceneConstant.Companion.M_DISPATCH + TAG, "onArriveAt end location")
|
||||
CallerLogger.d(SceneConstant.Companion.M_BIZ + TAG, "onArriveAt end location")
|
||||
isDispatch = false
|
||||
isArriveEnd = true
|
||||
//到站,调度完成
|
||||
@@ -371,7 +333,7 @@ class DispatchAutoPilotManager private constructor() :
|
||||
*/
|
||||
override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {
|
||||
if (guardianInfo == null || !guardianInfo.hasCode()) return
|
||||
Log.i(TAG,"onAutopilotGuardian "+guardianInfo.code)
|
||||
CallerLogger.i("$M_BIZ$TAG","onAutopilotGuardian "+guardianInfo.code)
|
||||
//掉自驾
|
||||
when(guardianInfo.code){
|
||||
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_PLANNING,
|
||||
@@ -397,15 +359,15 @@ class DispatchAutoPilotManager private constructor() :
|
||||
}
|
||||
}
|
||||
if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.code)){
|
||||
Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_START 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发)")
|
||||
CallerLogger.i("$M_BIZ$TAG","onAutopilotGuardian ISYS_INIT_TRAJECTORY_START 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发)")
|
||||
}else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.code)){
|
||||
Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_SUCCESS 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发)")
|
||||
CallerLogger.i("$M_BIZ$TAG","onAutopilotGuardian ISYS_INIT_TRAJECTORY_SUCCESS 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发)")
|
||||
}else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.code)){
|
||||
Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_FAILURE 轨迹管理_轨迹下载失败,本地无对应轨迹")
|
||||
CallerLogger.i("$M_BIZ$TAG","onAutopilotGuardian ISYS_INIT_TRAJECTORY_FAILURE 轨迹管理_轨迹下载失败,本地无对应轨迹")
|
||||
}else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.code)){
|
||||
Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_WARNING 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功")
|
||||
CallerLogger.i("$M_BIZ$TAG","onAutopilotGuardian ISYS_INIT_TRAJECTORY_WARNING 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功")
|
||||
}else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.code)){
|
||||
Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_TIMEOUT 轨迹管理_轨迹下载超时")
|
||||
CallerLogger.i("$M_BIZ$TAG","onAutopilotGuardian ISYS_INIT_TRAJECTORY_TIMEOUT 轨迹管理_轨迹下载超时")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MONITOR
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BIZ
|
||||
import com.mogo.eagle.function.biz.monitoring.net.ICameraListServices
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
@@ -48,7 +48,6 @@ class CronTaskManager {
|
||||
CRON_TASK_TYPE -> {
|
||||
removeMessages(CRON_TASK_TYPE)
|
||||
// 路测和车侧摄像头列表分开调用
|
||||
// requestCameraList()
|
||||
requestDeviceList()
|
||||
requestCarCameraList()
|
||||
sendEmptyMessageDelayed(CRON_TASK_TYPE, 10000)
|
||||
@@ -57,35 +56,6 @@ class CronTaskManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("已废弃", ReplaceWith("requestDeviceList()"), DeprecationLevel.WARNING)
|
||||
private fun requestCameraList() {
|
||||
// 衡阳可直播的摄像头有限,先写死roadId便于调试
|
||||
disposable = MoGoRetrofitFactory.getInstance(HostConst.CAMERA_STREAM_HOST)
|
||||
.create(ICameraListServices::class.java)
|
||||
.getCameraList("10849")
|
||||
.subscribeOn(Schedulers.io())
|
||||
.map { cameraListInfo ->
|
||||
cameraListInfo.result?.crossings?.flatMap { crossing ->
|
||||
crossing.cameras.filter { camera ->
|
||||
!camera.flvUrl.isNullOrEmpty()
|
||||
}.map {
|
||||
CameraEntity(
|
||||
it.flvUrl, "", it.roadName,
|
||||
it.crossingName, it.getHeadingStr(), it.ip
|
||||
)
|
||||
}
|
||||
} ?: ArrayList()
|
||||
}
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe({
|
||||
cameraList = it
|
||||
CallerLogger.d("$M_MONITOR$TAG", "requestCameraList返回结果为:$it")
|
||||
}, {
|
||||
it.printStackTrace()
|
||||
CallerLogger.e("$M_MONITOR$TAG", "message is:${it.message}, cause is:${it.cause}")
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求路口一定范围内的设备信息(包含:摄像头、灯)
|
||||
*/
|
||||
@@ -110,21 +80,21 @@ class CronTaskManager {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe({
|
||||
cameraList = it
|
||||
// CallerLogger.d("$M_MONITOR$TAG", "requestDeviceList返回结果为:$it")
|
||||
// CallerLogger.d("$M_BIZ$TAG", "requestDeviceList返回结果为:$it")
|
||||
}, {
|
||||
it.printStackTrace()
|
||||
CallerLogger.e(
|
||||
"$M_MONITOR$TAG",
|
||||
"$M_BIZ$TAG",
|
||||
"requestDeviceList:message is:${it.message}, cause is:${it.cause}"
|
||||
)
|
||||
})
|
||||
}?: run {
|
||||
CallerLogger.e("$M_MONITOR$TAG", "CurrentLocation is null!")
|
||||
CallerLogger.e("$M_BIZ$TAG", "CurrentLocation is null!")
|
||||
}
|
||||
}
|
||||
|
||||
private fun requestCarCameraList() {
|
||||
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()?.let { location ->
|
||||
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { location ->
|
||||
carDisposable = MoGoRetrofitFactory.getInstance(HostConst.getEagleHost())
|
||||
.create(ICameraListServices::class.java)
|
||||
.getCarCameraList(ReqLiveCarBean(location.longitude, location.latitude))
|
||||
@@ -143,49 +113,17 @@ class CronTaskManager {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe({
|
||||
carCameraList = it
|
||||
// CallerLogger.d("$M_MONITOR$TAG", "requestCarCameraList返回结果为:$it")
|
||||
// CallerLogger.d("$M_BIZ$TAG", "requestCarCameraList返回结果为:$it")
|
||||
}, {
|
||||
CallerLogger.e(
|
||||
"$M_MONITOR$TAG",
|
||||
"$M_BIZ$TAG",
|
||||
"message is:${it.message}, cause is:${it.cause}"
|
||||
)
|
||||
it.printStackTrace()
|
||||
})
|
||||
} ?: run {
|
||||
CallerLogger.e("$M_MONITOR$TAG", "CurrentLocation is null!")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启从摄像头拉流
|
||||
*/
|
||||
@Deprecated("已废弃", ReplaceWith("requestDeviceList()"), DeprecationLevel.WARNING)
|
||||
fun requestOpenCamera(cameraIp: String) {
|
||||
streamDisposable?.let {
|
||||
if (!it.isDisposed) it.dispose()
|
||||
}
|
||||
streamDisposable = MoGoRetrofitFactory.getInstance(HostConst.OPEN_CAMERA_STREAM_HOST)
|
||||
.create(ICameraListServices::class.java)
|
||||
.openCameraStream(cameraIp)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe({
|
||||
CallerLogger.d("$M_MONITOR$TAG", "openCameraStream返回结果为:$it")
|
||||
it.result?.let { streamResult ->
|
||||
if (!streamResult.flvUrl.isNullOrEmpty()) CallerHmiManager.startRoadCameraLive(
|
||||
streamResult.flvUrl!!
|
||||
)
|
||||
}
|
||||
}, {
|
||||
CallerLogger.e(
|
||||
"$M_MONITOR$TAG",
|
||||
"openCameraStream&message is:${it.message}, cause is:${it.cause}"
|
||||
)
|
||||
CallerHmiManager.showNoSignalView()
|
||||
it.printStackTrace()
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开单个视频推流
|
||||
*/
|
||||
@@ -199,7 +137,7 @@ class CronTaskManager {
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe({
|
||||
CallerLogger.d("$M_MONITOR$TAG", "reqOpenCameraStream返回结果为:$it")
|
||||
CallerLogger.d("$M_BIZ$TAG", "reqOpenCameraStream返回结果为:$it")
|
||||
if (!it.flvUrl.isNullOrEmpty()) {
|
||||
CallerHmiManager.startRoadCameraLive(it.flvUrl!!)
|
||||
} else {
|
||||
@@ -207,7 +145,7 @@ class CronTaskManager {
|
||||
}
|
||||
}, {
|
||||
CallerLogger.e(
|
||||
"$M_MONITOR$TAG",
|
||||
"$M_BIZ$TAG",
|
||||
"reqOpenCameraStream&message is:${it.message}, cause is:${it.cause}"
|
||||
)
|
||||
CallerHmiManager.showNoSignalView()
|
||||
@@ -236,7 +174,7 @@ class CronTaskManager {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retryWhen(RetryWithDelay())
|
||||
.subscribe({
|
||||
CallerLogger.d("$M_MONITOR$TAG", "reqOpenCameraStream返回结果为:$it")
|
||||
CallerLogger.d("$M_BIZ$TAG", "reqOpenCameraStream返回结果为:$it")
|
||||
if (it.code == 200 || it.code == 0) {
|
||||
val flvString = it.flvUrl
|
||||
if (!flvString.isNullOrEmpty()) {
|
||||
@@ -249,7 +187,7 @@ class CronTaskManager {
|
||||
}
|
||||
}, {
|
||||
CallerLogger.e(
|
||||
"$M_MONITOR$TAG",
|
||||
"$M_BIZ$TAG",
|
||||
"reqOpenCameraStream&message is:${it.message}, cause is:${it.cause}"
|
||||
)
|
||||
error(it)
|
||||
|
||||
@@ -59,7 +59,7 @@ internal class NoticeSocketManager {
|
||||
if (obj == null) {
|
||||
return
|
||||
}
|
||||
d(SceneConstant.M_NOTICE + TAG, "100-- 普通公告数据:" + GsonUtil.jsonFromObject(obj))
|
||||
d(SceneConstant.M_BIZ + TAG, "100-- 普通公告数据:" + GsonUtil.jsonFromObject(obj))
|
||||
val noticeFromCloudMsg = NoticeFrCloudMsg(obj, null, 0)
|
||||
saveMsgBox(MsgBoxBean(MsgBoxType.NOTICE, noticeFromCloudMsg))
|
||||
}
|
||||
@@ -78,7 +78,7 @@ internal class NoticeSocketManager {
|
||||
if (obj == null) {
|
||||
return
|
||||
}
|
||||
d(SceneConstant.M_NOTICE + TAG, "301001-- 交警类型公告数据:" + GsonUtil.jsonFromObject(obj))
|
||||
d(SceneConstant.M_BIZ + TAG, "301001-- 交警类型公告数据:" + GsonUtil.jsonFromObject(obj))
|
||||
val noticeFromCloudMsg = NoticeFrCloudMsg(null, obj, 1)
|
||||
saveMsgBox(MsgBoxBean(MsgBoxType.NOTICE, noticeFromCloudMsg))
|
||||
}
|
||||
|
||||
@@ -5,19 +5,16 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_V2X
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
|
||||
class V2XBizTrace {
|
||||
|
||||
companion object {
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CLOUD_V2N,
|
||||
linkCode = ChainConstant.CHAIN_LINK_CLOUD,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_CLOUD_V2N,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_V2X,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_V2X_MSG,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
fun onAck(data: Any, data1: Any) {
|
||||
if (DebugConfig.isDebug()) {
|
||||
|
||||
@@ -85,7 +85,7 @@ object OverViewDataManager {
|
||||
// 1分钟查询一次
|
||||
disposable = Observable.interval(2000, 60000, TimeUnit.MILLISECONDS)
|
||||
.flatMap {
|
||||
val lineId = getLineId()
|
||||
val lineId = CallerAutoPilotStatusListenerManager.getLineId()
|
||||
if (lineId > 0) {
|
||||
MoGoRetrofitFactory.getInstance(HostConst.getHost())
|
||||
.create(OverViewServiceApi::class.java)
|
||||
@@ -119,20 +119,4 @@ object OverViewDataManager {
|
||||
disposable?.dispose()
|
||||
}
|
||||
|
||||
private fun getLineId(): Long {
|
||||
var lineId: Long = -1
|
||||
val parameter = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo()
|
||||
.autopilotControlParameters
|
||||
if (parameter != null) {
|
||||
if (parameter.autoPilotLine != null) {
|
||||
lineId = parameter.autoPilotLine!!.lineId
|
||||
CallerLogger.d(SceneConstant.M_MAP + TAG, "lineId为:$lineId")
|
||||
} else {
|
||||
CallerLogger.d(SceneConstant.M_MAP + TAG, "parameter.autoPilotLine为null")
|
||||
}
|
||||
} else {
|
||||
CallerLogger.d(SceneConstant.M_MAP + TAG, "parameter为null")
|
||||
}
|
||||
return lineId
|
||||
}
|
||||
}
|
||||
@@ -6,9 +6,9 @@ import android.util.*
|
||||
import androidx.annotation.*
|
||||
import androidx.localbroadcastmanager.content.*
|
||||
import com.mogo.eagle.core.data.config.*
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_V2N
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CLOUD_V2N
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_V2X_MSG
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_SOURCE_CLOUD
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_V2X
|
||||
import com.mogo.eagle.core.data.enums.*
|
||||
import com.mogo.eagle.core.data.enums.DataSourceType
|
||||
import com.mogo.eagle.core.data.enums.EventTypeEnumNew.Companion.isRoadEvent
|
||||
@@ -16,17 +16,13 @@ import com.mogo.eagle.core.data.enums.WarningDirectionEnum.ALERT_WARNING_TOP
|
||||
import com.mogo.eagle.core.data.map.*
|
||||
import com.mogo.eagle.core.data.map.entity.*
|
||||
import com.mogo.eagle.core.data.msgbox.*
|
||||
import com.mogo.eagle.core.data.traffic.*
|
||||
import com.mogo.eagle.core.data.v2x.*
|
||||
import com.mogo.eagle.core.function.api.autopilot.*
|
||||
import com.mogo.eagle.core.function.api.cloud.*
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.*
|
||||
import com.mogo.eagle.core.function.api.map.angle.*
|
||||
import com.mogo.eagle.core.function.call.autopilot.*
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02
|
||||
import com.mogo.eagle.core.function.call.cloud.*
|
||||
import com.mogo.eagle.core.function.call.hmi.*
|
||||
import com.mogo.eagle.core.function.call.map.*
|
||||
import com.mogo.eagle.core.function.call.msgbox.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.*
|
||||
@@ -148,12 +144,10 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IV2XCallback,
|
||||
* V2XEvent事件回调
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_CLOUD_V2N,
|
||||
linkCode = CHAIN_LINK_CLOUD,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_V2N,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_V2X,
|
||||
linkCode = CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = CHAIN_CODE_V2X_MSG,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
override fun onAck(event: V2XEvent) {
|
||||
Log.d("$M_V2X$TAG", "OK->: $event")
|
||||
@@ -185,12 +179,10 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IV2XCallback,
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_CLOUD_V2N,
|
||||
linkCode = CHAIN_LINK_CLOUD,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_V2N,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_V2X,
|
||||
linkCode = CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = CHAIN_CODE_V2X_MSG,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
override fun onAutopilotIdentifyPlanningObj(planningObjects: List<PlanningObject>?) {
|
||||
super.onAutopilotIdentifyPlanningObj(planningObjects)
|
||||
|
||||
@@ -11,8 +11,6 @@ import com.mogo.eagle.core.data.v2x.V2XEvent
|
||||
import com.mogo.eagle.core.data.v2x.V2XMarkerResponse
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.eagle.function.biz.v2x.v2n.network.V2XRefreshModel
|
||||
import com.mogo.eagle.function.biz.v2x.v2n.network.callback.IV2XCallback
|
||||
@@ -143,33 +141,16 @@ class V2XPoiLoader private constructor() {
|
||||
fun queryWholeRoadEvents() {
|
||||
V2XRefreshModel.roadEventDispose()
|
||||
val sn = MoGoAiCloudClientConfig.getInstance().sn
|
||||
val lineId = getLineId()
|
||||
val lineId = CallerAutoPilotStatusListenerManager.getLineId()
|
||||
if (lineId > 0) {
|
||||
realQueryV2xEvents(lineId.toString(), sn)
|
||||
} else {
|
||||
UiThreadHandler.postDelayed({
|
||||
realQueryV2xEvents(getLineId().toString(), sn)
|
||||
realQueryV2xEvents(CallerAutoPilotStatusListenerManager.getLineId().toString(), sn)
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getLineId(): Long {
|
||||
var lineId: Long = -1
|
||||
val parameter = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo()
|
||||
.autopilotControlParameters
|
||||
if (parameter != null) {
|
||||
if (parameter.autoPilotLine != null) {
|
||||
lineId = parameter.autoPilotLine!!.lineId
|
||||
CallerLogger.d(SceneConstant.M_V2X + TAG, "lineId为:$lineId")
|
||||
} else {
|
||||
CallerLogger.d(SceneConstant.M_V2X + TAG, "parameter.autoPilotLine为null")
|
||||
}
|
||||
} else {
|
||||
CallerLogger.d(SceneConstant.M_V2X + TAG, "parameter为null")
|
||||
}
|
||||
return lineId
|
||||
}
|
||||
|
||||
private fun realQueryV2xEvents(lineId: String, sn: String) {
|
||||
V2XRefreshModel.getRoadEvents(lineId, sn) {
|
||||
val size = it?.size ?: 0
|
||||
|
||||
@@ -200,13 +200,6 @@ internal object V2NIdentifyDrawer {
|
||||
|
||||
override fun onAutopilotIdentifyDataUpdate(trafficData: List<TrackedObject>?) {
|
||||
super.onAutopilotIdentifyDataUpdate(trafficData)
|
||||
try {
|
||||
if (trafficData != null) {
|
||||
V2XBizTrace.onAck("onAutopilotIdentifyDataUpdate", trafficData)
|
||||
}
|
||||
} catch (t: Throwable) {
|
||||
t.printStackTrace()
|
||||
}
|
||||
val shiGong = trafficData?.filter { it.type == 501 || it.type == 502 }
|
||||
if (shiGong != null && shiGong.isNotEmpty()) {
|
||||
drawShiGong(shiGong)
|
||||
|
||||
@@ -10,35 +10,33 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
|
||||
import com.mogo.eagle.core.data.autopilot.toAutoPilotLine
|
||||
import com.mogo.eagle.core.data.autopilot.toRouteInfo
|
||||
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.toTrafficLightDetail
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.constants.MoGoConfig
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_MULTI_CONNECT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_ADAS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.toTrafficLightDetail
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_MULTI_CONNECT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_SOURCE_ADAS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_INIT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SOCKET_AUTOPILOT
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotControlProvider
|
||||
import com.mogo.eagle.core.function.api.map.collect.IMoGoMapDataCollectProvider
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager
|
||||
import com.mogo.eagle.core.function.datacenter.autopilot.adapter.MoGoAdasListenerImpl
|
||||
import com.mogo.eagle.core.function.datacenter.autopilot.adapter.MoGoAdasMsgConnectStatusListenerImpl
|
||||
import com.mogo.eagle.core.function.datacenter.autopilot.server.AsyncDataToAutopilotServer
|
||||
import com.mogo.eagle.core.function.datacenter.autopilot.telematic.EventListener
|
||||
import com.mogo.eagle.core.function.datacenter.autopilot.telematic.IMsgHandler
|
||||
import com.mogo.eagle.core.function.datacenter.autopilot.telematic.TeleMsgHandler
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicStatusListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_D_C
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.ParseVersionUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
@@ -66,7 +64,6 @@ import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
import io.netty.channel.Channel
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import java.util.*
|
||||
@@ -95,7 +92,7 @@ class MoGoAutopilotControlProvider :
|
||||
get() = TAG
|
||||
|
||||
override fun init(context: Context) {
|
||||
CallerLogger.i("$M_ADAS_IMPL$TAG", "初始化工控机连接……")
|
||||
CallerLogger.i("$M_D_C$TAG", "初始化工控机连接……")
|
||||
mContext = context
|
||||
// 初始化ADAS 域控制器
|
||||
CupidLogUtils.setEnableLog(false)
|
||||
@@ -162,7 +159,7 @@ class MoGoAutopilotControlProvider :
|
||||
}
|
||||
|
||||
override fun onChannelDisConnect(channel: Channel?) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "onChannelDisConnect")
|
||||
CallerLogger.d("$M_D_C$TAG", "onChannelDisConnect")
|
||||
}
|
||||
|
||||
override fun onReceiveClientSign(channel: Channel?, sn: String?) {
|
||||
@@ -225,7 +222,7 @@ class MoGoAutopilotControlProvider :
|
||||
}
|
||||
})
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
CallerLogger.i("$M_ADAS_IMPL$TAG", "initServer……")
|
||||
CallerLogger.i("$M_D_C$TAG", "initServer……")
|
||||
// 同步数据给工控机的服务
|
||||
AsyncDataToAutopilotServer.INSTANCE.initServer()
|
||||
}
|
||||
@@ -258,7 +255,7 @@ class MoGoAutopilotControlProvider :
|
||||
NSDNettyManager.getInstance()
|
||||
.sendMsgToAllClients(MogoProtocolMsg(NORMAL_DATA, bytes.size, bytes))
|
||||
} else {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "司机端Server未启动!")
|
||||
CallerLogger.d("$M_D_C$TAG", "司机端Server未启动!")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,12 +313,12 @@ class MoGoAutopilotControlProvider :
|
||||
|
||||
override fun onMapCollectStart(cmdId: Int, cmdTime: Long) {
|
||||
val result = recordPackage(2, cmdId)
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "开始记录包: [$cmdId, $result]")
|
||||
CallerLogger.d("$M_D_C$TAG", "开始记录包: [$cmdId, $result]")
|
||||
}
|
||||
|
||||
override fun onMapCollectEnd(cmdId: Int, cmdTime: Long) {
|
||||
val result = stopRecord(2, cmdId)
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "结束记录包: [$cmdId, $result]")
|
||||
CallerLogger.d("$M_D_C$TAG", "结束记录包: [$cmdId, $result]")
|
||||
}
|
||||
|
||||
override fun startAutoPilot(controlParameters: AutopilotControlParameters) {
|
||||
@@ -336,21 +333,20 @@ class MoGoAutopilotControlProvider :
|
||||
invokeAutoPilotResult(if (invokeResult) "自动驾驶调用成功" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
|
||||
} else {
|
||||
invokeAutoPilotResult("车机与工控机链接失败,无法开启自动驾驶")
|
||||
CallerLogger.e("$M_ADAS_IMPL$TAG", "车机与工控机链接失败,无法开启自动驾驶")
|
||||
CallerLogger.e("$M_D_C$TAG", "车机与工控机链接失败,无法开启自动驾驶")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_EAGLE_START_AUTOPILOT_RESULT,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
parentNodeAliasCode = ChainConstant.CHAIN_CODE_EAGLE_START_AUTOPILOT,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_EAGLE_START_AUTOPILOT_RESULT,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun invokeAutoPilotResult(status: String) {
|
||||
CallerLogger.e("$M_ADAS_IMPL$TAG", status)
|
||||
CallerLogger.e("$M_D_C$TAG", status)
|
||||
}
|
||||
|
||||
override fun sendTrafficLightData(trafficLightResult: TrafficLightResult) {
|
||||
@@ -377,7 +373,7 @@ class MoGoAutopilotControlProvider :
|
||||
if (AdasManager.getInstance().ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
|
||||
AdasManager.getInstance().sendAutoPilotModeReq(0, 1, null)
|
||||
} else {
|
||||
CallerLogger.e("$M_ADAS_IMPL$TAG", "车机与工控机链接失败,无法断开自动驾驶")
|
||||
CallerLogger.e("$M_D_C$TAG", "车机与工控机链接失败,无法断开自动驾驶")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -471,7 +467,7 @@ class MoGoAutopilotControlProvider :
|
||||
)
|
||||
)
|
||||
} else {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "同步美化模式状态时司机端Server未启动!")
|
||||
CallerLogger.d("$M_D_C$TAG", "同步美化模式状态时司机端Server未启动!")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -494,7 +490,7 @@ class MoGoAutopilotControlProvider :
|
||||
)
|
||||
)
|
||||
} else {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "同步美化模式状态时司机端Server未启动!")
|
||||
CallerLogger.d("$M_D_C$TAG", "同步美化模式状态时司机端Server未启动!")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -532,9 +528,9 @@ class MoGoAutopilotControlProvider :
|
||||
* @return boolean
|
||||
*/
|
||||
override fun sendDetouring(isEnable: Boolean): Boolean {
|
||||
return if(isEnable){
|
||||
return if (isEnable) {
|
||||
AdasManager.getInstance().sendDetouring(1)
|
||||
}else{
|
||||
} else {
|
||||
AdasManager.getInstance().sendDetouring(0)
|
||||
}
|
||||
}
|
||||
@@ -555,9 +551,9 @@ class MoGoAutopilotControlProvider :
|
||||
* @return boolean
|
||||
*/
|
||||
override fun sendWeakNetSlowDown(isEnable: Boolean): Boolean {
|
||||
return if(isEnable){
|
||||
return if (isEnable) {
|
||||
AdasManager.getInstance().sendWeakNetSlowDown(1)
|
||||
}else{
|
||||
} else {
|
||||
AdasManager.getInstance().sendWeakNetSlowDown(0)
|
||||
}
|
||||
}
|
||||
@@ -569,7 +565,7 @@ class MoGoAutopilotControlProvider :
|
||||
* @return boolean
|
||||
*/
|
||||
override fun sendGetAllParamReq(): Boolean {
|
||||
return AdasManager.getInstance().sendGetAllParamReq()
|
||||
return AdasManager.getInstance().sendGetAllParamReq()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -619,7 +615,7 @@ class MoGoAutopilotControlProvider :
|
||||
bagManager.descReq = descReq.build()
|
||||
|
||||
// 空间使用信息,获取响应且reqType=1时有效
|
||||
for(diskSpaceInfoEntity in bagManagerEntity.spaceInfoResp){
|
||||
for (diskSpaceInfoEntity in bagManagerEntity.spaceInfoResp) {
|
||||
val spaceInfoResp = BagManagerOuterClass.BagSpaceInfo
|
||||
.newBuilder()
|
||||
val diskSpaceInfo = BagManagerOuterClass.SpaceInfo
|
||||
@@ -631,7 +627,7 @@ class MoGoAutopilotControlProvider :
|
||||
.build()
|
||||
spaceInfoResp
|
||||
.setHost(diskSpaceInfoEntity.host).diskSpaceInfo = diskSpaceInfo
|
||||
for(entity in diskSpaceInfoEntity.BagDirsSpaceInfo){
|
||||
for (entity in diskSpaceInfoEntity.BagDirsSpaceInfo) {
|
||||
val bagDirsSpaceInfo = BagManagerOuterClass.SpaceInfo
|
||||
.newBuilder()
|
||||
.setDirectory(entity.directory)
|
||||
@@ -645,8 +641,8 @@ class MoGoAutopilotControlProvider :
|
||||
}
|
||||
|
||||
// 包信息列表,获取响应且reqType=2时有效
|
||||
for(bagsInfoRespEntity in bagManagerEntity.bagsInfoResp){
|
||||
if(bagsInfoRespEntity.itemType == 0){
|
||||
for (bagsInfoRespEntity in bagManagerEntity.bagsInfoResp) {
|
||||
if (bagsInfoRespEntity.itemType == 0) {
|
||||
// 包描述信息
|
||||
val bagDescription = BagManagerOuterClass.BagDescription
|
||||
.newBuilder()
|
||||
@@ -668,7 +664,7 @@ class MoGoAutopilotControlProvider :
|
||||
.setDescription(bagDescription.build())
|
||||
|
||||
// 子包信息
|
||||
for(subBagEntity in bagsInfoRespEntity.subBags){
|
||||
for (subBagEntity in bagsInfoRespEntity.subBags) {
|
||||
val subBag = BagManagerOuterClass.SubBag
|
||||
.newBuilder()
|
||||
.setKey(subBagEntity.key)
|
||||
@@ -854,15 +850,18 @@ class MoGoAutopilotControlProvider :
|
||||
}
|
||||
msgHandler.synMsgToAllClients()
|
||||
} else {// 乘客屏
|
||||
CallerDevaToolsManager.getBindingCarInfo( carConfigResp.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
|
||||
CallerDevaToolsManager.getBindingCarInfo(
|
||||
carConfigResp.macAddress,
|
||||
MoGoAiCloudClientConfig.getInstance().sn
|
||||
)
|
||||
invokeNettyConnResult("乘客屏车牌号:${carConfigResp.plateNumber},Mac地址为:${carConfigResp.macAddress}")
|
||||
}
|
||||
|
||||
if(carConfigResp.dockVersion.isNotEmpty()){
|
||||
if(carConfigResp.dockVersion.contains("taxi")){
|
||||
if (carConfigResp.dockVersion.isNotEmpty()) {
|
||||
if (carConfigResp.dockVersion.contains("taxi")) {
|
||||
//修改雨天模式开关默认状态为开启(仅针对taxi320及以上的版本)-sop 215
|
||||
val num = ParseVersionUtils.parseVersion(true,carConfigResp.dockVersion)
|
||||
if(num >= 30200){
|
||||
val num = ParseVersionUtils.parseVersion(true, carConfigResp.dockVersion)
|
||||
if (num >= 30200) {
|
||||
FunctionBuildConfig.isRainMode = true
|
||||
}
|
||||
}
|
||||
@@ -872,15 +871,13 @@ class MoGoAutopilotControlProvider :
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_MULTI_CONNECT,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_MULTI_CONNECT,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun invokeNettyConnResult(status: String) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", status)
|
||||
CallerLogger.d("$M_D_C$TAG", status)
|
||||
}
|
||||
|
||||
override fun getTeleTimeStamp(): Long {
|
||||
|
||||
@@ -7,37 +7,33 @@ import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_CONFIG
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_ACTIONS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_OBJECTS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_STATUS_QUERY_RESP
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_ADAS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_AUTOPILOT_ARRIVE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_AUTOPILOT_GUARDIAN
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_AUTOPILOT_RECORD
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_AUTOPILOT_ROUTE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_AUTOPILOT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_AUTOPILOT_TRAJECTORY
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_AUTOPILOT_VEHICLE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_CAR_CONFIG
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_CAR_STATE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_P_ACTIONS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_P_OBJECTS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_STATUS_QUERY_RESP
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_SOURCE_ADAS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_GNSS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_INIT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SOCKET_AUTOPILOT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SOCKET_P_ACTIONS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SOCKET_P_OBJECTS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SOCKET_TRAJECTORY
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SOCKET_VEHICLE
|
||||
import com.mogo.eagle.core.function.call.autopilot.*
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeArriveAtStation
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutopilotGuardian
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutopilotSNRequest
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutopilotStatusRespByQuery
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutoPilotDockerInfo
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutoPilotStatus
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotActionsListenerManager.invokeAutopilotAbility
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager.invokeAutopilotCarConfigData
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate
|
||||
@@ -55,10 +51,8 @@ import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsiListenerManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsmListenerManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuWarningSpatListenerManager
|
||||
import com.mogo.eagle.core.function.call.v2x.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||
import com.mogo.support.obu.ObuScene
|
||||
import com.zhidao.support.adas.high.AdasManager
|
||||
import com.zhidao.support.adas.high.OnAdasListener
|
||||
import com.zhjt.mogo.adas.data.bean.AdasParam
|
||||
import com.zhidao.support.adas.high.common.ProtocolStatus
|
||||
@@ -72,8 +66,6 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
|
||||
import function_state_management.FunctionStates
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo.telematics.pad.MessagePad.TrackedObject
|
||||
@@ -87,10 +79,6 @@ import record_cache.RecordPanelOuterClass
|
||||
import system_master.SystemStatusInfo
|
||||
|
||||
/**
|
||||
* @author emArrow
|
||||
* @since 2022/3/11
|
||||
*
|
||||
*
|
||||
* 适配ADAS 回调监听分发,这里不做业务,只做数据包装及分发处理
|
||||
*/
|
||||
class MoGoAdasListenerImpl : OnAdasListener {
|
||||
@@ -101,12 +89,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//车前引导线
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_TRAJECTORY,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_TRAJECTORY,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onTrajectory(header: MessagePad.Header, trajectory: MessagePad.Trajectory?) {
|
||||
if (HdMapBuildConfig.isMapLoaded) {
|
||||
@@ -120,10 +106,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
// @ChainLog(
|
||||
// linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED,
|
||||
// linkCode = CHAIN_LINK_ADAS,
|
||||
// endpoint = PAD,
|
||||
// nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
|
||||
// paramIndexes = [0, 1],
|
||||
// clientPkFileName = "sn"
|
||||
// paramIndexes = [0, 1]
|
||||
// )
|
||||
override fun onTrackedObjects(
|
||||
header: MessagePad.Header,
|
||||
@@ -136,20 +120,17 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//自车定位信息
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_GNSS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_CAR_STATE,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onGnssInfo(header: MessagePad.Header, gnssInfo: MessagePad.GnssInfo) {
|
||||
CallerChassisGnssListenerManager.invokeChassisGnssListener(gnssInfo)
|
||||
|
||||
if (gnssInfo != null) {
|
||||
if (1 == FunctionBuildConfig.gpsProvider) {
|
||||
// 同步更新经纬度和系统时间至 AutoPilotStatusListener
|
||||
CallerAutoPilotStatusListenerManager.updateAutoPilotLatLon(
|
||||
CallerAutoPilotStatusListenerManager.updateAutoPilotLocAndTime(
|
||||
gnssInfo.satelliteTime,
|
||||
gnssInfo.longitude,
|
||||
gnssInfo.latitude
|
||||
@@ -167,12 +148,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param vehicleState 数据
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_VEHICLE,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_VEHICLE,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onVehicleState(
|
||||
header: MessagePad.Header,
|
||||
@@ -229,12 +208,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param vehicleState 数据
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_VEHICLE,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_VEHICLE,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onChassisStates(
|
||||
header: MessagePad.Header,
|
||||
@@ -290,12 +267,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//自动驾驶状态
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_STATUS,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onAutopilotState(
|
||||
header: MessagePad.Header,
|
||||
@@ -305,40 +280,17 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
//工控机模拟时间
|
||||
CallerAutopilotVehicleStateListenerManager.invokeAutopilotTime(header.timestamp.toLong())
|
||||
if (HdMapBuildConfig.isMapLoaded) {
|
||||
// 初始化自动驾驶状态信息
|
||||
val autopilotStatusInfo = getAutoPilotStatusInfo()
|
||||
autopilotStatusInfo.state = autopilotState.state
|
||||
autopilotStatusInfo.pilotmode = autopilotState.autopilotMode
|
||||
autopilotStatusInfo.reason = autopilotState.reason
|
||||
autopilotStatusInfo.version = AdasManager.getInstance().adasVersion
|
||||
if (autopilotStatusInfo.connectIP == null) {
|
||||
autopilotStatusInfo.connectIP = AdasManager.getInstance().ipcConnectedIp
|
||||
}
|
||||
if (autopilotStatusInfo.connectPort == null) {
|
||||
autopilotStatusInfo.connectPort = AdasManager.getInstance().ipcConnectedPort
|
||||
}
|
||||
AdasManager.getInstance().carConfig?.let {
|
||||
autopilotStatusInfo.dockVersion = it.dockVersion
|
||||
}
|
||||
CallerLogger.d(
|
||||
"Upgrade",
|
||||
"origin = ${autopilotStatusInfo.connectStatus} -----now = ${AppConfigInfo.isConnectAutopilot} "
|
||||
)
|
||||
AppConfigInfo.isConnectAutopilot = autopilotStatusInfo.connectStatus
|
||||
AppConfigInfo.connectStatusDescribe = autopilotStatusInfo.connectStatusDescribe
|
||||
invokeAutoPilotStatus()
|
||||
updateAutoPilotStatus(autopilotState.state, autopilotState.autopilotMode)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//监控
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_GUARDIAN,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onReportMessage(
|
||||
header: MessagePad.Header,
|
||||
@@ -350,14 +302,6 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
}
|
||||
|
||||
//感知红绿灯
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
)
|
||||
override fun onPerceptionTrafficLight(
|
||||
header: MessagePad.Header?,
|
||||
trafficLights: TrafficLightOuterClass.TrafficLights?
|
||||
@@ -384,12 +328,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//planning障碍物
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_OBJECTS,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_P_OBJECTS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_P_OBJECTS,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onPlanningObjects(
|
||||
header: MessagePad.Header?,
|
||||
@@ -410,18 +352,17 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//工控机基础配置信息
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_CONFIG,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_CAR_CONFIG,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onCarConfigResp(
|
||||
header: MessagePad.Header,
|
||||
carConfigResp: MessagePad.CarConfigResp?
|
||||
) {
|
||||
if (carConfigResp != null) {
|
||||
updateAutoPilotDockerInfo(carConfigResp.dockVersion)
|
||||
AppConfigInfo.dockerVersion = carConfigResp.dockVersion
|
||||
AppConfigInfo.plateNumber = carConfigResp.plateNumber//车牌号
|
||||
AppConfigInfo.iPCMacAddress = carConfigResp.macAddress//工控机MAC地址
|
||||
@@ -433,12 +374,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//全局路径规划
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_ROUTE,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onGlobalPathResp(
|
||||
header: MessagePad.Header,
|
||||
@@ -449,12 +388,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//数据采集,badCase
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_RECORD,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onRecordResult(
|
||||
header: MessagePad.Header,
|
||||
@@ -469,10 +406,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
// @ChainLog(
|
||||
// linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
// linkCode = CHAIN_LINK_ADAS,
|
||||
// endpoint = PAD,
|
||||
// nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN,
|
||||
// paramIndexes = [0, 1],
|
||||
// clientPkFileName = "sn"
|
||||
// paramIndexes = [0, 1]
|
||||
// )
|
||||
override fun onWarn(header: MessagePad.Header, warn: MessagePad.Warn?) {
|
||||
invokeAutopilotWarnMessage(warn)
|
||||
@@ -480,12 +415,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//到站回调
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_AUTOPILOT_ARRIVE,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onArrivalNotification(
|
||||
header: MessagePad.Header,
|
||||
@@ -496,12 +429,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
|
||||
//状态查询应答
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_STATUS_QUERY_RESP,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_STATUS_QUERY_RESP,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onStatusQueryResp(
|
||||
header: MessagePad.Header?,
|
||||
@@ -526,12 +457,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* planning决策状态, 透传
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_ACTIONS,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_P_ACTIONS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_P_ACTIONS,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onPlanningActionMsg(
|
||||
header: MessagePad.Header?,
|
||||
@@ -620,7 +549,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param header 头
|
||||
* @param roboSweeperTaskIndex 数据
|
||||
*/
|
||||
override fun onSweeperTaskIndexData(header: MessagePad.Header?, roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex?) {
|
||||
override fun onSweeperTaskIndexData(
|
||||
header: MessagePad.Header?,
|
||||
roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex?
|
||||
) {
|
||||
roboSweeperTaskIndex?.let {
|
||||
//清扫车(福田)清扫控制系统状态
|
||||
CallerSweeperFutianCleanSystemListenerManager.invokeSweeperFutianCleanTaskIndexData(it)
|
||||
@@ -752,12 +684,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param rsi 数据
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CLOUD_V2N,
|
||||
linkCode = ChainConstant.CHAIN_LINK_CLOUD,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_CLOUD_V2N,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_V2X,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_V2X_MSG,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
override fun onV2nCongestionEvent(header: MessagePad.Header, rsi: MogoV2X.RSI_PB) {
|
||||
CallerAutopilotIdentifyListenerManager.invokeAutopilotV2nCongestionEvent(header, rsi)
|
||||
@@ -774,15 +704,26 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param parkingViolation 违停 ---包含 静态障碍车
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CLOUD_V2N,
|
||||
linkCode = ChainConstant.CHAIN_LINK_CLOUD,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_CLOUD_V2N,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_V2X,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_V2X_MSG,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
override fun onV2nGlobalPathEvents(header: MessagePad.Header, roadOverview: RoadOverviewEvents.RoadOverviewData, construct: MogoV2X.RSI_PB?, triangle: MogoV2X.RSI_PB?, congestion: MogoV2X.RSI_PB?, parkingViolation: MogoV2X.RSM_PB?) {
|
||||
CallerV2XListenerManager.dispatchV2nGlobalPathEvents(roadOverview.eventCount, construct, triangle, congestion, parkingViolation)
|
||||
override fun onV2nGlobalPathEvents(
|
||||
header: MessagePad.Header,
|
||||
roadOverview: RoadOverviewEvents.RoadOverviewData,
|
||||
construct: MogoV2X.RSI_PB?,
|
||||
triangle: MogoV2X.RSI_PB?,
|
||||
congestion: MogoV2X.RSI_PB?,
|
||||
parkingViolation: MogoV2X.RSM_PB?
|
||||
) {
|
||||
CallerV2XListenerManager.dispatchV2nGlobalPathEvents(
|
||||
roadOverview.eventCount,
|
||||
construct,
|
||||
triangle,
|
||||
congestion,
|
||||
parkingViolation
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.datacenter.autopilot.adapter
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.debug.DebugConfig.*
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
|
||||
@@ -10,7 +11,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_D_C
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.zhidao.support.adas.high.AdasManager
|
||||
import com.zhidao.support.adas.high.OnAdasConnectStatusListener
|
||||
@@ -24,11 +25,11 @@ import com.zhidao.support.adas.high.common.Constants.TERMINAL_ROLE.PASSENGER
|
||||
* ADAS-SDK与工控机连接状态回调
|
||||
*/
|
||||
class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
OnAdasConnectStatusListener,
|
||||
IMoGoAutopilotStatusListener,
|
||||
IMoGoCloudListener {
|
||||
OnAdasConnectStatusListener,
|
||||
IMoGoAutopilotStatusListener,
|
||||
IMoGoCloudListener {
|
||||
|
||||
companion object{
|
||||
companion object {
|
||||
private const val TAG = "ConnectStatus"
|
||||
}
|
||||
|
||||
@@ -40,53 +41,63 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
|
||||
override fun onConnectionIPCStatus(ipcConnectionStatus: Int, reason: String?) {
|
||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotIPCStatusChanged(
|
||||
ipcConnectionStatus,
|
||||
reason
|
||||
ipcConnectionStatus,
|
||||
reason
|
||||
)
|
||||
if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 连接成功")
|
||||
connectStatus = true
|
||||
// 初始化自动驾驶状态信息
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP =
|
||||
AppConfigInfo.connectStatusDescribe = reason
|
||||
when (ipcConnectionStatus) {
|
||||
Constants.IPC_CONNECTION_STATUS.CONNECTED -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "webSocket 连接成功")
|
||||
connectStatus = true
|
||||
// 初始化自动驾驶状态信息
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP =
|
||||
AdasManager.getInstance().ipcConnectedIp
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectPort =
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectPort =
|
||||
AdasManager.getInstance().ipcConnectedPort
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = true
|
||||
// 同步SN给工控机
|
||||
syncBasicInfoToAutopilot()
|
||||
//每次工控机连接成功后,需同步当前设置的美化模式状态
|
||||
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
//当连接状态是关闭美化模式时,同步给工控机
|
||||
if (!FunctionBuildConfig.isDemoMode) {
|
||||
CallerAutoPilotControlManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
}
|
||||
//每次工控机连接成功后,需同步当前设置的雨天模式状态
|
||||
CallerAutoPilotControlManager.setRainMode(FunctionBuildConfig.isRainMode)
|
||||
} else if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.DISCONNECTED) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 连接失败 reason:$reason")
|
||||
if (connectStatus) {
|
||||
reason?.let {
|
||||
ToastUtils.showLong("工控机连接断开,原因:$it , 等待重连")
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().version =
|
||||
AdasManager.getInstance().adasVersion
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = true
|
||||
AppConfigInfo.isConnectAutopilot = true
|
||||
// 同步SN给工控机
|
||||
syncBasicInfoToAutopilot()
|
||||
//每次工控机连接成功后,需同步当前设置的美化模式状态
|
||||
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
//当连接状态是关闭美化模式时,同步给工控机
|
||||
if (!FunctionBuildConfig.isDemoMode) {
|
||||
CallerAutoPilotControlManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
}
|
||||
connectStatus = false
|
||||
//每次工控机连接成功后,需同步当前设置的雨天模式状态
|
||||
CallerAutoPilotControlManager.setRainMode(FunctionBuildConfig.isRainMode)
|
||||
}
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP =
|
||||
Constants.IPC_CONNECTION_STATUS.DISCONNECTED -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "webSocket 连接失败 reason:$reason")
|
||||
if (connectStatus) {
|
||||
reason?.let {
|
||||
ToastUtils.showLong("工控机连接断开,原因:$it , 等待重连")
|
||||
}
|
||||
connectStatus = false
|
||||
}
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP =
|
||||
AdasManager.getInstance().ipcConnectedIp
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectPort =
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectPort =
|
||||
AdasManager.getInstance().ipcConnectedPort
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = false
|
||||
//与工控机断开连接,需要重置自动驾驶状态(包括上传至云平台缓存信息),等待连接成功后同步状态信息
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state = 0
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().pilotmode = 0
|
||||
} else if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTING) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 正在连接")
|
||||
} else if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.SEARCH_ADDRESS) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 正在搜索工控机IP")
|
||||
} else if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.NOT_FOUND_ADDRESS) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 找不到可用IP 传入的IP不可用或固定IP列表中所有IP不可用")
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = false
|
||||
AppConfigInfo.isConnectAutopilot = false
|
||||
//与工控机断开连接,需要重置自动驾驶状态(包括上传至云平台缓存信息),等待连接成功后同步状态信息
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state = 0
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().pilotmode = 0
|
||||
}
|
||||
Constants.IPC_CONNECTION_STATUS.CONNECTING -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "webSocket 正在连接")
|
||||
}
|
||||
Constants.IPC_CONNECTION_STATUS.SEARCH_ADDRESS -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "webSocket 正在搜索工控机IP")
|
||||
}
|
||||
Constants.IPC_CONNECTION_STATUS.NOT_FOUND_ADDRESS -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "webSocket 找不到可用IP 传入的IP不可用或固定IP列表中所有IP不可用")
|
||||
}
|
||||
}
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus =
|
||||
ipcConnectionStatus
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus = ipcConnectionStatus
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusDescribe = reason
|
||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
|
||||
}
|
||||
@@ -105,24 +116,24 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
/**
|
||||
* 同步SN信息给工控机
|
||||
*/
|
||||
private fun syncBasicInfoToAutopilot(sn: String? = null) {
|
||||
CallerLogger.d("$M_ADAS_IMPL$TAG", "同步PAD的SN给工控机……")
|
||||
private fun syncBasicInfoToAutopilot() {
|
||||
CallerLogger.d("$M_D_C$TAG", "同步PAD的SN给工控机……")
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
// 设置PAD-SN给工控,网络环境
|
||||
AdasManager.getInstance()
|
||||
.sendBasicInfoResp(
|
||||
MoGoAiCloudClientConfig.getInstance().sn,
|
||||
getEnvironment(),
|
||||
getTerminalRole()
|
||||
)
|
||||
.sendBasicInfoResp(
|
||||
MoGoAiCloudClientConfig.getInstance().sn,
|
||||
getEnvironment(),
|
||||
getTerminalRole()
|
||||
)
|
||||
} else {
|
||||
// 乘客屏先不传sn
|
||||
AdasManager.getInstance()
|
||||
.sendBasicInfoResp(
|
||||
"",
|
||||
getEnvironment(),
|
||||
getTerminalRole()
|
||||
)
|
||||
.sendBasicInfoResp(
|
||||
"",
|
||||
getEnvironment(),
|
||||
getTerminalRole()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,7 +156,7 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
}
|
||||
|
||||
override fun tokenGot(token: String, sn: String) {
|
||||
syncBasicInfoToAutopilot(sn)
|
||||
syncBasicInfoToAutopilot()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.mogo.eagle.core.function.datacenter.autopilot.server
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
@@ -13,12 +11,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.zhidao.support.adas.high.AdasManager
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import java.util.concurrent.TimeUnit
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
||||
/**
|
||||
* @author xiaoyuzhou
|
||||
@@ -37,7 +33,6 @@ class AsyncDataToAutopilotServer private constructor() : IMoGoTrafficLightListen
|
||||
}
|
||||
}
|
||||
|
||||
private var mPreAutoStatus = AtomicInteger(-1)
|
||||
private var createSubscribe: Disposable? = null
|
||||
|
||||
fun initServer() {
|
||||
@@ -45,25 +40,18 @@ class AsyncDataToAutopilotServer private constructor() : IMoGoTrafficLightListen
|
||||
CallerTrafficLightListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
super.onAutopilotStatusResponse(autoPilotStatusInfo)
|
||||
val state = autoPilotStatusInfo.state
|
||||
if (mPreAutoStatus.get() != state) {
|
||||
mPreAutoStatus.set(state)
|
||||
createSubscribe?.let {
|
||||
if (!it.isDisposed) {
|
||||
bizLog(SceneConstant.M_ADAS_IMPL + TAG, "自动驾驶状态变化,取消前置轨迹请求,间隔2s重新请求底盘轨迹")
|
||||
createSubscribe?.dispose()
|
||||
}
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
createSubscribe?.let {
|
||||
if (!it.isDisposed) {
|
||||
bizLog(SceneConstant.M_D_C + TAG, "自动驾驶状态变化,取消前置轨迹请求,间隔2s重新请求底盘轨迹")
|
||||
createSubscribe?.dispose()
|
||||
}
|
||||
|
||||
when (state) {
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
|
||||
createSubscribe = Observable.timer(2000L, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
bizLog(SceneConstant.M_ADAS_IMPL + TAG, "请求底盘轨迹")
|
||||
bizLog(SceneConstant.M_D_C + TAG, "请求底盘轨迹")
|
||||
CallerAutoPilotControlManager.getGlobalPath()
|
||||
}
|
||||
}
|
||||
@@ -82,12 +70,10 @@ class AsyncDataToAutopilotServer private constructor() : IMoGoTrafficLightListen
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = ChainConstant.CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_BIZ,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_ADAS_AUTOPILOT_ROUTE_REQ,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
private fun bizLog(tag: String, msg: String) {
|
||||
CallerLogger.d(tag, msg)
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_INIT_STATUS
|
||||
import com.mogo.eagle.core.data.multidisplay.TelematicConstant
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setDemoMode
|
||||
@@ -28,7 +28,6 @@ import com.mogo.telematic.client.NettyTcpClient
|
||||
import com.mogo.telematic.client.status.ConnectState
|
||||
import com.zhidao.support.adas.high.AdasManager
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
import io.netty.channel.Channel
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -66,10 +65,7 @@ class TeleMsgHandler : IMsgHandler {
|
||||
AdasManager.getInstance().decoderRaw(it.body)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
CallerLogger.e(
|
||||
"${SceneConstant.M_ADAS_IMPL}$TAG",
|
||||
"乘客屏解析数据过程中出现异常:${e.message}"
|
||||
)
|
||||
invokeNettyConnResult("乘客屏解析数据过程中出现异常:${e.message}")
|
||||
}
|
||||
}
|
||||
MogoProtocolMsg.SYNC_MODE_STATUS -> {
|
||||
@@ -145,11 +141,6 @@ class TeleMsgHandler : IMsgHandler {
|
||||
CallerTrafficLightListenerManager.invokeEnterCrossRoad(false)
|
||||
}
|
||||
}
|
||||
TelematicConstant.OPEN_ROMA_STATUS -> {
|
||||
ThreadUtils.runOnUiThread {
|
||||
CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.OPEN_ROMA_STATUS,it.body)
|
||||
}
|
||||
}
|
||||
TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR -> {
|
||||
ThreadUtils.runOnUiThread {
|
||||
CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR,it.body)
|
||||
@@ -224,11 +215,6 @@ class TeleMsgHandler : IMsgHandler {
|
||||
TelematicConstant.BUSINESS_STRING -> {
|
||||
CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.BUSINESS_STRING, it.body)
|
||||
}
|
||||
TelematicConstant.OPEN_ROMA_STATUS -> {
|
||||
ThreadUtils.runOnUiThread {
|
||||
CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.OPEN_ROMA_STATUS,it.body)
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
}
|
||||
}
|
||||
@@ -242,7 +228,7 @@ class TeleMsgHandler : IMsgHandler {
|
||||
|
||||
override fun handleClientConn2Server(channel: Channel?) {
|
||||
val socketAddress = channel?.remoteAddress().toString()
|
||||
CallerLogger.d("${SceneConstant.M_ADAS_IMPL}$TAG", "Client ip is:${socketAddress}")
|
||||
CallerLogger.d("${SceneConstant.M_D_C}$TAG", "Client ip is:${socketAddress}")
|
||||
setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
setIgnoreConditionDraw(FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData)
|
||||
}
|
||||
@@ -294,15 +280,13 @@ class TeleMsgHandler : IMsgHandler {
|
||||
override fun handleServerConnStatus(statusCode: Int, content: String?, channel: Channel) {}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_MULTI_CONNECT,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_MULTI_CONNECT,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun invokeNettyConnResult(status: String) {
|
||||
CallerLogger.d("${SceneConstant.M_ADAS_IMPL}$TAG", status)
|
||||
CallerLogger.d("${SceneConstant.M_D_C}$TAG", status)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -79,7 +79,6 @@ object MoGoLocationDispatcher :
|
||||
lastGnssLocation.errorCode = it.errorCode
|
||||
lastGnssLocation.errorInfo = it.errorInfo
|
||||
}
|
||||
//FileUtils.writeToFile("/sdcard/Download/", "location_wgs84.txt", "${gnssInfo.longitude},${gnssInfo.latitude}\n")
|
||||
if (1 == FunctionBuildConfig.gpsProvider) {
|
||||
// WGS84坐标系高精度位置信息
|
||||
CallerChassisLocationWGS84ListenerManager.invokeChassisLocationWGS84(
|
||||
@@ -102,7 +101,6 @@ object MoGoLocationDispatcher :
|
||||
override fun onMoGoLocationChanged(mogoLocation: MogoLocation) {
|
||||
// 更新GaoDe 信息
|
||||
lastGaoDeLocation = mogoLocation
|
||||
|
||||
// 计算最后一次工控机同步的定位是否超时,如果超时则切换为高德地图定位,暂定超过30秒需要切换
|
||||
if (1 == FunctionBuildConfig.gpsProvider) {
|
||||
if (TimeUtils.getNowMills() - lastGnssLocation.lastReceiveTime > 10000) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.eagle.core.function.datacenter.obu
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
@@ -289,7 +288,7 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
|
||||
// 同步给MAP地图
|
||||
CallerObuLocationWGS84ListenerManager.invokeObuLocationWGS84(gnssInfo)
|
||||
// 同步更新经纬度和系统时间至 AutoPilotStatusListener
|
||||
CallerAutoPilotStatusListenerManager.updateAutoPilotLatLon(
|
||||
CallerAutoPilotStatusListenerManager.updateAutoPilotLocAndTime(
|
||||
System.currentTimeMillis() / 1000.0,
|
||||
gnssInfo.longitude,
|
||||
gnssInfo.latitude
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.os.CountDownTimer
|
||||
import android.os.Handler
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.*
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.enums.DataSourceType
|
||||
import com.mogo.eagle.core.data.enums.TrafficLightEnum
|
||||
import com.mogo.eagle.core.data.multidisplay.TelematicConstant
|
||||
@@ -17,6 +18,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import perception.TrafficLightOuterClass
|
||||
import perception.TrafficLightOuterClass.TrafficLight
|
||||
|
||||
@@ -64,7 +66,7 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
@Volatile
|
||||
private var hasObuLightStatus: Boolean = false
|
||||
|
||||
private var lightCountDownTimer: CountDownTimer?= null
|
||||
private var lightCountDownTimer: CountDownTimer? = null
|
||||
private var lastLightTime: Long = System.currentTimeMillis()
|
||||
|
||||
fun initServer(context: Context) {
|
||||
@@ -80,16 +82,20 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
* @param trafficLights 感知红绿灯
|
||||
*/
|
||||
override fun onAutopilotPerceptionTrafficLight(trafficLights: TrafficLightOuterClass.TrafficLights?) {
|
||||
CallerLogger.d(
|
||||
"${SceneConstant.M_D_C}${TAG}",
|
||||
"onAutopilotPerceptionTrafficLight ---- hasObuLightStatus = $hasObuLightStatus ----hasAiLightStatus = $hasAiLightStatus "
|
||||
)
|
||||
if (!hasObuLightStatus) {
|
||||
if (!hasAiLightStatus) {
|
||||
|
||||
lastLightTime = System.currentTimeMillis()
|
||||
if(lightCountDownTimer==null){
|
||||
lightCountDownTimer = object: CountDownTimer(300000,1000){
|
||||
if (lightCountDownTimer == null) {
|
||||
lightCountDownTimer = object : CountDownTimer(300000, 1000) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
if((System.currentTimeMillis() - lastLightTime)>1000){
|
||||
if ((System.currentTimeMillis() - lastLightTime) > 1000) {
|
||||
//隐藏红绿灯显示
|
||||
CallerTrafficLightListenerManager.disableTrafficLight()
|
||||
hide("感知倒计时结束隐藏", DataSourceType.TELEMATIC)
|
||||
lightCountDownTimer?.cancel()
|
||||
lightCountDownTimer = null
|
||||
}
|
||||
@@ -115,9 +121,13 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
} else if (it.hasUTurn()) {
|
||||
light = it.uTurn
|
||||
}
|
||||
CallerLogger.d(
|
||||
"${SceneConstant.M_D_C}${TAG}",
|
||||
"onAutopilotPerceptionTrafficLight light = $light "
|
||||
)
|
||||
if (light == null) {
|
||||
//隐藏红绿灯显示
|
||||
hide()
|
||||
hide("感知light为null隐藏", DataSourceType.TELEMATIC)
|
||||
} else {
|
||||
onTrafficLightPlusSource(light.convert(), 0, DataSourceType.TELEMATIC)
|
||||
}
|
||||
@@ -131,10 +141,17 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
*/
|
||||
override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.SHOW_TRAFFIC_LIGHT, GsonUtils.toJson(trafficLightResult).toByteArray())
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.SHOW_TRAFFIC_LIGHT,
|
||||
GsonUtils.toJson(trafficLightResult).toByteArray()
|
||||
)
|
||||
}
|
||||
if (!hasObuLightStatus) {
|
||||
hasAiLightStatus = true
|
||||
CallerLogger.d(
|
||||
"${SceneConstant.M_D_C}${TAG}",
|
||||
"onTrafficLightStatus trafficLightResult = $trafficLightResult "
|
||||
)
|
||||
updateTrafficLight(trafficLightResult)
|
||||
}
|
||||
}
|
||||
@@ -144,18 +161,22 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
* @param enter true:进入路口;false:离开路口
|
||||
*/
|
||||
override fun onEnterCrossRoad(enter: Boolean) {
|
||||
CallerLogger.d("${SceneConstant.M_D_C}${TAG}", "onEnterCrossRoad enter = $enter ")
|
||||
if (!enter) {
|
||||
Handler().postDelayed({
|
||||
hasAiLightStatus = false
|
||||
hasObuLightStatus = false
|
||||
}, 5000)
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.HIDE_TRAFFIC_LIGHT, "0".toByteArray())
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.HIDE_TRAFFIC_LIGHT,
|
||||
"0".toByteArray()
|
||||
)
|
||||
}
|
||||
//如果没有OBU灯态则进行隐藏,如果有OBU灯态,则交由OBU管理
|
||||
if(!hasObuLightStatus){
|
||||
if (!hasObuLightStatus) {
|
||||
CallerTrafficLightListenerManager.resetTrafficLightStatus(!hasObuLightStatus)
|
||||
hide()
|
||||
hide("云端离开路口隐藏", DataSourceType.AICLOUD)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -165,9 +186,13 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
*/
|
||||
override fun onTrafficRequestError() {
|
||||
hasAiLightStatus = false
|
||||
CallerLogger.d(
|
||||
"${SceneConstant.M_D_C}${TAG}",
|
||||
"onTrafficRequestError hasObuLightStatus = $hasObuLightStatus ------> "
|
||||
)
|
||||
CallerTrafficLightListenerManager.resetTrafficLightStatus(!hasObuLightStatus)
|
||||
if(!hasObuLightStatus){
|
||||
hide()
|
||||
if (!hasObuLightStatus) {
|
||||
hide("云端红绿灯接口请求失败隐藏", DataSourceType.AICLOUD)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,30 +200,46 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
* obu数据消失
|
||||
*/
|
||||
override fun onObuTrafficLightDisapper() {
|
||||
CallerLogger.d("${SceneConstant.M_D_C}${TAG}", "onObuTrafficLightDisapper ------> ")
|
||||
hasObuLightStatus = false
|
||||
hide()
|
||||
hide("OBU红绿灯消息关闭隐藏", DataSourceType.OBU)
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否重置红绿灯数据,需要确保,在obu的红绿灯显示的时候,不执行。否则会闪屏
|
||||
*/
|
||||
override fun resetTrafficLight(isReset: Boolean) {
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${TAG}", "resetTrafficLight ------> isReset = $isReset ---hasObuLightStatus = $hasObuLightStatus")
|
||||
CallerLogger.d(
|
||||
"${SceneConstant.M_D_C}${TAG}",
|
||||
"resetTrafficLight ------> isReset = $isReset ---hasObuLightStatus = $hasObuLightStatus"
|
||||
)
|
||||
if (!hasObuLightStatus) {
|
||||
if(isReset){
|
||||
hide()
|
||||
if (isReset) {
|
||||
hide("云端重置红绿灯数据", DataSourceType.AICLOUD)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun hide(){
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${TAG}", "hide() ---------> ")
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_ADAS_AUTOPILOT_TRAFFIC_LIGHT_HIDE,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
private fun hide(msg: String, sourceType: DataSourceType) {
|
||||
CallerLogger.d("${SceneConstant.M_D_C}${TAG}", "hide() :$msg type :$sourceType")
|
||||
CallerTrafficLightListenerManager.disableTrafficLight()
|
||||
}
|
||||
|
||||
/**
|
||||
* obu 红绿灯数据
|
||||
* 红绿灯数据
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_ADAS_AUTOPILOT_TRAFFIC_LIGHT,
|
||||
paramIndexes = [0, 1, 2]
|
||||
)
|
||||
override fun onTrafficLightPlusSource(
|
||||
light: TrafficLightEnum,
|
||||
remain: Int,
|
||||
@@ -208,7 +249,10 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
if (lightSource == DataSourceType.OBU) {
|
||||
hasObuLightStatus = true
|
||||
}
|
||||
|
||||
CallerLogger.d(
|
||||
"${SceneConstant.M_D_C}${TAG}",
|
||||
"onTrafficLightPlusSource ----- light = $light ---remain = $remain ---lightSource = $lightSource ---hasObuLightStatus = $hasObuLightStatus ---hasAiLightStatus = $hasAiLightStatus"
|
||||
)
|
||||
CallerTrafficLightListenerManager.showTrafficLight(light, lightSource)
|
||||
if (remain == -1) {
|
||||
CallerTrafficLightListenerManager.disableTrafficLightCountDown()
|
||||
@@ -226,10 +270,10 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
CallerTrafficLightListenerManager.changeCountdownYellow(remain)
|
||||
}
|
||||
TrafficLightEnum.BLACK -> {
|
||||
CallerTrafficLightListenerManager.disableTrafficLight()
|
||||
hide("感知数据BLACK隐藏", lightSource)
|
||||
}
|
||||
else -> {
|
||||
hide()
|
||||
hide("未知红绿灯类型隐藏", lightSource)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -237,6 +281,10 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
|
||||
private fun updateTrafficLight(trafficLightResult: TrafficLightResult) {
|
||||
val currentTrafficLight = trafficLightResult.currentRoadTrafficLight()
|
||||
CallerLogger.d(
|
||||
"${SceneConstant.M_D_C}${TAG}",
|
||||
"updateTrafficLight ----- currentTrafficLight = $currentTrafficLight"
|
||||
)
|
||||
currentTrafficLight?.let {
|
||||
val remain = if (it.remain > 99) {
|
||||
99
|
||||
@@ -245,9 +293,9 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
}
|
||||
onTrafficLightPlusSource(it.convert(), remain, DataSourceType.AICLOUD)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun destroy() {
|
||||
//取消注册监听AI云.OBU,路侧获取红绿灯状态
|
||||
CallerTrafficLightListenerManager.removeListener(TAG)
|
||||
|
||||
@@ -18,7 +18,6 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
|
||||
import com.mogo.eagle.core.function.api.devatools.apm.*
|
||||
import com.mogo.eagle.core.function.api.devatools.strict.*
|
||||
import com.mogo.eagle.core.function.call.map.*
|
||||
import com.mogo.eagle.core.function.api.devatools.download.*
|
||||
import com.mogo.eagle.core.function.api.lookaround.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
@@ -59,7 +58,6 @@ import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.up
|
||||
import com.zhjt.mogo_core_function_devatools.weaknetwork.DetectResultImpl
|
||||
import com.zhjt.mogo_core_function_devatools.weaknetwork.WeakNetworkStrategy
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
|
||||
|
||||
@Route(path = MogoServicePaths.PATH_DEVA_TOOLS)
|
||||
class DevaToolsProvider : IDevaToolsProvider {
|
||||
@@ -91,14 +89,12 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
KoomInitTask.init(AbsMogoApplication.getApp())
|
||||
initMatrix()
|
||||
}
|
||||
ttsManager.initTts(mContext!!) //todo
|
||||
ttsManager.initTts(mContext!!) //todo 扶风 优化
|
||||
bizConfigCenter.init(mContext!!)
|
||||
upgradeManager.updateUpgradeProgress()
|
||||
FuncConfigImpl.init()
|
||||
MogoLogCatchManager.init(mContext!!)
|
||||
|
||||
// 视角切换功能初始化,监听路口及停止线回调
|
||||
CallerVisualAngleManager.init()
|
||||
|
||||
//升级(鹰眼/工控)与监控服务
|
||||
iPCReportManager.initServer()
|
||||
moFangManager.init(mContext!!)
|
||||
@@ -193,12 +189,10 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_ANR,
|
||||
linkCode = ChainConstant.CHAIN_LINK_ANR,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_RECORD_ANR,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_ANR,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_ANR,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_RECORD_ANR,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun printEvilMsg(evilMethod: String) {
|
||||
w("TraceCanary", evilMethod)
|
||||
@@ -281,7 +275,7 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
}
|
||||
|
||||
override fun updateUpgradeProgress() {
|
||||
upgradeManager.updateUpgradeProgress()
|
||||
|
||||
}
|
||||
|
||||
override fun showStatusBar(ctx: Context, container: ViewGroup) {
|
||||
|
||||
@@ -4,14 +4,13 @@ import android.os.Process
|
||||
import android.text.TextUtils
|
||||
import android.widget.Toast
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_INIT_ENV_RESTART
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_INIT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_INIT_ENV_RESTART
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_SOURCE_INIT
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_INIT_STATUS
|
||||
import com.mogo.eagle.core.function.api.devatools.apm.*
|
||||
import com.mogo.eagle.core.utilcode.util.*
|
||||
import com.zhjt.mogo_core_function_devatools.apm.config.*
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
|
||||
import kotlinx.coroutines.*
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
@@ -111,12 +110,10 @@ class ApmEnvProviderImpl: IApmEnvProvider, CoroutineScope {
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_INIT,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_INIT_ENV_RESTART,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_INIT,
|
||||
nodeAliasCode = CHAIN_CODE_INIT_ENV_RESTART,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun restartApp(envStr:String) {
|
||||
launch(Dispatchers.Main) {
|
||||
|
||||
@@ -7,23 +7,18 @@ import android.view.View
|
||||
import android.view.WindowManager
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.lifecycle.Lifecycle.Event
|
||||
import androidx.lifecycle.LifecycleCoroutineScope
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxType
|
||||
import com.mogo.eagle.core.data.msgbox.RecordBagMsg
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
@@ -34,14 +29,10 @@ import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord
|
||||
import com.zhjt.mogo_core_function_devatools.ext.enqueuePop
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
import record_cache.RecordPanelOuterClass
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordListener,
|
||||
IMoGoChassisLocationWGS84Listener {
|
||||
internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordListener {
|
||||
|
||||
const val TAG = "BadCase"
|
||||
|
||||
@@ -50,13 +41,8 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
|
||||
@Volatile
|
||||
private var record: AutoPilotRecord? = null
|
||||
|
||||
private var longitude: Double = 0.0
|
||||
private var latitude: Double?= 0.0
|
||||
|
||||
fun init(){
|
||||
fun init() {
|
||||
CallerAutopilotRecordListenerManager.addListener(TAG, this)
|
||||
// 添加 ADAS车辆状态&定位 监听
|
||||
CallerChassisLocationWGS84ListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,15 +69,20 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
|
||||
/**
|
||||
* 展示BadCase录包管理页面
|
||||
*/
|
||||
fun showBadCaseManagerWindow(context: Context){
|
||||
fun showBadCaseManagerWindow(context: Context) {
|
||||
val badCaseManagerView = BadCaseManagerView(context)
|
||||
badCaseManagerView.setOnClickListener(object: BadCaseManagerView.ClickListener{
|
||||
badCaseManagerView.setOnClickListener(object : BadCaseManagerView.ClickListener {
|
||||
override fun onClose() {
|
||||
hideFloat?.invoke()
|
||||
hideFloat = null
|
||||
}
|
||||
})
|
||||
context.enqueuePop(badCaseManagerView,AutoSizeUtils.dp2px(context,960f), WindowManager.LayoutParams.MATCH_PARENT, key = "BadCaseManagerView").also {
|
||||
context.enqueuePop(
|
||||
badCaseManagerView,
|
||||
AutoSizeUtils.dp2px(context, 960f),
|
||||
WindowManager.LayoutParams.MATCH_PARENT,
|
||||
key = "BadCaseManagerView"
|
||||
).also {
|
||||
hideFloat = it
|
||||
}
|
||||
}
|
||||
@@ -246,29 +237,32 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
|
||||
)
|
||||
)
|
||||
)
|
||||
val lat =
|
||||
CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude
|
||||
val lon =
|
||||
CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude
|
||||
//埋点统计
|
||||
BadCaseAnalyticsManager.bagRecordReceive(recordPanel.key.toString(),recordPanel.filename,
|
||||
System.currentTimeMillis().toString(),recordPanel.stat.toString(),
|
||||
AppConfigInfo.plateNumber,recordPanel.duration.toString(),
|
||||
MoGoAiCloudClientConfig.getInstance().sn,BadCaseConfig.dockerVersion ?:"",
|
||||
AppUtils.getAppVersionName(),latitude.toString(),longitude.toString())
|
||||
BadCaseAnalyticsManager.bagRecordReceive(
|
||||
recordPanel.key.toString(), recordPanel.filename,
|
||||
System.currentTimeMillis().toString(), recordPanel.stat.toString(),
|
||||
AppConfigInfo.plateNumber, recordPanel.duration.toString(),
|
||||
MoGoAiCloudClientConfig.getInstance().sn, BadCaseConfig.dockerVersion ?: "",
|
||||
AppUtils.getAppVersionName(), lat.toString(), lon.toString()
|
||||
)
|
||||
//日志埋点
|
||||
CallerLogger.i("$M_DEVA$TAG", "BadCase Receive Analytics="+"key="+recordPanel.key+" filename="+recordPanel.filename+
|
||||
" receiveTime="+System.currentTimeMillis()+" stat="+recordPanel.stat+" plateNumber="+AppConfigInfo.plateNumber+
|
||||
" totalDuration="+recordPanel.duration+" carSn="+MoGoAiCloudClientConfig.getInstance().sn+" mapVersion="+BadCaseConfig.dockerVersion+
|
||||
" eyeVersion="+AppUtils.getAppVersionName()+" latitude="+latitude+" longitude="+longitude)
|
||||
CallerLogger.i(
|
||||
"$M_DEVA$TAG",
|
||||
"BadCase Receive Analytics=" + "key=" + recordPanel.key + " filename=" + recordPanel.filename +
|
||||
" receiveTime=" + System.currentTimeMillis() + " stat=" + recordPanel.stat + " plateNumber=" + AppConfigInfo.plateNumber +
|
||||
" totalDuration=" + recordPanel.duration + " carSn=" + MoGoAiCloudClientConfig.getInstance().sn + " mapVersion=" + BadCaseConfig.dockerVersion +
|
||||
" eyeVersion=" + AppUtils.getAppVersionName() + " latitude=" + lat + " longitude=" + lon
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onStateChanged(source: LifecycleOwner, event: Event) {
|
||||
|
||||
}
|
||||
|
||||
override fun onChassisLocationWGS84(gnssInfo: MogoLocation) {
|
||||
latitude = gnssInfo.latitude
|
||||
longitude = gnssInfo.longitude
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
|
||||
@@ -37,7 +36,7 @@ import java.util.*
|
||||
* @since: 2022/7/12
|
||||
*/
|
||||
class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener,
|
||||
IMoGoAutopilotRecordListener, IMoGoChassisLocationWGS84Listener {
|
||||
IMoGoAutopilotRecordListener {
|
||||
|
||||
companion object {
|
||||
const val TAG = "AIDataCollectWindow"
|
||||
@@ -68,8 +67,6 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener
|
||||
|
||||
@Volatile
|
||||
private var recordFileName: String? = null //录制文件包名
|
||||
private var longitude: Double? = null
|
||||
private var latitude: Double? = null
|
||||
|
||||
private lateinit var mFloatLayout: View
|
||||
private var mInViewX = 0f
|
||||
@@ -116,8 +113,6 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener
|
||||
"时间:${millis2String(System.currentTimeMillis(), TimeUtils.getHourMinSecondFormat())}"
|
||||
//采集结果回调监听
|
||||
CallerAutopilotRecordListenerManager.addListener(this.hashCode().toString(), this)
|
||||
// 添加 ADAS车辆状态&定位 监听
|
||||
CallerChassisLocationWGS84ListenerManager.addListener(this.hashCode().toString(), this)
|
||||
//开始录制AI数据采集Bag包
|
||||
CallerAutoPilotControlManager.recordPackage(
|
||||
99,
|
||||
@@ -234,7 +229,8 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener
|
||||
itx["audioUrl"] = "" //音频COS地址
|
||||
itx["mapVersion"] = BadCaseConfig.dockerVersion ?: "" //工控机版本
|
||||
itx["eyeVersion"] = AppUtils.getAppVersionName() //鹰眼版本
|
||||
itx["coordinate"] = "latitude:${latitude};longitude:${longitude}" //坐标
|
||||
itx["coordinate"] =
|
||||
"latitude:${CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude};longitude:${CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude}" //坐标
|
||||
|
||||
})
|
||||
if (uploadResult == null || uploadResult.code != 200) {
|
||||
@@ -332,7 +328,7 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener
|
||||
// 默认固定位置,靠屏幕右边缘的中间
|
||||
mWindowManager!!.defaultDisplay.getMetrics(metrics)
|
||||
mWindowParams!!.x = metrics.widthPixels
|
||||
mWindowParams!!.y = metrics.heightPixels - BarUtils.getStatusBarHeight()-950
|
||||
mWindowParams!!.y = metrics.heightPixels - BarUtils.getStatusBarHeight() - 950
|
||||
mWindowManager!!.addView(mFloatLayout, mWindowParams)
|
||||
}
|
||||
}
|
||||
@@ -353,9 +349,4 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener
|
||||
fun closeWindow()
|
||||
}
|
||||
|
||||
override fun onChassisLocationWGS84(gnssInfo: MogoLocation) {
|
||||
latitude = gnssInfo.latitude
|
||||
longitude = gnssInfo.longitude
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,7 +18,6 @@ import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isDriver
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isPassenger
|
||||
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.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.IPCUpgradeManager.Companion.ipcUpgradeManager
|
||||
@@ -27,6 +26,7 @@ import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeAppNetWorkManager
|
||||
import mogo.telematics.pad.MessagePad
|
||||
|
||||
/**
|
||||
* //todo emArrow 链路biz
|
||||
* 车辆绑定
|
||||
*/
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
@@ -61,9 +61,9 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
|
||||
}
|
||||
|
||||
override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) {
|
||||
Logger.d("${SceneConstant.M_BINDING}${TAG}", "onAutopilotCarConfig ----------> ")
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${TAG}", "onAutopilotCarConfig ----------> ")
|
||||
if (!TextUtils.isEmpty(carConfigResp.macAddress)) {
|
||||
Logger.d("${SceneConstant.M_BINDING}${TAG}",
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${TAG}",
|
||||
"onAutopilotCarConfig carConfigResp.macAddress = ${carConfigResp.macAddress} ")
|
||||
getBindingCarInfo(carConfigResp.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
|
||||
}
|
||||
@@ -75,24 +75,21 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
|
||||
* @param macAddress
|
||||
*/
|
||||
fun getBindingCarInfo(macAddress: String, widevineIDWithMd5: String) {
|
||||
Log.d("UPGRADE", "-- getBindingCarInfo -- 1 -- : [mac: $macAddress, md5: $widevineIDWithMd5]")
|
||||
var flag = false
|
||||
if (!TextUtils.isEmpty(macAddress) && TextUtils.isEmpty(mAddress)) {
|
||||
Log.d("UPGRADE", "-- getBindingCarInfo -- 2 -- : [mac: $macAddress, md5: $widevineIDWithMd5]")
|
||||
flag = true
|
||||
}
|
||||
if (!TextUtils.isEmpty(macAddress) && !TextUtils.equals(macAddress, mAddress)) {
|
||||
mAddress = macAddress
|
||||
}
|
||||
if (flag) {
|
||||
Log.d("UPGRADE", "-- getBindingCarInfo -- 3 -- : [mac: $macAddress, md5: $widevineIDWithMd5]")
|
||||
queryAppUpgrade()
|
||||
val obuVersion = mObuVersion
|
||||
if (obuVersion != null && !TextUtils.isEmpty(obuVersion)) {
|
||||
queryObuUpgrade(obuVersion)
|
||||
}
|
||||
}
|
||||
CallerLogger.d("${SceneConstant.M_BINDING}${TAG}",
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${TAG}",
|
||||
"getBindingcarInfo macAddress = $macAddress--widevineIDWithMd5 = $widevineIDWithMd5 ---screenType = $screenType"
|
||||
)
|
||||
SharedPrefsMgr.getInstance(mContext!!).putString(SharedPrefsConstants.APP_MAC, macAddress)
|
||||
@@ -126,7 +123,7 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
|
||||
}
|
||||
|
||||
fun modifyCarInfo(callBack: (ModifyBindingcarInfo) -> Unit) {
|
||||
BindingCarNetWorkManager.instance.modifyBindingCar(mContext!!, mAddress, mWidevineIDWithMd5, callBack, screenType)
|
||||
BindingCarNetWorkManager.instance.modifyBindingCar(mAddress, mWidevineIDWithMd5, callBack, screenType)
|
||||
}
|
||||
|
||||
private fun driverScreen(macAddress: String, widevineIDWithMd5: String) {
|
||||
@@ -205,10 +202,10 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
|
||||
*/
|
||||
fun queryObuUpgrade(obuVersionName: String) {
|
||||
mObuVersion = obuVersionName
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", "screenType = $screenType ----role = $role")
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", "screenType = $screenType ----role = $role")
|
||||
if (screenType == 1) {
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}","queryObuUpgrade isConnected = ${CallerObuApiManager.isConnected()} --- mAddress = $mAddress")
|
||||
ObuUpgradeAppNetWorkManager.instance?.getObuUpgradeInfo(mContext, if(!mAddress.isNullOrEmpty()) mAddress else SharedPrefsMgr.getInstance(mContext!!).getString(SharedPrefsConstants.APP_MAC), obuVersionName)
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}","queryObuUpgrade isConnected = ${CallerObuApiManager.isConnected()} --- mAddress = $mAddress")
|
||||
ObuUpgradeAppNetWorkManager.instance?.getObuUpgradeInfo(if(!mAddress.isNullOrEmpty()) mAddress else SharedPrefsMgr.getInstance(mContext!!).getString(SharedPrefsConstants.APP_MAC), obuVersionName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ class BindingCarNetWorkManager private constructor() {
|
||||
override fun onSubscribe(d: Disposable) {}
|
||||
override fun onNext(info: BindingCarInfo) {
|
||||
if (info != null && info.getData() != null) {
|
||||
d(SceneConstant.M_BINDING + TAG, "getBindingCarInfo data =" + info.getData().toString() + "---getDefaultId() : ${getDefaultId()}")
|
||||
d(SceneConstant.M_DEVA + TAG, "getBindingCarInfo data =" + info.getData().toString() + "---getDefaultId() : ${getDefaultId()}")
|
||||
SharedPrefsMgr.getInstance(context).putString(
|
||||
SharedPrefsConstants.CAR_INFO,
|
||||
GsonUtils.toJson(info.getData())
|
||||
@@ -85,13 +85,13 @@ class BindingCarNetWorkManager private constructor() {
|
||||
updateCarVrIconRes(info.getData().brandId)
|
||||
} else {
|
||||
SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, "")
|
||||
e(SceneConstant.M_BINDING + TAG, "getBindingCarInfo data = null ---getDefaultId() : ${getDefaultId()} ")
|
||||
e(SceneConstant.M_DEVA + TAG, "getBindingCarInfo data = null ---getDefaultId() : ${getDefaultId()} ")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, "")
|
||||
e(SceneConstant.M_BINDING + TAG, "getBindingCarInfo onError e = " + e.toString() + "---e.getMessage = " + e.message + "---getDefaultId() : ${getDefaultId()}")
|
||||
e(SceneConstant.M_DEVA + TAG, "getBindingCarInfo onError e = " + e.toString() + "---e.getMessage = " + e.message + "---getDefaultId() : ${getDefaultId()}")
|
||||
}
|
||||
|
||||
override fun onComplete() {}
|
||||
@@ -103,7 +103,6 @@ class BindingCarNetWorkManager private constructor() {
|
||||
* mac: 48:b0:2d:3a:9c:19
|
||||
*/
|
||||
fun modifyBindingCar(
|
||||
context: Context,
|
||||
macAddress: String?,
|
||||
widevineIDWithMd5: String?,
|
||||
callBack: (ModifyBindingcarInfo) -> Unit,
|
||||
@@ -128,13 +127,13 @@ class BindingCarNetWorkManager private constructor() {
|
||||
override fun onNext(info: ModifyBindingcarInfo) {
|
||||
if (info != null) {
|
||||
callBack.invoke(info)
|
||||
d(SceneConstant.M_BINDING + TAG, "modifyBindingCar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString())
|
||||
d(SceneConstant.M_DEVA + TAG, "modifyBindingCar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString())
|
||||
updateCarVrIconRes(info.data.brandId)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
e(SceneConstant.M_BINDING + TAG, "modifyBindingCar onError e = " + e.toString() + "---e.getMessage = " + e.message)
|
||||
e(SceneConstant.M_DEVA + TAG, "modifyBindingCar onError e = " + e.toString() + "---e.getMessage = " + e.message)
|
||||
}
|
||||
|
||||
override fun onComplete() {}
|
||||
@@ -142,18 +141,18 @@ class BindingCarNetWorkManager private constructor() {
|
||||
}
|
||||
|
||||
private fun updateCarVrIconRes(brandId: String?) {
|
||||
d(SceneConstant.M_BINDING + TAG, "CarModelChange : ${DebugConfig.isCarModelChange()}")
|
||||
d(SceneConstant.M_DEVA + TAG, "CarModelChange : ${DebugConfig.isCarModelChange()}")
|
||||
if(!DebugConfig.isCarModelChange()){
|
||||
return
|
||||
}
|
||||
if (brandId == null || brandId.isEmpty()) {
|
||||
return
|
||||
}
|
||||
d(SceneConstant.M_BINDING + TAG, "getDefaultId() : ${getDefaultId()} ---- brandId = $brandId")
|
||||
d(SceneConstant.M_DEVA + TAG, "getDefaultId() : ${getDefaultId()} ---- brandId = $brandId")
|
||||
if (getDefaultId() == brandId) {
|
||||
return
|
||||
}
|
||||
d(SceneConstant.M_BINDING + TAG, "updateCarVrIconRes : $brandId")
|
||||
d(SceneConstant.M_DEVA + TAG, "updateCarVrIconRes : $brandId")
|
||||
when (brandId) {
|
||||
"1" -> { //东风
|
||||
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(R.raw.chuzuche)
|
||||
|
||||
@@ -4,9 +4,9 @@ import android.content.Context
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_FUNC_CONFIG_CHANGED
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_SOURCE_CLOUD
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_INIT_STATUS
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigListenerManager
|
||||
@@ -18,7 +18,6 @@ import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigConst.Companio
|
||||
import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigConst.Companion.defaultFuncConfig
|
||||
import com.zhjt.mogo_core_function_devatools.funcconfig.network.FuncConfigNetWorkModel
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
import com.zhjt.service_biz.BizManager
|
||||
import com.zhjt.service_biz.FuncConfig
|
||||
import mogo.telematics.pad.MessagePad
|
||||
@@ -72,12 +71,10 @@ class FuncConfigCenter : IMogoOnMessageListener<FuncConfig>, IMoGoAutopilotCarCo
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_CLOUD,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = CHAIN_CODE_FUNC_CONFIG_CHANGED,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun refreshConfig(funcConfig: FuncConfig) {
|
||||
BizManager.updateBizConfigData(funcConfig)
|
||||
|
||||
@@ -8,7 +8,6 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.view.KeyEvent
|
||||
import com.mogo.commons.context.ContextHolderUtil
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.mofang.MfConstants
|
||||
import com.mogo.eagle.core.function.api.devatools.mofang.IMoGoMoFangListener
|
||||
@@ -165,7 +164,10 @@ class MoFangManager private constructor() : IMoGoMoFangListener {
|
||||
* 魔方按键处理
|
||||
*/
|
||||
override fun onMofangHandle(keyCode: Int, action: Int): Boolean {
|
||||
val bluetoothName = SharedPrefsMgr.getInstance(ContextHolderUtil.getContext()).getString(
|
||||
if(mContext == null){
|
||||
return false
|
||||
}
|
||||
val bluetoothName = SharedPrefsMgr.getInstance(mContext!!).getString(
|
||||
MfConstants.BLUETOOTH_NAME)
|
||||
if (bluetoothName == "MINI_KEYBOARD") {
|
||||
if (!isPressEnd) {
|
||||
|
||||
@@ -6,16 +6,13 @@ import com.mogo.eagle.core.data.deva.scene.SceneModuleTAG
|
||||
import com.mogo.eagle.core.data.deva.scene.SceneTAG
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.Scene.Companion.scene
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_D_C
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_CHAT
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_NETWORK
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OLD_ROUTE
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OTHER
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_SWEEPER
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P
|
||||
@@ -29,19 +26,16 @@ class SceneManager {
|
||||
companion object {
|
||||
|
||||
private const val ADAS = "ADAS"
|
||||
private const val CALLCHAT = "CALLCHAT"
|
||||
private const val DEVA = "DEVA"
|
||||
private const val HMI = "HMI"
|
||||
private const val OBU = "OBU"
|
||||
private const val V2X = "V2X"
|
||||
private const val MAP = "MAP"
|
||||
private const val ROUTE = "ROUTE"
|
||||
private const val NET = "NET"
|
||||
private const val BUS = "BUS"
|
||||
private const val TAXI = "TAXI"
|
||||
private const val SWEEPER = "SWEEPER"
|
||||
private const val TAXI_P = "TAXI_P"
|
||||
private const val OTHER = "OTHER"
|
||||
|
||||
val sceneManager: SceneManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
SceneManager()
|
||||
@@ -53,20 +47,17 @@ class SceneManager {
|
||||
|
||||
init {
|
||||
//过滤所需条件
|
||||
sceneModuleTAG.map[ADAS] = SceneModule(true, M_ADAS_IMPL)
|
||||
sceneModuleTAG.map[CALLCHAT] = SceneModule(false, M_CHAT)
|
||||
sceneModuleTAG.map[ADAS] = SceneModule(true, M_D_C)
|
||||
sceneModuleTAG.map[DEVA] = SceneModule(false, M_DEVA)
|
||||
sceneModuleTAG.map[HMI] = SceneModule(false, M_HMI)
|
||||
sceneModuleTAG.map[OBU] = SceneModule(false, M_OBU)
|
||||
sceneModuleTAG.map[OBU] = SceneModule(true, M_OBU)
|
||||
sceneModuleTAG.map[V2X] = SceneModule(true, M_V2X)
|
||||
sceneModuleTAG.map[MAP] = SceneModule(true, M_MAP)
|
||||
sceneModuleTAG.map[ROUTE] = SceneModule(true, M_OLD_ROUTE)
|
||||
sceneModuleTAG.map[NET] = SceneModule(true, M_NETWORK)
|
||||
sceneModuleTAG.map[BUS] = SceneModule(true, M_BUS)
|
||||
sceneModuleTAG.map[TAXI] = SceneModule(true, M_TAXI)
|
||||
sceneModuleTAG.map[TAXI_P] = SceneModule(true, M_TAXI_P)
|
||||
sceneModuleTAG.map[SWEEPER] = SceneModule(true, M_SWEEPER)
|
||||
sceneModuleTAG.map[OTHER] = SceneModule(true, M_OTHER)
|
||||
|
||||
sceneLogTAG.map[TAXI] = SceneTAG(false)
|
||||
sceneLogTAG.map[BUS] = SceneTAG(false)
|
||||
@@ -148,28 +139,25 @@ class SceneManager {
|
||||
sceneCache[M_TAXI]?.logger = logger
|
||||
sceneCache[M_TAXI_P]?.logger = logger
|
||||
sceneCache[M_NETWORK]?.logger = logger
|
||||
sceneCache[M_ADAS_IMPL]?.logger = logger
|
||||
sceneCache[M_D_C]?.logger = logger
|
||||
sceneCache[M_HMI]?.logger = logger
|
||||
sceneCache[M_DEVA]?.logger = logger
|
||||
sceneCache[M_OLD_ROUTE]?.logger = logger
|
||||
scene.updateSceneCache(sceneCache)
|
||||
}
|
||||
BUS -> {
|
||||
sceneCache[M_BUS]?.logger = logger
|
||||
sceneCache[M_NETWORK]?.logger = logger
|
||||
sceneCache[M_ADAS_IMPL]?.logger = logger
|
||||
sceneCache[M_D_C]?.logger = logger
|
||||
sceneCache[M_HMI]?.logger = logger
|
||||
sceneCache[M_DEVA]?.logger = logger
|
||||
sceneCache[M_OLD_ROUTE]?.logger = logger
|
||||
scene.updateSceneCache(sceneCache)
|
||||
}
|
||||
SWEEPER -> {
|
||||
sceneCache[M_SWEEPER]?.logger = logger
|
||||
sceneCache[M_NETWORK]?.logger = logger
|
||||
sceneCache[M_ADAS_IMPL]?.logger = logger
|
||||
sceneCache[M_D_C]?.logger = logger
|
||||
sceneCache[M_HMI]?.logger = logger
|
||||
sceneCache[M_DEVA]?.logger = logger
|
||||
sceneCache[M_OLD_ROUTE]?.logger = logger
|
||||
scene.updateSceneCache(sceneCache)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.zhjt.mogo_core_function_devatools.status.flow.trace
|
||||
|
||||
import android.content.*
|
||||
import com.mogo.eagle.core.data.autopilot.*
|
||||
import com.mogo.eagle.core.function.api.autopilot.*
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING
|
||||
import com.mogo.eagle.core.function.call.autopilot.*
|
||||
@@ -37,7 +36,6 @@ internal class TracingImpl(ctx: Context): IFlow<TracingStatus>(ctx), IMoGoAutopi
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
|
||||
override fun onAutopilotGuardian(guardianInfo: MogoReportMessage?) {
|
||||
super.onAutopilotGuardian(guardianInfo)
|
||||
val code = guardianInfo?.code
|
||||
@@ -70,9 +68,7 @@ internal class TracingImpl(ctx: Context): IFlow<TracingStatus>(ctx), IMoGoAutopi
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
super.onAutopilotStatusResponse(autoPilotStatusInfo)
|
||||
val state = autoPilotStatusInfo.state
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
try {
|
||||
if (ipcStatus.get() != state) {
|
||||
if (state != STATUS_AUTOPILOT_RUNNING) {
|
||||
|
||||
@@ -16,7 +16,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.zhjt.mogo_core_function_devatools.trace.network.StartUpTraceNetWorkModel
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
|
||||
object SyncConfig {
|
||||
|
||||
@@ -24,12 +23,6 @@ object SyncConfig {
|
||||
private var traceId: String? = null
|
||||
|
||||
fun update(context: Context) {
|
||||
|
||||
// if (AppConfigInfo.widevineIDMd5.isNullOrEmpty()) {
|
||||
// AppConfigInfo.widevineIDMd5 =
|
||||
// DeviceIdUtils.getWidevineIDWithMd5(AbsMogoApplication.getApp())
|
||||
// }
|
||||
|
||||
if (MoGoAiCloudClient.getInstance().aiCloudClientConfig != null) {
|
||||
AppConfigInfo.mogoSN = MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn
|
||||
AppConfigInfo.mogoToken = MoGoAiCloudClient.getInstance().aiCloudClientConfig.token
|
||||
@@ -58,12 +51,10 @@ object SyncConfig {
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_LINK_INIT,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_APP_INFO_CONFIG_UPDATE,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_INIT,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_APP_INFO_CONFIG_UPDATE,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
fun logOutConfig(appConfig: AppConfigInfo) {
|
||||
startUpTraceModel.report(traceId, {
|
||||
|
||||
@@ -11,11 +11,9 @@ import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.util.DeviceUtils
|
||||
import com.mogo.eagle.core.utilcode.util.Utils
|
||||
import com.zhidao.loglib.fw.FileWriteManager
|
||||
import com.zhidao.loglib.fw.FwBuild
|
||||
import com.zhjt.service.chain.core.ChainTraceStarter
|
||||
import mogo.telematics.pad.MessagePad
|
||||
|
||||
class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener {
|
||||
@@ -42,68 +40,71 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener {
|
||||
mContext = context
|
||||
// 初始化Trace抓取服务
|
||||
val pkgName = Utils.getApp().packageName
|
||||
ChainTraceStarter.start(pkgName, DeviceUtils.getMacAddress(), false)
|
||||
CallerCloudListenerManager.addListener(TAG, this)
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
|
||||
// Trace过程中进行日志抓取,对日志进行配置
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_INIT)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_INIT_STATUS] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_INIT)
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_GNSS] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_GNSS)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_AUTO)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_SOCKET_DATA_TRACKED] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_DATA_TRACK)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_SOCKET_TRAJECTORY] =
|
||||
FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAJECTORY)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_SOCKET_VEHICLE] =
|
||||
FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_VEHICLE)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT] =
|
||||
FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAFFIC_LIGHT)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAFFIC_LIGHT)
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_SOCKET_P_OBJECTS] =
|
||||
FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_PLANNING_OBJECTS)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_SOCKET_P_ACTIONS] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_PLANNING_ACTIONS)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_NATIVE_LEAK] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_HMI] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_HMI_ACTIONS)
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_NATIVE_LEAK] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_RECORD_NATIVE_LEAK)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_ANR] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_ANR] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_RECORD_ANR)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_CLOUD_V2N] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_CLOUD_WEB_SOCKET_V2N)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_HD_MAP] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_V2X] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_V2X)
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_HD_MAP] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_HD_MAP_BIZ)
|
||||
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEAK_NETWORK] =
|
||||
fwBuildMap[ChainConstant.CHAIN_TYPE_WEAK_NETWORK] =
|
||||
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_RECORD_WEAK_NETWORK)
|
||||
|
||||
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_INIT_STATUS] =
|
||||
ChainLogParam(true, "ADAS连接状态")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_GNSS] =
|
||||
ChainLogParam(true, "ADAS自车定位")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT] =
|
||||
ChainLogParam(true, "ADAS自动驾驶链路(包含: 自动驾驶状态交互,全局路径,到站提醒,节点状态,异常上报)")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_SOCKET_DATA_TRACKED] =
|
||||
ChainLogParam(true, "ADAS感知物体")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_SOCKET_TRAJECTORY] =
|
||||
ChainLogParam(false, "ADAS车前引导线")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_SOCKET_VEHICLE] =
|
||||
ChainLogParam(false, "ADAS车辆底盘数据")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT] =
|
||||
ChainLogParam(false, "ADAS红绿灯数据")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT] =
|
||||
ChainLogParam(true, "ADAS红绿灯数据")
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_SOCKET_P_OBJECTS] =
|
||||
ChainLogParam(false, "ADAS PLANNING 感知障碍物")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_SOCKET_P_ACTIONS] =
|
||||
ChainLogParam(true, "ADAS PLANNING 决策行为")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_NATIVE_LEAK] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_HMI] =
|
||||
ChainLogParam(true, "人机交互行为")
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_NATIVE_LEAK] =
|
||||
ChainLogParam(true, "Native Leak Record")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_ANR] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_ANR] =
|
||||
ChainLogParam(true, "ANR Record")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_CLOUD_V2N] =
|
||||
ChainLogParam(true, "Cloud WebSocket V2N")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_HD_MAP] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_V2X] =
|
||||
ChainLogParam(true, "V2X(V2N/V2I)")
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_HD_MAP] =
|
||||
ChainLogParam(true, "HD Map Caller")
|
||||
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEAK_NETWORK] =
|
||||
traceInfoCache[ChainConstant.CHAIN_TYPE_WEAK_NETWORK] =
|
||||
ChainLogParam(true, "WeakNetWork Record")
|
||||
|
||||
FileWriteManager.getInstance()
|
||||
@@ -138,7 +139,7 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener {
|
||||
|
||||
fun refreshTraceInfo(map: HashMap<Int, ChainLogParam>) {
|
||||
map.forEach { (type, param) ->
|
||||
if (type != ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS) {
|
||||
if (type != ChainConstant.CHAIN_TYPE_INIT_STATUS) {
|
||||
val fwBuild = this.fwBuildMap[type]
|
||||
fwBuild?.let {
|
||||
CallerLogger.d("$M_DEVA$TAG", "param : ${param.des} , record : ${param.record}")
|
||||
|
||||
@@ -4,7 +4,6 @@ import android.content.Context
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
@@ -72,18 +71,15 @@ class IPCUpgradeManager: IMogoOnMessageListener<IPCUpgradeStateInfo> ,
|
||||
//更新下载or升级状态
|
||||
CallerHmiManager.showAdUpgradeStatus(it)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动驾驶状态信息
|
||||
* @param autoPilotStatusInfo 状态信息
|
||||
*/
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
autopilotStatus = autoPilotStatusInfo.state
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
//有升级任务,且不处于自动驾驶状态,进行升级提示
|
||||
autopilotStatus = state
|
||||
if(hasIPCUpgradeTask && autopilotStatus!=2){
|
||||
ipcUpgradeStateInfoTask?.let {
|
||||
var releaseId=""
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import android.content.*
|
||||
import android.util.Log
|
||||
import com.mogo.cloud.passport.*
|
||||
import com.mogo.commons.constants.*
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.*
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst.TAG_UPGRADE_OBU
|
||||
import com.mogo.eagle.core.function.api.devatools.download.DownloadType.OBU
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.downLoadPackage
|
||||
@@ -14,10 +11,6 @@ import com.mogo.eagle.core.network.utils.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.*
|
||||
import io.reactivex.*
|
||||
import io.reactivex.android.schedulers.*
|
||||
import io.reactivex.disposables.*
|
||||
import io.reactivex.schedulers.*
|
||||
import kotlinx.coroutines.*
|
||||
import okhttp3.*
|
||||
|
||||
@@ -40,27 +33,28 @@ class ObuUpgradeAppNetWorkManager private constructor() {
|
||||
* mac :工控机mac地址,
|
||||
* screenType : 类型
|
||||
*/
|
||||
fun getObuUpgradeInfo(context: Context?, mac: String?, versionName: String) { // String sn = "X20202203105S688HZ";
|
||||
fun getObuUpgradeInfo(mac: String?, versionName: String) {
|
||||
// String sn = "X20202203105S688HZ";
|
||||
// String mac1 = "48:b0:2d:4d:33:40";
|
||||
scope.launch {
|
||||
try {
|
||||
val sn = MoGoAiCloudClientConfig.getInstance().sn
|
||||
d(SceneConstant.M_BINDING + TAG_UPGRADE_OBU, "getObuUpgradeInfo mac = $mac ---sn = $sn ---versionName = $versionName --host = ${HostConst.getHost()}")
|
||||
d(SceneConstant.M_DEVA + TAG_UPGRADE_OBU, "getObuUpgradeInfo mac = $mac ---sn = $sn ---versionName = $versionName --host = ${HostConst.getHost()}")
|
||||
val request = UpgradeAppRequest(sn, mac, "7", null, "0")
|
||||
val requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request))
|
||||
val info = mUpgradeApiService.getUpgradeInfo(requestBody)
|
||||
if (info.result == null) {
|
||||
d(SceneConstant.M_BINDING + TAG_UPGRADE_OBU, "getObuUpgradeInfo onNext info == null")
|
||||
d(SceneConstant.M_DEVA + TAG_UPGRADE_OBU, "getObuUpgradeInfo onNext info == null")
|
||||
deleteObuFile()
|
||||
} else {
|
||||
d(SceneConstant.M_BINDING + TAG_UPGRADE_OBU, "getObuUpgradeInfo appFileName = " + info.result.appFileName + " ----url = " + info.result.appUrl + " ----name = " + info.result.versionName + " --obuVersionName =" + versionName + " ---info.result = " + info.result)
|
||||
d(SceneConstant.M_DEVA + TAG_UPGRADE_OBU, "getObuUpgradeInfo appFileName = " + info.result.appFileName + " ----url = " + info.result.appUrl + " ----name = " + info.result.versionName + " --obuVersionName =" + versionName + " ---info.result = " + info.result)
|
||||
if (info.result.versionName.toString() != versionName) { //判断是否下载,当文件名称不一致的时候,就下载
|
||||
downLoadPackage(OBU, info.result.appFileName, info.result.appUrl)
|
||||
}
|
||||
}
|
||||
} catch (t: Throwable) {
|
||||
t.printStackTrace()
|
||||
e(SceneConstant.M_BINDING + TAG_UPGRADE_OBU, "getObuUpgradeInfo e = $t") //请求出错,需要删除相关文件
|
||||
e(SceneConstant.M_DEVA + TAG_UPGRADE_OBU, "getObuUpgradeInfo e = $t") //请求出错,需要删除相关文件
|
||||
deleteObuFile()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ class UpgradeAppNetWorkManager private constructor() {
|
||||
Log.d(TAG, "getAppUpgradeInfo: -> records:" + records?.entries?.joinToString(",") { itx -> "key:${itx.key} -> value:[${itx.value.joinToString(",") { "${it.first},${it.second}" } }]"})
|
||||
val versionCode = AppUtils.getAppVersionCode()
|
||||
val versionName = AppUtils.getAppVersionName()
|
||||
Log.d(SceneConstant.M_BINDING + TAG, "getAppUpgradeInfo mac = $macAddress---type = $type---sn = $sn---versionCode =$versionCode---versionName =$versionName")
|
||||
Log.d(SceneConstant.M_DEVA + TAG, "getAppUpgradeInfo mac = $macAddress---type = $type---sn = $sn---versionCode =$versionCode---versionName =$versionName")
|
||||
val request = UpgradeAppRequest(sn, macAddress, type, versionName, "1")
|
||||
val requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request))
|
||||
provider?.recordUpgradeRecord(sn ?: "", macAddress, type, FunctionBuildConfig.isSupportPatchUpgrade)
|
||||
@@ -105,7 +105,7 @@ class UpgradeAppNetWorkManager private constructor() {
|
||||
private suspend fun doUpgrade(info: UpgradeAppInfo) {
|
||||
if (info.result != null) {
|
||||
val versionCode = AppUtils.getAppVersionCode()
|
||||
Log.d(SceneConstant.M_BINDING + TAG, "UpgradeAppInfo url = " + info.result.appUrl + "----code = " + info.result.versionCode + "--versionCode =" + versionCode + "--info.result = " + info.result)
|
||||
Log.d(SceneConstant.M_DEVA + TAG, "UpgradeAppInfo url = " + info.result.appUrl + "----code = " + info.result.versionCode + "--versionCode =" + versionCode + "--info.result = " + info.result)
|
||||
if (info.result.versionCode > versionCode) {
|
||||
val patchInfo = info.result.patchInfo
|
||||
var downloadUrl: String = info.result.appUrl
|
||||
@@ -172,7 +172,7 @@ class UpgradeAppNetWorkManager private constructor() {
|
||||
deleteApkFile()
|
||||
}
|
||||
} else {
|
||||
Log.d(SceneConstant.M_BINDING + TAG, "UpgradeAppInfo onNext info == null")
|
||||
Log.d(SceneConstant.M_DEVA + TAG, "UpgradeAppInfo onNext info == null")
|
||||
deleteApkFile()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageInstaller
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.function.api.upgrade.IMoGoUpgradeProvider
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
@@ -30,6 +29,7 @@ import kotlinx.coroutines.*
|
||||
import java.io.IOException
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
//todo emArrow trace
|
||||
class UpgradeManager : IDownloadListener {
|
||||
|
||||
companion object {
|
||||
@@ -75,7 +75,7 @@ class UpgradeManager : IDownloadListener {
|
||||
}
|
||||
|
||||
override fun onFinished(url: String, path: String) {
|
||||
Log.d(TAG, "onFinished downloadUrl = $url")
|
||||
CallerLogger.d("$M_DEVA$TAG", "onFinished downloadUrl = $url")
|
||||
doOnFinished(url, path)
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ class UpgradeManager : IDownloadListener {
|
||||
if (type == APK || type == PATCH) {
|
||||
scope.launch { upgradeProvider?.recordDownloadFailed(url, error ?: "下载失败") }
|
||||
} else if (type == OBU) {
|
||||
CallerLogger.e("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", "----updateObuUpgradeStatus errorMsg = $error ")
|
||||
CallerLogger.e("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", "----updateObuUpgradeStatus errorMsg = $error ")
|
||||
//下载失败,删除文件夹
|
||||
CallerObuApiManager.deleteObuFile()
|
||||
}
|
||||
@@ -216,7 +216,6 @@ class UpgradeManager : IDownloadListener {
|
||||
CallerLogger.d("$M_DEVA$TAG", "updateUpgradeProgress onPause ----> ")
|
||||
}
|
||||
override fun onProgress(url: String?, length: Int) {
|
||||
// CallerLogger.d("$M_DEVA$TAG", "updateUpgradeProgress onPause ----> length = $length")
|
||||
val type = types[url]
|
||||
if (type == APK || type == PATCH) {
|
||||
if (length in 1..99) {
|
||||
@@ -235,8 +234,7 @@ class UpgradeManager : IDownloadListener {
|
||||
}
|
||||
|
||||
override fun onError(url: String?, errorMsg: String?) {
|
||||
CallerLogger.d("$M_DEVA$TAG", "updateUpgradeProgress errorMsg = $errorMsg")
|
||||
Log.e(TAG, "updateUpgradeProgress errorMsg = $errorMsg")
|
||||
CallerLogger.e(TAG, "updateUpgradeProgress errorMsg = $errorMsg")
|
||||
//出错后,去掉下载进度ui,提示检查网络
|
||||
updateStatusBarDownloadView(false, "download", 0)
|
||||
}
|
||||
@@ -249,10 +247,10 @@ class UpgradeManager : IDownloadListener {
|
||||
private fun handleObuUpgrade(localPath: String) {
|
||||
//下载完成,解压文件
|
||||
try {
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", " onFinished localPath = $localPath")
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", " onFinished localPath = $localPath")
|
||||
val dest = File(localPath)
|
||||
val files = ZipUtils.unzipFile(localPath, Config.downLoadUnzipObuPath)
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", " onFinished file = ${Config.downLoadObuPath + dest.name} -----files = $files ")
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", " onFinished file = ${Config.downLoadObuPath + dest.name} -----files = $files ")
|
||||
//1传给obu升级,升级成功,2需要删除相应文件夹
|
||||
var md5Path = ""
|
||||
var tarPath = ""
|
||||
@@ -264,10 +262,10 @@ class UpgradeManager : IDownloadListener {
|
||||
tarPath = f.path
|
||||
}
|
||||
}
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", "updateObuUpgradeStatus ---md5Path = $md5Path -----tarPath = $tarPath ")
|
||||
CallerLogger.d("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", "updateObuUpgradeStatus ---md5Path = $md5Path -----tarPath = $tarPath ")
|
||||
CallerObuApiManager.uploadObuPack(arrayOf(md5Path, tarPath))
|
||||
} catch (e: IOException) {
|
||||
CallerLogger.e("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", "----updateObuUpgradeStatus e = $e ")
|
||||
CallerLogger.e("${SceneConstant.M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", "----updateObuUpgradeStatus e = $e ")
|
||||
//解压失败,删除文件夹
|
||||
CallerObuApiManager.deleteObuFile()
|
||||
e.printStackTrace()
|
||||
|
||||
@@ -16,7 +16,6 @@ import com.zhjt.mogo_core_function_devatools.upgrade.provider.db.vo.UpgradeRecor
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.provider.db.vo.UpgradeRecord.Type.FULL
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.provider.db.vo.UpgradeRecord.Type.PATCH
|
||||
import com.zhjt.service.chain.*
|
||||
import com.zhjt.service.chain.TracingConstants.Endpoint
|
||||
import java.util.TreeMap
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@@ -297,12 +296,10 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider {
|
||||
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_LINK_CLOUD,
|
||||
endpoint = Endpoint.PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_CLOUD_PASSPORT_TOKEN,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_UPGRADE_APP,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun onUpgradeRecordLinkLog(extra: Map<String, String>) {}
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import android.util.Log
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.weak.network.StubImpl
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
|
||||
class DetectResultImpl: StubImpl.ReportDetectResultListener {
|
||||
|
||||
@@ -17,12 +16,10 @@ class DetectResultImpl: StubImpl.ReportDetectResultListener {
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_WEAK_NETWORK,
|
||||
linkCode = ChainConstant.CHAIN_LINK_WEAK_NETWORK,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_RECORD_WEAK_NETWORK,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_WEAK_NETWORK,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_WEAK_NETWORK,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_RECORD_WEAK_NETWORK,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun invokeWeakResult(jsonStr: String) {
|
||||
Log.d(TAG, jsonStr)
|
||||
|
||||
@@ -4,12 +4,9 @@ import android.util.Log
|
||||
import com.mogo.cloud.network.WeakNetworkManager
|
||||
import com.mogo.cloud.network.WeakNetworkManager.setListener
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.weak.network.SdtManager
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock
|
||||
|
||||
object WeakNetworkStrategy {
|
||||
@@ -73,12 +70,10 @@ object WeakNetworkStrategy {
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_WEAK_NETWORK,
|
||||
linkCode = ChainConstant.CHAIN_LINK_WEAK_NETWORK,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_RECORD_WEAK_NETWORK,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_WEAK_NETWORK,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_WEAK_NETWORK,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_RECORD_WEAK_NETWORK,
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun invokeWeakResult(jsonStr: String) {
|
||||
Log.d(TAG, jsonStr)
|
||||
|
||||
@@ -4,9 +4,6 @@ import android.content.Context
|
||||
import android.text.TextUtils
|
||||
import android.util.*
|
||||
import android.view.*
|
||||
import android.view.ViewGroup.LayoutParams
|
||||
import android.widget.FrameLayout
|
||||
import androidx.core.view.*
|
||||
import androidx.lifecycle.ProcessLifecycleOwner
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
@@ -23,7 +20,6 @@ import com.mogo.eagle.core.data.enums.WarningDirectionEnum
|
||||
import com.mogo.eagle.core.data.map.Infrastructure
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeNormalData
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeTrafficStylePushData
|
||||
import com.mogo.eagle.core.data.status.StatusSummaryEntity
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoHmiProvider
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.call.hmi.*
|
||||
@@ -45,13 +41,11 @@ import com.mogo.eagle.core.utilcode.floating.*
|
||||
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
|
||||
import com.mogo.eagle.core.utilcode.util.*
|
||||
import com.zhjt.service_biz.BizConfig
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.selects.*
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
||||
/**
|
||||
@@ -125,7 +119,7 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
ttsMap[v2xType] = System.currentTimeMillis()
|
||||
}
|
||||
}
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${TAG}", "warningV2X v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ")
|
||||
CallerLogger.d("${M_HMI}${TAG}", "warningV2X v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ")
|
||||
val playTTS = !AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)
|
||||
context?.let {
|
||||
val warningContent = alertContent ?: EventTypeEnumNew.getWarningContent(v2xType)
|
||||
|
||||
@@ -19,14 +19,12 @@ import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.*
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import chassis.Chassis
|
||||
import chassis.ChassisStatesOuterClass
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.constants.SharedPrefsConstants
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.module.status.MogoStatusManager
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.data.constants.MoGoConfig
|
||||
@@ -79,11 +77,9 @@ import com.mogo.map.uicontroller.VisualAngleMode
|
||||
import com.mogo.map.uicontroller.VisualAngleMode.*
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.*
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tbRouteDynamicEffect
|
||||
import kotlinx.android.synthetic.main.view_sop_setting.view.*
|
||||
import kotlinx.coroutines.*
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo_msg.MogoReportMsg
|
||||
import planning.RoboSweeperTaskIndexOuterClass
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.collections.component1
|
||||
@@ -127,8 +123,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
private var logInfoView: LogInfoView? = null
|
||||
private var logViewAttach = false
|
||||
|
||||
@Volatile
|
||||
private var mAutoPilotStatusInfo: AutopilotStatusInfo? = null
|
||||
private var mGnssInfo: MogoLocation? = null
|
||||
|
||||
private var accelerationFloatWindow: AccelerationFloatWindow? = null
|
||||
@@ -242,7 +236,7 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
// 开启定时查询速度
|
||||
isRunCheck = true
|
||||
Timer().schedule(timerTaskRefresh, Date(), 300)
|
||||
Timer().schedule(timerTaskRefresh, Date(), 500)
|
||||
if (AppConfigInfo.isConnectAutopilot && (AppConfigInfo.plateNumber.isNullOrEmpty() || AppConfigInfo.iPCMacAddress.isNullOrEmpty())) {
|
||||
//查询工控机基础配置信息
|
||||
CallerAutoPilotControlManager.getCarConfig()
|
||||
@@ -933,7 +927,7 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
clipboardManager?.setPrimaryClip(
|
||||
ClipData.newPlainText(
|
||||
"DockVersion",
|
||||
mAutoPilotStatusInfo?.dockVersion
|
||||
CallerAutoPilotStatusListenerManager.getDockerVersion()?:""
|
||||
)
|
||||
)
|
||||
ToastUtils.showLong("docker版本复制成功")
|
||||
@@ -1091,13 +1085,8 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
/**
|
||||
* 设置域控制器点击监听
|
||||
*/
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun setDomainControllerCheckedChangeListener() {
|
||||
|
||||
// 初始化工控机 IP信息
|
||||
val autoPilotIpAddress =
|
||||
SharedPrefsMgr.getInstance(context)
|
||||
.getString(MoGoConfig.AUTOPILOT_IP, FunctionBuildConfig.adasConnectIP)
|
||||
|
||||
etAutopilotIP.setText("192.168.1.")
|
||||
etAutopilotIP.text?.let { etAutopilotIP.setSelection(it.length) }
|
||||
//设置工控机IP
|
||||
@@ -1211,9 +1200,7 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
val log = map.value.log
|
||||
when (name) {
|
||||
//ADAS日志标签
|
||||
SceneConstant.M_ADAS_IMPL -> cbAdasLog.isChecked = log
|
||||
//CALLCHAT日志标签
|
||||
SceneConstant.M_CHAT -> cbCallChatLog.isChecked = log
|
||||
SceneConstant.M_D_C -> cbAdasLog.isChecked = log
|
||||
//OBU日志标签
|
||||
SceneConstant.M_OBU -> cbObuLog.isChecked = log
|
||||
//HMI日志标签
|
||||
@@ -1226,8 +1213,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
SceneConstant.M_DEVA -> cbDevaLog.isChecked = log
|
||||
//网络模块日志标签
|
||||
SceneConstant.M_NETWORK -> cbNetworkLog.isChecked = log
|
||||
//ROUTE日志标签
|
||||
SceneConstant.M_OLD_ROUTE -> cbOldRouteLog.isChecked = log
|
||||
//BUS日志标签
|
||||
SceneConstant.M_BUS -> cbBusLog.isChecked = log
|
||||
//TAXI日志标签
|
||||
@@ -1236,8 +1221,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
SceneConstant.M_TAXI_P -> cbTaxiPLog.isChecked = log
|
||||
//清扫车日志
|
||||
SceneConstant.M_SWEEPER -> cbSweeperPLog.isChecked = log
|
||||
//其他模块日志(暂未区分具体模块)
|
||||
SceneConstant.M_OTHER -> cbOtherLog.isChecked = log
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1296,14 +1279,8 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
//ADAS日志标签
|
||||
cbAdasLog.setOnCheckedChangeListener { _, isChecked ->
|
||||
val adasModule = SceneModule(isChecked, SceneConstant.M_ADAS_IMPL)
|
||||
sceneMap[SceneConstant.M_ADAS_IMPL] = adasModule
|
||||
CallerDevaToolsManager.updateModuleTAG(sceneMap)
|
||||
}
|
||||
//CALLCHAT日志标签
|
||||
cbCallChatLog.setOnCheckedChangeListener { _, isChecked ->
|
||||
val callChatModule = SceneModule(isChecked, SceneConstant.M_CHAT)
|
||||
sceneMap[SceneConstant.M_CHAT] = callChatModule
|
||||
val adasModule = SceneModule(isChecked, SceneConstant.M_D_C)
|
||||
sceneMap[SceneConstant.M_D_C] = adasModule
|
||||
CallerDevaToolsManager.updateModuleTAG(sceneMap)
|
||||
}
|
||||
//OBU日志标签
|
||||
@@ -1342,12 +1319,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
sceneMap[SceneConstant.M_NETWORK] = networkModule
|
||||
CallerDevaToolsManager.updateModuleTAG(sceneMap)
|
||||
}
|
||||
//ROUTE日志标签
|
||||
cbOldRouteLog.setOnCheckedChangeListener { _, isChecked ->
|
||||
val oldRouteModule = SceneModule(isChecked, SceneConstant.M_OLD_ROUTE)
|
||||
sceneMap[SceneConstant.M_OLD_ROUTE] = oldRouteModule
|
||||
CallerDevaToolsManager.updateModuleTAG(sceneMap)
|
||||
}
|
||||
//BUS日志标签
|
||||
cbBusLog.setOnCheckedChangeListener { _, isChecked ->
|
||||
val busModule = SceneModule(isChecked, SceneConstant.M_BUS)
|
||||
@@ -1372,13 +1343,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
sceneMap[SceneConstant.M_SWEEPER] = sweeperModule
|
||||
CallerDevaToolsManager.updateModuleTAG(sceneMap)
|
||||
}
|
||||
//其他未分类模块日志
|
||||
cbOtherLog.setOnCheckedChangeListener { _, isChecked ->
|
||||
val otherModule = SceneModule(isChecked, SceneConstant.M_OTHER)
|
||||
sceneMap[SceneConstant.M_OTHER] = otherModule
|
||||
CallerDevaToolsManager.updateModuleTAG(sceneMap)
|
||||
}
|
||||
|
||||
//开始停止抓取全量日志
|
||||
tbLogCatch.isChecked =
|
||||
SharedPrefsMgr.getInstance(context).getBoolean(MoGoConfig.CATCH_LOG, false)
|
||||
@@ -1437,10 +1401,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
*/
|
||||
cbAdasAutoPilot.setOnCheckedChangeListener { _, isChecked ->
|
||||
val map = CallerDevaToolsManager.getTraceInfo()
|
||||
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT]
|
||||
val param = map[ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT]
|
||||
param?.let {
|
||||
it.record = isChecked
|
||||
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] = param
|
||||
map[ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT] = param
|
||||
CallerDevaToolsManager.refreshTraceInfo(map)
|
||||
}
|
||||
}
|
||||
@@ -1450,10 +1414,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
*/
|
||||
cbAdasDataTrack.setOnCheckedChangeListener { _, isChecked ->
|
||||
val map = CallerDevaToolsManager.getTraceInfo()
|
||||
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED]
|
||||
val param = map[ChainConstant.CHAIN_TYPE_SOCKET_DATA_TRACKED]
|
||||
param?.let {
|
||||
it.record = isChecked
|
||||
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] = param
|
||||
map[ChainConstant.CHAIN_TYPE_SOCKET_DATA_TRACKED] = param
|
||||
CallerDevaToolsManager.refreshTraceInfo(map)
|
||||
}
|
||||
}
|
||||
@@ -1463,10 +1427,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
*/
|
||||
cbAdasTrajectory.setOnCheckedChangeListener { _, isChecked ->
|
||||
val map = CallerDevaToolsManager.getTraceInfo()
|
||||
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY]
|
||||
val param = map[ChainConstant.CHAIN_TYPE_SOCKET_TRAJECTORY]
|
||||
param?.let {
|
||||
it.record = isChecked
|
||||
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] = param
|
||||
map[ChainConstant.CHAIN_TYPE_SOCKET_TRAJECTORY] = param
|
||||
CallerDevaToolsManager.refreshTraceInfo(map)
|
||||
}
|
||||
}
|
||||
@@ -1476,10 +1440,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
*/
|
||||
cbAdasVehicle.setOnCheckedChangeListener { _, isChecked ->
|
||||
val map = CallerDevaToolsManager.getTraceInfo()
|
||||
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE]
|
||||
val param = map[ChainConstant.CHAIN_TYPE_SOCKET_VEHICLE]
|
||||
param?.let {
|
||||
it.record = isChecked
|
||||
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] = param
|
||||
map[ChainConstant.CHAIN_TYPE_SOCKET_VEHICLE] = param
|
||||
CallerDevaToolsManager.refreshTraceInfo(map)
|
||||
}
|
||||
}
|
||||
@@ -1489,10 +1453,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
*/
|
||||
cbAdasTrafficlight.setOnCheckedChangeListener { _, isChecked ->
|
||||
val map = CallerDevaToolsManager.getTraceInfo()
|
||||
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT]
|
||||
val param = map[ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT]
|
||||
param?.let {
|
||||
it.record = isChecked
|
||||
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT] = param
|
||||
map[ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT] = param
|
||||
CallerDevaToolsManager.refreshTraceInfo(map)
|
||||
}
|
||||
}
|
||||
@@ -1502,10 +1466,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
*/
|
||||
cbAdasPlanningObj.setOnCheckedChangeListener { _, isChecked ->
|
||||
val map = CallerDevaToolsManager.getTraceInfo()
|
||||
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS]
|
||||
val param = map[ChainConstant.CHAIN_TYPE_SOCKET_P_OBJECTS]
|
||||
param?.let {
|
||||
it.record = isChecked
|
||||
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS] = param
|
||||
map[ChainConstant.CHAIN_TYPE_SOCKET_P_OBJECTS] = param
|
||||
CallerDevaToolsManager.refreshTraceInfo(map)
|
||||
}
|
||||
}
|
||||
@@ -1514,23 +1478,23 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
|
||||
private fun refreshTraceInfo() {
|
||||
val traceInfoMap = CallerDevaToolsManager.getTraceInfo()
|
||||
val autopilot = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT]
|
||||
val autopilot = traceInfoMap[ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT]
|
||||
autopilot?.let {
|
||||
cbAdasAutoPilot.isChecked = it.record
|
||||
}
|
||||
val dataTrack = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED]
|
||||
val dataTrack = traceInfoMap[ChainConstant.CHAIN_TYPE_SOCKET_DATA_TRACKED]
|
||||
dataTrack?.let {
|
||||
cbAdasDataTrack.isChecked = it.record
|
||||
}
|
||||
val trajectory = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY]
|
||||
val trajectory = traceInfoMap[ChainConstant.CHAIN_TYPE_SOCKET_TRAJECTORY]
|
||||
trajectory?.let {
|
||||
cbAdasTrajectory.isChecked = it.record
|
||||
}
|
||||
val vehicle = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE]
|
||||
val vehicle = traceInfoMap[ChainConstant.CHAIN_TYPE_SOCKET_VEHICLE]
|
||||
vehicle?.let {
|
||||
cbAdasVehicle.isChecked = it.record
|
||||
}
|
||||
val trafficlight = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT]
|
||||
val trafficlight = traceInfoMap[ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT]
|
||||
trafficlight?.let {
|
||||
cbAdasTrafficlight.isChecked = it.record
|
||||
}
|
||||
@@ -1587,8 +1551,9 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
} else {
|
||||
tvIpcProtocolVersionInfo.text = "工控机协议版本:${AppConfigInfo.protocolVersionNumber}"
|
||||
}
|
||||
tvIpcVersionInfo.text = "MAP:${mAutoPilotStatusInfo?.dockVersion}"
|
||||
tvIpcVersionInfoKey.text = "MAP:${mAutoPilotStatusInfo?.dockVersion}"
|
||||
val dockerVersion = CallerAutoPilotStatusListenerManager.getDockerVersion()
|
||||
tvIpcVersionInfo.text = "MAP:$dockerVersion"
|
||||
tvIpcVersionInfoKey.text = "MAP:$dockerVersion"
|
||||
tvMoGoMapVersion.text = "HD-Map版本:${DebugConfig.getMapVersion()}"
|
||||
tvMoGoMapVersionKey.text = "HD-Map版本:${DebugConfig.getMapVersion()}"
|
||||
tvGitBranchInfo.text = "Git分支:${AppConfigInfo.workingBranchName}"
|
||||
@@ -1659,12 +1624,7 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
"司机端Server启动"
|
||||
}
|
||||
else -> {
|
||||
"乘客端${
|
||||
when {
|
||||
!AppConfigInfo.serverSn.isNullOrEmpty() -> "(司机屏SN是:${AppConfigInfo.serverSn?:""})"
|
||||
else -> ""
|
||||
}
|
||||
}连接"
|
||||
"乘客端${"(司机屏SN是:${AppConfigInfo.serverSn})"}连接"
|
||||
}
|
||||
}
|
||||
}是否正常:${
|
||||
@@ -1697,11 +1657,10 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}"
|
||||
)
|
||||
|
||||
mAutoPilotStatusInfo?.let {
|
||||
val autopilotJson = GsonUtils.toJson(it)
|
||||
tvAutopilotInfo.text = autopilotJson
|
||||
tvIpcInfo.text = autopilotJson
|
||||
tvIpcInfoKey.text = autopilotJson
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfoJsonString().let {
|
||||
tvAutopilotInfo.text = it
|
||||
tvIpcInfo.text = it
|
||||
tvIpcInfoKey.text = it
|
||||
}
|
||||
tvCmdbCarInfoContent.text = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.CAR_INFO)?:""
|
||||
|
||||
@@ -1781,8 +1740,7 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
/**
|
||||
* 自动驾驶状态回调
|
||||
*/
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
mAutoPilotStatusInfo = autoPilotStatusInfo
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
setAutopilotConnectStatus()
|
||||
}
|
||||
|
||||
@@ -1910,7 +1868,7 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
if (accelerationList.size > 9) {
|
||||
accelerationList.removeLast()
|
||||
}
|
||||
gnssInfo?.acceleration?.let {
|
||||
gnssInfo.acceleration.let {
|
||||
if (accelerationList.isEmpty()) {
|
||||
accelerationList.add(
|
||||
AccelerationEntity(
|
||||
@@ -2012,7 +1970,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 车辆方向盘转向角回调
|
||||
* @param steering 方向盘转向角
|
||||
@@ -2033,36 +1990,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆加速度
|
||||
*/
|
||||
override fun onAutopilotAcc(carAcc: Float) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 油门
|
||||
*/
|
||||
override fun onAutopilotThrottle(throttle: Float) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 刹车
|
||||
*/
|
||||
override fun onAutopilotBrake(brake: Float) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 清扫车(福田)清扫控制系统状态
|
||||
*/
|
||||
override fun onSweeperFutianCleanSystemState(cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates) {
|
||||
|
||||
}
|
||||
override fun onSweeperFutianTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) {
|
||||
|
||||
}
|
||||
/**
|
||||
* 吐司提示
|
||||
*/
|
||||
|
||||
@@ -17,17 +17,15 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigList
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.kotlin.currentPadding
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import kotlinx.android.synthetic.main.view_sop_setting.view.*
|
||||
import kotlinx.android.synthetic.main.view_sop_setting.view.tbRouteDynamicEffect
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* SOP设置窗口
|
||||
@@ -49,16 +47,16 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
|
||||
private fun initView() {
|
||||
sopLayout.setOnClickListener { }
|
||||
//绕障类功能开关
|
||||
tbObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring
|
||||
tbObstacleAvoidance.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("绕障类功能开关",isChecked)
|
||||
CallerAutoPilotControlManager.sendDetouring(isChecked)
|
||||
FunctionBuildConfig.isDetouring = isChecked
|
||||
}
|
||||
|
||||
tbMarkingObstacles.isChecked = FunctionBuildConfig.isPNCWarning
|
||||
//危险障碍物颜色标记开关
|
||||
tbMarkingObstacles.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("危险障碍物颜色标记开关",isChecked)
|
||||
FunctionBuildConfig.isPNCWarning = isChecked
|
||||
}
|
||||
|
||||
@@ -66,61 +64,62 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
tbMarkingObstacles.visibility = View.GONE
|
||||
}
|
||||
|
||||
//引导线动态效果
|
||||
tbRouteDynamicEffect.isChecked = HmiBuildConfig.isShowRouteStrategy
|
||||
tbRouteDynamicEffect.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("引导线动态效果",isChecked)
|
||||
HmiBuildConfig.isShowRouteStrategy = isChecked
|
||||
}
|
||||
|
||||
/**
|
||||
* obu弱势交通控制, 默认开启
|
||||
*/
|
||||
//默认开启
|
||||
tbObuWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowObuWeaknessTrafficView
|
||||
tbObuWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("obu弱势交通控制, ",isChecked)
|
||||
HmiBuildConfig.isShowObuWeaknessTrafficView = isChecked
|
||||
}
|
||||
|
||||
/**
|
||||
* 云端弱势交通控制 默认关闭
|
||||
* 默认关闭
|
||||
*/
|
||||
tbCloudWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowCloudWeaknessTrafficView
|
||||
tbCloudWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("云端弱势交通控制, ",isChecked)
|
||||
HmiBuildConfig.isShowCloudWeaknessTrafficView = isChecked
|
||||
}
|
||||
|
||||
/**
|
||||
* V2N场景进PNC
|
||||
*/
|
||||
tbV2nPnc.isChecked = FunctionBuildConfig.isV2NPnc
|
||||
tbV2nPnc.setOnCheckedChangeListener{ compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("V2N场景进PNC, ",isChecked)
|
||||
CallerAutoPilotControlManager.sendV2nToPncCmd(isChecked)
|
||||
FunctionBuildConfig.isV2NPnc = isChecked
|
||||
}
|
||||
|
||||
/**
|
||||
* obu V2V开关,默认打开
|
||||
* 默认打开
|
||||
*/
|
||||
tbObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView
|
||||
tbObuV2vView.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("obuV2V开关, ",isChecked)
|
||||
HmiBuildConfig.isShowObuV2vView = isChecked
|
||||
}
|
||||
|
||||
/**
|
||||
* obu V2i开关,默认打开
|
||||
* 默认打开
|
||||
*/
|
||||
tbObuV2iView.isChecked = HmiBuildConfig.isShowObuV2iView
|
||||
tbObuV2iView.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("obuV2i开关, ",isChecked)
|
||||
HmiBuildConfig.isShowObuV2iView = isChecked
|
||||
}
|
||||
|
||||
/**
|
||||
* obu 闯红灯预警,默认关闭
|
||||
* 默认关闭
|
||||
*/
|
||||
tbRunRedLightSop.isChecked = HmiBuildConfig.isShowRunRedLightView
|
||||
tbRunRedLightSop.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("obu闯红灯预警, ",isChecked)
|
||||
HmiBuildConfig.isShowRunRedLightView = isChecked
|
||||
if (HmiBuildConfig.isShowRunRedLightView) {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
|
||||
@@ -130,10 +129,11 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
/**
|
||||
* obu 绿波通行,默认关闭
|
||||
* 默认关闭
|
||||
*/
|
||||
tbGreenWaveSop.isChecked = HmiBuildConfig.isShowGreenWaveView
|
||||
tbGreenWaveSop.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("obu绿波通行, ",isChecked)
|
||||
HmiBuildConfig.isShowGreenWaveView = isChecked
|
||||
if (HmiBuildConfig.isShowGreenWaveView) {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "1".toByteArray())
|
||||
@@ -142,9 +142,9 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
//红绿灯标识
|
||||
tbTrafficLight.isChecked = HmiBuildConfig.isShowTrafficLightView
|
||||
tbTrafficLight.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("红绿灯标识开关, ",isChecked)
|
||||
if (!isChecked) {
|
||||
HmiBuildConfig.isShowTrafficLightView = false
|
||||
} else {
|
||||
@@ -153,9 +153,9 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
//限速标识
|
||||
tbSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView
|
||||
tbSpeedLimit.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("限速标识开关, ",isChecked)
|
||||
if (isChecked) {
|
||||
HmiBuildConfig.isShowLimitingVelocityView = true
|
||||
} else {
|
||||
@@ -166,11 +166,11 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
|
||||
// 演示模式,上一次勾选的数据
|
||||
tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode
|
||||
// 演示模式
|
||||
tbDemoMode.setOnCheckedChangeListener { compoundButton, _ ->
|
||||
if(!compoundButton.isPressed){
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("演示模式开关, ",!FunctionBuildConfig.isDemoMode)
|
||||
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
|
||||
CallerHmiManager.updateStatusBarLeftView(FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(context))
|
||||
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
@@ -184,14 +184,13 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
tbDemoMode.visibility = View.GONE
|
||||
}
|
||||
|
||||
|
||||
// 雨天模式,上一次勾选的数据
|
||||
tbRainMode.isChecked = FunctionBuildConfig.isRainMode
|
||||
//雨天模式
|
||||
tbRainMode.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("雨天模式开关, ",isChecked)
|
||||
CallerAutoPilotControlManager.setRainMode(isChecked)
|
||||
FunctionBuildConfig.isRainMode = isChecked
|
||||
}
|
||||
@@ -200,9 +199,9 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
tbRainMode.visibility = View.GONE
|
||||
}
|
||||
|
||||
//OBU控制总开关
|
||||
tbObu.isChecked = CallerObuApiManager.isConnected()
|
||||
tbObu.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("OBU控制总开关, ",isChecked)
|
||||
if (isChecked) {
|
||||
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
|
||||
} else {
|
||||
@@ -212,14 +211,15 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
|
||||
//是否开启异常上报
|
||||
tbIPCReport.isChecked = FunctionBuildConfig.isReportWarning
|
||||
tbIPCReport.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("是否开启异常上报, ",isChecked)
|
||||
FunctionBuildConfig.isReportWarning = isChecked
|
||||
}
|
||||
|
||||
tbNewV2NData.isChecked = FunctionBuildConfig.isNewV2NData
|
||||
tbNewV2NData.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("是否是V2N新链路(云->工控机->App)",isChecked)
|
||||
FunctionBuildConfig.isNewV2NData = isChecked
|
||||
}
|
||||
|
||||
@@ -249,6 +249,7 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
FunctionBuildConfig.detouringSpeed--
|
||||
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
|
||||
}
|
||||
hmiAction("变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
|
||||
}
|
||||
ivSpeedAdd.setOnClickListener {
|
||||
if (FunctionBuildConfig.detouringSpeed >= 7) {
|
||||
@@ -257,14 +258,17 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
FunctionBuildConfig.detouringSpeed++
|
||||
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
|
||||
}
|
||||
hmiAction("变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
|
||||
}
|
||||
btnSpeedSet.setOnClickListener {
|
||||
val isSuccess =
|
||||
CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.detouringSpeed.toDouble())
|
||||
if (isSuccess == true) {
|
||||
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
|
||||
hmiAction("变道绕障的目标障碍物速度阈值设置","成功")
|
||||
} else {
|
||||
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
|
||||
hmiAction("变道绕障的目标障碍物速度阈值设置","失败")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,11 +11,9 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.FrameLayout
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.data.temp.EventLogout
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
@@ -44,7 +42,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
), IMoGoAutopilotStatusListener {
|
||||
) {
|
||||
|
||||
companion object{
|
||||
private const val TAG = "AutoPilotAndCheckView"
|
||||
@@ -52,8 +50,6 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
|
||||
|
||||
private var clickListener: ClickListener? = null
|
||||
private var keyBoardUtil: KeyBoardUtil? = null
|
||||
@Volatile
|
||||
private var connectStatus = false
|
||||
private var lastTime = 0L
|
||||
|
||||
init {
|
||||
@@ -174,7 +170,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
|
||||
svLayout.post {
|
||||
svLayout.fullScroll(View.FOCUS_DOWN)
|
||||
}
|
||||
if (!connectStatus) {
|
||||
if (!CallerAutoPilotStatusListenerManager.getConnectStates()) {
|
||||
ToastUtils.showShort("设置车速失败,请启动域控制器")
|
||||
keyBoardUtil?.hideKeyboard()
|
||||
return@setOnTouchListener true
|
||||
@@ -267,20 +263,14 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
CallerAutoPilotStatusListenerManager.removeListener(TAG)
|
||||
CallerAutopilotCarConfigListenerManager.removeListener(TAG)
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
connectStatus = autoPilotStatusInfo.connectStatus
|
||||
}
|
||||
|
||||
interface ClickListener {
|
||||
fun onClose(v: View)
|
||||
fun showDebugPanelView()
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.utils;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @author Jing
|
||||
* @description 文件工具类
|
||||
* @since: 11/2/21
|
||||
*/
|
||||
public class FileUtils {
|
||||
|
||||
/**
|
||||
* @param path 文件链接
|
||||
* @return 视频文件
|
||||
*/
|
||||
boolean isVideo(String path) {
|
||||
String reg = "(mp4|flv|avi|rm|rmvb|wmv|mov)";
|
||||
Pattern p = Pattern.compile(reg);
|
||||
boolean boo = p.matcher("url").find();
|
||||
return boo;
|
||||
}
|
||||
|
||||
boolean isImage(String path) {
|
||||
String reg = "(jpg|png|jpeg|gif|bmp)";
|
||||
Pattern p = Pattern.compile(reg);
|
||||
boolean boo = p.matcher("url").find();
|
||||
return boo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.utils
|
||||
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
|
||||
class HmiActionLog {
|
||||
|
||||
companion object {
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_HMI,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_HMI,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_HMI_ACTIONS,
|
||||
paramIndexes = [0, 1]
|
||||
)
|
||||
fun hmiAction(data: Any, data1: Any) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.utils
|
||||
|
||||
import android.view.View
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/6/28
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
fun View.gone() {
|
||||
if (this.visibility != View.GONE) {
|
||||
this.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
fun View.visible() {
|
||||
if (this.visibility != View.VISIBLE) {
|
||||
this.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
|
||||
fun View.invisible() {
|
||||
if (this.visibility != View.INVISIBLE) {
|
||||
this.visibility = View.INVISIBLE
|
||||
}
|
||||
}
|
||||
@@ -6,13 +6,12 @@ import android.util.TypedValue.COMPLEX_UNIT_PX
|
||||
import android.view.LayoutInflater
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.autopilot.pnc.PncActionsHelper
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_PNC_ACTIONS
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.FOUNDATION
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.currentRoadTrafficLight
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.isRed
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_PNC_ACTIONS
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.FOUNDATION
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING
|
||||
@@ -40,9 +39,6 @@ class PncActionsView @JvmOverloads constructor(
|
||||
@Volatile
|
||||
private var mTrafficLightResult: TrafficLightResult? = null
|
||||
|
||||
@Volatile
|
||||
private var mAutoPilotStatusInfo: AutopilotStatusInfo? = null
|
||||
|
||||
private val bgResources: Int
|
||||
private val topMargin: Float
|
||||
private val txtSize: Float
|
||||
@@ -68,7 +64,7 @@ class PncActionsView @JvmOverloads constructor(
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
(tvHmiPncActions.layoutParams as MarginLayoutParams).topMargin = topMargin.toInt()
|
||||
tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX, txtSize.toFloat())
|
||||
tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX, txtSize)
|
||||
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerPlanningActionsListenerManager.addListener(TAG, this)
|
||||
@@ -82,10 +78,8 @@ class PncActionsView @JvmOverloads constructor(
|
||||
CallerTrafficLightListenerManager.removeListener(TAG)
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
super.onAutopilotStatusResponse(autoPilotStatusInfo)
|
||||
mAutoPilotStatusInfo = autoPilotStatusInfo
|
||||
if (mAutoPilotStatusInfo!!.state != STATUS_AUTOPILOT_RUNNING) {
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
if (state != STATUS_AUTOPILOT_RUNNING) {
|
||||
UiThreadHandler.post {
|
||||
this.background = null
|
||||
tvHmiPncActions.text = ""
|
||||
@@ -96,45 +90,43 @@ class PncActionsView @JvmOverloads constructor(
|
||||
@BizConfig(FOUNDATION, "", BIZ_PNC_ACTIONS)
|
||||
override fun pncActions(planningActionMsg: MessagePad.PlanningActionMsg) {
|
||||
try {
|
||||
mAutoPilotStatusInfo?.let {
|
||||
UiThreadHandler.post {
|
||||
if (it.state == STATUS_AUTOPILOT_RUNNING) {
|
||||
var actions: String? = null
|
||||
planningActionMsg.actionMsg?.let { it ->
|
||||
try {
|
||||
actions = PncActionsHelper.getAction(
|
||||
it.drivingState.number,
|
||||
it.drivingAction.number
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
//如果是存在云端红绿灯数据条件下,设置云端数据
|
||||
if (PncActionsHelper.isWaitingTrafficlight(
|
||||
it.drivingState.number,
|
||||
it.drivingAction.number
|
||||
)
|
||||
&& mTrafficLightResult != null
|
||||
&& getWaitTrafficLightTime().isNotBlank()
|
||||
) {
|
||||
actions += ",预计${getWaitTrafficLightTime()}秒后通过"
|
||||
} else {
|
||||
mTrafficLightResult = null
|
||||
}
|
||||
UiThreadHandler.post {
|
||||
if (CallerAutoPilotStatusListenerManager.getState() == STATUS_AUTOPILOT_RUNNING) {
|
||||
var actions: String? = null
|
||||
planningActionMsg.actionMsg?.let { it ->
|
||||
try {
|
||||
actions = PncActionsHelper.getAction(
|
||||
it.drivingState.number,
|
||||
it.drivingAction.number
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
// update view
|
||||
if (actions.isNullOrEmpty()) {
|
||||
this.background = null
|
||||
tvHmiPncActions.text = ""
|
||||
//如果是存在云端红绿灯数据条件下,设置云端数据
|
||||
if (PncActionsHelper.isWaitingTrafficlight(
|
||||
it.drivingState.number,
|
||||
it.drivingAction.number
|
||||
)
|
||||
&& mTrafficLightResult != null
|
||||
&& getWaitTrafficLightTime().isNotBlank()
|
||||
) {
|
||||
actions += ",预计${getWaitTrafficLightTime()}秒后通过"
|
||||
} else {
|
||||
this.background =
|
||||
AppCompatResources.getDrawable(context, bgResources)
|
||||
tvHmiPncActions.text = actions
|
||||
mTrafficLightResult = null
|
||||
}
|
||||
} else {
|
||||
}
|
||||
// update view
|
||||
if (actions.isNullOrEmpty()) {
|
||||
this.background = null
|
||||
tvHmiPncActions.text = ""
|
||||
} else {
|
||||
this.background =
|
||||
AppCompatResources.getDrawable(context, bgResources)
|
||||
tvHmiPncActions.text = actions
|
||||
}
|
||||
} else {
|
||||
this.background = null
|
||||
tvHmiPncActions.text = ""
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
||||
@@ -6,7 +6,6 @@ import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.EventTypeEnumNew
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
@@ -16,7 +15,6 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
@@ -33,31 +31,22 @@ class TakeOverView @JvmOverloads constructor(
|
||||
const val TAG = "TakeOverView"
|
||||
}
|
||||
|
||||
private var autopilotStatus: Int = 0 //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中,7:平行驾驶中
|
||||
private var isParallel: Boolean = false //是否是平行驾驶
|
||||
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.view_take_over, this, true)
|
||||
}
|
||||
|
||||
private var takeOver = false
|
||||
private var isParallel: Boolean = false //是否是平行驾驶
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动驾驶状态信息
|
||||
*
|
||||
* @param autoPilotStatusInfo 状态信息
|
||||
*/
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
autopilotStatus = autoPilotStatusInfo.state
|
||||
if(autoPilotStatusInfo.state == 7){
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
if(state == 7){
|
||||
isParallel = true
|
||||
}else if(autoPilotStatusInfo.state == 0 || autoPilotStatusInfo.state == 1){
|
||||
}else if(state == 0 || state == 1){
|
||||
isParallel = false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
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.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
@@ -37,7 +36,7 @@ class AutoPilotStatusView constructor(
|
||||
|
||||
private var mAutopilotStatus: Int = 0
|
||||
|
||||
init{
|
||||
init {
|
||||
initView(context)
|
||||
}
|
||||
|
||||
@@ -119,8 +118,8 @@ class AutoPilotStatusView constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
setAutoPilotStatus(autoPilotStatusInfo.state)
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
setAutoPilotStatus(state)
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
|
||||
@@ -6,7 +6,6 @@ import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
@@ -29,12 +28,7 @@ class CheckSystemView @JvmOverloads constructor(
|
||||
const val TAG = "CheckSystemView"
|
||||
}
|
||||
|
||||
@Volatile
|
||||
private var connectStatus = false //是否连接工控机
|
||||
@Volatile
|
||||
private var autopilotStatus: Int? = null //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中
|
||||
private var dockerRebootDialog: DockerRebootDialog? = null
|
||||
|
||||
private var downloadStatus: String = "" //下载状态
|
||||
private var upgradeStatus: String = "" //升级状态
|
||||
|
||||
@@ -54,7 +48,7 @@ class CheckSystemView @JvmOverloads constructor(
|
||||
dockerRebootDialog = DockerRebootDialog(context)
|
||||
dockerRebootDialog?.setClickListener(object : DockerRebootDialog.ClickListener {
|
||||
override fun confirm() {
|
||||
if (autopilotStatus == 2) {
|
||||
if (CallerAutoPilotStatusListenerManager.getState() == 2) {
|
||||
//当前处于自动驾驶状态,不可进行重启,Toast提示
|
||||
ToastUtils.showShort("请先退出自动驾驶状态")
|
||||
}
|
||||
@@ -106,16 +100,15 @@ class CheckSystemView @JvmOverloads constructor(
|
||||
CallerAutoPilotStatusListenerManager.removeListener(TAG)
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
connectStatus = autoPilotStatusInfo.connectStatus
|
||||
autopilotStatus = autoPilotStatusInfo.state
|
||||
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {
|
||||
super.onAutopilotIpcConnectStatusChanged(status, reason)
|
||||
ThreadUtils.runOnUiThread {
|
||||
setViewStatus()
|
||||
setViewStatus(status == 0x00)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setViewStatus() {
|
||||
if (connectStatus) {
|
||||
private fun setViewStatus(connectInfo:Boolean) {
|
||||
if (connectInfo) {
|
||||
viewCheckShutDown.requestFocus()
|
||||
viewCheckShutDown.isClickable = true
|
||||
viewCheckReboot.requestFocus()
|
||||
@@ -124,7 +117,6 @@ class CheckSystemView @JvmOverloads constructor(
|
||||
viewCheckShutDown.isClickable = false
|
||||
viewCheckReboot.isClickable = false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,8 +6,6 @@ import android.util.AttributeSet
|
||||
import android.view.Gravity
|
||||
import android.widget.FrameLayout
|
||||
import com.mogo.eagle.core.data.enums.DataSourceType
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
|
||||
import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager
|
||||
@@ -18,8 +16,7 @@ class SpeedPanelView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : FrameLayout(context, attrs, defStyleAttr), IMoGoChassisLocationGCJ02Listener,
|
||||
ILimitingVelocityListener {
|
||||
) : FrameLayout(context, attrs, defStyleAttr), ILimitingVelocityListener {
|
||||
|
||||
companion object {
|
||||
const val TAG = "SpeedPanelView"
|
||||
@@ -27,8 +24,6 @@ class SpeedPanelView @JvmOverloads constructor(
|
||||
|
||||
var mContext: Context
|
||||
var mSpeedChartView: SpeedChartView
|
||||
@Volatile
|
||||
var mLatLng: MogoLocation? = null
|
||||
|
||||
init {
|
||||
setBackgroundResource(R.drawable.yi_biao_pan_bg_nor)
|
||||
@@ -47,31 +42,22 @@ class SpeedPanelView @JvmOverloads constructor(
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
CallerLimitingVelocityListenerManager.addListener(TAG, this)
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
|
||||
mogoLocation?.let {
|
||||
mLatLng = mogoLocation
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLimitingVelocityChange(limitingVelocity: Int, sourceType: DataSourceType) {
|
||||
super.onLimitingVelocityChange(limitingVelocity, sourceType)
|
||||
mLatLng?.let {
|
||||
UiThreadHandler.post {
|
||||
val speed = (it.gnssSpeed * 3.6f).toInt()
|
||||
mSpeedChartView.setArcColor(Color.parseColor(if (speed > limitingVelocity) "#DB3137" else "#3E77F6"))
|
||||
mSpeedChartView.setValues(speed)
|
||||
setBackgroundResource(if (speed > limitingVelocity) R.drawable.yi_biao_pan_bg_speeding else R.drawable.yi_biao_pan_bg_nor)
|
||||
}
|
||||
UiThreadHandler.post {
|
||||
val speed =
|
||||
(CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().gnssSpeed * 3.6f).toInt()
|
||||
mSpeedChartView.setArcColor(Color.parseColor(if (speed > limitingVelocity) "#DB3137" else "#3E77F6"))
|
||||
mSpeedChartView.setValues(speed)
|
||||
setBackgroundResource(if (speed > limitingVelocity) R.drawable.yi_biao_pan_bg_speeding else R.drawable.yi_biao_pan_bg_nor)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
CallerLimitingVelocityListenerManager.removeListener(TAG)
|
||||
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -94,9 +94,8 @@ class SteeringWheelView : ConstraintLayout, IMoGoChassisSteeringStateListener,
|
||||
|
||||
private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener =
|
||||
object : IMoGoAutopilotStatusListener {
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
ThreadUtils.runOnUiThread {
|
||||
val state = autoPilotStatusInfo.state
|
||||
d("$M_BUS_P$TAG", "state = %s", state)
|
||||
if (autopilotIV != null) {
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
|
||||
@@ -5,7 +5,6 @@ import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.AdUpgradeStateHelper
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
@@ -21,6 +20,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.hmi.ui.map.OfflineMapDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
|
||||
import com.mogo.eagle.core.utilcode.util.*
|
||||
@@ -43,14 +43,11 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
const val TAG = "SystemVersionView"
|
||||
}
|
||||
|
||||
private var connectStatus = false
|
||||
private var dockerVersion: String? = null //工控机版本
|
||||
private var autopilotStatus: Int? = null //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中
|
||||
|
||||
private var ipcUpgradeStateInfo: IPCUpgradeStateInfo?=null
|
||||
private var ipcUpgradeStateInfo: IPCUpgradeStateInfo? = null
|
||||
|
||||
private var needQueryContainers: Boolean = false
|
||||
private var dockerList: List<String>?=null
|
||||
private var dockerList: List<String>? = null
|
||||
private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间
|
||||
private var currentProgress: Int = -1 //当前已下载包体大小
|
||||
|
||||
@@ -68,13 +65,13 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
|
||||
//鹰眼版本视图点击事件
|
||||
ivPadVersion.setOnClickListener {
|
||||
CallerLogger.i("$M_HMI$$TAG", "pad version view clicked")
|
||||
hmiAction("$M_HMI$$TAG", "pad version view clicked")
|
||||
CallerDevaToolsManager.queryAppUpgrade()
|
||||
}
|
||||
|
||||
//工控机版本视图点击事件
|
||||
ivAdVersion.setOnClickListener {
|
||||
CallerLogger.i("$M_HMI$$TAG", "ad version view clicked")
|
||||
hmiAction("$M_HMI$$TAG", "ad version view clicked")
|
||||
// if(AdUpgradeStateHelper.isUpgradeableStatus()){
|
||||
// if(autopilotStatus == 2){
|
||||
// //当前处于自动驾驶状态,不可进行升级,Toast提示
|
||||
@@ -93,15 +90,16 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
when {
|
||||
AdUpgradeStateHelper.isDownloading(it.status) -> {
|
||||
//下载中,点击Toast提示:下载剩余时间
|
||||
it.progress?.let { progress->
|
||||
progress.progressDetail?.let {progressDetail->
|
||||
if(AdUpgradeStateHelper.getRemainingTime(
|
||||
it.progress?.let { progress ->
|
||||
progress.progressDetail?.let { progressDetail ->
|
||||
if (AdUpgradeStateHelper.getRemainingTime(
|
||||
progressDetail.total,
|
||||
previousProgress,
|
||||
currentProgress
|
||||
).isEmpty()){
|
||||
).isEmpty()
|
||||
) {
|
||||
ToastUtils.showShort("下载已完成")
|
||||
}else{
|
||||
} else {
|
||||
ToastUtils.showShort(
|
||||
"预计" + AdUpgradeStateHelper.getRemainingTime(
|
||||
progressDetail.total,
|
||||
@@ -135,6 +133,10 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
ivHDCache.setOnClickListener {
|
||||
hmiAction(
|
||||
"$M_HMI$TAG",
|
||||
"HD map view click , isHDCached:$isHDCached , lon:${location?.longitude} , lat:${location?.latitude}"
|
||||
)
|
||||
if (isHDCached) {// 已缓存
|
||||
ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded))
|
||||
} else {// 未缓存
|
||||
@@ -143,7 +145,6 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
ToastUtils.showShort(resources.getString(R.string.location_try_again))
|
||||
} else {// 拿到了高精的经纬度
|
||||
val dialog = OfflineMapDialog(context)
|
||||
CallerLogger.i("$M_HMI$$TAG", "location lon is:${location?.longitude}, lat is:${location?.latitude}")
|
||||
dialog.location = location
|
||||
dialog.show()
|
||||
}
|
||||
@@ -160,7 +161,7 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
if(AdUpgradeStateHelper.isConfirmUpgrade()){
|
||||
if (AdUpgradeStateHelper.isConfirmUpgrade()) {
|
||||
//将角标改为“下载中”
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_downloading)
|
||||
// ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
@@ -176,7 +177,7 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
private fun setAdUpgradeInfo(ipcUpgradeStateInfo: IPCUpgradeStateInfo) {
|
||||
this.previousProgress = this.currentProgress
|
||||
ipcUpgradeStateInfo.progress?.let {
|
||||
it.progressDetail?.let {progressDetail->
|
||||
it.progressDetail?.let { progressDetail ->
|
||||
this.currentProgress = progressDetail.current
|
||||
}
|
||||
}
|
||||
@@ -187,22 +188,22 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
* 展示工控机下载、升级状态信息
|
||||
*
|
||||
*/
|
||||
fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo){
|
||||
ThreadUtils.runOnUiThread{
|
||||
fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo) {
|
||||
ThreadUtils.runOnUiThread {
|
||||
setAdUpgradeInfo(ipcUpgradeStateInfo)
|
||||
AdUpgradeStateHelper.setUpgradeableStatus(false)
|
||||
ipcUpgradeStateInfo.status.let {status->
|
||||
ipcUpgradeStateInfo.status.let { status ->
|
||||
when {
|
||||
AdUpgradeStateHelper.isDownloading(status) -> {
|
||||
//正在下载,展示“下载中”角标,展示进度条,并设置当前下载进度
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_downloading)
|
||||
adCircularProgressView?.let {adCircularProgressView->
|
||||
adCircularProgressView?.let { adCircularProgressView ->
|
||||
adCircularProgressView.visibility = View.VISIBLE
|
||||
CallerLogger.i(
|
||||
"$M_HMI$$TAG", "showAdUpgradeStatus status=$status"
|
||||
)
|
||||
ipcUpgradeStateInfo.progress?.let { progress->
|
||||
progress.progressDetail?.let {progressDetail->
|
||||
ipcUpgradeStateInfo.progress?.let { progress ->
|
||||
progress.progressDetail?.let { progressDetail ->
|
||||
adCircularProgressView.setProgress(
|
||||
AdUpgradeStateHelper.downloadProgress(
|
||||
progressDetail.current,
|
||||
@@ -223,14 +224,14 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
// ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
AdUpgradeStateHelper.setConfirmUpgrade(false)
|
||||
}
|
||||
AdUpgradeStateHelper.isDownloadFinish(status) ->{
|
||||
AdUpgradeStateHelper.isDownloadFinish(status) -> {
|
||||
//升级中,将状态设为“升级中”角标,并隐藏进度条
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
|
||||
adCircularProgressView?.visibility = View.GONE
|
||||
// ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
|
||||
AdUpgradeStateHelper.setConfirmUpgrade(false)
|
||||
}
|
||||
AdUpgradeStateHelper.isUpgrading(status) ->{
|
||||
AdUpgradeStateHelper.isUpgrading(status) -> {
|
||||
//升级中,将状态设为“升级中”角标,并隐藏进度条
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
|
||||
adCircularProgressView?.visibility = View.GONE
|
||||
@@ -304,7 +305,7 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
}
|
||||
CallerHmiListenerManager.addListener(TAG, this)
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerDevaToolsListenerManager.addListener(TAG,this)
|
||||
CallerDevaToolsListenerManager.addListener(TAG, this)
|
||||
CallerChassisLocationWGS84ListenerManager.addListener(TAG, this)
|
||||
needQueryContainers = true
|
||||
}
|
||||
@@ -321,25 +322,9 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
needQueryContainers = false
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
connectStatus = autoPilotStatusInfo.connectStatus
|
||||
dockerVersion = autoPilotStatusInfo.dockVersion
|
||||
autopilotStatus = autoPilotStatusInfo.state
|
||||
CallerLogger.i(
|
||||
"$M_HMI$TAG",
|
||||
"onAutopilotStatusResponse connectStatus=$connectStatus , dockerVersion=$dockerVersion , autopilotStatus=$autopilotStatus"
|
||||
)
|
||||
// if(needQueryContainers && !AdUpgradeStateHelper.isUpgradeableStatus()){
|
||||
// dockerVersion?.let {
|
||||
// //查询是否有新的工控机docker版本
|
||||
// CallerBindingcarManager.getBindingcarProvider().queryContainers(MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn,dockerVersion)
|
||||
// needQueryContainers = false
|
||||
// }
|
||||
// }
|
||||
setViewStatus()
|
||||
}
|
||||
|
||||
private fun setViewStatus() {
|
||||
override fun onAutopilotDockerInfo(dockerVersion: String) {
|
||||
super.onAutopilotDockerInfo(dockerVersion)
|
||||
this.dockerVersion = dockerVersion
|
||||
showCurrentAdVersion()
|
||||
}
|
||||
|
||||
@@ -348,13 +333,13 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
*/
|
||||
override fun queryContainersResponse(dockerList: List<String>) {
|
||||
this.dockerList = dockerList
|
||||
if(dockerList.isNotEmpty()){
|
||||
if (dockerList.isNotEmpty()) {
|
||||
//有更新任务,将状态设为“可升级”角标,并隐藏进度条
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_upgradeable)
|
||||
adCircularProgressView?.visibility = View.GONE
|
||||
// ivAdVersion?.setBackgroundResource(R.drawable.version_upgradeable_background)
|
||||
AdUpgradeStateHelper.setUpgradeableStatus(true)
|
||||
}else{
|
||||
} else {
|
||||
ToastUtils.showLong("已是最新版本")
|
||||
ivAdStatus?.setImageResource(R.drawable.icon_latest_version)
|
||||
adCircularProgressView?.visibility = View.GONE
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user