|
@@ -320,7 +320,7 @@ object BusinessManager {
|
|
|
val testStr = "{\"cardNo\":\"80A8C0F4EA\",\"password\":\"12345678\",\"effectiveTime\":24,\"data\":[{\"taskCode\":\"202401020001\",\"taskId\":\"71b49baa49b343bc84d7e6b829ac1bdc\",\"codeId\":1,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"049648B2E31690\",\"infoRfidNo\":\"04E3BCCA201290\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"0405982414C563\",\"target\":0,\"prevId\":1}]},{\"taskCode\":\"202401020002\",\"taskId\":\"145b5a4cc38c41e19943f4c8b48d12b0\",\"codeId\":2,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"045460F7F4F438\",\"infoRfidNo\":\"04BC6584C65009\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"042B99E449E795\",\"target\":0,\"prevId\":1},{\"dataId\":3,\"equipRfidNo\":\"04A312EE848B62\",\"infoRfidNo\":\"04220E86831289\",\"target\":1,\"prevId\":2}]}],\"lockList\":[{\"lockId\":\"1\",\"rfid\":\"040E21443010E9\"},{\"lockId\":\"2\",\"rfid\":\"0457505E5861C2\"}]}"
|
|
val testStr = "{\"cardNo\":\"80A8C0F4EA\",\"password\":\"12345678\",\"effectiveTime\":24,\"data\":[{\"taskCode\":\"202401020001\",\"taskId\":\"71b49baa49b343bc84d7e6b829ac1bdc\",\"codeId\":1,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"049648B2E31690\",\"infoRfidNo\":\"04E3BCCA201290\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"0405982414C563\",\"target\":0,\"prevId\":1}]},{\"taskCode\":\"202401020002\",\"taskId\":\"145b5a4cc38c41e19943f4c8b48d12b0\",\"codeId\":2,\"dataList\":[{\"dataId\":1,\"equipRfidNo\":\"045460F7F4F438\",\"infoRfidNo\":\"04BC6584C65009\",\"target\":1},{\"dataId\":2,\"equipRfidNo\":\"042B99E449E795\",\"target\":0,\"prevId\":1},{\"dataId\":3,\"equipRfidNo\":\"04A312EE848B62\",\"infoRfidNo\":\"04220E86831289\",\"target\":1,\"prevId\":2}]}],\"lockList\":[{\"lockId\":\"1\",\"rfid\":\"040E21443010E9\"},{\"lockId\":\"2\",\"rfid\":\"0457505E5861C2\"}]}"
|
|
|
// sendTicket(testStr, it.bleDevice, loadingCallBack)
|
|
// sendTicket(testStr, it.bleDevice, loadingCallBack)
|
|
|
Executor.delayOnMain(200) {
|
|
Executor.delayOnMain(200) {
|
|
|
- sendTicket(ticketJson!!, it.bleDevice, loadingCallBack)
|
|
|
|
|
|
|
+ getToken(bleBean, loadingCallBack)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -340,6 +340,33 @@ object BusinessManager {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ fun getToken(bleBean: BleBean?, loadingCallBack: (Boolean, String?) -> Unit) {
|
|
|
|
|
+ loadingCallBack.invoke(true, "开始获取token...")
|
|
|
|
|
+ bleBean?.let {
|
|
|
|
|
+ BleCmdManager.getToken(it.bleDevice.mac, object : CustomBleWriteCallback() {
|
|
|
|
|
+ override fun onPrompt(promptStr: String?) {}
|
|
|
|
|
+
|
|
|
|
|
+ override fun onConnectPrompt(promptStr: String?) {}
|
|
|
|
|
+
|
|
|
|
|
+ override fun onDisConnectPrompt(promptStr: String?) {}
|
|
|
|
|
+
|
|
|
|
|
+ override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
|
|
|
|
|
+ loadingCallBack.invoke(false, "token获取成功")
|
|
|
|
|
+ println("getToken success")
|
|
|
|
|
+ Executor.delayOnMain(500) {
|
|
|
|
|
+ println("haha : $ticketJson")
|
|
|
|
|
+ sendTicket(ticketJson!!, it.bleDevice, loadingCallBack)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ override fun onWriteFailure(exception: BleException?) {
|
|
|
|
|
+ loadingCallBack.invoke(false, "token获取失败")
|
|
|
|
|
+ println("getToken fail")
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
fun sendTicket(jsonStr: String, bleDevice: BleDevice, loadingCallBack: (Boolean, String?) -> Unit) {
|
|
fun sendTicket(jsonStr: String, bleDevice: BleDevice, loadingCallBack: (Boolean, String?) -> Unit) {
|
|
|
loadingCallBack.invoke(true, "开始下发工作票...")
|
|
loadingCallBack.invoke(true, "开始下发工作票...")
|
|
|
BleCmdManager.sendWorkTicket(jsonStr, bleDevice = bleDevice, callback = object : CustomBleWriteCallback() {
|
|
BleCmdManager.sendWorkTicket(jsonStr, bleDevice = bleDevice, callback = object : CustomBleWriteCallback() {
|
|
@@ -370,6 +397,8 @@ object BusinessManager {
|
|
|
LogUtil.e("Token is wrong")
|
|
LogUtil.e("Token is wrong")
|
|
|
}
|
|
}
|
|
|
when {
|
|
when {
|
|
|
|
|
+ // 获取令牌
|
|
|
|
|
+ byteArray.startsWith(BleConst.RSP_GET_TOKEN) -> handleToken(bleBean.bleDevice, byteArray)
|
|
|
// 工作模式切换
|
|
// 工作模式切换
|
|
|
byteArray.startsWith(BleConst.RSP_SWITCH_MODE) -> handleSwitchModeResult(byteArray, loadingCallBack)
|
|
byteArray.startsWith(BleConst.RSP_SWITCH_MODE) -> handleSwitchModeResult(byteArray, loadingCallBack)
|
|
|
// 工作票下发
|
|
// 工作票下发
|
|
@@ -380,6 +409,18 @@ object BusinessManager {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 令牌处理
|
|
|
|
|
+ */
|
|
|
|
|
+ private fun handleToken(bleDevice: BleDevice, byteArray: ByteArray) {
|
|
|
|
|
+ LogUtil.i("handleToken : ${byteArray.toHexStrings()}")
|
|
|
|
|
+ BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
+ it.token = byteArrayOf(byteArray[11], byteArray[12], byteArray[13], byteArray[14])
|
|
|
|
|
+
|
|
|
|
|
+ println("Token 赋值 ${it.token?.toHexStrings()} : ${bleDevice.mac}")
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 工作模式切换结果
|
|
* 工作模式切换结果
|
|
|
* job : 0x01:工作模式 0x02:待机模式
|
|
* job : 0x01:工作模式 0x02:待机模式
|
|
@@ -391,7 +432,7 @@ object BusinessManager {
|
|
|
val res = byteArray[5]
|
|
val res = byteArray[5]
|
|
|
loadingCallBack.invoke(false, null)
|
|
loadingCallBack.invoke(false, null)
|
|
|
if (res == 0x01.toByte() && job == 0x01.toByte()) {
|
|
if (res == 0x01.toByte() && job == 0x01.toByte()) {
|
|
|
-
|
|
|
|
|
|
|
+ loadingCallBack.invoke(false, "切换工作模式成功")
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|