增加了OBU提供自车位置的功能

This commit is contained in:
董宏宇
2021-08-25 12:53:50 +08:00
parent 152c916a8e
commit f7214481a2
10 changed files with 269 additions and 228 deletions

View File

@@ -1,5 +1,6 @@
package com.mogo.module.common.datacenter;
import com.mogo.commons.FunctionBuildConfig;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.service.locationinfo.CloudLocationInfo;
@@ -86,27 +87,31 @@ public class SnapshotLocationDataCenter {
double speed = data.optDouble("speed", -1);
long satelliteTime = data.optLong("satelliteTime");
long systemTime = data.optLong("systemTime");
int gpsProvider = data.optInt("gpsProvider",1);
//测试面板状态同步
DebugConfig.setStatusData(DebugConfig.sLon, lon);
DebugConfig.setStatusData(DebugConfig.sLat, lat);
// 使用与渠道配置一样的gps提供者提供的数据
if (gpsProvider == FunctionBuildConfig.gpsProvider) {
//测试面板状态同步
DebugConfig.setStatusData(DebugConfig.sLon, lon);
DebugConfig.setStatusData(DebugConfig.sLat, lat);
CloudLocationInfo cloudLocationInfo = new CloudLocationInfo();
cloudLocationInfo.setAlt(alt);
cloudLocationInfo.setHeading(heading);
cloudLocationInfo.setLat(lat);
cloudLocationInfo.setLon(lon);
cloudLocationInfo.setSpeed(speed);
cloudLocationInfo.setSatelliteTime(satelliteTime);
cloudLocationInfo.setSystemTime(systemTime);
cloudLocationInfo.setTileId(String.valueOf(MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getTileId(lon, lat)));
mLastLocationInfo = cloudLocationInfo;
mMachineCacheList.add(cloudLocationInfo);
CloudLocationInfo cloudLocationInfo = new CloudLocationInfo();
cloudLocationInfo.setAlt(alt);
cloudLocationInfo.setHeading(heading);
cloudLocationInfo.setLat(lat);
cloudLocationInfo.setLon(lon);
cloudLocationInfo.setSpeed(speed);
cloudLocationInfo.setSatelliteTime(satelliteTime);
cloudLocationInfo.setSystemTime(systemTime);
cloudLocationInfo.setTileId(String.valueOf(MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getTileId(lon, lat)));
mLastLocationInfo = cloudLocationInfo;
mMachineCacheList.add(cloudLocationInfo);
mCurSpeed = cloudLocationInfo.getSpeed();
mCurLon = cloudLocationInfo.getLon();
mCurLat = cloudLocationInfo.getLat();
mSatelliteTime = cloudLocationInfo.getSatelliteTime();
mCurSpeed = cloudLocationInfo.getSpeed();
mCurLon = cloudLocationInfo.getLon();
mCurLat = cloudLocationInfo.getLat();
mSatelliteTime = cloudLocationInfo.getSatelliteTime();
}
}
/**

View File

@@ -3,11 +3,13 @@ package com.mogo.module.obu.mogo
import android.content.Context
import android.util.Log
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.module.common.datacenter.SnapshotLocationDataCenter
import com.mogo.module.common.drawer.TrafficMarkerDrawer
import com.mogo.module.common.enums.WarningTypeEnum
import com.mogo.module.obu.mogo.utils.TrafficDataConvertUtils
import com.mogo.service.IMogoServiceApis
import com.mogo.service.MogoServicePaths
import com.mogo.service.map.IMogoMapService
import com.mogo.service.warning.IMoGoWaringProvider
import com.mogo.utils.logger.Logger
import com.mogo.utils.storage.SharedPrefsMgr
@@ -16,6 +18,7 @@ import com.zhidao.support.obu.OnMogoObuListener
import com.zhidao.support.obu.constants.ObuConstants
import com.zhidao.support.obu.model.*
import com.zhidao.support.obu.model.advance.Light
import org.json.JSONObject
/**
* @description
@@ -32,6 +35,7 @@ class MogoPrivateObuManager private constructor() {
private var mMogoServiceApis: IMogoServiceApis? = null
private var mIMoGoWaringProvider: IMoGoWaringProvider? = null
private var mIMogoMapService: IMogoMapService? = null
private var mContext: Context? = null
fun init(context: Context?) {
@@ -42,6 +46,7 @@ class MogoPrivateObuManager private constructor() {
// 获取预警模块的接口
mIMoGoWaringProvider = mMogoServiceApis!!.waringProviderApi
mIMogoMapService = mMogoServiceApis!!.mapServiceApi
//自研obu
MogoObuManager.getInstance().connect(context, "192.168.1.199")
@@ -87,21 +92,52 @@ class MogoPrivateObuManager private constructor() {
Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxAppInitIndInfo ------> $info")
}
// 设置CV2X系统的配置确认
override fun onCvxSetConfigCfm(info: CvxSetConfigCfmInfo) {
super.onCvxSetConfigCfm(info)
Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxSetConfigCfm ------> $info")
}
// 主车车辆信息
override fun onCvxHvCarIndInfo(info: CvxHvCarIndInfo) {
Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxHvCarIndInfo ------> $info")
}
// CVX_HV_INFO_IND 主车信息
override fun onCvxHvInfoIndInfo(info: CvxHvInfoIndInfo) {
// (2) 车辆信息CVX_HV_INFO_IND
override fun onCvxHvInfoIndInfo(info: CvxHvInfoIndInfo?) {
mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_HV", true) }
Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxHvInfoIndInfo ------> $info")
if (info != null && info.basic_info != null && info.basic_info.position != null) {
val movingObjectInfo = info.basic_info
val position = movingObjectInfo.position
val data = JSONObject()
try {
data.putOpt("lon", position.longitude)
data.putOpt("lat", position.latitude)
data.putOpt("speed", movingObjectInfo.speed)
data.putOpt("heading", movingObjectInfo.heading)
if (info.acceleration_set != null) {
data.putOpt("acceleration", info.acceleration_set.lateral)
data.putOpt("yawRate", info.acceleration_set.yaw_rate)
}
data.putOpt("gpsProvider", 2)
try {
data.putOpt("systemTime", System.currentTimeMillis())
} catch (e: Exception) {
e.printStackTrace()
}
try {
data.putOpt("satelliteTime", System.currentTimeMillis())
} catch (e: Exception) {
e.printStackTrace()
}
try {
data.putOpt("receiverDataTime", System.currentTimeMillis())
} catch (e: Exception) {
e.printStackTrace()
}
try {
data.putOpt("adasSatelliteTime", System.currentTimeMillis())
} catch (e: Exception) {
e.printStackTrace()
}
mIMogoMapService?.mapUIController?.syncLocation2Map(data)
SnapshotLocationDataCenter.getInstance().syncAdasLocationInfo(data)
} catch (e: Exception) {
e.printStackTrace()
}
}
}
// (3) 远车信息CVX_RV_INFO_IND
@@ -510,7 +546,10 @@ class MogoPrivateObuManager private constructor() {
info: CvxV2vThreatIndInfo
) {
// 这里排除需要特殊定制的语音及文案外,其余的都可以使用 WarningTypeEnum 提供的
Log.d(MogoObuConst.TAG_MOGO_OBU, "handleSdkObu appId = $appId --- handleDirection = $direction ---level = $level")
Log.d(
MogoObuConst.TAG_MOGO_OBU,
"handleSdkObu appId = $appId --- handleDirection = $direction ---level = $level"
)
var alertContent = ""
var ttsContent = ""
when (appId) {
@@ -586,7 +625,10 @@ class MogoPrivateObuManager private constructor() {
"ACTION_V2X_FRONT_WARNING"
)
//显示弹框,语音提示
Log.d(MogoObuConst.TAG_MOGO_OBU, "appId = $appId --- level = $level --- alertContent = $alertContent")
Log.d(
MogoObuConst.TAG_MOGO_OBU,
"appId = $appId --- level = $level --- alertContent = $alertContent"
)
mIMoGoWaringProvider!!.showWarningV2X(
appId,
alertContent,

View File

@@ -6,7 +6,7 @@ import android.content.Intent
import com.mogo.module.obu.mogo.MogoObuConst
import com.mogo.module.obu.mogo.MogoPrivateObuManager
import com.mogo.utils.logger.Logger
import com.zhidao.support.obu.model.CvxRvInfoIndInfo
import com.zhidao.support.obu.model.CvxHvInfoIndInfo
import com.zhidao.support.obu.model.advance.MovingObjectInfo
import com.zhidao.support.obu.model.advance.Position
@@ -14,7 +14,7 @@ import com.zhidao.support.obu.model.advance.Position
* @author xiaoyuzhou
* @date 2021/8/11 10:50 上午
*
* OBU 周边车辆 测试使用
* OBU 模拟自车
*/
class ObuTestTriggerRecognizedReceiver : BroadcastReceiver() {
private var mContext: Context? = null
@@ -34,16 +34,15 @@ class ObuTestTriggerRecognizedReceiver : BroadcastReceiver() {
val obuLevel = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_LEVEL_EXTRA_KEY, 3)
Logger.d(TAG, "obuType:$obuType obuStatus:$obuStatus obuLevel:$obuLevel")
// TODO 测试数据
val cvxRvInfoIndInfo = CvxRvInfoIndInfo(0, 1, 2)
cvxRvInfoIndInfo.vehicle_id = "123321"
val cvxHvInfoIndInfo = CvxHvInfoIndInfo(0, 1, 2)
val position = Position(0, 399739429, 1164115207, 20)
val movingObjectInfo = MovingObjectInfo(0, position, 1800, 60)
cvxRvInfoIndInfo.basic_info = movingObjectInfo
cvxHvInfoIndInfo.basic_info = movingObjectInfo
MogoPrivateObuManager.INSTANCE
.getMogoObuListener()
.onCvxRvInfoIndInfo(cvxRvInfoIndInfo)
.onCvxHvInfoIndInfo(cvxHvInfoIndInfo)
}

View File

@@ -13,6 +13,7 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.MotionEvent;
import com.mogo.commons.FunctionBuildConfig;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.storage.SpStorage;
import com.mogo.commons.voice.AIAssist;
@@ -978,6 +979,7 @@ public class MogoServices implements IMogoMapListener,
data.putOpt( "heading", stateInfo.getValues().getHeading() );
data.putOpt( "acceleration", stateInfo.getValues().getAcceleration() );
data.putOpt( "yawRate", stateInfo.getValues().getYaw_rate() );
data.putOpt( "gpsProvider", 1 );
try {
data.putOpt( "systemTime", Long.parseLong( stateInfo.getValues().getSystemTime() ) );
} catch ( Exception e ) {