[6.2.0] add func of over take limit set
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.setting
|
||||
|
||||
import android.content.Context
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -13,23 +15,26 @@ import com.mogo.eagle.core.data.multidisplay.TelematicConstant
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoGetParamResponseListener
|
||||
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListener
|
||||
import com.mogo.eagle.core.function.api.devatools.mofang.*
|
||||
import com.mogo.eagle.core.function.api.devatools.mofang.IMoGoMoFangProvider
|
||||
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
|
||||
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_DEMO
|
||||
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_RAIN
|
||||
import com.mogo.eagle.core.function.api.setting.ISopSettingListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotGetParamResponseDispatcher
|
||||
import com.mogo.eagle.core.function.call.devatools.*
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
|
||||
import com.mogo.eagle.core.function.call.setting.CallerSopSettingManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.zhjt.mogo.adas.data.AdasConstants
|
||||
@@ -63,7 +68,7 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
sopLayout.setOnClickListener { }
|
||||
sopLayout.setOnClickListener { }
|
||||
//V2X消息设置
|
||||
v2xSetting()
|
||||
//地图效果类设置
|
||||
@@ -77,41 +82,41 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
/**
|
||||
* V2X消息设置
|
||||
*/
|
||||
private fun v2xSetting(){
|
||||
private fun v2xSetting() {
|
||||
//V2X总开关
|
||||
scV2XSwitch.isChecked = FunctionBuildConfig.v2xMainSwitch
|
||||
scV2XSwitch.setOnCheckedChangeListener { _, isChecked ->
|
||||
FunctionBuildConfig.v2xMainSwitch = isChecked
|
||||
hmiAction("SOP V2X总开关, ",isChecked)
|
||||
if(isChecked){
|
||||
hmiAction("SOP V2X总开关, ", isChecked)
|
||||
if (isChecked) {
|
||||
//V2N总开关
|
||||
scV2NSwitch.isChecked = FunctionBuildConfig.v2nMainSwitch
|
||||
hmiAction("SOP V2N总开关, ",FunctionBuildConfig.v2nMainSwitch)
|
||||
hmiAction("SOP V2N总开关, ", FunctionBuildConfig.v2nMainSwitch)
|
||||
//V2I总开关
|
||||
scV2ISwitch.isChecked = HmiBuildConfig.isShowObuV2iView
|
||||
hmiAction("SOP V2I总开关, ",HmiBuildConfig.isShowObuV2iView)
|
||||
hmiAction("SOP V2I总开关, ", HmiBuildConfig.isShowObuV2iView)
|
||||
//V2V总开关
|
||||
scObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView
|
||||
hmiAction("SOP V2V总开关, ",HmiBuildConfig.isShowObuV2vView)
|
||||
hmiAction("SOP V2V总开关, ", HmiBuildConfig.isShowObuV2vView)
|
||||
//obu总开关
|
||||
scObu.isChecked = obuConnectStatus
|
||||
hmiAction("SOP obu总开关, ",obuConnectStatus)
|
||||
if(obuConnectStatus){
|
||||
hmiAction("SOP obu总开关, ", obuConnectStatus)
|
||||
if (obuConnectStatus) {
|
||||
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
//V2N总开关
|
||||
scV2NSwitch.isChecked = false
|
||||
hmiAction("SOP V2N总开关, ",false)
|
||||
hmiAction("SOP V2N总开关, ", false)
|
||||
//V2I总开关
|
||||
scV2ISwitch.isChecked = false
|
||||
hmiAction("SOP V2I总开关, ",false)
|
||||
hmiAction("SOP V2I总开关, ", false)
|
||||
//V2V总开关
|
||||
scObuV2vView.isChecked = false
|
||||
hmiAction("SOP V2V总开关, ",false)
|
||||
hmiAction("SOP V2V总开关, ", false)
|
||||
//obu总开关
|
||||
scObu.isChecked = false
|
||||
hmiAction("SOP OBU控制总开关, ",false)
|
||||
hmiAction("SOP OBU控制总开关, ", false)
|
||||
//断开链接
|
||||
CallerObuApiManager.disConnectObu()
|
||||
}
|
||||
@@ -131,35 +136,41 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//绿波通行(默认关闭)
|
||||
scGreenWaveSop.isEnabled = FunctionBuildConfig.v2nMainSwitch
|
||||
scV2NSwitch.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(isChecked){
|
||||
if (isChecked) {
|
||||
//V2N新链路
|
||||
scNewV2NData.isChecked = FunctionBuildConfig.isNewV2NData
|
||||
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",FunctionBuildConfig.isNewV2NData)
|
||||
hmiAction("SOP 是否是V2N新链路(云->工控机->App)", FunctionBuildConfig.isNewV2NData)
|
||||
//V2N场景进PNC
|
||||
scV2nPnc.isChecked = FunctionBuildConfig.isV2NPnc
|
||||
hmiAction("SOP V2N场景进PNC, ",FunctionBuildConfig.isV2NPnc)
|
||||
hmiAction("SOP V2N场景进PNC, ", FunctionBuildConfig.isV2NPnc)
|
||||
CallerAutoPilotControlManager.sendV2nToPncCmd(FunctionBuildConfig.isV2NPnc)
|
||||
//绿波通行
|
||||
scGreenWaveSop.isChecked = HmiBuildConfig.isShowGreenWaveView
|
||||
hmiAction("SOP obu绿波通行, ",HmiBuildConfig.isShowGreenWaveView)
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "1".toByteArray())
|
||||
}else{
|
||||
hmiAction("SOP obu绿波通行, ", HmiBuildConfig.isShowGreenWaveView)
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_GREENWAVE_WARNING,
|
||||
"1".toByteArray()
|
||||
)
|
||||
} else {
|
||||
//V2N新链路
|
||||
scNewV2NData.isChecked = false
|
||||
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",false)
|
||||
hmiAction("SOP 是否是V2N新链路(云->工控机->App)", false)
|
||||
//V2N场景进PNC
|
||||
scV2nPnc.isChecked = false
|
||||
hmiAction("SOP V2N场景进PNC, ",false)
|
||||
hmiAction("SOP V2N场景进PNC, ", false)
|
||||
CallerAutoPilotControlManager.sendV2nToPncCmd(false)
|
||||
//绿波通行
|
||||
scGreenWaveSop.isChecked = false
|
||||
hmiAction("SOP obu绿波通行, ",false)
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "0".toByteArray())
|
||||
hmiAction("SOP obu绿波通行, ", false)
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_GREENWAVE_WARNING,
|
||||
"0".toByteArray()
|
||||
)
|
||||
}
|
||||
scNewV2NData.isEnabled = isChecked
|
||||
scV2nPnc.isEnabled = isChecked
|
||||
scGreenWaveSop.isEnabled = isChecked
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
FunctionBuildConfig.v2nMainSwitch = isChecked
|
||||
@@ -172,35 +183,41 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
scRunRedLightSop.isEnabled = HmiBuildConfig.isShowObuV2iView
|
||||
scObuWeaknessTrafficSop.isEnabled = HmiBuildConfig.isShowObuV2iView
|
||||
scV2ISwitch.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(isChecked){
|
||||
if (isChecked) {
|
||||
//V2I场景进PNC
|
||||
scV2iPnc.isChecked = FunctionBuildConfig.isV2IPnc
|
||||
hmiAction("SOP V2I场景进PNC, ",FunctionBuildConfig.isV2IPnc)
|
||||
hmiAction("SOP V2I场景进PNC, ", FunctionBuildConfig.isV2IPnc)
|
||||
CallerAutoPilotControlManager.sendV2iToPncCmd(FunctionBuildConfig.isV2IPnc)
|
||||
//闯红灯预警
|
||||
scRunRedLightSop.isChecked = HmiBuildConfig.isShowRunRedLightView
|
||||
hmiAction("SOP obu闯红灯预警, ",HmiBuildConfig.isShowRunRedLightView)
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
|
||||
hmiAction("SOP obu闯红灯预警, ", HmiBuildConfig.isShowRunRedLightView)
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_RUNREDLIGHT_WARNING,
|
||||
"1".toByteArray()
|
||||
)
|
||||
//路侧弱势交通参与者
|
||||
scObuWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowObuWeaknessTrafficView
|
||||
hmiAction("SOP obu弱势交通控制, ",HmiBuildConfig.isShowObuWeaknessTrafficView)
|
||||
}else{
|
||||
hmiAction("SOP obu弱势交通控制, ", HmiBuildConfig.isShowObuWeaknessTrafficView)
|
||||
} else {
|
||||
//V2I场景进PNC
|
||||
scV2iPnc.isChecked = false
|
||||
CallerAutoPilotControlManager.sendV2iToPncCmd(false)
|
||||
hmiAction("SOP V2I场景进PNC, ",false)
|
||||
hmiAction("SOP V2I场景进PNC, ", false)
|
||||
//闯红灯预警
|
||||
scRunRedLightSop.isChecked = false
|
||||
hmiAction("SOP obu闯红灯预警, ",false)
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "0".toByteArray())
|
||||
hmiAction("SOP obu闯红灯预警, ", false)
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_RUNREDLIGHT_WARNING,
|
||||
"0".toByteArray()
|
||||
)
|
||||
//路侧弱势交通参与者
|
||||
scObuWeaknessTrafficSop.isChecked = false
|
||||
hmiAction("SOP obu弱势交通控制, ",false)
|
||||
hmiAction("SOP obu弱势交通控制, ", false)
|
||||
}
|
||||
scV2iPnc.isEnabled = isChecked
|
||||
scRunRedLightSop.isEnabled = isChecked
|
||||
scObuWeaknessTrafficSop.isEnabled = isChecked
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
HmiBuildConfig.isShowObuV2iView = isChecked
|
||||
@@ -209,20 +226,20 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//V2N新链路
|
||||
scNewV2NData.isChecked = FunctionBuildConfig.isNewV2NData
|
||||
scNewV2NData.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",isChecked)
|
||||
hmiAction("SOP 是否是V2N新链路(云->工控机->App)", isChecked)
|
||||
FunctionBuildConfig.isNewV2NData = isChecked
|
||||
}
|
||||
|
||||
//V2N场景进PNC
|
||||
scV2nPnc.isChecked = FunctionBuildConfig.isV2NPnc
|
||||
scV2nPnc.setOnCheckedChangeListener{ compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
scV2nPnc.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP V2N场景进PNC, ",isChecked)
|
||||
hmiAction("SOP V2N场景进PNC, ", isChecked)
|
||||
CallerAutoPilotControlManager.sendV2nToPncCmd(isChecked)
|
||||
FunctionBuildConfig.isV2NPnc = isChecked
|
||||
}
|
||||
@@ -230,25 +247,31 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//绿波通行(默认关闭)
|
||||
scGreenWaveSop.isChecked = HmiBuildConfig.isShowGreenWaveView
|
||||
scGreenWaveSop.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP obu绿波通行, ",isChecked)
|
||||
hmiAction("SOP obu绿波通行, ", isChecked)
|
||||
HmiBuildConfig.isShowGreenWaveView = isChecked
|
||||
if (HmiBuildConfig.isShowGreenWaveView) {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "1".toByteArray())
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_GREENWAVE_WARNING,
|
||||
"1".toByteArray()
|
||||
)
|
||||
} else {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_GREENWAVE_WARNING, "0".toByteArray())
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_GREENWAVE_WARNING,
|
||||
"0".toByteArray()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
//V2I场景进PNC
|
||||
scV2iPnc.isChecked = FunctionBuildConfig.isV2IPnc
|
||||
scV2iPnc.setOnCheckedChangeListener{ compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
scV2iPnc.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP V2I场景进PNC, ",isChecked)
|
||||
hmiAction("SOP V2I场景进PNC, ", isChecked)
|
||||
CallerAutoPilotControlManager.sendV2iToPncCmd(isChecked)
|
||||
FunctionBuildConfig.isV2IPnc = isChecked
|
||||
}
|
||||
@@ -256,35 +279,41 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//闯红灯预警(默认关闭)
|
||||
scRunRedLightSop.isChecked = HmiBuildConfig.isShowRunRedLightView
|
||||
scRunRedLightSop.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP obu闯红灯预警, ",isChecked)
|
||||
hmiAction("SOP obu闯红灯预警, ", isChecked)
|
||||
HmiBuildConfig.isShowRunRedLightView = isChecked
|
||||
if (HmiBuildConfig.isShowRunRedLightView) {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_RUNREDLIGHT_WARNING,
|
||||
"1".toByteArray()
|
||||
)
|
||||
} else {
|
||||
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "0".toByteArray())
|
||||
CallerTelematicManager.sendMsgToAllClients(
|
||||
TelematicConstant.OBU_RUNREDLIGHT_WARNING,
|
||||
"0".toByteArray()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
//路侧弱势交通参与者(默认开启)
|
||||
scObuWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowObuWeaknessTrafficView
|
||||
scObuWeaknessTrafficSop.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP obu弱势交通控制, ",isChecked)
|
||||
hmiAction("SOP obu弱势交通控制, ", isChecked)
|
||||
HmiBuildConfig.isShowObuWeaknessTrafficView = isChecked
|
||||
}
|
||||
|
||||
//V2V总开关(默认关闭)
|
||||
scObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView
|
||||
scObuV2vView.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP obuV2V开关, ",isChecked)
|
||||
hmiAction("SOP obuV2V开关, ", isChecked)
|
||||
HmiBuildConfig.isShowObuV2vView = isChecked
|
||||
}
|
||||
|
||||
@@ -292,10 +321,10 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
obuConnectStatus = CallerObuApiManager.isConnected()
|
||||
scObu.isChecked = obuConnectStatus
|
||||
scObu.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP OBU控制总开关, ",isChecked)
|
||||
hmiAction("SOP OBU控制总开关, ", isChecked)
|
||||
if (isChecked) {
|
||||
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
|
||||
} else {
|
||||
@@ -309,11 +338,11 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
/**
|
||||
* 地图效果类设置
|
||||
*/
|
||||
private fun mapSetting(){
|
||||
private fun mapSetting() {
|
||||
//危险障碍物颜色标记开关
|
||||
scMarkingObstacles.isChecked = FunctionBuildConfig.isPNCWarning
|
||||
scMarkingObstacles.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("SOP 危险障碍物颜色标记开关, ",isChecked)
|
||||
hmiAction("SOP 危险障碍物颜色标记开关, ", isChecked)
|
||||
FunctionBuildConfig.isPNCWarning = isChecked
|
||||
}
|
||||
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
|
||||
@@ -323,7 +352,7 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//引导线动态效果
|
||||
scRouteDynamicEffect.isChecked = HmiBuildConfig.isShowRouteStrategy
|
||||
scRouteDynamicEffect.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("SOP 引导线动态效果, ",isChecked)
|
||||
hmiAction("SOP 引导线动态效果, ", isChecked)
|
||||
HmiBuildConfig.isShowRouteStrategy = isChecked
|
||||
}
|
||||
|
||||
@@ -332,37 +361,37 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
scDrawPointCloudData.isChecked = FunctionBuildConfig.isDrawPointCloudData
|
||||
//是否渲染点云数据
|
||||
scDrawPointCloudData.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
//打开点云效果时,如果自车光圈是关闭状态,则自动打开自车光圈(点云是跟随光圈的 默认没有光圈就不显示点云的)
|
||||
if(isChecked && !FunctionBuildConfig.isDisplayAnimEnable){
|
||||
if (isChecked && !FunctionBuildConfig.isDisplayAnimEnable) {
|
||||
scCarAperture.isChecked = true
|
||||
}else{
|
||||
} else {
|
||||
scCarAperture.isChecked = FunctionBuildConfig.isDisplayAnimEnable
|
||||
}
|
||||
CallerAutoPilotControlManager.setIsDrawPointCloud(isChecked)
|
||||
FunctionBuildConfig.isDrawPointCloudData = isChecked
|
||||
CallerMapUIServiceManager.getMapUIController()?.setIsDrawPointCloud(isChecked)
|
||||
CallerSopSettingManager.invokePointCloudListener(isChecked)
|
||||
hmiAction("SOP 是否渲染点云数据, ",isChecked)
|
||||
hmiAction("SOP 是否渲染点云数据, ", isChecked)
|
||||
}
|
||||
|
||||
//自车光圈
|
||||
if(FunctionBuildConfig.isDrawPointCloudData){
|
||||
if (FunctionBuildConfig.isDrawPointCloudData) {
|
||||
//如果点云效果是打开的,则自车光圈也跟随打开
|
||||
FunctionBuildConfig.isDisplayAnimEnable = true
|
||||
scCarAperture.isChecked = true
|
||||
CallerMapUIServiceManager.getMapUIController()?.setDisplayAnimEnable(true)
|
||||
hmiAction("SOP 是否展示自车光圈,",FunctionBuildConfig.isDisplayAnimEnable)
|
||||
}else{
|
||||
hmiAction("SOP 是否展示自车光圈,", FunctionBuildConfig.isDisplayAnimEnable)
|
||||
} else {
|
||||
scCarAperture.isChecked = FunctionBuildConfig.isDisplayAnimEnable
|
||||
}
|
||||
scCarAperture.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
CallerMapUIServiceManager.getMapUIController()?.setDisplayAnimEnable(isChecked)
|
||||
CallerSopSettingManager.invokeCarApertureListener(isChecked)
|
||||
hmiAction("SOP 是否展示自车光圈,",isChecked)
|
||||
if(!compoundButton.isPressed){
|
||||
hmiAction("SOP 是否展示自车光圈,", isChecked)
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
FunctionBuildConfig.isDisplayAnimEnable = isChecked
|
||||
@@ -372,11 +401,11 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
/**
|
||||
* 与车相关类设置
|
||||
*/
|
||||
private fun vehicleSetting(){
|
||||
private fun vehicleSetting() {
|
||||
//绕障类功能
|
||||
scObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring
|
||||
scObstacleAvoidance.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("SOP 绕障类功能开关, ",isChecked)
|
||||
hmiAction("SOP 绕障类功能开关, ", isChecked)
|
||||
CallerAutoPilotControlManager.sendDetouring(isChecked)
|
||||
FunctionBuildConfig.isDetouring = isChecked
|
||||
}
|
||||
@@ -384,13 +413,16 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
// 演示模式,上一次勾选的数据
|
||||
scDemoMode.isChecked = FunctionBuildConfig.isDemoMode
|
||||
scDemoMode.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP 演示模式开关, ",!FunctionBuildConfig.isDemoMode)
|
||||
hmiAction("SOP 演示模式开关, ", !FunctionBuildConfig.isDemoMode)
|
||||
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
|
||||
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_DEMO, FunctionBuildConfig.isDemoMode)
|
||||
CallerHmiViewControlListenerManager.invokeFuncMode(
|
||||
FUNC_MODE_DEMO,
|
||||
FunctionBuildConfig.isDemoMode
|
||||
)
|
||||
CallerSopSettingManager.invokeDemoModeListener(isChecked)
|
||||
if (!FunctionBuildConfig.isDemoMode) {
|
||||
//关闭美化模式时,通知工控机
|
||||
@@ -405,10 +437,10 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
// 雨天模式,上一次勾选的数据
|
||||
scRainMode.isChecked = FunctionBuildConfig.isRainMode
|
||||
scRainMode.setOnCheckedChangeListener { compoundButton, isChecked ->
|
||||
if(!compoundButton.isPressed){
|
||||
if (!compoundButton.isPressed) {
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
hmiAction("SOP 雨天模式开关, ",isChecked)
|
||||
hmiAction("SOP 雨天模式开关, ", isChecked)
|
||||
FunctionBuildConfig.isRainMode = isChecked
|
||||
CallerAutoPilotControlManager.setRainMode(isChecked)
|
||||
CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_RAIN, isChecked)
|
||||
@@ -421,56 +453,59 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
|
||||
//弱网减速停车
|
||||
scWeakNetSlowDown.isChecked = FunctionBuildConfig.isWeakNetSlowDown
|
||||
scWeakNetSlowDown.setOnCheckedChangeListener{_, isChecked ->
|
||||
scWeakNetSlowDown.setOnCheckedChangeListener { _, isChecked ->
|
||||
FunctionBuildConfig.isWeakNetSlowDown = isChecked
|
||||
CallerAutoPilotControlManager.sendWeakNetSlowDown(isChecked)
|
||||
hmiAction("SOP 弱网减速停车, ",isChecked)
|
||||
hmiAction("SOP 弱网减速停车, ", isChecked)
|
||||
}
|
||||
|
||||
//故障减速停车
|
||||
scFaultSlowDown.isChecked = FunctionBuildConfig.isFaultSlowDown
|
||||
scFaultSlowDown.setOnCheckedChangeListener{_, isChecked ->
|
||||
scFaultSlowDown.setOnCheckedChangeListener { _, isChecked ->
|
||||
FunctionBuildConfig.isFaultSlowDown = isChecked
|
||||
CallerAutoPilotControlManager.sendBreakdownSlowDown(isChecked)
|
||||
hmiAction("SOP 故障减速停车, ",isChecked)
|
||||
hmiAction("SOP 故障减速停车, ", isChecked)
|
||||
}
|
||||
//融合模式
|
||||
rgFusionMode.setOnCheckedChangeListener { _, p1 ->
|
||||
when(p1){
|
||||
when (p1) {
|
||||
//全融合模式
|
||||
R.id.rbFullIntegration ->{
|
||||
R.id.rbFullIntegration -> {
|
||||
FunctionBuildConfig.fusionMode = 1
|
||||
}
|
||||
//盲区模式
|
||||
R.id.rbBlind ->{
|
||||
R.id.rbBlind -> {
|
||||
FunctionBuildConfig.fusionMode = 2
|
||||
}
|
||||
//超视距模式
|
||||
R.id.rbBeyondSight ->{
|
||||
R.id.rbBeyondSight -> {
|
||||
FunctionBuildConfig.fusionMode = 3
|
||||
}
|
||||
//透传模式
|
||||
R.id.rbTransparent ->{
|
||||
R.id.rbTransparent -> {
|
||||
FunctionBuildConfig.fusionMode = 4
|
||||
}
|
||||
//纯路侧模式
|
||||
R.id.rbPureRoad ->{
|
||||
R.id.rbPureRoad -> {
|
||||
FunctionBuildConfig.fusionMode = 5
|
||||
}
|
||||
}
|
||||
hmiAction("SOP 融合模式, ",FunctionBuildConfig.fusionMode)
|
||||
hmiAction("SOP 融合模式, ", FunctionBuildConfig.fusionMode)
|
||||
CallerAutoPilotControlManager.sendFusionMode(FunctionBuildConfig.fusionMode)
|
||||
}
|
||||
}
|
||||
|
||||
private var overTakeEditText:String = ""
|
||||
private var overTakeEditDel = false
|
||||
|
||||
/**
|
||||
* 其他类别开关设置
|
||||
*/
|
||||
private fun otherSetting(){
|
||||
private fun otherSetting() {
|
||||
//红绿灯标识开关
|
||||
scTrafficLight.isChecked = !HmiBuildConfig.isShowTrafficLightView
|
||||
scTrafficLight.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("SOP 红绿灯标识开关, ",isChecked)
|
||||
hmiAction("SOP 红绿灯标识开关, ", isChecked)
|
||||
if (isChecked) {
|
||||
CallerHmiManager.showTrafficLightView()
|
||||
} else {
|
||||
@@ -481,20 +516,26 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//限速标识
|
||||
scSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView
|
||||
scSpeedLimit.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("SOP 限速标识开关, ",isChecked)
|
||||
hmiAction("SOP 限速标识开关, ", isChecked)
|
||||
if (isChecked) {
|
||||
HmiBuildConfig.isShowLimitingVelocityView = true
|
||||
CallerHmiViewControlListenerManager.invokeVisible(IViewControlListener.LimitingVelocityView_TAG,View.VISIBLE)
|
||||
CallerHmiViewControlListenerManager.invokeVisible(
|
||||
IViewControlListener.LimitingVelocityView_TAG,
|
||||
View.VISIBLE
|
||||
)
|
||||
} else {
|
||||
HmiBuildConfig.isShowLimitingVelocityView = false
|
||||
CallerHmiViewControlListenerManager.invokeVisible(IViewControlListener.LimitingVelocityView_TAG,View.GONE)
|
||||
CallerHmiViewControlListenerManager.invokeVisible(
|
||||
IViewControlListener.LimitingVelocityView_TAG,
|
||||
View.GONE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
//异常上报提示
|
||||
scIPCReport.isChecked = FunctionBuildConfig.isReportWarning
|
||||
scIPCReport.setOnCheckedChangeListener { _, isChecked ->
|
||||
hmiAction("SOP 是否开启异常上报, ",isChecked)
|
||||
hmiAction("SOP 是否开启异常上报, ", isChecked)
|
||||
FunctionBuildConfig.isReportWarning = isChecked
|
||||
}
|
||||
|
||||
@@ -517,9 +558,9 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
|
||||
//是否展示被动触发的录包弹窗(自动驾驶下出现问题触发的录包)
|
||||
scShowBagRecordWindow.isChecked = FunctionBuildConfig.isShowBagRecordWindow
|
||||
scShowBagRecordWindow.setOnCheckedChangeListener{_, isChecked ->
|
||||
scShowBagRecordWindow.setOnCheckedChangeListener { _, isChecked ->
|
||||
FunctionBuildConfig.isShowBagRecordWindow = isChecked
|
||||
hmiAction("SOP 是否展示被动触发的录包弹窗, ",isChecked)
|
||||
hmiAction("SOP 是否展示被动触发的录包弹窗, ", isChecked)
|
||||
}
|
||||
|
||||
//变道绕障的目标障碍物速度阈值
|
||||
@@ -531,7 +572,7 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
FunctionBuildConfig.detouringSpeed--
|
||||
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
|
||||
}
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值", FunctionBuildConfig.detouringSpeed)
|
||||
}
|
||||
ivSpeedAdd.setOnClickListener {
|
||||
if (FunctionBuildConfig.detouringSpeed >= 7) {
|
||||
@@ -540,17 +581,78 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
FunctionBuildConfig.detouringSpeed++
|
||||
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
|
||||
}
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值", FunctionBuildConfig.detouringSpeed)
|
||||
}
|
||||
btnSpeedSet.setOnClickListener {
|
||||
val isSuccess =
|
||||
CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.detouringSpeed.toDouble())
|
||||
if (isSuccess == true) {
|
||||
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置","成功")
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "成功")
|
||||
} else {
|
||||
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置","失败")
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "失败")
|
||||
}
|
||||
}
|
||||
|
||||
etOverTake.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
|
||||
}
|
||||
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
|
||||
CallerLogger.d(M_HMI + TAG, "onTextChanged before: $before , start: $start ,count: $count")
|
||||
overTakeEditDel = before > 0
|
||||
}
|
||||
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
CallerLogger.d(M_HMI + TAG, "afterTextChanged s: $s , et:$overTakeEditText")
|
||||
if(overTakeEditDel){
|
||||
overTakeEditDel = false
|
||||
return
|
||||
}
|
||||
s?.let {
|
||||
if(it.toString() == overTakeEditText){
|
||||
return
|
||||
}
|
||||
if(it.toString().isEmpty()){
|
||||
return
|
||||
}
|
||||
val edit = it.toString().replace("m","").replace("/","").replace("s","").trim().toFloat()
|
||||
val result = if (edit >= 12.5) 12.5f else if (edit <= 3) 3f else edit
|
||||
FunctionBuildConfig.overTakeSpeed = result
|
||||
overTakeEditText = "$result m/s"
|
||||
etOverTake.setText(overTakeEditText)
|
||||
CallerLogger.d(M_HMI + TAG, "result: $overTakeEditText")
|
||||
}
|
||||
}
|
||||
})
|
||||
ivSpeedOverTakeReduce.setOnClickListener {
|
||||
if (FunctionBuildConfig.overTakeSpeed <= 3) {
|
||||
ToastUtils.showShort("阈值最小可为3 m/s")
|
||||
} else {
|
||||
FunctionBuildConfig.overTakeSpeed -= 0.5f
|
||||
etOverTake.setText("${FunctionBuildConfig.overTakeSpeed} m/s")
|
||||
}
|
||||
hmiAction("SOP 超车目标障碍物速度阈值", FunctionBuildConfig.overTakeSpeed)
|
||||
}
|
||||
ivSpeedOverTakeAdd.setOnClickListener {
|
||||
if (FunctionBuildConfig.overTakeSpeed >= 12.5) {
|
||||
ToastUtils.showShort("阈值最大可为12.5 m/s")
|
||||
} else {
|
||||
FunctionBuildConfig.overTakeSpeed += 0.5f
|
||||
etOverTake.setText("${FunctionBuildConfig.overTakeSpeed} m/s")
|
||||
}
|
||||
hmiAction("SOP 超车目标障碍物速度阈值", FunctionBuildConfig.overTakeSpeed)
|
||||
}
|
||||
btnSpeedOverTakeSet.setOnClickListener {
|
||||
val isSuccess =
|
||||
CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.overTakeSpeed.toDouble())
|
||||
if (isSuccess == true) {
|
||||
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "成功")
|
||||
} else {
|
||||
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
|
||||
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "失败")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -560,6 +662,12 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
tvSpeed.visibility = View.GONE
|
||||
ivSpeedAdd.visibility = View.GONE
|
||||
btnSpeedSet.visibility = View.GONE
|
||||
|
||||
tvSpeedOverTakeLimit.visibility = View.GONE
|
||||
ivSpeedOverTakeReduce.visibility = View.GONE
|
||||
etOverTake.visibility = View.GONE
|
||||
ivSpeedOverTakeAdd.visibility = View.GONE
|
||||
btnSpeedOverTakeSet.visibility = View.GONE
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -569,7 +677,10 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
val mf = CallerDevaToolsManager.mofang()
|
||||
if (mf != null) {
|
||||
mfStatusLayout.setClickEnabled(true)
|
||||
mfStatusLayout.setClickedTextAndTag(if (mf.isConnected()) "断开魔方连接" else "开始连接魔方", if (mf.isConnected()) 0 else 1)
|
||||
mfStatusLayout.setClickedTextAndTag(
|
||||
if (mf.isConnected()) "断开魔方连接" else "开始连接魔方",
|
||||
if (mf.isConnected()) 0 else 1
|
||||
)
|
||||
mf.registerMoFangStatusListener(TAG, this)
|
||||
mfStatusLayout.setOnClickCallback {
|
||||
val tag = it.tag as? Int
|
||||
@@ -616,20 +727,20 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
CallerDevaToolsFuncConfigListenerManager.registerDevaToolsFuncConfigListener(
|
||||
FuncBizConfig.FOUNDATION, TAG, true, this
|
||||
)
|
||||
CallerHmiViewControlListenerManager.addListener(TAG,this)
|
||||
CallerHmiViewControlListenerManager.addListener(TAG, this)
|
||||
CallerAutopilotGetParamResponseDispatcher.addListener(TAG, this)
|
||||
//查询融合模式
|
||||
CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.FUSION_MODE)
|
||||
//雨天、美化、点云设置同步
|
||||
CallerSopSettingManager.addListener(TAG,this)
|
||||
CallerSopSettingManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
override fun updateFuncMode(tag: String, boolean: Boolean) {
|
||||
super.updateFuncMode(tag, boolean)
|
||||
if(tag == FUNC_MODE_DEMO){
|
||||
if (tag == FUNC_MODE_DEMO) {
|
||||
scDemoMode.isChecked = FunctionBuildConfig.isDemoMode
|
||||
}
|
||||
if(tag == FUNC_MODE_RAIN){
|
||||
if (tag == FUNC_MODE_RAIN) {
|
||||
scRainMode.isChecked = FunctionBuildConfig.isRainMode
|
||||
}
|
||||
}
|
||||
@@ -637,7 +748,10 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
// 移除 业务配置监听
|
||||
CallerDevaToolsFuncConfigListenerManager.unRegisterDevaToolsFuncConfigListener(FuncBizConfig.FOUNDATION, TAG)
|
||||
CallerDevaToolsFuncConfigListenerManager.unRegisterDevaToolsFuncConfigListener(
|
||||
FuncBizConfig.FOUNDATION,
|
||||
TAG
|
||||
)
|
||||
CallerHmiViewControlListenerManager.removeListener(TAG)
|
||||
CallerAutopilotGetParamResponseDispatcher.removeListener(TAG)
|
||||
CallerDevaToolsManager.mofang()?.unRegisterMoFangStatusListener(this)
|
||||
@@ -651,9 +765,9 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//美化模式
|
||||
FuncBizConfig.BIZ_BEAUTY_MODE -> {
|
||||
scDemoMode.isClickable = !lock
|
||||
if(lock){
|
||||
if (lock) {
|
||||
scDemoMode.visibility = View.INVISIBLE
|
||||
}else{
|
||||
} else {
|
||||
scDemoMode.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
@@ -743,24 +857,24 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
//融合模式
|
||||
ThreadUtils.runOnUiThread {
|
||||
FunctionBuildConfig.fusionMode = adasParam.fusionMode
|
||||
when(FunctionBuildConfig.fusionMode){
|
||||
1->{
|
||||
when (FunctionBuildConfig.fusionMode) {
|
||||
1 -> {
|
||||
//全融合模式
|
||||
rgFusionMode.check(R.id.rbFullIntegration)
|
||||
}
|
||||
2->{
|
||||
2 -> {
|
||||
//盲区模式
|
||||
rgFusionMode.check(R.id.rbBlind)
|
||||
}
|
||||
3->{
|
||||
3 -> {
|
||||
//超视距模式
|
||||
rgFusionMode.check(R.id.rbBeyondSight)
|
||||
}
|
||||
4->{
|
||||
4 -> {
|
||||
//透传模式
|
||||
rgFusionMode.check(R.id.rbTransparent)
|
||||
}
|
||||
5->{
|
||||
5 -> {
|
||||
//纯路侧模式
|
||||
rgFusionMode.check(R.id.rbPureRoad)
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ class PncActionsView @JvmOverloads constructor(
|
||||
it.drivingAction.number
|
||||
)
|
||||
&& mTrafficLightResult != null
|
||||
&& getWaitTrafficLightTime().isNotBlank()
|
||||
&& hasRedLight()
|
||||
) {
|
||||
actions += ",预计${getWaitTrafficLightTime()}秒后通过"
|
||||
} else {
|
||||
@@ -133,11 +133,15 @@ class PncActionsView @JvmOverloads constructor(
|
||||
mTrafficLightResult = trafficLightResult
|
||||
}
|
||||
|
||||
private fun hasRedLight(): Boolean {
|
||||
return mTrafficLightResult != null
|
||||
&& mTrafficLightResult!!.currentRoadTrafficLight() != null
|
||||
&& mTrafficLightResult!!.currentRoadTrafficLight()!!.isRed()
|
||||
&& mTrafficLightResult!!.currentRoadTrafficLight()!!.time() > 0
|
||||
}
|
||||
|
||||
private fun getWaitTrafficLightTime(): String {
|
||||
return if (mTrafficLightResult != null
|
||||
&& mTrafficLightResult!!.currentRoadTrafficLight() != null
|
||||
&& mTrafficLightResult!!.currentRoadTrafficLight()!!.isRed()
|
||||
) {
|
||||
return if (hasRedLight()) {
|
||||
mTrafficLightResult!!.currentRoadTrafficLight()!!.time().toString()
|
||||
} else {
|
||||
""
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.core.widget.NestedScrollView
|
||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="@dimen/dp_800"
|
||||
android:layout_height="@dimen/dp_1100"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
android:layout_height="@dimen/dp_1100">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sopLayout"
|
||||
@@ -15,9 +14,6 @@
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="@dimen/dp_780"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardBackgroundColor="@color/color_FFFFFF"
|
||||
app:cardCornerRadius="@dimen/dp_10"
|
||||
@@ -25,7 +21,9 @@
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:contentPadding="@dimen/dp_10"
|
||||
>
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -35,166 +33,154 @@
|
||||
android:id="@+id/scV2XSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="V2X总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:scaleY="1.4"
|
||||
android:scaleX="1.4"
|
||||
android:layout_marginStart="@dimen/dp_50"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
/>
|
||||
android:scaleX="1.4"
|
||||
android:scaleY="1.4"
|
||||
android:text="V2X总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
<!--V2N总开关-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scV2NSwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2XSwitch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:text="V2N总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="V2N总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2XSwitch" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/v2xGuideLine"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.55"
|
||||
/>
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
<!--V2N新链路-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scNewV2NData"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="V2N新链路"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="V2N新链路"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/scV2XSwitch"
|
||||
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch" />
|
||||
<!--V2N场景进PNC-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scV2nPnc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="V2N场景进PNC"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="V2N场景进PNC"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/v2xGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2NSwitch" />
|
||||
<!--绿波通行-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scGreenWaveSop"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="绿波通行"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="绿波通行"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/scNewV2NData"
|
||||
app:layout_constraintTop_toBottomOf="@id/scNewV2NData"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scNewV2NData" />
|
||||
<!--V2I总开关-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scV2ISwitch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="V2I总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="V2I总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scGreenWaveSop"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scGreenWaveSop" />
|
||||
<!--V2I场景进PNC-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scV2iPnc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="V2I场景进PNC"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="V2I场景进PNC"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/v2xGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch" />
|
||||
<!--闯红灯预警-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scRunRedLightSop"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="闯红灯预警"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="闯红灯预警"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/v2xGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2ISwitch" />
|
||||
<!--路侧弱势交通参与者-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scObuWeaknessTrafficSop"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="路侧弱势交通参与者"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="路侧弱势交通参与者"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/scV2iPnc"
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2iPnc"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scV2iPnc" />
|
||||
<!--V2V总开关-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scObuV2vView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="V2V总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="V2V总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scObuWeaknessTrafficSop"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scObuWeaknessTrafficSop" />
|
||||
<!--obu总开关-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scObu"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="OBU总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scObuV2vView"
|
||||
android:text="OBU总开关"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
/>
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scObuV2vView" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -203,16 +189,16 @@
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="@dimen/dp_780"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardBackgroundColor="@color/color_FFFFFF"
|
||||
app:cardCornerRadius="@dimen/dp_10"
|
||||
app:cardElevation="@dimen/dp_5"
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:contentPadding="@dimen/dp_10">
|
||||
app:contentPadding="@dimen/dp_10"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -222,85 +208,79 @@
|
||||
android:id="@+id/tvMapTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="地图效果类"
|
||||
android:textSize="@dimen/sp_36"
|
||||
android:textColor="@color/black"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
/>
|
||||
android:text="地图效果类"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/sp_36"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/mapGuideLine"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvMapTitle"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.5"
|
||||
/>
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvMapTitle"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
<!--危险障碍物颜色标记-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scMarkingObstacles"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/mapGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvMapTitle"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:text="危险障碍物颜色标记"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="危险障碍物颜色标记"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/mapGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvMapTitle" />
|
||||
<!--引导线动态效果-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scRouteDynamicEffect"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/mapGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvMapTitle"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:text="引导线动态效果"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="引导线动态效果"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/mapGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvMapTitle" />
|
||||
<!--点云效果-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scDrawPointCloudData"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/mapGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scMarkingObstacles"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
android:text="点云效果"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="点云效果"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/mapGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scMarkingObstacles" />
|
||||
<!--自车光圈-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scCarAperture"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/mapGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scRouteDynamicEffect"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
android:text="自车光圈"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="自车光圈"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="@id/mapGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scRouteDynamicEffect" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -309,16 +289,16 @@
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="@dimen/dp_780"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardBackgroundColor="@color/color_FFFFFF"
|
||||
app:cardCornerRadius="@dimen/dp_10"
|
||||
app:cardElevation="@dimen/dp_5"
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:contentPadding="@dimen/dp_10">
|
||||
app:contentPadding="@dimen/dp_10"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -328,151 +308,138 @@
|
||||
android:id="@+id/tvVehicleTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:text="与车相关类"
|
||||
android:textSize="@dimen/sp_36"
|
||||
android:textColor="@color/black"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
/>
|
||||
android:text="与车相关类"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/sp_36"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/vehicleGuideLine"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvVehicleTitle"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.5"
|
||||
/>
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvVehicleTitle"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
<!--绕障类功能-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scObstacleAvoidance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:text="绕障类功能"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="绕障类功能"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle" />
|
||||
<!--美化模式-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scDemoMode"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:text="美化模式"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="美化模式"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvVehicleTitle" />
|
||||
<!--雨天模式-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scRainMode"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scObstacleAvoidance"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:text="雨天模式"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="雨天模式"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scObstacleAvoidance" />
|
||||
<!--弱网减速停车-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scWeakNetSlowDown"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scDemoMode"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:text="弱网减速停车"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="弱网减速停车"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scDemoMode" />
|
||||
<!--故障减速停车-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scFaultSlowDown"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scRainMode"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:text="故障减速停车"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
/>
|
||||
android:text="故障减速停车"
|
||||
android:textSize="@dimen/sp_28"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/vehicleGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scRainMode" />
|
||||
<!--融合模式切换器-->
|
||||
<RadioGroup
|
||||
android:id="@+id/rgFusionMode"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scFaultSlowDown"
|
||||
android:layout_marginStart="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
>
|
||||
app:layout_constraintTop_toBottomOf="@id/scFaultSlowDown">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rbFullIntegration"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="全融合模式"
|
||||
android:textSize="32dp"
|
||||
android:layout_margin="10dp"
|
||||
/>
|
||||
android:text="全融合模式"
|
||||
android:textSize="32dp" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rbBlind"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="盲区模式"
|
||||
android:textSize="32dp"
|
||||
android:layout_margin="10dp"
|
||||
/>
|
||||
android:text="盲区模式"
|
||||
android:textSize="32dp" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rbBeyondSight"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="超视距模式"
|
||||
android:textSize="32dp"
|
||||
android:layout_margin="10dp"
|
||||
/>
|
||||
android:text="超视距模式"
|
||||
android:textSize="32dp" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rbTransparent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="透传模式"
|
||||
android:textSize="32dp"
|
||||
android:layout_margin="10dp"
|
||||
/>
|
||||
android:text="透传模式"
|
||||
android:textSize="32dp" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rbPureRoad"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="纯路侧模式"
|
||||
android:textSize="32dp"
|
||||
android:layout_margin="10dp"
|
||||
/>
|
||||
android:text="纯路侧模式"
|
||||
android:textSize="32dp" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
@@ -483,16 +450,16 @@
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="@dimen/dp_780"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardBackgroundColor="@color/color_FFFFFF"
|
||||
app:cardCornerRadius="@dimen/dp_10"
|
||||
app:cardElevation="@dimen/dp_5"
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:contentPadding="@dimen/dp_10">
|
||||
app:contentPadding="@dimen/dp_10"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -502,92 +469,85 @@
|
||||
android:id="@+id/tvOtherTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:text="其他"
|
||||
android:textSize="@dimen/sp_36"
|
||||
android:textColor="@color/black"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
/>
|
||||
android:text="其他"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/sp_36"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/otherGuideLine"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvOtherTitle"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.5"
|
||||
/>
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvOtherTitle"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
<!--红绿灯标识-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scTrafficLight"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="红绿灯标识"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvOtherTitle"
|
||||
android:text="红绿灯标识"
|
||||
android:scaleY="1.2"
|
||||
android:scaleX="1.2"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/tvOtherTitle" />
|
||||
<!--限速标识-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scSpeedLimit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="限速标识"
|
||||
app:layout_constraintLeft_toRightOf="@id/otherGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvOtherTitle"
|
||||
android:text="限速标识"
|
||||
android:scaleY="1.2"
|
||||
android:scaleX="1.2"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/tvOtherTitle" />
|
||||
<!--异常上报提示-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scIPCReport"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="异常上报提示"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scTrafficLight"
|
||||
android:text="异常上报提示"
|
||||
android:scaleY="1.2"
|
||||
android:scaleX="1.2"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scTrafficLight" />
|
||||
<!--360环视-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scNew360LookAround"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="360环视"
|
||||
app:layout_constraintLeft_toLeftOf="@id/otherGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scSpeedLimit"
|
||||
android:text="360环视"
|
||||
android:scaleY="1.2"
|
||||
android:scaleX="1.2"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@id/scSpeedLimit" />
|
||||
<!--是否展示被动录包弹窗-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scShowBagRecordWindow"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scIPCReport"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:text="录包弹窗"
|
||||
android:scaleY="1.2"
|
||||
android:scaleX="1.2"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
/>
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="录包弹窗"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scIPCReport" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -596,16 +556,16 @@
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="@dimen/dp_780"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardBackgroundColor="@color/color_FFFFFF"
|
||||
app:cardCornerRadius="@dimen/dp_10"
|
||||
app:cardElevation="@dimen/dp_5"
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:contentPadding="@dimen/dp_10">
|
||||
app:contentPadding="@dimen/dp_10"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -615,77 +575,136 @@
|
||||
android:id="@+id/tvSpeedThresholdTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:text="变道速度阈值:"
|
||||
android:textSize="@dimen/dp_36"
|
||||
android:textColor="#1A1A1A"
|
||||
android:layout_margin="20dp"
|
||||
/>
|
||||
android:text="变道速度阈值:"
|
||||
android:textColor="#1A1A1A"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSpeedReduce"
|
||||
android:layout_width="@dimen/dp_64"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvSpeedThresholdTitle"
|
||||
app:layout_constraintTop_toTopOf="@id/tvSpeedThresholdTitle"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvSpeedThresholdTitle"
|
||||
android:src="@drawable/icon_reduce"
|
||||
android:padding="10dp"
|
||||
/>
|
||||
android:src="@drawable/icon_reduce"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvSpeedThresholdTitle"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvSpeedThresholdTitle"
|
||||
app:layout_constraintTop_toTopOf="@id/tvSpeedThresholdTitle" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSpeed"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintTop_toTopOf="@id/ivSpeedReduce"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivSpeedReduce"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivSpeedReduce"
|
||||
android:textSize="@dimen/dp_36"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/debug_setting_edit_bg"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
/>
|
||||
android:background="@drawable/debug_setting_edit_bg"
|
||||
android:gravity="center"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivSpeedReduce"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivSpeedReduce"
|
||||
app:layout_constraintTop_toTopOf="@id/ivSpeedReduce" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSpeedAdd"
|
||||
android:layout_width="@dimen/dp_64"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
app:layout_constraintTop_toTopOf="@id/tvSpeed"
|
||||
android:padding="10dp"
|
||||
android:src="@drawable/icon_add"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvSpeed"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvSpeed"
|
||||
android:src="@drawable/icon_add"
|
||||
android:padding="10dp"
|
||||
/>
|
||||
app:layout_constraintTop_toTopOf="@id/tvSpeed" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnSpeedSet"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:padding="@dimen/dp_20"
|
||||
app:layout_constraintTop_toTopOf="@id/ivSpeedAdd"
|
||||
android:text="设置阈值"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivSpeedAdd"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivSpeedAdd"
|
||||
android:text="设置阈值"
|
||||
app:layout_constraintTop_toTopOf="@id/ivSpeedAdd" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSpeedOverTakeLimit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:text="超车速度阈值:"
|
||||
android:textColor="#1A1A1A"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvSpeedThresholdTitle" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSpeedOverTakeReduce"
|
||||
android:layout_width="@dimen/dp_64"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
android:padding="10dp"
|
||||
android:src="@drawable/icon_reduce"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvSpeedOverTakeLimit"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvSpeedOverTakeLimit"
|
||||
app:layout_constraintTop_toTopOf="@id/tvSpeedOverTakeLimit" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
android:id="@+id/etOverTake"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:background="@drawable/debug_setting_edit_bg"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
android:hint="10 m/s"
|
||||
android:maxLength="10"
|
||||
android:digits="1234567890"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivSpeedOverTakeReduce"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivSpeedOverTakeReduce"
|
||||
app:layout_constraintTop_toTopOf="@id/ivSpeedOverTakeReduce" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSpeedOverTakeAdd"
|
||||
android:layout_width="@dimen/dp_64"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
android:padding="10dp"
|
||||
android:src="@drawable/icon_add"
|
||||
app:layout_constraintBottom_toBottomOf="@id/etOverTake"
|
||||
app:layout_constraintLeft_toRightOf="@id/etOverTake"
|
||||
app:layout_constraintTop_toTopOf="@id/etOverTake" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnSpeedOverTakeSet"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
/>
|
||||
android:padding="@dimen/dp_20"
|
||||
android:text="设置阈值"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivSpeedOverTakeAdd"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivSpeedOverTakeAdd"
|
||||
app:layout_constraintTop_toTopOf="@id/ivSpeedOverTakeAdd" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/llMFLayout"
|
||||
android:layout_width="0dip"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvSpeedThresholdTitle"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:padding="5dip"
|
||||
android:background="@drawable/bg_mf_sop_operator"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp" >
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:background="@drawable/bg_mf_sop_operator"
|
||||
android:orientation="vertical"
|
||||
android:padding="5dip"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvSpeedOverTakeLimit">
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.setting.StateViewLayout
|
||||
android:id="@+id/mfStatusLayout"
|
||||
@@ -696,10 +715,10 @@
|
||||
android:id="@+id/mfTest"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="魔方指令测试"
|
||||
android:paddingTop="25dp"
|
||||
android:layout_marginTop="5dip"
|
||||
android:paddingBottom="25dp" />
|
||||
android:paddingTop="25dp"
|
||||
android:paddingBottom="25dp"
|
||||
android:text="魔方指令测试" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -124,7 +124,9 @@ class SmallMapView @JvmOverloads constructor(
|
||||
// 绘制线
|
||||
mPolyline?.points = mCoordinatesLatLng
|
||||
CallerLogger.d(
|
||||
SceneConstant.M_MAP + TAG, "SmallMapView drawPolyline size is = ${mCoordinatesLatLng.size} ")
|
||||
SceneConstant.M_MAP + TAG,
|
||||
"SmallMapView drawPolyline size is = ${mCoordinatesLatLng.size} "
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -170,21 +172,18 @@ class SmallMapView @JvmOverloads constructor(
|
||||
// 关闭显示实时路况图层,aMap是地图控制器对象。
|
||||
mAMap?.isTrafficEnabled = false
|
||||
// 设置 锚点 图标
|
||||
mCarMarker = if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
|
||||
|| AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)
|
||||
|| AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)) {
|
||||
mAMap?.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_bus_icon))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
val iconRes = if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
|
||||
R.drawable.map_bus_icon
|
||||
} else if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
|
||||
R.drawable.map_m2_icon
|
||||
} else {
|
||||
mAMap?.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_car_icon))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
R.drawable.map_car_icon
|
||||
}
|
||||
mCarMarker = mAMap?.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(iconRes))
|
||||
.anchor(0.5f, 0.5f)
|
||||
)
|
||||
mStartMarker = mAMap?.addMarker(
|
||||
MarkerOptions()
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_dir_start))
|
||||
@@ -294,7 +293,9 @@ class SmallMapView @JvmOverloads constructor(
|
||||
)
|
||||
if (calculateDistance <= 5) {
|
||||
CallerLogger.d(
|
||||
SceneConstant.M_MAP + TAG, "onChassisLocationGCJ02 -----> calculateDistance <= 5 ")
|
||||
SceneConstant.M_MAP + TAG,
|
||||
"onChassisLocationGCJ02 -----> calculateDistance <= 5 "
|
||||
)
|
||||
clearPolyline()
|
||||
mCoordinatesLatLng.clear()
|
||||
}
|
||||
@@ -312,9 +313,9 @@ class SmallMapView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
if(state == 2){
|
||||
if (state == 2) {
|
||||
drawRotting()
|
||||
}else{
|
||||
} else {
|
||||
UiThreadHandler.post {
|
||||
clearPolyline()
|
||||
}
|
||||
@@ -323,7 +324,7 @@ class SmallMapView @JvmOverloads constructor(
|
||||
|
||||
override fun onAutopilotRouteLineId(lineId: Long) {
|
||||
super.onAutopilotRouteLineId(lineId)
|
||||
if(lineId == 0L){
|
||||
if (lineId == 0L) {
|
||||
this.globalPathResp = null
|
||||
UiThreadHandler.post {
|
||||
clearPolyline()
|
||||
@@ -331,14 +332,15 @@ class SmallMapView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun drawRotting(){
|
||||
private fun drawRotting() {
|
||||
globalPathResp?.let {
|
||||
val latLngList: MutableList<MogoLatLng> = ArrayList()
|
||||
for (routeModel in globalPathResp!!.wayPointsList) {
|
||||
latLngList.add(MogoLatLng(routeModel.latitude, routeModel.longitude))
|
||||
}
|
||||
CallerLogger.d(
|
||||
SceneConstant.M_MAP + TAG, "SmallMapView latLngList.size = ${latLngList.size}")
|
||||
SceneConstant.M_MAP + TAG, "SmallMapView latLngList.size = ${latLngList.size}"
|
||||
)
|
||||
if (latLngList.size > 0) {
|
||||
UiThreadHandler.post {
|
||||
convert(latLngList)
|
||||
@@ -347,7 +349,9 @@ class SmallMapView @JvmOverloads constructor(
|
||||
} else {
|
||||
UiThreadHandler.post {
|
||||
CallerLogger.d(
|
||||
SceneConstant.M_MAP + TAG, "SmallMapView latLngList.size = ${latLngList.size} clearPolyline ---->")
|
||||
SceneConstant.M_MAP + TAG,
|
||||
"SmallMapView latLngList.size = ${latLngList.size} clearPolyline ---->"
|
||||
)
|
||||
clearPolyline()
|
||||
}
|
||||
}
|
||||
@@ -356,7 +360,8 @@ class SmallMapView @JvmOverloads constructor(
|
||||
|
||||
override fun onAutopilotRotting(globalPathResp: MessagePad.GlobalPathResp?) {
|
||||
CallerLogger.d(
|
||||
SceneConstant.M_MAP + TAG, "SmallMapView globalPathResp = $globalPathResp")
|
||||
SceneConstant.M_MAP + TAG, "SmallMapView globalPathResp = $globalPathResp"
|
||||
)
|
||||
if (globalPathResp == null || globalPathResp.wayPointsList.size == 0) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -35,6 +35,6 @@ fun TrafficLightStatus.time():Int{
|
||||
data class TrafficLightStatus(
|
||||
val phaseNo: String, //相位编号
|
||||
val color: String, //灯态: 红灯-R,绿灯-G,绿闪-FG,黄-Y,B-黑
|
||||
val remain: String //倒计时-秒 todo 云端string类型 如果返回 -- 解析异常
|
||||
val remain: String //倒计时-秒
|
||||
) {
|
||||
}
|
||||
@@ -49,6 +49,14 @@ object FunctionBuildConfig {
|
||||
@JvmField
|
||||
var detouringSpeed = 3
|
||||
|
||||
/**
|
||||
* 超车目标障碍物速度阈值
|
||||
* 默认 10 m/s
|
||||
*/
|
||||
@Volatile
|
||||
@JvmField
|
||||
var overTakeSpeed = 10.0f
|
||||
|
||||
/**
|
||||
* 是否是感知优化模式
|
||||
* 默认开启
|
||||
|
||||
BIN
core/mogo-core-res/src/main/res/drawable-xhdpi/map_m2_icon.png
Normal file
BIN
core/mogo-core-res/src/main/res/drawable-xhdpi/map_m2_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
@@ -41,7 +41,7 @@ class Scene {
|
||||
val devaMap = SceneLogCache(mutableMapOf(), true)
|
||||
sceneCache[M_DEVA] = devaMap
|
||||
//初始化hmi
|
||||
val hmiMap = SceneLogCache(mutableMapOf(), false)
|
||||
val hmiMap = SceneLogCache(mutableMapOf(), true)
|
||||
sceneCache[M_HMI] = hmiMap
|
||||
//初始化hmi
|
||||
val obuMap = SceneLogCache(mutableMapOf(), true)
|
||||
|
||||
Reference in New Issue
Block a user