Merge branch 'qa_merge_shunyi_vr_map' into dev2
# Conflicts: # config.gradle # modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/CloudLocationInfo.java # services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java # services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
This commit is contained in:
@@ -65,17 +65,17 @@ class AdasObjectUtils {
|
||||
if ( rectBean == null ) {
|
||||
return null;
|
||||
}
|
||||
if( rectBean.getLat() < 1){
|
||||
if ( rectBean.getLat() < 1 ) {
|
||||
return null;
|
||||
}
|
||||
ADASRecognizedResult result = new ADASRecognizedResult();
|
||||
result.uuid = rectBean.getUuid();
|
||||
|
||||
|
||||
double amapCoord[] = CoordinateUtils.transformFromWGSToGCJ( rectBean.getLat(), rectBean.getLon() );
|
||||
double amapCoord[] = CoordinateUtils.transformWgsToGcj( rectBean.getLat(), rectBean.getLon() );
|
||||
if ( amapCoord != null ) {
|
||||
result.lat = amapCoord[0];
|
||||
result.lon = amapCoord[1];
|
||||
result.lat = amapCoord[1];
|
||||
result.lon = amapCoord[0];
|
||||
} else {
|
||||
result.lat = rectBean.getLat();
|
||||
result.lon = rectBean.getLon();
|
||||
@@ -96,37 +96,33 @@ class AdasObjectUtils {
|
||||
if ( datums == null || datums.isEmpty() ) {
|
||||
return null;
|
||||
}
|
||||
Map< String, ADASRecognizedListResult > result = new HashMap<>();
|
||||
List< ADASRecognizedListResult > recognizedListResults = new ArrayList<>();
|
||||
for ( RectInfo rectInfo : datums ) {
|
||||
if ( rectInfo == null || rectInfo.getModels() == null || rectInfo.getModels().isEmpty() ) {
|
||||
continue;
|
||||
}
|
||||
List< RectInfo.RectBean > models = rectInfo.getModels();
|
||||
for ( RectInfo.RectBean model : models ) {
|
||||
for ( RectInfo.RectBean model : rectInfo.getModels() ) {
|
||||
if ( model == null || TextUtils.isEmpty( model.getUuid() ) ) {
|
||||
continue;
|
||||
}
|
||||
ADASRecognizedListResult recognizedListResult = null;
|
||||
if ( !result.containsKey( model.getUuid() ) ) {
|
||||
recognizedListResult = new ADASRecognizedListResult();
|
||||
recognizedListResult.latLonList = new ArrayList<>();
|
||||
recognizedListResult.heading = model.getHeading();
|
||||
recognizedListResult.speed = model.getSpeed();
|
||||
recognizedListResult.type = Integer.valueOf( model.getType() );
|
||||
recognizedListResult.uuid = model.getUuid();
|
||||
result.put( model.getUuid(), recognizedListResult );
|
||||
} else {
|
||||
recognizedListResult = result.get( model.getUuid() );
|
||||
recognizedListResult.distanceX = model.getDistance_x();
|
||||
recognizedListResult.distanceY = model.getDistance_y();
|
||||
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();
|
||||
}
|
||||
double amapCoord[] = CoordinateUtils.transformFromWGSToGCJ( model.getLat(), model.getLon() );
|
||||
recognizedListResult.latLonList.add( new ADASRecognizedListResult.LatLon( amapCoord[0], amapCoord[1] ) );
|
||||
recognizedListResults.add( recognizedListResult );
|
||||
}
|
||||
}
|
||||
if ( result.isEmpty() ) {
|
||||
return null;
|
||||
}
|
||||
return new ArrayList<>( result.values() );
|
||||
return recognizedListResults;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.mogo.service.impl.adas;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
|
||||
import com.mogo.utils.WorkThreadHandler;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2021/1/22
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
class LogWriter {
|
||||
|
||||
|
||||
public static final int MAX_SIZE = 6 * 1024 * 1924;
|
||||
|
||||
private final String path;
|
||||
private Handler writeHandler = null;
|
||||
|
||||
public LogWriter( String path ) {
|
||||
this.path = path;
|
||||
File file = new File( path );
|
||||
if ( !file.exists() ) {
|
||||
try {
|
||||
if ( !file.getParentFile().exists() ) {
|
||||
file.getParentFile().mkdirs();
|
||||
}
|
||||
file.createNewFile();
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
writeHandler = new Handler( WorkThreadHandler.newInstance( "Logger-Writer" ).getLooper() ) {
|
||||
@Override
|
||||
public void handleMessage( Message msg ) {
|
||||
super.handleMessage( msg );
|
||||
if ( msg.what == 100 ) {
|
||||
writeImpl( ( ( String ) msg.obj ) );
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void writeImpl( Object log ) {
|
||||
try {
|
||||
FileWriter fw = new FileWriter( path, true );
|
||||
fw.append( System.currentTimeMillis() + " - " );
|
||||
if ( log instanceof CharSequence ) {
|
||||
fw.append( ( ( CharSequence ) log ) );
|
||||
} else {
|
||||
fw.append( GsonUtil.jsonFromObject( log ) );
|
||||
}
|
||||
fw.append( "\n" );
|
||||
fw.flush();
|
||||
fw.close();
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void write( Object log ) {
|
||||
Message msg = Message.obtain();
|
||||
msg.obj = log;
|
||||
msg.what = 100;
|
||||
writeHandler.sendMessage( msg );
|
||||
}
|
||||
}
|
||||
@@ -20,11 +20,13 @@ import com.mogo.module.common.map.MyLocationUtil;
|
||||
import com.mogo.module.common.utils.CarSeries;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.adas.IMogoADASController;
|
||||
import com.mogo.service.adas.IMogoAdasCarDataCallback;
|
||||
import com.mogo.service.adas.IMogoAdasDataCallback;
|
||||
import com.mogo.service.adas.IMogoAdasOCHCallback;
|
||||
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;
|
||||
@@ -46,6 +48,7 @@ import com.zhidao.autopilot.support.api.IAutopilotServiceStatusListener;
|
||||
import com.zhidao.autopilot.support.api.IAutopolitDataCallBack;
|
||||
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
|
||||
import com.zhidao.support.adas.high.OnAdasListener;
|
||||
import com.zhidao.support.adas.high.bean.CarStateInfo;
|
||||
import com.zhidao.support.adas.high.bean.RectInfo;
|
||||
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
|
||||
import com.zhidao.support.adas.high.msg.MyMessageFactory;
|
||||
@@ -53,8 +56,10 @@ 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;
|
||||
@@ -108,15 +113,27 @@ public class MogoADASController implements IMogoADASController {
|
||||
*/
|
||||
private List< IMogoAdasRecognizedDataCallback > mMogoAdasRecognizedDataCallbacks = new CopyOnWriteArrayList<>();
|
||||
|
||||
private IMogoAdasCarDataCallback mMogoAdasCarDataCallback;
|
||||
|
||||
private RectInfo 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;
|
||||
@@ -315,6 +332,24 @@ public class MogoADASController implements IMogoADASController {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
LogWriter logWriter;
|
||||
|
||||
@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 );
|
||||
if ( mMogoAdasCarDataCallback != null ) {
|
||||
mMogoAdasCarDataCallback.onAdasCarDataCallback( stateInfo );
|
||||
}
|
||||
}
|
||||
};
|
||||
AutopilotServiceManage.getInstance().registerAutopilotDataListener( mAutopolitDataCallBack );
|
||||
}
|
||||
@@ -595,6 +630,11 @@ public class MogoADASController implements IMogoADASController {
|
||||
mMogoAdasRecognizedDataCallbacks.remove( callback );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAdasCarDataCallback( IMogoAdasCarDataCallback carDataCallback ) {
|
||||
mMogoAdasCarDataCallback = carDataCallback;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addAdasOCHCallback( IMogoAdasOCHCallback callback ) {
|
||||
@@ -605,4 +645,15 @@ public class MogoADASController implements IMogoADASController {
|
||||
public void removeAdasOCHCallback() {
|
||||
mAdasOCHCallback = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotArriveLike( int carType ) {
|
||||
if ( mAdasOCHCallback != null ) {
|
||||
mAdasOCHCallback.onArriveAt( new AdasOCHData(
|
||||
carType,
|
||||
116.09888888,
|
||||
39.999999 )
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user