我刚刚开始与Carista设备通信。我得到了所有的服务和特色。但是,当我编写命令“ ATZ”时,它将给出“ ATZ”的答案。
我期望从设备获得的实际结果是“ ATZELM327 v1.5”
我在此处附加了我的代码,请对其进行审核。
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
guard let characteristics = service.characteristics else { return }
for characteristic in characteristics {
print(characteristic)
caristaPeripheral.setNotifyValue(true, for: characteristic)
let ATZCommand = "ATZ"
let ATZBytes = ATZCommand.data(using: .utf8)
caristaPeripheral.writeValue(ATZBytes!, for: characteristic, type: .withResponse)
}
}
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
let string = String(data: characteristic.value!, encoding: .utf8)
print("CBCharacteristic : \(characteristic.uuid) ====> \(string ?? "none")")
}
请指导我。
答案 0 :(得分:0)
我找到了解决方法,它在下面。
当我们此时在Carista设备中编写任何命令时,我们需要附加“ \ r \ n”。因此,根据上述问题,我们需要将let ATZCommand = "ATZ"
替换为let ATZCommand = "ATZ\r\n"
。
现在,根据异常情况,我从Carista设备获得了准确的响应。
谢谢....:)