Commit 40bc87241ba9c5a5b5f48f30f909b809c1eb6bc2

Authored by jason
1 parent 7a10e2ea

feat:firmware version

HDFwear/20240126ReadMe.md
... ... @@ -141,6 +141,10 @@ BluetoothManager+Function
141 141 接收: [237, 126, 0, 1, 128, 36, 0, 7, 0, 12, 0, 5, 0, 65, 0, 48, 0, 98, 0, 115, 0, 140, 194, 200]
142 142 接收: [237, 126, 0, 1, 128, 36, 0, 1, 0, 1, 255, 46, 6]
143 143  
  144 +拉取固件版本号
  145 + func newGetfirmwareVersionData(option: SyncOption = .now, closure: FirmwareVersionClosure? = nil)
  146 + 发送: [237, 126, 0, 1, 0, 40, 0, 1, 0, 2, 20, 1, 233, 127]
  147 + 接收: [237, 126, 0, 1, 128, 55, 0, 1, 0, 2, 1, 4, 5, 79]
144 148  
145 149 接受数据类
146 150  
... ...
HDFwear/Mine/MineViewController.swift
... ... @@ -671,6 +671,18 @@ extension MineViewController: UITableViewDataSource, UITableViewDelegate {
671 671 }
672 672 }
673 673  
  674 + let archiveAction105 = UIAlertAction(title: "newGetfirmwareVersionData", style: .default) {[weak self] action in
  675 + BluetoothManager.shared.newGetfirmwareVersionData() {first, second, error in
  676 + if error != nil {
  677 + print("newGetfirmwareVersionData" + (error?.description ?? ""))
  678 + }else {
  679 + self?.showDetailAlert(msg: "first is" + String(first ?? 0) + "\nsecond is " + String(second ?? 0))
  680 + print("newGetfirmwareVersionData success")
  681 + }
  682 + }
  683 + }
  684 +
  685 +
674 686 alert.addAction(archiveAction9a)
675 687 alert.addAction(archiveAction9b)
676 688 alert.addAction(archiveAction10a)
... ... @@ -689,6 +701,7 @@ extension MineViewController: UITableViewDataSource, UITableViewDelegate {
689 701 alert.addAction(archiveAction103)
690 702 alert.addAction(archiveAction104a)
691 703 alert.addAction(archiveAction104b)
  704 + alert.addAction(archiveAction105)
692 705  
693 706 alert.addAction(UIAlertAction(title: "取消", style: .destructive, handler: nil))
694 707 present(alert, animated: true, completion: nil)
... ...
HDFwear/Tools/Bluetooth+Types.swift
... ... @@ -178,6 +178,7 @@ enum SyncType: UInt8 {
178 178 case gps = 0x0A
179 179 case intensiveTime = 0x0B
180 180 case beidouCard = 0x0C
  181 + case firmwareVersion = 0x14
181 182 case other = 0xff
182 183 }
183 184  
... ...
HDFwear/Tools/BluetoothManager+Function.swift
... ... @@ -259,6 +259,12 @@ extension BluetoothManager {
259 259 newStartSyncHealthData(closure: closure, data: data, synType: .beidouCard)
260 260 }
261 261  
  262 + // 拉取固件版本号
  263 + func newGetfirmwareVersionData(option: SyncOption = .now, closure: FirmwareVersionClosure? = nil) {
  264 + let data = BleMessage.shared.getSyncCmd(.firmwareVersion, option)
  265 + newStartSyncHealthData(closure: closure, data: data, synType: .firmwareVersion)
  266 + }
  267 +
262 268 //MARK: - old code
263 269 // 拉取睡眠数据
264 270 func getSleepData(option: SyncOption = .now, closure: SleepClosure? = nil) {
... ... @@ -375,6 +381,12 @@ extension BluetoothManager {
375 381 beidouCardClosure?(nil, -1002)
376 382 beidouCardClosure = nil
377 383 }
  384 + case is FirmwareVersionClosure:
  385 + if firmwareVersionClosure == nil {
  386 + firmwareVersionClosure = closure as? FirmwareVersionClosure
  387 + firmwareVersionClosure?(nil, nil, -1002)
  388 + firmwareVersionClosure = nil
  389 + }
378 390 default:
379 391 break
380 392 }
... ... @@ -612,6 +624,16 @@ extension BluetoothManager {
612 624 }else {
613 625 parseBeidouCardData(content)
614 626 }
  627 + case 0x8037://固件版本号
  628 + print("固件版本号")
  629 + let content = parseContentFromBytes(bytes)
  630 + if (content.count == 1 && content.first == 0xff) {
  631 + for delegate in syncDelegateList {
  632 + delegate.didReceiveFinishCommand(0x8029)
  633 + }
  634 + }else {
  635 + parseFirmwareVersionData(content)
  636 + }
615 637 default:
616 638 break
617 639 }
... ... @@ -812,7 +834,7 @@ extension BluetoothManager {
812 834 func parseBeidouCardData(_ content: [UInt8]) {
813 835 guard content.count > 0 else {
814 836 print("无有效的信息")
815   - intensiveTimeClosure?(nil, nil)
  837 + beidouCardClosure?(nil, nil)
816 838 return
817 839 }
818 840 let card = String(bytes: content, encoding: .ascii)
... ... @@ -835,4 +857,14 @@ extension BluetoothManager {
835 857 }
836 858  
837 859 }
  860 +
  861 + // 固件版本号数据
  862 + func parseFirmwareVersionData(_ content: [UInt8]) {
  863 + guard content.count > 1 else {
  864 + print("无有效的信息")
  865 + firmwareVersionClosure?(nil, nil, nil)
  866 + return
  867 + }
  868 + firmwareVersionClosure?(Int(content[0]), Int(content[1]), nil)
  869 + }
838 870 }
... ...
HDFwear/Tools/BluetoothManager.swift
... ... @@ -108,6 +108,8 @@ class BluetoothManager: NSObject {
108 108 var intensiveTimeClosure: IntensiveTimeClosure?
109 109 typealias BeidouCardClosure = (_ card:String?, _ error: Int?) -> Void
110 110 var beidouCardClosure: BeidouCardClosure?
  111 + typealias FirmwareVersionClosure = (_ first:Int?, _ second:Int?, _ error: Int?) -> Void
  112 + var firmwareVersionClosure: FirmwareVersionClosure?
111 113  
112 114 typealias DialProgressClosure = (_ progress: Int) -> Void
113 115 var dialProgressClosure: DialProgressClosure?
... ... @@ -1331,6 +1333,7 @@ class BluetoothManager: NSObject {
1331 1333 gpsClosure = nil
1332 1334 intensiveTimeClosure = nil
1333 1335 beidouCardClosure = nil
  1336 + firmwareVersionClosure = nil
1334 1337 switch closure {
1335 1338 case is BloodPressureClosure:
1336 1339 bloodPressureClosure = closure as? BloodPressureClosure
... ... @@ -1354,6 +1357,8 @@ class BluetoothManager: NSObject {
1354 1357 intensiveTimeClosure = closure as? IntensiveTimeClosure
1355 1358 case is BeidouCardClosure:
1356 1359 beidouCardClosure = closure as? BeidouCardClosure
  1360 + case is FirmwareVersionClosure:
  1361 + firmwareVersionClosure = closure as? FirmwareVersionClosure
1357 1362 default:
1358 1363 break
1359 1364 }
... ...