Merge remote-tracking branch 'origin/dev_robotaxi-d_241202_6.8.2' into dev_robobus-d_241202_6.8.4

# Conflicts:
#	OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt
#	OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotStateModel.kt
#	OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt
#	gradle.properties
This commit is contained in:
yangyakun
2024-12-18 18:15:36 +08:00
45 changed files with 491 additions and 119 deletions

View File

@@ -180,10 +180,7 @@ object PassBusStationEventManager : IMoGoChassisLocationWGS84Listener {
it.notifyDistance
),
isDriverScreen,
String.format(
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ROAD_BUS_STATION.poiType),
it.notifyDistance
),
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ROAD_BUS_STATION.poiType),
UriUtils.res2Uri(
EventTypeEnumNew.getPoiTypeBg(
EventTypeEnumNew.TYPE_USECASE_ROAD_BUS_STATION.poiType,

View File

@@ -212,7 +212,7 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
)
)
)
CallerHmiManager.warningV2X(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.content, EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.tts, isFromObu = false)
CallerHmiManager.warningV2X(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.content, EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.tts)
}
}
@@ -242,7 +242,7 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
)
)
)
CallerHmiManager.warningV2X(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, content, tts, isFromObu = false)
CallerHmiManager.warningV2X(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, content, tts)
}
}

View File

@@ -69,6 +69,7 @@ import mogo.v2x.MogoV2X
import java.nio.charset.Charset
import java.util.concurrent.CopyOnWriteArrayList
import java.util.concurrent.CopyOnWriteArraySet
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicBoolean
object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IV2XCallback,
@@ -250,7 +251,7 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IV2XCallback,
tts,
null,
ALERT_WARNING_TOP,
isFromObu = false
TimeUnit.SECONDS.toMillis(5)
)
}
}

View File

@@ -159,8 +159,9 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
}
}
}
val content = "发现前方${distance.toInt()}${ if (poiType == EventTypeEnumNew.TYPE_SOCKET_ROAD_SHIGONG.poiType) "车道施工" else "车道事故" }"
val tts = "$content, ${SkinResources.getInstance().getString(R.string.operation_platform_name)}提醒您小心行人及来车"
val contentType = if (poiType == EventTypeEnumNew.TYPE_SOCKET_ROAD_SHIGONG.poiType) "道路施工" else "道路事故"
val content = "前方${distance.toInt()}米有$contentType"
val tts = "${SkinResources.getInstance().getString(R.string.operation_platform_name)}发现前方$contentType, 提醒您注意行人及来车"
V2XBizTrace.onAck(TAG, "绘制poi事件:$poiType")
saveMsgBox(
MsgBoxBean(
@@ -237,7 +238,7 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
}
// 弹事件框
val alertContent = String.format(EventTypeEnumNew.getAlarmContent(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType), distance.toInt())
val alertTts = String.format(EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType), distance.toInt())
val alertTts = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType)
CallerRoadV2NEventWindowListenerManager.showLiveVideo(
newEventId,
event.timestamp,
@@ -363,7 +364,7 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
}
// 弹事件框
val alertContent = String.format(EventTypeEnumNew.getAlarmContent(EventTypeEnumNew.TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType), distance.toInt())
val alertTts = String.format(EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType), distance.toInt())
val alertTts = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType)
CallerRoadV2NEventWindowListenerManager.showLiveVideo(
data.eventId,
data.timestamp,

View File

@@ -1,5 +1,6 @@
package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.enums.CommunicationType;
import com.mogo.eagle.core.data.enums.DataSourceType;
import com.mogo.eagle.core.data.enums.EventTypeEnumNew;
@@ -133,7 +134,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
);
CallerHmiManager.INSTANCE.warningV2X(poiType, alarmText,
ttsText, this,WarningDirectionEnum.ALERT_WARNING_TOP,
TimeUnit.SECONDS.toMillis(5), false);
TimeUnit.SECONDS.toMillis(5), AIAssist.LEVEL2, false);
//消息埋点
V2XEventAnalyticsManager.INSTANCE.triggerV2XEvent(poiType,alarmText,ttsText, DataSourceType.AICLOUD, CommunicationType.V2N);
}

View File

