我正在尝试创建一个结构类似于初始 ios-sample 应用程序的 iOS 应用程序,不同之处在于我使用了据说存储在 API 中的 Meas/ECG 中的 ECG 数据。我能够通过在示例应用程序中的其他观察函数中镜像代码来创建这个处理程序类(所有这些函数都可以自己完全正常工作)并查看似乎实现了类似功能的iOS MQTT应用程序:
class EcgHandler : BaseSubscriptionHandler {
private var values = Array<Int16>()
private var newValue : (Double) -> () = { (value) in }
init(viewController: SubscriptionDetailViewController, toggle: UISwitch,
serial: String, newValueReceiver: @escaping (Double) -> ()) {
super.init(viewController: viewController, toggle: toggle, serial: serial, title: "ECG", filePrefix: "ecg", path: "/Meas/ECG", infoPath: "/Meas/ECG/Info")
self.newValue = newValueReceiver
}
public func subscribe() {
self.toggle.isOn = true
self.dataFile = SubDataFile(self.filePrefix, serial: self.serial)
self.viewController.movesense?.subscribe(self.serial, path: self.path,
parameters: [:],
onNotify: { response in
self.handleData(response)
},
onError: { (_, path, message) in
self.showError("\(path) \(message)")
self.toggle.isOn = false
self.dataFile?.write("Error \(message)")
})
}
private func handleData(_ response: MovesenseResponse) {
let json = JSON(parseJSON: response.content)
if json["Samples"][0].number != nil {
print("{\"Ecg\":\(json["Samples"])}")
}
}
}
但是当我运行 ecgHandler.subcribe() 函数时,我得到了错误:
Meas/ECG NOT_FOUND
这里出了什么问题?我查看了 Movesense 开发人员文档,没有发现类似问题,我查看了 ios-mqtt 代码,没有发现任何其他重大差异。似乎在订阅控制器文件之外的项目代码中的任何地方都没有提到“ecg”。
编辑:在我的设备上运行 mqtt 后,该应用程序似乎遇到了同样的错误。
编辑2:找出问题,答案如下。