|
@@ -2,6 +2,7 @@ package com.grkj.iscs.ble
|
|
|
|
|
|
|
|
import com.clj.fastble.data.BleDevice
|
|
import com.clj.fastble.data.BleDevice
|
|
|
import com.clj.fastble.exception.BleException
|
|
import com.clj.fastble.exception.BleException
|
|
|
|
|
+import com.grkj.iscs.BusinessManager
|
|
|
import com.grkj.iscs.extentions.crc16
|
|
import com.grkj.iscs.extentions.crc16
|
|
|
import com.grkj.iscs.extentions.startsWith
|
|
import com.grkj.iscs.extentions.startsWith
|
|
|
import com.grkj.iscs.extentions.toByteArray
|
|
import com.grkj.iscs.extentions.toByteArray
|
|
@@ -100,7 +101,7 @@ object BleCmdManager {
|
|
|
*/
|
|
*/
|
|
|
fun getToken(mac: String?, callback: CustomBleWriteCallback?) {
|
|
fun getToken(mac: String?, callback: CustomBleWriteCallback?) {
|
|
|
LogUtil.i("$mac")
|
|
LogUtil.i("$mac")
|
|
|
- BleUtil.instance?.getBleDeviceByMac(mac)?.bleDevice?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(mac)?.bleDevice?.let {
|
|
|
LogUtil.i("Get token : $mac")
|
|
LogUtil.i("Get token : $mac")
|
|
|
BleUtil.instance?.write(it, cmd = assembleTimeStamp(REQ_GET_TOKEN), writeCallback = callback)
|
|
BleUtil.instance?.write(it, cmd = assembleTimeStamp(REQ_GET_TOKEN), writeCallback = callback)
|
|
|
}
|
|
}
|
|
@@ -111,7 +112,7 @@ object BleCmdManager {
|
|
|
*/
|
|
*/
|
|
|
private fun handleToken(bleDevice: BleDevice, byteArray: ByteArray) {
|
|
private fun handleToken(bleDevice: BleDevice, byteArray: ByteArray) {
|
|
|
LogUtil.i("handleToken : ${byteArray.toHexStrings()}")
|
|
LogUtil.i("handleToken : ${byteArray.toHexStrings()}")
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
it.token = byteArrayOf(byteArray[11], byteArray[12], byteArray[13], byteArray[14])
|
|
it.token = byteArrayOf(byteArray[11], byteArray[12], byteArray[13], byteArray[14])
|
|
|
|
|
|
|
|
println("Token 赋值 ${it.token?.toHexStrings()} : ${bleDevice.mac}")
|
|
println("Token 赋值 ${it.token?.toHexStrings()} : ${bleDevice.mac}")
|
|
@@ -124,7 +125,7 @@ object BleCmdManager {
|
|
|
* @param mode 0x01:工作模式 0x02:待机模式
|
|
* @param mode 0x01:工作模式 0x02:待机模式
|
|
|
*/
|
|
*/
|
|
|
fun switchMode(mode: ByteArray, bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
fun switchMode(mode: ByteArray, bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_SWITCH_MODE + mode), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_SWITCH_MODE + mode), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -145,7 +146,7 @@ object BleCmdManager {
|
|
|
*/
|
|
*/
|
|
|
fun sendWorkTicket(json: String, idx: Int = 0, bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
fun sendWorkTicket(json: String, idx: Int = 0, bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
|
LogUtil.i("sendWorkTicket : $idx")
|
|
LogUtil.i("sendWorkTicket : $idx")
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
it.ticketSend = json
|
|
it.ticketSend = json
|
|
|
}
|
|
}
|
|
|
val totalLength = json.toByteArray().size
|
|
val totalLength = json.toByteArray().size
|
|
@@ -164,7 +165,7 @@ object BleCmdManager {
|
|
|
|
|
|
|
|
val cmd = REQ_SEND_WORK_TICKET + (jsonInfo.size + 1).toByteArray(1) + 0x02.toByteArray(1) + jsonInfo
|
|
val cmd = REQ_SEND_WORK_TICKET + (jsonInfo.size + 1).toByteArray(1) + 0x02.toByteArray(1) + jsonInfo
|
|
|
|
|
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, cmd), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, cmd), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -190,7 +191,7 @@ object BleCmdManager {
|
|
|
if (res == 0x00.toByte() || res == 0x02.toByte()) {
|
|
if (res == 0x00.toByte() || res == 0x02.toByte()) {
|
|
|
// TODO 要判断res
|
|
// TODO 要判断res
|
|
|
sendWorkTicket(
|
|
sendWorkTicket(
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleBean.bleDevice.mac)?.ticketSend!!,
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleBean.bleDevice.mac)?.ticketSend!!,
|
|
|
if (res == 0x00.toByte()) idx + 1 else idx,
|
|
if (res == 0x00.toByte()) idx + 1 else idx,
|
|
|
bleBean.bleDevice,
|
|
bleBean.bleDevice,
|
|
|
object : CustomBleWriteCallback() {
|
|
object : CustomBleWriteCallback() {
|
|
@@ -210,7 +211,7 @@ object BleCmdManager {
|
|
|
* 获取设备当前状态
|
|
* 获取设备当前状态
|
|
|
*/
|
|
*/
|
|
|
fun getCurrentStatus(bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
fun getCurrentStatus(bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_CURRENT_STATUS), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_CURRENT_STATUS), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -239,7 +240,7 @@ object BleCmdManager {
|
|
|
* 获取工作票完成情况
|
|
* 获取工作票完成情况
|
|
|
*/
|
|
*/
|
|
|
fun getTicketStatus(bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
fun getTicketStatus(bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_WORK_TICKET_RESULT), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_WORK_TICKET_RESULT), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -257,7 +258,7 @@ object BleCmdManager {
|
|
|
val size = byteArray[10].toUByte() + byteArray[11].toUByte()
|
|
val size = byteArray[10].toUByte() + byteArray[11].toUByte()
|
|
|
println("工作票数据 : $total : $idx : $size")
|
|
println("工作票数据 : $total : $idx : $size")
|
|
|
// 数据组装
|
|
// 数据组装
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
it.ticketStatus += byteArray.copyOfRange(12, 12 + size.toInt())
|
|
it.ticketStatus += byteArray.copyOfRange(12, 12 + size.toInt())
|
|
|
}
|
|
}
|
|
|
// TODO 缺少res处理
|
|
// TODO 缺少res处理
|
|
@@ -272,7 +273,7 @@ object BleCmdManager {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
} else {
|
|
} else {
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
println("工作票完成接收 : ${String(it.ticketStatus)}")
|
|
println("工作票完成接收 : ${String(it.ticketStatus)}")
|
|
|
// TODO 清空ticket
|
|
// TODO 清空ticket
|
|
|
it.ticketStatus = byteArrayOf()
|
|
it.ticketStatus = byteArrayOf()
|
|
@@ -284,7 +285,7 @@ object BleCmdManager {
|
|
|
* 获取工作票完成情况分包
|
|
* 获取工作票完成情况分包
|
|
|
*/
|
|
*/
|
|
|
private fun getTicketStatusPart(idx: ByteArray, total: ByteArray, res: ByteArray, bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
private fun getTicketStatusPart(idx: ByteArray, total: ByteArray, res: ByteArray, bleDevice: BleDevice, callback: CustomBleWriteCallback?) {
|
|
|
- BleUtil.instance?.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(bleDevice.mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_WORK_TICKET_RESULT_PART + idx + total + res), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_WORK_TICKET_RESULT_PART + idx + total + res), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -293,7 +294,7 @@ object BleCmdManager {
|
|
|
* 获取钥匙电量
|
|
* 获取钥匙电量
|
|
|
*/
|
|
*/
|
|
|
fun getPower(mac: String?, callback: CustomBleWriteCallback?) {
|
|
fun getPower(mac: String?, callback: CustomBleWriteCallback?) {
|
|
|
- BleUtil.instance?.getBleDeviceByMac(mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_POWER_STATUS), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_POWER_STATUS), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -337,7 +338,7 @@ object BleCmdManager {
|
|
|
Executor.runOnIO {
|
|
Executor.runOnIO {
|
|
|
LogUtil.i("sendFile : $idx")
|
|
LogUtil.i("sendFile : $idx")
|
|
|
|
|
|
|
|
- BleUtil.instance?.getBleDeviceByMac(mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(mac)?.let {
|
|
|
it.fileSend = file
|
|
it.fileSend = file
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -367,7 +368,7 @@ object BleCmdManager {
|
|
|
val cmd = REQ_TRANSFER_FILE + (fileInfo.size + 1).toByteArray(1) + 0x01.toByteArray(1) + fileInfo
|
|
val cmd = REQ_TRANSFER_FILE + (fileInfo.size + 1).toByteArray(1) + 0x01.toByteArray(1) + fileInfo
|
|
|
// println("cmd size : ${REQ_TRANSFER_FILE.size} : ${(fileInfo.size + 1).toByteArray(1).size} : ${0x01.toByteArray(1).size} : ${fileInfo.size}")
|
|
// println("cmd size : ${REQ_TRANSFER_FILE.size} : ${(fileInfo.size + 1).toByteArray(1).size} : ${0x01.toByteArray(1).size} : ${fileInfo.size}")
|
|
|
|
|
|
|
|
- BleUtil.instance?.getBleDeviceByMac(mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, writeUUID = WRITE_UUID, cmd = assembleData(it, cmd), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, writeUUID = WRITE_UUID, cmd = assembleData(it, cmd), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
Thread.sleep(50)
|
|
Thread.sleep(50)
|
|
@@ -410,7 +411,7 @@ object BleCmdManager {
|
|
|
* 获取版本
|
|
* 获取版本
|
|
|
*/
|
|
*/
|
|
|
fun getVersion(mac: String?, callback: CustomBleWriteCallback?) {
|
|
fun getVersion(mac: String?, callback: CustomBleWriteCallback?) {
|
|
|
- BleUtil.instance?.getBleDeviceByMac(mac)?.let {
|
|
|
|
|
|
|
+ BusinessManager.getBleDeviceByMac(mac)?.let {
|
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_GET_VERSION), writeCallback = callback)
|
|
BleUtil.instance?.write(it.bleDevice, cmd = assembleData(it, REQ_GET_VERSION), writeCallback = callback)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|