Merge branch 'dev_minibus-d_230425_3.2.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_minibus-d_230425_3.2.0

This commit is contained in:
lixiaopeng
2023-05-17 18:09:00 +08:00
39 changed files with 358 additions and 150 deletions

View File

@@ -108,15 +108,15 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
}
//感知物体
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED,
linkCode = CHAIN_LINK_ADAS,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
paramIndexes = [0, 1],
clientPkFileName = "sn"
)
//感知物体 注解暂时关闭通过调试面板查看数量此注解暂时用于aiCloud显示感知物
// @ChainLog(
// linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED,
// linkCode = CHAIN_LINK_ADAS,
// endpoint = PAD,
// nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
// paramIndexes = [0, 1],
// clientPkFileName = "sn"
// )
override fun onTrackedObjects(
header: MessagePad.Header,
trackedObjects: MessagePad.TrackedObjects

View File

@@ -54,7 +54,7 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener {
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_AUTO)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_DATA_TRACK)
FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_DATA_TRACK)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =
FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAJECTORY)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =
@@ -82,7 +82,7 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener {
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
ChainLogParam(true, "ADAS自动驾驶链路(包含: 自动驾驶状态交互,全局路径,到站提醒,节点状态,异常上报)")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
ChainLogParam(false, "ADAS感知物体")
ChainLogParam(true, "ADAS感知物体")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =
ChainLogParam(false, "ADAS车前引导线")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =

View File

@@ -43,12 +43,18 @@ class UpgradeAppNetWorkManager private constructor() {
scope.launch {
val sn = MoGoAiCloudClientConfig.getInstance().sn //null
val macAddress = mac //"48:b0:2d:4d:31:7f"
val type = screenType //10
val type = screenType //"10"
SharedPrefsMgr.getInstance(context!!).putString(SharedPrefsConstants.HOST_ADDRESS, HostConst.getHost())
try {
val records = provider?.getUpgradeRecords()?.also {
MogoAnalyticUtils.track("AppUpgradeRecord", it.let { TreeMap<String, Any>().also { itx -> itx.putAll(it) } })
MogoAnalyticUtils.track("AppUpgradeRecord", TreeMap<String, Any>().also { itx ->
it.entries.forEach { entry ->
itx[entry.key] = entry.value.joinToString(",") {
"${ it.first } -> ${ it.second }"
}
}
})
}
Log.d(TAG, "getAppUpgradeInfo: -> records:" + records?.entries?.joinToString(",") { itx -> "key:${itx.key} -> value:[${itx.value.joinToString(",") { "${it.first},${it.second}" } }]"})
val versionCode = AppUtils.getAppVersionCode()

View File

@@ -166,6 +166,7 @@ class UpgradeManager : IDownloadListener {
}
} else {
val apk = File(localPath)
upgradeProvider?.recordInstallStart()
withContext(Dispatchers.Main) {
ApkInstaller.installApp(Utils.getApp(), apk) { code, reason ->
if (code != PackageInstaller.STATUS_SUCCESS) {

View File

@@ -127,14 +127,13 @@ class MoGoHmiProvider : IMoGoHmiProvider {
"--- show v2x dialog 1 ---: info -> v2x-type: $v2xType : expireTime: $expireTime"
)
lastShowV2XJob?.safeCancel()
ProcessLifecycleOwner.get().lifecycleScope.launch(Dispatchers.Default) {
ProcessLifecycleOwner.get().lifecycleScope.launch {
delay(expireTime)
}.also { itx ->
lastShowV2XJob = itx
}.invokeOnCompletion {
listener?.onDismiss()
}
Log.d("CODE", "---- 00 ------ tts_content: $ttsContent")
if (ttsContent != null && !TextUtils.isEmpty(ttsContent) && playTTS) {
val last = lastSpeakJob.get()

View File

@@ -79,32 +79,38 @@ class TakeOverView @JvmOverloads constructor(
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_LOCATION,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE -> {
CallerHmiManager.warningV2X(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,
EventTypeEnumNew.TAKE_OVER_EVENT.tts,
object : IMoGoWarningStatusListener {
override fun onShow() {
takeOver = true
visibility = View.VISIBLE
//加入消息盒子
saveMsgBox(
MsgBoxBean(
MsgBoxType.V2X, V2XMsg(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,
EventTypeEnumNew.TAKE_OVER_EVENT.tts
if(!isParallel){
CallerHmiManager.warningV2X(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,
EventTypeEnumNew.TAKE_OVER_EVENT.tts,
object : IMoGoWarningStatusListener {
override fun onShow() {
takeOver = true
ThreadUtils.runOnUiThread{
visibility = View.VISIBLE
}
//加入消息盒子
saveMsgBox(
MsgBoxBean(
MsgBoxType.V2X, V2XMsg(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,
EventTypeEnumNew.TAKE_OVER_EVENT.tts
)
)
)
)
)
}
}
override fun onDismiss() {
takeOver = false
visibility = View.GONE
}
}
,isFromObu = false)
override fun onDismiss() {
takeOver = false
ThreadUtils.runOnUiThread{
visibility = View.GONE
}
}
}
,isFromObu = false)
}
}
//弱网
MogoReport.Code.Error.EPARALLEL.AICLOUD_NETWORK_WEAK,
@@ -118,7 +124,9 @@ class TakeOverView @JvmOverloads constructor(
object : IMoGoWarningStatusListener {
override fun onShow() {
takeOver = true
visibility = View.VISIBLE
ThreadUtils.runOnUiThread{
visibility = View.VISIBLE
}
//加入消息盒子
saveMsgBox(
MsgBoxBean(
@@ -133,7 +141,9 @@ class TakeOverView @JvmOverloads constructor(
override fun onDismiss() {
takeOver = false
visibility = View.GONE
ThreadUtils.runOnUiThread{
visibility = View.GONE
}
}
}
,isFromObu = false)

View File

@@ -4,21 +4,20 @@ import android.content.Context
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.multidisplay.TelematicConstant
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener
import com.mogo.eagle.core.function.business.ai.net.AiCloudIdentifyNetWorkModel.Companion.aiCloudIdentifyNetWorkModel
import com.mogo.eagle.core.function.business.identify.MapIdentifySubscriber
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.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapRomaListener
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.updateLongSightLevel
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToServer
import com.mogo.eagle.core.function.utils.MapBizTrace
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.map.MogoMapUIController
@@ -47,7 +46,6 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
}
private var showAiCloud = AtomicBoolean(false)
private var serverSn = ""
fun initServer(mContext: Context) {
MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener(TAG, this)
@@ -125,8 +123,10 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
// CallerMapRomaListener.invokeMapRoma(false)
// sendMsgToServer(TelematicConstant.OPEN_ROMA_STATUS, "4".toByteArray())
// }
MapBizTrace.log(TAG,"开启请求data:$dataReceive")
aiCloudIdentifyNetWorkModel.requestIdentifyRange(dataReceive, serverSn, {
val status = MogoStatusManager.getInstance().isSocketOnLine
val gnss = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().gnssInfo
MapBizTrace.log(TAG,"开启请求data:$dataReceive , socketStatus:$status , lon:${gnss.longitude} , lat:${gnss.latitude}")
aiCloudIdentifyNetWorkModel.requestIdentifyRange(dataReceive, gnss.longitude,gnss.latitude,{
MapBizTrace.log(
TAG,
"requestIdentifyRange ok startRange:$START_METRE, endRange:$END_METRE , dataReceive:$dataReceive"
@@ -156,7 +156,7 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
when {
// 解除漫游限制
visualAngleMode.isRoma -> {
MapBizTrace.log(TAG, "onMapVisualAngleChanged, invoke roma")
MapBizTrace.log(TAG, "onMapVisualAngleChanged, invoke roma , socketStatus: ${ MogoStatusManager.getInstance().isSocketOnLine}")
showAiCloud.set(true)
FunctionBuildConfig.isDrawIdentifyData = false
}

View File

@@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.business.ai.net
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.constants.HostConst.getEagleHost
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.BaseResponse
import com.mogo.eagle.core.function.business.ai.AiCloudIdentifyDataManager.Companion.END_METRE
import com.mogo.eagle.core.function.business.ai.AiCloudIdentifyDataManager.Companion.START_METRE
@@ -10,7 +9,7 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.eagle.core.network.apiCall
import com.mogo.eagle.core.network.request
class AiCloudIdentifyNetWorkModel private constructor(){
class AiCloudIdentifyNetWorkModel private constructor() {
companion object {
val aiCloudIdentifyNetWorkModel by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
@@ -25,7 +24,7 @@ class AiCloudIdentifyNetWorkModel private constructor(){
fun requestIdentifyRange(
dataReceive: Boolean,
serverSn:String,
lon: Double, lat: Double,
onSuccess: (() -> Unit),
onError: ((String) -> Unit)
) {
@@ -37,7 +36,12 @@ class AiCloudIdentifyNetWorkModel private constructor(){
map["startMetre"] = START_METRE
map["endMetre"] = END_METRE
map["type"] = 1
map["relationSn"] = serverSn
if (lon != 0.0) {
map["lon"] = lon
}
if (lat != 0.0) {
map["lat"] = lat
}
}
loader {
apiCall {