Bladeren bron

调试页,开关机优化

ccc 4 maanden geleden
bovenliggende
commit
b8fa595b53

+ 1 - 1
lib_common/src/main/java/com/quyunshuo/androidbaseframemvvm/common/CommonApplication.kt

@@ -149,7 +149,7 @@ class CommonApplication : ApplicationLifecycle, ForegroundBackgroundObserver {
 //            BuildConfig.VERSION_TYPE != VersionStatus.RELEASE
             true
         )
-        CrashReport.setUserId(Heartbeat.deviceId + "MP10")
+        CrashReport.setUserId(Heartbeat.deviceId + "sbm10")
         return "Bugly -->> init complete"
     }
 

+ 2 - 1
lib_common/src/main/java/com/quyunshuo/androidbaseframemvvm/common/constant/MMKVName.kt

@@ -7,6 +7,8 @@ abstract class MMKVName {
 
     companion object {
 
+        var APP_VERSION: Int = 0 //区分国内外版本
+
         val PAY_TYPE: String
             get() = "PAY_TYPE"//支付方式
         val PRODUCT_DATA: String
@@ -38,7 +40,6 @@ abstract class MMKVName {
         val OPEN_DEV: String
             get() = "open"//开机,还是关机
 
-
         val QUEUE_DATA: String
             get() = "QUEUE_DATA"//连接设备id
 

+ 25 - 13
module_backstage/src/main/java/com/module/backstage/activity/setting/SettingActivity.kt

@@ -160,23 +160,36 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
         XLogUtil.d(messageEvent.cmd+":settingmessageEvent.data:"+messageEvent.data)
         Log.d(TAG, "settingdataevent0: "+messageEvent.data)
         Log.d(TAG, "settingdataevent1: "+messageEvent.data.length)
-        when (messageEvent.cmd) {
-            VboxCommand.CMD_HEARTBEAT ->{
-                if ("01"==messageEvent.data.substring(2,4)){
-                    mViewModel.cmdHeartbeat(messageEvent)
-                }
+        val data =messageEvent.data.substring(2,4)
+        when (data){
+            "01"->{
+                mViewModel.cmdHeartbeat(messageEvent)
             }
-            VboxCommand.CMD_IO->{
+            "02"->{
                 mViewModel.cmdAllParam(messageEvent)
             }
-            VboxCommand.CMD_ON_OFF->{
-//                mViewModel.cmdGetDevState(messageEvent)
-//                if (mViewModel.isM3Success.value == true){
+            "03"->{
+                mViewModel.cmdGetDevState(messageEvent)
+                if (mViewModel.isM3Success.value == true){
                     closeLoading()
-//                }
+                }
             }
-            else -> {}
+            else->{}
         }
+//        when (messageEvent.cmd) {
+//            VboxCommand.CMD_HEARTBEAT ->{
+//                if ("01"==messageEvent.data.substring(2,4)){
+//                    mViewModel.cmdHeartbeat(messageEvent)
+//                }
+//            }
+//            VboxCommand.CMD_IO->{
+////                mViewModel.cmdAllParam(messageEvent)
+//            }
+//            VboxCommand.CMD_ON_OFF->{
+//
+//            }
+//            else -> {}
+//        }
     }
 
     override fun initObserve() {
@@ -351,11 +364,9 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
             Message.Type.ack -> {
                 mViewModel.ack(messageEvent)
             }
-
             Message.Type.response -> {
                 mViewModel.response(messageEvent)
             }
-
             Message.Type.connected -> {}
             Message.Type.disconnected -> {}
             Message.Type.sendError -> {}
@@ -563,6 +574,7 @@ class SettingActivity : BaseActivity<BackstageActivitySettingBinding, SettingVie
             .setLoadingColor(R.color.color_red
             ) //颜色
             .setHintText("Loading...")
+            .setCancelable(false)
             .setCanceledOnTouchOutside(false)
             .setHintTextSize(48f)
 

+ 7 - 2
module_backstage/src/main/java/com/module/backstage/activity/setting/SettingRepository.kt

@@ -4,6 +4,7 @@ import android.util.Log
 import com.module.pay.service.HomeApiService
 import com.quyunshuo.androidbaseframemvvm.base.mvvm.m.BaseRepository
 import com.quyunshuo.androidbaseframemvvm.common.constant.Heartbeat
+import com.quyunshuo.androidbaseframemvvm.common.constant.MMKVName
 import kotlinx.coroutines.delay
 import javax.inject.Inject
 
@@ -37,7 +38,7 @@ class SettingRepository @Inject constructor() : BaseRepository() {
         params["clientId"] = Heartbeat.deviceId!!
         params["managerId"] = text!!
         params["gtClientId"] = Heartbeat.clientId!!
-        params["equimentType"] = "P10_SBM"
+        params["equimentType"] = "SBM10"
         Log.d(TAG, "initDev1: "+params)
         mApi.initDev(params).run {
             emit(this)
@@ -49,7 +50,11 @@ class SettingRepository @Inject constructor() : BaseRepository() {
      */
     suspend fun apkinfo() = request<String> {
         var params = HashMap<String, String>()
-        params["model"] = "320en"
+        if (MMKVName.APP_VERSION==1){
+            params["model"] = "SBM10ch"
+        }else{
+            params["model"] = "SBM10en"
+        }
         mApi.apkinfo(params).run {
             emit(this)
         }

+ 35 - 24
module_backstage/src/main/java/com/module/backstage/activity/setting/SettingViewModel.kt

@@ -110,14 +110,13 @@ class SettingViewModel @Inject constructor(private val mRepo: SettingRepository)
                     Log.d(TAG, "initDev onnext: " + it)
                     initDevSuccess(it)
                 }
-
             }
         }
 
     }
 
     fun getApkinfo() {
-        //连接服务器
+        //获取更新
         viewModelScope.launch(Dispatchers.IO) {
             mRepo.apkinfo().catch {
                 Log.d(TAG, "apkinfo onerror: " + it)
@@ -125,9 +124,7 @@ class SettingViewModel @Inject constructor(private val mRepo: SettingRepository)
                 CoroutineScope(Dispatchers.Main).launch {
                     Log.d(TAG, "apkinfo onnext: " + it)
                     apkInfoSuccess(it)
-//                    initDevSuccess(it)
                 }
-
             }
         }
     }
@@ -240,27 +237,35 @@ class SettingViewModel @Inject constructor(private val mRepo: SettingRepository)
             "00" -> {//刚上电
                 Log.d(TAG, "startUp: 开机中2。")
             }
+
             "01" -> {//开机中
 //                threadSettingParam.stopUp()
 //                threadSettingParam.isActiveM3=false
 //                _isM3Success.value = true
                 Log.d(TAG, "startUp: 开机中0。")
             }
+
             "02" -> {//就绪待机,可以选购或制作下一杯    我也不知道为什么01的时候结束不了,02才能结束
 //                _isM3Success.value = false
                 Log.d(TAG, "startUp: 开机中3。")
             }
+
             "03" -> {//报警中
                 Log.d(TAG, "startUp: 开机中4。")
             }
+
             "04" -> {//开始制作
             }
+
             "05" -> {//下玉米完毕
             }
+
             "07" -> {//玉米爆开
             }
+
             "10" -> {//制作完成
             }
+
             else -> {}
         }
     }
@@ -268,47 +273,53 @@ class SettingViewModel @Inject constructor(private val mRepo: SettingRepository)
     fun cmdAllParam(messageEvent: VBoxMessage) {
         Log.d(TAG, "getAllParam1: " + messageEvent.data.length)
         Log.d(TAG, "getAllParam2: " + messageEvent.data.substring(0, 6))
-        val getAllParam = messageEvent.data.substring(0, 6)//查询参数指令标志
-        if (getAllParam == "000200") {
-            SBCHeartbeat.windSpeedLow=messageEvent.data.substring(22, 24)
-            SBCHeartbeat.windSpeedMid=messageEvent.data.substring(24, 26)
-            SBCHeartbeat.windSpeedHei=messageEvent.data.substring(26, 28)
-            Log.d(TAG, "getWindSpeed:l "+SBCHeartbeat.windSpeedLow)
-            Log.d(TAG, "getWindSpeed:m "+SBCHeartbeat.windSpeedMid)
-            Log.d(TAG, "getWindSpeed:h "+SBCHeartbeat.windSpeedHei)
+        val getAllParam = messageEvent.data.substring(2, 4)//查询参数指令标志
+        if (getAllParam == "02") {
+            SBCHeartbeat.windSpeedLow = messageEvent.data.substring(22, 24)
+            SBCHeartbeat.windSpeedMid = messageEvent.data.substring(24, 26)
+            SBCHeartbeat.windSpeedHei = messageEvent.data.substring(26, 28)
+            Log.d(TAG, "getWindSpeed:l " + SBCHeartbeat.windSpeedLow)
+            Log.d(TAG, "getWindSpeed:m " + SBCHeartbeat.windSpeedMid)
+            Log.d(TAG, "getWindSpeed:h " + SBCHeartbeat.windSpeedHei)
         }
     }
 
     fun cmdGetDevState(messageEvent: VBoxMessage) {
         val deviceState = messageEvent.data.substring(0, 2)//机器状态码
-        Log.d(TAG, "cmdGetDevState: "+deviceState)
+        Log.d(TAG, "cmdGetDevState: " + deviceState)
         when (deviceState) {
-            "01","02"->{
+            "01", "02" -> {
                 threadSettingParam.stopUp()
-                threadSettingParam.isActiveM3=false
+                threadSettingParam.isActiveM3 = false
                 _isM3Success.value = true
             }
-            else->_isM3Success.value = false
+
+            else -> _isM3Success.value = false
 
         }
     }
 
     fun getParamData() {
         stopAllParam()
-        allParam=true
+        allParam = true
         jobAllParam = CoroutineScope(Dispatchers.Main).launch {
-                while (allParam) {
-                    delay(1000)
-                    VboxSerialPortSendQueue.getInstance()
-                        .sendCommand(VboxWriteCommand(VboxCommand.CMD_IO, VboxCommand.GET_PARAM_ID+"00"))
-//                    Log.d(TAG, "长度 getAllParam0: ")
-                }
+            while (allParam) {
+                VboxSerialPortSendQueue.getInstance()
+                    .sendCommand(
+                        VboxWriteCommand(
+                            VboxCommand.CMD_IO,
+                            VboxCommand.GET_PARAM_ID + "00"
+                        )
+                    )
+                Log.d(TAG, "调试 getAllParam0: ")
+                delay(1000)
+            }
         }
     }
 
     fun stopAllParam() {
         jobAllParam?.cancel()
-        allParam=false
+        allParam = false
     }
 
     //读取心跳

+ 96 - 120
module_backstage/src/main/java/com/module/backstage/fragment/param/DebugParamFragment.kt

@@ -1,5 +1,6 @@
 package com.module.backstage.fragment.param
 
+import android.annotation.SuppressLint
 import android.util.Log
 import android.view.View
 import android.widget.CheckBox
@@ -8,6 +9,7 @@ import androidx.recyclerview.widget.GridLayoutManager
 import com.hboxs.serialport.plc.DialogClickListener
 import com.hboxs.serialport.sbc.SBCHeartbeat
 import com.hboxs.serialport.sbc.VBoxMessage
+import com.module.backstage.R
 import com.module.backstage.adapter.DebugParamAdapter
 import com.module.backstage.databinding.BackstageFragmentDebugParamBinding
 import com.module.backstage.dialog.OKCancelDialog
@@ -16,8 +18,17 @@ import com.module.backstage.vm.DebugParamFragmentVM
 import com.quyunshuo.androidbaseframemvvm.base.ktx.observeLiveData
 import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
+import com.quyunshuo.androidbaseframemvvm.common.util.ToastUtil
 import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
+import com.zyao89.view.zloading.ZLoadingDialog
+import com.zyao89.view.zloading.Z_TYPE
 import dagger.hilt.android.AndroidEntryPoint
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 
@@ -40,6 +51,7 @@ class DebugParamFragment :
 
     override fun onDestroyView() {
         mBinding.debugRvProduct.adapter = null
+        closeLoading()
         super.onDestroyView()
     }
     override fun BackstageFragmentDebugParamBinding.initView() {
@@ -53,7 +65,6 @@ class DebugParamFragment :
                 override fun onClickListener(view: View?, position: Int, data: String?) {
                    var checkBox = view as CheckBox
                     showOnOffDialog(checkBox.isChecked,position)
-
                 }
             })
             adapter = debugParamAdapter
@@ -67,22 +78,23 @@ class DebugParamFragment :
         mViewModel.disposeData(messageEvent)
     }
 
+
     override fun initObserve() {
         lifecycle.addObserver(mViewModel.getThreadDebugParamParam())
-        observeLiveData(mViewModel.paramDataListM228,::setM228)
-        observeLiveData(mViewModel.paramDataListM111,::setM111)
-        observeLiveData(mViewModel.paramDataListM166,::setM166)
-        observeLiveData(mViewModel.paramDataListM171,::setM171)
-        observeLiveData(mViewModel.paramDataListM178,::setM178)
-        observeLiveData(mViewModel.paramDataListM198,::setM198)
-        observeLiveData(mViewModel.paramDataListM208,::setM208)
-        observeLiveData(mViewModel.paramDataListM218,::setM218)
         observeLiveData(mViewModel.lowSpeedChecked,::setWindLow)
         observeLiveData(mViewModel.midSpeedChecked,::setWindMid)
         observeLiveData(mViewModel.highSpeedChecked,::setWindHigh)
         observeLiveData(mViewModel.paramDataList,::paramDataList)
         observeLiveData(mViewModel.paramDataList1,::paramDataList1)
+        observeLiveData(mViewModel.paramDataList3,::paramDataList3)
         observeLiveData(mViewModel.refreshPage,::refreshPage)
+        observeLiveData(mViewModel.loading,::setLoading)
+
+    }
+    private fun setLoading(b: Boolean?) {
+        if (b == false){
+            closeLoading()
+        }
     }
 
     private fun refreshPage(b: Boolean?) {
@@ -95,120 +107,10 @@ class DebugParamFragment :
         mViewModel.getArticleData()
     }
 
-    fun setM111(lis: List<String>){
-        Log.d(TAG, "setM111: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                7 -> getValue(lis, i, 0)
-                12 -> getValue(lis, i, 1)
-            }
-            i++
-        }
-    }
-    fun setM166(lis: List<String>){
-        Log.d(TAG, "setM166: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                1 -> getValue(lis, i, 2)
-            }
-            i++
-        }
-    }
-    fun setM171(lis: List<String>){
-        Log.d(TAG, "setM171: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                3 -> getValue(lis, i, 3)
-                5 -> getValue(lis, i, 4)
-                6 -> getValue(lis, i, 5)
-                7 -> getValue(lis, i, 6)
-                8 -> getValue(lis, i, 7)
-                9 -> getValue(lis, i, 8)
-
-            }
-            i++
-        }
-    }
-    fun setM178(lis: List<String>){
-        Log.d(TAG, "setM178: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                2 -> getValue(lis, i, 9)
-                3 -> getValue(lis, i, 10)
-                4 -> getValue(lis, i, 11)
-                5 -> getValue(lis, i, 12)
-                6 -> getValue(lis, i, 13)
-                8 -> getValue(lis, i, 14)
-
-            }
-            i++
-        }
-    }
-    fun setM198(lis: List<String>){
-        Log.d(TAG, "setM198: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                0 -> getValue(lis, i, 16)
-                1 -> getValue(lis, i, 15)
-
-            }
-            i++
-        }
-    }
-    fun setM208(lis: List<String>){
-        Log.d(TAG, "setM208: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                0 -> getValue(lis, i, 17)
-                1 -> getValue(lis, i, 18)
-
-            }
-            i++
-        }
-    }
-    fun setM218(lis: List<String>){
-        Log.d(TAG, "setM218: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                2 -> getValue(lis, i, 19)
-                3 -> getValue(lis, i, 20)
-
-            }
-            i++
-        }
-    }
-    fun setM228(lis: List<String>){
-        Log.d(TAG, "setM228: "+lis)
-        var i = 0
-        val len = lis.size
-        while (i < len) {
-            when (i) {
-                2-> getValue(lis, i, 22)
-                3 -> getValue(lis, i, 21)
-            }
-            i++
-        }
-    }
-
-
     private fun paramDataList(lis: List<String>) {
         var i = 0
         val len = lis.size
-        Log.d(TAG, "paramDataList: "+lis)
+        Log.d(TAG, "paramDataList0: "+lis)
         while (i < len) {
             when (i) {
                 0-> getValue(lis, i, 8)
@@ -233,6 +135,17 @@ class DebugParamFragment :
             i++
         }
     }
+    private fun paramDataList3(lis: List<String>) {
+        var i = 0
+        val len = lis.size
+        Log.d(TAG, "paramDataList3: "+lis)
+        while (i < len) {
+            when (i) {
+                1->getValue2(lis,i,9)
+            }
+            i++
+        }
+    }
 
     /**
      * 改变对应的状态
@@ -260,6 +173,25 @@ class DebugParamFragment :
         }
     }
 
+    private fun getValue2(lis: List<String>, index: Int, position: Int) {
+        val view: View = mBinding.debugRvProduct.getChildAt(position)
+        if (null != mBinding.debugRvProduct.getChildViewHolder(view)) {
+            val viewHolder: DebugParamAdapter.MyViewHolder =
+                mBinding.debugRvProduct.getChildViewHolder(view) as DebugParamAdapter.MyViewHolder
+            Log.d(TAG, "position: "+position+"getValue isChecked: "+viewHolder.mBinding.cbManual.isChecked)
+            if ("1".equals(lis[index])) {
+                //当它为选择状态时,无需设置,避免闪硕
+                if (!viewHolder.mBinding.cbManual.isChecked) { //如果已经选中了,那么我们这边就不会执行了。
+                    viewHolder.mBinding.cbManual.isChecked = false
+                }
+            } else {
+                if (viewHolder.mBinding.cbManual.isChecked) {
+                    viewHolder.mBinding.cbManual.isChecked = true
+                }
+            }
+        }
+    }
+
     private fun setWindLow(b: Boolean) {
         getValue1(b,0)
     }
@@ -303,6 +235,7 @@ class DebugParamFragment :
                     okCancelDialog?.type1-> {
                         okCancelDialog?.dismiss()
                         mViewModel.setBtnParam(isChecked,position)
+                        showLoading()
                     }
                     else -> {}
                 }
@@ -311,4 +244,47 @@ class DebugParamFragment :
         okCancelDialog?.show()
     }
 
+
+    private var dialog: ZLoadingDialog? = null
+    private var loadingJob: Job? = null
+    @SuppressLint("ResourceAsColor")
+    private fun showLoading() {
+        if (dialog == null) {
+            dialog = ZLoadingDialog(requireContext())
+        }
+        dialog!!.setLoadingBuilder(Z_TYPE.DOUBLE_CIRCLE) //设置类型
+            .setLoadingColor(
+                R.color.color_red
+            ) //颜色
+            .setHintText("Loading...")
+            .setCanceledOnTouchOutside(false)
+            .setCancelable(false)
+            .setHintTextSize(48f)
+
+        dialog!!.create().apply {
+            val window = this.window
+            window?.let {
+                val layoutParams = it.attributes
+                layoutParams.width = (800 * resources.displayMetrics.density).toInt() // 转换为 px
+                layoutParams.height = (400 * resources.displayMetrics.density).toInt() // 转换为 px
+                it.attributes = layoutParams
+            }
+        }
+        dialog!!.show()
+        loadingJob = CoroutineScope(Dispatchers.IO).launch {
+            delay(10000) // 延迟 20 秒
+            withContext(Dispatchers.Main) {
+                if (dialog?.isShowing == true) {
+                    ToastUtil.showToast("error")
+                    closeLoading() // 在主线程调用关闭方法
+                }
+            }
+        }
+    }
+
+    private fun closeLoading(){
+        loadingJob?.cancel()
+        dialog?.dismiss()
+    }
+
 }

+ 45 - 10
module_backstage/src/main/java/com/module/backstage/vm/DebugParamFragmentVM.kt

@@ -14,6 +14,7 @@ import com.hboxs.serialport.sbc.SBCHeartbeat
 import com.hboxs.serialport.sbc.VBoxMessage
 import com.hboxs.serialport.sbc.frame.VboxCommand
 import com.module.backstage.R
+import com.module.backstage.fragment.param.DebugParamFragment
 import com.module.backstage.repo.DebugParamFragmentRepo
 import com.quyunshuo.androidbaseframemvvm.base.addressenum.PlcDebugAddressEnum
 import com.quyunshuo.androidbaseframemvvm.base.mvvm.vm.BaseViewModel
@@ -80,9 +81,15 @@ class DebugParamFragmentVM @Inject constructor(private val mRepo: DebugParamFrag
     private var _paramDataList1 = MutableLiveData<List<String>>()
     val paramDataList1: MutableLiveData<List<String>> get() = _paramDataList1
 
-    private val _refreshPage = MutableLiveData<Boolean>();
+    private var _paramDataList3 = MutableLiveData<List<String>>()
+    val paramDataList3: MutableLiveData<List<String>> get() = _paramDataList3
+
+    private val _refreshPage = MutableLiveData<Boolean>()
     val refreshPage: MutableLiveData<Boolean> get() = _refreshPage
 
+    private val _loading = MutableLiveData<Boolean>()
+    val loading: MutableLiveData<Boolean> get() = _loading
+
     /**
      * 获取文章数据
      */
@@ -271,6 +278,7 @@ class DebugParamFragmentVM @Inject constructor(private val mRepo: DebugParamFrag
             TAG,
             "setBtnParam: " + plcDebugAddressEnum.aName + ":" + plcDebugAddressEnum.address + ":" + checked
         )
+        loading.value=true
         if (checked) {
             threadDebugParamParam.setBtn(plcDebugAddressEnum.address)
         } else {
@@ -280,19 +288,35 @@ class DebugParamFragmentVM @Inject constructor(private val mRepo: DebugParamFrag
 
     fun disposeData(messageEvent: VBoxMessage) {
         Log.d(TAG, messageEvent.cmd + "messageEvent debug: " + messageEvent.data)
-        when (messageEvent.cmd) {
-            VboxCommand.CMD_IO -> {
+        val getAllParam = messageEvent.data.substring(2, 4)//查询参数指令标志
+        when(getAllParam){
+            "03"->{
+                val data = messageEvent.data.substring(84,86)
+                Log.d(TAG, "调试按钮cmdHeartbeat: "+data)
+                if (!data.equals("00")){
+                    Log.d(TAG, "调试按钮cmdHeartbeat: 关")
+                    threadDebugParamParam.isActiveRstBtn=false
+                    threadDebugParamParam.isActiveSetBtn=false
+                    loading.value=false
+                }
+            }
+            "01"->{
                 cmdHeartbeat(messageEvent)
-                Log.d(TAG,  "messageEvent debug:VboxCommand.CMD_IO " + messageEvent.data)
             }
         }
+//        when (messageEvent.cmd) {
+//            VboxCommand.CMD_IO -> {
+//                cmdHeartbeat(messageEvent)
+//                Log.d(TAG,  "messageEvent debug:VboxCommand.CMD_IO " + messageEvent.data)
+//            }
+//        }
     }
 
     private fun cmdHeartbeat(messageEvent: VBoxMessage) {
         //调试页的内容
-        val getAllParam = messageEvent.data.substring(2, 4)//查询参数指令标志
-        when(getAllParam){
-            "01"->{
+//        val getAllParam = messageEvent.data.substring(2, 4)//查询参数指令标志
+//        when(getAllParam){
+//            "01"->{
                 val getWindSpeed = messageEvent.data.substring(38, 40)//气泵风速
                 updatePumpState(getWindSpeed)
                 val data = messageEvent.data.substring(26, 32)
@@ -301,12 +325,18 @@ class DebugParamFragmentVM @Inject constructor(private val mRepo: DebugParamFrag
                 val split = hexStr2BinStr.split("")
                 updateOtherState(split)
                 val data1 =messageEvent.data.substring(52,58)
+                Log.d(TAG, "心跳cmdHeartbeat1: "+data1)
                 val hexStr2BinStr1 = HexUtils.hexStr2BinStr(data1)
                 val split1 = hexStr2BinStr1.split("")
                 updateOtherState1(split1)
-            }
-            else->{}
-        }
+                val data3=messageEvent.data.substring(58,62)
+                Log.d(TAG, "心跳cmdHeartbeat3: "+data3)
+                val hexStr2BinStr3 = HexUtils.hexStr2BinStr(data3)
+                val split3 = hexStr2BinStr3.split("")
+                updateOtherState3(split3)
+//            }
+//            else->{}
+//        }
 //        _paramDataMap.clear()
 //        for ((index, plcDebugAddressEnum) in mRepo.arrayList.withIndex()) {
 //            _paramDataMap[plcDebugAddressEnum.address] = split[index+1]
@@ -358,4 +388,9 @@ class DebugParamFragmentVM @Inject constructor(private val mRepo: DebugParamFrag
         val cleanedList = lis.filter { it.isNotEmpty() }
         paramDataList1.value = cleanedList
     }
+    // 更新挡片状态
+    fun updateOtherState3(lis: List<String>) {
+        val cleanedList = lis.filter { it.isNotEmpty() }
+        paramDataList3.value = cleanedList
+    }
 }

+ 1 - 1
module_backstage/src/main/res/layout/backstage_activity_setting.xml

@@ -130,7 +130,7 @@
             android:text="1"
             android:textColor="@android:color/white"
             android:textSize="24sp"
-            android:visibility="gone"
+            android:visibility="visible"
             app:layout_constraintEnd_toEndOf="@+id/btn_update_app"
             app:layout_constraintTop_toTopOf="@+id/btn_update_app" />
 

+ 6 - 2
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/BuyFragment.kt

@@ -8,6 +8,7 @@ import android.view.MotionEvent
 import android.view.View
 import androidx.fragment.app.viewModels
 import androidx.navigation.fragment.findNavController
+import com.hboxs.serialport.sbc.SBCHeartbeat
 import com.hboxs.serialport.sbc.VBoxMessage
 import com.hboxs.serialport.sbc.VboxSerialPortSendQueue
 import com.hboxs.serialport.sbc.frame.VboxCommand
@@ -49,7 +50,6 @@ class BuyFragment : BaseFragment<HomeFragmentBuyBinding, BuyFragmentVM>(),
     override fun createVB() = HomeFragmentBuyBinding.inflate(layoutInflater)
 
     override fun HomeFragmentBuyBinding.initView() {
-        restCoin()
         simplePlayerUtil = SimplePlayerUtil(svVideo)
         svVideo.setOnTouchListener(this@BuyFragment)
 
@@ -62,6 +62,9 @@ class BuyFragment : BaseFragment<HomeFragmentBuyBinding, BuyFragmentVM>(),
                 //TODO do something you need
             }
         }
+        if (SBCHeartbeat.initIsSuccess){
+            restCoin()
+        }
 
     }
 
@@ -70,8 +73,9 @@ class BuyFragment : BaseFragment<HomeFragmentBuyBinding, BuyFragmentVM>(),
         when (messageEvent.cmd) {
             VboxCommand.COIN_DATA -> {
                 val coin = messageEvent.data.substring(80, 84)
+                val data = messageEvent.data.substring(2, 4)
                 Log.d(TAG, "测试硬币: " + coin)
-                if (coin == "0000") {
+                if (data=="01"&&coin == "0000") {
                     stopRestCoin()
                 }
             }

+ 0 - 21
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/MakeFragment.kt

@@ -260,14 +260,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
         Log.d(TAG, "deviceState:1 " + messageEvent.data)
         Log.d(TAG, "deviceState:2 " + deviceState)
         when (deviceState) {
-            /*  "00" -> {//刚上电
-
-              }
-
-              "01" -> {//开机中
-
-              }
-  */
             "02" -> {//就绪待机,可以选购或制作下一杯
                 Log.d(TAG, "startSendMake: " + isProcessing + ":" + shoppingCartItems)
                 if (!isProcessing && shoppingCartItems.isNotEmpty()) {
@@ -276,11 +268,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
                     isShowAgainBuyDialog = true
                 }
             }
-            /*
-                        "03" -> {//报警中
-
-                        }*/
-
             "04" -> {//开始制作
                 if (isProcessing) {
                     initProgress()
@@ -302,13 +289,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
                     isProcessing = false // 重置标志位
                 }
             }
-
-            "05" -> {//下玉米完毕
-            }
-
-            "07" -> {//玉米爆开
-            }
-
             "10" -> {//制作完成
                 mBinding.tvProgressDescribe.setText(100.toString() + "%")
                 if (isShowAgainBuyDialog) {
@@ -322,7 +302,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
                     }
                 }
             }
-
             else -> {}
         }
     }

+ 0 - 66
serialport-api/src/main/java/com/hboxs/serialport/plc/thread/ThreadDebugParamParam.kt

@@ -62,72 +62,6 @@ class ThreadDebugParamParam : LifecycleObserver {
     var jobR12: Job? = null
         get() = field
 
-    var isActiveR02: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR03: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR04: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR05: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR06: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR07: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR08: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR09: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR10: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-    var isActiveR11: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-    var isActiveR12: Boolean = true
-        get() = field
-        set(value) {
-            field = value
-        }
-
-
     var jobSetBtn: Job? = null
         get() = field
     var jobRstBtn: Job? = null

+ 1 - 1
serialport-api/src/main/java/com/hboxs/serialport/sbc/VboxSerialPortWriteThread.java

@@ -20,7 +20,7 @@ public class VboxSerialPortWriteThread extends  Thread{
         while (running){
             try {
                 vboxSerialPortSendQueue.startReadListThread();
-                SystemClock.sleep(500);
+                SystemClock.sleep(300);
             } catch (Exception e) {
                 e.printStackTrace();
                 running = false;

+ 4 - 0
serialport-api/src/main/java/com/hboxs/serialport/sbc/frame/VboxCommand.java

@@ -90,6 +90,10 @@ public class VboxCommand {
      */
     public final static String CMD_IO = "CMD_IO";
     /**
+     * 查询后台参数
+     */
+    public final static String CMD_ALL_IO = "CMD_ALL_IO";
+    /**
      * 参数
      */
     public final static String CMD_PARAM = "CMD_PARAM";