@@ -9,6 +9,7 @@ import android.text.style.ForegroundColorSpan;
import android.util.Log;
import androidx.annotation.Nullable;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.enums.CommunicationType;
import com.mogo.eagle.core.data.enums.DataSourceType;
import com.mogo.eagle.core.data.enums.EventTypeEnumNew;
@@ -87,7 +88,7 @@ public class V2XFrontWarningScenario extends AbsV2XScenario implements IMoGoChas
CallerHmiManager.INSTANCE.warningV2X(v2xType + "",
getAlertContentForFrontWarning(mMarkerEntity), mMarkerEntity.getTts(),
this,getDirection(),
TimeUnit.SECONDS.toMillis(5), false);
TimeUnit.SECONDS.toMillis(5), AIAssist.LEVEL2, false);
//消息埋点
V2XEventAnalyticsManager.INSTANCE.triggerV2XEvent(v2xType,getAlertContentForFrontWarning(mMarkerEntity).toString(),
mMarkerEntity.getTts(), DataSourceType.AICLOUD, CommunicationType.V2N);

View File

@@ -271,7 +271,7 @@ class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListe
CallerMsgBoxManager.saveMsgBox(
MsgBoxBean(MsgBoxType.V2X, V2XMsg(v2xType, alertContent.toString(), ttsContent,CommunicationType.V2N.name))
)
CallerHmiManager.warningV2X(v2xType, alertContent, ttsContent, isFromObu = false)
CallerHmiManager.warningV2X(v2xType, alertContent, ttsContent)
V2XEventAnalyticsManager.triggerV2XEvent(v2xType, alertContent.toString(),
ttsContent,DataSourceType.AICLOUD,CommunicationType.V2N)
}

View File

