diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 740794bd48..771c1f74d7 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -89,7 +89,6 @@
-
diff --git a/config.gradle b/config.gradle
index 8deb68f3da..c7b043a9be 100644
--- a/config.gradle
+++ b/config.gradle
@@ -157,7 +157,7 @@ ext {
gpssimulatordebug : "com.mogo.module:module-gps-simulator-debug:${MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION}",
gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}",
- adasapi : "com.zhidao.autopilot.support:adas:1.0.6.9",
+ adasapi : "com.zhidao.autopilot.support:adas:1.0.6.12",
adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.1.5.2",
// 个人中心的SDK
diff --git a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java
index 900abf6ac8..8ec0a7531a 100644
--- a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java
+++ b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketManager.java
@@ -221,8 +221,6 @@ public class WebSocketManager implements IMogoWebSocketManager, ISocketMsgSettin
Logger.d(TAG, "重置下次上报时机: " + nextDelay);
}
}
-
-
}
}
diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle
index 67376f59f2..86ef2f6a4e 100644
--- a/libraries/map-custom/build.gradle
+++ b/libraries/map-custom/build.gradle
@@ -67,7 +67,7 @@ dependencies {
implementation project(':foudations:mogo-commons')
}
- implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.0.9'
+ implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.1.1'
// implementation 'com.zhidaoauto.machine:map:1.0.0-vr-test-3.4'
}
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
index 51601d6b39..563d7c50b9 100644
--- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
@@ -985,12 +985,16 @@ public class AMapViewWrapper implements IMogoMapView,
double acceleration = data.optDouble( "acceleration", -1 );
double yawRate = data.optDouble( "yawRate", -1 );
double speed = data.optDouble( "speed", -1 );
+ long systemTime = data.optLong( "systemTime" );
+ long receiverDataTime = data.optLong( "receiverDataTime" );
if ( lon == -1 ) {
return;
}
RTKAutopilotLocationBean bean = new RTKAutopilotLocationBean();
bean.setYaw_rate( yawRate );
bean.setHeading( heading );
+ bean.setSystemTime( systemTime );
+ bean.setReceiverDataTime( receiverDataTime );
bean.setHeading( heading );
bean.setAcceleration( acceleration );
bean.setAlt( alt );
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapMarkerWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapMarkerWrapper.java
index d829991122..5831237d89 100644
--- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapMarkerWrapper.java
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapMarkerWrapper.java
@@ -536,6 +536,10 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer {
@Override
public void addDynamicAnchorPosition( MogoLatLng latLng, long duration ) {
- mMarker.addDynamicAnchorPostion( new LonLatPoint( latLng.lon, latLng.lat ), ( int ) duration );
+ try {
+ mMarker.addDynamicAnchorPostion( new LonLatPoint( latLng.lon, latLng.lat ), ( int ) duration );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
}
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java
index 295aa0f3b1..7764049e38 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java
@@ -2,9 +2,6 @@ package com.mogo.module.common.drawer;
import android.content.Context;
import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
@@ -14,7 +11,7 @@ import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.R;
import com.mogo.module.common.constants.DataTypes;
-import com.mogo.service.adas.entity.ADASRecognizedListResult;
+import com.mogo.service.adas.entity.ADASRecognizedResult;
import java.util.ArrayList;
import java.util.HashMap;
@@ -39,7 +36,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
mContext = AbsMogoApplication.getApp();
}
- private Map< String, ADASRecognizedListResult > mLastPositions = new ConcurrentHashMap<>();
+ private Map< String, ADASRecognizedResult > mLastPositions = new ConcurrentHashMap<>();
public static AdasRecognizedResultDrawer getInstance() {
if ( sInstance == null ) {
@@ -68,13 +65,13 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
return mAdasRecognizedMarkersCaches.containsKey( uniqueKey );
}
- public void renderAdasRecognizedResult( List< ADASRecognizedListResult > resultList, boolean machineVision, double curSpeed ) {
+ public void renderAdasRecognizedResult( List< ADASRecognizedResult > resultList, boolean machineVision, double curSpeed ) {
if ( resultList == null || resultList.isEmpty() ) {
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers( DataTypes.TYPE_MARKER_ADAS );
return;
}
purgeAdasRecognizedData( resultList );
- for ( ADASRecognizedListResult recognizedListResult : resultList ) {
+ for ( ADASRecognizedResult recognizedListResult : resultList ) {
if ( recognizedListResult == null ) {
continue;
}
@@ -100,7 +97,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
mAdasRecognizedMarkersCaches.put( uniqueKey, marker );
mLastPositions.put( uniqueKey, recognizedListResult );
} else {
- ADASRecognizedListResult lastPosition = mLastPositions.get( uniqueKey );
+ ADASRecognizedResult lastPosition = mLastPositions.get( uniqueKey );
mLastPositions.put( uniqueKey, recognizedListResult );
if ( lastPosition != null ) {
List< MogoLatLng > points = new ArrayList<>();
@@ -108,6 +105,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
points.add( new MogoLatLng( lastPosition.lat, lastPosition.lon ) );
points.add( endLatLon );
if ( DebugConfig.isNotSmooth() ) {
+ marker.setRotateAngle( ( ( float ) recognizedListResult.heading ) );
marker.setPosition( recognizedListResult.lat, recognizedListResult.lon );
} else {
long interval = recognizedListResult.systemTime - lastPosition.systemTime;
@@ -117,13 +115,10 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
interval -= 25;
marker.startSmoothInMs( points, interval );
}
+ } else {
marker.setRotateAngle( ( ( float ) recognizedListResult.heading ) );
marker.setPosition( recognizedListResult.lat, recognizedListResult.lon );
- } else {
- marker.setPosition( recognizedListResult.lat, recognizedListResult.lon );
}
-// marker.setRotateAngle( ( ( float ) recognizedListResult.heading ) );
-// marker.setPosition( recognizedListResult.lat, recognizedListResult.lon );
}
showSelfSpeed( mContext,
marker,
@@ -138,7 +133,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
*
* @param resultList
*/
- private void purgeAdasRecognizedData( List< ADASRecognizedListResult > resultList ) {
+ private void purgeAdasRecognizedData( List< ADASRecognizedResult > resultList ) {
if ( resultList == null || resultList.isEmpty() ) {
return;
}
@@ -146,7 +141,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
return;
}
Map< String, IMogoMarker > existMarker = new HashMap<>();
- for ( ADASRecognizedListResult recognizedListResult : resultList ) {
+ for ( ADASRecognizedResult recognizedListResult : resultList ) {
if ( recognizedListResult == null ) {
continue;
}
@@ -170,7 +165,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
}
}
- private IMogoMarker drawAdasRecognizedDataMarker( ADASRecognizedListResult recognizedListResult,
+ private IMogoMarker drawAdasRecognizedDataMarker( ADASRecognizedResult recognizedListResult,
boolean machineVision,
double curSpeed ) {
if ( recognizedListResult == null ) {
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java
index 2fdd3d62a5..6086dd662d 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java
@@ -188,16 +188,9 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen
CloudRoadData lastPosition = mLastPositions.get( uniqueKey );
if ( lastPosition != null ) {
if ( lastPosition.equals( cloudRoadData ) ) {
- if ( ( ( int ) cloudRoadData.getSpeed() ) == 0 ) {
-// MapCameraPosition position = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getMapCameraPosition();
-// if ( position != null ) {
-// marker.setRotateAngle( 360 - ( float ) cloudRoadData.getHeading() - position.getBearing() );
-// } else {
-// }
- marker.setRotateAngle( ( ( float ) cloudRoadData.getHeading() ) );
- }
Logger.d( TAG, "保持位置 - %s", uniqueKey );
-// marker.setPosition( lastPosition.getLat(), lastPosition.getLon() );
+ marker.setRotateAngle( ( ( float ) cloudRoadData.getHeading() ) );
+ marker.setPosition( lastPosition.getLat(), lastPosition.getLon() );
} else {
List< MogoLatLng > points = new ArrayList<>();
points.add( new MogoLatLng( lastPosition.getLat(), lastPosition.getLon() ) );
@@ -341,7 +334,7 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen
private int getVrModel( CloudRoadData data ) {
switch ( data.getFromType() ) {
case CloudRoadData.FROM_ADAS:
- return R.raw.taxi;
+ return R.raw.cargrey;
case CloudRoadData.FROM_ROAD_UNIT:
return R.raw.cargreen;
case CloudRoadData.FROM_MY_LOCATION:
@@ -395,7 +388,6 @@ class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClickListen
driverInfo.setLat( data.getLat() );
driverInfo.setLon( data.getLon() );
driverInfo.setSn( data.getSn() );
-
ICarsChattingProvider carChatting = CallChatApi.getInstance().getApiProvider();
if ( carChatting != null ) {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
index f7d779f49d..ce1fe43f27 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
@@ -67,6 +67,7 @@ import com.mogo.utils.NetworkUtils;
import com.mogo.utils.WorkThreadHandler;
import com.mogo.utils.logger.Logger;
+import org.json.JSONException;
import org.json.JSONObject;
import java.util.List;
@@ -970,6 +971,16 @@ public class MogoServices implements IMogoMapListener,
data.putOpt( "heading", stateInfo.getValues().getHeading() );
data.putOpt( "acceleration", stateInfo.getValues().getAcceleration() );
data.putOpt( "yawRate", stateInfo.getValues().getYaw_rate() );
+ try {
+ data.putOpt( "systemTime", Long.valueOf( stateInfo.getValues().getSystemTime() ) );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ try {
+ data.putOpt( "receiverDataTime", Long.valueOf( stateInfo.getValues().getReceiverDataTime() ) );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().syncLocation2Map( data );
SnapshotUploadInTime.getInstance().syncAdasLocationInfo( data );
} catch ( Exception e ) {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java
index 44b58bc691..a6acfaaa9c 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java
@@ -60,23 +60,26 @@ public class MogoRTKLocation {
}
public interface RTKLocationListener {
- void onLocationChanged(List cloudLocationInfos);
+ void onLocationChanged(int dataAccuracy, List cloudLocationInfos);
}
private void sendLocationData() {
List list = null;
+ int dataAccuracy = 0;
if ( DebugConfig.isUseAdasRtkLocationInfo() ) {
+ dataAccuracy = 1;
list = new ArrayList<>(SnapshotUploadInTime.getInstance().getSendLocationData());
}
if ( list == null || list.isEmpty() ) {
+ dataAccuracy = 0;
list = new ArrayList<>(cacheList);
}
if (cacheList != null && cacheList.size() > 0) {
cacheList.clear();
}
if (rtkLocationListener != null) {
- rtkLocationListener.onLocationChanged(list);
+ rtkLocationListener.onLocationChanged(dataAccuracy, list);
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java
index 8ad7c4db79..54e3e9407a 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/uploadintime/SnapshotUploadInTime.java
@@ -67,13 +67,13 @@ class SnapshotUploadInTime implements MogoRTKLocation.RTKLocationListener {
}
@Override
- public void onLocationChanged( List< CloudLocationInfo > cloudLocationInfos ) {
- startSendCarLocationAndAdasRecognizedResult2Server( cloudLocationInfos );
+ public void onLocationChanged( int dataAccuracy, List< CloudLocationInfo > cloudLocationInfos ) {
+ startSendCarLocationAndAdasRecognizedResult2Server( dataAccuracy, cloudLocationInfos );
}
private CloudLocationInfo mLastInfo;
- private void startSendCarLocationAndAdasRecognizedResult2Server( List< CloudLocationInfo > cloudLocationInfo ) {
+ private void startSendCarLocationAndAdasRecognizedResult2Server( int dataAccuracy, List< CloudLocationInfo > cloudLocationInfo ) {
CloudLocationInfo lastInfo = null;
// 如果数组内容不为空,就用数组最后一个值
if ( cloudLocationInfo != null && !cloudLocationInfo.isEmpty() ) {
@@ -88,6 +88,7 @@ class SnapshotUploadInTime implements MogoRTKLocation.RTKLocationListener {
// 定位点预测纠偏
lastInfo = SimpleLocationCorrectStrategy.getInstance().correct( lastInfo );
locationResult = new LocationResult();
+ locationResult.dataAccuracy = dataAccuracy;
if ( lastInfo != null ) {
locationResult.lastCoordinate = lastInfo;
locationResult.mortonCode = MortonCode.wrapEncodeMorton( lastInfo.getLon(), lastInfo.getLat() );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/websocket/LocationResult.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/websocket/LocationResult.java
index 04d85a4372..8d0e4d2709 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/websocket/LocationResult.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/websocket/LocationResult.java
@@ -29,7 +29,12 @@ class LocationResult {
public CloudLocationInfo lastCoordinate;
/**
- * 内的连续定位点
+ * 连续定位点
*/
public List< CloudLocationInfo > coordinates;
+
+ /**
+ * 数据来源精度 0 - 普通定位、1 - 高精定位
+ */
+ public int dataAccuracy = 0;
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasRecognizedDataCallback.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasRecognizedDataCallback.java
index 301b94d0fc..ff92b13160 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasRecognizedDataCallback.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasRecognizedDataCallback.java
@@ -1,6 +1,5 @@
package com.mogo.service.adas;
-import com.mogo.service.adas.entity.ADASRecognizedListResult;
import com.mogo.service.adas.entity.ADASRecognizedResult;
import java.util.List;
@@ -16,5 +15,5 @@ public interface IMogoAdasRecognizedDataCallback {
*
* @param resultList 具体识别的物体数据
*/
- void onAdasDataCallback( List< ADASRecognizedListResult > resultList );
+ void onAdasDataCallback( List< ADASRecognizedResult > resultList );
}
\ No newline at end of file
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java
index e8ea32512d..c0590f9db9 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java
@@ -55,6 +55,10 @@ public class ADASCarStateInfo implements Serializable {
//gps 时间
private String satelliteTime;
+ private String systemTime;
+ //接收到数据的时间
+ private String receiverDataTime;
+
public float getGnss_speed() {
return gnss_speed;
}
@@ -119,6 +123,22 @@ public class ADASCarStateInfo implements Serializable {
this.yaw_rate = yaw_rate;
}
+ public String getSystemTime() {
+ return systemTime;
+ }
+
+ public void setSystemTime( String systemTime ) {
+ this.systemTime = systemTime;
+ }
+
+ public String getReceiverDataTime() {
+ return receiverDataTime;
+ }
+
+ public void setReceiverDataTime( String receiverDataTime ) {
+ this.receiverDataTime = receiverDataTime;
+ }
+
@Override
public String toString() {
return "ValuesBean{" +
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASRecognizedListResult.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASRecognizedListResult.java
deleted file mode 100644
index 7c5d8e06b4..0000000000
--- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASRecognizedListResult.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.mogo.service.adas.entity;
-
-import java.util.List;
-
-public
-/**
- * @author congtaowang
- * @since 2020/10/25
- *
- * adas 识别物体参数
- */
-class ADASRecognizedListResult {
-
- /**
- * 识别物体类型
- */
- public int type;
-
- /**
- * 识别物体唯一标识
- */
- public String uuid;
- /**
- * 方向
- */
- public double heading;
- /**
- * 速度
- */
- public double speed;
- /**
- * x 轴距离
- */
- public double distanceX;
-
- /**
- * y 轴距离
- */
- public double distanceY;
-
- /**
- * 同一个uuid 1帧内所对应的坐标
- */
- public double lon;
- public double lat;
-
- public long systemTime;
-}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASRecognizedResult.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASRecognizedResult.java
index 774eff545a..aab85f8084 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASRecognizedResult.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASRecognizedResult.java
@@ -69,4 +69,23 @@ class ADASRecognizedResult {
*/
public long mortonCode;
+ /**
+ * x 轴距离
+ */
+ public double distanceX;
+
+ /**
+ * y 轴距离
+ */
+ public double distanceY;
+
+ /**
+ * 实际直线距离
+ */
+ public double distance;
+
+ /**
+ * 数据来源精度 0 - 普通定位、1 - 高精定位
+ */
+ public int dataAccuracy;
}
diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle
index bf351cdb25..ceb7918bc7 100644
--- a/services/mogo-service/build.gradle
+++ b/services/mogo-service/build.gradle
@@ -42,7 +42,7 @@ dependencies {
annotationProcessor rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.adasapi
implementation rootProject.ext.dependencies.adasconfigapi
- implementation "com.zhidao.support.adas:high:1.1.5.2"
+ implementation "com.zhidao.support.adas:high:1.1.5.9"
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
implementation rootProject.ext.dependencies.mogomapapi
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/AdasObjectUtils.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/AdasObjectUtils.java
index 1329234417..722fac79e4 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/AdasObjectUtils.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/AdasObjectUtils.java
@@ -1,19 +1,14 @@
package com.mogo.service.impl.adas;
-import android.text.TextUtils;
-
import com.mogo.commons.utils.MortonCode;
-import com.mogo.service.adas.entity.ADASRecognizedListResult;
import com.mogo.service.adas.entity.ADASRecognizedResult;
import com.mogo.service.adas.entity.ADASWarnMessage;
import com.mogo.utils.CoordinateUtils;
-import com.zhidao.support.adas.high.bean.RectInfo;
+import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
public
/**
@@ -40,89 +35,49 @@ class AdasObjectUtils {
return warnMessage;
}
- public static List< ADASRecognizedResult > fromAdasObject( RectInfo rectInfo ) {
- if ( rectInfo == null
- || rectInfo.getModels() == null
- || rectInfo.getModels().isEmpty() ) {
- return null;
- }
-
- List< ADASRecognizedResult > recognizedResults = new ArrayList<>();
- for ( RectInfo.RectBean model : rectInfo.getModels() ) {
- try {
- ADASRecognizedResult result = fromAdasObject( model );
- if ( result != null ) {
- recognizedResults.add( result );
- }
- } catch ( Exception e ) {
-
- }
- }
- return recognizedResults;
- }
-
- public static ADASRecognizedResult fromAdasObject( RectInfo.RectBean rectBean ) {
- if ( rectBean == null ) {
- return null;
- }
- if ( rectBean.getLat() < 1 ) {
- return null;
- }
- ADASRecognizedResult result = new ADASRecognizedResult();
- result.uuid = rectBean.getUuid();
-
-
- double amapCoord[] = CoordinateUtils.transformWgsToGcj( rectBean.getLat(), rectBean.getLon() );
- if ( amapCoord != null ) {
- result.lat = amapCoord[1];
- result.lon = amapCoord[0];
- } else {
- result.lat = rectBean.getLat();
- result.lon = rectBean.getLon();
- }
- result.type = Integer.valueOf( rectBean.getType() );
- result.heading = rectBean.getHeading();
- result.systemTime = Long.valueOf( rectBean.getSystemTime() );
- result.satelliteTime = Long.valueOf( rectBean.getSatelliteTime() );
- result.alt = rectBean.getAlt();
- result.color = rectBean.getColor();
- result.speed = rectBean.getSpeed();
- result.carId = rectBean.getCarId();
- result.mortonCode = MortonCode.wrapEncodeMorton( result.lon, result.lat );
- return result;
- }
-
- public static List< ADASRecognizedListResult > regroupData( List< RectInfo > datums ) {
+ public static List< ADASRecognizedResult > regroupData( List< AdasAIDLOwnerCarRectModel > datums ) {
if ( datums == null || datums.isEmpty() ) {
return null;
}
- List< ADASRecognizedListResult > recognizedListResults = new ArrayList<>();
- for ( RectInfo rectInfo : datums ) {
- if ( rectInfo == null || rectInfo.getModels() == null || rectInfo.getModels().isEmpty() ) {
+ List< ADASRecognizedResult > recognizedListResults = new ArrayList<>();
+ for ( AdasAIDLOwnerCarRectModel model : datums ) {
+ if ( model == null ) {
continue;
}
- for ( RectInfo.RectBean model : rectInfo.getModels() ) {
- if ( model == null || TextUtils.isEmpty( model.getUuid() ) ) {
- continue;
- }
- ADASRecognizedListResult recognizedListResult = new ADASRecognizedListResult();
- recognizedListResult.heading = model.getHeading();
- recognizedListResult.speed = model.getSpeed();
- recognizedListResult.type = Integer.valueOf( model.getType() );
- recognizedListResult.uuid = model.getUuid();
- recognizedListResult.distanceX = model.getDistance_x();
- recognizedListResult.distanceY = model.getDistance_y();
- double amapCoord[] = CoordinateUtils.transformWgsToGcj( model.getLat(), model.getLon() );
- recognizedListResult.lat = amapCoord[1];
- recognizedListResult.lon = amapCoord[0];
- try {
- recognizedListResult.systemTime = Long.valueOf( model.getSystemTime() );
- } catch ( Exception e ) {
- recognizedListResult.systemTime = System.currentTimeMillis();
- }
+ ADASRecognizedResult recognizedListResult = fromAdasObject( model );
+ if ( recognizedListResult != null ) {
recognizedListResults.add( recognizedListResult );
}
}
return recognizedListResults;
}
+
+ public static ADASRecognizedResult fromAdasObject( AdasAIDLOwnerCarRectModel model ) {
+ if ( model == null ) {
+ return null;
+ }
+ ADASRecognizedResult result = new ADASRecognizedResult();
+ result.uuid = model.getUuid();
+
+ double amapCoord[] = CoordinateUtils.transformWgsToGcj( model.getLat(), model.getLon() );
+ if ( amapCoord != null ) {
+ result.lat = amapCoord[1];
+ result.lon = amapCoord[0];
+ } else {
+ result.lat = model.getLat();
+ result.lon = model.getLon();
+ }
+ result.type = Integer.valueOf( model.getType() );
+ result.heading = model.getHeading();
+ result.systemTime = Long.valueOf( model.getSystemTime() );
+ result.satelliteTime = Long.valueOf( model.getSatelliteTime() );
+ result.alt = model.getAlt();
+ result.color = model.getColor();
+ result.speed = model.getSpeed();
+ result.carId = model.getCarId();
+ result.dataAccuracy = model.dataAccuracy;
+ result.distance = model.distance;
+ result.mortonCode = MortonCode.wrapEncodeMorton( result.lon, result.lat );
+ return result;
+ }
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
index 0826c0c016..091487d27e 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
@@ -25,7 +25,6 @@ import com.mogo.service.adas.IMogoAdasRecognizedDataCallback;
import com.mogo.service.adas.IMogoAdasWarnMessageCallback;
import com.mogo.service.adas.RemoteControlAutoPilotParameters;
import com.mogo.service.adas.entity.ADASCarStateInfo;
-import com.mogo.service.adas.entity.ADASRecognizedListResult;
import com.mogo.service.adas.entity.ADASRecognizedResult;
import com.mogo.service.adas.entity.ADASWarnMessage;
import com.mogo.service.adas.entity.AdasOCHData;
@@ -46,6 +45,8 @@ import com.zhidao.autopilot.support.api.IAutopilotServiceStatusListener;
import com.zhidao.autopilot.support.api.IAutopolitDataCallBack;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
+import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
+import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarStateModel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
@@ -54,10 +55,7 @@ import com.zhidao.support.adas.high.msg.MyMessageFactory;
import org.json.JSONException;
import org.json.JSONObject;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -112,33 +110,12 @@ public class MogoADASController implements IMogoADASController {
private IMogoAdasCarDataCallback mMogoAdasCarDataCallback;
- private RectInfo mLastFrameData;
+ private List< AdasAIDLOwnerCarRectModel > mLastFrameData;
private OnAdasListener mOnAdasListener = new OnAdasListenerAdapter() {
- LogWriter logWriter = null;
-
@Override
public void onRectData( RectInfo rectInfo ) {
- // 物体识别返回
- Logger.d( TAG, "onRectData = %s", rectInfo.toString() );
- if ( logWriter == null ) {
- SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddhhmmss" );
- String date = sdf.format( new Date() );
- String path = context.getExternalCacheDir().getAbsolutePath() + "/adaslog/" + date + "/log.txt";
- Logger.d( TAG, path );
- logWriter = new LogWriter( path );
- }
- mLastFrameData = rectInfo;
- logWriter.write( GsonUtil.jsonFromObject( rectInfo ) );
- // 仅在 vr 模式下显示 adas 识别车辆
- if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
- return;
- }
- if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageLaunched() ) {
- return;
- }
- handleAdasRecognizedData( rectInfo );
}
@Override
@@ -167,34 +144,26 @@ public class MogoADASController implements IMogoADASController {
}
};
- private long mLastRecordSeconds = 0L;
-
-
- /**
- * 缓存容器
- */
- List< RectInfo > mCacheRecognizedDataSet = new ArrayList<>();
private IMogoAdasOCHCallback mAdasOCHCallback;
/**
* 处理数据,将识别到的物体分组,然后每1s进行一次回调
* 时间:系统时间
*
- * @param rectInfo
+ * @param models
*/
- private void handleAdasRecognizedData( RectInfo rectInfo ) {
- if ( rectInfo == null
- || rectInfo.getModels() == null
- || rectInfo.getModels().isEmpty() ) {
+ private void handleAdasRecognizedData( List< AdasAIDLOwnerCarRectModel > models ) {
+ if ( models == null
+ || models.isEmpty() ) {
invokeCallbackPerSecond( null );
return;
}
- invokeCallbackPerSecond( Arrays.asList( rectInfo ) );
+ invokeCallbackPerSecond( models );
}
- private void invokeCallbackPerSecond( List< RectInfo > data ) {
- List< RectInfo > newRef = data;
- List< ADASRecognizedListResult > recognizedListResults = AdasObjectUtils.regroupData( newRef );
+ private void invokeCallbackPerSecond( List< AdasAIDLOwnerCarRectModel > models ) {
+ List< AdasAIDLOwnerCarRectModel > newRef = models;
+ List< ADASRecognizedResult > recognizedListResults = AdasObjectUtils.regroupData( newRef );
if ( !mMogoAdasRecognizedDataCallbacks.isEmpty() ) {
for ( IMogoAdasRecognizedDataCallback callback : mMogoAdasRecognizedDataCallbacks ) {
if ( callback == null ) {
@@ -330,27 +299,31 @@ public class MogoADASController implements IMogoADASController {
}
}
- LogWriter logWriter;
+ @Override
+ @Deprecated
+ public void ownerCarStateInfo( String ownerCarStateInfo ) {
+ }
@Override
- public void ownerCarStateInfo( String ownerCarStateInfo ) {
- if ( logWriter == null ) {
- SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddhhmmss" );
- String date = sdf.format( new Date() );
- String path = context.getExternalCacheDir().getAbsolutePath() + "/adaslog/" + date + "/ownerCarStateInfo.txt";
- Logger.d( TAG, path );
- logWriter = new LogWriter( path );
- }
- logWriter.write( ownerCarStateInfo );
- ADASCarStateInfo stateInfo = GsonUtil.objectFromJson( ownerCarStateInfo, ADASCarStateInfo.class );
- try {
- mLastLon = stateInfo.getValues().getLon();
- mLastLat = stateInfo.getValues().getLat();
- } catch ( Exception e ) {
- e.printStackTrace();
- }
+ public void notifyOwnerCarState( AdasAIDLOwnerCarStateModel ownerCarStateModel ) {
+ ADASCarStateInfo stateInf = new ADASCarStateInfo();
+ stateInf.setAction( "state" );
+ ADASCarStateInfo.ValuesBean bean = new ADASCarStateInfo.ValuesBean();
+ bean.setSatelliteTime( ownerCarStateModel.getSatelliteTime() );
+ bean.setAcceleration( ownerCarStateModel.getAcceleration() );
+ bean.setAlt( ownerCarStateModel.getAlt() );
+ bean.setGnss_speed( ownerCarStateModel.getGnss_speed() );
+ bean.setHeading( ownerCarStateModel.getHeading() );
+ bean.setLat( ownerCarStateModel.getLat() );
+ bean.setLon( ownerCarStateModel.getLon() );
+ bean.setReceiverDataTime( ownerCarStateModel.getReceiverDataTime() );
+ bean.setSystemTime( ownerCarStateModel.getSystemTime() );
+ bean.setYaw_rate( ownerCarStateModel.getYaw_rate() );
+ stateInf.setValues( bean );
+ mLastLon = ownerCarStateModel.getLon();
+ mLastLat = ownerCarStateModel.getLat();
if ( mMogoAdasCarDataCallback != null ) {
- mMogoAdasCarDataCallback.onAdasCarDataCallback( stateInfo );
+ mMogoAdasCarDataCallback.onAdasCarDataCallback( stateInf );
}
}
@@ -361,6 +334,28 @@ public class MogoADASController implements IMogoADASController {
mAdasOCHCallback.onStateChanged( autopilotStateModel.getState(), autopilotStateModel.getReason() );
}
}
+
+ @Override
+ public void notifyOwnerCarRect( List< AdasAIDLOwnerCarRectModel > ownerCarStateRectList ) {
+ // 物体识别返回
+ Logger.d( TAG, "onRectData = %s", ownerCarStateRectList.toString() );
+ if ( mLastFrameData == null ) {
+ mLastFrameData = new ArrayList<>();
+ }
+ try {
+ mLastFrameData.addAll( ownerCarStateRectList );
+ } catch ( Exception e ) {
+
+ }
+ // 仅在 vr 模式下显示 adas 识别车辆
+ if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
+ return;
+ }
+ if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageLaunched() ) {
+ return;
+ }
+ handleAdasRecognizedData( ownerCarStateRectList );
+ }
};
AutopilotServiceManage.getInstance().registerAutopilotDataListener( mAutopolitDataCallBack );
}
@@ -624,10 +619,14 @@ public class MogoADASController implements IMogoADASController {
@Override
public List< ADASRecognizedResult > getLastADASRecognizedResult() {
- RectInfo rectInfo = mLastFrameData;
- List< ADASRecognizedResult > recognizedResultList = null;
+ if ( mLastFrameData == null ) {
+ return null;
+ }
try {
- recognizedResultList = AdasObjectUtils.fromAdasObject( rectInfo );
+ List< AdasAIDLOwnerCarRectModel > data = new ArrayList<>( mLastFrameData );
+ mLastFrameData = null;
+ List< ADASRecognizedResult > recognizedResultList = null;
+ recognizedResultList = AdasObjectUtils.regroupData( data );
return recognizedResultList;
} catch ( Exception e ) {
return null;
@@ -681,7 +680,7 @@ public class MogoADASController implements IMogoADASController {
@Override
public int getAutopilotStatus() {
- if (mockState != -2) {
+ if ( mockState != -2 ) {
return mockState;
}
int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE;
@@ -694,16 +693,17 @@ public class MogoADASController implements IMogoADASController {
}
private int mockState = -2;
+
@Override
public void mockOchStatus( int state, String reason ) {
if ( state == -1 ) {
if ( mAdasOCHCallback != null ) {
mAdasOCHCallback.onArriveAt( new AdasOCHData( 1, 1d, 1d ) );
}
- }else {
+ } else {
mockState = state;
- if (mAdasOCHCallback != null) {
- mAdasOCHCallback.onStateChanged(state, reason);
+ if ( mAdasOCHCallback != null ) {
+ mAdasOCHCallback.onStateChanged( state, reason );
}
}
}
@@ -712,7 +712,7 @@ public class MogoADASController implements IMogoADASController {
public void cancelAutopilot() {
try {
AutopilotServiceManage.getInstance().cancelAutopilot();
- } catch (RemoteException e) {
+ } catch ( RemoteException e ) {
e.printStackTrace();
}
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/OnAdasListenerAdapter.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/OnAdasListenerAdapter.java
index 9e878c3d5d..a59b38b850 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/OnAdasListenerAdapter.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/OnAdasListenerAdapter.java
@@ -30,6 +30,7 @@ abstract class OnAdasListenerAdapter implements OnAdasListener {
}
@Override
+ @Deprecated
public void onRectData( RectInfo rectInfo ) {
}