[6.1.0]运营面板

This commit is contained in:
xuxinchao
2023-09-14 19:37:44 +08:00
parent abb9aa03e7
commit f7d5462bed
8 changed files with 837 additions and 741 deletions

View File

@@ -4,7 +4,6 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.*
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
@@ -21,18 +20,17 @@ 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.hmi.CallerHmiManager
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
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.telematic.CallerTelematicManager
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.util.ThreadUtils
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.bean.AdasParam
import kotlinx.android.synthetic.main.view_sop_setting.view.*
import kotlinx.android.synthetic.main.view_sop_setting.view.tbRouteDynamicEffect
import mogo.telematics.pad.MessagePad
/**
@@ -57,47 +55,30 @@ internal class SOPSettingView @JvmOverloads constructor(
private fun initView() {
sopLayout.setOnClickListener { }
tbObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring
tbObstacleAvoidance.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 绕障类功能开关",isChecked)
CallerAutoPilotControlManager.sendDetouring(isChecked)
FunctionBuildConfig.isDetouring = isChecked
//V2X消息设置
v2xSetting()
//地图效果类设置
mapSetting()
//与车相关类设置
vehicleSetting()
//其他类别开关设置
otherSetting()
}
/**
* V2X消息设置
*/
private fun v2xSetting(){
//V2N新链路
scNewV2NData.isChecked = FunctionBuildConfig.isNewV2NData
scNewV2NData.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",isChecked)
FunctionBuildConfig.isNewV2NData = isChecked
}
tbMarkingObstacles.isChecked = FunctionBuildConfig.isPNCWarning
tbMarkingObstacles.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 危险障碍物颜色标记开关",isChecked)
FunctionBuildConfig.isPNCWarning = isChecked
}
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
tbMarkingObstacles.visibility = View.GONE
}
tbRouteDynamicEffect.isChecked = HmiBuildConfig.isShowRouteStrategy
tbRouteDynamicEffect.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 引导线动态效果",isChecked)
HmiBuildConfig.isShowRouteStrategy = isChecked
}
//默认开启
tbObuWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowObuWeaknessTrafficView
tbObuWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obu弱势交通控制, ",isChecked)
HmiBuildConfig.isShowObuWeaknessTrafficView = isChecked
}
/**
* 默认关闭
*/
tbCloudWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowCloudWeaknessTrafficView
tbCloudWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 云端弱势交通控制, ",isChecked)
HmiBuildConfig.isShowCloudWeaknessTrafficView = isChecked
}
tbV2nPnc.isChecked = FunctionBuildConfig.isV2NPnc
tbV2nPnc.setOnCheckedChangeListener{ compoundButton, isChecked ->
//V2N场景进PNC
scV2nPnc.isChecked = FunctionBuildConfig.isV2NPnc
scV2nPnc.setOnCheckedChangeListener{ compoundButton, isChecked ->
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
@@ -106,53 +87,9 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.isV2NPnc = isChecked
}
tbV2iPnc.isChecked = FunctionBuildConfig.isV2IPnc
tbV2iPnc.setOnCheckedChangeListener{ compoundButton, isChecked ->
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
hmiAction("SOP V2I场景进PNC, ",isChecked)
CallerAutoPilotControlManager.sendV2iToPncCmd(isChecked)
FunctionBuildConfig.isV2IPnc = isChecked
}
/**
* 默认打开
*/
tbObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView
tbObuV2vView.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obuV2V开关, ",isChecked)
HmiBuildConfig.isShowObuV2vView = isChecked
}
/**
* 默认打开
*/
tbObuV2iView.isChecked = HmiBuildConfig.isShowObuV2iView
tbObuV2iView.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obuV2i开关, ",isChecked)
HmiBuildConfig.isShowObuV2iView = isChecked
}
/**
* 默认关闭
*/
tbRunRedLightSop.isChecked = HmiBuildConfig.isShowRunRedLightView
tbRunRedLightSop.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obu闯红灯预警, ",isChecked)
HmiBuildConfig.isShowRunRedLightView = isChecked
if (HmiBuildConfig.isShowRunRedLightView) {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
} else {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "0".toByteArray())
}
}
/**
* 默认关闭
*/
tbGreenWaveSop.isChecked = HmiBuildConfig.isShowGreenWaveView
tbGreenWaveSop.setOnCheckedChangeListener { _, isChecked ->
//绿波通行(默认关闭)
scGreenWaveSop.isChecked = HmiBuildConfig.isShowGreenWaveView
scGreenWaveSop.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obu绿波通行, ",isChecked)
HmiBuildConfig.isShowGreenWaveView = isChecked
if (HmiBuildConfig.isShowGreenWaveView) {
@@ -162,30 +99,111 @@ internal class SOPSettingView @JvmOverloads constructor(
}
}
tbTrafficLight.isChecked = !HmiBuildConfig.isShowTrafficLightView
tbTrafficLight.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 红绿灯标识开关, ",isChecked)
if (isChecked) {
CallerHmiManager.showTrafficLightView()
//V2I场景进PNC
scV2iPnc.isChecked = FunctionBuildConfig.isV2IPnc
scV2iPnc.setOnCheckedChangeListener{ compoundButton, isChecked ->
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
hmiAction("SOP V2I场景进PNC, ",isChecked)
CallerAutoPilotControlManager.sendV2iToPncCmd(isChecked)
FunctionBuildConfig.isV2IPnc = isChecked
}
//闯红灯预警(默认关闭)
scRunRedLightSop.isChecked = HmiBuildConfig.isShowRunRedLightView
scRunRedLightSop.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obu闯红灯预警, ",isChecked)
HmiBuildConfig.isShowRunRedLightView = isChecked
if (HmiBuildConfig.isShowRunRedLightView) {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "1".toByteArray())
} else {
CallerHmiManager.hideTrafficLightView()
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, "0".toByteArray())
}
}
tbSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView
tbSpeedLimit.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 限速标识开关, ",isChecked)
//路侧弱势交通参与者(默认开启)
scObuWeaknessTrafficSop.isChecked = HmiBuildConfig.isShowObuWeaknessTrafficView
scObuWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obu弱势交通控制, ",isChecked)
HmiBuildConfig.isShowObuWeaknessTrafficView = isChecked
}
//V2V总开关(默认关闭)
scObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView
scObuV2vView.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP obuV2V开关, ",isChecked)
HmiBuildConfig.isShowObuV2vView = isChecked
}
//obu总开关
scObu.isChecked = CallerObuApiManager.isConnected()
scObu.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP OBU控制总开关, ",isChecked)
if (isChecked) {
HmiBuildConfig.isShowLimitingVelocityView = true
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
} else {
HmiBuildConfig.isShowLimitingVelocityView = false
CallerHmiViewControlListenerManager.invokeVisible(IViewControlListener.LimitingVelocityView_TAG,View.GONE)
//断开链接
CallerObuApiManager.disConnectObu()
}
}
}
/**
* 地图效果类设置
*/
private fun mapSetting(){
//危险障碍物颜色标记开关
scMarkingObstacles.isChecked = FunctionBuildConfig.isPNCWarning
scMarkingObstacles.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 危险障碍物颜色标记开关",isChecked)
FunctionBuildConfig.isPNCWarning = isChecked
}
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
scMarkingObstacles.isEnabled = false
}
//引导线动态效果
scRouteDynamicEffect.isChecked = HmiBuildConfig.isShowRouteStrategy
scRouteDynamicEffect.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 引导线动态效果",isChecked)
HmiBuildConfig.isShowRouteStrategy = isChecked
}
//点云效果
//初始化点云数据渲染情况
scDrawPointCloudData.isChecked = FunctionBuildConfig.isDrawPointCloudData
//是否渲染点云数据
scDrawPointCloudData.setOnCheckedChangeListener { _, isChecked ->
CallerAutoPilotControlManager.setIsDrawPointCloud(isChecked)
FunctionBuildConfig.isDrawPointCloudData = isChecked
CallerMapUIServiceManager.getMapUIController()?.setIsDrawPointCloud(isChecked)
}
//自车光圈
scCarAperture.isChecked = FunctionBuildConfig.isDisplayAnimEnable
scCarAperture.setOnCheckedChangeListener { _, isChecked ->
CallerMapUIServiceManager.getMapUIController()?.setDisplayAnimEnable(isChecked)
FunctionBuildConfig.isDisplayAnimEnable = isChecked
}
}
/**
* 与车相关类设置
*/
private fun vehicleSetting(){
//绕障类功能
scObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring
scObstacleAvoidance.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 绕障类功能开关",isChecked)
CallerAutoPilotControlManager.sendDetouring(isChecked)
FunctionBuildConfig.isDetouring = isChecked
}
// 演示模式,上一次勾选的数据
tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode
tbDemoMode.setOnCheckedChangeListener { compoundButton, _ ->
scDemoMode.isChecked = FunctionBuildConfig.isDemoMode
scDemoMode.setOnCheckedChangeListener { compoundButton, _ ->
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
@@ -200,12 +218,12 @@ internal class SOPSettingView @JvmOverloads constructor(
}
//只在司机端设置美化模式开关功能
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
tbDemoMode.visibility = View.GONE
scDemoMode.isEnabled = false
}
// 雨天模式,上一次勾选的数据
tbRainMode.isChecked = FunctionBuildConfig.isRainMode
tbRainMode.setOnCheckedChangeListener { compoundButton, isChecked ->
scRainMode.isChecked = FunctionBuildConfig.isRainMode
scRainMode.setOnCheckedChangeListener { compoundButton, isChecked ->
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
@@ -216,72 +234,24 @@ internal class SOPSettingView @JvmOverloads constructor(
}
//雨天模式按钮只在司机屏生效,乘客屏不显示
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
tbRainMode.visibility = View.GONE
}
tbObu.isChecked = CallerObuApiManager.isConnected()
tbObu.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP OBU控制总开关, ",isChecked)
if (isChecked) {
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
} else {
//断开链接
CallerObuApiManager.disConnectObu()
}
}
tbIPCReport.isChecked = FunctionBuildConfig.isReportWarning
tbIPCReport.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 是否开启异常上报, ",isChecked)
FunctionBuildConfig.isReportWarning = isChecked
}
tbNewV2NData.isChecked = FunctionBuildConfig.isNewV2NData
tbNewV2NData.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 是否是V2N新链路(云->工控机->App)",isChecked)
FunctionBuildConfig.isNewV2NData = isChecked
}
// M1 360度环视
tbNew360LookAround?.also {
if (!AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) {
it.isEnabled = false
} else {
it.isEnabled = true
it.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
CallerHmiManager.showM1360LookAround()
} else {
CallerHmiManager.hidM1360LookAround()
}
}
it.isChecked = CallerHmiManager.isM1360LookAroundShowing()
}
scRainMode.visibility = View.GONE
}
//弱网减速停车
tbWeakNetSlowDown.isChecked = FunctionBuildConfig.isWeakNetSlowDown
tbWeakNetSlowDown.setOnCheckedChangeListener{_, isChecked ->
scWeakNetSlowDown.isChecked = FunctionBuildConfig.isWeakNetSlowDown
scWeakNetSlowDown.setOnCheckedChangeListener{_, isChecked ->
FunctionBuildConfig.isWeakNetSlowDown = isChecked
CallerAutoPilotControlManager.sendWeakNetSlowDown(isChecked)
hmiAction("SOP 弱网减速停车, ",isChecked)
}
//故障减速停车
tbFaultSlowDown.isChecked = FunctionBuildConfig.isFaultSlowDown
tbFaultSlowDown.setOnCheckedChangeListener{_, isChecked ->
scFaultSlowDown.isChecked = FunctionBuildConfig.isFaultSlowDown
scFaultSlowDown.setOnCheckedChangeListener{_, isChecked ->
FunctionBuildConfig.isFaultSlowDown = isChecked
CallerAutoPilotControlManager.sendBreakdownSlowDown(isChecked)
hmiAction("SOP 故障减速停车, ",isChecked)
}
//是否展示被动触发的录包弹窗(自动驾驶下出现问题触发的录包)
tbShowBagRecordWindow.isChecked = FunctionBuildConfig.isShowBagRecordWindow
tbShowBagRecordWindow.setOnCheckedChangeListener{_, isChecked ->
FunctionBuildConfig.isShowBagRecordWindow = isChecked
hmiAction("SOP 是否展示被动触发的录包弹窗, ",isChecked)
}
//融合模式
rgFusionMode.setOnCheckedChangeListener { _, p1 ->
when(p1){
@@ -308,93 +278,69 @@ internal class SOPSettingView @JvmOverloads constructor(
}
CallerAutoPilotControlManager.sendFusionMode(FunctionBuildConfig.fusionMode)
}
}
//变道绕障的目标障碍物速度阈值
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
ivSpeedReduce.setOnClickListener {
if (FunctionBuildConfig.detouringSpeed <= 3) {
ToastUtils.showShort("阈值最小可为3 m/s")
/**
* 其他类别开关设置
*/
private fun otherSetting(){
//红绿灯标识开关
scTrafficLight.isChecked = !HmiBuildConfig.isShowTrafficLightView
scTrafficLight.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 红绿灯标识开关, ",isChecked)
if (isChecked) {
CallerHmiManager.showTrafficLightView()
} else {
FunctionBuildConfig.detouringSpeed--
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
}
hmiAction("SOP 变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
}
ivSpeedAdd.setOnClickListener {
if (FunctionBuildConfig.detouringSpeed >= 7) {
ToastUtils.showShort("阈值最大可为7 m/s")
} else {
FunctionBuildConfig.detouringSpeed++
tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s"
}
hmiAction("SOP 变道绕障的目标障碍物速度阈值",FunctionBuildConfig.detouringSpeed)
}
btnSpeedSet.setOnClickListener {
val isSuccess =
CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.detouringSpeed.toDouble())
if (isSuccess == true) {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置","成功")
} else {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置","失败")
CallerHmiManager.hideTrafficLightView()
}
}
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
tvSpeedThresholdTitle.visibility = View.GONE
ivSpeedReduce.visibility = View.GONE
tvSpeed.visibility = View.GONE
ivSpeedAdd.visibility = View.GONE
btnSpeedSet.visibility = View.GONE
//限速标识
scSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView
scSpeedLimit.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 限速标识开关, ",isChecked)
if (isChecked) {
HmiBuildConfig.isShowLimitingVelocityView = true
} else {
HmiBuildConfig.isShowLimitingVelocityView = false
CallerHmiViewControlListenerManager.invokeVisible(IViewControlListener.LimitingVelocityView_TAG,View.GONE)
}
}
/**
* 魔方sop运营相关配置
*/
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
val mf = CallerDevaToolsManager.mofang()
if (mf != null) {
mfStatusLayout.setClickEnabled(true)
mfStatusLayout.setClickedTextAndTag(if (mf.isConnected()) "断开魔方连接" else "开始连接魔方", if (mf.isConnected()) 0 else 1)
mf.registerMoFangStatusListener(TAG, this)
mfStatusLayout.setOnClickCallback {
val tag = it.tag as? Int
if (tag == 0) {
//断开魔方连接
if (!mf.isConnected()) {
Toast.makeText(context, "尚未建立连接", Toast.LENGTH_SHORT).show()
return@setOnClickCallback
}
mfStatusLayout.showLoadingView()
mfStatusLayout.setLoadingViewText("正在断开魔方连接, 请稍候...")
mf.disconnect()
}
if (tag == 1) {
//建立魔方连接
if (mf.isConnected()) {
Toast.makeText(context, "已连接,不要重复连接", Toast.LENGTH_SHORT).show()
return@setOnClickCallback
}
mf.connect()
mfStatusLayout.showLoadingView()
mfStatusLayout.setLoadingViewText("正在连接魔方, 请稍候")
//异常上报提示
scIPCReport.isChecked = FunctionBuildConfig.isReportWarning
scIPCReport.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 是否开启异常上报, ",isChecked)
FunctionBuildConfig.isReportWarning = isChecked
}
// M1 360度环视
scNew360LookAround?.also {
if (!AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) {
it.isEnabled = false
} else {
it.isEnabled = true
it.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
CallerHmiManager.showM1360LookAround()
} else {
CallerHmiManager.hidM1360LookAround()
}
}
it.isChecked = CallerHmiManager.isM1360LookAroundShowing()
}
mfTest.isEnabled = mf?.isConnected() ?: false
mfTest.isChecked = mf?.isEnableTest() ?: false
mfTest.setOnCheckedChangeListener { _, isChecked ->
mf?.enableTest(isChecked)
}
} else {
mfStatusLayout.setClickEnabled(false)
mfTest.isEnabled = false
}
//是否展示被动触发的录包弹窗(自动驾驶下出现问题触发的录包)
scShowBagRecordWindow.isChecked = FunctionBuildConfig.isShowBagRecordWindow
scShowBagRecordWindow.setOnCheckedChangeListener{_, isChecked ->
FunctionBuildConfig.isShowBagRecordWindow = isChecked
hmiAction("SOP 是否展示被动触发的录包弹窗, ",isChecked)
}
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
//添加 业务配置监听
@@ -410,10 +356,10 @@ internal class SOPSettingView @JvmOverloads constructor(
override fun updateFuncMode(tag: String, boolean: Boolean) {
super.updateFuncMode(tag, boolean)
if(tag == FUNC_MODE_DEMO){
tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode
scDemoMode.isChecked = FunctionBuildConfig.isDemoMode
}
if(tag == FUNC_MODE_RAIN){
tbRainMode.isChecked = FunctionBuildConfig.isRainMode
scRainMode.isChecked = FunctionBuildConfig.isRainMode
}
}
@@ -426,61 +372,55 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerDevaToolsManager.mofang()?.unRegisterMoFangStatusListener(this)
}
// private val timerTaskRefresh = object : TimerTask(){
// override fun run() {
// UiThreadHandler.post{
// tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode
// tbRainMode.isChecked = FunctionBuildConfig.isRainMode
// }
// }
//
// }
override fun updateBizView(type: String, lock: Boolean) {
when (type) {
//美化模式
FuncBizConfig.BIZ_BEAUTY_MODE -> {
tbDemoMode.isClickable = !lock
scDemoMode.isClickable = !lock
if(lock){
tbDemoMode.visibility = View.INVISIBLE
scDemoMode.visibility = View.INVISIBLE
}else{
tbDemoMode.visibility = View.VISIBLE
scDemoMode.visibility = View.VISIBLE
}
}
//雨天模式
FuncBizConfig.BIZ_RAIN_MODE -> {
tbRainMode.isClickable = !lock
scRainMode.isClickable = !lock
if (lock) {
tbRainMode.visibility = View.INVISIBLE
scRainMode.visibility = View.INVISIBLE
} else {
tbRainMode.visibility = View.VISIBLE
}
}
FuncBizConfig.BIZ_PNC_WARNING -> {
tbMarkingObstacles.isClickable = !lock
if (lock) {
tbMarkingObstacles.visibility = View.INVISIBLE
} else {
tbMarkingObstacles.visibility = View.VISIBLE
scRainMode.visibility = View.VISIBLE
}
}
// FuncBizConfig.BIZ_PNC_WARNING -> {
// tbMarkingObstacles.isClickable = !lock
// if (lock) {
// tbMarkingObstacles.visibility = View.INVISIBLE
// } else {
// tbMarkingObstacles.visibility = View.VISIBLE
// }
// }
}
}
override fun onMoFangConnected() {
mfStatusLayout?.also {
it.hideLoadingView()
it.setClickedTextAndTag("断开魔方连接", 0)
mfTest?.isEnabled = true
mfTest?.isChecked = CallerDevaToolsManager.mofang()?.isEnableTest() ?: false
}
// mfStatusLayout?.also {
// it.hideLoadingView()
// it.setClickedTextAndTag("断开魔方连接", 0)
// mfTest?.isEnabled = true
// mfTest?.isChecked = CallerDevaToolsManager.mofang()?.isEnableTest() ?: false
// }
}
override fun onMoFangDisconnected() {
mfStatusLayout?.also {
it.hideLoadingView()
it.setClickedTextAndTag("开始连接魔方", 1)
mfTest?.isEnabled = false
}
// mfStatusLayout?.also {
// it.hideLoadingView()
// it.setClickedTextAndTag("开始连接魔方", 1)
// mfTest?.isEnabled = false
// }
}
override fun onMoFangBatteryChanged(battery: Int) {

View File

@@ -168,7 +168,16 @@ object FunctionBuildConfig {
*/
@Volatile
@JvmField
var isDrawPointCloudData = true
var isDrawPointCloudData = false
/**
* 自车是否展示光圈
* true - 展示
* false - 不展示
*/
@Volatile
@JvmField
var isDisplayAnimEnable = false
/**
* 地图是否忽略判断条件直接绘制工控机引导线数据&全局路径规划

View File

@@ -54,7 +54,7 @@ object HmiBuildConfig {
*/
@JvmField
@Volatile
var isShowObuV2vView = true
var isShowObuV2vView = false
/**
* 是否展示obu的v2i

View File

@@ -45,6 +45,12 @@ public interface IMogoMapUIController {
*/
void setDebugMode(Boolean debugMode);
/**
* 设置地图是否展示自车光圈
* @param displayAnimEnable 是否展示自车光圈
*/
void setDisplayAnimEnable(Boolean displayAnimEnable);
/**
* 进入VR 模式
*

View File

@@ -337,6 +337,19 @@ public class AMapViewWrapper implements IMogoMapView,
MapAutoApi.INSTANCE.setDebugMode(debugMode);
}
/**
* 自车光圈
* @param displayAnimEnable 是否展示自车光圈
*/
@Override
public void setDisplayAnimEnable(Boolean displayAnimEnable) {
if (checkAMapView()){
MyLocationStyle style = mMapView.getMapAutoViewHelper().getMyLocationStyle();
style.setDisplayAnimEnable(displayAnimEnable);
mMapView.getMapAutoViewHelper().setMyLocationStyle(style);
}
}
@Override
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
if(visualLock){

View File

@@ -83,6 +83,18 @@ public class MogoMapUIController implements IMogoMapUIController {
}
}
/**
* 自车光圈
* @param displayAnimEnable 是否展示自车光圈
*/
@Override
public void setDisplayAnimEnable(Boolean displayAnimEnable) {
initDelegate();
if(mDelegate != null){
mDelegate. setDisplayAnimEnable(displayAnimEnable);
}
}
@Override
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
initDelegate();

View File

@@ -70,6 +70,17 @@ public class AMapUIController implements IMogoMapUIController {
}
}
/**
* 自车光圈
* @param displayAnimEnable 是否展示自车光圈
*/
@Override
public void setDisplayAnimEnable(Boolean displayAnimEnable) {
if(mClient != null){
mClient.setDisplayAnimEnable(displayAnimEnable);
}
}
@Override
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
if (mClient != null) {