Blame view

HDFwear/Tools/BleMessage+Function.swift 4.56 KB
6102d0b3   daifengyi   feat:time format
1
2
3
4
5
6
7
8
9
10
  //
  //  BleMessage+Function.swift
  //  HDFwear
  //
  //  Created by daifengyi on 2023/6/27.
  //
  
  import SwiftDate
  
  extension BleMessage {
3cba738e   daifengyi   feat:response
11
12
13
14
15
      func getResponseCmd(frameNumber: [UInt8], messageId: [UInt8], success: Bool) -> Data {
          let bytes: [UInt8] = frameNumber + messageId + (success ? [0x00] : [0x01])
          return createDataPacket(key: .response, bytes: bytes)
      }
      
079b41b8   daifengyi   feat:query device...
16
17
18
19
20
      func getQueryDeviceInfoCmd(queryItems: [UInt8]) -> Data {
          let bytes: [UInt8] = [UInt8(queryItems.count)] + queryItems
          return createDataPacket(key: .setTimeFormat, bytes: bytes)
      }
      
6102d0b3   daifengyi   feat:time format
21
22
      func getTimeCmd() -> Data {
          let date = DateInRegion().date
7a9ecfe8   jason   feat:set time par...
23
24
25
26
27
          let calendar = Calendar.current
          let weekday = calendar.component(.weekday, from: date)
          // 调整星期表示
          let adjustedWeekday = (weekday == 1) ? 7 : (weekday - 1)
          let timeBytes: [UInt8] = [UInt8(date.year%100), UInt8(date.month), UInt8(date.day), UInt8(date.hour), UInt8(date.minute), UInt8(date.second), UInt8(adjustedWeekday)]
6102d0b3   daifengyi   feat:time format
28
29
30
31
32
33
34
35
36
37
          //        return getSendData(cmd: .set, key: .time, bytes: timeBytes)
  //        let a = getPackData(key: .setTime, contentBytes: timeBytes)
  //        let b = createDataPacket(key: .setTime, bytes: timeBytes)
          return createDataPacket(key: .setTime, bytes: timeBytes)
      }
      
      func getTimeFormatCmd(format: TimeFormat) -> Data {
          let bytes: [UInt8] = [format.rawValue]
          return createDataPacket(key: .setTimeFormat, bytes: bytes)
      }
50eee3a1   daifengyi   feat:temperature ...
38
39
40
41
42
43
44
45
46
47
48
      
      func getTemperatureUnitCmd(unit: TemperatureUnit) -> Data {
          let bytes: [UInt8] = [unit.rawValue]
          return createDataPacket(key: .setTemperatureUnit, bytes: bytes)
      }
      
      func getDistanceUnitCmd(unit: DistanceUnit) -> Data {
          let bytes: [UInt8] = [unit.rawValue]
          return createDataPacket(key: .setDistanceUnit, bytes: bytes)
      }
      
2db3eb12   daifengyi   feat:wrist sense
49
50
51
52
      func getWristSenseCmd(_ bool: Bool) -> Data {
          let bytes: [UInt8] = bool ? [0x01] : [0x00]
          return createDataPacket(key: .setWristSense, bytes: bytes)
      }
50eee3a1   daifengyi   feat:temperature ...
53
      
5f08af0b   daifengyi   feat:touch sense
54
55
56
57
58
      func getTouchSenseCmd(_ bool: Bool) -> Data {
          let bytes: [UInt8] = bool ? [0x01] : [0x00]
          return createDataPacket(key: .setTouchSense, bytes: bytes)
      }
      
e817a7d0   daifengyi   feat:low power re...
59
60
61
62
      func getLowPowerRemind(_ bool: Bool) -> Data {
          let bytes: [UInt8] = bool ? [0x01] : [0x00]
          return createDataPacket(key: .setLowPowerRemind, bytes: bytes)
      }
07a5f009   daifengyi   feat:language
63
64
65
66
67
      
      func getLanguageCmd(_ lan: UInt8) -> Data {
          let bytes: [UInt8] = [lan]
          return createDataPacket(key: .setLanguage, bytes: bytes)
      }
829c07bb   daifengyi   feat:restore, hr ...
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
      
      func getRestoreCmd() -> Data {
          let bytes: [UInt8] = []
          return createDataPacket(key: .setRestore, bytes: bytes)
      }
      
      func getHeartRateHighRemindCmd(_ maxHr: UInt8) -> Data {
          let bytes: [UInt8] = [maxHr]
          return createDataPacket(key: .setHeartRateHighRemind, bytes: bytes)
      }
      
      func getHeartRateLowRemindCmd(_ minHr: UInt8) -> Data {
          let bytes: [UInt8] = [minHr]
          return createDataPacket(key: .setHeartRateLowRemind, bytes: bytes)
      }
      
      func getFindWatchCmd(_ bool: Bool) -> Data {
          let bytes: [UInt8] = bool ? [0x01] : [0x00]
          return createDataPacket(key: .setFindWatch, bytes: bytes)
      }
      
d8efb388   daifengyi   feat: pressure ox...
89
90
91
92
93
94
95
96
97
      func getPressureAutoDetectCmd(_ bool: Bool) -> Data {
          let bytes: [UInt8] = bool ? [0x01] : [0x00]
          return createDataPacket(key: .setPressureAutoDetect, bytes: bytes)
      }
      
      func getBloodOxygenAutoDetectCmd(_ bool: Bool) -> Data {
          let bytes: [UInt8] = bool ? [0x01] : [0x00]
          return createDataPacket(key: .setbloodOxygenAutoDetect, bytes: bytes)
      }
6ef0f40d   daifengyi   feat:user info
98
99
100
101
102
      
      func getUserInfoCmd(_ user: UserInfoModel) -> Data {
          let bytes = [0x00, UInt8(user.weight), 0x00, UInt8(user.height), UInt8(user.gender)]
          return createDataPacket(key: .setUserInfo, bytes: bytes)
      }
d6dfcaed   daifengyi   feat:no disturb
103
      
949f38df   daifengyi   feat:not disturb
104
105
106
107
108
109
110
111
112
      func getNotDisturbCmd(_ remind: RemindModel, weekflag: [WeekFlag], isRepeat: Bool) -> Data {
          guard !weekflag.isEmpty else {
              return createDataPacket(key: .setDistanceUnit, bytes: [])
          }
          var flag: UInt8 = 0
          for item in weekflag {
              flag |= 1 << item.rawValue
          }
          let bytes: [UInt8] = [remind.isOn ? 0x01 : 0x00, isRepeat ? 0x01: 0x00, flag, UInt8(remind.startDate.hour), UInt8(remind.startDate.minute), UInt8(remind.endDate.hour), UInt8(remind.endDate.minute)]
d6dfcaed   daifengyi   feat:no disturb
113
114
          return createDataPacket(key: .setNoDisturb, bytes: bytes)
      }
92b5af79   daifengyi   feat:synchronize 0
115
116
117
118
119
      
      func getSyncCmd(_ type: SyncType) -> Data {
          let bytes: [UInt8] = [type.rawValue]
          return createDataPacket(key: .setSynWatch, bytes: bytes)
      }
6102d0b3   daifengyi   feat:time format
120
  }