周文健 5 місяців тому
батько
коміт
1a145b4809

+ 7 - 2
app/src/main/java/com/grkj/iscs/features/init/fragment/InitWelcomeFragment.kt

@@ -3,9 +3,11 @@ package com.grkj.iscs.features.init.fragment
 import androidx.fragment.app.viewModels
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentInitWelcomeBinding
+import com.grkj.iscs.features.init.viewmodel.InitDeviceRegistrationKeyAndLockViewModel
 import com.grkj.iscs.features.init.viewmodel.InitViewModel
 import com.grkj.ui_base.base.BaseFragment
 import com.sik.sikcore.extension.setDebouncedClickListener
+import com.sik.sikcore.thread.ThreadUtils
 import com.tencent.mmkv.MMKV
 import dagger.hilt.android.AndroidEntryPoint
 
@@ -14,7 +16,7 @@ import dagger.hilt.android.AndroidEntryPoint
  */
 @AndroidEntryPoint
 class InitWelcomeFragment : BaseFragment<FragmentInitWelcomeBinding>() {
-    private val viewModel: InitViewModel by viewModels()
+    private val viewModel: InitDeviceRegistrationKeyAndLockViewModel by viewModels()
     override fun getLayoutId(): Int {
         return R.layout.fragment_init_welcome
     }
@@ -24,7 +26,10 @@ class InitWelcomeFragment : BaseFragment<FragmentInitWelcomeBinding>() {
             MMKV.defaultMMKV().clearAll()
         }
         binding.titleEn.setDebouncedClickListener {
-
+            viewModel.deleteKey()
+        }
+        ThreadUtils.runOnIO {
+            viewModel.openAndDetectSlave()
         }
         binding.startBtn.setDebouncedClickListener {
             navController.navigate(R.id.action_initWelcomeFragment_to_initSetAdminAccountFragment)

+ 15 - 1
app/src/main/java/com/grkj/iscs/features/init/viewmodel/InitDeviceRegistrationKeyAndLockViewModel.kt

@@ -37,6 +37,14 @@ class InitDeviceRegistrationKeyAndLockViewModel @Inject constructor(val hardware
      */
     fun openAndDetectSlave() {
         ModBusController.start()
+        ModBusController.controlKeyCharge(true,0,0x01)
+        ModBusController.controlKeyCharge(true,1,0x01)
+        ModBusController.controlKeyCharge(true,0,0x02)
+        ModBusController.controlKeyCharge(true,1,0x02)
+        ModBusController.controlKeyBuckle(true,0,0x01)
+        ModBusController.controlKeyBuckle(true,1,0x01)
+        ModBusController.controlKeyBuckle(true,0,0x02)
+        ModBusController.controlKeyBuckle(true,1,0x02)
         ModBusController.initDevicesStatus()
         ModbusBusinessManager.registerMainListener()
     }
@@ -59,7 +67,6 @@ class InitDeviceRegistrationKeyAndLockViewModel @Inject constructor(val hardware
 
     fun registerInitListener(): LiveData<Boolean> {
         return liveData(Dispatchers.IO) {
-            openAndDetectSlave()
             isStartCheckKey = false
             newHardwareKeyBean.clear()
             alreadyUsedMac.clear()
@@ -264,4 +271,11 @@ class InitDeviceRegistrationKeyAndLockViewModel @Inject constructor(val hardware
         ModBusController.stop()
         ModbusBusinessManager.unregisterMainListener()
     }
+
+    /**
+     * 删除钥匙表
+     */
+    fun deleteKey() {
+        hardwareRepository.deleteKeyTable()
+    }
 }

+ 6 - 0
data/src/main/java/com/grkj/data/dao/HardwareDao.kt

@@ -352,4 +352,10 @@ interface HardwareDao {
         size: Int,
         offset: Int
     ): List<IsRfidToken>
+
+    /**
+     * 删除钥匙表
+     */
+    @Query("delete from is_key where 1=1")
+    fun deleteKeyTable()
 }

+ 5 - 0
data/src/main/java/com/grkj/data/repository/IHardwareRepository.kt

@@ -196,4 +196,9 @@ interface IHardwareRepository {
      * 获取RfidToken分页
      */
     fun getRfidTokenInfoPage(filterVo: RfidTokenManageFilterVo?, size: Int, offset: Int): List<IsRfidToken>
+
+    /**
+     * 删除钥匙表
+     */
+    fun deleteKeyTable()
 }

+ 3 - 0
data/src/main/java/com/grkj/data/repository/impl/HardwareRepository.kt

@@ -332,4 +332,7 @@ class HardwareRepository @Inject constructor(
         )
     }
 
+    override fun deleteKeyTable() {
+        hardwareDao.deleteKeyTable()
+    }
 }