微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 AT 命令使用 Adafruit Feather 32u4 广告 ANCS 服务

如何解决使用 AT 命令使用 Adafruit Feather 32u4 广告 ANCS 服务

我正在尝试使用 Apple Notification Center Service 来实现 Adafruit Feather 32u4 Bluefruit LE,以便能够从我的 iPhone 接收通知到 Feather 板,通过串行连接将它们发送到我的 PC 并处理它们我写的软件。

我使用 AT+GATTADDSERVICE 和 AT+GATTADDCHAR 命令设置了 ANCS 服务和特性,但是当我尝试使设备可被发现并宣传 ANCS 服务的使用时,设备将无法被发现。

这是我使用的命令:

AT+GAPSETADVDATA=02-01-06-11-06-79-05-F4-31-B5-CE-4E-99-A4-0F-4B-1E-12-2D-00-D0

地点:

  • 0x02:是有效载荷中第一条消息的字节长度
  • 0x01:是“数据类型值”,表示这是一个“标志”
  • 0x06:表示不支持 BR/EDR 的 LE 通用可发现模式标志
  • 0x11:为第二条消息的字节长度(0x11为十进制17字节,“消息“128位服务类UUID不完整列表”类型为1,ANCS的UUID为16字节)立>
  • 0x06:是“128 位服务类 UUID 的不完整列表”的“数据类型值”
  • 0x7905F431B5CE4E99A40F4B1E122D00D0:是 ANCS 的 UUID。

不过,当我使用上述命令时,设备将无法被发现。你知道为什么吗?

在尝试解决问题时,我注意到如果我尝试宣传不同的服务,例如心率服务和设备信息服务,其他设备确实可以看到该设备。这是我使用的命令:

# Advertise as discoverable and BLE only with 16-bit UUIDs 0x180D and 0x180A
AT+GAPSETADVDATA=02-01-06-05-02-0d-18-0a-18

您知道为什么在尝试宣传 ANCS 服务时设备不可见吗?

谢谢!

附言我是蓝牙协议的新手,抱歉。

解决方法

查看您提供的 ANCS 的 specification。它指出:

只有一个 ANCS 实例可以出现在 NP 上。由于 iOS 的特性,不能保证 ANCS 始终存在。因此,NC 应该寻找并订阅 GATT 服务的 Service Changed 特性,以便随时监控 ANCS 的潜在发布和取消发布。

再往下看,您会发现一些数据表明您的 iPhone 是 NP,并且可能会实施 ANCS。

ANCS: The Lifetime of a ios notification

您的 Feather 板将是 Central,应该寻找服务并连接到它。正如@Paulw 在评论中所说的那样,您的做法是错误的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。