|
@@ -13,11 +13,13 @@ import com.hboxs.serialport.plc.util.HexUtils
|
|
|
import com.hboxs.serialport.plc.util.HexadecimalUtil
|
|
|
import com.hboxs.serialport.sbc.SBCHeartbeat
|
|
|
import com.hboxs.serialport.sbc.VBoxMessage
|
|
|
+import com.hboxs.serialport.sbc.frame.VboxCommand
|
|
|
import com.hboxs.serialport.sbc.thread.ThreadGlobalParam
|
|
|
import com.hjq.http.EasyHttp
|
|
|
import com.hjq.http.listener.OnDownloadListener
|
|
|
import com.hjq.http.model.HttpMethod
|
|
|
import com.quyunshuo.sbm10.base.BaseApplication.Companion.context
|
|
|
+import com.quyunshuo.sbm10.base.bean.Global
|
|
|
import com.quyunshuo.sbm10.base.utils.SpUtils
|
|
|
import com.quyunshuo.sbm10.common.bean.DataItem
|
|
|
import com.quyunshuo.sbm10.common.bean.LocalAlarmClockBean
|
|
@@ -59,6 +61,7 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
// 报警类型。
|
|
|
private val _alarmType = MutableLiveData<String>()
|
|
|
val alarmType: LiveData<String> get() = _alarmType
|
|
|
+
|
|
|
//强制返回App的携程
|
|
|
fun getVideoRule() {
|
|
|
if (Heartbeat.managerId == "") {
|
|
@@ -85,7 +88,7 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
//存储广告规则 ,用于前台播放。
|
|
|
SpUtils.putString(MMKVName.PLAY_RULE, gson.toJson(list))
|
|
|
//1. 根据id 获取广告信息。
|
|
|
- Log.d(TAG, "getVideoInfo: "+list)
|
|
|
+ Log.d(TAG, "getVideoInfo: " + list)
|
|
|
downVideos.clear()
|
|
|
getvideo()
|
|
|
//2. 获取的信息,通过一个map进行存储。
|
|
@@ -243,7 +246,7 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
"AlarmClock2onNext alarmNumber:$alarmNumber;setAlarmClock: $number"
|
|
|
)
|
|
|
for (i in number until alarmNumber) { //清除所有的闹钟
|
|
|
- AlarmManagerUtil.cancelAlarm(context,AlarmManagerUtil.ALARM_ACTION, i)
|
|
|
+ AlarmManagerUtil.cancelAlarm(context, AlarmManagerUtil.ALARM_ACTION, i)
|
|
|
Log.d(
|
|
|
TAG,
|
|
|
"AlarmClock2onNext alarmNumber:$alarmNumber;setAlarmClock: $i"
|
|
@@ -377,16 +380,30 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
threadGlobalParam.startHeartbeat()
|
|
|
}
|
|
|
|
|
|
+ fun startPreheatOff() {
|
|
|
+ threadGlobalParam.startPreheatOff()
|
|
|
+ }
|
|
|
+
|
|
|
fun disposeData(messageEvent: VBoxMessage) {
|
|
|
- XLogUtil.d(messageEvent.cmd + ":messageEvent.data:" + messageEvent.data)
|
|
|
+ Log.d(TAG, messageEvent.cmd + ":messageEvent.data:" + messageEvent.data)
|
|
|
+ if (messageEvent.cmd == VboxCommand.CMD_IO) {
|
|
|
+ if (messageEvent.data=="PreheatOff"){
|
|
|
+ startPreheatOff()
|
|
|
+ }
|
|
|
+ }
|
|
|
val getSign = messageEvent.data.substring(2, 4)
|
|
|
when (getSign) {
|
|
|
"00" -> {
|
|
|
cmdInit(messageEvent)
|
|
|
}
|
|
|
+
|
|
|
"01" -> {
|
|
|
cmdHeartbeat(messageEvent)
|
|
|
}
|
|
|
+
|
|
|
+ "03" -> {
|
|
|
+ cmdIO(messageEvent)
|
|
|
+ }
|
|
|
// VboxCommand.CMD_BACK_DATA -> {
|
|
|
// cmdBackData(messageEvent)
|
|
|
// threadGlobalParam.stopBackData()
|
|
@@ -396,7 +413,7 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
}
|
|
|
|
|
|
|
|
|
- private var calculateMaterial=false
|
|
|
+ private var calculateMaterial = false
|
|
|
lateinit var materialHashMap: HashMap<String, String>
|
|
|
private var sweet = 0
|
|
|
private var salty = 0
|
|
@@ -404,7 +421,8 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
|
|
|
private fun setMaterialValue() {
|
|
|
val materialValue = SpUtils.getString(MMKVName.MATERIAL_VALUE, MMKVName.MATERIAL_HASHMAP)!!
|
|
|
- materialHashMap = Gson().fromJson(materialValue, object : TypeToken<HashMap<String, String>>() {}.type)
|
|
|
+ materialHashMap =
|
|
|
+ Gson().fromJson(materialValue, object : TypeToken<HashMap<String, String>>() {}.type)
|
|
|
val sweetStr = materialHashMap["sweet"]
|
|
|
sweet = sweetStr?.toInt()!!
|
|
|
val saltyStr = materialHashMap["salty"]
|
|
@@ -414,6 +432,19 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 处理 单片机 按钮IO数据
|
|
|
+ */
|
|
|
+ private fun cmdIO(messageEvent: VBoxMessage) {
|
|
|
+ val data = messageEvent.data.substring(84, 86)
|
|
|
+ Log.d(TAG, "调试按钮cmdHeartbeat: " + data)
|
|
|
+ if (data.equals("05")) {
|
|
|
+ threadGlobalParam.isActivePreheatOff=false
|
|
|
+ threadGlobalParam.stopPreheatOff()
|
|
|
+ Log.d(TAG, "stop:startPreheatOff")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 处理 单片机 心跳数据
|
|
|
*/
|
|
|
private fun cmdHeartbeat(messageEvent: VBoxMessage) {
|
|
@@ -426,24 +457,24 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
}
|
|
|
|
|
|
//这里用于全局计算物料剩余
|
|
|
- if (SpUtils.getBoolean(MMKVName.MATERIAL,true)==true) {
|
|
|
+ if (SpUtils.getBoolean(MMKVName.MATERIAL, true) == true) {
|
|
|
setMaterialValue()
|
|
|
if (SBCHeartbeat.devCode == "04" && Heartbeat.productMaking != "") {
|
|
|
if (!calculateMaterial) {
|
|
|
- if (Heartbeat.productMaking == "E02") {
|
|
|
+ if (Heartbeat.productMaking == "E01") {
|
|
|
sweet -= 40
|
|
|
- } else if (Heartbeat.productMaking == "E01") {
|
|
|
+ } else if (Heartbeat.productMaking == "E02") {
|
|
|
salty -= 40
|
|
|
}
|
|
|
box -= 1
|
|
|
- if (sweet<0){
|
|
|
- sweet=0
|
|
|
+ if (sweet < 0) {
|
|
|
+ sweet = 0
|
|
|
}
|
|
|
- if (salty<0){
|
|
|
- salty=0
|
|
|
+ if (salty < 0) {
|
|
|
+ salty = 0
|
|
|
}
|
|
|
- if (box<0){
|
|
|
- box=0
|
|
|
+ if (box < 0) {
|
|
|
+ box = 0
|
|
|
}
|
|
|
val map = hashMapOf(
|
|
|
"sweet" to sweet.toString(),
|
|
@@ -452,7 +483,7 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
)
|
|
|
SpUtils.putString(MMKVName.MATERIAL_VALUE, Gson().toJson(map))
|
|
|
calculateMaterial = true
|
|
|
- Heartbeat.productMaking=""//清空当前制作的商品标记
|
|
|
+ Heartbeat.productMaking = ""//清空当前制作的商品标记
|
|
|
}
|
|
|
} else {
|
|
|
calculateMaterial = false
|
|
@@ -508,7 +539,7 @@ class GlobalServiceViewModel @Inject constructor(
|
|
|
SBCHeartbeat.devCode = messageEvent.data.substring(0, 2)
|
|
|
//是否保存设备数据了。
|
|
|
SBCHeartbeat.saveDevData = messageEvent.data.substring(2, 4)
|
|
|
- if (SBCHeartbeat.saveDevData.equals("00")){
|
|
|
+ if (SBCHeartbeat.saveDevData.equals("00")) {
|
|
|
_initIsSuccess.value = true
|
|
|
}
|
|
|
//机箱版本号
|