Merge branch 'dev_arch_opt_3.0' into dev_robobus-m1-p-app-module_1.0.0_230112_1.0.0
This commit is contained in:
@@ -15,6 +15,10 @@ import com.zhidao.adas.client.bean.FSMFunctionStates;
|
||||
import com.zhidao.adas.client.bean.GlobalPathResp;
|
||||
import com.zhidao.adas.client.bean.GnssInfo;
|
||||
import com.zhidao.adas.client.bean.MogoReportMessage;
|
||||
import com.zhidao.adas.client.bean.ObuMap;
|
||||
import com.zhidao.adas.client.bean.ObuRsi;
|
||||
import com.zhidao.adas.client.bean.ObuRsm;
|
||||
import com.zhidao.adas.client.bean.ObuSpat;
|
||||
import com.zhidao.adas.client.bean.ObuWarningData;
|
||||
import com.zhidao.adas.client.bean.OriginalPointCloudData;
|
||||
import com.zhidao.adas.client.bean.PerceptionTrafficLight;
|
||||
@@ -128,6 +132,10 @@ public class DataDistribution {
|
||||
public final List<DataShow> listRoboSweeperTaskIndex = new ArrayList<>();
|
||||
public final List<DataShow> listBagManagerCmd = new ArrayList<>();
|
||||
public final List<DataShow> listObuWarningData = new ArrayList<>();
|
||||
public final List<DataShow> listObuSpat = new ArrayList<>();
|
||||
public final List<DataShow> listObuRsi = new ArrayList<>();
|
||||
public final List<DataShow> listObuRsm = new ArrayList<>();
|
||||
public final List<DataShow> listObuMap = new ArrayList<>();
|
||||
|
||||
private long listTrajectorySize = 0;
|
||||
private long listTrackedObjectsSize = 0;
|
||||
@@ -152,6 +160,11 @@ public class DataDistribution {
|
||||
private long listRoboSweeperTaskIndexSize = 0;
|
||||
private long listBagManagerCmdSize = 0;
|
||||
private long listObuWarningDataSize = 0;
|
||||
private long listObuSpatSize = 0;
|
||||
private long listObuRsiSize = 0;
|
||||
private long listObuRsmSize = 0;
|
||||
private long listObuMapSize = 0;
|
||||
|
||||
|
||||
public void clearCount() {
|
||||
listTrajectorySize = 1;
|
||||
@@ -177,6 +190,10 @@ public class DataDistribution {
|
||||
listRoboSweeperTaskIndexSize = 1;
|
||||
listBagManagerCmdSize = 1;
|
||||
listObuWarningDataSize = 1;
|
||||
listObuSpatSize = 1;
|
||||
listObuRsiSize = 1;
|
||||
listObuRsmSize = 1;
|
||||
listObuMapSize = 1;
|
||||
}
|
||||
|
||||
public String cutDown(String str) {
|
||||
@@ -237,6 +254,38 @@ public class DataDistribution {
|
||||
if (listener != null && Constants.TITLE.RECEIVE_OBU_WARNING_DATA.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof ObuSpat) {
|
||||
listObuSpat.add(0, new DataShow(listObuSpatSize++, time + str));
|
||||
if (listObuSpat.size() > LIST_SIZE) {
|
||||
listObuSpat.remove(listObuSpat.size() - 1);
|
||||
}
|
||||
if (listener != null && Constants.TITLE.RECEIVE_OBU_SPAT.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof ObuRsi) {
|
||||
listObuRsi.add(0, new DataShow(listObuRsiSize++, time + str));
|
||||
if (listObuRsi.size() > LIST_SIZE) {
|
||||
listObuRsi.remove(listObuRsi.size() - 1);
|
||||
}
|
||||
if (listener != null && Constants.TITLE.RECEIVE_OBU_RSI.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof ObuRsm) {
|
||||
listObuRsm.add(0, new DataShow(listObuRsmSize++, time + str));
|
||||
if (listObuRsm.size() > LIST_SIZE) {
|
||||
listObuRsm.remove(listObuRsm.size() - 1);
|
||||
}
|
||||
if (listener != null && Constants.TITLE.RECEIVE_OBU_RSM.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof ObuMap) {
|
||||
listObuMap.add(0, new DataShow(listObuMapSize++, time + str));
|
||||
if (listObuMap.size() > LIST_SIZE) {
|
||||
listObuMap.remove(listObuMap.size() - 1);
|
||||
}
|
||||
if (listener != null && Constants.TITLE.RECEIVE_OBU_MAP.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof GnssInfo) {
|
||||
listGnssInfo.add(0, new DataShow(listGnssInfoSize++, time + str));
|
||||
if (listGnssInfo.size() > LIST_SIZE) {
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.zhidao.adas.client.bean;
|
||||
|
||||
import com.google.protobuf.TextFormat;
|
||||
import com.mogo.support.obu.ObuScene;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
public class ObuMap extends BaseInfo {
|
||||
public final ObuScene.MapMatchData bean;
|
||||
|
||||
|
||||
public ObuMap(MessagePad.Header header, ObuScene.MapMatchData bean, SimpleDateFormat sdf) {
|
||||
super("接收", bean.getSerializedSize(), header, sdf);
|
||||
this.bean = bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.zhidao.adas.client.bean;
|
||||
|
||||
import com.google.protobuf.TextFormat;
|
||||
import com.mogo.support.obu.ObuScene;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
public class ObuRsi extends BaseInfo {
|
||||
public final ObuScene.RsiWarningData bean;
|
||||
|
||||
|
||||
public ObuRsi(MessagePad.Header header, ObuScene.RsiWarningData bean, SimpleDateFormat sdf) {
|
||||
super("接收", bean.getSerializedSize(), header, sdf);
|
||||
this.bean = bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.zhidao.adas.client.bean;
|
||||
|
||||
import com.google.protobuf.TextFormat;
|
||||
import com.mogo.support.obu.ObuScene;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
public class ObuRsm extends BaseInfo {
|
||||
public final ObuScene.RsmWarningData bean;
|
||||
|
||||
|
||||
public ObuRsm(MessagePad.Header header, ObuScene.RsmWarningData bean, SimpleDateFormat sdf) {
|
||||
super("接收", bean.getSerializedSize(), header, sdf);
|
||||
this.bean = bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.zhidao.adas.client.bean;
|
||||
|
||||
import com.google.protobuf.TextFormat;
|
||||
import com.mogo.support.obu.ObuScene;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
public class ObuSpat extends BaseInfo {
|
||||
public final ObuScene.SpatWarningData bean;
|
||||
|
||||
|
||||
public ObuSpat(MessagePad.Header header, ObuScene.SpatWarningData bean, SimpleDateFormat sdf) {
|
||||
super("接收", bean.getSerializedSize(), header, sdf);
|
||||
this.bean = bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -136,7 +136,15 @@ public class InfoFragment extends BaseFragment {
|
||||
adapter.setData(DataDistribution.getInstance().listStatusInfo);
|
||||
} else if (Constants.TITLE.RECEIVE_OBU_WARNING_DATA.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listObuWarningData);
|
||||
} else if (Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(title)) {
|
||||
}else if (Constants.TITLE.RECEIVE_OBU_SPAT.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listObuSpat);
|
||||
} else if (Constants.TITLE.RECEIVE_OBU_RSI.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listObuRsi);
|
||||
} else if (Constants.TITLE.RECEIVE_OBU_RSM.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listObuRsm);
|
||||
} else if (Constants.TITLE.RECEIVE_OBU_MAP.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listObuMap);
|
||||
} else if (Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listRecordDataConfig);
|
||||
} else if (Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listGlobalPathResp);
|
||||
|
||||
@@ -44,7 +44,6 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator;
|
||||
|
||||
import com.google.protobuf.TextFormat;
|
||||
import com.mogo.support.obu.ObuPenetrate;
|
||||
import com.mogo.support.obu.ObuScene;
|
||||
import com.mogo.telematic.MogoProtocolMsg;
|
||||
import com.mogo.telematic.NSDNettyManager;
|
||||
@@ -70,6 +69,10 @@ import com.zhidao.adas.client.bean.GlobalPathResp;
|
||||
import com.zhidao.adas.client.bean.GnssInfo;
|
||||
import com.zhidao.adas.client.bean.IPCConnectState;
|
||||
import com.zhidao.adas.client.bean.MogoReportMessage;
|
||||
import com.zhidao.adas.client.bean.ObuMap;
|
||||
import com.zhidao.adas.client.bean.ObuRsi;
|
||||
import com.zhidao.adas.client.bean.ObuRsm;
|
||||
import com.zhidao.adas.client.bean.ObuSpat;
|
||||
import com.zhidao.adas.client.bean.ObuWarningData;
|
||||
import com.zhidao.adas.client.bean.OriginalPointCloudData;
|
||||
import com.zhidao.adas.client.bean.PerceptionTrafficLight;
|
||||
@@ -552,7 +555,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (TextUtils.equals(title.getText(), getString(R.string.have_error_data))) {
|
||||
int position=titleFragmentData.size() - 1;
|
||||
int position = titleFragmentData.size() - 1;
|
||||
infoFragment.smoothScrollToPosition(position);
|
||||
fragmentAdapter.setSelectedPosition(position);
|
||||
showFragment(Constants.TITLE.RECEIVE_ERROR);
|
||||
@@ -666,6 +669,10 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_STATUS_QUERY_RESP);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_OBU_WARNING_DATA);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_OBU_SPAT);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_OBU_RSI);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_OBU_RSM);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_OBU_MAP);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_WARN);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_ERROR);
|
||||
@@ -1032,23 +1039,33 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuSpatWarning(MessagePad.Header header, ObuScene.SpatWarningData spatWarningData) {
|
||||
|
||||
public void onObuWarningData(MessagePad.Header header, ObuWarningEvent.ObuWarningData obuWarningData) {
|
||||
ObuWarningData base = new ObuWarningData(header, obuWarningData, sdf);
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuRsiWarning(MessagePad.Header header, ObuScene.RsiWarningData rsiWarningData) {
|
||||
|
||||
public void onObuSpatWarning(MessagePad.Header header, ObuScene.SpatWarningData spatWarningData) {
|
||||
ObuSpat base = new ObuSpat(header, spatWarningData, sdf);
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuRsmWarning(MessagePad.Header header, ObuScene.RsmWarningData rsmWarningData) {
|
||||
|
||||
public void onObuRsiWarning(MessagePad.Header header, ObuScene.RsiWarningData rsiWarningData) {
|
||||
ObuRsi base = new ObuRsi(header, rsiWarningData, sdf);
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuObuMapMath(MessagePad.Header header, ObuScene.MapMatchData mapMatchData) {
|
||||
public void onObuRsmWarning(MessagePad.Header header, ObuScene.RsmWarningData rsmWarningData) {
|
||||
ObuRsm base = new ObuRsm(header, rsmWarningData, sdf);
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onObuMapMath(MessagePad.Header header, ObuScene.MapMatchData mapMatchData) {
|
||||
ObuMap base = new ObuMap(header, mapMatchData, sdf);
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -173,6 +173,10 @@ public class Constants {
|
||||
String RECEIVE_ARRIVAL_NOTIFICATION = MessageType.TYPE_RECEIVE_ARRIVAL_NOTIFICATION.desc;
|
||||
String RECEIVE_STATUS_QUERY_RESP = MessageType.TYPE_RECEIVE_STATUS_QUERY_RESP.desc;
|
||||
String RECEIVE_OBU_WARNING_DATA = MessageType.TYPE_RECEIVE_OBU_WARNING_DATA.desc;
|
||||
String RECEIVE_OBU_SPAT = "OBU SPAT信息";
|
||||
String RECEIVE_OBU_RSI = "OBU RSI信息";
|
||||
String RECEIVE_OBU_RSM = "OBU RSM信息";
|
||||
String RECEIVE_OBU_MAP = "OBU MAP信息";
|
||||
String RECEIVE_ERROR = "错误数据";
|
||||
|
||||
|
||||
|
||||
@@ -547,22 +547,27 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuSpatWarning(MessagePad.Header header, ObuScene.SpatWarningData spatWarningData) {
|
||||
public void onObuWarningData(MessagePad.Header header, ObuWarningEvent.ObuWarningData obuWarningData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuRsiWarning(MessagePad.Header header, ObuScene.RsiWarningData rsiWarningData) {
|
||||
public void onObuSpatWarning(MessagePad.Header header, ObuScene.SpatWarningData spatWarningData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuRsmWarning(MessagePad.Header header, ObuScene.RsmWarningData rsmWarningData) {
|
||||
public void onObuRsiWarning(MessagePad.Header header, ObuScene.RsiWarningData rsiWarningData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onoObuObuMapMath(MessagePad.Header header, ObuScene.MapMatchData mapMatchData) {
|
||||
public void onObuRsmWarning(MessagePad.Header header, ObuScene.RsmWarningData rsmWarningData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onObuMapMath(MessagePad.Header header, ObuScene.MapMatchData mapMatchData) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -532,7 +532,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param header 头
|
||||
* @param spatWarningData 数据
|
||||
*/
|
||||
override fun onoObuSpatWarning(header: MessagePad.Header?, spatWarningData: ObuScene.SpatWarningData?) {
|
||||
override fun onObuSpatWarning(header: MessagePad.Header?, spatWarningData: ObuScene.SpatWarningData?) {
|
||||
CallerObuWarningSpatListenerManager.invokeObuSpatWarning(spatWarningData!!)
|
||||
}
|
||||
/**
|
||||
@@ -541,7 +541,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param header 头
|
||||
* @param rsiWarningData 数据
|
||||
*/
|
||||
override fun onoObuRsiWarning(header: MessagePad.Header?, rsiWarningData: ObuScene.RsiWarningData?) {
|
||||
override fun onObuRsiWarning(header: MessagePad.Header?, rsiWarningData: ObuScene.RsiWarningData?) {
|
||||
CallerObuWarningRsiListenerManager.invokeObuRsiWarning(rsiWarningData!!)
|
||||
}
|
||||
|
||||
@@ -551,7 +551,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param header 头
|
||||
* @param rsmWarningData 数据
|
||||
*/
|
||||
override fun onoObuRsmWarning(header: MessagePad.Header?, rsmWarningData: ObuScene.RsmWarningData?) {
|
||||
override fun onObuRsmWarning(header: MessagePad.Header?, rsmWarningData: ObuScene.RsmWarningData?) {
|
||||
CallerObuWarningRsmListenerManager.invokeObuRsmWarning(rsmWarningData!!)
|
||||
}
|
||||
/**
|
||||
@@ -560,7 +560,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param header 头
|
||||
* @param mapMatchData 数据
|
||||
*/
|
||||
override fun onoObuObuMapMath(header: MessagePad.Header?, mapMatchData: ObuScene.MapMatchData?) {
|
||||
override fun onObuMapMath(header: MessagePad.Header?, mapMatchData: ObuScene.MapMatchData?) {
|
||||
CallerObuMapMathListenerManager.invokeObuMapMath(mapMatchData!!)
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import ch.hsr.geohash.GeoHash
|
||||
@@ -16,7 +17,6 @@ import com.amap.api.maps.CameraUpdate
|
||||
import com.amap.api.maps.CameraUpdateFactory
|
||||
import com.amap.api.maps.TextureMapView
|
||||
import com.amap.api.maps.model.*
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.map.Infrastructure
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.data.v2x.V2XEvent
|
||||
@@ -38,7 +38,6 @@ import com.mogo.eagle.core.function.smp.MarkerDrawerManager.planningPoints
|
||||
import com.mogo.eagle.core.function.smp.MarkerDrawerManager.startLoopCalCarLocation
|
||||
import com.mogo.eagle.core.function.smp.MarkerDrawerManager.updateRoutePoints
|
||||
import com.mogo.eagle.core.function.smp.V2XMarkerView
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isTaxi
|
||||
import com.mogo.eagle.core.utilcode.mogo.MapAssetStyleUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
@@ -54,6 +53,18 @@ class OverMapView @JvmOverloads constructor(
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : RelativeLayout(context, attrs, defStyleAttr), IMoGoChassisLocationGCJ02Listener {
|
||||
|
||||
// =============自定义属性相关=============
|
||||
private var mapStylePath: String? = null
|
||||
private var mapStyleExtraPath: String? = null
|
||||
private var carDrawable: Int = -1
|
||||
private var compassDrawable: Int = -1
|
||||
private var startPointDrawable: Int = -1
|
||||
private var endPointDrawable: Int = -1
|
||||
private var arrivedDrawable: Int = -1
|
||||
private var unArrivedDrawable: Int = -1
|
||||
private var resetDrawable: Int = -1
|
||||
|
||||
private var mMapView: TextureMapView? = null
|
||||
private var mAMap: AMap? = null
|
||||
private val zoomLevel = 15
|
||||
@@ -94,6 +105,20 @@ class OverMapView @JvmOverloads constructor(
|
||||
|
||||
init {
|
||||
try {
|
||||
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.OverMapView)
|
||||
mapStylePath = typedArray.getString(R.styleable.OverMapView_mapStylePath)
|
||||
mapStyleExtraPath = typedArray.getString(R.styleable.OverMapView_mapStyleExtraPath)
|
||||
carDrawable = typedArray.getResourceId(R.styleable.OverMapView_carDrawable, -1)
|
||||
compassDrawable = typedArray.getResourceId(R.styleable.OverMapView_compassDrawable, -1)
|
||||
startPointDrawable =
|
||||
typedArray.getResourceId(R.styleable.OverMapView_startPointDrawable, -1)
|
||||
endPointDrawable =
|
||||
typedArray.getResourceId(R.styleable.OverMapView_endPointDrawable, -1)
|
||||
arrivedDrawable = typedArray.getResourceId(R.styleable.OverMapView_arrivedDrawable, -1)
|
||||
unArrivedDrawable =
|
||||
typedArray.getResourceId(R.styleable.OverMapView_unArrivedDrawable, -1)
|
||||
resetDrawable = typedArray.getResourceId(R.styleable.OverMapView_resetDrawable, -1)
|
||||
typedArray.recycle()
|
||||
initView(context)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
@@ -129,21 +154,18 @@ class OverMapView @JvmOverloads constructor(
|
||||
}
|
||||
// =================必须通知高德地图生命周期的变化=================
|
||||
|
||||
fun hideResetView() {
|
||||
overLayerView?.visibility = View.GONE
|
||||
}
|
||||
|
||||
private fun initView(context: Context) {
|
||||
mContext = context
|
||||
val smpView = LayoutInflater.from(context).inflate(R.layout.module_overview_map_view, this)
|
||||
mMapView = smpView.findViewById(R.id.aMapView)
|
||||
overLayerView = findViewById(R.id.overLayer)
|
||||
if (isTaxi(FunctionBuildConfig.appIdentityMode)) {
|
||||
overLayerView?.background = resources.getDrawable(R.drawable.amap_reset)
|
||||
arrivedBitmap = BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_arrow_arrived)
|
||||
unArrivedBitmap =
|
||||
BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_arrow_un_arrive)
|
||||
} else {
|
||||
overLayerView?.background = resources.getDrawable(R.drawable.amap_reset_bus)
|
||||
arrivedBitmap = BitmapDescriptorFactory.fromResource(R.drawable.arrow_arrived_img)
|
||||
unArrivedBitmap = BitmapDescriptorFactory.fromResource(R.drawable.amap_bus_smooth_route)
|
||||
}
|
||||
overLayerView?.background = resources.getDrawable(if (resetDrawable != -1) resetDrawable else R.drawable.amap_reset)
|
||||
arrivedBitmap = BitmapDescriptorFactory.fromResource(if (arrivedDrawable != -1) arrivedDrawable else R.drawable.taxi_map_arrow_arrived)
|
||||
unArrivedBitmap = BitmapDescriptorFactory.fromResource(if (unArrivedDrawable != -1) unArrivedDrawable else R.drawable.taxi_map_arrow_un_arrive)
|
||||
CallerPlanningRottingListenerManager.addListener(TAG, moGoAutopilotPlanningListener)
|
||||
initAMapView(context)
|
||||
// 注册定位监听
|
||||
@@ -157,19 +179,12 @@ class OverMapView @JvmOverloads constructor(
|
||||
mCameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel.toFloat())
|
||||
mAMap = mMapView!!.map
|
||||
mCustomMapStyleOptions = CustomMapStyleOptions()
|
||||
if (isTaxi(FunctionBuildConfig.appIdentityMode)) {
|
||||
|
||||
if (!mapStylePath.isNullOrEmpty() && !mapStyleExtraPath.isNullOrEmpty()) {
|
||||
mCustomMapStyleOptions!!.styleData =
|
||||
MapAssetStyleUtils.getAssetsStyle(getContext(), "over_view_style.data")
|
||||
MapAssetStyleUtils.getAssetsStyle(getContext(), mapStylePath)
|
||||
mCustomMapStyleOptions!!.styleExtraData =
|
||||
MapAssetStyleUtils.getAssetsExtraStyle(getContext(), "over_view_style_extra.data")
|
||||
} else {
|
||||
mCustomMapStyleOptions!!.styleData =
|
||||
MapAssetStyleUtils.getAssetsStyle(getContext(), "over_view_style_bus.data")
|
||||
mCustomMapStyleOptions!!.styleExtraData =
|
||||
MapAssetStyleUtils.getAssetsExtraStyle(
|
||||
getContext(),
|
||||
"over_view_style_extra_bus.data"
|
||||
)
|
||||
MapAssetStyleUtils.getAssetsExtraStyle(getContext(), mapStyleExtraPath)
|
||||
}
|
||||
mAMap?.setOnMapLoadedListener {
|
||||
Log.d(TAG, "---onMapLoaded---")
|
||||
@@ -227,36 +242,23 @@ class OverMapView @JvmOverloads constructor(
|
||||
* 自定义导航View和路况状态
|
||||
*/
|
||||
private fun customOptions() {
|
||||
if (isTaxi(FunctionBuildConfig.appIdentityMode)) {
|
||||
mCarMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_car_icon))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
mCompassMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.amap_custom_corner))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
} else {
|
||||
mCarMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_bus_icon))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
mCompassMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.amap_bus_corner))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
}
|
||||
mCarMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(if (carDrawable != -1) carDrawable else R.drawable.map_car_icon))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
mCompassMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(if (compassDrawable != -1) compassDrawable else R.drawable.amap_custom_corner))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
mStartMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_dir_start))
|
||||
.icon(BitmapDescriptorFactory.fromResource(if (startPointDrawable != -1) startPointDrawable else R.drawable.module_small_map_view_dir_start))
|
||||
)
|
||||
mEndMarker = mAMap!!.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_dir_end))
|
||||
.icon(BitmapDescriptorFactory.fromResource(if (endPointDrawable != -1) endPointDrawable else R.drawable.module_small_map_view_dir_end))
|
||||
)
|
||||
}
|
||||
|
||||
@@ -558,10 +560,14 @@ class OverMapView @JvmOverloads constructor(
|
||||
for (i in coordinates.indices) {
|
||||
if (i <= locIndex) {
|
||||
// 已走过的置灰
|
||||
textureList.add(arrivedBitmap)
|
||||
arrivedBitmap?.let {
|
||||
textureList.add(it)
|
||||
}
|
||||
} else {
|
||||
// 未走过的纹理
|
||||
textureList.add(unArrivedBitmap)
|
||||
unArrivedBitmap?.let {
|
||||
textureList.add(it)
|
||||
}
|
||||
}
|
||||
texIndexList.add(i)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<declare-styleable name="OverMapView">
|
||||
<!-- 地图样式asset目录下的路径 -->
|
||||
<attr name="mapStylePath" format="string" />
|
||||
<attr name="mapStyleExtraPath" format="string" />
|
||||
<!-- 自车模型图片 -->
|
||||
<attr name="carDrawable" format="reference" />
|
||||
<!-- 罗盘图片 -->
|
||||
<attr name="compassDrawable" format="reference" />
|
||||
<!-- 起点图片 -->
|
||||
<attr name="startPointDrawable" format="reference" />
|
||||
<!-- 终点图片 -->
|
||||
<attr name="endPointDrawable" format="reference" />
|
||||
<!-- 已走过路线的图片 -->
|
||||
<attr name="arrivedDrawable" format="reference" />
|
||||
<!-- 未走过路线的图片 -->
|
||||
<attr name="unArrivedDrawable" format="reference" />
|
||||
<!-- 重置位置图片 -->
|
||||
<attr name="resetDrawable" format="reference" />
|
||||
</declare-styleable>
|
||||
</resources>
|
||||
@@ -1,5 +1,5 @@
|
||||
# 工控机PB文件 用于生成Java Bean
|
||||
|
||||
# ***鹰眼自用PB文件放在单独文件夹(personal)目的是为了区分工控机PB还是自用PB***
|
||||
## 1. studio中*.proto文件中如果出现“Cannot resolve symbol 'xxxx'”提示
|
||||
**不影响正常编译,只影响美观以及无法在proto文件中跳转**
|
||||
~~~
|
||||
@@ -15,7 +15,6 @@
|
||||
~~~
|
||||
|
||||
# 工控机透传OBU V2I PB转换
|
||||
***鹰眼自用PB文件放在单独文件夹(personal)目的是为了区分工控机PB还是自用PB***
|
||||
|工控机原始PB文件|转换后鹰眼所用PB|
|
||||
|:-|:-|
|
||||
|obu_warning_event.proto|personal/obu_penetrate.proto、personal/obu_scene.proto|
|
||||
|
||||
@@ -201,7 +201,7 @@ public interface OnAdasListener {
|
||||
* @param header 头
|
||||
* @param spatWarningData 数据
|
||||
*/
|
||||
void onoObuSpatWarning(MessagePad.Header header, ObuScene.SpatWarningData spatWarningData);
|
||||
void onObuSpatWarning(MessagePad.Header header, ObuScene.SpatWarningData spatWarningData);
|
||||
|
||||
/**
|
||||
* OBU RSI预警信息
|
||||
@@ -209,7 +209,7 @@ public interface OnAdasListener {
|
||||
* @param header 头
|
||||
* @param rsiWarningData 数据
|
||||
*/
|
||||
void onoObuRsiWarning(MessagePad.Header header, ObuScene.RsiWarningData rsiWarningData);
|
||||
void onObuRsiWarning(MessagePad.Header header, ObuScene.RsiWarningData rsiWarningData);
|
||||
|
||||
/**
|
||||
* OBU RSM预警信息
|
||||
@@ -217,7 +217,7 @@ public interface OnAdasListener {
|
||||
* @param header 头
|
||||
* @param rsmWarningData 数据
|
||||
*/
|
||||
void onoObuRsmWarning(MessagePad.Header header, ObuScene.RsmWarningData rsmWarningData);
|
||||
void onObuRsmWarning(MessagePad.Header header, ObuScene.RsmWarningData rsmWarningData);
|
||||
|
||||
/**
|
||||
* OBU 地图匹配结果
|
||||
@@ -225,7 +225,7 @@ public interface OnAdasListener {
|
||||
* @param header 头
|
||||
* @param mapMatchData 数据
|
||||
*/
|
||||
void onoObuObuMapMath(MessagePad.Header header, ObuScene.MapMatchData mapMatchData);
|
||||
void onObuMapMath(MessagePad.Header header, ObuScene.MapMatchData mapMatchData);
|
||||
|
||||
/**
|
||||
* 重构后的功能状态
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
package com.zhidao.support.adas.high.msg;
|
||||
|
||||
import android.os.SystemClock;
|
||||
import android.util.Log;
|
||||
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import com.google.protobuf.UnknownFieldSet;
|
||||
import com.mogo.support.obu.ObuBase;
|
||||
import com.mogo.support.obu.ObuPenetrate;
|
||||
import com.mogo.support.obu.ObuScene;
|
||||
import com.zhidao.support.adas.high.AdasChannel;
|
||||
import com.zhidao.support.adas.high.OnAdasListener;
|
||||
import com.zhidao.support.adas.high.common.CupidLogUtils;
|
||||
import com.zhidao.support.adas.high.protocol.RawData;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import mogo.v2x.ObuWarningEvent;
|
||||
|
||||
|
||||
@@ -20,39 +24,358 @@ public class ObuWarningDataMessage extends MyAbstractMessageHandler {
|
||||
|
||||
@Override
|
||||
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
|
||||
ObuWarningEvent.ObuWarningData obuWarningData = ObuWarningEvent.ObuWarningData.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("OBU预警事件", raw.receiveTime);
|
||||
long nowTime = 0;
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
// adasListener.onObuWarningData(raw.getHeader(), obuWarningData);
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("OBU预警事件", nowTime);
|
||||
|
||||
|
||||
|
||||
// ObuPenetrate.WarningData warningData = ObuPenetrate.WarningData.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
// UnknownFieldSet set = warningData.getMapMatchData().getUnknownFields();
|
||||
//
|
||||
// Log.i("ddd", "set.getField(7).getVarintList()=" + set.getField(7).getVarintList());
|
||||
// Long a = set.getField(7).getVarintList().get(0);
|
||||
//
|
||||
// ObuScene.MapMatchData.Builder MapMatchDataBuilder = warningData.getMapMatchData().toBuilder().setSpeedMinLimit(a * 0.02D);
|
||||
// MapMatchDataBuilder.setUnknownFields(UnknownFieldSet.getDefaultInstance());
|
||||
// ObuPenetrate.WarningData.Builder builder = warningData.toBuilder();
|
||||
// builder.setMapMatchData(MapMatchDataBuilder);
|
||||
// warningData = builder.build();
|
||||
//// Log.i("ddd","a="+a);
|
||||
//
|
||||
//
|
||||
// ObuWarningEvent.ObuWarningData obuWarningData = ObuWarningEvent.ObuWarningData.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
// AdasChannel.calculateTimeConsumingOnDispatchRaw("OBU预警事件", raw.receiveTime);
|
||||
// long nowTime = 0;
|
||||
// if (CupidLogUtils.isEnableLog())
|
||||
// nowTime = SystemClock.elapsedRealtime();
|
||||
// if (adasListener != null) {
|
||||
// adasListener.onObuWarningData(raw.getHeader(), warningData);
|
||||
// adasListener.onObuWarningData(raw.getHeader(), obuWarningData);
|
||||
// }
|
||||
// AdasChannel.calculateTimeConsumingBusiness("OBU预警事件", nowTime);
|
||||
|
||||
ObuPenetrate.PenetrateWarningData warningData = ObuPenetrate.PenetrateWarningData.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("OBU预警事件", raw.receiveTime);
|
||||
long nowTime = 0;
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
if (warningData.getMsgDataType() == 1) {//rsiEvent
|
||||
if (warningData.hasRsiEvent()) {
|
||||
ObuScene.RsiWarningData rsiWarningData = warningData.getRsiEvent();
|
||||
ObuScene.RsiWarningData.Builder rsiWarningDataBuilder = rsiWarningData.toBuilder();
|
||||
int size = rsiWarningData.getWarningMsgCount();
|
||||
for (int i = 0; i < size; i++) {
|
||||
ObuBase.RsiWarning warning = rsiWarningData.getWarningMsg(i);
|
||||
ObuBase.RsiWarning.Builder warningBuilder = warning.toBuilder();
|
||||
if (warning.hasPosition()) {
|
||||
ObuBase.PositionLLV positionLLV = warning.getPosition();
|
||||
ObuBase.PositionLLV.Builder positionLLVBuilder = positionLLV.toBuilder();
|
||||
if (positionLLV.hasPosition()) {
|
||||
ObuBase.PositionOffset positionOffset = positionLLV.getPosition();
|
||||
ObuBase.PositionOffset.Builder positionOffsetBuilder = positionOffset.toBuilder();
|
||||
if (positionOffset.hasPositionLL1()) {
|
||||
ObuBase.PositionLL1 positionLL1 = positionOffset.getPositionLL1();
|
||||
ObuBase.PositionLL1.Builder positionLL1Builder = positionLL1.toBuilder();
|
||||
UnknownFieldSet set = positionLL1.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL1Builder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL1Builder.setLatitude(value);
|
||||
}
|
||||
positionLL1Builder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionOffsetBuilder.setPositionLL1(positionLL1Builder);
|
||||
positionLLVBuilder.setPosition(positionOffsetBuilder);
|
||||
}
|
||||
if (positionOffset.hasPositionLL2()) {
|
||||
ObuBase.PositionLL2 positionLL2 = positionOffset.getPositionLL2();
|
||||
ObuBase.PositionLL2.Builder positionLL2Builder = positionLL2.toBuilder();
|
||||
UnknownFieldSet set = positionLL2.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL2Builder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL2Builder.setLatitude(value);
|
||||
}
|
||||
positionLL2Builder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionOffsetBuilder.setPositionLL2(positionLL2Builder);
|
||||
positionLLVBuilder.setPosition(positionOffsetBuilder);
|
||||
}
|
||||
if (positionOffset.hasPositionLL3()) {
|
||||
ObuBase.PositionLL3 positionLL3 = positionOffset.getPositionLL3();
|
||||
ObuBase.PositionLL3.Builder positionLL3Builder = positionLL3.toBuilder();
|
||||
UnknownFieldSet set = positionLL3.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL3Builder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL3Builder.setLatitude(value);
|
||||
}
|
||||
positionLL3Builder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionOffsetBuilder.setPositionLL3(positionLL3Builder);
|
||||
positionLLVBuilder.setPosition(positionOffsetBuilder);
|
||||
}
|
||||
if (positionOffset.hasPositionLL4()) {
|
||||
ObuBase.PositionLL4 positionLL4 = positionOffset.getPositionLL4();
|
||||
ObuBase.PositionLL4.Builder positionLL4Builder = positionLL4.toBuilder();
|
||||
UnknownFieldSet set = positionLL4.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL4Builder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL4Builder.setLatitude(value);
|
||||
}
|
||||
positionLL4Builder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionOffsetBuilder.setPositionLL4(positionLL4Builder);
|
||||
positionLLVBuilder.setPosition(positionOffsetBuilder);
|
||||
}
|
||||
if (positionOffset.hasPositionLL5()) {
|
||||
ObuBase.PositionLL5 positionLL5 = positionOffset.getPositionLL5();
|
||||
ObuBase.PositionLL5.Builder positionLL5Builder = positionLL5.toBuilder();
|
||||
UnknownFieldSet set = positionLL5.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL5Builder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL5Builder.setLatitude(value);
|
||||
}
|
||||
positionLL5Builder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionOffsetBuilder.setPositionLL5(positionLL5Builder);
|
||||
positionLLVBuilder.setPosition(positionOffsetBuilder);
|
||||
}
|
||||
if (positionOffset.hasPositionLL6()) {
|
||||
ObuBase.PositionLL6 positionLL6 = positionOffset.getPositionLL6();
|
||||
ObuBase.PositionLL6.Builder positionLL6Builder = positionLL6.toBuilder();
|
||||
UnknownFieldSet set = positionLL6.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL6Builder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLL6Builder.setLatitude(value);
|
||||
}
|
||||
positionLL6Builder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionOffsetBuilder.setPositionLL6(positionLL6Builder);
|
||||
positionLLVBuilder.setPosition(positionOffsetBuilder);
|
||||
}
|
||||
if (positionOffset.hasPositionLatLon()) {
|
||||
ObuBase.PositionLatLon positionLatLon = positionOffset.getPositionLatLon();
|
||||
ObuBase.PositionLatLon.Builder positionLatLonBuilder = positionLatLon.toBuilder();
|
||||
UnknownFieldSet set = positionLatLon.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLatLonBuilder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
positionLatLonBuilder.setLatitude(value);
|
||||
}
|
||||
positionLatLonBuilder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionOffsetBuilder.setPositionLatLon(positionLatLonBuilder);
|
||||
positionLLVBuilder.setPosition(positionOffsetBuilder);
|
||||
}
|
||||
}
|
||||
if (positionLLV.hasVertical()) {
|
||||
ObuBase.VerticalLLV verticalLLV = positionLLV.getVertical();
|
||||
ObuBase.VerticalLLV.Builder verticalLLVBuilder = verticalLLV.toBuilder();
|
||||
UnknownFieldSet set = verticalLLV.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 1, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
verticalLLVBuilder.setOffset1(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 2, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
verticalLLVBuilder.setOffset2(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 3, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
verticalLLVBuilder.setOffset3(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 4, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
verticalLLVBuilder.setOffset4(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 5, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
verticalLLVBuilder.setOffset5(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 6, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
verticalLLVBuilder.setOffset6(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 7, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
verticalLLVBuilder.setElevation(value);
|
||||
}
|
||||
verticalLLVBuilder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
positionLLVBuilder.setVertical(verticalLLVBuilder);
|
||||
}
|
||||
|
||||
warningBuilder.setPosition(positionLLVBuilder);
|
||||
}
|
||||
UnknownFieldSet set = warning.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 6, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
warningBuilder.setSpeedMaxLimit(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 7, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
warningBuilder.setSpeedMinLimit(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 8, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
warningBuilder.setEventRadius(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 11, 100.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
warningBuilder.setDistance(value);
|
||||
}
|
||||
warningBuilder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
rsiWarningDataBuilder.setWarningMsg(i, warningBuilder);
|
||||
}
|
||||
rsiWarningData = rsiWarningDataBuilder.build();
|
||||
adasListener.onObuRsiWarning(raw.getHeader(), rsiWarningData);
|
||||
}
|
||||
} else if (warningData.getMsgDataType() == 2) {//rsmEvent
|
||||
if (warningData.hasRsmEvent()) {
|
||||
ObuScene.RsmWarningData rsmWarningData = warningData.getRsmEvent();
|
||||
ObuScene.RsmWarningData.Builder rsmWarningDataBuilder = rsmWarningData.toBuilder();
|
||||
if (rsmWarningData.hasParticipant()) {
|
||||
ObuBase.Participant participant = rsmWarningData.getParticipant();
|
||||
ObuBase.Participant.Builder participantBuilder = participant.toBuilder();
|
||||
UnknownFieldSet set = participant.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 5, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
participantBuilder.setLatitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 6, 10000000.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
participantBuilder.setLongitude(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 7, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
participantBuilder.setElevation(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 8, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
participantBuilder.setSpeed(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 9, 80.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
participantBuilder.setHeading(value);
|
||||
}
|
||||
participantBuilder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
if (participant.hasAccFourAxes()) {
|
||||
ObuBase.AccFourAxes accFourAxes = participant.getAccFourAxes();
|
||||
ObuBase.AccFourAxes.Builder accFourAxesBuilder = accFourAxes.toBuilder();
|
||||
UnknownFieldSet accFourAxesSet = accFourAxes.getUnknownFields();
|
||||
UnknownFieldSet.Builder accFourAxesSetBuilder = accFourAxesSet.toBuilder();
|
||||
value = getVarint(accFourAxesSet, accFourAxesSetBuilder, 1, 100.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
accFourAxesBuilder.setAccLng(value);
|
||||
}
|
||||
value = getVarint(accFourAxesSet, accFourAxesSetBuilder, 2, 100.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
accFourAxesBuilder.setAccLat(value);
|
||||
}
|
||||
value = getVarint(accFourAxesSet, accFourAxesSetBuilder, 3, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
accFourAxesBuilder.setAccVert(value);
|
||||
}
|
||||
value = getVarint(accFourAxesSet, accFourAxesSetBuilder, 4, 100.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
accFourAxesBuilder.setAccYaw(value);
|
||||
}
|
||||
accFourAxesBuilder.setUnknownFields(accFourAxesSetBuilder.build());
|
||||
participantBuilder.setAccFourAxes(accFourAxesBuilder);
|
||||
}
|
||||
if (participant.hasPtcSize()) {
|
||||
ObuBase.VehicleSize vehicleSize = participant.getPtcSize();
|
||||
ObuBase.VehicleSize.Builder vehicleSizeBuilder = vehicleSize.toBuilder();
|
||||
vehicleSizeBuilder.setHeight(vehicleSize.getHeight() * 5);
|
||||
participantBuilder.setPtcSize(vehicleSizeBuilder);
|
||||
}
|
||||
rsmWarningDataBuilder.setParticipant(participantBuilder);
|
||||
}
|
||||
if (rsmWarningData.hasWarningMsg()) {
|
||||
ObuBase.V2xWarning warning = rsmWarningData.getWarningMsg();
|
||||
ObuBase.V2xWarning.Builder warningBuilder = warning.toBuilder();
|
||||
UnknownFieldSet warningSet = warning.getUnknownFields();
|
||||
UnknownFieldSet.Builder warningSetBuilder = warningSet.toBuilder();
|
||||
double value = getVarint(warningSet, warningSetBuilder, 4, 100.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
warningBuilder.setDistance(value);
|
||||
}
|
||||
warningBuilder.setUnknownFields(warningSetBuilder.build());
|
||||
rsmWarningDataBuilder.setWarningMsg(warningBuilder);
|
||||
}
|
||||
rsmWarningData = rsmWarningDataBuilder.build();
|
||||
adasListener.onObuRsmWarning(raw.getHeader(), rsmWarningData);
|
||||
}
|
||||
} else if (warningData.getMsgDataType() == 3) {//spatEvent
|
||||
if (warningData.hasSpatEvent()) {
|
||||
ObuScene.SpatWarningData spatWarningData = warningData.getSpatEvent();
|
||||
ObuScene.SpatWarningData.Builder spatWarningDataBuilder = spatWarningData.toBuilder();
|
||||
int size = spatWarningData.getLightsCount();
|
||||
for (int i = 0; i < size; i++) {
|
||||
ObuBase.SpatLight spatLight = spatWarningData.getLights(i);
|
||||
ObuBase.SpatLight.Builder spatLightBuilder = spatLight.toBuilder();
|
||||
UnknownFieldSet set = spatLight.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 4, 10.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
spatLightBuilder.setCountDown(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 5, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
spatLightBuilder.setSuggestMaxSpeed(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 6, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
spatLightBuilder.setSuggestMinSpeed(value);
|
||||
}
|
||||
spatLightBuilder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
spatWarningDataBuilder.setLights(i, spatLightBuilder);
|
||||
}
|
||||
spatWarningData = spatWarningDataBuilder.build();
|
||||
adasListener.onObuSpatWarning(raw.getHeader(), spatWarningData);
|
||||
}
|
||||
} else if (warningData.getMsgDataType() == 4) {//mapMatchData
|
||||
if (warningData.hasMapMatchData()) {
|
||||
ObuScene.MapMatchData mapMatchData = warningData.getMapMatchData();
|
||||
ObuScene.MapMatchData.Builder mapMatchDataBuilder = mapMatchData.toBuilder();
|
||||
UnknownFieldSet set = mapMatchData.getUnknownFields();
|
||||
UnknownFieldSet.Builder unknownFieldSetBuilder = set.toBuilder();
|
||||
double value = getVarint(set, unknownFieldSetBuilder, 6, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
mapMatchDataBuilder.setSpeedMaxLimit(value);
|
||||
}
|
||||
value = getVarint(set, unknownFieldSetBuilder, 7, 50.0D);
|
||||
if (value != Double.MIN_VALUE) {
|
||||
mapMatchDataBuilder.setSpeedMinLimit(value);
|
||||
}
|
||||
mapMatchDataBuilder.setUnknownFields(unknownFieldSetBuilder.build());
|
||||
mapMatchData = mapMatchDataBuilder.build();
|
||||
adasListener.onObuMapMath(raw.getHeader(), mapMatchData);
|
||||
}
|
||||
}
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("OBU预警事件", nowTime);
|
||||
}
|
||||
|
||||
private double getVarint(final UnknownFieldSet set, final UnknownFieldSet.Builder builder, final int number, final double precision) {
|
||||
if (set.hasField(number)) {
|
||||
List<Long> list = set.getField(number).getVarintList();
|
||||
if (list != null && !list.isEmpty()) {
|
||||
Long value = list.get(0);
|
||||
if (value != null) {
|
||||
builder.clearField(number);
|
||||
return value / precision;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Double.MIN_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user