Commit 4f3cf08e authored by tongzifang's avatar tongzifang

1.1.4 商米预处理串口

parent 423d4a33
......@@ -30,7 +30,7 @@ android {
}
}
group 'com.qmai.android.zqtoolkit'
version '1.1.2'
version '1.1.3'
gradlePublish {
......
......@@ -8,6 +8,7 @@ import com.qmai.zqtoolkit.base.scale.ScaleBaseAction
import com.qmai.zqtoolkit.base.scale.ScaleBaseKit
import com.qmai.zqtoolkit.config.QmScaleBrand
import com.qmai.zqtoolkit.config.ScaleAppType
import com.qmai.zqtoolkit.config.SunmiPort
import com.qmai.zqtoolkit.utils.ScaleChecker
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
......@@ -93,13 +94,20 @@ object ScaleHub : ScaleBaseAction {
if (connectJob == null) {
connectJob = CoroutineScope(EmptyCoroutineContext)
}
connectJob?.launch(context = Dispatchers.IO) {
scaleKit?.connect(cxt, scale)
if (scaleKit is ZqScaleKit) {
LEDHub.connect()
}
collectConnectData()
//商米机器外接三方称 预处理串口
scale.run {
port = if (scale.appType == ScaleAppType.SHOP_ASSITANT_2B && ScaleChecker.isSUNMI())
SunmiPort.find()
else "ttyS4"
buad = "9600"
}
}
connectJob?.launch(context = Dispatchers.IO) {
scaleKit?.connect(cxt, scale)
if (scaleKit is ZqScaleKit) {
LEDHub.connect()
}
collectConnectData()
}
}
......
package com.qmai.zqtoolkit.config
import com.blankj.utilcode.util.DeviceUtils
import com.qmai.zqtoolkit.utils.ScaleChecker
/**
* tongzi
* 2022/9/7
*/
enum class SunmiPort(
val port: String,
val model: List<String>,
) {
HSL1("ttyHSL1", listOf("d2mini", "t1", "t1mini")),
HSL3("ttyHSL3", listOf("t2", "s1", "t2lite", "x2", "t2mini")),
S1("ttyS1", listOf("n1", "d2", "d1s")),
S3("ttyS3", listOf("n1_d", "d2_d", "d1s_d", "s2cc")),
S0("ttyS0", listOf("d2s_kdS", "d2_2nd"));
companion object {
fun find(): String {
var model =
values().find { it.model.any { mod -> mod == DeviceUtils.getModel().lowercase() } }
return model?.port
?: if (ScaleChecker.isDoubleScreen()) {
S3.port
} else S3.port
}
}
}
\ No newline at end of file
......@@ -2,14 +2,12 @@ package com.qmai.zqtoolkit.utils
import android.content.Context
import android.hardware.display.DisplayManager
import android.hardware.usb.UsbManager
import android.util.Log
import android.view.Display
import com.blankj.utilcode.util.DeviceUtils
import com.blankj.utilcode.util.GsonUtils
import com.blankj.utilcode.util.Utils
import com.qmai.zqtoolkit.ScaleHub
import com.qmai.zqtoolkit.config.ACLAS_PRODUCTID
import com.qmai.zqtoolkit.config.ACLAS_VENDORID
import com.qmai.zqtoolkit.config.*
/**
......@@ -20,10 +18,12 @@ object ScaleChecker {
/**
* 商米电子秤
* model :S2_CC manufacturer : SUNMI
* manufacturer : SUNMI
*/
fun isSUNMI() = DeviceUtils.getManufacturer().lowercase().contains("sunmi")
&& DeviceUtils.getModel().lowercase().contains("s2_cc")
/**
* 中崎电子秤
......@@ -62,4 +62,34 @@ object ScaleChecker {
return ""
}
/**
* 是否有副屏
*/
fun isDoubleScreen(): Boolean {
val mDisplayManager =
Utils.getApp().getSystemService(Context.DISPLAY_SERVICE)
if (mDisplayManager != null) {
(mDisplayManager as DisplayManager).let {
val displays = it.displays
return (displays.size > 1 && getPresentationDisplays(displays) != null)
}
}
return false
}
private fun getPresentationDisplays(displays: Array<Display>?): Display? {
displays?.let {
for (i in it.indices) {
if (it[i].flags and Display.FLAG_SECURE != 0 && it[i]
.flags and Display.FLAG_SUPPORTS_PROTECTED_BUFFERS != 0 && it[i]
.flags and Display.FLAG_PRESENTATION != 0
) {
return it[i]
}
}
}
return null
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment