[6.7.0] finish the func of car

This commit is contained in:
EmArrow
2024-09-25 21:17:52 +08:00
parent 6f05f9247b
commit 24d820cc64
35 changed files with 180 additions and 367 deletions

View File

@@ -40,9 +40,6 @@ class FuncBizProvider : IMoGoFuncBizProvider {
dispatchAutoPilotManager.init(context)
cronTaskManager.startCronTask()
OverviewDb.getDb(context)
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
MogoTrafficLightManager.INSTANCE.initServer(context)
}
VipCarManager.INSTANCE.initServer(context)
if (V2NCarTypeCheck.verifyCarType()) {
V2XEventManager.init(context)

View File

@@ -1,28 +0,0 @@
package com.mogo.eagle.core.function.datacenter.aicloud
import android.content.Context
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.cloud.socket.SocketManager
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider
@Route(path = MogoServicePaths.PATH_AI_CLOUD)
class AiCloudSocketBizProvider : IMoGoFunctionServerProvider {
override val functionName: String
get() = "AiCloudSocketBizProvider"
override fun init(context: Context?) {
context?.let {
SocketManager.getInstance().registerOnMessageListener(401012, V2XMessageListener401012())
SocketManager.getInstance().registerOnMessageListener(401018, V2XMessageListener401018())
SocketManager.getInstance().registerOnMessageListener(402000, V2XMessageListener402000())
SocketManager.getInstance().registerOnMessageListener(404000, V2XMessageListener404000())
//SocketManager.getInstance().registerOnMessageListener(503000, V2XMessageListener503000())
SocketManager.getInstance().registerOnMessageListener(70001, V2XMessageListener70001())
}
}
override fun onDestroy() {
}
}

View File

@@ -1,96 +0,0 @@
package com.mogo.eagle.core.function.datacenter.aicloud
import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener
import com.mogo.eagle.core.data.v2x.*
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import roadwork.Road
internal class V2XMessageListener70001: IMogoCloudSocketOnMessageListener<V2XRoadXData> {
override fun target(msgType: Int): Class<V2XRoadXData> = V2XRoadXData::class.java
override fun onMsgReceived(msgType: Int, data: V2XRoadXData?) {
if (msgType != 70001) {
return
}
if (data == null) {
return
}
CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadEventX(data = data))
}
}
internal class V2XMessageListener401012: IMogoCloudSocketOnMessageListener<V2XMarkerCardResult> {
override fun target(msgType: Int): Class<V2XMarkerCardResult> = V2XMarkerCardResult::class.java
override fun onMsgReceived(msgType: Int, data: V2XMarkerCardResult?) {
if (msgType != 401012) {
return
}
if (data == null) {
return
}
CallerCloudListenerManager.invokeSocketAck(V2XEvent.Road(data = data))
}
}
internal class V2XMessageListener401018: IMogoCloudSocketOnMessageListener<V2XWarningTarget> {
override fun target(msgType: Int): Class<V2XWarningTarget> = V2XWarningTarget::class.java
override fun onMsgReceived(msgType: Int, data: V2XWarningTarget?) {
if (msgType != 401018) {
return
}
if (data == null) {
return
}
CallerCloudListenerManager.invokeSocketAck(V2XEvent.Warning(data = data))
}
}
internal class V2XMessageListener402000: IMogoCloudSocketOnMessageListener<V2XOptimalRoute> {
override fun target(msgType: Int): Class<V2XOptimalRoute> = V2XOptimalRoute::class.java
override fun onMsgReceived(msgType: Int, data: V2XOptimalRoute?) {
if (msgType != 402000) {
return
}
if (data == null) {
return
}
CallerCloudListenerManager.invokeSocketAck(V2XEvent.OptimalRoute(data = data))
}
}
internal class V2XMessageListener404000: IMogoCloudSocketOnMessageListener<V2XAdvanceWarning> {
override fun target(msgType: Int): Class<V2XAdvanceWarning> = V2XAdvanceWarning::class.java
override fun onMsgReceived(msgType: Int, data: V2XAdvanceWarning?) {
if (msgType != 404000) {
return
}
if (data == null) {
return
}
CallerCloudListenerManager.invokeSocketAck(V2XEvent.ForwardsWarning(data = data))
}
}
internal class V2XMessageListener503000: IMogoCloudSocketOnMessageListener<Road.RW_PB> {
override fun target(msgType: Int): Class<Road.RW_PB> = Road.RW_PB::class.java
override fun onMsgReceived(msgType: Int, data: Road.RW_PB?) {
if (msgType != 503000) {
return
}
if (data == null) {
return
}
CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadAI(data = data))
}
}

View File

