Commit c3e219601028e31726189d63f0cab96ff548b042

Authored by jason
1 parent da383e21

fix:negative int compatibility

HDFwear/Home/Model/NewGpsModel.swift
... ... @@ -13,10 +13,10 @@ import SwiftDate
13 13 class NewGpsModel: NSObject {
14 14 required override init() { }
15 15 struct LocationPoint {
16   - var longitudeValue: UInt32
17   - var longitudeScale: UInt32
18   - var latitudeValue: UInt32
19   - var latitudeScale: UInt32
  16 + var longitudeValue: Int32
  17 + var longitudeScale: Int32
  18 + var latitudeValue: Int32
  19 + var latitudeScale: Int32
20 20  
21 21 var longitude: Double {
22 22 return convert(value: longitudeValue, scale: longitudeScale)
... ... @@ -26,7 +26,7 @@ class NewGpsModel: NSObject {
26 26 return convert(value: latitudeValue, scale: latitudeScale)
27 27 }
28 28  
29   - private func convert(value: UInt32, scale: UInt32) -> Double {
  29 + private func convert(value: Int32, scale: Int32) -> Double {
30 30 if scale == 0 {
31 31 return 0
32 32 }
... ... @@ -91,7 +91,7 @@ class NewGpsModel: NSObject {
91 91 let latitudeValue = data[index + 8..<index + 12].reduce(0) { ($0 << 8) + UInt32($1) }
92 92 let latitudeScale = data[index + 12..<index + 16].reduce(0) { ($0 << 8) + UInt32($1) }
93 93  
94   - let point = LocationPoint(longitudeValue: longitudeValue, longitudeScale: longitudeScale, latitudeValue: latitudeValue, latitudeScale: latitudeScale)
  94 + let point = LocationPoint(longitudeValue: Int32(bitPattern:longitudeValue), longitudeScale: Int32(bitPattern:longitudeScale), latitudeValue: Int32(bitPattern:latitudeValue), latitudeScale: Int32(bitPattern:latitudeScale))
95 95 arr.append(point)
96 96 }
97 97 gpsModel.locations = arr
... ...
HDFwear/Tools/BleMessage+Function.swift
... ... @@ -132,9 +132,9 @@ extension BleMessage {
132 132 // withUnsafeBytes(of: timeInterval) { uint32Data.append(contentsOf: $0) }
133 133  
134 134  
135   - var bytes:[UInt8] = [byte1, byte2, byte3, byte4, UInt8(weather.currentTemperature), UInt8(weather.lowestTemperature), UInt8(weather.highestTemperature), UInt8(weather.type.rawValue), UInt8(weather.airQuality.rawValue), UInt8(weather.humidity), UInt8(weather.wind.rawValue), UInt8(weather.windForce)]
  135 + var bytes:[UInt8] = [byte1, byte2, byte3, byte4, UInt8(bitPattern: Int8(weather.currentTemperature)), UInt8(bitPattern: Int8(weather.lowestTemperature)), UInt8(bitPattern: Int8(weather.highestTemperature)), UInt8(weather.type.rawValue), UInt8(weather.airQuality.rawValue), UInt8(weather.humidity), UInt8(weather.wind.rawValue), UInt8(weather.windForce)]
136 136 for day in weather.next5Days {
137   - bytes += [UInt8(day.type.rawValue), UInt8(day.lowestTemperature), UInt8(day.highestTemperature)]
  137 + bytes += [UInt8(day.type.rawValue), UInt8(bitPattern: Int8(day.lowestTemperature)), UInt8(bitPattern: Int8(day.highestTemperature))]
138 138 }
139 139  
140 140 if let utf8Data = weather.position.data(using: .utf8) {
... ...