Commit 22694b44ad3f523a43783c4fd883bc3f5ee03165

Authored by daifengyi
1 parent 2db9fbc3

feat:default response data parse

HDFwear/Tools/BluetoothManager.swift
... ... @@ -1226,6 +1226,32 @@ class BluetoothManager: NSObject {
1226 1226 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
1227 1227 }
1228 1228  
  1229 + //MARK: - 新解析数据
  1230 + private func newParseDefaultResponseData(_ bytes: [UInt8]) {
  1231 + guard bytes.count == 17, bytes[9] == 5 else {
  1232 + return
  1233 + }
  1234 + let newcmd = NewCmd(rawValue: bytes[13])
  1235 + switch newcmd {
  1236 + case .setTime:
  1237 + if setCmdClosure != nil {
  1238 + let success = bytes[14] == 0
  1239 + if success {
  1240 + setCmdClosure?(nil)
  1241 + }else {
  1242 + setCmdClosure?((Int)(bytes[14]))
  1243 + }
  1244 + setCmdClosure = nil
  1245 + }
  1246 + case .none:
  1247 + break
  1248 + }
  1249 +
  1250 + }
  1251 +
  1252 +
  1253 + //MARK: - 发送数据
  1254 +
1229 1255 private func sendData(_ data: Data) {
1230 1256 if peripheral == nil {
1231 1257 print("peripheral == nil")
... ... @@ -1552,7 +1578,7 @@ extension BluetoothManager: ClientProfileDelegate {
1552 1578 }
1553 1579 }
1554 1580 case BLEConfig.ReadUUID:
1555   -// print("?????????????\([UInt8](data))")
  1581 + print("?????????????\([UInt8](data))")
1556 1582 mergeData(data)
1557 1583 default:
1558 1584 mergeData(data)
... ... @@ -1563,19 +1589,20 @@ extension BluetoothManager: ClientProfileDelegate {
1563 1589 let bytes = [UInt8](data)
1564 1590 print(bytes)
1565 1591 isSyncReceived = true
1566   - if bytes[0] == 0xBA && (bytes[1] == 48 || bytes[1] == 112) {
1567   - if bytes.count > 10, BleCmd(rawValue: bytes[8]) == .sync {
1568   - if isSync {
1569   - if SyncCmd(rawValue: bytes[10]) != isSyncCmd {
1570   - syncReceiveFail()
1571   - } else {
1572   - isNextSync = bytes[1] == 112
1573   - startSyncTimer()
1574   - isSyncReceived = true
1575   - }
1576   - }
1577   - }
1578   - totalLength = Int(UInt16(bytes[6]) << 8 | UInt16(bytes[7])) + 8
  1592 + if bytes[0] == 0xED && bytes[1] == 0x7E {
  1593 +// if bytes.count > 10, BleCmd(rawValue: bytes[8]) == .sync {
  1594 +// if isSync {
  1595 +// if SyncCmd(rawValue: bytes[10]) != isSyncCmd {
  1596 +// syncReceiveFail()
  1597 +// } else {
  1598 +// isNextSync = bytes[1] == 112
  1599 +// startSyncTimer()
  1600 +// isSyncReceived = true
  1601 +// }
  1602 +// }
  1603 +// }
  1604 + // 内容长度加上其他位的长度
  1605 + totalLength = Int(UInt16(bytes[8]) << 8 | UInt16(bytes[9])) + 12
1579 1606 if data.count == totalLength {
1580 1607 parseData(bytes)
1581 1608 } else {
... ... @@ -1604,21 +1631,28 @@ extension BluetoothManager: ClientProfileDelegate {
1604 1631 totalLength = 0
1605 1632 mergeLength = 0
1606 1633 totalBytes = []
1607   - guard bytes.count > 10, let cmd = BleCmd(rawValue: bytes[8]) else { return }
  1634 + guard bytes.count > 12 else { return }
  1635 + let msgId = Int(UInt16(bytes[4]) << 8 | UInt16(bytes[5]))
1608 1636 let data = Data(bytes: bytes, count: bytes.count)
1609   - switch cmd {
1610   - case .set, .find, .device, .remind, .firmware:
1611   - parseSetData(SetCmd(rawValue: bytes[10]), data: data)
1612   - case .sync:
1613   - let valueBytes = Array(bytes[13..<bytes.count])
1614   - print(valueBytes)
1615   - parseSyncData(SyncCmd(rawValue: bytes[10]), bytes: valueBytes)
1616   - case .weather:
1617   - if setCmdClosure != nil {
1618   - setCmdClosure?(nil)
1619   - setCmdClosure = nil
1620   - }
  1637 + switch msgId {
  1638 + case 0x8001:
  1639 + newParseDefaultResponseData(bytes)
  1640 + default:
  1641 + break
1621 1642 }
  1643 +// switch cmd {
  1644 +// case .set, .find, .device, .remind, .firmware:
  1645 +// parseSetData(SetCmd(rawValue: bytes[10]), data: data)
  1646 +// case .sync:
  1647 +// let valueBytes = Array(bytes[13..<bytes.count])
  1648 +// print(valueBytes)
  1649 +// parseSyncData(SyncCmd(rawValue: bytes[10]), bytes: valueBytes)
  1650 +// case .weather:
  1651 +// if setCmdClosure != nil {
  1652 +// setCmdClosure?(nil)
  1653 +// setCmdClosure = nil
  1654 +// }
  1655 +// }
1622 1656 }
1623 1657  
1624 1658  
... ...