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:
@@ -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? {
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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(
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
@@ -61,5 +61,15 @@ object CallerMsgBoxEventListenerManager: CallerBase<IMsgBoxEventListener>() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知播放缓存的未播放消息
|
||||
*/
|
||||
fun invokeHandleCachedMsg(){
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onHandleCachedMsg()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user