From 44d984fa57ab2c20dcb92759db4d61235bcff1c4 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 28 Feb 2022 18:44:55 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[Update]=E8=BF=99=E4=B8=AA=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=B3=A8=E9=87=8A=E6=8E=89=E5=A4=9A=E5=B1=8F=E5=8A=9F?= =?UTF-8?q?=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 { From 393d4d26478b1f2d220b6a8a147fda95995025a4 Mon Sep 17 00:00:00 2001 From: xuxinchao <13522809046@163.com> Date: Mon, 28 Feb 2022 19:21:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=B7=A5=E6=8E=A7=E6=9C=BA=E5=8D=87?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、添加网约车小红点View回调、显示逻辑 2、修改鹰眼小红点大小 --- .../com/mogo/launcher/MogoApplication.java | 1 + .../core/function/hmi/ui/MoGoHmiFragment.kt | 24 +++++++++++++++++-- .../src/main/res/layout/fragment_hmi.xml | 4 ++-- .../eagle/core/data/config/HmiBuildConfig.kt | 6 +++++ .../api/hmi/warning/IMoGoWaringProvider.kt | 6 +++++ .../function/call/hmi/CallerHmiManager.kt | 8 +++++++ 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 46fb18b8dc..f7700b1668 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -89,6 +89,7 @@ public class MogoApplication extends MainMoGoApplication { HmiBuildConfig.isShowPerspectiveSwitchView = false; HmiBuildConfig.isShowToolsView = false; HmiBuildConfig.isShowBadCaseView = false; + HmiBuildConfig.isShowUpgradeTipsView = false; //业务端可以根据需要控制是否展示刹车和转向灯的ui // HmiBuildConfig.isShowBrakeLightView = false; // HmiBuildConfig.isShowTurnLightView = false; diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index c0eb75381f..bcd0564a1d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -102,6 +102,8 @@ class MoGoHmiFragment : MvpFragment private var onBadCaseShow: (() -> View)? = null private var onBadCaseHide: (() -> Unit)? = null + private var upgradeTipsView: (() -> View)? = null + companion object { private const val MSG_WHAT_DISMISS_BAD_CASE_ENTRY = 0x1010 private val CASE_EXPIRE_DURATION = TimeUnit.HOURS.toMillis(4) @@ -362,6 +364,14 @@ class MoGoHmiFragment : MvpFragment onBadCaseHide = onHide } + /** + *注册工控机升级提示圆点View的回调 + * @param 提示圆点View + */ + override fun registerUpgradeTipsCallback(tipsView: () -> View) { + upgradeTipsView = tipsView + } + /** * 工控机重启返回结果 * @param code @@ -1093,11 +1103,21 @@ class MoGoHmiFragment : MvpFragment upgradeStatus: Int ) { ThreadUtils.runOnUiThread { + val tipsView = upgradeTipsView?.invoke() //如果工控机处于“下载中”、“可升级(下载完成)”、“升级中”、“升级失败”状态时,工具箱入口显示红色角标 if (AdUpgradeStateHelper.showUpgradeTips(downloadStatus, upgradeStatus)) { - viewUpgradeTips.visibility = View.VISIBLE + if (HmiBuildConfig.isShowUpgradeTipsView){ + viewUpgradeTips?.visibility = View.VISIBLE + }else{ + tipsView?.let { + it.visibility = View.VISIBLE + } + } } else { - viewUpgradeTips.visibility = View.GONE + viewUpgradeTips?.visibility = View.GONE + tipsView?.let { + it.visibility = View.GONE + } } //将状态同步到工具箱 toolsView?.showAdUpgradeStatus(upgradeMode, downloadStatus, currentProgress, totalProgress, downloadVersion, upgradeStatus) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml index ddc8434d76..fbbc1af7f3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml @@ -112,8 +112,8 @@ View, onHide: (() -> Unit)?) + /** + *注册工控机升级提示圆点View的回调 + * @param 提示圆点View + */ + fun registerUpgradeTipsCallback(tipsView:() -> View) + /** * 工控机重启返回结果 * @param code diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index f7a25198d8..a7f5173590 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -273,6 +273,14 @@ object CallerHmiManager : CallerBase() { waringProviderApi?.registerBadCaseCallback(onShow, onHide) } + /** + *注册工控机升级提示圆点View的回调 + * @param 提示圆点View + */ + fun registerUpgradeTipsCallback(tipsView:() -> View){ + waringProviderApi?.registerUpgradeTipsCallback(tipsView) + } + /** * 工控机重启返回结果 * @param code