diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt index e53b4013f3..cd2c63394d 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt @@ -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.AdasOptions 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 java.util.concurrent.TimeUnit @@ -57,7 +58,8 @@ class MoGoAutopilotProvider : CallerMapDataCollectorManager.registerOnMapCollectTaskListener(this) // "192.168.1.102" val options = AdasOptions.Builder() - .setIPCIp(FunctionBuildConfig.adasConnectIP) + .setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION) + .setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext)) .setClient(false) .build() @@ -124,8 +126,9 @@ class MoGoAutopilotProvider : else -> // 默认采用UDP寻址方式 { val options = AdasOptions.Builder() + .setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION) + .setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext)) .setClient(false) - .setIPCIp(FunctionBuildConfig.adasConnectIP) .build() AdasManager.getInstance().create(context, options) } @@ -181,7 +184,7 @@ class MoGoAutopilotProvider : */ override fun resetIpAddress(autoPilotIp: String) { // 关闭通信 - AdasManager.getInstance().closeAllMsg() + AdasManager.getInstance().disConnect() // 延时执行连接指定IP地址 ThreadUtils.executeBySingleWithDelay(object : ThreadUtils.SimpleTask() { @RequiresPermission(permission.INTERNET) @@ -191,9 +194,10 @@ class MoGoAutopilotProvider : SharedPrefsMgr.getInstance(it).putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp) } // 设置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 "" } @@ -214,7 +218,7 @@ class MoGoAutopilotProvider : } override fun startAutoPilot(result: AutopilotControlParameters) { - if (AdasManager.getInstance().isSocketConnect) { + if (AdasManager.getInstance().ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) { val parameter = AutopilotControlCmdParameter("aiCloudToStartAutopilot", result) AdasManager.getInstance().aiCloudToAdasData(GsonUtils.toJson(parameter)) } else { @@ -227,7 +231,7 @@ class MoGoAutopilotProvider : } override fun cancelAutoPilot() { - if (AdasManager.getInstance().isSocketConnect) { + if (AdasManager.getInstance().ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) { AdasManager.getInstance().controlAutopilotCarHead() } else { Logger.e(TAG, "车机与工控机链接失败,无法断开自动驾驶") diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt index 91731111c7..3e9ee40f3b 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt @@ -2,17 +2,16 @@ package com.mogo.eagle.core.function.autopilot.adapter import com.mogo.cloud.passport.MoGoAiCloudClientConfig 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.AutopilotStatusInfo -import com.mogo.eagle.core.data.constants.MoGoConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.autopilot.network.AdasServiceModel import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.Logger 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.common.Constants import io.reactivex.Flowable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers @@ -23,7 +22,8 @@ import java.util.concurrent.TimeUnit * * @author donghongyu */ -class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMoGoAutopilotStatusListener { +class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener, + IMoGoAutopilotStatusListener { private val TAG = "MoGoAdasMsgConnectStatusListenerImpl" //自动驾驶状态 @@ -32,27 +32,35 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMo //自动驾驶车速度 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给工控机 - syncBasicInfoToAutopilot() + override fun onAddressDisabled() { - // 开启轮训上传自动驾驶状态 - updateDriveStatusTask() } - override fun onWebSocketConnectFailed(reason: String) { - Logger.d(TAG, "webSocket 连接失败 reason:$reason") - CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP = AdasManager.getInstance().adasConfig.address - CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = false - CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus() + override fun onConnectionIPCStatus(ipcConnectionStatus: Int, reason: String?) { + if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) { + Logger.d(TAG, "webSocket 连接成功") + // 初始化自动驾驶状态信息 + 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 */ @@ -94,12 +102,13 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMo private fun updateDriveStatusTask() { Logger.d(TAG, "updateDriveStatusTask") Flowable.interval(0, 5, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { aLong: Long? -> - AdasServiceModel.getInstance().updateDriveStatus(mCurrentAutopilotStatus, mCurrentAutopilotSpeed) - } + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { aLong: Long? -> + AdasServiceModel.getInstance() + .updateDriveStatus(mCurrentAutopilotStatus, mCurrentAutopilotSpeed) + } } diff --git a/libraries/mogo-adas/build.gradle b/libraries/mogo-adas/build.gradle index 33803c75ae..1ad426e62a 100644 --- a/libraries/mogo-adas/build.gradle +++ b/libraries/mogo-adas/build.gradle @@ -70,7 +70,7 @@ dependencies { implementation rootProject.ext.dependencies.mogochainbase //okhttp3的依赖 - implementation 'com.squareup.okhttp3:okhttp:3.14.9' + implementation 'com.squareup.okhttp3:okhttp:3.12.3' // parser implementation rootProject.ext.dependencies.gson // logger