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:
wangcongtao
2021-01-26 09:26:48 +08:00
26 changed files with 707 additions and 229 deletions

View File

@@ -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;
}
}

View File

@@ -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 );
}
}

View File

@@ -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 )
);
}
}
}