@@ -31,6 +31,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListene
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotControlProvider
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_RAIN
import com.mogo.eagle.core.function.api.map.collect.IMoGoMapDataCollectProvider
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerIpcConnectStateToastManager
import com.mogo.eagle.core.function.call.cloud.CallerCloudCertManager
@@ -56,6 +57,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.telematic.MogoProtocolMsg
import com.mogo.telematic.MogoProtocolMsg.NORMAL_DATA
import com.mogo.telematic.MogoProtocolMsg.SYNC_FUSION_COLOR_STATUS
import com.mogo.telematic.MogoProtocolMsg.SYNC_MODE_STATUS
import com.mogo.telematic.NSDNettyManager
import com.mogo.telematic.client.listener.NettyClientListener
@@ -161,6 +163,7 @@ class MoGoAutopilotControlProvider :
override fun run() {
// 同步是否开启美化模式
setDemoMode(FunctionBuildConfig.isDemoMode)
setFusionColor(FunctionBuildConfig.isFusionColor)
setIgnoreConditionDraw(FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData)
msgHandler.synMsgToAllClients()
}
@@ -571,6 +574,32 @@ class MoGoAutopilotControlProvider :
}
}
/**
* 感知颜色绘制同步
*/
override fun setFusionColor(isEnable: Boolean) {
// 同步给乘客端
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
val byteArray = if (isEnable) {
"1;${System.currentTimeMillis()}".toByteArray()
} else {
"0;${System.currentTimeMillis()}".toByteArray()
}
if (NSDNettyManager.getInstance().isServerStart) {
NSDNettyManager.getInstance()
.sendMsgToAllClients(
MogoProtocolMsg(
SYNC_FUSION_COLOR_STATUS,
byteArray.size,
byteArray
)
)
} else {
CallerLogger.d("$M_D_C$TAG", "同步感知颜色绘制时司机端Server未启动")
}
}
}
override fun setIgnoreConditionDraw(isIgnore: Boolean) {
// 同步给乘客端
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {

View File

@@ -143,6 +143,8 @@ class MoGoAdasMsgConnectStatusListenerImpl :
CallerAutoPilotControlManager.setRainMode(FunctionBuildConfig.isRainMode)
// 6.6.2 版本默认开启,与海江确认过,默认发盲区模式
CallerAutoPilotControlManager.sendFusionMode(2)
CallerAutoPilotControlManager.sendV2iToPncCmd(FunctionBuildConfig.v2iToPNC)
CallerAutoPilotControlManager.sendV2nToPncCmd(FunctionBuildConfig.v2nTotalSwitch)
}
AdasConstants.IpcConnectionStatus.CONNECTING -> {

View File

@@ -20,6 +20,7 @@ import com.mogo.eagle.core.data.multidisplay.TelematicConstant
import com.mogo.eagle.core.data.v2x.V2XEvent.RoadEventX
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setDemoMode
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setFusionColor
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setIgnoreConditionDraw
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager
@@ -74,6 +75,9 @@ class TeleMsgHandler : IMsgHandler {
@Volatile
private var demoModeTime = 0L
@Volatile
private var fusionColorTime = 0L
@Volatile
private var timestamp = 0L
@@ -302,6 +306,27 @@ class TeleMsgHandler : IMsgHandler {
}
}
MogoProtocolMsg.SYNC_FUSION_COLOR_STATUS -> {
val content = String(it.body)
if (content.contains(";")) {
val strArr = content.split(";")
if (strArr.size == 2) {
val currTime = strArr[1].toLong()
if (currTime > fusionColorTime) {
val fusionColor = when (strArr[0]) {
"1" -> true
else -> false
}
CallerTelematicListenerManager.dispatchFusionColor(fusionColor)
fusionColorTime = currTime
invokeNettyConnResult("乘客屏收到 fusionColor为${fusionColor}")
} else {
invokeNettyConnResult("乘客屏收到过时的fusionColor")
}
}
}
}
MogoProtocolMsg.REQ_MAC_ADDRESS -> {
val carConfig = MessagePad.CarConfigResp.parseFrom(msg.body)
AppConfigInfo.plateNumber = carConfig.plateNumber
@@ -484,6 +509,7 @@ class TeleMsgHandler : IMsgHandler {
val socketAddress = channel?.remoteAddress().toString()
CallerLogger.d("${SceneConstant.M_D_C}$TAG", "Client ip is:${socketAddress}")
setDemoMode(FunctionBuildConfig.isDemoMode)
setFusionColor(FunctionBuildConfig.isFusionColor)
setIgnoreConditionDraw(FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData)
}

View File

@@ -29,6 +29,7 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra
private var observer: Observer<Pair<Status?, ArrayList<Status>>>? = null
init {
LayoutInflater.from(context).inflate(R.layout.layout_status_bar, this, true)
layoutTransition = null
rv = findViewById(R.id.rv)
init()
}

View File

@@ -7,13 +7,18 @@ import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import chassis.Chassis
import com.mogo.eagle.core.data.config.FunctionBuildConfig
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.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_DEMO
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo_core_function_devatools.status.StatusManager
import com.zhjt.mogo_core_function_devatools.status.entity.AcceleratorStatus
import com.zhjt.mogo_core_function_devatools.status.entity.BrakeStatus
@@ -44,7 +49,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), StatusManager.IStatusListener {
) : ConstraintLayout(context, attrs, defStyleAttr), StatusManager.IStatusListener,
IViewControlListener {
companion object {
private const val TAG = "StartAutoPilotStatusView"
@@ -89,7 +95,7 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
}
private fun handleFSM(status: FSMStatus) {
Logger.d(TAG, "--- handleFSM ---FSMStatus: code=${status.state} isError=${status.isException()} ")
Logger.d(TAG, "--- handleFSM ---FSMStatus: code=${status.state} isError=${status.isException()} isDemoMode=${FunctionBuildConfig.isDemoMode}")
val lastHasFSM = hasFSM.get()
val newHasFSM = status.hasFSMModule()
Logger.d(TAG, "--- handleFSM ---lastHasFSM=${lastHasFSM} newHasFSM=${newHasFSM}")
@@ -98,6 +104,11 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
}
hasFSM.set(newHasFSM)
if (FunctionBuildConfig.isDemoMode && status.isException()) {
// 美化模式下如果是异常的,修改成正常的
status.state = FSMStateCode.ExistNormal
}
when (status.state) {
FSMStateCode.UnKnown -> {
fSMStatusLayout?.setOnClickListener(null)
@@ -145,9 +156,15 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
}
private fun handleWithoutFSM(status: Status) {
val isError =
var isError =
status.isException() && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
Logger.d(TAG, "--- handleWithoutFSM ---${status::class.simpleName}: $isError")
Logger.d(TAG, "--- handleWithoutFSM --- isError=${status::class.simpleName}: $isError isDemoMode=${FunctionBuildConfig.isDemoMode}")
if (FunctionBuildConfig.isDemoMode && isError) {
// 美化模式下如果是异常的,修改成正常的
isError = false
}
when (status) {
is GearStatus -> {
val position = try {
@@ -224,6 +241,34 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
}
}
/**
* 处理无FSM模块时 && 美化模式时
*/
private fun handleWithoutFSMDemoMode() {
Logger.d(TAG, "--- handleWithoutFSMDemoMode ---")
UiThreadHandler.post {
tv_gear?.isEnabled = false
iv_accelerator?.isSelected = false
iv_brake?.isSelected = false
iv_double_flash?.isSelected = false
iv_steer?.isSelected = false
withoutFSMStatusLayout?.background =
ContextCompat.getDrawable(
context,
R.drawable.icon_no_fsm_status_bg_normal
)
notifyStatus(false)
}
}
/**
* 处理有FSM模块时 && 美化模式时
*/
private fun handleFSMDemoMode() {
Logger.d(TAG, "--- handleFSMDemoMode ---")
handleFSM(FSMStatus(FSMStateCode.ExistNormal, listOf("正常")))
}
private fun notifyStatus(isError: Boolean) {
Logger.d(TAG, "--- notifyStatus ---: $isError")
statusChangedListeners.values.forEach { itx ->
@@ -238,11 +283,27 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
override fun onAttachedToWindow() {
super.onAttachedToWindow()
StatusManager.addListener(TAG, this)
CallerHmiViewControlListenerManager.addListener(TAG,this)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
StatusManager.removeListener(TAG)
CallerHmiViewControlListenerManager.removeListener(TAG)
}
override fun updateFuncMode(tag: String, boolean: Boolean) {
if(tag == FUNC_MODE_DEMO){
Logger.i(TAG, "updateFuncMode: tag=$tag value=$boolean")
if (FunctionBuildConfig.isDemoMode) {
// 构建数据,强制刷新成正常的状态
if (hasFSM.get()) {
handleFSMDemoMode()
} else {
handleWithoutFSMDemoMode()
}
}
}
}
/**

View File

@@ -151,7 +151,7 @@ class MoGoHmiProvider : IMoGoHmiProvider {
* 不展示顶部弹窗,其它保留
*/
@Synchronized
override fun warningV2X(v2xType: String, alertContent: CharSequence?, ttsContent: String?, listener: IMoGoWarningStatusListener?, direction: WarningDirectionEnum, expireTime: Long, isFromObu: Boolean) {
override fun warningV2X(v2xType: String, alertContent: CharSequence?, ttsContent: String?, listener: IMoGoWarningStatusListener?, direction: WarningDirectionEnum, expireTime: Long, newLevel: Int, isFromObu:Boolean) {
if (isFromObu) {
// 修改: 只有来自obu的事件这样处理
//30秒内同一个事件只出现一次 TODO 临时添加,后面宏宇统一在数据中心处理

View File

@@ -54,7 +54,7 @@ class BusPassengerMsgBoxBubbleView @JvmOverloads constructor(
override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean){
UiThreadHandler.post({
if(category == MsgCategory.NOTICE){
if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X
if(msgBoxList.type == MsgBoxType.NOTICE
|| msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){
MsgBoxConfig.noticeList.add(msgBoxList)
if(isShowData){

View File

@@ -57,7 +57,7 @@ class MBoxBubbleView @JvmOverloads constructor(
override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) {
UiThreadHandler.post({
if(category == MsgCategory.NOTICE){
if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X
if(msgBoxList.type == MsgBoxType.NOTICE
|| msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){
MsgBoxConfig.noticeList.add(msgBoxList)
if(isShowData){

View File

@@ -54,7 +54,7 @@ class MMsgBoxBubbleView @JvmOverloads constructor(
override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) {
UiThreadHandler.post({
if(category == MsgCategory.NOTICE){
if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X
if(msgBoxList.type == MsgBoxType.NOTICE
|| msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){
update(msgBoxList)
}

View File

@@ -445,6 +445,7 @@ class OperatePanelLayout : LinearLayout {
FunctionBuildConfig.isFusionColor = isChecked //6.6.2版本基于运营需求-产品设计-v2i进pnc,感知目标颜色替换
FunctionBuildConfig.fusionMode = 2
CallerAutoPilotControlManager.sendFusionMode(2)
CallerAutoPilotControlManager.setFusionColor(isChecked)
CallerHmiViewControlListenerManager.invokeFuncMode(IViewControlListener.FUNC_FUSION_COLOR,isChecked)
CallerAutoPilotControlManager.sendV2iToPncCmd(isChecked)
hmiAction("V2I场景进PNC, ", isChecked)

View File

@@ -75,6 +75,7 @@ import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.
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.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager
@@ -97,6 +98,7 @@ import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager
import com.mogo.eagle.core.function.call.obu.CallerObuInfoListenerManager
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager
import com.mogo.eagle.core.function.call.setting.CallerSopSettingManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
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
@@ -360,7 +362,8 @@ internal class DebugSettingView @JvmOverloads constructor(
IMoGoChassisStatesListener,
IMoGoSweeperFutianCleanSystemListener,
IMoGoObuInfoListener,
ISopSettingListener, IViewControlListener, IMoGoCloudListener, IBindStateChangeListener {
ISopSettingListener, IViewControlListener, IMoGoCloudListener, IBindStateChangeListener,
IReceivedMsgListener {
companion object {
private const val TAG = "DebugSettingView"
@@ -469,6 +472,8 @@ internal class DebugSettingView @JvmOverloads constructor(
CallerHmiViewControlListenerManager.addListener(TAG, this)
CallerTelematicListenerManager.addListener(TAG, this)
//添加 业务配置监听
CallerDevaToolsFuncConfigListenerManager.registerDevaToolsFuncConfigListener(
FuncBizConfig.FOUNDATION, TAG, true, this
@@ -513,6 +518,9 @@ internal class DebugSettingView @JvmOverloads constructor(
CallerSopSettingManager.removeListener(TAG)
CallerHmiViewControlListenerManager.removeListener(TAG)
CallerTelematicListenerManager.removeListener(TAG)
DevicesManager.removeBindStateChangeListener(TAG)
// 移除 业务配置监听
CallerDevaToolsFuncConfigListenerManager.unRegisterDevaToolsFuncConfigListener(
@@ -946,6 +954,7 @@ internal class DebugSettingView @JvmOverloads constructor(
btnDrawFusion.isChecked = FunctionBuildConfig.isFusionColor
btnDrawFusion.setOnCheckedChangeListener { _, isChecked ->
FunctionBuildConfig.isFusionColor = isChecked
CallerAutoPilotControlManager.setFusionColor(isChecked)
}
// 演示模式,上一次勾选的数据
@@ -2714,6 +2723,13 @@ internal class DebugSettingView @JvmOverloads constructor(
tbCarAperture.isChecked = status
}
override fun onFusionColor(fusionColor: Boolean) {
super.onFusionColor(fusionColor)
ThreadUtils.runOnUiThread {
btnDrawFusion.isChecked = FunctionBuildConfig.isFusionColor
}
}
override fun updateFuncMode(tag: String, boolean: Boolean) {
super.updateFuncMode(tag, boolean)
if (tag == FUNC_MODE_DEMO) {

View File

@@ -56,11 +56,6 @@ object TrackerSourceFilterHelper {
}
fun getDefaultColor(data: TrackedObject): String {
if (isTaxi(FunctionBuildConfig.appIdentityMode) &&
isPassenger(FunctionBuildConfig.appIdentityMode)
) {
return ""
}
var color = ""
if (!FunctionBuildConfig.isDrawUnknownIdentifyData
&& data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type

View File

@@ -237,7 +237,7 @@ class RoadCrossRoamView @JvmOverloads constructor(
SkinResources.getInstance().getString(R.string.operation_platform_name)
}为您提供路口全息影像助力出行"
}
AIAssist.getInstance(context).speakTTSVoice(disStr)
AIAssist.getInstance(context).speakTTSVoiceWithLevel(disStr, AIAssist.NEW_LEVEL_2)
}
CallerHmiViewControlListenerManager.invokeV2XEvent(View.VISIBLE, TAG)
CallerServicesEventManager.updateServicesNum(CallerServicesEventManager.ServiceType.ROAD)