完成新架构的域控制器的监听及数据改造

Signed-off-by: 董宏宇 <martindhy@gmail.com>
This commit is contained in:
董宏宇
2021-10-18 19:16:41 +08:00
parent a4650ca514
commit 8a3e122518
76 changed files with 1895 additions and 1516 deletions

View File

@@ -53,7 +53,7 @@ import com.mogo.module.service.ttsConfig.TtsConfigModleData;
import com.mogo.realtime.api.MoGoAiCloudRealTime;
import com.mogo.service.adas.IMogoADASController;
import com.mogo.service.adas.IMogoAdasCarDataCallback;
import com.mogo.service.adas.entity.ADASCarStateInfo;
import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo;
import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.intent.IMogoIntentListener;
@@ -970,7 +970,7 @@ public class MogoServices implements IMogoMapListener,
}
@Override
public void onAdasCarDataCallback( ADASCarStateInfo stateInfo ) {
public void onAdasCarDataCallback( AutopilotCarStateInfo stateInfo ) {
if(TimeDelayUploadManager.getInstance().isMock()){ //模拟数据时,不更新由工控机传输的自车位置
return;

View File

@@ -2,7 +2,7 @@ package com.mogo.module.service.autopilot;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.eagle.core.data.autopilot.AutoPilotControlParameters;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
import com.mogo.service.cloud.socket.IMogoSocketManager;
import com.mogo.utils.logger.Logger;
@@ -23,14 +23,14 @@ class AutoPilotRemoteController {
private IMogoSocketManager mMogoSocketManager;
private IMogoOnMessageListener<AutoPilotControlParameters> mParametersListener = new IMogoOnMessageListener<AutoPilotControlParameters>() {
private IMogoOnMessageListener<AutopilotControlParameters> mParametersListener = new IMogoOnMessageListener<AutopilotControlParameters>() {
@Override
public Class<AutoPilotControlParameters> target() {
return AutoPilotControlParameters.class;
public Class<AutopilotControlParameters> target() {
return AutopilotControlParameters.class;
}
@Override
public void onMsgReceived( AutoPilotControlParameters obj ) {
public void onMsgReceived( AutopilotControlParameters obj ) {
if ( obj == null ) {
Logger.e( TAG, "远端控制参数为null", new NullPointerException() );
return;

View File

@@ -1,142 +0,0 @@
package com.mogo.module.service.carinfo;
import java.io.Serializable;
/**
* @author nie yunlong
* @des 车辆状态
* @date 2020/3/12
*/
public class CarStateInfo implements Serializable {
/**
* action : “state”
* values : {"lon":116.8,"lat":39.4,"alt":22.3,"heading":87.5,"acceleration":0.5,"yaw_rate":0.3}
*/
private String action;
private ValuesBean values;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public ValuesBean getValues() {
return values;
}
public void setValues(ValuesBean values) {
this.values = values;
}
public static class ValuesBean {
/**
* lon : 116.8
* lat : 39.4
* alt : 22.3
* heading : 87.5
* acceleration : 0.5
* yaw_rate : 0.3
*/
private double lon;
private double lat;
private double alt;
private double heading;
private double acceleration;
private double yaw_rate;
//惯导车速 m/s
private float gnss_speed;
//gps 时间
private String satelliteTime;
public float getGnss_speed() {
return gnss_speed;
}
public void setGnss_speed( float gnss_speed ) {
this.gnss_speed = gnss_speed;
}
public String getSatelliteTime() {
return satelliteTime;
}
public void setSatelliteTime( String satelliteTime ) {
this.satelliteTime = satelliteTime;
}
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;
}
public double getAlt() {
return alt;
}
public void setAlt(double alt) {
this.alt = alt;
}
public double getHeading() {
return heading;
}
public void setHeading(double heading) {
this.heading = heading;
}
public double getAcceleration() {
return acceleration;
}
public void setAcceleration(double acceleration) {
this.acceleration = acceleration;
}
public double getYaw_rate() {
return yaw_rate;
}
public void setYaw_rate(double yaw_rate) {
this.yaw_rate = yaw_rate;
}
@Override
public String toString() {
return "ValuesBean{" +
"lon=" + lon +
", lat=" + lat +
", alt=" + alt +
", heading=" + heading +
", acceleration=" + acceleration +
", yaw_rate=" + yaw_rate +
'}';
}
}
@Override
public String toString() {
return "CarStateInfo{" +
"action='" + action + '\'' +
", values=" + values +
'}';
}
}

View File

@@ -10,8 +10,8 @@ import android.os.Handler;
import android.os.Message;
import com.mogo.cloud.commons.utils.CoordinateUtils;
import com.mogo.eagle.core.data.autopilot.AutoPilotStationInfo;
import com.mogo.eagle.core.data.autopilot.AutoPilotControlParameters;
import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener;
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager;
@@ -137,17 +137,17 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
}
private void startAutoPilot() {
AutoPilotControlParameters currentAutopilot = new AutoPilotControlParameters();
AutopilotControlParameters currentAutopilot = new AutopilotControlParameters();
currentAutopilot.isSpeakVoice = false;
List<AutoPilotControlParameters.AutoPilotLonLat> wayLatLon = new ArrayList<>();
List<AutopilotControlParameters.AutoPilotLonLat> wayLatLon = new ArrayList<>();
if (receiverBean!=null && receiverBean.getStopsList()!= null){
for (MogoLatLng mogoLatLng : receiverBean.getStopsList()) {
wayLatLon.add(new AutoPilotControlParameters.AutoPilotLonLat(mogoLatLng.lat, mogoLatLng.lon));
wayLatLon.add(new AutopilotControlParameters.AutoPilotLonLat(mogoLatLng.lat, mogoLatLng.lon));
}
}
currentAutopilot.wayLatLons = wayLatLon;
currentAutopilot.startLatLon = new AutoPilotControlParameters.AutoPilotLonLat(receiverBean.getStartLat(), receiverBean.getStartLon());
currentAutopilot.endLatLon = new AutoPilotControlParameters.AutoPilotLonLat(receiverBean.getEndLat(), receiverBean.getEndLon());
currentAutopilot.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(receiverBean.getStartLat(), receiverBean.getStartLon());
currentAutopilot.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(receiverBean.getEndLat(), receiverBean.getEndLon());
currentAutopilot.vehicleType = 10;
Logger.d(TAG, "开启自动驾驶====" + currentAutopilot);
mApis.getAdasControllerApi().aiCloudToAdasData(currentAutopilot);
@@ -191,10 +191,10 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
}
@Override
public void onArriveAt(AutoPilotStationInfo data) {
public void onArriveAt(AutopilotStationInfo data) {
Logger.d(TAG, "onArriveAt data : " + data.toString());
double endLat = data.lat;
double endLon = data.lon;
double endLat = data.getLat();
double endLon = data.getLon();
// 计算是不是到了终点
float distanceFromSelf = CoordinateUtils.calculateLineDistance(receiverBean.getEndLon(), receiverBean.getEndLat()
, endLon, endLat);

View File

@@ -1,41 +0,0 @@
package com.mogo.module.service.dispatch.bean;
/**
* Created by XuYong on 2021/5/28 16:12
*/
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;
}
}

View File

@@ -1,75 +0,0 @@
package com.mogo.module.service.dispatch.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
/**
* @author song kenan
* @des
* @date 2021/6/21
*/
public class AutopilotRoute {
@SerializedName("action")
private String action;
@SerializedName("models")
private List<RouteModels> models;
public static class RouteModels {
@SerializedName("lat")
private Double lat;
@SerializedName("lon")
private Double lon;
public Double getLat() {
return lat;
}
public void setLat(Double lat) {
this.lat = lat;
}
public Double getLon() {
return lon;
}
public void setLon(Double lon) {
this.lon = lon;
}
@Override
public String toString() {
return "RouteModels{" +
"lat=" + lat +
", lon=" + lon +
'}';
}
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public List<RouteModels> getModels() {
return models;
}
public void setModels(List<RouteModels> models) {
this.models = models;
}
@Override
public String toString() {
return "AutopilotRoute{" +
"action='" + action + '\'' +
", models=" + models +
'}';
}
}

View File

@@ -1,108 +0,0 @@
package com.mogo.module.service.dispatch.bean;
import java.io.Serializable;
/**
* @author nie yunlong
* @des
* @date 2020/7/14
*/
public class AutopilotStatus implements Serializable {
/**
* action : autopilotstate
* values : {"state":0,"reason":""}
*/
private String action;
private ValuesBean values;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public ValuesBean getValues() {
return values;
}
public void setValues(ValuesBean values) {
this.values = values;
}
public static class ValuesBean {
/**
* 0是不可用 1是ready 2是自动驾驶start
*
* @return
*/
private int state;
/**
* 车速 m/s
*/
private float speed;
/**
* 不可用原因
*/
private String reason;
/**
* 摄像头状态 1代表开启0代表关闭
*/
private int camera;
/**
* 雷达状态 1代表开启0代表关闭
*/
private int radar;
/**
* RTK状态 1代表开启0代表关闭
*/
private int rtk;
/**
* 自动驾驶状态 0非自动驾驶1自动驾驶
*/
private int pilotmode;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public float getSpeed() {
return speed;
}
public void setSpeed(float speed) {
this.speed = speed;
}
public int getCamera() {
return camera;
}
public int getRadar() {
return radar;
}
public int getRtk() {
return rtk;
}
public int getPilotmode() {
return pilotmode;
}
}
}

View File

@@ -1,38 +0,0 @@
package com.mogo.module.service.dispatch.bean;
import com.mogo.module.service.dispatch.model.DispatchResult;
public class DispatchData {
private String action;
private DispatchResult result;
public DispatchData(String action, DispatchResult result) {
this.action = action;
this.result = result;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public DispatchResult getResult() {
return result;
}
public void setResult(DispatchResult result) {
this.result = result;
}
@Override
public String toString() {
return "DispatchData{" +
"action='" + action + '\'' +
", result=" + result +
'}';
}
}

View File

@@ -1,40 +0,0 @@
package com.mogo.module.service.dispatch.bean;
/**
* Created by XuYong on 2021/5/31 16:24
*/
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;
}
}

View File

@@ -1,6 +1,8 @@
package com.mogo.module.service.dispatch.bean;
import com.mogo.eagle.core.data.autopilot.AutopilotStatus;
/**
* 上报自动驾驶规划的路径
*/

View File

@@ -1,39 +0,0 @@
package com.mogo.module.service.dispatch.model;
import com.mogo.module.service.dispatch.bean.EndLatLon;
import com.mogo.module.service.dispatch.bean.StartLatLon;
public class DispatchResult {
private StartLatLon startLatLon;
private EndLatLon endLatLon;
public DispatchResult(StartLatLon startLatLon, EndLatLon endLatLon) {
this.startLatLon = startLatLon;
this.endLatLon = endLatLon;
}
public StartLatLon getStartLatLon() {
return startLatLon;
}
public void setStartLatLon(StartLatLon startLatLon) {
this.startLatLon = startLatLon;
}
public EndLatLon getEndLatLon() {
return endLatLon;
}
public void setEndLatLon(EndLatLon endLatLon) {
this.endLatLon = endLatLon;
}
@Override
public String toString() {
return "DispatchResult{" +
"startLatLon=" + startLatLon +
", endLatLon=" + endLatLon +
'}';
}
}

View File

@@ -7,8 +7,8 @@ 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.module.service.dispatch.bean.AutopilotRoute;
import com.mogo.module.service.dispatch.bean.AutopilotStatus;
import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo;
import com.mogo.eagle.core.data.autopilot.AutopilotStatus;
import com.mogo.module.service.dispatch.bean.ReportDispatchResult;
import com.mogo.module.service.dispatch.bean.ReportedRoute;
import com.mogo.utils.logger.Logger;
@@ -93,7 +93,7 @@ public class DispatchServiceModel {
*
* @param list 路线集合
*/
public void uploadAutopilotRoute(List<AutopilotRoute.RouteModels> list) {
public void uploadAutopilotRoute(List<AutopilotRouteInfo.RouteModels> list) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
ReportedRoute reportedRoute = new ReportedRoute(sn, GsonUtil.jsonFromObject(list));
Map<String, Object> map = new HashMap<>();

View File

@@ -4,24 +4,23 @@ import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo;
import com.mogo.module.common.datacenter.SnapshotLocationDataCenter;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.ServiceConst;
import com.mogo.module.service.carinfo.CarStateInfo;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
import org.json.JSONObject;
public
/**
* @author congtaowang
* @since 2020/6/5
* <p>
* 描述
*/
class ADASStatusIntentHandler implements IntentHandler {
public class ADASStatusIntentHandler implements IntentHandler {
private static volatile ADASStatusIntentHandler sInstance;
@@ -29,9 +28,9 @@ class ADASStatusIntentHandler implements IntentHandler {
}
public static ADASStatusIntentHandler getInstance() {
if ( sInstance == null ) {
synchronized ( ADASStatusIntentHandler.class ) {
if ( sInstance == null ) {
if (sInstance == null) {
synchronized (ADASStatusIntentHandler.class) {
if (sInstance == null) {
sInstance = new ADASStatusIntentHandler();
}
}
@@ -44,38 +43,40 @@ class ADASStatusIntentHandler implements IntentHandler {
}
@Override
public void handle( Context context, Intent intent ) {
if ( intent == null ) {
public void handle(Context context, Intent intent) {
if (intent == null) {
return;
}
if ( MogoReceiver.ACTIION_ADAS.equals( intent.getAction() ) ) {
if (MogoReceiver.ACTIION_ADAS.equals(intent.getAction())) {
int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 );
MarkerServiceHandler.getMogoStatusManager().setADASUIShow( ServiceConst.TYPE, status == 1 );
int status = intent.getIntExtra(MogoReceiver.PARAM_ADAS_STATUS, 0);
MarkerServiceHandler.getMogoStatusManager().setADASUIShow(ServiceConst.TYPE, status == 1);
}
// 由于adas可能调高此处的调用频率存在anr风险且此处没有作用所以暂时注释掉
else {
String msg = intent.getStringExtra( "adasMsg" );
if ( TextUtils.isEmpty( msg ) ) {
String msg = intent.getStringExtra("adasMsg");
if (TextUtils.isEmpty(msg)) {
return;
}
Logger.d( "ADASCOOR", msg );
CarStateInfo stateInfo = GsonUtil.objectFromJson( msg, CarStateInfo.class );
if ( stateInfo != null && stateInfo.getValues() != null ) {
Logger.d("ADAS COOR", msg);
AutopilotCarStateInfo stateInfo = GsonUtil.objectFromJson(msg, AutopilotCarStateInfo.class);
if (stateInfo != null && stateInfo.getValues() != null) {
JSONObject data = new JSONObject();
try {
data.putOpt( "lon", stateInfo.getValues().getLon() );
data.putOpt( "lat", stateInfo.getValues().getLat() );
data.putOpt( "alt", stateInfo.getValues().getAlt() );
data.putOpt( "speed", stateInfo.getValues().getGnss_speed() );
data.putOpt( "satelliteTime", stateInfo.getValues().getSatelliteTime() );
data.putOpt( "heading", stateInfo.getValues().getHeading() );
data.putOpt( "acceleration", stateInfo.getValues().getAcceleration() );
data.putOpt( "yawRate", stateInfo.getValues().getYaw_rate() );
MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().syncLocation2Map( data );
SnapshotLocationDataCenter.getInstance().syncAdasLocationInfo( data );
} catch ( Exception e ) {
data.putOpt("lon", stateInfo.getValues().getLon());
data.putOpt("lat", stateInfo.getValues().getLat());
data.putOpt("alt", stateInfo.getValues().getAlt());
data.putOpt("speed", stateInfo.getValues().getGnss_speed());
data.putOpt("satelliteTime", stateInfo.getValues().getSatelliteTime());
data.putOpt("heading", stateInfo.getValues().getHeading());
data.putOpt("acceleration", stateInfo.getValues().getAcceleration());
data.putOpt("yawRate", stateInfo.getValues().getYaw_rate());
MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().syncLocation2Map(data);
SnapshotLocationDataCenter.getInstance().syncAdasLocationInfo(data);
} catch (Exception e) {
e.printStackTrace();
}
}

View File

@@ -18,8 +18,9 @@ import com.mogo.cloud.socket.entity.SocketDownDataHelper;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.autopilot.AutoPilotControlParameters;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.data.traffic.TrafficData;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.navi.IMogoNaviListener;
@@ -39,8 +40,7 @@ import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.R;
import com.mogo.module.service.status.EnvStatusManager;
import com.mogo.module.service.timedelay.TimeDelayUploadManager;
import com.mogo.service.adas.entity.ADASCarStateInfo;
import com.mogo.service.adas.entity.ADASRecognizedResult;
import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo;
import com.mogo.service.entrance.ButtonIndex;
import com.mogo.utils.TipToast;
import com.mogo.utils.WorkThreadHandler;
@@ -492,17 +492,17 @@ public class MockIntentHandler implements IntentHandler {
InputStream is = context.getAssets().open("coors.json");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = "";
List<ADASCarStateInfo> vals = new ArrayList<>();
List<AutopilotCarStateInfo> vals = new ArrayList<>();
while ((line = br.readLine()) != null) {
String[] json = line.split(" - ");
long time = Long.parseLong(json[0]);
ADASCarStateInfo si = GsonUtil.objectFromJson(json[1], ADASCarStateInfo.class);
AutopilotCarStateInfo si = GsonUtil.objectFromJson(json[1], AutopilotCarStateInfo.class);
// si.getValues().setSatelliteTime( time + "" );
vals.add(si);
}
long interval = -1;
ADASCarStateInfo last = null;
for (ADASCarStateInfo val : vals) {
AutopilotCarStateInfo last = null;
for (AutopilotCarStateInfo val : vals) {
if (last == null) {
interval = 0;
} else {
@@ -523,10 +523,10 @@ public class MockIntentHandler implements IntentHandler {
.onAutopilotArriveLike(intent.getIntExtra("type", 8));
break;
case 44:// 控制自动驾驶
AutoPilotControlParameters parameters = new AutoPilotControlParameters();
AutopilotControlParameters parameters = new AutopilotControlParameters();
parameters.vehicleType = 9;
parameters.startLatLon = new AutoPilotControlParameters.AutoPilotLonLat(40.1690522746, 116.567374558);
parameters.endLatLon = new AutoPilotControlParameters.AutoPilotLonLat(40.1651999405, 116.567217441);
parameters.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(40.1690522746, 116.567374558);
parameters.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(40.1651999405, 116.567217441);
MogoApisHandler.getInstance()
.getApis()
.getAdasControllerApi()
@@ -664,7 +664,7 @@ public class MockIntentHandler implements IntentHandler {
}
public void onAdasCarDataCallback(ADASCarStateInfo stateInfo) {
public void onAdasCarDataCallback(AutopilotCarStateInfo stateInfo) {
if (stateInfo != null && stateInfo.getValues() != null) {
JSONObject data = new JSONObject();
try {
@@ -905,10 +905,10 @@ public class MockIntentHandler implements IntentHandler {
}
}
List<ADASRecognizedResult> allList = new ArrayList<>();
List<TrafficData> allList = new ArrayList<>();
for (BufferedReader reader : readers) {
String line = reader.readLine();
ADASRecognizedResult adasRecognizedResult = GsonUtil.objectFromJson(line, ADASRecognizedResult.class);
TrafficData adasRecognizedResult = GsonUtil.objectFromJson(line, TrafficData.class);
if (adasRecognizedResult != null) {
allList.add(adasRecognizedResult);
}
@@ -932,10 +932,10 @@ public class MockIntentHandler implements IntentHandler {
}
}
List<ADASRecognizedResult> allList = new ArrayList<>();
List<TrafficData> allList = new ArrayList<>();
for (BufferedReader reader : readers2) {
String line = reader.readLine();
ADASRecognizedResult adasRecognizedResult = GsonUtil.objectFromJson(line, ADASRecognizedResult.class);
TrafficData adasRecognizedResult = GsonUtil.objectFromJson(line, TrafficData.class);
if (adasRecognizedResult != null) {
allList.add(adasRecognizedResult);
}