[6.2.4]魔方触发主动录包

This commit is contained in:
xuxinchao
2023-12-04 11:03:39 +08:00
parent 79f1279cae
commit 264e68da17
6 changed files with 104 additions and 8 deletions

View File

@@ -288,6 +288,13 @@ class DevaToolsProvider : IDevaToolsProvider {
BadCaseManager.onReceiveBadCaseRecord(msgBoxBean, activity, countdown)
}
/**
* 魔方开启主动录包
*/
override fun startRecordByMoFang() {
BadCaseManager.startRecordByMoFang()
}
override fun showFeedbackWindow(ctx: Context) {
BadCaseManager.showBadCaseConfigWindow(ctx)
}

View File

@@ -5,6 +5,7 @@ import android.app.Activity
import android.content.Context
import android.view.View
import android.view.WindowManager
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Lifecycle.Event
import androidx.lifecycle.LifecycleEventObserver
@@ -12,10 +13,12 @@ import androidx.lifecycle.LifecycleOwner
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.deva.badcase.RecordCaseEntity
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.data.msgbox.MsgBoxType
import com.mogo.eagle.core.data.msgbox.RecordBagMsg
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
@@ -30,6 +33,7 @@ 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.ext.enqueuePop
import me.jessyan.autosize.utils.AutoSizeUtils
import mogo.telematics.pad.MessagePad
import record_cache.RecordPanelOuterClass
internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordListener {
@@ -41,11 +45,53 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
@Volatile
private var record: AutoPilotRecord? = null
//是否处理录包配置回调数据
private var receiveRecordConfig: Boolean = false
fun init(context: Context) {
CallerAutopilotRecordListenerManager.addListener(TAG, this)
SpeechUtils.init(context)
}
/**
* 魔方开启主动录包
*/
fun startRecordByMoFang(){
if (NetworkUtils.isConnected()){
if (BadCaseConfig.dockerVersion != null){
val activity = AppStateManager.currentActivity()
if (activity !is AppCompatActivity) {
return
}
//兼容老MAP版本
if (BadCaseConfig.dockerVersion!!.contains("2.3.0")
|| BadCaseConfig.dockerVersion!!.contains("2.4.0")
|| BadCaseConfig.dockerVersion!!.contains("2.5.0")
|| BadCaseConfig.dockerVersion!!.contains("2.6.0")
|| BadCaseConfig.dockerVersion!!.contains("2.8.0")
){
val initiativeBadCaseWindow = InitiativeBadCaseWindow(activity)
initiativeBadCaseWindow.setClickListener(object :
InitiativeBadCaseWindow.ClickListener {
override fun closeWindow() {
initiativeBadCaseWindow.hideFloatWindow()
}
})
initiativeBadCaseWindow.showFloatWindow(null)
}else{
receiveRecordConfig = true
//获取数据采集录制模式配置列表
CallerAutoPilotControlManager.getBadCaseConfig(0, 0, ArrayList())
}
}else {
ToastUtils.showShort("工控机连接状态异常")
}
}else {
ToastUtils.showShort("网络异常,请检查网络")
}
}
/**
* 展示BadCase配置页面
*/
@@ -269,4 +315,33 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
}
/**
* 数据采集配置应答
*/
override fun onAutopilotRecordConfig(config: MessagePad.RecordDataConfig) {
if(receiveRecordConfig){
ThreadUtils.runOnUiThread {
if(config.recordTypesCount >0){
config.recordTypesList.forEach {
//TODO 需要确认具体是哪个ID
if(it.id == 1){
val recordCaseEntity = RecordCaseEntity(it.id,it.desc,it.topicsList)
val initiativeBadCaseWindow = AppStateManager.currentActivity()
?.let { it1 -> InitiativeBadCaseWindow(it1) }
initiativeBadCaseWindow?.setClickListener(object :
InitiativeBadCaseWindow.ClickListener {
override fun closeWindow() {
initiativeBadCaseWindow.hideFloatWindow()
}
})
initiativeBadCaseWindow?.showFloatWindow(recordCaseEntity)
receiveRecordConfig = false
}
}
}
}
}
}
}

View File

@@ -9,6 +9,7 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.protobuf.ProtocolStringList;
import com.mogo.eagle.core.data.deva.badcase.RecordCaseEntity;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
@@ -99,19 +100,14 @@ public class CaseListDialog extends Dialog implements IMoGoAutopilotRecordListen
if(config.getRecordTypesCount()>0){
for(int index=0;index<config.getRecordTypesCount();index++){
if(config.getRecordTypes(index).getId() != 99){
ArrayList<String> topicList = new ArrayList<>();
// TODO java.lang.IndexOutOfBoundsException: Index: 38, Size: 38
// for(int position=0;index<config.getRecordTypes(index).getTopicsCount();position++){
// topicList.add(config.getRecordTypes(index).getTopicsList().get(position));
// }
recordTypeEntityArrayList.add(new RecordCaseEntity(
config.getRecordTypes(index).getId(),config.getRecordTypes(index).getDesc(),
topicList));
config.getAllTopicsList()));
}
}
}
if(BadCaseConfig.customTopicList.size()>0){
recordTypeEntityArrayList.add(new RecordCaseEntity(0,"自定义A",BadCaseConfig.customTopicList));
recordTypeEntityArrayList.add(new RecordCaseEntity(0,"自定义A", (ProtocolStringList) BadCaseConfig.customTopicList));
}
caseListAdapter.setData(recordTypeEntityArrayList);
caseListAdapter.notifyDataSetChanged();

View File

@@ -1,3 +1,9 @@
package com.mogo.eagle.core.data.deva.badcase
data class RecordCaseEntity(var caseId: Int,var caseName: String,var topicList: ArrayList<String>)
import com.google.protobuf.ProtocolStringList
data class RecordCaseEntity(
var caseId: Int,
var caseName: String,
var topicList: ProtocolStringList
)

View File

@@ -113,6 +113,11 @@ interface IDevaToolsProvider : IProvider {
*/
fun onReceiveBadCaseRecord(msgBoxBean: MsgBoxBean,activity: Activity,countdown: Boolean)
/**
* 魔方开启主动录包
*/
fun startRecordByMoFang()
/**
* 展示录包配置
*/

View File

@@ -149,6 +149,13 @@ object CallerDevaToolsManager {
devaToolsProviderApi?.onReceiveBadCaseRecord(msgBoxBean, activity,countdown)
}
/**
* 魔方开启主动录包
*/
fun startRecordByMoFang(){
devaToolsProviderApi?.startRecordByMoFang()
}
/**
* 展示录包配置页面
*/