[6.7.0-tmp]tab car info

This commit is contained in:
EmArrow
2024-09-12 19:24:27 +08:00
parent 9c3ebad6cc
commit d587b50674
14 changed files with 433 additions and 90 deletions

View File

@@ -20,6 +20,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_AD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_ROUTE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_STATUS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_STATUS_QUERY_RESP
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_SYSTEM_STATUS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_TRAJECTORY
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_V2N_EVENT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_VEHICLE
@@ -444,9 +445,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
} else {
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady = false
}
invokeAutopilotStatusRespByQuery(statusInfo)
}
@ChainLog(
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
linkCode = CHAIN_SOURCE_ADAS,
nodeAliasCode = CHAIN_CODE_ADAS_SYSTEM_STATUS,
paramIndexes = [0, 1]
)
override fun onSystemStatus(header: MessagePad.Header?, statusInf: SsmInfo.SsmStatusInf?) {
if (statusInf != null && statusInf.hasAutoPilotReady()) {
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady =

View File

@@ -5,6 +5,7 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.function.hmi.R
import kotlinx.android.synthetic.main.view_bone_tab.view.carInfoTabView
import kotlinx.android.synthetic.main.view_bone_tab.view.tabSwitchCarInfo
import kotlinx.android.synthetic.main.view_bone_tab.view.tabSwitchMore
import kotlinx.android.synthetic.main.view_bone_tab.view.tabSwitchMsgBox
@@ -66,39 +67,36 @@ class BoneTabLayout @JvmOverloads constructor(
when (tabType) {
TabType.CAR_INFO -> {
tabSwitchCarInfo.switchTab(check)
if(check){
}else{
}
carInfoTabView.visibility = if (check) VISIBLE else GONE
}
TabType.MSG_INFO -> {
tabSwitchMsgBox.switchTab(check)
if(check){
if (check) {
}else{
} else {
}
}
TabType.REPORT_INFO -> {
tabSwitchReport.switchTab(check)
if(check){
if (check) {
}else{
} else {
}
}
TabType.MORE_INFO -> {
tabSwitchMore.switchTab(check)
if(check){
if (check) {
}else{
} else {
}
}
else -> {}
}
}

View File

@@ -4,15 +4,204 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
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.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
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.hmi.R
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
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.AppUtils
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_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.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.tvPADUpdate
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvPadVersion
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvSnInfo
import system_master.SsmInfo
import system_master.SystemStatusInfo
class CarInfoTabView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr){
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoCheckAutoPilotBtnListener,
IMoGoAutopilotStatusListener, IMoGoDevaToolsListener {
companion object{
private const val TAG = "CarInfoTabView"
}
private var loginOut: (() -> Unit)? = null
@Volatile
private var isHDCached = false
init {
LayoutInflater.from(context).inflate(R.layout.view_car_info_tab, this, true)
initView()
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerHmiListenerManager.addListener(TAG, this)
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
CallerDevaToolsListenerManager.addListener(TAG, this)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CallerHmiListenerManager.removeListener(TAG)
CallerAutoPilotStatusListenerManager.removeListener(TAG)
CallerDevaToolsListenerManager.removeListener(TAG)
}
private fun initView() {
showCurrentPadVersion()
showCurrentAdVersion()
updateAdHdMapVersion()
tvSnInfo.text = SharedPrefsMgr.getInstance().sn
tvCarExit.setOnClickListener {
loginOut?.invoke()
}
//鹰眼版本 检查更新
tvPADUpdate.setOnClickListener {
HmiActionLog.hmiAction(
"${SceneConstant.M_HMI}${TAG}",
"pad version view clicked"
)
val provider = CallerDevaToolsManager.upgradeProvider()
if (provider?.isDownloading() == true) {
ToastUtils.showShort("正在下载最新版本,请稍候再试...")
return@setOnClickListener
}
CallerDevaToolsManager.queryAppUpgrade()
}
//高精地图 检查更新
tvHDMapUpdate.setOnClickListener {
HmiActionLog.hmiAction(
"${SceneConstant.M_HMI}${TAG}",
mapOf("isHDCached" to isHDCached)
)
if (isHDCached) { // 已缓存
ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded))
} else {// 未缓存
if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode
if ((CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude <= 0.0 && CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude <= 0.0)) {// 未拿到高精的经纬度
ToastUtils.showShort(resources.getString(R.string.location_try_again))
} else { // 拿到了高精的经纬度
val dialog = OfflineMapDialog(context)
dialog.location = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
dialog.show()
}
} else {// 拿到高德的cityCode
OfflineMapDialog(context).show()
}
}
}
MogoData.mogoMapData.get()?.isCityDataCached {
updateHDDataCacheStatus(it)
}
}
private fun showCurrentPadVersion() {
tvPadVersion.text = tvPadVersion.text.toString() + AppUtils.getAppVersionName()
}
fun setLoginInfo(loginNo: String) {
if (loginNo.isNotEmpty()) {
tvCarLoginInfo.text = loginNo.take(3) + "****" + loginNo.takeLast(4)
} else {
tvCarLoginInfo.text = ""
}
}
fun setCarNo(carNo: String) {
// todo emArrow 需要同时监听工控的车牌信息,防止调试跳过无车牌内容(链接先后顺序不一致也会导致数据显示异常)
if (carNo.isEmpty()) {
tvCarNo.visibility = GONE
tvCarNo.text = ""
} else {
tvCarNo.visibility = VISIBLE
tvCarNo.text = carNo.substring(0, 2) + " " + carNo.substring(2);
}
}
fun loginOut(loginOut: (() -> Unit)) {
this.loginOut = loginOut
}
override fun updateHDDataCacheStatus(isCached: Boolean) {
isHDCached = isCached
}
private fun showCurrentAdVersion() {
UiThreadHandler.post {
CallerAutoPilotStatusListenerManager.getDockerVersion()?.let {
tvADVersion.text = tvADVersion.text.toString() + it
}
}
}
override fun onAutopilotDockerInfo(dockerVersion: String) {
super.onAutopilotDockerInfo(dockerVersion)
showCurrentAdVersion()
}
private fun updateAdHdMapVersion() {
if(AppConfigInfo.adHdMapVersion.isNotEmpty()){
tvADMapVersion.text = tvADMapVersion.text.toString() + AppConfigInfo.adHdMapVersion
}
}
override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {
CallerLogger.i(SceneConstant.M_HMI + TAG, "hdMapVer=" + status.hdMapVer)
//hdMapVer返回示例/home/mogo/autopilot/share/hadmap_engine/data/hadmap_data/db.sqlite|bj|2.2.7|对bus路线上的junction进行修改对原609场景修改为6091、6092、6201、 6202四种细分场景并对通往园区路口改为619
if (status.hdMapVer != null && status.hdMapVer.isNotEmpty()) {
//对地图版本进行截取
val city = status.hdMapVer.substringAfter(".sqlite|").substringBefore("|")
val version = status.hdMapVer.substringAfter("$city|").substringBefore("|")
AppConfigInfo.adHdMapVersion = "${city}_${version}"
updateAdHdMapVersion()
}
}
/**
* 定频SSM接口
* 1hz hq m1 MAP350开始支持其他车型MAP360开始支持
* 定频SSM接入后 onStatusQueryResp 状态查询应答接口将弃用
* @param statusInf 数据
*/
override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) {
CallerLogger.i(SceneConstant.M_HMI + TAG, "hdMapVer=" + statusInf.hdMapVer)
//hdMapVer返回示例/home/mogo/autopilot/share/hadmap_engine/data/hadmap_data/db.sqlite|bj|2.2.7|对bus路线上的junction进行修改对原609场景修改为6091、6092、6201、 6202四种细分场景并对通往园区路口改为619
if (statusInf.hdMapVer != null && statusInf.hdMapVer.isNotEmpty()) {
//对地图版本进行截取
val city = statusInf.hdMapVer.substringAfter(".sqlite|").substringBefore("|")
val version = statusInf.hdMapVer.substringAfter("$city|").substringBefore("|")
AppConfigInfo.adHdMapVersion = "${city}_${version}"
updateAdHdMapVersion()
}
}
}

View File

@@ -53,6 +53,7 @@ class SystemVersionView @JvmOverloads constructor(
private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间
private var currentProgress: Int = -1 //当前已下载包体大小
@Volatile
private var isHDCached = false
init {
@@ -67,7 +68,7 @@ class SystemVersionView @JvmOverloads constructor(
//鹰眼版本视图点击事件
ivPadVersion.setOnClickListener {
hmiAction("$M_HMI$$TAG", "pad version view clicked")
hmiAction("$M_HMI$TAG", "pad version view clicked")
val provider = CallerDevaToolsManager.upgradeProvider()
if (provider?.isDownloading() == true) {
ToastUtils.showShort("正在下载最新版本,请稍候再试...")

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/color_B3_000000" />
<corners android:radius="@dimen/dp_10" />
</shape>

View File

@@ -29,7 +29,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dp_224"
android:layout_marginBottom="@dimen/dp_m_2"
android:background="@drawable/bone_tab_bg"
android:background="@drawable/bg_tab_switch"
android:elevation="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"

View File

@@ -4,91 +4,223 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color">
android:background="@drawable/bg_tab_item">
<androidx.constraintlayout.widget.ConstraintLayout
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_21">
android:layout_height="match_parent">
<View
android:id="@+id/topViewPos"
android:layout_width="@dimen/dp_856"
android:layout_height="@dimen/dp_100"
android:background="@drawable/bg_tab_view_top"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_56"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_34"
android:text="@string/tab_car_info"
android:textColor="@color/color_CC_FFFFFF"
android:textSize="@dimen/dp_40"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ivCarType"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_280"
android:layout_marginTop="@dimen/dp_75"
app:layout_constraintTop_toBottomOf="@+id/topViewPos"
tools:ignore="ContentDescription" />
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_21">
<TextView
android:id="@+id/tvCarLoginPos"
android:layout_width="@dimen/dp_152"
android:layout_height="@dimen/dp_53"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_22"
android:text="@string/tab_car_login_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ivCarType" />
<View
android:id="@+id/topViewPos"
android:layout_width="@dimen/dp_856"
android:layout_height="@dimen/dp_100"
android:background="@drawable/bg_tab_view_top"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvCarLoginInfo"
android:layout_width="@dimen/dp_185"
android:layout_height="@dimen/dp_45"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_7"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvCarLoginPos"
app:layout_constraintLeft_toRightOf="@+id/tvCarLoginPos"
app:layout_constraintTop_toTopOf="@+id/tvCarLoginPos" />
<TextView
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_56"
android:layout_marginStart="@dimen/dp_64"
android:layout_marginTop="@dimen/dp_34"
android:text="@string/tab_car_info"
android:textColor="@color/color_CC_FFFFFF"
android:textSize="@dimen/dp_40"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvCarExit"
android:layout_width="@dimen/dp_64"
android:layout_height="@dimen/dp_45"
android:layout_marginEnd="@dimen/dp_60"
android:gravity="center"
android:text="@string/tab_car_exit"
android:textColor="@color/color_FF1943"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvCarLoginInfo"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvCarLoginInfo" />
<ImageView
android:id="@+id/ivCarType"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_280"
android:layout_marginTop="@dimen/dp_75"
app:layout_constraintTop_toBottomOf="@+id/topViewPos"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tvCarNoPos"
android:layout_width="@dimen/dp_152"
android:layout_height="@dimen/dp_53"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_49"
android:text="@string/tab_car_no"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCarLoginPos" />
<TextView
android:id="@+id/tvCarLoginPos"
android:layout_width="@dimen/dp_152"
android:layout_height="@dimen/dp_53"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_22"
android:text="@string/tab_car_login_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ivCarType" />
<TextView
android:id="@+id/tvCarLoginInfo"
android:layout_width="@dimen/dp_185"
android:layout_height="@dimen/dp_45"
android:layout_marginStart="@dimen/dp_16"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvCarLoginPos"
app:layout_constraintLeft_toRightOf="@+id/tvCarLoginPos"
app:layout_constraintTop_toTopOf="@+id/tvCarLoginPos" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tvCarExit"
android:layout_width="@dimen/dp_64"
android:layout_height="@dimen/dp_45"
android:layout_marginEnd="@dimen/dp_60"
android:gravity="center"
android:text="@string/tab_car_exit"
android:textColor="@color/color_FF1943"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvCarLoginInfo"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvCarLoginInfo" />
<TextView
android:id="@+id/tvCarNoPos"
android:layout_width="@dimen/dp_152"
android:layout_height="@dimen/dp_53"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_49"
android:text="@string/tab_car_no"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCarLoginPos" />
<TextView
android:id="@+id/tvCarNo"
android:layout_width="@dimen/dp_185"
android:layout_height="@dimen/dp_72"
android:layout_marginStart="@dimen/dp_16"
android:background="@drawable/bg_tab_car_no"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/tvCarNoPos"
app:layout_constraintLeft_toRightOf="@+id/tvCarNoPos"
app:layout_constraintTop_toTopOf="@+id/tvCarNoPos" />
<TextView
android:id="@+id/tvVersionPos"
android:layout_width="@dimen/dp_152"
android:layout_height="@dimen/dp_53"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginTop="@dimen/dp_68"
android:text="@string/tab_version_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCarNoPos" />
<TextView
android:id="@+id/tvPadVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginStart="@dimen/dp_16"
android:gravity="center"
android:text="@string/tab_version_pad_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvVersionPos"
app:layout_constraintLeft_toRightOf="@+id/tvVersionPos"
app:layout_constraintTop_toTopOf="@+id/tvVersionPos" />
<TextView
android:id="@+id/tvPADUpdate"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:text="@string/tab_version_update"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvPadVersion"
app:layout_constraintRight_toRightOf="@+id/tvCarExit"
app:layout_constraintTop_toTopOf="@+id/tvPadVersion" />
<TextView
android:id="@+id/tvADVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
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/tvADUpdate"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:text="@string/tab_version_update"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_32"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/tvADVersion"
app:layout_constraintRight_toRightOf="@+id/tvCarExit"
app:layout_constraintTop_toTopOf="@+id/tvADVersion" />
<TextView
android:id="@+id/tvHDMapVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
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" />
<TextView
android:id="@+id/tvHDMapUpdate"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:text="@string/tab_version_update"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvHDMapVersion"
app:layout_constraintRight_toRightOf="@+id/tvCarExit"
app:layout_constraintTop_toTopOf="@+id/tvHDMapVersion" />
<TextView
android:id="@+id/tvADMapVersion"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"
android:layout_marginTop="@dimen/dp_20"
android:gravity="center"
android:text="@string/tab_version_admap_info"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintLeft_toLeftOf="@+id/tvHDMapVersion"
app:layout_constraintTop_toBottomOf="@+id/tvHDMapVersion" />
<TextView
android:id="@+id/tvSnPos"
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:text="@string/tab_sn"
android:textColor="@color/white"
android:textSize="@dimen/dp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvVersionPos" />
<TextView
android:id="@+id/tvSnInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_39"
android:textColor="@color/white"
android:textSize="@dimen/dp_32"
app:layout_constraintBottom_toBottomOf="@+id/tvSnPos"
app:layout_constraintLeft_toRightOf="@+id/tvSnPos"
app:layout_constraintTop_toTopOf="@+id/tvSnPos" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -16,7 +16,9 @@
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
<color name="color_000000">#000000</color>
<color name="color_B3_000000">#B3000000</color>
<color name="color_8F0005">#8F0005</color>
<color name="color_2EACFF">#2EACFF</color>
<color name="color_FF0006">#FF0006</color>
<color name="color_0099dd">#0099dd</color>
<color name="color_FFFFFF">#FFFFFF</color>

View File

@@ -6,6 +6,13 @@
<string name="tab_car_login_info">登陆信息</string>
<string name="tab_car_exit">退出</string>
<string name="tab_car_no">车辆绑定</string>
<string name="tab_version_info">版本信息</string>
<string name="tab_sn">设备SN</string>
<string name="tab_version_pad_info">PAD:</string>
<string name="tab_version_ad_info">AD:</string>
<string name="tab_version_hdmap_info">HDMAP:</string>
<string name="tab_version_admap_info">ADMAP:</string>
<string name="tab_version_update">检查更新</string>
<string name="log_min">最小化</string>
<string name="log_info">日志</string>

View File

@@ -67,6 +67,7 @@ class ChainConstant {
const val CHAIN_CODE_ADAS_P_OBJECTS = "CHAIN_CODE_ADAS_P_OBJECTS"
const val CHAIN_CODE_ADAS_P_ACTIONS = "CHAIN_CODE_ADAS_P_ACTIONS"
const val CHAIN_CODE_ADAS_STATUS_QUERY_RESP = "CHAIN_CODE_ADAS_STATUS_QUERY_RESP"
const val CHAIN_CODE_ADAS_SYSTEM_STATUS = "CHAIN_CODE_ADAS_SYSTEM_STATUS"
const val CHAIN_CODE_ADAS_PARALLEL = "CHAIN_CODE_ADAS_PARALLEL"
const val CHAIN_CODE_ADAS_MAP_PARAM = "CHAIN_CODE_ADAS_MAP_PARAM"
const val CHAIN_CODE_ADAS_V2N_EVENT = "CHAIN_CODE_ADAS_V2N_EVENT"