|
@@ -15,7 +15,6 @@ import com.google.gson.reflect.TypeToken
|
|
|
import com.hboxs.serialport.plc.DialogClickListener
|
|
|
import com.hboxs.serialport.plc.message.Message
|
|
|
import com.hboxs.serialport.plc.util.HexUtils
|
|
|
-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
|
|
@@ -25,6 +24,7 @@ import com.quyunshuo.androidbaseframemvvm.base.ktx.observeLiveData
|
|
|
import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.bean.ShoppingCartBean
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.constant.Heartbeat
|
|
|
+import com.quyunshuo.androidbaseframemvvm.common.constant.event.ApiMessageEvent
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.util.ByteUtils
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.util.LongClickUtils
|
|
@@ -66,6 +66,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
private var shoppingCartItems: MutableList<ShoppingCartBean> = mutableListOf()
|
|
|
private var isProcessing = false // 标志位,用于确保只执行一次
|
|
|
private var isMakePoc = false
|
|
|
+ private var firstItem: ShoppingCartBean? = null
|
|
|
|
|
|
override fun HomeFragmentMakeBinding.initView() {
|
|
|
//处理传递过来的商品数据,进行制作、数据保存
|
|
@@ -80,10 +81,16 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
//首先判断是否有做糖数据,如果有则发送指令,如果没有就结束。
|
|
|
if (selectPro != null) {
|
|
|
shoppingCartItems = parseShoppingCartData(selectPro).toMutableList()
|
|
|
- if (shoppingCartItems.isNotEmpty()) {
|
|
|
- mViewModel.startSendMake(shoppingCartItems[0].nameChinese)
|
|
|
- shoppingCartItems.removeAt(0)
|
|
|
- }
|
|
|
+ Log.d(TAG, "制作列表: "+shoppingCartItems)
|
|
|
+// if (shoppingCartItems.isNotEmpty()) {
|
|
|
+// mViewModel.startSendMake(shoppingCartItems[0].nameChinese)
|
|
|
+// val item = shoppingCartItems[0]
|
|
|
+// if (item.count > 1) {
|
|
|
+// item.count--
|
|
|
+// } else {
|
|
|
+// shoppingCartItems.removeAt(0)
|
|
|
+// }
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
LongClickUtils.setLongClick(Handler(), ivLogo, 5000, object : View.OnLongClickListener {
|
|
@@ -92,7 +99,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
findNavController.navigate(R.id.home_action_home_makefragment_to_home_homefragment)
|
|
|
return true
|
|
|
}
|
|
|
-
|
|
|
})
|
|
|
//硬币清零
|
|
|
restCoin()
|
|
@@ -159,9 +165,10 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
// 设置叶子对象的属性,例如坐标等
|
|
|
mBinding.progressView.addLeaf(leaf1)
|
|
|
mBinding.progressView.maxProgress = 95f
|
|
|
- jobHandler = CoroutineScope(Dispatchers.IO).launch {
|
|
|
+ jobHandler = CoroutineScope(Dispatchers.Main).launch {
|
|
|
while (true) {
|
|
|
myHandler.sendEmptyMessage(1)
|
|
|
+ Log.d(TAG, "initProgress: 进度条")
|
|
|
delay(1000)
|
|
|
}
|
|
|
}
|
|
@@ -175,7 +182,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
1 -> {
|
|
|
if (fragment.mBinding!=null) {
|
|
|
if (fragment.isMakePoc) {
|
|
|
- Log.d("制作测试", "2: ")
|
|
|
+ Log.d("makefragment", "进度条: " + fragment.plannedSpeed)
|
|
|
fragment.plannedSpeed++
|
|
|
fragment.mBinding.progressView.setCurrentProgress(fragment.plannedSpeed)
|
|
|
val sysTime = System.currentTimeMillis() //获取系统时间
|
|
@@ -197,8 +204,8 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
// }
|
|
|
}
|
|
|
} else {
|
|
|
+ Log.d("makefragment", "initProgress: 进度条")
|
|
|
fragment.plannedSpeed = 1
|
|
|
- Log.d("制作测试", "3: ")
|
|
|
fragment.mBinding.progressView.setCurrentProgress(fragment.plannedSpeed)
|
|
|
fragment.mBinding.tvProgressDescribe.setText("机器预热中,请耐心等待。。。")
|
|
|
}
|
|
@@ -224,11 +231,9 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
Message.Type.ack -> {
|
|
|
mViewModel.ack(messageEvent)
|
|
|
}
|
|
|
-
|
|
|
Message.Type.response -> {
|
|
|
mViewModel.response(messageEvent)
|
|
|
}
|
|
|
-
|
|
|
Message.Type.connected -> {}
|
|
|
Message.Type.disconnected -> {}
|
|
|
Message.Type.sendError -> {}
|
|
@@ -237,6 +242,16 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
}
|
|
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
+ fun event(messageEvent: ApiMessageEvent) {
|
|
|
+ when (messageEvent.name) {
|
|
|
+ "backPrev" -> {
|
|
|
+ val findNavController = findNavController()
|
|
|
+ findNavController.navigate(R.id.home_action_home_makefragment_to_home_homefragment)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
fun event(messageEvent: VBoxMessage) {
|
|
|
XLogUtil.d(messageEvent.cmd + ":messageEvent.data:" + messageEvent.data)
|
|
|
Log.d(TAG, messageEvent.cmd + "制作页面 :messageEvent.data:" + messageEvent.data)
|
|
@@ -249,7 +264,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
}
|
|
|
val overheatState = HexUtils.hexStr2BinStr(messageEvent.data.substring(4, 6))
|
|
|
val split = overheatState.trim().split("")
|
|
|
- mBinding.tvLutou.text = ((split[1].toInt() * 256) + ByteUtils.hexStr2decimal(messageEvent.data.substring(6, 8))).toString()
|
|
|
+ mBinding.tvLutou.text = ((split[1].toInt() * 256) + ByteUtils.hexStr2decimal(messageEvent.data.substring(6, 8))).toString()+"℃"
|
|
|
cmdHeartbeat(messageEvent)
|
|
|
}
|
|
|
else -> {}
|
|
@@ -263,20 +278,24 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
when (deviceState) {
|
|
|
"02" -> {//就绪待机,可以选购或制作下一杯
|
|
|
Log.d(TAG, "startSendMake: " + isProcessing + ":" + shoppingCartItems)
|
|
|
-// if (!isProcessing && shoppingCartItems.isNotEmpty()) {
|
|
|
-// mViewModel.startSendMake(shoppingCartItems[0].nameChinese)
|
|
|
-// isProcessing = true // 设置标志位,表示正在处理
|
|
|
+ if (!isProcessing && shoppingCartItems.isNotEmpty()) {
|
|
|
+ mViewModel.startSendMake(shoppingCartItems[0].nameChinese)
|
|
|
+ Log.d(TAG, "cmdHeartbeat: ")
|
|
|
+ plannedSpeed = 1
|
|
|
+ isProcessing = true // 设置标志位,表示正在处理
|
|
|
isShowAgainBuyDialog = true
|
|
|
-// }
|
|
|
+ }
|
|
|
}
|
|
|
"04" -> {//开始制作
|
|
|
+ isMakePoc = true
|
|
|
+ Log.d(TAG, "initProgress: 进度条: true")
|
|
|
if (isProcessing) {
|
|
|
+ mViewModel.threadHomeParam.stopSendMake()
|
|
|
+ Log.d(TAG, "startMake:stopMake ")
|
|
|
initProgress()
|
|
|
- isMakePoc = true
|
|
|
if (againBuyDialog != null) {
|
|
|
againBuyDialog?.dismiss()
|
|
|
}
|
|
|
- mViewModel.threadHomeParam.stopSendMake()
|
|
|
// 移除购物车中的第一个数据
|
|
|
if (shoppingCartItems.isNotEmpty()) {
|
|
|
val item = shoppingCartItems[0]
|
|
@@ -285,7 +304,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
} else {
|
|
|
shoppingCartItems.removeAt(0)
|
|
|
}
|
|
|
- Log.d(TAG, "Removed first item, remaining items: ${shoppingCartItems.size}")
|
|
|
}
|
|
|
isProcessing = false // 重置标志位
|
|
|
}
|
|
@@ -310,15 +328,19 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
private fun showAgainBuyDialog(isBegin: Int) {
|
|
|
if (againBuyDialog == null) {
|
|
|
againBuyDialog = this@MakeFragment.context?.let { AgainBuyDialog(it) }
|
|
|
+ againBuyDialog?.setCancelable(false)
|
|
|
againBuyDialog?.setListener(object : DialogClickListener {
|
|
|
override fun onClickListener(type: Int, text: String?) {
|
|
|
when (type) {
|
|
|
againBuyDialog?.type1 -> {
|
|
|
againBuyDialog?.dismiss()
|
|
|
val findNavController = findNavController()
|
|
|
- findNavController.navigate(R.id.home_action_home_makefragment_to_home_homefragment)
|
|
|
+ try {
|
|
|
+ findNavController.navigate(R.id.home_action_home_makefragment_to_home_homefragment)
|
|
|
+ }catch (e: IllegalArgumentException){
|
|
|
+ Log.d(TAG, "onClickListener: "+e.message)
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|