From 44d984fa57ab2c20dcb92759db4d61235bcff1c4 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 28 Feb 2022 18:44:55 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=E8=BF=99=E4=B8=AA=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=8E=89=E5=A4=9A=E5=B1=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoAutopilotProvider.kt | 193 +++++++++--------- 1 file changed, 93 insertions(+), 100 deletions(-) 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 6e826523b0..e53b4013f3 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 @@ -21,21 +21,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.telematic.MogoProtocolMsg -import com.mogo.telematic.MogoProtocolMsg.NORMAL_DATA -import com.mogo.telematic.NSDNettyManager -import com.mogo.telematic.client.listener.NettyClientListener -import com.mogo.telematic.client.status.ConnectState -import com.mogo.telematic.server.netty.NettyServerListener 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.CupidLogUtils -import io.netty.channel.Channel import java.util.concurrent.TimeUnit -import io.netty.channel.ChannelFuture -import java.util.* /** @@ -45,7 +35,7 @@ import java.util.* */ @Route(path = MogoServicePaths.PATH_AUTO_PILOT) class MoGoAutopilotProvider : - IMoGoAutopilotProvider, IMoGoMapDataCollectProvider.OnMapCollectCmdListener { + IMoGoAutopilotProvider, IMoGoMapDataCollectProvider.OnMapCollectCmdListener { private val TAG = "MoGoAutoPilotProvider" private var mContext: Context? = null @@ -67,36 +57,36 @@ class MoGoAutopilotProvider : CallerMapDataCollectorManager.registerOnMapCollectTaskListener(this) // "192.168.1.102" val options = AdasOptions.Builder() - .setIPCIp(FunctionBuildConfig.adasConnectIP) - .setClient(false) - .build() + .setIPCIp(FunctionBuildConfig.adasConnectIP) + .setClient(false) + .build() AdasManager.getInstance().create(context, options) - NSDNettyManager.getInstance().startNSDNettyServer(context, object : NettyServerListener { - override fun onMessageResponseServer(msg: MogoProtocolMsg?, channel: Channel?) { - Logger.d(TAG, "Receive client data is:${msg?.toString()}") - } - - override fun onStartServer() { - ToastUtils.showShort("司机端服务启动成功!") - Logger.d(TAG, "onStartServer") - } - - override fun onStopServer() { - ToastUtils.showLong("司机端服务停止!") - Logger.d(TAG, "onStopServer") - } - - override fun onChannelConnect(channel: Channel?) { - NSDNettyManager.getInstance().selectChannel(channel) - val socketAddress = channel?.remoteAddress().toString() - Logger.d(TAG, "Client ip is:${socketAddress}") - } - - override fun onChannelDisConnect(channel: Channel?) { - Logger.d(TAG, "onChannelDisConnect") - } - }) +// NSDNettyManager.getInstance().startNSDNettyServer(context, object : NettyServerListener { +// override fun onMessageResponseServer(msg: MogoProtocolMsg?, channel: Channel?) { +// Logger.d(TAG, "Receive client data is:${msg?.toString()}") +// } +// +// override fun onStartServer() { +// ToastUtils.showShort("司机端服务启动成功!") +// Logger.d(TAG, "onStartServer") +// } +// +// override fun onStopServer() { +// ToastUtils.showLong("司机端服务停止!") +// Logger.d(TAG, "onStopServer") +// } +// +// override fun onChannelConnect(channel: Channel?) { +// NSDNettyManager.getInstance().selectChannel(channel) +// val socketAddress = channel?.remoteAddress().toString() +// Logger.d(TAG, "Client ip is:${socketAddress}") +// } +// +// override fun onChannelDisConnect(channel: Channel?) { +// Logger.d(TAG, "onChannelDisConnect") +// } +// }) } 0x01 -> // 乘客 { @@ -105,78 +95,79 @@ class MoGoAutopilotProvider : //FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true // "192.168.1.102" val options = AdasOptions - .Builder() - .setIPCIp(FunctionBuildConfig.adasConnectIP) - .build() + .Builder() + .setClient(true) + .build() AdasManager.getInstance().create(context, options) - NSDNettyManager.getInstance().searchAndConnectServer(context, MoGoAiCloudClientConfig.getInstance().sn, object : NettyClientListener { - override fun onMessageResponseClient(msg: MogoProtocolMsg?, sign: String?) { - Logger.d(TAG, "收到司机端的数据!") - // 乘客端收到adas数据直接解析,后续分发解析后的数据流程同司机端 - msg?.let { - AdasManager.getInstance().parseIPCData(it.body) - Logger.d(TAG, "解析司机端数据完毕!") - } - } - - override fun onClientStatusConnectChanged(statusCode: Int, sign: String?) { - when (statusCode) { - ConnectState.STATUS_CONNECT_SUCCESS -> Logger.d(TAG, "乘客端连接司机端服务成功! sign is:${sign}") - else -> { - ToastUtils.showLong("和司机端连接异常!") - Logger.d(TAG, "client statusCode is:${statusCode}") - } - } - } - }) +// NSDNettyManager.getInstance().searchAndConnectServer(context, MoGoAiCloudClientConfig.getInstance().sn, object : NettyClientListener { +// override fun onMessageResponseClient(msg: MogoProtocolMsg?, sign: String?) { +// Logger.d(TAG, "收到司机端的数据!") +// // 乘客端收到adas数据直接解析,后续分发解析后的数据流程同司机端 +// msg?.let { +// AdasManager.getInstance().parseIPCData(it.body) +// Logger.d(TAG, "解析司机端数据完毕!") +// } +// } +// +// override fun onClientStatusConnectChanged(statusCode: Int, sign: String?) { +// when (statusCode) { +// ConnectState.STATUS_CONNECT_SUCCESS -> Logger.d(TAG, "乘客端连接司机端服务成功! sign is:${sign}") +// else -> { +// ToastUtils.showLong("和司机端连接异常!") +// Logger.d(TAG, "client statusCode is:${statusCode}") +// } +// } +// } +// }) } // else -> // 默认采用UDP寻址方式 { val options = AdasOptions.Builder() - .setClient(false) - .setIPCIp(FunctionBuildConfig.adasConnectIP) - .build() + .setClient(false) + .setIPCIp(FunctionBuildConfig.adasConnectIP) + .build() AdasManager.getInstance().create(context, options) } } //////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听///////////////////////////////////////////// // 监听 adas 连接状态 - AdasManager.getInstance().setOnAdasConnectStatusListener(MoGoAdasMsgConnectStatusListenerImpl()) + AdasManager.getInstance() + .setOnAdasConnectStatusListener(MoGoAdasMsgConnectStatusListenerImpl()) // 监听ADAS-SDK获取到的工控机数据(乘客也需注册) AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl()) - // 司机端监听 - if (FunctionBuildConfig.appIdentityMode == 0) { - AdasManager.getInstance().setOnMultiDeviceListener { bytes -> - Logger.d( - TAG, - "司机端接收到工控机吐出来的数据为:${Arrays.toString(bytes)}" - ) - // 发送数据给乘客端 - if (NSDNettyManager.getInstance().isServerStart) { - Logger.d( - TAG, - "司机端透传数据给乘客端!" - ) - NSDNettyManager.getInstance().sendMsgToAllClients(MogoProtocolMsg(NORMAL_DATA, bytes.size, bytes)) -// NSDNettyManager.getInstance().sendMogoProtocolMsgToClient(MogoProtocolMsg(NORMAL_DATA, bytes.size, bytes)) { channelFuture: ChannelFuture -> -// if (channelFuture.isSuccess) { -// Logger.d( -// TAG, -// "Send data to client is success." -// ) -// } else { -// Logger.d( -// TAG, -// "Send data to client is failure." -// ) -// } -// } - } else { - Logger.d(TAG, "司机端Server未启动!") - } - } - } +// // 司机端监听 +// if (FunctionBuildConfig.appIdentityMode == 0) { +// AdasManager.getInstance().setOnMultiDeviceListener { bytes -> +// Logger.d( +// TAG, +// "司机端接收到工控机吐出来的数据为:${Arrays.toString(bytes)}" +// ) +// // 发送数据给乘客端 +// if (NSDNettyManager.getInstance().isServerStart) { +// Logger.d( +// TAG, +// "司机端透传数据给乘客端!" +// ) +// NSDNettyManager.getInstance().sendMsgToAllClients(MogoProtocolMsg(NORMAL_DATA, bytes.size, bytes)) +//// NSDNettyManager.getInstance().sendMogoProtocolMsgToClient(MogoProtocolMsg(NORMAL_DATA, bytes.size, bytes)) { channelFuture: ChannelFuture -> +//// if (channelFuture.isSuccess) { +//// Logger.d( +//// TAG, +//// "Send data to client is success." +//// ) +//// } else { +//// Logger.d( +//// TAG, +//// "Send data to client is failure." +//// ) +//// } +//// } +// } else { +// Logger.d(TAG, "司机端Server未启动!") +// } +// } +// } // 同步数据给工控机的服务 AsyncDataToAutopilotServer.INSTANCE.initServer() // 同步是否开启美化模式 @@ -196,7 +187,9 @@ class MoGoAutopilotProvider : @RequiresPermission(permission.INTERNET) override fun doInBackground(): String { // 保存本地 AutoPilot IP地址 - mContext?.let { SharedPrefsMgr.getInstance(it).putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp) } + mContext?.let { + SharedPrefsMgr.getInstance(it).putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp) + } // 设置IP地址 AdasManager.getInstance().setIPCIp(autoPilotIp) // 打开通讯连接 @@ -243,7 +236,7 @@ class MoGoAutopilotProvider : override fun recordPackage(): Boolean { return AdasManager.getInstance() - .recordPackage(1, (System.currentTimeMillis() / 1000).toInt()) + .recordPackage(1, (System.currentTimeMillis() / 1000).toInt()) } override fun recordPackage(type: Int, id: Int): Boolean {