Commit c515388c authored by tongzifang's avatar tongzifang

增加称类型保存

parent 0ebae9e2
...@@ -30,7 +30,7 @@ android { ...@@ -30,7 +30,7 @@ android {
} }
} }
group 'com.qmai.android.zqtoolkit' group 'com.qmai.android.zqtoolkit'
version '1.0.7.10' version '1.0.7.12'
gradlePublish { gradlePublish {
......
package com.qmai.zqtoolkit package com.qmai.zqtoolkit
import com.qmai.zqtoolkit.config.QmScaleType
/** /**
* author : tongzi * author : tongzi
* date : 2022/2/15 14:00 * date : 2022/2/15 14:00
...@@ -9,6 +7,5 @@ import com.qmai.zqtoolkit.config.QmScaleType ...@@ -9,6 +7,5 @@ import com.qmai.zqtoolkit.config.QmScaleType
*/ */
data class ConnectState( data class ConnectState(
val isConnect: Boolean, val isConnect: Boolean,
val msg: String, val msg: String
var qmScaleType: QmScaleType? = null
) )
...@@ -93,8 +93,6 @@ object ScaleHub : ScaleBaseAction { ...@@ -93,8 +93,6 @@ object ScaleHub : ScaleBaseAction {
private suspend fun collectConnectData() { private suspend fun collectConnectData() {
scaleKit?.connectState?.collect { scaleKit?.connectState?.collect {
//在这里补充电子秤类型
it.qmScaleType = scaleKit?.SCALE_TYPE
_connectState.emit(it) _connectState.emit(it)
} }
} }
...@@ -162,6 +160,10 @@ object ScaleHub : ScaleBaseAction { ...@@ -162,6 +160,10 @@ object ScaleHub : ScaleBaseAction {
} }
} }
override fun getLastScale(): ScaleInfo? {
return scaleKit?.getLastScale()
}
override fun stopReadData() { override fun stopReadData() {
scaleKit?.stopReadData() scaleKit?.stopReadData()
LEDHub.clearLED() LEDHub.clearLED()
......
package com.qmai.zqtoolkit
import com.qmai.zqtoolkit.config.QmScaleType
/**
* tongzi
* 2022/6/6
*/
data class ScaleInfo(
var port: String?,
var buad: String?,
var qmScaleType: QmScaleType
)
\ No newline at end of file
...@@ -7,6 +7,7 @@ import com.example.scaler.AclasScaler ...@@ -7,6 +7,7 @@ import com.example.scaler.AclasScaler
import com.example.scaler.AclasScaler.AclasScalerListener import com.example.scaler.AclasScaler.AclasScalerListener
import com.qmai.zqtoolkit.ConnectState import com.qmai.zqtoolkit.ConnectState
import com.qmai.zqtoolkit.LivingWeight import com.qmai.zqtoolkit.LivingWeight
import com.qmai.zqtoolkit.ScaleInfo
import com.qmai.zqtoolkit.base.scale.ScaleBaseKit import com.qmai.zqtoolkit.base.scale.ScaleBaseKit
import com.qmai.zqtoolkit.config.QmScaleType import com.qmai.zqtoolkit.config.QmScaleType
...@@ -18,7 +19,7 @@ object AclasScaleKit : ScaleBaseKit() { ...@@ -18,7 +19,7 @@ object AclasScaleKit : ScaleBaseKit() {
override val TAG: String override val TAG: String
get() = "AclasScaleKit" get() = "AclasScaleKit"
override val SCALE_TYPE: QmScaleType override val SCALE_TYPE: QmScaleType
get() = QmScaleType.ACLAS get() = QmScaleType.ACLAS
private var aclasScaler: AclasScaler? = null private var aclasScaler: AclasScaler? = null
private var aclasScalerListener = object : AclasScalerListener { private var aclasScalerListener = object : AclasScalerListener {
override fun onDisConnected() { override fun onDisConnected() {
...@@ -31,7 +32,7 @@ object AclasScaleKit : ScaleBaseKit() { ...@@ -31,7 +32,7 @@ object AclasScaleKit : ScaleBaseKit() {
override fun onRcvData(weght: AclasScaler.WeightInfoNew?) { override fun onRcvData(weght: AclasScaler.WeightInfoNew?) {
Log.v(TAG, GsonUtils.toJson(weght)) Log.v(TAG, GsonUtils.toJson(weght))
// getTare() // getTare()
updateWeight( updateWeight(
LivingWeight( LivingWeight(
weght?.isStable ?: false, weght.toString().replace(weght?.unit ?: "", ""), weght?.isStable ?: false, weght.toString().replace(weght?.unit ?: "", ""),
...@@ -51,13 +52,20 @@ object AclasScaleKit : ScaleBaseKit() { ...@@ -51,13 +52,20 @@ object AclasScaleKit : ScaleBaseKit() {
} }
override fun connect(cxt: Context?, port: String?, buad: String?) { override fun connect(cxt: Context?, port: String?, buad: String?) {
super.connect(cxt, port, buad)
if (aclasScaler == null) { if (aclasScaler == null) {
cxt?.let { cxt?.let {
aclasScaler = AclasScaler(AclasScaler.Type_SerialPort, it, aclasScalerListener) aclasScaler = AclasScaler(AclasScaler.Type_SerialPort, it, aclasScalerListener)
} }
} }
var truePost = if (port?.contains("USER") == true) port else "ttyUSER0"
lastTryScale?.port = truePost
val aclasConnect = val aclasConnect =
aclasScaler?.AclasConnect("/dev/" + (port ?: "ttyUSER0"), buad?.toInt() ?: 9600, 0) aclasScaler?.AclasConnect(
"/dev/$truePost",
buad?.toInt() ?: 9600,
0
)
Log.v(TAG, "aclasConnect:$aclasConnect") Log.v(TAG, "aclasConnect:$aclasConnect")
} }
......
...@@ -33,6 +33,7 @@ object SunmiScaleKit : ScaleBaseKit() { ...@@ -33,6 +33,7 @@ object SunmiScaleKit : ScaleBaseKit() {
port: String?, port: String?,
buad: String? buad: String?
) { ) {
super.connect(cxt, port, buad)
cxt?.let { cxt?.let {
mScaleManager = ScaleManager.getInstance(it) mScaleManager = ScaleManager.getInstance(it)
mScaleManager?.connectService(object : ScaleServiceConnection { mScaleManager?.connectService(object : ScaleServiceConnection {
......
...@@ -26,6 +26,7 @@ object ZqScaleKit : ScaleBaseKit() { ...@@ -26,6 +26,7 @@ object ZqScaleKit : ScaleBaseKit() {
get() = QmScaleType.ZQEB get() = QmScaleType.ZQEB
private var stableWeight = mutableListOf<String>() private var stableWeight = mutableListOf<String>()
override fun connect(cxt: Context?, port: String?, buad: String?) { override fun connect(cxt: Context?, port: String?, buad: String?) {
super.connect(cxt, port, buad)
val ebConnect = val ebConnect =
zqeb.EB_Connect(String.format("%s:%s", port ?: "ttyS4", buad ?: "9600"), cxt) zqeb.EB_Connect(String.format("%s:%s", port ?: "ttyS4", buad ?: "9600"), cxt)
val msg: String = when (ebConnect) { val msg: String = when (ebConnect) {
......
package com.qmai.zqtoolkit.base.scale package com.qmai.zqtoolkit.base.scale
import android.content.Context import android.content.Context
import com.qmai.zqtoolkit.ScaleInfo
/** /**
* tongzi * tongzi
...@@ -40,4 +41,6 @@ interface ScaleBaseAction { ...@@ -40,4 +41,6 @@ interface ScaleBaseAction {
//是否可用 //是否可用
fun isScaleSuccess(): Boolean fun isScaleSuccess(): Boolean
fun getLastScale(): ScaleInfo?
} }
\ No newline at end of file
package com.qmai.zqtoolkit.base.scale package com.qmai.zqtoolkit.base.scale
import android.content.Context
import com.qmai.zqtoolkit.ConnectState import com.qmai.zqtoolkit.ConnectState
import com.qmai.zqtoolkit.LivingWeight import com.qmai.zqtoolkit.LivingWeight
import com.qmai.zqtoolkit.ScaleHub
import com.qmai.zqtoolkit.ScaleInfo
import com.qmai.zqtoolkit.base.scale.ScaleBaseAction import com.qmai.zqtoolkit.base.scale.ScaleBaseAction
import com.qmai.zqtoolkit.base.scale.ScaleUpdateAction import com.qmai.zqtoolkit.base.scale.ScaleUpdateAction
import com.qmai.zqtoolkit.config.QmScaleType import com.qmai.zqtoolkit.config.QmScaleType
...@@ -19,6 +22,8 @@ abstract class ScaleBaseKit : ScaleBaseAction, ScaleUpdateAction { ...@@ -19,6 +22,8 @@ abstract class ScaleBaseKit : ScaleBaseAction, ScaleUpdateAction {
abstract val TAG: String abstract val TAG: String
abstract val SCALE_TYPE: QmScaleType abstract val SCALE_TYPE: QmScaleType
var lastTryScale: ScaleInfo? = null
private var lastConnectScale: ScaleInfo? = null
val _connectState = MutableSharedFlow<ConnectState>(replay = 1) val _connectState = MutableSharedFlow<ConnectState>(replay = 1)
val connectState: SharedFlow<ConnectState> = _connectState val connectState: SharedFlow<ConnectState> = _connectState
...@@ -27,11 +32,20 @@ abstract class ScaleBaseKit : ScaleBaseAction, ScaleUpdateAction { ...@@ -27,11 +32,20 @@ abstract class ScaleBaseKit : ScaleBaseAction, ScaleUpdateAction {
val livingWeight: SharedFlow<LivingWeight> = _livingWeight val livingWeight: SharedFlow<LivingWeight> = _livingWeight
override fun connect(cxt: Context?, port: String?, buad: String?) {
lastTryScale = ScaleInfo(port, buad, SCALE_TYPE)
}
override fun disconnect() { override fun disconnect() {
stopReadData() stopReadData()
updateState(ConnectState(false,"断开连接")) updateState(ConnectState(false, "断开连接"))
} }
override fun updateState(state: ConnectState) { override fun updateState(state: ConnectState) {
//保存连接成功的配置
if (state.isConnect) {
lastConnectScale = lastTryScale
} else lastTryScale = null
GlobalScope.launch(context = Dispatchers.IO) { GlobalScope.launch(context = Dispatchers.IO) {
_connectState.emit(state) _connectState.emit(state)
} }
...@@ -45,6 +59,10 @@ abstract class ScaleBaseKit : ScaleBaseAction, ScaleUpdateAction { ...@@ -45,6 +59,10 @@ abstract class ScaleBaseKit : ScaleBaseAction, ScaleUpdateAction {
} }
override fun getLastScale(): ScaleInfo? {
return lastConnectScale
}
override fun isScaleSuccess(): Boolean { override fun isScaleSuccess(): Boolean {
return !_connectState.replayCache.isNullOrEmpty() && _connectState.replayCache.last().isConnect return !_connectState.replayCache.isNullOrEmpty() && _connectState.replayCache.last().isConnect
} }
......
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