[6.7.0]调整接管记录触发方式,改由接管触发接口触发

This commit is contained in:
xuxinchao
2024-09-29 15:41:37 +08:00
parent 5f4a48d721
commit 09cb96d14c

View File

@@ -39,7 +39,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisStatesListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoFsm2024Listener
import com.mogo.eagle.core.function.api.autopilot.IMoGoTakeoverListener
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener
import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
@@ -47,10 +47,10 @@ import com.mogo.eagle.core.function.api.map.deva.IMoGoMapScreenListener
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.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisStatesListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerTakeoverListenerManager
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapScreenListenerManager
@@ -65,15 +65,12 @@ import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
import com.mogo.eagle.core.utilcode.util.*
import com.mogo.eagle.core.utilcode.util.FileUtils.millis2String
import com.mogo.tts.base.SpeechUtils
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics
import com.zhjt.mogo_core_function_devatools.badcase.biz.*
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord
import com.zhjt.mogo_core_function_devatools.badcase.util.RecordBitmapUtils
import com.zhjt.mogo_core_function_devatools.ext.enqueuePop
import com.zhjt.mogo_core_function_devatools.workorder.ReportTypeWindow
import com.zhjt.mogo_core_function_devatools.workorder.WorkOrderWindow
import fsm.Fsm2024
import me.jessyan.autosize.utils.AutoSizeUtils
import record_cache.RecordPanelOuterClass
import java.io.File
@@ -82,9 +79,9 @@ import kotlin.math.abs
internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordListener,
IMoGoChassisLocationGCJ02Listener, IMsgBoxListener, IMoGoDevaToolsListener,
IMogoStatusChangedListener, IMoGoMapScreenListener , IMoGoFsm2024Listener,
IMogoStatusChangedListener, IMoGoMapScreenListener,
IMoGoChassisStatesListener, IMoGoAutopilotStatusListener,
IDataCenterBizListener {
IDataCenterBizListener, IMoGoTakeoverListener {
const val TAG = "BadCase"
@@ -125,10 +122,10 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
MogoStatusManager.getInstance()
.registerStatusChangedListener(TAG, StatusDescriptor.CLOUD_SOCKET, this)
if(ProjectUtils.isSaas()){
// CallerFsm2024ListenerManager.addListener(TAG,this)
CallerDataCenterBizListener.addListener(TAG,this)
CallerAutoPilotStatusListenerManager.addListener("RecordViewManager",this)
CallerChassisStatesListenerManager.addListener(TAG,this)
CallerTakeoverListenerManager.addListener(TAG,this)
}
checkDelete(context)
}
@@ -562,102 +559,6 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
CallerMapScreenListenerManager.removeListener(TAG)
}
/**
* 新版FSM消息上报
*/
override fun onFSM2024State(fsmState: Fsm2024.FSMStateMsg) {
Log.i(TAG,"onFSM2024State fsmState.pilotStandbyFlag="+fsmState.pilotStandbyFlag+" pilotNotStandbyReason="+ fsmState.pilotNotStandbyReason)
// if(fsmState.pilotStandbyFlag){
// BadCaseConfig.fsmAlreadyStandby = true
// }
// if(BadCaseConfig.fsmAlreadyStandby){
// if(!fsmState.pilotStandbyFlag){
// //pilotStandbyFlag == false代表自动驾驶无法启动
// if(!BadCaseConfig.alreadyShowOneReport){
// //触发一键上报
// ThreadUtils.runOnUiThread {
// val activity = AppStateManager.currentActivity()
// if (activity !is AppCompatActivity) {
// return@runOnUiThread
// }
// if(reportTypeWindow == null){
// reportTypeWindow = ReportTypeWindow(activity)
// reportTypeWindow?.setClickListener(object: ReportTypeWindow.ClickListener{
// override fun closeWindow() {
// reportTypeWindow?.hideFloatWindow()
// reportTypeWindow = null
// }
// })
// }
// reportTypeWindow?.showOneClickReportWindow(xPosition,yPosition)
// BadCaseConfig.alreadyShowOneReport = true
// }
// }
// }else{
// BadCaseConfig.alreadyShowOneReport = false
// }
// }
}
/**
* 刹车
*/
override fun onAutopilotBrake(brake: Float) {
Log.i(TAG, "onAutopilotBrake brake = $brake")
}
/**
* 车辆方向盘转向角回调
* @param steering 方向盘转向角
*/
override fun onAutopilotSteeringData(steering: Float) {
Log.i(TAG, "onAutopilotSteeringData steering = $steering")
}
/**
* 自动驾驶状态信息
* @param state 状态信息
*/
override fun onAutopilotStatusResponse(state: Int){
Log.i(TAG, "onAutopilotStatusResponse state = $state")
if(state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
shouldRecord = true
}else if(state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE ||
state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE){
if(shouldRecord){
val activity = AppStateManager.currentActivity()
if (activity !is AppCompatActivity) {
return
}
val geocodeSearch = GeocodeSearch(activity)
geocodeSearch.setOnGeocodeSearchListener(object: GeocodeSearch.OnGeocodeSearchListener {
override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult?, p1: Int) {
regeocodeResult?.regeocodeAddress?.formatAddress?.let {
address = it
}
val takeOverRecordInfo = TakeOverRecordInfo(System.currentTimeMillis(),
address,level1Id,level2Id,level3Id,
level1Name, level2Name, level3Name,
BadCaseConfig.lineName,reportNote,
reportStatus = false,
selectStatus = false
)
CallerTakeOverManager.insertRecord(activity,takeOverRecordInfo)
shouldRecord = false
}
override fun onGeocodeSearched(p0: GeocodeResult?, p1: Int) {
}
})
val latLon = LatLonPoint(CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude, CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude)
val q = RegeocodeQuery(latLon,200f,GeocodeSearch.AMAP)
geocodeSearch.getFromLocationAsyn(q)
}
}
}
override fun invokeOrderLine(lineName: String) {
BadCaseConfig.lineName = lineName
}
@@ -679,4 +580,43 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
}
}
/**
* 接管状态回调
* @param state 0:未接管,1:油门接管,2:刹车接管,3:方向盘接管,4:遥控器接管,5:远程人工接管,
* 6:硬件开关接管,7:软件接管,8:云端计算机接管,9:其他接管方式,255:缺省(鹰眼中表示数据异常)
*/
override fun onTakeoverState(state: Int) {
Log.i(TAG, "onTakeoverState state=$state")
if(state == 1 || state == 2 || state == 3){
val activity = AppStateManager.currentActivity()
if (activity !is AppCompatActivity) {
return
}
val geocodeSearch = GeocodeSearch(activity)
geocodeSearch.setOnGeocodeSearchListener(object: GeocodeSearch.OnGeocodeSearchListener {
override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult?, p1: Int) {
regeocodeResult?.regeocodeAddress?.formatAddress?.let {
address = it
}
val takeOverRecordInfo = TakeOverRecordInfo(System.currentTimeMillis(),
address,level1Id,level2Id,level3Id,
level1Name, level2Name, level3Name,
BadCaseConfig.lineName,reportNote,
reportStatus = false,
selectStatus = false
)
CallerTakeOverManager.insertRecord(activity,takeOverRecordInfo)
shouldRecord = false
}
override fun onGeocodeSearched(p0: GeocodeResult?, p1: Int) {
}
})
val latLon = LatLonPoint(CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude, CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude)
val q = RegeocodeQuery(latLon,200f,GeocodeSearch.AMAP)
geocodeSearch.getFromLocationAsyn(q)
}
}
}