Merge branch 'release_robotaxi-d_231031_6.2.0.2' into 6.2.0_merge_master

# Conflicts:
#	OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/fragment/BaseSweeperCloudTabFragment.java
#	OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java
#	OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/model/SweeperOperateTaskModel.java
#	OCH/sweeper/sweeper/build.gradle
#	OCH/sweeper/sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java
#	OCH/sweeper/sweeper/src/main/java/com/mogo/och/sweeper/view/BusArcView.java
#	app/script/functions/och.gradle
#	app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt
#	core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
#	core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml
#	core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml
#	core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt
This commit is contained in:
yangyakun
2023-12-04 11:01:17 +08:00
1322 changed files with 15039 additions and 15346 deletions

View File

@@ -325,6 +325,17 @@ object CallerAutoPilotControlManager {
return providerApi?.sendFusionMode(cmd)
}
/**
* 超车的最大速度阈值(double, m/s, 范围[3, 12.5])
*
* @param maxSpeed m/s, 范围[3, 12.5]
* @return boolean
*/
fun sendOvertakeMaxSpeed(maxSpeed: Double): Boolean? {
return providerApi?.sendOvertakeMaxSpeed(maxSpeed)
}
/**
* 批量设置参数命令
*
@@ -341,6 +352,7 @@ object CallerAutoPilotControlManager {
* {@link AdasConstants.MapSystemParamType#V2N_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#V2I_TO_PNC Value类型boolean或boolean类型String}
* {@link AdasConstants.MapSystemParamType#FUSION_MODE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* @return boolean
*/
fun sendSetParamReq(param: Map<AdasConstants.MapSystemParamType, Any>): Boolean? {

View File

@@ -1,7 +1,12 @@
package com.mogo.eagle.core.function.call.autopilot
import com.mogo.eagle.core.data.msgbox.FMFilterInfoMsg
import com.mogo.eagle.core.data.msgbox.FMInfoMsg
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.data.msgbox.MsgBoxType
import com.mogo.eagle.core.function.api.autopilot.IMoGoFaultManagementStateListener
import com.mogo.eagle.core.function.call.base.CallerBase
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import fault_management.FmInfo
/**
@@ -9,13 +14,65 @@ import fault_management.FmInfo
*/
object CallerFaultManagementStateListenerManager : CallerBase<IMoGoFaultManagementStateListener>() {
/**
* 后摄像头视频数据
*/
private val cachePolicyMap = hashMapOf<String, FMFilterInfoMsg>()
fun invokeFaultManagementState(fmInfo: FmInfo.FaultResultMsg) {
M_LISTENERS.forEach {
val listener = it.value
listener.onFaultManagementState(fmInfo)
val policyCode = fmInfo.downgradePolicyCode
if (policyCode == null || policyCode.isEmpty()) {
return
}
val list = fmInfo.infosList ?: return
//报告类数据不下发
if ("FM_DP_NO_ACTION" == policyCode) {
// 故障清除
if(cachePolicyMap.isNotEmpty()){
cachePolicyMap.clear()
}
return
}
val fmFilterInfoMsg = cachePolicyMap[policyCode]
val cacheFaultList = ArrayList<String>()
val policyTime = fmInfo.time
if (fmFilterInfoMsg?.cacheFilterList != null) {
if (fmFilterInfoMsg.cacheFilterList?.size == list.size) {
//判断两个集合重复 true:return
var sameResult = false
list.forEach {
sameResult = fmFilterInfoMsg.cacheFilterList?.contains(it.faultId) == true
}
if (sameResult) {
return
}
}
// 更新数据内容
list.forEach {
cacheFaultList.add(it.faultId)
}
fmFilterInfoMsg.cacheFilterList?.clear()
fmFilterInfoMsg.cacheFilterList = cacheFaultList
fmFilterInfoMsg.fmInfoList = list
cachePolicyMap[policyCode] = fmFilterInfoMsg
CallerMsgBoxManager.saveMsgBox(
MsgBoxBean(
MsgBoxType.FMINFO,
FMInfoMsg(list, policyCode,policyTime,false)
)
)
} else {
// 首次添加 listener
cachePolicyMap.clear()
list.forEach {
cacheFaultList.add(it.faultId)
}
cachePolicyMap[policyCode] = FMFilterInfoMsg(list, policyCode, cacheFaultList)
CallerMsgBoxManager.saveMsgBox(
MsgBoxBean(
MsgBoxType.FMINFO,
FMInfoMsg(list, policyCode,policyTime,false)
)
)
}
}
}

View File

@@ -1,6 +1,5 @@
package com.mogo.eagle.core.function.call.autopilot
import android.util.Log
import com.mogo.eagle.core.function.api.autopilot.IMoGoParallelDrivingActionsListener
import com.mogo.eagle.core.function.call.base.CallerBase
@@ -44,10 +43,6 @@ object CallerParallelDrivingActionsListenerManager :
}
private fun notification() {
Log.i(
"xfk",
"是否可以启动平行驾驶=$isParallelDrivingAbility"
)
M_LISTENERS.forEach {
val listener = it.value
listener.onParallelDrivingAbility(

View File

@@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.api.devatools.block.*
import com.mogo.eagle.core.function.api.devatools.download.*
import com.mogo.eagle.core.function.api.devatools.logcat.*
import com.mogo.eagle.core.function.api.devatools.mofang.*
import com.mogo.eagle.core.function.api.devatools.perf.IMoGoCpuUsageProvider
import com.mogo.eagle.core.function.api.upgrade.*
import com.mogo.eagle.core.function.api.devatools.strict.*
import com.mogo.eagle.core.function.api.lookaround.*
@@ -281,4 +282,6 @@ object CallerDevaToolsManager {
fun logcat(): IMoGoLogRecordProvider? = devaToolsProviderApi?.logRecord()
fun block(): IMoGoBlockProvider? = devaToolsProviderApi?.block()
fun usage(): IMoGoCpuUsageProvider? = devaToolsProviderApi?.usage()
}

View File

@@ -0,0 +1,80 @@
package com.mogo.eagle.core.function.call.devatools
import com.mogo.eagle.core.data.deva.badcase.AiDataEntity
import com.mogo.eagle.core.data.deva.badcase.RecordOptionEntity
import com.mogo.eagle.core.function.api.devatools.badcase.BadCaseNetListener
import com.mogo.eagle.core.function.call.base.CallerBase
object CallerDevaToolsNetManager: CallerBase<BadCaseNetListener>() {
/**
* AI数据采集数据回调
*/
fun invokeAiDataResponse(list: List<AiDataEntity>){
M_LISTENERS.forEach{
val listener = it.value
listener.onAiDataResponse(list)
}
}
/**
* AI数据采集请求错误回调
*/
fun invokeAiDataError(){
M_LISTENERS.forEach{
val listener = it.value
listener.onAiDataError()
}
}
/**
* 主动录包数据回调
*/
fun invokeInitiativeResponse(list: List<RecordOptionEntity>){
M_LISTENERS.forEach{
val listener = it.value
listener.onInitiativeResponse(list)
}
}
/**
* 主动录包请求错误回调
*/
fun invokeInitiativeError(){
M_LISTENERS.forEach{
val listener = it.value
listener.onInitiativeError()
}
}
/**
* 被动录包数据回调
*/
fun invokePassiveResponse(list: List<RecordOptionEntity>){
M_LISTENERS.forEach{
val listener = it.value
listener.onPassiveResponse(list)
}
}
/**
* 被动录包请求错误回调
*/
fun invokePassiveError(){
M_LISTENERS.forEach{
val listener = it.value
listener.onPassiveError()
}
}
/**
* 主动录包上传Cos桶成功回调
*/
fun invokeUploadCosSuccess(cosUrl: String){
M_LISTENERS.forEach{
val listener = it.value
listener.onUploadCosSuccess(cosUrl)
}
}
}

View File

@@ -64,7 +64,7 @@ object CallerMapRoadListenerManager {
}
@ChainLog(
linkChainLog = ChainConstant.CHAIN_TYPE_HD_MAP,
linkChainLog = ChainConstant.CHAIN_TYPE_STATUS,
linkCode = ChainConstant.CHAIN_SOURCE_MAP,
nodeAliasCode = ChainConstant.CHAIN_CODE_HD_MAP_ROAD_CROSS,
paramIndexes = [0, 1]

View File

@@ -1,16 +1,32 @@
package com.mogo.eagle.core.function.call.map
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.map.roma.IMoGoRomaListener
import com.mogo.eagle.core.function.call.base.CallerBase
import kotlin.properties.Delegates
object CallerMapRomaListener : CallerBase<IMoGoRomaListener>() {
private var roma = false
private var romaStatus = -1
private var romaMsg: String = ""
@Volatile
private var romaRange:Boolean = false
override fun doSomeAfterAddListener(tag: String, listener: IMoGoRomaListener) {
listener.romaStatus(roma)
listener.romaViewStatus(romaRange)
listener.mapRomaInRange(romaRange)
}
fun invokeMapRomaRange(romaRange: Boolean) {
if(romaRange!= this.romaRange){
this.romaRange = romaRange
M_LISTENERS.forEach {
val listener = it.value
listener.mapRomaInRange(romaRange)
}
}
}
fun invokeMapRomaStatus(status: Int, msg: String) {
@@ -22,6 +38,13 @@ object CallerMapRomaListener : CallerBase<IMoGoRomaListener>() {
}
}
fun invokeRomaViewStatus(range:Boolean){
M_LISTENERS.forEach {
val listener = it.value
listener.romaViewStatus(range)
}
}
fun invokeMapRoma(romaStatus: Boolean) {
roma = romaStatus
M_LISTENERS.forEach {
@@ -37,4 +60,8 @@ object CallerMapRomaListener : CallerBase<IMoGoRomaListener>() {
}
}
fun isRange():Boolean{
return (FunctionBuildConfig.romaModeStyle == 0 && romaRange) || FunctionBuildConfig.romaModeStyle == 1
}
}

View File

@@ -61,5 +61,15 @@ object CallerMsgBoxEventListenerManager: CallerBase<IMsgBoxEventListener>() {
}
}
/**
* 通知播放缓存的未播放消息
*/
fun invokeHandleCachedMsg(){
M_LISTENERS.forEach {
val listener = it.value
listener.onHandleCachedMsg()
}
}
}

View File

@@ -1,6 +1,7 @@
package com.mogo.eagle.core.function.call.telematic
import android.util.Log
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.base.CallerBase
@@ -29,4 +30,18 @@ object CallerTelematicListenerManager: CallerBase<IReceivedMsgListener>() {
}
}
}
fun dispatchDemoMode(isDemoMode: Boolean) {
if (isDemoMode != FunctionBuildConfig.isDemoMode) {
FunctionBuildConfig.isDemoMode = isDemoMode
M_LISTENERS.forEach {
val listener = it.value
try {
listener.onDemoMode(isDemoMode)
} catch (e: Exception) {
Log.e(TAG, "转发美化模式出现异常:${e.message}")
}
}
}
}
}

View File

@@ -0,0 +1,38 @@
package com.mogo.eagle.core.function.call.unmanned
import android.util.Log
import com.mogo.eagle.core.function.api.unmanned.IUnmannedListener
import com.mogo.eagle.core.function.call.base.CallerBase
/**
* 无人化功能状态监听、回调管理者
*/
object CallerUnmannedListenerManager : CallerBase<IUnmannedListener>() {
private const val TAG = "CallerUnmannedListenerManager"
private var virtualTaskPullTaskInterval: Int = 45 //单位:秒
override fun doSomeAfterAddListener(tag: String, listener: IUnmannedListener) {
super.doSomeAfterAddListener(tag, listener)
listener.onVirtualTaskPullTaskIntervalUpdate(virtualTaskPullTaskInterval)
}
fun dispatchVirtualTaskPullTaskInterval(interval: Int) {
this.virtualTaskPullTaskInterval = interval
M_LISTENERS.forEach {
val listener = it.value
try {
listener.onVirtualTaskPullTaskIntervalUpdate(interval)
} catch (e: Exception) {
Log.e(TAG, "转发消息出现异常:${e.message}")
}
}
}
/**
* 获取无人化演练拉取的时间间隔(单位: 秒)
*/
fun getVirtualTaskPullTaskInterval(): Int {
return virtualTaskPullTaskInterval
}
}