Эх сурвалжийг харах

添加ModBus从机数量自更新

Frankensteinly 11 сар өмнө
parent
commit
07e1a2b03a

+ 3 - 2
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -56,8 +56,9 @@ object BusinessManager {
 
     /****************************************** ModBus ******************************************/
 
-    fun connectDock(count: Int, isNeedInit: Boolean = false) {
-        ModBusController.setSlaveCount(count)
+    fun connectDock(isNeedInit: Boolean = false) {
+        // 暂定100上限
+        ModBusController.setSlaveCount(100)
         ModBusController.interruptReadTrashBinStatus(false)
         ModBusController.start(MyApplication.instance!!.applicationContext)
         ModBusController.unregisterListener(MyApplication.instance!!.applicationContext)

+ 1 - 1
app/src/main/java/com/grkj/iscs/activity/LoginActivity.kt

@@ -36,7 +36,7 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
 
         // TODO 只适配armeabi-v7a
         handleLoading(true, resources.getString(R.string.device_is_initializing))
-        BusinessManager.connectDock(2, true)
+        BusinessManager.connectDock(true)
         Executor.delayOnMain(2000) {
             handleLoading(false)
         }

+ 1 - 1
app/src/main/java/com/grkj/iscs/activity/test/ModbusActivity.kt

@@ -17,7 +17,7 @@ class ModbusActivity : BaseMvpActivity<IModbusView, ModBusPresenter, ActivityMod
         get() = ActivityModbusBinding.inflate(layoutInflater)
 
     override fun initView() {
-        BusinessManager.connectDock(2)
+        BusinessManager.connectDock()
 
         BusinessManager.registerStatusListener(this) {
 

+ 3 - 0
app/src/main/java/com/grkj/iscs/modbus/ModBusController.kt

@@ -72,6 +72,9 @@ object ModBusController {
             }, { res ->
 //                // Logger.d("ModbusController", "res: ${res.map { it.toHexString() }}")
                 LogUtil.i("****************************************************************************")
+                // 过滤非空的数据,重置slaveCount
+                val onlineCount = res.filter { it.isNotEmpty() }.size
+                setSlaveCount(onlineCount)
                 for (l in listeners) {
                     if (l.type == LISTENER_TYPE_STATUS) {
                         l.listener(res)

+ 2 - 1
app/src/main/java/com/grkj/iscs/presentation/PresentationLoginActivity.kt

@@ -61,7 +61,8 @@ class PresentationLoginActivity : BaseActivity<ActivityPresentationLoginBinding>
         }
 
         handleLoading(true, "正在初始化设备...")
-        BusinessManager.connectDock(1, true)
+        BusinessManager.connectDock(true)
+        // TODO 时间需要由ModBusController重置后来通知
         Executor.delayOnMain(2000) {
             handleLoading(false)
         }