如何使用SWIFT 3从iOS应用程序中的测量特征UUID:2A9D和BLE WS获取实际测量值?
我正在尝试使用swift在iOS应用程序中同步测量特征UUID的实际测量值和ABLE体重秤型号:A&D_UC-352BLE_011E17。应用程序正在从BLE WS读取测量特征UUID和10字节值,但当它试图从NSData读取实际测量值时,它正在同步并在应用程序中显示错误值,例如,对于实际重量59.2 KG,应用程序获得的值为11860.0 我已经实现了配对和同步来自BLE WS的数据所需的所有相关方法,最有可能的是该应用程序还从BLE WS获得了体重秤测量服务UUID:181D和测量特征UUID:2A9D,因为我在Xcode调试控制台中看到了这些值 在这种情况下,我认为主要问题在于读取/转换测量特性UUID值到double类型的实际测量值。我的didUpdateCharacteristicValue方法如下所示,请建议我如何从测量特性UUID获得实际测量值如何使用SWIFT 3从iOS应用程序中的测量特征UUID:2A9D和BLE WS获取实际测量值?,ios,swift3,Ios,Swift3,我正在尝试使用swift在iOS应用程序中同步测量特征UUID的实际测量值和ABLE体重秤型号:A&D_UC-352BLE_011E17。应用程序正在从BLE WS读取测量特征UUID和10字节值,但当它试图从NSData读取实际测量值时,它正在同步并在应用程序中显示错误值,例如,对于实际重量59.2 KG,应用程序获得的值为11860.0 我已经实现了配对和同步来自BLE WS的数据所需的所有相关方法,最有可能的是该应用程序还从BLE WS获得了体重秤测量服务UUID:181D和测量特征UUI
func didUpdateCharacteristicValue(_ characteristic: CBCharacteristic){
communicating = true
let charUUID = ANDWeightScaleBTManager.measurementWeightCharacteristicUUID
print("did update value for characteristic")
print("charUUID:", charUUID)
print("charValue is", characteristic.value!)
print("value is:" + (characteristic.value?.base64EncodedString())!)
if (charUUID == ANDWeightScaleBTManager.measurementWeightCharacteristicUUID)
{
NSLog("Got Weight Scale Measurement char")
var weightData: NSData
weightData = characteristic.value! as NSData
//var data: NSData
//weightData = NSData.init(data: characteristic.value!)//if (bpmData.length <= 12) {
let flag = weightData.subdata(with: NSRange.init(location: 0, length: 1))
let unit : UInt16 = readInteger(data: weightData, start: 0)
let weight : UInt16 = readInteger(data: weightData, start: 1)
print("weight: \(weight)")//print the output
var message: String
var image: UIImage
var data = [MeasurementType: Double]()
message = "Completed measurement."
image = UIImage(named: "Success")!
data = [.weight: Double(weight)]
shouldEnd = true
update(data, message, image, shouldEnd)
}
}
func didUpdateCharacteristicValue(uCharacteristic:CBCharacteristic){
通信=真
设charUUID=和weightscalebtmanager.measurementWeghtCharacteristicuuid
打印(“已更新特征值”)
打印(“charUUID:,charUUID”)
打印(“charValue is”,characteristic.value!)
打印(“值为:+(characteristic.value?.base64EncodedString())!)
if(charUUID==和weightscalebtmanager.measurementWeghtCharacteristicuuid)
{
NSLog(“获得体重秤测量字符”)
var权重数据:NSData
weightData=characteristic.value!作为NSData
//var数据:NSData
//weightData=NSData.init(数据:characteristic.value!)//if(bpmData.length如果参考,您将看到公制(SI)值的单位为0.005kg
如果将11860乘以0.005,得到59.3kg
let kg = Double(weight) * 0.005
这对我很有用,非常感谢你的建议。