更新ADAS连接方式,更新连接工控机回调
This commit is contained in:
@@ -24,6 +24,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
|||||||
import com.zhidao.support.adas.high.AdasManager
|
import com.zhidao.support.adas.high.AdasManager
|
||||||
import com.zhidao.support.adas.high.AdasOptions
|
import com.zhidao.support.adas.high.AdasOptions
|
||||||
import com.zhidao.support.adas.high.bean.IPCUpgradeInfo
|
import com.zhidao.support.adas.high.bean.IPCUpgradeInfo
|
||||||
|
import com.zhidao.support.adas.high.common.Constants
|
||||||
import com.zhidao.support.adas.high.common.CupidLogUtils
|
import com.zhidao.support.adas.high.common.CupidLogUtils
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
@@ -57,7 +58,8 @@ class MoGoAutopilotProvider :
|
|||||||
CallerMapDataCollectorManager.registerOnMapCollectTaskListener(this)
|
CallerMapDataCollectorManager.registerOnMapCollectTaskListener(this)
|
||||||
// "192.168.1.102"
|
// "192.168.1.102"
|
||||||
val options = AdasOptions.Builder()
|
val options = AdasOptions.Builder()
|
||||||
.setIPCIp(FunctionBuildConfig.adasConnectIP)
|
.setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION)
|
||||||
|
.setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext))
|
||||||
.setClient(false)
|
.setClient(false)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
@@ -124,8 +126,9 @@ class MoGoAutopilotProvider :
|
|||||||
else -> // 默认采用UDP寻址方式
|
else -> // 默认采用UDP寻址方式
|
||||||
{
|
{
|
||||||
val options = AdasOptions.Builder()
|
val options = AdasOptions.Builder()
|
||||||
|
.setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION)
|
||||||
|
.setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext))
|
||||||
.setClient(false)
|
.setClient(false)
|
||||||
.setIPCIp(FunctionBuildConfig.adasConnectIP)
|
|
||||||
.build()
|
.build()
|
||||||
AdasManager.getInstance().create(context, options)
|
AdasManager.getInstance().create(context, options)
|
||||||
}
|
}
|
||||||
@@ -181,7 +184,7 @@ class MoGoAutopilotProvider :
|
|||||||
*/
|
*/
|
||||||
override fun resetIpAddress(autoPilotIp: String) {
|
override fun resetIpAddress(autoPilotIp: String) {
|
||||||
// 关闭通信
|
// 关闭通信
|
||||||
AdasManager.getInstance().closeAllMsg()
|
AdasManager.getInstance().disConnect()
|
||||||
// 延时执行连接指定IP地址
|
// 延时执行连接指定IP地址
|
||||||
ThreadUtils.executeBySingleWithDelay(object : ThreadUtils.SimpleTask<String>() {
|
ThreadUtils.executeBySingleWithDelay(object : ThreadUtils.SimpleTask<String>() {
|
||||||
@RequiresPermission(permission.INTERNET)
|
@RequiresPermission(permission.INTERNET)
|
||||||
@@ -191,9 +194,10 @@ class MoGoAutopilotProvider :
|
|||||||
SharedPrefsMgr.getInstance(it).putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp)
|
SharedPrefsMgr.getInstance(it).putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp)
|
||||||
}
|
}
|
||||||
// 设置IP地址
|
// 设置IP地址
|
||||||
AdasManager.getInstance().setIPCIp(autoPilotIp)
|
AdasManager.getInstance().adasOptions.setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.ASSIGN)
|
||||||
|
AdasManager.getInstance().adasOptions.setIpcAssignIP(autoPilotIp)
|
||||||
// 打开通讯连接
|
// 打开通讯连接
|
||||||
AdasManager.getInstance().startAllMsg()
|
AdasManager.getInstance().connect()
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,7 +218,7 @@ class MoGoAutopilotProvider :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun startAutoPilot(result: AutopilotControlParameters) {
|
override fun startAutoPilot(result: AutopilotControlParameters) {
|
||||||
if (AdasManager.getInstance().isSocketConnect) {
|
if (AdasManager.getInstance().ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
|
||||||
val parameter = AutopilotControlCmdParameter("aiCloudToStartAutopilot", result)
|
val parameter = AutopilotControlCmdParameter("aiCloudToStartAutopilot", result)
|
||||||
AdasManager.getInstance().aiCloudToAdasData(GsonUtils.toJson(parameter))
|
AdasManager.getInstance().aiCloudToAdasData(GsonUtils.toJson(parameter))
|
||||||
} else {
|
} else {
|
||||||
@@ -227,7 +231,7 @@ class MoGoAutopilotProvider :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun cancelAutoPilot() {
|
override fun cancelAutoPilot() {
|
||||||
if (AdasManager.getInstance().isSocketConnect) {
|
if (AdasManager.getInstance().ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
|
||||||
AdasManager.getInstance().controlAutopilotCarHead()
|
AdasManager.getInstance().controlAutopilotCarHead()
|
||||||
} else {
|
} else {
|
||||||
Logger.e(TAG, "车机与工控机链接失败,无法断开自动驾驶")
|
Logger.e(TAG, "车机与工控机链接失败,无法断开自动驾驶")
|
||||||
|
|||||||
@@ -2,17 +2,16 @@ package com.mogo.eagle.core.function.autopilot.adapter
|
|||||||
|
|
||||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||||
import com.mogo.commons.debug.DebugConfig
|
import com.mogo.commons.debug.DebugConfig
|
||||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
|
||||||
import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo
|
import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo
|
||||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||||
import com.mogo.eagle.core.data.constants.MoGoConfig
|
|
||||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||||
import com.mogo.eagle.core.function.autopilot.network.AdasServiceModel
|
import com.mogo.eagle.core.function.autopilot.network.AdasServiceModel
|
||||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||||
import com.zhidao.support.adas.high.AdasManager
|
import com.zhidao.support.adas.high.AdasManager
|
||||||
import com.zhidao.support.adas.high.OnAdasMsgConnectStatusListener
|
import com.zhidao.support.adas.high.OnAdasConnectStatusListener
|
||||||
import com.zhidao.support.adas.high.bean.BasicInfo
|
import com.zhidao.support.adas.high.bean.BasicInfo
|
||||||
|
import com.zhidao.support.adas.high.common.Constants
|
||||||
import io.reactivex.Flowable
|
import io.reactivex.Flowable
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
@@ -23,7 +22,8 @@ import java.util.concurrent.TimeUnit
|
|||||||
*
|
*
|
||||||
* @author donghongyu
|
* @author donghongyu
|
||||||
*/
|
*/
|
||||||
class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMoGoAutopilotStatusListener {
|
class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
|
||||||
|
IMoGoAutopilotStatusListener {
|
||||||
private val TAG = "MoGoAdasMsgConnectStatusListenerImpl"
|
private val TAG = "MoGoAdasMsgConnectStatusListenerImpl"
|
||||||
|
|
||||||
//自动驾驶状态
|
//自动驾驶状态
|
||||||
@@ -32,27 +32,35 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMo
|
|||||||
//自动驾驶车速度
|
//自动驾驶车速度
|
||||||
private var mCurrentAutopilotSpeed = 0f
|
private var mCurrentAutopilotSpeed = 0f
|
||||||
|
|
||||||
override fun onWebSocketConnectSuccess() {
|
|
||||||
Logger.d(TAG, "webSocket 连接成功")
|
|
||||||
// 初始化自动驾驶状态信息
|
|
||||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP = AdasManager.getInstance().adasConfig.address
|
|
||||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = true
|
|
||||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
|
|
||||||
|
|
||||||
// 同步SN给工控机
|
override fun onAddressDisabled() {
|
||||||
syncBasicInfoToAutopilot()
|
|
||||||
|
|
||||||
// 开启轮训上传自动驾驶状态
|
|
||||||
updateDriveStatusTask()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onWebSocketConnectFailed(reason: String) {
|
override fun onConnectionIPCStatus(ipcConnectionStatus: Int, reason: String?) {
|
||||||
Logger.d(TAG, "webSocket 连接失败 reason:$reason")
|
if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
|
||||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP = AdasManager.getInstance().adasConfig.address
|
Logger.d(TAG, "webSocket 连接成功")
|
||||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = false
|
// 初始化自动驾驶状态信息
|
||||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
|
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP =
|
||||||
|
AdasManager.getInstance().adasConfig.address
|
||||||
|
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = true
|
||||||
|
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
|
||||||
|
|
||||||
|
// 同步SN给工控机
|
||||||
|
syncBasicInfoToAutopilot()
|
||||||
|
|
||||||
|
// 开启轮训上传自动驾驶状态
|
||||||
|
updateDriveStatusTask()
|
||||||
|
} else if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.DISCONNECTED) {
|
||||||
|
Logger.d(TAG, "webSocket 连接失败 reason:$reason")
|
||||||
|
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP =
|
||||||
|
AdasManager.getInstance().adasConfig.address
|
||||||
|
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = false
|
||||||
|
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工控机获取SN
|
* 工控机获取SN
|
||||||
*/
|
*/
|
||||||
@@ -94,12 +102,13 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMo
|
|||||||
private fun updateDriveStatusTask() {
|
private fun updateDriveStatusTask() {
|
||||||
Logger.d(TAG, "updateDriveStatusTask")
|
Logger.d(TAG, "updateDriveStatusTask")
|
||||||
Flowable.interval(0, 5, TimeUnit.SECONDS)
|
Flowable.interval(0, 5, TimeUnit.SECONDS)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io())
|
.unsubscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe { aLong: Long? ->
|
.subscribe { aLong: Long? ->
|
||||||
AdasServiceModel.getInstance().updateDriveStatus(mCurrentAutopilotStatus, mCurrentAutopilotSpeed)
|
AdasServiceModel.getInstance()
|
||||||
}
|
.updateDriveStatus(mCurrentAutopilotStatus, mCurrentAutopilotSpeed)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ dependencies {
|
|||||||
|
|
||||||
implementation rootProject.ext.dependencies.mogochainbase
|
implementation rootProject.ext.dependencies.mogochainbase
|
||||||
//okhttp3的依赖
|
//okhttp3的依赖
|
||||||
implementation 'com.squareup.okhttp3:okhttp:3.14.9'
|
implementation 'com.squareup.okhttp3:okhttp:3.12.3'
|
||||||
// parser
|
// parser
|
||||||
implementation rootProject.ext.dependencies.gson
|
implementation rootProject.ext.dependencies.gson
|
||||||
// logger
|
// logger
|
||||||
|
|||||||
Reference in New Issue
Block a user