Commit 4f3cf08e authored by tongzifang's avatar tongzifang

1.1.4 商米预处理串口

parent 423d4a33
...@@ -30,7 +30,7 @@ android { ...@@ -30,7 +30,7 @@ android {
} }
} }
group 'com.qmai.android.zqtoolkit' group 'com.qmai.android.zqtoolkit'
version '1.1.2' version '1.1.3'
gradlePublish { gradlePublish {
......
...@@ -8,6 +8,7 @@ import com.qmai.zqtoolkit.base.scale.ScaleBaseAction ...@@ -8,6 +8,7 @@ import com.qmai.zqtoolkit.base.scale.ScaleBaseAction
import com.qmai.zqtoolkit.base.scale.ScaleBaseKit import com.qmai.zqtoolkit.base.scale.ScaleBaseKit
import com.qmai.zqtoolkit.config.QmScaleBrand import com.qmai.zqtoolkit.config.QmScaleBrand
import com.qmai.zqtoolkit.config.ScaleAppType import com.qmai.zqtoolkit.config.ScaleAppType
import com.qmai.zqtoolkit.config.SunmiPort
import com.qmai.zqtoolkit.utils.ScaleChecker import com.qmai.zqtoolkit.utils.ScaleChecker
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
...@@ -93,13 +94,20 @@ object ScaleHub : ScaleBaseAction { ...@@ -93,13 +94,20 @@ object ScaleHub : ScaleBaseAction {
if (connectJob == null) { if (connectJob == null) {
connectJob = CoroutineScope(EmptyCoroutineContext) connectJob = CoroutineScope(EmptyCoroutineContext)
} }
connectJob?.launch(context = Dispatchers.IO) { //商米机器外接三方称 预处理串口
scaleKit?.connect(cxt, scale) scale.run {
if (scaleKit is ZqScaleKit) { port = if (scale.appType == ScaleAppType.SHOP_ASSITANT_2B && ScaleChecker.isSUNMI())
LEDHub.connect() SunmiPort.find()
} else "ttyS4"
collectConnectData() 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 ...@@ -2,14 +2,12 @@ package com.qmai.zqtoolkit.utils
import android.content.Context import android.content.Context
import android.hardware.display.DisplayManager
import android.hardware.usb.UsbManager import android.hardware.usb.UsbManager
import android.util.Log import android.view.Display
import com.blankj.utilcode.util.DeviceUtils import com.blankj.utilcode.util.DeviceUtils
import com.blankj.utilcode.util.GsonUtils
import com.blankj.utilcode.util.Utils import com.blankj.utilcode.util.Utils
import com.qmai.zqtoolkit.ScaleHub import com.qmai.zqtoolkit.config.*
import com.qmai.zqtoolkit.config.ACLAS_PRODUCTID
import com.qmai.zqtoolkit.config.ACLAS_VENDORID
/** /**
...@@ -20,10 +18,12 @@ object ScaleChecker { ...@@ -20,10 +18,12 @@ object ScaleChecker {
/** /**
* 商米电子秤 * 商米电子秤
* model :S2_CC manufacturer : SUNMI * manufacturer : SUNMI
*/ */
fun isSUNMI() = DeviceUtils.getManufacturer().lowercase().contains("sunmi") fun isSUNMI() = DeviceUtils.getManufacturer().lowercase().contains("sunmi")
&& DeviceUtils.getModel().lowercase().contains("s2_cc")
/** /**
* 中崎电子秤 * 中崎电子秤
...@@ -62,4 +62,34 @@ object ScaleChecker { ...@@ -62,4 +62,34 @@ object ScaleChecker {
return "" 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