|
@@ -14,6 +14,7 @@ import com.google.gson.Gson
|
|
|
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
|
|
@@ -25,6 +26,7 @@ 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.ui.BaseFragment
|
|
|
+import com.quyunshuo.androidbaseframemvvm.common.util.ByteUtils
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.util.LongClickUtils
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
|
|
|
import com.quyunshuo.module.home.R
|
|
@@ -65,7 +67,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
private var isProcessing = false // 标志位,用于确保只执行一次
|
|
|
private var isMakePoc = false
|
|
|
|
|
|
-
|
|
|
override fun HomeFragmentMakeBinding.initView() {
|
|
|
//处理传递过来的商品数据,进行制作、数据保存
|
|
|
val selectPro = arguments?.getString("SELECT_PRO")
|
|
@@ -79,10 +80,10 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
//首先判断是否有做糖数据,如果有则发送指令,如果没有就结束。
|
|
|
if (selectPro != null) {
|
|
|
shoppingCartItems = parseShoppingCartData(selectPro).toMutableList()
|
|
|
-// if (shoppingCartItems.isNotEmpty()) {
|
|
|
-// mViewModel.startSendMake(shoppingCartItems[0].nameChinese)
|
|
|
-// shoppingCartItems.removeAt(0)
|
|
|
-// }
|
|
|
+ if (shoppingCartItems.isNotEmpty()) {
|
|
|
+ mViewModel.startSendMake(shoppingCartItems[0].nameChinese)
|
|
|
+ shoppingCartItems.removeAt(0)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
LongClickUtils.setLongClick(Handler(), ivLogo, 5000, object : View.OnLongClickListener {
|
|
@@ -114,7 +115,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
mBinding.tvFashengqi.text = "$value°C"
|
|
|
}
|
|
|
|
|
|
-
|
|
|
fun getD2Value(s: String) {
|
|
|
when (s) {
|
|
|
PlcD2StatusEnum.D2_2.address -> {
|
|
@@ -167,23 +167,22 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
internal class MyHandler(fragment: Fragment) : Handler(), LifecycleObserver {
|
|
|
var mWeakReference: WeakReference<Fragment> = WeakReference(fragment)
|
|
|
var fragment: MakeFragment = mWeakReference.get() as MakeFragment
|
|
|
override fun handleMessage(msg: android.os.Message) {
|
|
|
- //as用来强转
|
|
|
when (msg.what) {
|
|
|
1 -> {
|
|
|
if (fragment.mBinding!=null) {
|
|
|
if (fragment.isMakePoc) {
|
|
|
+ Log.d("制作测试", "2: ")
|
|
|
fragment.plannedSpeed++
|
|
|
fragment.mBinding.progressView.setCurrentProgress(fragment.plannedSpeed)
|
|
|
val sysTime = System.currentTimeMillis() //获取系统时间
|
|
|
val sysTimeStr =
|
|
|
DateFormat.format("yyyy-MM-dd HH:mm:ss", sysTime) //时间显示格式
|
|
|
fragment.mBinding.tvTime.text = sysTimeStr //更新时间
|
|
|
- fragment.mBinding.tvLutou.text = SBCHeartbeat.headTemp + "°C"
|
|
|
+// fragment.mBinding.tvLutou.text = SBCHeartbeat.headTemp + "°C"
|
|
|
var percentage: Double =
|
|
|
((fragment.plannedSpeed / fragment.mBinding.progressView.maxProgress) * 100).toDouble()
|
|
|
if (percentage >= 100) {
|
|
@@ -199,16 +198,15 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
}
|
|
|
} else {
|
|
|
fragment.plannedSpeed = 1
|
|
|
+ Log.d("制作测试", "3: ")
|
|
|
fragment.mBinding.progressView.setCurrentProgress(fragment.plannedSpeed)
|
|
|
fragment.mBinding.tvProgressDescribe.setText("机器预热中,请耐心等待。。。")
|
|
|
}
|
|
|
-
|
|
|
if (fragment.plannedSpeed >= fragment.mBinding.progressView.maxProgress) {
|
|
|
fragment.jobHandler?.cancel()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|
|
@@ -241,16 +239,19 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
fun event(messageEvent: VBoxMessage) {
|
|
|
XLogUtil.d(messageEvent.cmd + ":messageEvent.data:" + messageEvent.data)
|
|
|
- when (messageEvent.cmd) {
|
|
|
- VboxCommand.CMD_HEARTBEAT -> {
|
|
|
- cmdHeartbeat(messageEvent)
|
|
|
- }
|
|
|
- VboxCommand.COIN_DATA -> {
|
|
|
+ Log.d(TAG, messageEvent.cmd + "制作页面 :messageEvent.data:" + messageEvent.data)
|
|
|
+ val getSign = messageEvent.data.substring(2, 4)
|
|
|
+ when (getSign) {
|
|
|
+ "01" -> {
|
|
|
val coin = messageEvent.data.substring(80, 84)
|
|
|
if (coin == "0000") {
|
|
|
stopRestCoin()
|
|
|
}
|
|
|
- }
|
|
|
+ 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()
|
|
|
+ cmdHeartbeat(messageEvent)
|
|
|
+ }
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|
|
@@ -262,11 +263,11 @@ 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)
|
|
|
+// isProcessing = true // 设置标志位,表示正在处理
|
|
|
isShowAgainBuyDialog = true
|
|
|
- }
|
|
|
+// }
|
|
|
}
|
|
|
"04" -> {//开始制作
|
|
|
if (isProcessing) {
|