Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何处理定制的UUID';蓝牙低能量(BLE)中的s_Ios_Bluetooth_Bluetooth Lowenergy_Core Bluetooth_Btle - Fatal编程技术网

Ios 如何处理定制的UUID';蓝牙低能量(BLE)中的s

Ios 如何处理定制的UUID';蓝牙低能量(BLE)中的s,ios,bluetooth,bluetooth-lowenergy,core-bluetooth,btle,Ios,Bluetooth,Bluetooth Lowenergy,Core Bluetooth,Btle,我想编写一个iOS应用程序,将一些数据传输到嵌入式BLE模块,反之亦然。为了获得数据流的最佳结构,我使用相应的UUID创建了自己的特性和服务。到目前为止,一切都很好!但是,如果我想添加第二个BLE模块而不更改嵌入式BLE模块中硬编码的UUID,会发生什么?我是否必须为我要添加的每个BLE模块生成全新的UUID?在这种情况下,我也必须更改iOS应用程序,因为我必须更改特定服务和特性的预期UUID,或者?谢谢 不,您不必为每个BLE模块生成新的UUID。这不是它的设计运作方式。 只需确保不要对同一个

我想编写一个iOS应用程序,将一些数据传输到嵌入式BLE模块,反之亦然。为了获得数据流的最佳结构,我使用相应的UUID创建了自己的特性和服务。到目前为止,一切都很好!但是,如果我想添加第二个BLE模块而不更改嵌入式BLE模块中硬编码的UUID,会发生什么?我是否必须为我要添加的每个BLE模块生成全新的UUID?在这种情况下,我也必须更改iOS应用程序,因为我必须更改特定服务和特性的预期UUID,或者?谢谢

不,您不必为每个BLE模块生成新的UUID。这不是它的设计运作方式。 只需确保不要对同一个BLE模块中的任何特性重复使用相同的UUID

经验法则:

  • 我不能让一个BLE模块具有两个具有相同UUID的特征
  • 我不能让一个BLE模块拥有两个具有相同UUID的服务
  • 我不能让一个BLE模块将UUID用于一个服务,而将UUID用于一个特性
  • 从理论上讲,我可以确定有无限多个BLE模块具有相同的GATT结构(包括所有UUID)
    这是可能的,因为GATT客户机(应用程序)通过连接句柄区分和访问连接的GATT服务器,连接句柄不在连接到同一应用程序的其他GATT服务器的范围内。

    Ahh ok!因此,我将为我的所有服务和特性生成一些不同的UUID,并将它们实现到我的所有BLE模块中。因此,每次我的应用程序中出现相同的UUID时,我都可以进行过滤。很清楚!但我还没听懂你的最后一句话。我如何区分两个不同的BLE模块,它们具有相同的UUID,用于这些服务和特征,并且可能具有相同的名称?我还可以触发其他ID吗?首先,当堆栈(在android或iOS上,或您正在使用的任何智能手机操作系统上)为您执行此操作时,为什么您必须执行此操作。当智能手机应用程序扫描附近的BLE模块时,如果有两个模块具有相同的GATT结构和相同的设备名称,它们仍然可以通过两个不同的句柄访问。因此,两个(或更多)相同的模块可以与应用程序连接,而无需区分这两个模块。作为开发人员,您需要做的就是使用各自的设备句柄对象。如果您询问stack如何知道附近有两个模块(是否具有相同的GATT),那么您知道它是通过MAC地址进行管理的,MAC地址始终是唯一的,用户无法配置。好吧,这就是我的答案!同一个方向上还有一个问题。当我为我的服务和特征生成不同的UUID时,是否存在服务和特征之间以及不同服务之间的差异规则?例如,我生成这个UUID:8226???-61e4-11e5-9d70-feff819cdc9f,我经常看到,只有标记的数字不同。。对吗?不,没有限制。我使用了一个uuid生成器网站一次生成的近60个uuid,并将它们放入一个txt文件中,不用考虑就使用了它们。如果你在一个文件中生成它们,你会得到一系列的。用你喜欢的任何方式使用它们。系统需要一个128位长的标识符,该标识符以前没有用于该模块,就是这样。