Commit 62b9a8b1 authored by 高英祥's avatar 高英祥

称重相关

parent 51afe8bc
......@@ -113,6 +113,7 @@ class ZqToolActivity : AppCompatActivity() {
ListPort.add("ttyS2")
ListPort.add("ttyS3")
ListPort.add("ttyS4")
ListPort.add("ttyS9")
ListPort.add("ttyUSB0")
ListPort.add("ttyUSB1")
ListPort.add("ttyUSB2")
......
......@@ -17,6 +17,7 @@ buildscript {
url "https://plugins.gradle.org/m2/"
}
maven { url 'https://hub.zmcms.cn/repository/maven-public/' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.1'
......@@ -45,7 +46,7 @@ allprojects {
url "https://plugins.gradle.org/m2/"
}
maven { url 'https://hub.zmcms.cn/repository/maven-public/' }
mavenCentral()
}
}
......
......@@ -63,5 +63,6 @@ dependencies {
implementation files("libs/AclasOS2Sdk.jar")
implementation files("libs/scale-service-part-lib1.2.jar")
api "com.qmai.android.tools:zqdevicesdk:1.0.0@aar"
implementation 'io.github.xmaihh:serialport:2.1.2'
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.content.Context
import android.os.Build
import com.qmai.zqtoolkit.base.AclasScaleKit
import com.qmai.zqtoolkit.base.GiLongScaleKit
import com.qmai.zqtoolkit.base.SllchKit
import com.qmai.zqtoolkit.base.SunmiScaleKit
import com.qmai.zqtoolkit.base.ZqScaleKit
import com.qmai.zqtoolkit.base.scale.ScaleBaseAction
......@@ -54,6 +55,7 @@ object ScaleHub : ScaleBaseAction {
ScaleChecker.isZQ() -> ZqScaleKit
ScaleChecker.isSUNMI_S2CC() -> SunmiScaleKit
ScaleChecker.isAclas() -> AclasScaleKit
ScaleChecker.isSllch() -> SllchKit
else -> ZqScaleKit
}
}
......@@ -96,10 +98,9 @@ object ScaleHub : ScaleBaseAction {
port = if (scale.appType == SHOP_ASSITANT_2B && ScaleChecker.isSUNMI())
SunmiPort.find()
//如果是GILONG (巨隆)
else if (Build.MODEL=="rk3288"){
else if (Build.MODEL == "rk3288") {
"ttyS1"
}
else "ttyS4"
} else "ttyS4"
buad = "9600"
}
}
......@@ -201,5 +202,4 @@ object ScaleHub : ScaleBaseAction {
scaleKit?.stopReadData()
LEDHub.clearLED()
}
}
package com.qmai.zqtoolkit.base
import android.annotation.SuppressLint
import android.content.Context
import android_serialport_api.SerialPortFinder
import com.blankj.utilcode.util.GsonUtils
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.TimeUtils
import com.qmai.zqtoolkit.ConnectState
import com.qmai.zqtoolkit.LivingWeight
import com.qmai.zqtoolkit.ScaleInfo
import com.qmai.zqtoolkit.base.scale.ScaleBaseKit
import com.qmai.zqtoolkit.config.QmScaleBrand
import tp.xmaihh.serialport.SerialHelper
import tp.xmaihh.serialport.bean.ComBean
/**
*@desc
*
*@auth gaoyingxiang
*@time 2024/8/21 17:25
*/
object SllchKit : ScaleBaseKit() {
override val TAG: String
get() = "SllchKit"
override val SCALE_TYPE: QmScaleBrand
get() = QmScaleBrand.SLLCH
override val STABLE_COUNT: Int
get() = 0
override val CONECT_CHECK_COUNT: Int
get() = 4
//归 0
private val cmdZero = byteArrayOf(0x3C, 0x5A, 0x4F, 0x00, 0x00, 0x00, 0x3E)
//去皮
val cmd = byteArrayOf(0x3C, 0x54, 0x4B, 0x00, 0x00, 0x00, 0x3E)
private val serialPortFinder by lazy { SerialPortFinder() }
private var serialHelper: SerialHelper? = null
init {
serialHelper = object : SerialHelper("dev/ttyS9", 9600) {
override fun onDataReceived(comBean: ComBean) {
updateScaleInfo(
"${AclasScaleKit.TAG} :onRcvData " + TimeUtils.getNowString() + " data: " + GsonUtils.toJson(
comBean
)
)
// getTare()
updateWeight(
LivingWeight(
isStable(comBean),
weightKg(comBean),
"kg",
"",
comBean.bRec.isNotEmpty()
)
)
}
}
}
/**
* 是否稳定
*/
fun isStable(comBean: ComBean): Boolean {
return balanceState(
String(comBean.bRec, charset("UTF-8"))
) == "S"
}
/**
* 状态
*/
fun balanceState(strGlo: String): String {
return if (strGlo.isNotEmpty()) {
try {
strGlo.substring(2, 3)
} catch (e: Exception) {
"S"
}
} else {
"S"
}
}
@SuppressLint("DefaultLocale")
fun weightKg(comBean: ComBean): String {
val strGlo = String(comBean.bRec, charset("UTF-8"))
return if (strGlo.isNotEmpty()) {
try {
String.format("%.3f", strGlo.substring(4, 10).toFloat())
} catch (e: Exception) {
"0.000"
}
} else {
"0.000"
}
}
override fun readData() {
try {
serialHelper?.close()
serialHelper?.port = lastTryScale?.port
serialHelper?.baudRate = lastTryScale?.buad?.toInt() ?: 9600
serialHelper?.open()
updateState(ConnectState(true, "打开成功"))
} catch (e: Exception) {
updateState(ConnectState(false, "打开失败"))
}
}
override fun stopReadData() {
}
override fun setZero() {
serialHelper?.send(cmdZero)
}
//去皮
override fun setNetWeight() {
serialHelper?.send(cmd)
}
//去皮
override fun setNetWeightByElec(tare: Double) {
serialHelper?.send(cmd)
}
//清除去皮
override fun clearTare() {
serialHelper?.send(cmdZero)
}
//电子秤获取配置
override fun getParameter(): Array<String> {
return serialPortFinder.allDevicesPath
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.qmai.zqtoolkit.config
import com.qmai.zqtoolkit.base.AclasScaleKit
import com.qmai.zqtoolkit.base.GiLongScaleKit
import com.qmai.zqtoolkit.base.SllchKit
import com.qmai.zqtoolkit.base.SunmiScaleKit
import com.qmai.zqtoolkit.base.ZqScaleKit
import com.qmai.zqtoolkit.base.scale.ScaleBaseKit
......@@ -13,7 +14,7 @@ import com.qmai.zqtoolkit.base.scale.ScaleBaseKit
enum class QmScaleBrand(
val brand: String,
) {
SUNMI("商米"), ZQEB("中崎"), ACLAS("顶尖"), GILONG("巨隆");
SUNMI("商米"), ZQEB("中崎"), ACLAS("顶尖"), GILONG("巨隆"), SLLCH("十六俩椿华");
companion object {
fun list(): List<QmScaleBrandValue> {
......@@ -26,6 +27,7 @@ enum class QmScaleBrand(
AclasScaleKit -> QmScaleBrandValue(ACLAS)
SunmiScaleKit -> QmScaleBrandValue(SUNMI)
GiLongScaleKit -> QmScaleBrandValue(GILONG)
SllchKit -> QmScaleBrandValue(SLLCH)
else -> null
}
}
......
......@@ -55,6 +55,13 @@ object ScaleChecker {
return false
}
/**
* 十六两春华
*/
fun isSllch(): Boolean = DeviceUtils.getManufacturer().lowercase().contains("rockchip")
&& (DeviceUtils.getModel().lowercase().contains("rk3568_r") || DeviceUtils.getModel()
.lowercase().contains("rk3568"))
/**
* 查找顶尖称的USB名称
*/
......
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