diff --git a/HDFwear/Home/Model/NewGpsModel.swift b/HDFwear/Home/Model/NewGpsModel.swift new file mode 100644 index 0000000..18ef96f --- /dev/null +++ b/HDFwear/Home/Model/NewGpsModel.swift @@ -0,0 +1,8 @@ +// +// NewGpsModel.swift +// HDFwear +// +// Created by admin on 2024/1/9. +// + +import Foundation diff --git a/HDFwear/Home/Model/NewSleepModel.swift b/HDFwear/Home/Model/NewSleepModel.swift index 6ad2509..d690a90 100644 --- a/HDFwear/Home/Model/NewSleepModel.swift +++ b/HDFwear/Home/Model/NewSleepModel.swift @@ -76,13 +76,9 @@ class NewSleepModel: NSObject { // 将数组分成9个一组 for index in stride(from: 0, to: data.count, by: 9) { let sleepStatus = NewSleepStatus(rawValue: data[index]) ?? .awake - let rawStartTime = UInt32(data[index + 1]) | - (UInt32(data[index + 2]) << 8) | - (UInt32(data[index + 3]) << 16) | - (UInt32(data[index + 4]) << 24) - let startTimeInterval = TimeInterval(rawStartTime) - let startTime = Date(timeIntervalSince1970: startTimeInterval) - let duration = UInt32(data[index + 5]) | (UInt32(data[index + 6]) << 8) | (UInt32(data[index + 7]) << 16) | (UInt32(data[index + 8]) << 24) + let combinedUInt32 = data[1..<5].reduce(0) { ($0 << 8) + UInt32($1) } + let startTime = Date(timeIntervalSince1970: TimeInterval(combinedUInt32)) + let duration = UInt32(data[5..<9].reduce(0) { ($0 << 8) + UInt32($1) }) let fragment = SleepFragment(sleepStatus: sleepStatus, startTime: startTime, duration: duration) sleepFragments.append(fragment) @@ -95,9 +91,11 @@ class NewSleepModel: NSObject { var napFragments = [NapFragment]() // 将数组分成12个一组 for index in stride(from: 0, to: data.count, by: 12) { - let startTime = Date(timeIntervalSince1970: TimeInterval(UInt32(data[index]) | UInt32(data[index + 1]) << 8 | UInt32(data[index + 2]) << 16 | UInt32(data[index + 3]) << 24)) - let endTime = Date(timeIntervalSince1970: TimeInterval(UInt32(data[index + 4]) | UInt32(data[index + 5]) << 8 | UInt32(data[index + 6]) << 16 | UInt32(data[index + 7]) << 24)) - let duration = UInt32(data[index + 8]) | UInt32(data[index + 9]) << 8 | UInt32(data[index + 10]) << 16 | UInt32(data[index + 11]) << 24 + let startCombinedUInt32 = data[0..<4].reduce(0) { ($0 << 8) + UInt32($1) } + let startTime = Date(timeIntervalSince1970: TimeInterval(startCombinedUInt32)) + let endCombinedUInt32 = data[4..<8].reduce(0) { ($0 << 8) + UInt32($1) } + let endTime = Date(timeIntervalSince1970: TimeInterval(endCombinedUInt32)) + let duration = data[8..<12].reduce(0) { ($0 << 8) + UInt32($1) } let napFragment = NapFragment(startTime: startTime, endTime: endTime, duration: duration) napFragments.append(napFragment)