[630][adas] 特种车辆命令下发添加数据来源,增加回执功能,MAP380开始支持

This commit is contained in:
xinfengkun
2024-02-27 20:23:58 +08:00
parent a79598bd57
commit 90c14abd8b
30 changed files with 1326 additions and 519 deletions

View File

@@ -57,7 +57,7 @@ import com.zhidao.support.adas.high.chain.AdasChain
import com.zhidao.support.adas.high.common.Constants
import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS
import com.zhidao.support.adas.high.common.CupidLogUtils
import com.zhidao.support.adas.high.common.MessageType
import com.zhjt.mogo.adas.common.MessageType
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.bean.MogoReport
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
@@ -98,6 +98,7 @@ class MoGoAutopilotControlProvider :
override fun init(context: Context) {
CallerLogger.i("$M_D_C$TAG", "初始化工控机连接……")
mContext = context
AdasManager.getInstance().init(context)
runCatching {
// 初始化ADAS 域控制器
CupidLogUtils.setEnableLog(false)
@@ -115,15 +116,15 @@ class MoGoAutopilotControlProvider :
// .setMessageTypes(messageTypes).build()
// "192.168.1.102"
val options = AdasOptions.Builder()
.setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION)
.setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext))
.setClient(false)
val options = AdasOptions.newBuilder()
.setConnectionMode(AdasOptions.IPC_CONNECTION_MODE.PING)
.setPingAddressList(AdasManager.getInstance().ipcFixationIPList)
.setPassenger(false)
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
// .setSubscribeInterfaceOptions(subscribeInterfaceOptions)//
.build()
AdasManager.getInstance().create(context, options, MoGoAdasMsgConnectStatusListenerImpl())
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
//////////////////////////////////注意先后顺序AdasManager.getInstance().create后才可以设置监听/////////////////////////////////////////////
// 监听ADAS-SDK获取到的工控机数据
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
@@ -213,12 +214,12 @@ class MoGoAutopilotControlProvider :
directConnect(context)
} else {
val options = AdasOptions
.Builder()
.setClient(true)
.newBuilder()
.setPassenger(true)
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
.build()
AdasManager.getInstance()
.create(context, options, MoGoAdasMsgConnectStatusListenerImpl())
.create(options, MoGoAdasMsgConnectStatusListenerImpl())
// 监听ADAS-SDK获取到的工控机数据
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
// 接收司机屏发过来的感知、定位等数据
@@ -243,13 +244,13 @@ class MoGoAutopilotControlProvider :
private fun directConnect(context: Context) {
val options = AdasOptions
.Builder()
.setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION)
.setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext))
.setClient(false)// 乘客端直连工控机改为false
.newBuilder()
.setConnectionMode(AdasOptions.IPC_CONNECTION_MODE.PING)
.setPingAddressList(AdasManager.getInstance().ipcFixationIPList)
.setPassenger(false)// 乘客端直连工控机改为false
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
.build()
AdasManager.getInstance().create(context, options, MoGoAdasMsgConnectStatusListenerImpl())
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
//////////////////////////////////注意先后顺序AdasManager.getInstance().create后才可以设置监听/////////////////////////////////////////////
// 监听ADAS-SDK获取到的工控机数据
AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl())
@@ -303,12 +304,19 @@ class MoGoAutopilotControlProvider :
SharedPrefsMgr.getInstance().putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp)
}
// 设置IP地址
AdasManager.getInstance().adasOptions.isClient = false
AdasManager.getInstance().adasOptions.ipcConnectionMode =
AdasOptions.IPC_CONNECTION_MODE.ASSIGN
AdasManager.getInstance().adasOptions.ipcAssignIP = autoPilotIp
// 打开通讯连接
AdasManager.getInstance().connect()
val options = AdasOptions.newBuilder()
.setPassenger(false)
.setConnectionMode(AdasOptions.IPC_CONNECTION_MODE.SPECIFIED)
.setSpecifiedAddress(autoPilotIp)
.build()
AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl())
// AdasManager.getInstance().adasOptions.isClient = false
// AdasManager.getInstance().adasOptions.ipcConnectionMode =
// AdasOptions.IPC_CONNECTION_MODE.ASSIGN
// AdasManager.getInstance().adasOptions.ipcAssignIP = autoPilotIp
// // 打开通讯连接
// AdasManager.getInstance().connect()
return ""
}

View File

@@ -60,6 +60,7 @@ import com.zhjt.mogo.adas.data.bean.AdasParam
import com.zhidao.support.adas.high.common.ProtocolStatus
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics
import com.zhjt.mogo.adas.data.bean.ReceivedAck
import com.zhjt.mogo.adas.data.bean.UnableLaunchData
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
@@ -930,6 +931,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerParallelDrivingActionsListenerManager.invokeParallelDrivingAbility(isParallelDrivingAbility)
}
/**
* 回执消息
* PAD发送数据到域控的回执消息是否存在回执详情参见{@link MessageType} 枚举 TYPE_SEND_XXX_XXX 消息回执超时时间大于0的表示需要回执
*
* @param receivedAck 回执
*/
override fun onReceiveReceivedAck(receivedAck: ReceivedAck) {
CallerReceiveReceivedAckListenerManager.invokeReceiveReceivedAck(receivedAck)
}
@ChainLog(
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
linkCode = CHAIN_SOURCE_ADAS,