联调优化

This commit is contained in:
马增飞
2025-11-12 20:14:37 +08:00
parent 32ea2f1379
commit 10059bf4f6
7 changed files with 77 additions and 17 deletions
@@ -77,7 +77,7 @@ class HomeActivity : BaseActivity() {
const val DEVICE_INFO_CMD = "${HEADER}0301000000000000000000000000${FOOTER}" const val DEVICE_INFO_CMD = "${HEADER}0301000000000000000000000000${FOOTER}"
//const val START_CMD= "${HEADER}0F01360000${FOOTER}" //const val START_CMD= "${HEADER}0F01360000${FOOTER}"
const val START_CMD= "${HEADER}0F01050020${FOOTER}" //const val START_CMD= "${HEADER}0F01050020${FOOTER}"
const val ACTIVE_CMD = const val ACTIVE_CMD =
"${HEADER}000281C5D70A7D428948AD7254FADBB1516738938B4B9CBD73673E9D8E7F2E15062D${FOOTER}" "${HEADER}000281C5D70A7D428948AD7254FADBB1516738938B4B9CBD73673E9D8E7F2E15062D${FOOTER}"
@@ -112,7 +112,7 @@ class HomeActivity : BaseActivity() {
setBackground() setBackground()
setContentView(binding.root) setContentView(binding.root)
updateLeftStatus("1-1冷藏柜 -°C / -%") updateLeftStatus("-°C / -%")
initRecyclerView() initRecyclerView()
@@ -226,6 +226,7 @@ class HomeActivity : BaseActivity() {
loadEmptyView() loadEmptyView()
return return
} }
deviceName = data.data.deviceName
App.canteenId = data.data.placeId App.canteenId = data.data.placeId
val tempList = data.data.containerGoodsList val tempList = data.data.containerGoodsList
if (tempList.isNullOrEmpty()) { if (tempList.isNullOrEmpty()) {
@@ -301,8 +302,12 @@ class HomeActivity : BaseActivity() {
//获取设备状态 //获取设备状态
getDeviceInfo(data) getDeviceInfo(data)
} }
"1001","1002" -> { "1001" -> {
Log.d(TAG, "receiveSerialPortData,温控信息上报数据:${data}") Log.d(TAG, "receiveSerialPortData,温控信息上报数据:${data}")
runOnUiThread { toast("温控信息上报数据:${data}") }
}
"1002" -> {
Log.d(TAG, "receiveSerialPortData,温控信息上报1002数据:${data}")
} }
"0F02" -> { "0F02" -> {
Log.d(TAG, "receiveSerialPortData,温控信息应答数据:${data}") Log.d(TAG, "receiveSerialPortData,温控信息应答数据:${data}")
@@ -358,14 +363,16 @@ class HomeActivity : BaseActivity() {
val tempC = f2C(temperature.toDouble()) val tempC = f2C(temperature.toDouble())
showTemperatureC = "%.1f".format(tempC) showTemperatureC = "%.1f".format(tempC)
val percent = 10 * list.count { it.goodsName.isNullOrBlank().not() } //val percent = 10 * list.count { it.goodsName.isNullOrBlank().not() }
updateLeftStatus("1-1冷藏柜 [$temperatureHex] ${showTemperatureC}°C / ${percent}%") updateLeftStatus("${deviceName} [$temperatureHex] ${showTemperatureC}°C / -%")
}.onFailure { }.onFailure {
it.printStackTrace() it.printStackTrace()
} }
} }
private var deviceName = ""
private fun getWeightInfo(start: Int, end: Int, data: String) { private fun getWeightInfo(start: Int, end: Int, data: String) {
var index = 1 var index = 1
var count = start var count = start
@@ -416,14 +423,19 @@ class HomeActivity : BaseActivity() {
val weightStartIndex = HEADER.length + 14 val weightStartIndex = HEADER.length + 14
val temperatureStartIndex = weightStartIndex + 12 * 8 val temperatureStartIndex = weightStartIndex + 12 * 8
val temperatureEndIndex = temperatureStartIndex + 2 val temperatureEndIndex = temperatureStartIndex + 2
val temperatureHex = data.substring(temperatureStartIndex, temperatureEndIndex) val temperatureHex = try {
data.substring(temperatureStartIndex, temperatureEndIndex)
} catch (e: Exception) {
e.printStackTrace()
return
}
val temperature = hexToDec(temperatureHex) val temperature = hexToDec(temperatureHex)
val tempC = f2C(temperature.toDouble()) val tempC = f2C(temperature.toDouble())
showTemperatureC = "%.1f".format(tempC) showTemperatureC = "%.1f".format(tempC)
val percent = 10 * list.count { it.goodsName.isNullOrBlank().not() } //val percent = 10 * list.count { it.goodsName.isNullOrBlank().not() }
updateLeftStatus("1-1冷藏柜 ${showTemperatureC}°C / ${percent}%") updateLeftStatus("${deviceName} ${showTemperatureC}°C / -%")
getWeightInfo( getWeightInfo(
start = weightStartIndex, start = weightStartIndex,
@@ -467,8 +479,8 @@ class HomeActivity : BaseActivity() {
goodsId = model.goodsId goodsId = model.goodsId
goodsName = model.goodsName goodsName = model.goodsName
weight = model.weight weight = model.weight
if (model.createTime.isNullOrBlank().not()) { if (model.putCabinetDay.isNullOrBlank().not()) {
createTime = model.createTime putCabinetDay = model.putCabinetDay
} }
} }
notifyItemChanged(position) notifyItemChanged(position)
@@ -545,7 +557,8 @@ class HomeActivity : BaseActivity() {
binding.include?.let { binding.include?.let {
it.root.visible() it.root.visible()
it.root.setOnClickListener { it.root.setOnClickListener {
viewModel.getAccessToken(App.deviceId) //viewModel.getAccessToken(App.deviceId)
viewModel.getShelfList(deviceId = App.deviceId)
} }
it.ivEmptyIcon.setImageResource(R.drawable.ic_empty_white) it.ivEmptyIcon.setImageResource(R.drawable.ic_empty_white)
it.tvEmptyContent.setTextColor(Color.WHITE) it.tvEmptyContent.setTextColor(Color.WHITE)
@@ -26,6 +26,9 @@ class SettingActivity: BaseActivity() {
if (cmd.isBlank()) { if (cmd.isBlank()) {
return@setOnClickListener return@setOnClickListener
} }
var record = binding.tvCmdRecord.text.toString().trim()
record = cmd+"\n"+record
binding.tvCmdRecord.text = record
val realCmd = "${HomeActivity.HEADER}0F01${cmd}${HomeActivity.FOOTER}" val realCmd = "${HomeActivity.HEADER}0F01${cmd}${HomeActivity.FOOTER}"
lifecycleScope.launch { lifecycleScope.launch {
SerialPortManager.send(realCmd) SerialPortManager.send(realCmd)
@@ -128,7 +128,7 @@ class ShelfActivity : BaseActivity() {
weight = realWeight.toDouble(), weight = realWeight.toDouble(),
overdueDay = list[clickIndex].overdueDay, overdueDay = list[clickIndex].overdueDay,
// createTime = if (shelfModel?.goodsId == currentGoodsId) null else DateTimeUtil.formatDateTime(dateTime = Date()) // createTime = if (shelfModel?.goodsId == currentGoodsId) null else DateTimeUtil.formatDateTime(dateTime = Date())
createTime = DateTimeUtil.formatDateTime(dateTime = Date()) putCabinetDay = DateTimeUtil.formatDateTime(dateTime = Date())
) )
val intent = Intent().apply { val intent = Intent().apply {
putExtra(SHELF_MODEL, data) putExtra(SHELF_MODEL, data)
@@ -364,7 +364,7 @@ class ShelfActivity : BaseActivity() {
val weight = event.weight val weight = event.weight
binding.tvFoodWeight.text = if(weight < 1000) "${weight}" else "%.3f千克".format(weight/1000.0) binding.tvFoodWeight.text = if(weight < 1000) "${weight}" else "%.3f千克".format(weight/1000.0)
startTime = System.currentTimeMillis() startTime = System.currentTimeMillis()
window.decorView.postDelayed({ Loading.dismiss() }, 1000) window.decorView.postDelayed({ Loading.dismiss() }, 2000)
} }
} }
@@ -35,14 +35,15 @@ class ShelfAdapter(list: MutableList<ShelfModel>) :
override fun onBindViewHolder(holder: VH, position: Int, item: ShelfModel?) { override fun onBindViewHolder(holder: VH, position: Int, item: ShelfModel?) {
val shelfNo = item!!.deviceNo val shelfNo = item!!.deviceNo
item.shelfName = "货架-${if (shelfNo < 10) "0${shelfNo}" else "$shelfNo"}" //货架-
item.shelfName = "${if (shelfNo < 10) "0${shelfNo}" else "$shelfNo"}"
val weight = item.weight ?: 0.0 val weight = item.weight ?: 0.0
val binding = holder.binding val binding = holder.binding
if (item.overdueDay.isNullOrBlank()) { if (item.overdueDay.isNullOrBlank()) {
binding.ivStaleFood.gone() binding.ivStaleFood.gone()
} else { } else {
runCatching { runCatching {
val shelfDate = stringToDate(item.createTime) val shelfDate = stringToDate(item.putCabinetDay)
if (shelfDate == null) { if (shelfDate == null) {
binding.ivStaleFood.gone() binding.ivStaleFood.gone()
} else { } else {
@@ -103,7 +104,7 @@ class ShelfAdapter(list: MutableList<ShelfModel>) :
// } // }
binding.tvStoreDate.run { binding.tvStoreDate.run {
setTextColor(getColor(R.color.black999)) setTextColor(getColor(R.color.black999))
text = item.createTime text = item.putCabinetDay
} }
} }
@@ -12,6 +12,8 @@ data class ShelfModel(
var weight: Double? = null, var weight: Double? = null,
var weightBak: Double? = null, var weightBak: Double? = null,
var createTime: String? = null, var createTime: String? = null,
var putCabinetDay: String? = null,
var updateTime: String? = null,
var overdueDay: String? = null, var overdueDay: String? = null,
var temperature: String? = null, var temperature: String? = null,
var humidity: String = "0", var humidity: String = "0",
@@ -3,5 +3,6 @@ package com.shuwei.intelligent.shelves.model
data class ShelfResult( data class ShelfResult(
val placeId: String = "", val placeId: String = "",
val canteenName: String = "", val canteenName: String = "",
val deviceName: String = "",
val containerGoodsList: List<ShelfModel>? = null val containerGoodsList: List<ShelfModel>? = null
) )
+41 -1
View File
@@ -49,11 +49,20 @@
</FrameLayout> </FrameLayout>
<EditText <EditText
android:id="@+id/etInputCmd" android:id="@+id/etInputCmdPrefix"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="60dp" android:layout_height="60dp"
android:hint="请输入命令" android:hint="请输入命令"
android:maxLines="1" android:maxLines="1"
android:text=""
android:textSize="22sp" />
<EditText
android:id="@+id/etInputCmd"
android:layout_width="match_parent"
android:layout_height="60dp"
android:hint="请输入命令内容"
android:maxLines="1"
android:textSize="22sp" /> android:textSize="22sp" />
<Button <Button
@@ -66,6 +75,37 @@
android:text="发送命令" /> android:text="发送命令" />
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="6dp"
app:cardElevation="0dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/tvCmdRecord"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20sp"
android:text=""/>
</LinearLayout>
</ScrollView>
</com.google.android.material.card.MaterialCardView>
</LinearLayout> </LinearLayout>