在 iOS / Swift 5 中使用蓝牙与 Modbus 通信

问题描述

我正在使用蓝牙与 Modbus 协议进行通信,延迟约为 500-700 毫秒,而我预计延迟约为 40-50 毫秒。

以下是我正在执行的步骤:

  1. 我正在尝试发现 iPhone 中的硬件设备并与之建立连接。

  2. 一旦建立连接,我就得到了服务和特征列表。

  3. 现在,我正在尝试使用写入特性并在大约 500 毫秒内获得响应

谁能帮帮我?我被困在这里很糟糕。

这是我正在使用的代码块:

func peripheral(_ peripheral: CBPeripheral,didUpdateValueFor characteristic: CBCharacteristic,error: Error?) {
    let df : DateFormatter = DateFormatter()
    df.dateFormat = "E dd MMM yyyy HH:mm:ss.SSSS"
    let dateString = df.string(from: Date())
    print("...Getting Values.............\nTimeStamp: \(dateString)\n\n")
    print("didUpdateValueFor ========> \(characteristic),\(String(describing: error))")
    self.createPackage(type: .recieveResponse)
    if let error = error {
        print("Failed… error: \(error)")
    }
}    

func writeCharacteristicValue(peripheral: CBPeripheral,data: Data,char: CBCharacteristic,type: CBCharacteristicWriteType) {​​​​​​​​

        peripheral.writeValue(data,for: char,type: type)

    }​​​​​​​​

func writeDataToBlePeripheral(characteristic: CBCharacteristic,byteArray: [UInt8],connectedPeripheral: CBPeripheral) {
    let bytes : [UInt8] = byteArray
    let data = Data(bytes)
    print(data)

    let df2 : DateFormatter = DateFormatter()
    df2.dateFormat = "E dd MMM yyyy HH:mm:ss.SSSS"
    let dateString2 = df2.string(from: Date())
    print("...Aftert data conversion Sending.............\nTimeStamp: \(dateString2)\n\n")
    

BLEManager.getSharedBLEManager().writeCharacteristicValue(peripheral: connectedPeripheral,data: data,char: characteristic,type: .withResponse)

    let df1 : DateFormatter = DateFormatter()
    df1.dateFormat = "E dd MMM yyyy HH:mm:ss.SSSS"
    let dateString1 = df1.string(from: Date())
    print("...After Sending.............\nTimeStamp: \(dateString1)\n\n")
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...