[6.4.4]运营面板增加冷启动进度视图是否展示控制开关

This commit is contained in:
xuxinchao
2024-06-06 18:32:49 +08:00
parent 5d551ca83a
commit ea7baa99a3
6 changed files with 100 additions and 36 deletions

View File

@@ -57,6 +57,7 @@ import kotlinx.android.synthetic.main.view_sop_setting.view.rgFusionMode
import kotlinx.android.synthetic.main.view_sop_setting.view.rgPullTime import kotlinx.android.synthetic.main.view_sop_setting.view.rgPullTime
import kotlinx.android.synthetic.main.view_sop_setting.view.scCarAperture import kotlinx.android.synthetic.main.view_sop_setting.view.scCarAperture
import kotlinx.android.synthetic.main.view_sop_setting.view.scCarUnionTrafficLight import kotlinx.android.synthetic.main.view_sop_setting.view.scCarUnionTrafficLight
import kotlinx.android.synthetic.main.view_sop_setting.view.scConnectionSwitch
import kotlinx.android.synthetic.main.view_sop_setting.view.scDemoMode import kotlinx.android.synthetic.main.view_sop_setting.view.scDemoMode
import kotlinx.android.synthetic.main.view_sop_setting.view.scDrawPointCloudData import kotlinx.android.synthetic.main.view_sop_setting.view.scDrawPointCloudData
import kotlinx.android.synthetic.main.view_sop_setting.view.scFaultSlowDown import kotlinx.android.synthetic.main.view_sop_setting.view.scFaultSlowDown
@@ -681,6 +682,14 @@ internal class SOPSettingView @JvmOverloads constructor(
HmiBuildConfig.isShowCarSourceTrafficLightView = isChecked HmiBuildConfig.isShowCarSourceTrafficLightView = isChecked
} }
//系统启动状态展示
scConnectionSwitch.isChecked = HmiBuildConfig.isShowConnectionProgressView
scConnectionSwitch.setOnCheckedChangeListener { _, isChecked ->
hmiAction("SOP 系统启动状态展示, ", isChecked)
HmiBuildConfig.isShowConnectionProgressView = isChecked
CallerHmiViewControlListenerManager.updateConnectionProgressView(isChecked)
}
//限速标识 //限速标识
scSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView scSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView
scSpeedLimit.setOnCheckedChangeListener { _, isChecked -> scSpeedLimit.setOnCheckedChangeListener { _, isChecked ->

View File

@@ -8,8 +8,11 @@ import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.zhjt.mogo.adas.data.AdasConstants import com.zhjt.mogo.adas.data.AdasConstants
@@ -30,7 +33,8 @@ class ConnectionProcessView @JvmOverloads constructor(
context: Context, context: Context,
attrs: AttributeSet? = null, attrs: AttributeSet? = null,
defStyleAttr: Int = 0 defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener{ ) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener,
IViewControlListener {
companion object { companion object {
const val TAG = "ConnectionProcessView" const val TAG = "ConnectionProcessView"
@@ -64,43 +68,57 @@ class ConnectionProcessView @JvmOverloads constructor(
override fun onAttachedToWindow() { override fun onAttachedToWindow() {
super.onAttachedToWindow() super.onAttachedToWindow()
CallerAutoPilotStatusListenerManager.addListener(TAG, this) CallerAutoPilotStatusListenerManager.addListener(TAG, this)
CallerHmiViewControlListenerManager.addListener(TAG,this)
} }
override fun onDetachedFromWindow() { override fun onDetachedFromWindow() {
super.onDetachedFromWindow() super.onDetachedFromWindow()
CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerAutoPilotStatusListenerManager.removeListener(TAG)
CallerHmiViewControlListenerManager.removeListener(TAG)
}
override fun updateConnectionProgressView(visible: Boolean) {
if(visible){
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
}else{
CallerAutoPilotStatusListenerManager.removeListener(TAG)
//隐藏视图
dismissConnectionView()
}
} }
override fun onAutopilotIpcConnectStatusChanged( override fun onAutopilotIpcConnectStatusChanged(
status: AdasConstants.IpcConnectionStatus, status: AdasConstants.IpcConnectionStatus,
reason: String? reason: String?
) { ) {
if(status == AdasConstants.IpcConnectionStatus.CONNECTED){ if(HmiBuildConfig.isShowConnectionProgressView){
//域控连接成功 if(status == AdasConstants.IpcConnectionStatus.CONNECTED){
if(CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady){ //域控连接成功
dismissConnectionView() if(CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ssmAutoPilotReady){
}else{ dismissConnectionView()
if(isFirstTimeConnect || isDisconnectTimeout){ }else{
connectIPCSuccess() if(isFirstTimeConnect || isDisconnectTimeout){
ssmConnectStatus = false connectIPCSuccess()
autopilotReadyStatus = false ssmConnectStatus = false
autopilotReadyStatus = false
}
} }
isDisconnectTimeout = false
disconnectTimer?.cancel()
disconnectTimer = null
}else{
if(ipcConnectStatus && disconnectTimer == null && !isDisconnectTimeout){
//域控断连1分钟超时倒计时
disconnectCountDown()
//如果SSM或者冷启动倒计时已经启动则取消
connectSSMTimer?.cancel()
autopilotReadyTimer?.cancel()
}
if(ipcConnectStatus && this.isVisible){
showIPCConnectFailView()
}
ipcConnectStatus = false
} }
isDisconnectTimeout = false
disconnectTimer?.cancel()
disconnectTimer = null
}else{
if(ipcConnectStatus && disconnectTimer == null && !isDisconnectTimeout){
//域控断连1分钟超时倒计时
disconnectCountDown()
//如果SSM或者冷启动倒计时已经启动则取消
connectSSMTimer?.cancel()
autopilotReadyTimer?.cancel()
}
if(ipcConnectStatus && this.isVisible){
showIPCConnectFailView()
}
ipcConnectStatus = false
} }
} }
@@ -110,11 +128,13 @@ class ConnectionProcessView @JvmOverloads constructor(
* HQ、M1 MAP350开始弃用其他车型MAP360开始弃用 * HQ、M1 MAP350开始弃用其他车型MAP360开始弃用
*/ */
override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) { override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {
//SSM连接成功 if(HmiBuildConfig.isShowConnectionProgressView){
connectSSMSuccess() //SSM连接成功
//冷启动成功 connectSSMSuccess()
if(status.autoPilotReady){ //冷启动成功
autopilotReady() if(status.autoPilotReady){
autopilotReady()
}
} }
} }
@@ -125,11 +145,13 @@ class ConnectionProcessView @JvmOverloads constructor(
* @param statusInf 数据 * @param statusInf 数据
*/ */
override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) { override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) {
//SSM连接成功 if(HmiBuildConfig.isShowConnectionProgressView){
connectSSMSuccess() //SSM连接成功
//冷启动成功 connectSSMSuccess()
if(statusInf.autoPilotReady){ //冷启动成功
autopilotReady() if(statusInf.autoPilotReady){
autopilotReady()
}
} }
} }

View File

@@ -785,6 +785,20 @@
app:layout_constraintRight_toRightOf="@id/scIPCReport" app:layout_constraintRight_toRightOf="@id/scIPCReport"
app:layout_constraintTop_toBottomOf="@id/scIPCReport" /> app:layout_constraintTop_toBottomOf="@id/scIPCReport" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scConnectionSwitch"
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:checked="true"
android:text="系统启动状态展示"
app:layout_constraintLeft_toLeftOf="@id/scWeatherSwitch"
app:layout_constraintRight_toRightOf="@id/scWeatherSwitch"
app:layout_constraintTop_toBottomOf="@id/scWeatherSwitch"
/>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/llMFLayout" android:id="@+id/llMFLayout"
android:layout_width="0dip" android:layout_width="0dip"
@@ -797,7 +811,7 @@
android:padding="5dip" android:padding="5dip"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scWeatherSwitch"> app:layout_constraintTop_toBottomOf="@+id/scConnectionSwitch">
<com.mogo.eagle.core.function.hmi.ui.setting.StateViewLayout <com.mogo.eagle.core.function.hmi.ui.setting.StateViewLayout
android:id="@+id/mfStatusLayout" android:id="@+id/mfStatusLayout"

View File

@@ -30,6 +30,13 @@ object HmiBuildConfig {
@Volatile @Volatile
var isShowCarSourceTrafficLightView = false var isShowCarSourceTrafficLightView = false
/**
* 是否展示系统启动状态展示视图,默认展示 true展示 false不展示
*/
@JvmField
@Volatile
var isShowConnectionProgressView = true
/** /**
* 是否展示 sn绑定的弹框 * 是否展示 sn绑定的弹框
*/ */

View File

@@ -33,6 +33,11 @@ interface IViewControlListener {
*/ */
fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup){} fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup){}
/**
* 是否展示系统启动状态视图
*/
fun updateConnectionProgressView(visible: Boolean){}
/** /**
* 更新(添加/删除)下载进度 * 更新(添加/删除)下载进度
*/ */

View File

@@ -53,4 +53,11 @@ object CallerHmiViewControlListenerManager : CallerBase<IViewControlListener>()
M_LISTENERS[tag]?.updateStatusBarDownloadView(insert, tag, progress) M_LISTENERS[tag]?.updateStatusBarDownloadView(insert, tag, progress)
} }
fun updateConnectionProgressView(visible: Boolean){
M_LISTENERS.forEach {
val listener = it.value
listener.updateConnectionProgressView(visible)
}
}
} }