@@ -0,0 +1,34 @@
package com.mogo.eagle.core.function.datacenter.biz
import android.content.Context
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.enums.Carmodel
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizProvider
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
@Route(path = MogoServicePaths.PATH_DATA_CENTER_BIZ_FUNCTION)
class DataCenterBizProvider:IDataCenterBizProvider {
override val functionName: String
get() = "DataCenterBizProvider"
override fun init(context: Context?) {
}
override fun notifyCarMode(carModel: Carmodel) {
CallerDataCenterBizListener.invokeCarRes(carModel.resId)
}
override fun notifyPlateNumber(plateNumber: String?) {
CallerDataCenterBizListener.invokeCarNo(plateNumber)
}
override fun onDestroy() {
}
}

View File

@@ -31,7 +31,6 @@ class SpeedLimitDispatcher : ILimitingVelocityListener {
/**
* 地图限速数据
*/
// @BizConfig(FuncBizConfig.V2I, "", FuncBizConfig.BIZ_SLW) //todo emArrow 重新考虑放的位置
override fun onUnion(limitingVelocity: Int, sourceType: DataSourceType) {
super.onUnion(limitingVelocity, sourceType)
when (sourceType) { // obu 优先级高于 map体现链路能力

View File

@@ -5,8 +5,6 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.data.enums.Carmodel
import com.mogo.eagle.core.function.api.och.IOchFunctionCallNotify
import com.mogo.eagle.core.function.call.och.CallerOchBizFunctionCall4EagleManager
import com.mogo.eagle.core.function.hmi.R
import kotlinx.android.synthetic.main.view_bone_container.view.clBoneBiz
@@ -16,9 +14,9 @@ class BoneContainerView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), IOchFunctionCallNotify {
) : ConstraintLayout(context, attrs, defStyleAttr) {
companion object{
companion object {
private const val TAG = "BoneContainerView"
}
@@ -29,14 +27,6 @@ class BoneContainerView @JvmOverloads constructor(
private var logOut: (() -> Unit)? = null
override fun onAttachedToWindow() {
super.onAttachedToWindow()
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
}
private fun initView() {
clBoneTab.loginOut {
CallerOchBizFunctionCall4EagleManager.logout()
@@ -47,17 +37,8 @@ class BoneContainerView @JvmOverloads constructor(
clBoneBiz.addView(view)
}
fun loginOut(logOut:(() -> Unit)){
fun loginOut(logOut: (() -> Unit)) {
this.logOut = logOut
}
override fun notifyCarMode(carModel: Carmodel?) {
super.notifyCarMode(carModel)
clBoneTab.setCarMode(carModel)
}
override fun notifyPlateNumber(plateNumber: String?) {
super.notifyPlateNumber(plateNumber)
clBoneTab.setCarNo(plateNumber)
}
}

View File

@@ -4,7 +4,6 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.data.enums.Carmodel
import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager
import com.mogo.eagle.core.function.hmi.R
@@ -115,18 +114,6 @@ class BoneTabLayout @JvmOverloads constructor(
})
}
fun setCarNo(carNo: String?) {
carInfoTabView.setCarNo(carNo)
}
fun setLoginInfo(loginNo: String) {
carInfoTabView.setLoginInfo(loginNo)
}
fun setCarMode(carModel: Carmodel?) {
carInfoTabView.setCarMode(carModel)
}
fun loginOut(logOut: (() -> Unit)) {
UiThreadHandler.post {
this.logOut = logOut

View File

@@ -4,21 +4,28 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.enums.Carmodel
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener
import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener
import com.mogo.eagle.core.function.api.och.IOchFunctionCallNotify
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.bone.BoneTabLayout
import com.mogo.eagle.core.function.hmi.ui.tools.OfflineMapDialog
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
@@ -29,13 +36,15 @@ import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.map.MogoData
import kotlinx.android.synthetic.main.view_bone_container.view.clBoneTab
import kotlinx.android.synthetic.main.view_car_info_tab.view.ivCarType
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADMapVersion
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADVersion
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADVersionName
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarExit
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarLoginInfo
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarNo
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvHDMapUpdate
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvHDMapVersion
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvPADUpdate
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvPadVersion
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvSnInfo
@@ -55,7 +64,7 @@ class CarInfoTabView @JvmOverloads constructor(
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoCheckAutoPilotBtnListener,
IMoGoAutopilotStatusListener, IMoGoDevaToolsListener {
IMoGoAutopilotStatusListener, IMoGoDevaToolsListener, IDataCenterBizListener {
companion object {
private const val TAG = "CarInfoTabView"
@@ -77,6 +86,7 @@ class CarInfoTabView @JvmOverloads constructor(
CallerHmiListenerManager.addListener(TAG, this)
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
CallerDevaToolsListenerManager.addListener(TAG, this)
CallerDataCenterBizListener.addListener(TAG, this)
}
override fun onDetachedFromWindow() {
@@ -84,6 +94,7 @@ class CarInfoTabView @JvmOverloads constructor(
CallerHmiListenerManager.removeListener(TAG)
CallerAutoPilotStatusListenerManager.removeListener(TAG)
CallerDevaToolsListenerManager.removeListener(TAG)
CallerDataCenterBizListener.removeListener(TAG)
}
private fun initView() {
@@ -110,6 +121,7 @@ class CarInfoTabView @JvmOverloads constructor(
CallerDevaToolsManager.queryAppUpgrade()
}
tvHDMapVersion.text = tvHDMapVersion.text.toString() + DebugConfig.getMapVersion()
//高精地图 检查更新
tvHDMapUpdate.setOnClickListener {
HmiActionLog.hmiAction(
@@ -144,26 +156,24 @@ class CarInfoTabView @JvmOverloads constructor(
tvPadVersion.text = tvPadVersion.text.toString() + AppUtils.getAppVersionName()
}
fun setLoginInfo(loginNo: String) {
override fun invokeCarRes(res: Int) {
super.invokeCarRes(res)
UiThreadHandler.post {
if (loginNo.isNotEmpty()) {
tvCarLoginInfo.text = loginNo.parsePhoneNo()
} else {
tvCarLoginInfo.text = ""
}
ivCarType.setImageResource(res)
}
}
fun setCarNo(carNo: String?) {
override fun invokeCarNo(no: String?) {
super.invokeCarNo(no)
UiThreadHandler.post {
// 监听工控的车牌信息,防止调试跳过无车牌内容(链接先后顺序不一致也会导致数据显示异常)
if (!carNo.isNullOrEmpty()) {
if (tvCarNo.text.isNotEmpty() && tvCarNo.text == carNo) {
if (!no.isNullOrEmpty()) {
if (tvCarNo.text.isNotEmpty() && tvCarNo.text == no) {
CallerLogger.i("$M_HMI$TAG", "已存在车牌号")
return@post
}
tvCarNo.visibility = VISIBLE
tvCarNo.text = carNo.parsePlateNo()
tvCarNo.text = no.parsePlateNo()
} else {
tvCarNo.visibility = GONE
tvCarNo.text = ""
@@ -171,13 +181,12 @@ class CarInfoTabView @JvmOverloads constructor(
}
}
fun setCarMode(carModel: Carmodel?){
fun setLoginInfo(loginNo: String) {
UiThreadHandler.post {
if(carModel == null){
ivCarType.visibility = GONE
}else{
ivCarType.visibility = VISIBLE
ivCarType.setImageResource(carModel.resId)
if (loginNo.isNotEmpty()) {
tvCarLoginInfo.text = loginNo.parsePhoneNo()
} else {
tvCarLoginInfo.text = ""
}
}
}
@@ -193,7 +202,7 @@ class CarInfoTabView @JvmOverloads constructor(
private fun showCurrentAdVersion() {
UiThreadHandler.post {
CallerAutoPilotStatusListenerManager.getDockerVersion()?.let {
tvADVersion.text = tvADVersion.text.toString() + it
tvADVersionName.text = it
}
}
}

View File

@@ -144,7 +144,7 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
if (this@OfflineMapDialog.isShowing) {
progressBar?.let {
if (it.visibility == View.VISIBLE) {
it.progress = if (progress in 1..5) 5 else progress
it.progress = if (progress <= 5) 5 else progress
val p = AutoSizeUtils.dp2px(
context,
770f

View File

@@ -3,8 +3,8 @@
<!-- 设置背景色 -->
<item
android:id="@android:id/background"
android:width="@dimen/dp_760"
android:height="@dimen/dp_10"
android:width="@dimen/dp_770"
android:height="@dimen/dp_20"
android:gravity="center_vertical">
<shape>
<corners android:radius="10dp" />
@@ -33,9 +33,8 @@
<item
android:id="@android:id/progress"
android:width="@dimen/dp_770"
android:height="@dimen/dp_50"
android:gravity="center_vertical"
android:left="@dimen/dp_0">
android:height="@dimen/dp_40"
android:gravity="center_vertical">
<scale
android:drawable="@drawable/icon_progress_patch"
android:scaleWidth="100%" />

View File

@@ -61,10 +61,8 @@
android:layout_height="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_296"
android:max="100"
android:progress="5"
android:progress="0"
android:visibility="gone"
android:paddingStart="@dimen/dp_0"
android:paddingEnd="@dimen/dp_0"
android:progressDrawable="@drawable/progressbar_corner_bg_test"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -7,7 +7,6 @@
android:background="@drawable/bg_tab_item">
<View
android:id="@+id/topViewPos"
android:layout_width="@dimen/dp_856"
android:layout_height="@dimen/dp_100"
android:layout_marginTop="@dimen/dp_21"
@@ -17,6 +16,7 @@
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/topViewPos"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_56"
android:layout_marginStart="@dimen/dp_104"
@@ -30,7 +30,6 @@
<ScrollView
android:layout_width="match_parent"
android:layout_height="@dimen/dp_700"
android:layout_marginTop="@dimen/dp_75"
app:layout_constraintTop_toBottomOf="@+id/topViewPos">
<androidx.constraintlayout.widget.ConstraintLayout
@@ -40,12 +39,13 @@
android:layout_marginEnd="@dimen/dp_40">
<ImageView
android:id="@+id/ivCarType"
android:layout_width="@dimen/dp_760"
android:layout_height="@dimen/dp_400"
android:scaleType="fitXY"
android:src="@drawable/icon_car_default"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:id="@+id/ivCarType"
android:layout_width="@dimen/dp_532"
android:layout_height="@dimen/dp_280"
android:scaleType="fitXY"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
@@ -151,15 +151,28 @@
<TextView
android:id="@+id/tvADVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
android:gravity="center_vertical"
android:text="@string/tab_version_ad_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintLeft_toLeftOf="@+id/tvPadVersion"
app:layout_constraintTop_toBottomOf="@+id/tvPadVersion" />
<TextView
android:id="@+id/tvADVersionName"
android:layout_width="@dimen/dp_514"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="start"
android:lines="2"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintRight_toRightOf="@+id/tvADUpdate"
app:layout_constraintLeft_toRightOf="@+id/tvADVersion"
app:layout_constraintTop_toBottomOf="@+id/tvPadVersion" />
<TextView
android:id="@+id/tvADUpdate"
android:layout_width="wrap_content"
@@ -175,14 +188,14 @@
<TextView
android:id="@+id/tvHDMapVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
android:gravity="center_vertical"
android:text="@string/tab_version_hdmap_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintLeft_toLeftOf="@+id/tvADVersion"
app:layout_constraintTop_toBottomOf="@+id/tvADVersion" />
app:layout_constraintTop_toBottomOf="@+id/tvADVersionName" />
<TextView
android:id="@+id/tvHDMapUpdate"
@@ -198,9 +211,9 @@
<TextView
android:id="@+id/tvADMapVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
android:gravity="center_vertical"
android:text="@string/tab_version_admap_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
@@ -212,12 +225,12 @@
android:layout_width="@dimen/dp_152"
android:layout_height="@dimen/dp_53"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_232"
android:layout_marginTop="@dimen/dp_39"
android:text="@string/tab_sn"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvVersionPos" />
app:layout_constraintTop_toBottomOf="@+id/tvADMapVersion" />
<TextView
android:id="@+id/tvSnInfo"

View File

@@ -33,7 +33,6 @@ class MapBizProvider :IMoGoFunctionServerProvider, IMogoRoma {
MogoRouteOverlayManager.getInstance().init()
MogoTrajectoryOverlayManager.getInstance().init()
MapPointCloudSubscriber.instance
SpeedLimitDataManager.getInstance().start()
RoadCrossCameraManager.instance.init(context)
if(DeviceUtils.isLeOrEb5Model()){ //todo 新增稳定设备类型需要添加目的避免在nuc设备上使用此类功能
romaManager.init()

View File

@@ -72,7 +72,6 @@ class MogoStartUpProvider : IStartUpProvider {
StartupManager.Builder()
.addStartup(DataCenterStartUp())
.addStartup(AutopilotStartUp())
.addStartup(AiCloudBizStartUp())
.addStartup(ObuStartUp())
.addStartup(MapBizStartUp())
.setConfig(config)

View File

@@ -1,28 +0,0 @@
package com.mogo.eagle.core.function.startup.stagetwo
import android.content.Context
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.rousetime.android_startup.AndroidStartup
class AiCloudBizStartUp : AndroidStartup<Boolean>() {
override fun create(context: Context): Boolean {
ARouter.getInstance().build(MogoServicePaths.PATH_AI_CLOUD).navigation()
return true
}
override fun callCreateOnMainThread(): Boolean {
return true
}
override fun waitOnMainThread(): Boolean {
return false
}
override fun dependenciesByName(): List<String> {
val deps = arrayListOf<String>()
deps.add("com.mogo.eagle.core.function.startup.stagetwo.DataCenterStartUp")
return deps
}
}