diff --git a/.idea/misc.xml b/.idea/misc.xml
index 733acb1920..09cc32c567 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -8,7 +8,7 @@
-
+
\ No newline at end of file
diff --git a/modules/mogo-module-adas/build.gradle b/modules/mogo-module-adas/build.gradle
index 1b4971bcfe..ff1be22e12 100644
--- a/modules/mogo-module-adas/build.gradle
+++ b/modules/mogo-module-adas/build.gradle
@@ -38,7 +38,7 @@ dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
-
+ implementation rootProject.ext.dependencies.rxandroid
annotationProcessor rootProject.ext.dependencies.aroutercompiler
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasConstant.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasConstant.java
index eb9ba9e8ef..3bff73bac8 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasConstant.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasConstant.java
@@ -1,5 +1,11 @@
package com.mogo.module.adas;
+
/**
* Created by XuYong on 2021/5/28 15:24
- */public class AdasConstant {
+ */
+public class AdasConstant {
+ public static final String HOST_DEV = "http://dzt-test.zhidaohulian.com";
+ public static final String HOST_TEST = "http://dzt-test.zhidaohulian.com";
+ public static final String HOST_DEMO = "http://dzt-show.zhidaohulian.com";
+ public static final String HOST_PRODUCT = "https://dzt.zhidaohulian.com";
}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java
index c8b768b081..babc4987fe 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java
@@ -1,7 +1,12 @@
package com.mogo.module.adas;
import com.google.gson.Gson;
+import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
+import com.mogo.commons.data.BaseData;
+import com.mogo.commons.network.SubscribeImpl;
+import com.mogo.module.common.MogoApisHandler;
import com.mogo.utils.logger.Logger;
+import com.mogo.utils.network.RequestOptions;
import com.mogo.utils.network.utils.GsonUtil;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
@@ -18,6 +23,18 @@ import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import com.zhidao.support.adas.high.common.MsgActionType;
import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
+
+import io.reactivex.Flowable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.annotations.NonNull;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Consumer;
+import io.reactivex.schedulers.Schedulers;
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
+
+import static com.mogo.commons.context.ContextHolderUtil.getContext;
/**
* Created by XuYong on 2021/4/25 14:43
@@ -25,14 +42,20 @@ import java.util.ArrayList;
public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusListener {
private final String TAG = "AdasEventManager";
-
private final Gson gson;
-
private final ArrayList iAdasEventListeners = new ArrayList<>();
private final ArrayList iAdasStatusListeners = new ArrayList<>();
+ private IAdasApiService mAdasApiService;
+ private Disposable uploadAutopilotStatus;
+ //自动驾驶状态
+ private int mCurrentAutopilotStatus = -1;
+ //自动驾驶车速度
+ private float mCurrentAutopilotSpeed = 0;
+ private Disposable mdDisposable;
public AdasEventManager() {
gson = GsonUtil.getGson();
+ mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create( IAdasApiService.class, AdasConstant.HOST_PRODUCT );
}
public void addEventListener(AdasDataListener listener) {
@@ -145,7 +168,6 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
AutopilotStatus.ValuesBean autopilotStatusValues = autopilotStatus.getValues();
AutopilotStatus.ValuesBean mAutopilotStatus;
-
if (autopilotStatusValues != null) {
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel();
adasAIDLAutopilotStateModel.setReason(autopilotStatusValues.getReason());
@@ -154,14 +176,15 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
float speed = autopilotStatusValues.getSpeed();
adasAIDLAutopilotStateModel.setState(state);
adasAIDLAutopilotStateModel.setSpeed(speed);
-
+ mCurrentAutopilotStatus = state;
+ mCurrentAutopilotSpeed = speed;
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
listener.notifyAutopilotState(adasAIDLAutopilotStateModel);
}
}
- }
+ }
}
@Override
@@ -174,8 +197,12 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
if (endLatLon != null) {
AdasAIDLAutopilotArriveModel adasAIDLAutopilotArriveModel = new AdasAIDLAutopilotArriveModel();
adasAIDLAutopilotArriveModel.setCarType(result.getCarType());
- adasAIDLAutopilotArriveModel.setLat(endLatLon.getLat());
- adasAIDLAutopilotArriveModel.setLon(endLatLon.getLon());
+ double lon = endLatLon.getLon();
+ double lat = endLatLon.getLat();
+ adasAIDLAutopilotArriveModel.setLat(lat);
+ adasAIDLAutopilotArriveModel.setLon(lon);
+ Logger.d(TAG,"autopilotArrive reportSite");
+ reportSite(lon, lat);
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
listener.autopilotArrive(adasAIDLAutopilotArriveModel);
@@ -197,6 +224,7 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
for (AdasStatusListener listener :iAdasStatusListeners) {
listener.onServiceConnected();
}
+ updateDriveStatusTask();
}
@Override
@@ -206,4 +234,68 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
listener.onServiceDisconnected();
}
}
+
+ public void updateDriveStatusTask() {
+ Logger.d(TAG,"updateDriveStatusTask");
+ mdDisposable = Flowable.interval(0,5, TimeUnit.SECONDS)
+ .subscribeOn(Schedulers.io())
+ .unsubscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer() {
+ @Override
+ public void accept(@NonNull Long aLong) throws Exception {
+ updateDriveStatus();
+ }
+ });
+ }
+
+ private void updateDriveStatus() {
+ String sn = MoGoAiCloudClientConfig.getInstance().getSn();
+ AutonomousDriveStatusBean request = new AutonomousDriveStatusBean(sn, mCurrentAutopilotStatus, mCurrentAutopilotSpeed);
+ RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( request ) );
+ mAdasApiService.updateAutonomousDriveStatus(requestBody).
+ subscribeOn( Schedulers.io() ).observeOn( AndroidSchedulers.mainThread() )
+ .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) {
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ }
+
+ @Override
+ public void onSuccess(BaseData o) {
+ super.onSuccess(o);
+ Logger.d(TAG,"updateDriveStatus success");
+ }
+ });
+ }
+
+ private void reportSite( double lon, double lat) {
+ String sn = MoGoAiCloudClientConfig.getInstance().getSn();
+ ReportSiteBean reportSiteBean = new ReportSiteBean(sn, lon, lat);
+ RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( reportSiteBean ) );
+ mAdasApiService.updateReportSite(requestBody).
+ subscribeOn( Schedulers.io() ).observeOn( AndroidSchedulers.mainThread() )
+ .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) {
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ }
+
+ @Override
+ public void onSuccess(BaseData o) {
+ super.onSuccess(o);
+ Logger.d(TAG,"autopilotArrive success");
+ }
+ });
+ }
}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AutonomousDriveStatusBean.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AutonomousDriveStatusBean.java
index 4726d0c02e..686ae78eb0 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AutonomousDriveStatusBean.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AutonomousDriveStatusBean.java
@@ -1,5 +1,41 @@
package com.mogo.module.adas;
+
/**
* Created by XuYong on 2021/5/28 16:12
- */public class AutonomousDriveStatusBean {
+ */
+public class AutonomousDriveStatusBean {
+
+ private String sn;
+ private int status;
+ private float vehicleSpeed;
+
+ public AutonomousDriveStatusBean(String sn, int status, float vehicleSpeed) {
+ this.sn = sn;
+ this.status = status;
+ this.vehicleSpeed = vehicleSpeed;
+ }
+
+ public String getSn() {
+ return sn;
+ }
+
+ public void setSn(String sn) {
+ this.sn = sn;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public float getVehicleSpeed() {
+ return vehicleSpeed;
+ }
+
+ public void setVehicleSpeed(float vehicleSpeed) {
+ this.vehicleSpeed = vehicleSpeed;
+ }
}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasApiService.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasApiService.java
index 4330f5ab6b..d1c58c2da9 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasApiService.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasApiService.java
@@ -1,5 +1,24 @@
package com.mogo.module.adas;
+
+import com.mogo.commons.data.BaseData;
+
+import io.reactivex.Observable;
+import okhttp3.RequestBody;
+import retrofit2.http.Body;
+import retrofit2.http.Headers;
+import retrofit2.http.POST;
+
/**
* Created by XuYong on 2021/5/28 14:24
- */public class IAdasApiService {
+ */
+public interface IAdasApiService {
+
+ //上传自动驾驶状态接口
+ @Headers( {"Content-Type:application/json;charset=UTF-8"} )
+ @POST( "/yycp-carDataService/autonomousDrive/updateAutonomousDriveStatus" )
+ Observable updateAutonomousDriveStatus(@Body RequestBody requestBody );
+ //站点上报
+ @Headers( {"Content-Type:application/json;charset=UTF-8"} )
+ @POST( "/yycp-carDataService/autonomousDrive/reportSite" )
+ Observable updateReportSite(@Body RequestBody requestBody );
}
diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/ReportSiteBean.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/ReportSiteBean.java
index 470626a678..76677e00ba 100644
--- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/ReportSiteBean.java
+++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/ReportSiteBean.java
@@ -1,5 +1,40 @@
package com.mogo.module.adas;
+
/**
* Created by XuYong on 2021/5/31 16:24
- */public class ReportSiteBean {
+ */
+public class ReportSiteBean {
+ private String sn;
+ private double lon;
+ private double lat;
+
+ public ReportSiteBean(String sn, double lon, double lat) {
+ this.sn = sn;
+ this.lon = lon;
+ this.lat = lat;
+ }
+
+ public String getSn() {
+ return sn;
+ }
+
+ public void setSn(String sn) {
+ this.sn = sn;
+ }
+
+ public double getLon() {
+ return lon;
+ }
+
+ public void setLon(double lon) {
+ this.lon = lon;
+ }
+
+ public double getLat() {
+ return lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
}