From adedc2b131d32c9411cbb247b2c520580780b047 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 16 Apr 2024 15:12:57 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.0]=20[=E5=B1=80=E5=9F=9F=E7=BD=91=E5=86=85?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E9=80=9A=E8=AE=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../login/model/LoginStatusDefaultModel.kt | 5 -- ...inLanSocket.kt => LoginLanDriverSocket.kt} | 51 +++++++++--- .../biz/lansocket/LoginLanPassengerSocket.kt | 82 +++++++++++++++++++ .../manager/socket/lan/ILanMessageListener.kt | 2 +- .../manager/socket/lan/LanSocketManager.kt | 7 +- .../manager/socket/lan/bean/BaseDPMsg.kt | 2 +- .../manager/socket/lan/bean/DPMsgType.kt | 32 +------- .../mogo/och/facade/route/FacadeProvider.kt | 8 +- 8 files changed, 137 insertions(+), 52 deletions(-) rename OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/{LoginLanSocket.kt => LoginLanDriverSocket.kt} (70%) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusDefaultModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusDefaultModel.kt index 43db4dfcef..ecd10f5d5f 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusDefaultModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusDefaultModel.kt @@ -7,15 +7,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean -import com.mogo.och.common.module.biz.lansocket.LoginLanSocket import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.manager.socket.lan.LanSocketManager -import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey -import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.common.module.utils.ProjectUtils import com.mogo.och.data.manager.cache.CacheDataManager @SuppressLint("StaticFieldLeak") diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanSocket.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt similarity index 70% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanSocket.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt index d86e2c2fd3..4f8dc06c35 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanSocket.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt @@ -8,9 +8,12 @@ import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck import com.mogo.och.common.module.manager.socket.lan.bean.EnvType import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType @@ -18,35 +21,59 @@ import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType import com.mogo.och.common.module.utils.Project import com.mogo.och.common.module.utils.ProjectUtils -object LoginLanSocket : ILoginCallback { +object LoginLanDriverSocket : ILoginCallback { private const val TAG = "LoginLanSocket" - var vehicleType:VehicleType?=null - var businessType:BusinessType?=null - var projectType:ProjectType?=null - var envType:EnvType?=null + var vehicleType: VehicleType? = null + var businessType: BusinessType? = null + var projectType: ProjectType? = null + var envType: EnvType? = null - fun load(){ + // 客户端注册 + private val registerListener = object : ILanMessageListener { + override fun target(): Class { + return BaseDPMsg::class.java + } + override fun onMsgReceived(obj: Array) { + println("-------${obj}") + getEnvCheck() + val msg = + ChangeBusinessType(vehicleType!!, businessType!!, projectType!!, envType!!) + LanSocketManager.sendMsgToClient(msg) + } + + }; + + fun load() { + LanSocketManager.load() } init { LoginStatusManager.addListener(TAG, this) + LanSocketManager.registerSocketMessageListener( + DPMsgType.TYPE_CLIENT_REGISTER.type, + TAG, + registerListener + ) } + // 司机端发送业务模式更改和环境校验 override fun onStatusChange(currentStatus: LoginStatusEnum?) { super.onStatusChange(currentStatus) when (currentStatus) { - LoginStatusEnum.None -> {} LoginStatusEnum.Login -> { getEnvCheck() - val msg = ChangeBusinessType(vehicleType!!, businessType!!, projectType!!, envType!!) + val msg = + ChangeBusinessType(vehicleType!!, businessType!!, projectType!!, envType!!) LanSocketManager.sendMsgToClient(msg) - BizLoopManager.setLoopFunction(TAG, LoopInfo(60*5, ::loopCheck)) + BizLoopManager.setLoopFunction(TAG, LoopInfo(60 * 5, ::loopCheck)) } - LoginStatusEnum.Logout -> { + + else -> { BizLoopManager.removeLoopFunction(TAG) - val msg = ChangeBusinessType(vehicleType!!, BusinessType.none, projectType!!, envType!!) + val msg = + ChangeBusinessType(vehicleType!!, BusinessType.none, projectType!!, envType!!) LanSocketManager.sendMsgToClient(msg) } } @@ -58,7 +85,7 @@ object LoginLanSocket : ILoginCallback { LanSocketManager.sendMsgToClient(msg) } - private fun getEnvCheck(){ + private fun getEnvCheck() { vehicleType = if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { VehicleType.T1T2 diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt new file mode 100644 index 0000000000..f0c2619a05 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt @@ -0,0 +1,82 @@ +package com.mogo.och.common.module.biz.lansocket + +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.Logger +import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener +import com.mogo.och.common.module.manager.socket.lan.LanSocketManager +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck +import kotlin.properties.Delegates + +object LoginLanPassengerSocket : IReceivedMsgListener { + private const val TAG = "LoginLanSocket" + + private var driverSn: String by Delegates.observable("") { _, oldV, newV -> + if (oldV != newV) { + // 司机屏发生变化 + val msg = BaseDPMsg(type = DPMsgType.TYPE_CLIENT_REGISTER.type) + LanSocketManager.sendMsgToServer(msg) + } + } + + // 环境监测 + private val checkListener = object : ILanMessageListener { + override fun target(): Class { + return EnvCheck::class.java + } + + override fun onMsgReceived(obj: Array) { + println("EnvCheck-------${obj}") + } + + }; + + // 环境监测+业务展示和跳转 + private val changeBusinessType = object : ILanMessageListener { + override fun target(): Class { + return ChangeBusinessType::class.java + } + + override fun onMsgReceived(obj: Array) { + println("ChangeBusinessType -------${obj}") + if (obj.isNotEmpty()) { + var first = obj.first() as ChangeBusinessType + println("ChangeBusinessType -------${first}") + } + } + + }; + + fun load() { + LanSocketManager.load() + } + + init { + //监听司机端消息 + CallerTelematicListenerManager.addListener(TAG, this) + // 乘客屏 + LanSocketManager.registerSocketMessageListener( + DPMsgType.TYPE_ENV_CHECK.type, + TAG, + checkListener + ) + LanSocketManager.registerSocketMessageListener( + DPMsgType.TYPE_CHANGE_BUSINESS_TYPE.type, + TAG, + changeBusinessType + ) + } + override fun onReceivedMsg(type: Int, byteArray: ByteArray) { + + } + + override fun onReceivedServerSn(sn: String?) { + Logger.d(TAG, "司机屏sn:$sn") + driverSn = sn ?: "" + } + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/ILanMessageListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/ILanMessageListener.kt index 21a33fdb99..197b4745cc 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/ILanMessageListener.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/ILanMessageListener.kt @@ -13,6 +13,6 @@ interface ILanMessageListener { fun target(): Class - fun onMsgReceived(obj: T) + fun onMsgReceived(obj: Array) } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/LanSocketManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/LanSocketManager.kt index 7bc1a64196..f7de10b1cd 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/LanSocketManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/LanSocketManager.kt @@ -18,6 +18,10 @@ object LanSocketManager : IReceivedMsgListener { CallerTelematicListenerManager.addListener(TAG, this) } + fun load(){ + + } + @JvmStatic fun sendMsgToClient(msg: BaseDPMsg?) { val message = GsonUtils.toJson(msg) @@ -52,7 +56,8 @@ object LanSocketManager : IReceivedMsgListener { String(byteArray), target ) } - listeners.value.onMsgReceived(fromJson) + + listeners.value.onMsgReceived(arrayOf(fromJson)) } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/BaseDPMsg.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/BaseDPMsg.kt index 5f130acb6d..57a8ed3caa 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/BaseDPMsg.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/BaseDPMsg.kt @@ -5,7 +5,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils open class BaseDPMsg( - open var type: Int, + open var type: Int = DPMsgType.TYPE_CLIENT_REGISTER.type, open var msgVersion: Int = 1, open var targetScreenTypes: MutableList = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DPMsgType.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DPMsgType.kt index c739507871..9633fa762a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DPMsgType.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DPMsgType.kt @@ -18,34 +18,6 @@ enum class DPMsgType(val type: Int) { TYPE_WRITEOFF_INFO(8), //核销信息 TYPE_WRITEOFF_DEVICES_INFO(9), //核销设备信息 TYPE_CHANGE_BUSINESS_TYPE(10), //业务模式切换 - TYPE_ENV_CHECK(11); //环境核验 - - companion object { - fun getValue(type: Int, byteArray: ByteArray):BaseDPMsg? { - when (type) { - TYPE_COMMON.type -> { - return GsonUtils.fromJson( - String(byteArray), AppConnectMsg::class.java - ) as AppConnectMsg - } - TYPE_CHANGE_DEST.type -> { - return GsonUtils.fromJson( - String(byteArray), ChangeDestMsg::class.java - ) as ChangeDestMsg - } - TYPE_OPEN_CLOSE_DOOR.type -> {} - TYPE_ORDER_CLOSED.type -> {} - TYPE_TASK_DETAILS.type -> {} - TYPE_LOGIN_STATUS.type -> {} - TYPE_ARRIVEDEST_STATUS.type -> {} - TYPE_ORDER_CLOSED_BY_M1_STATUS.type -> {} - TYPE_WRITEOFF_INFO.type -> {} - TYPE_WRITEOFF_DEVICES_INFO.type -> {} - TYPE_CHANGE_BUSINESS_TYPE.type -> {} - TYPE_ENV_CHECK.type -> {} - else -> {} - } - return null - } - } + TYPE_ENV_CHECK(11), //环境核验 + TYPE_CLIENT_REGISTER(12); //客户端注册 服务端需要 } \ No newline at end of file diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt index d4739f8ac5..9b48824eab 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -17,7 +17,8 @@ import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.och.common.module.biz.lansocket.LoginLanSocket +import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket +import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.login.BusinessEnum import com.mogo.och.common.module.biz.login.ILoginCallback @@ -40,9 +41,12 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { override fun init(context: Context) { d(TAG, "FacadeProvider:init") LoginStatusManager.addListener(TAG, this) - LoginLanSocket.load() + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ LoginStatusManager.queryLoginStatusByNet() + LoginLanDriverSocket.load() + }else{ + LoginLanPassengerSocket.load() } }