GATT 配置文件和 UART 服务

2024-01-28

我是开发通过蓝牙连接到外围设备的移动应用程序的新手。我搜索到 GATT 是用于蓝牙LE 通信的相关配置文件,但我们的客户建议我们使用 UART 服务。现在我很困惑 1. 这两件事是如何关联的 2. 我们是否必须选择其中之一,如果是的话,每一个的优点和缺点是什么。谢谢


传统蓝牙提供串行端口配置文件 (SPP) - 这本质上是通过蓝牙的串行输入/输出流。

低功耗蓝牙提供了许多配置文件,但最常用的是 GATT。 GATT 公开了特征/属性,这有点像您可以读取/写入的变量。读/写限制为 20 个字节。

许多嵌入式 BLE 芯片组提供基于 BLE GATT 的“UART 仿真”。这里使用了一对属性;一个用于读取,一个用于写入。

中央设备将字节写入“写入”属性,嵌入式芯片将它们从芯片上的串行端口发送出去。

类似地,数据被写入芯片的串行端口并通过“读取”属性中的新数据通知发送到中央。

你没有说你在什么平台上开发,但一个重要的考虑因素是,在 iOS 上使用 SPP 需要你的硬件经过 Apple 的 MFi 认证,而 BLE/GATT 则不需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GATT 配置文件和 UART 服务 的相关文章

  • Android 在我自己的应用程序中以编程方式隐藏鼠标指针

    我知道这里有一个类似的问题 以编程方式在 Android 屏幕上移动鼠标指针 https stackoverflow com questions 7695258 moving mouse pointer on android screen
  • Android 和 iOS 如何扫描蓝牙信标而不出现电池问题?

    如果我想在 Android 或 IOS 中开发自己的 iBeacon 服务 它必须实用 这意味着客户可以使用我的服务而不会出现电池短缺的情况 我认为即使 iBeacon 技术基于蓝牙低功耗 它仍然可能缺乏电池 这是因为应用程序必须始终运行才
  • 如何通过蓝牙读取Leica DISTO的数据?

    我有一台 Leica DISTO D3a BT 它是一个测量设备 通过蓝牙发送测量结果 我编写了一些代码来获取蓝牙流 我收到了数据 但总是收到 错误 240 消息 这意味着 从用户手册来看 我不确认数据传输是否成功 我该怎么做 这是我的代码
  • UWP SerialDevice.FromIdAsync 在 Windows 10 上抛出“未找到元素”(HRESULT 异常:0x80070490)

    我想在 Xamarin Forms 应用程序中打开连接的蓝牙设备上的串行端口 这是代码 我简化了它以说明问题 string l gdsSelector SerialDevice GetDeviceSelector var l ardiDev
  • 通过蓝牙检测附近的另一台 Android 设备

    好吧 我这里有一个有点奇怪的问题 我正在开发一款 Android 游戏 我希望 Android 手机能够检测到彼此的存在 搜索其他玩家的设备将知道其他玩家设备的蓝牙 MAC 地址 来自游戏数据库 但是设备不会配对 并且设备不会处于可发现模式
  • 使用bluez5读取蓝牙低能耗信标的RSSI

    我想在 2 个蓝牙 le USB 适配器上同时读取蓝牙低功耗信标的 RSSI 我使用的是带有 bluez 5 和 LogiLink BT0015 适配器 CSR 芯片 的 fedora 20 系统 当仅连接一个适配器时 我的代码就像一个魅力
  • 没有 GameKit 的 iOS 蓝牙

    我已经知道使用 GameKit 我只能连接到运行相同应用程序的其他 iOS 设备 但我想连接到 Parallaz EasyBluetooth 芯片来发送和接收命令 因此我需要不同的解决方案 我想有一些针对越狱设备的库 但我不知道 你能给我一
  • 对于 Android 蓝牙,EXTRA_PREVIOUS_SCAN_MODE 始终返回错误

    当设备的蓝牙扫描模式更改 即可发现 不可发现 时 我使用以下代码将对象返回到 Cordova cordova getActivity getApplicationContext registerReceiver new BroadcastR
  • 如何检查设备上是否启用了蓝牙

    我想检查设备上是否启用了蓝牙 以便应用程序可以在没有用户交互的情况下使用它 有什么办法可以做到这一点吗 我还可以分别检查蓝牙和蓝牙低功耗吗 我使用以下方法完成了此操作Radio class 检查蓝牙是否已启用 public static a
  • 使用蓝牙调用应用程序

    我们可以使用蓝牙从一个 Android 设备中调用另一台 Android 设备中的应用程序吗 如果可以的话流程是什么 不 您不能从一个 Android 设备调用另一个应用程序 除非两个应用程序都使用蓝牙权限并进行配置
  • Android:自动重新连接 BLE 设备

    我的目标是让 Android 设备重新连接到之前连接过的 BLE 设备无需用户干预与经典 BT 配对设备的操作方式相同 甚至可以通过电源循环工作 BTLE 设备的想法之一是节省服务 绑定和启用状态 以便重新连接非常快并且在外设上消耗很少的功
  • iPhone:如何删除/清除蓝牙 4.0 数据

    我有一些大麻烦 https stackoverflow com questions 11557500 corebluetooth central manager callback diddiscoverperipheral twice co
  • Android 2.1:如何轮询现有蓝牙连接的 RSSI 值?

    我需要知道使用 Android 2 1 手机与远程设备建立蓝牙连接的信号强度 从SDK中 我可以看到我可以在发现远程设备时确定RSSI 但我不知道如何随着时间的推移更新该 RSSI 值 有人可以帮我吗 谢谢 从 SDK 中这是获取 RSSI
  • BLE:使用 Android / iOS 读取长特征值

    对于正常的特征读取 仅读取 MTU 大小 20 字节 的数据 我的客户将提供更大尺寸 超过 100 字节 的特征 我看到 BLE 提供了 长读取 功能 可以读取直到达到特征的大小 https bluegiga zendesk com ent
  • 尝试从 Polar H10 获取心率变异性 [蓝牙低功耗示例 UWP]

    我正在与 Polar H10 合作 从中获取心率变异性 我在跑步蓝牙低功耗示例 https github com Microsoft Windows universal samples tree master Samples Bluetoo
  • Android:每秒更新蓝牙 RSSI

    我试图每秒显示蓝牙信号强度 RSSI Timer 来自检测到的设备 但我无法调用onRecive 多次因为接收器生命周期 http developer android com reference android content Broadc
  • 如何从本地电脑获取蓝牙mac地址?

    我想获取运行我的应用程序的电脑上蓝牙设备的 MAC 地址 我已经尝试过以下方法 private void GetMacAddress string macAddresses foreach NetworkInterface nic in N
  • 标准和定制 GATT 特征

    我正在为 Android 手机和 Android 手表 wearOS 编写应用程序 这些应用程序将通过蓝牙相互通信 基本上Android手机上的应用程序将与WearOS设备绑定 然后与WearOS上的应用程序通信以启动指定功能 获取电池信息
  • 通过Python通过蓝牙发送消息或数据

    如何通过 python 通过蓝牙发送消息 而无需输入数字等密钥身份验证 我用过 pybluez 但我收到了这个错误 File send line 12 in
  • 如何从android ble扫描结果中获取CRC?

    我每次都从 ble 设备收到 62 字节的扫描结果 使用下面的回调代码获取扫描结果 我可以获取 RSSI 但无法获取 CRC 或者 获取一帧的CRC的逻辑是什么 来自 ble 设备的数据格式 如数据包标头 广告数据 CRC RSSI 如何从

随机推荐

  • 如何使用 Jquery 选择表行?

    我试图使用 JQuery 选择表行 但似乎不会触发 selected 事件 我已将代码放在 JSFiddle 上 http jsfiddle net tonymaloney1971 3tevxmps 1 http jsfiddle net
  • CIColor 到 UIColor -> 未为 UIColor UIExtendedSRGBColorSpace 定义 CIColor

    我正在尝试从 rgb hex 色彩空间实现 CIColor 如下所示 let bottomColor UIColor init red 235 255 green 250 255 blue 255 255 alpha 1 0 ciColor
  • 为什么 OrderedDict 不使用 super ?

    我们可以创建一个OrderedCounter简单地通过使用多重继承 gt gt gt from collections import Counter OrderedDict gt gt gt class OrderedCounter Cou
  • Rails 中两个表具有相同的数据?

    我正在尝试在我的视图中创建一个表并在某些条件下填充它 我有两个表 里面都有两列 一列称为event url另一个是gmiurl 里面有gmiurl的表叫做GMITable另一个叫做newevent 基本上我想展示里面的一切GMITable除
  • 设置 selectonemenu 的默认值

    我有一个像这样的选择菜单
  • APC 显示 100% 碎片

    APC http php net manual en book apc php显示 100 碎片 这很糟糕吗 这是否意味着它根本没有帮助 我应该采取哪些途径来改善情况 提前致谢 根据我的经验 是的 我的系统中 APC 显示 100 碎片 并
  • 按下 tkinter 按钮时如何播放声音?

    我正在为 Windows PC 构建一个程序 其中包含很多按钮并且看起来非常简单 所以我想知道 当你按下按钮 使用 tkinter 时 我可以播放声音来让程序活跃一点吗 请记住我正在学习 所以请简单一点 假设您的文件是 WAV from t
  • 实体类型没有定义键

    另一个 实体类型 x 没有定义键 问题 但我已经设置了 Key 属性上的属性所以我有点困惑 这是我的实体和上下文类 namespace DoctorDB Models public class Doctor Key public strin
  • gzip 无法在 Django 中使用 Whitenoise 工作

    我在 Heroku 上部署了一个 Django 网站 使用 Whitenoise 提供静态文件 静态文件工作正常 但根据我用来测试它的各种网站 包括谷歌工具 Gzip 无法工作 这是我的生产设置文件中的代码 DATABASES defaul
  • iPhone:通过蓝牙序列化和发送对象?

    序列化对象并通过蓝牙 或网络连接 发送它的最佳方法是什么 你可以使用gamekit http developer apple com library ios documentation NetworkingInternet Conceptu
  • 绘制从远程服务器下载的图像

    我需要执行以下操作 从服务器下载 PNG 资源 根据状态在该图像上绘制几个具有不同颜色的矩形 在可缩放图像视图中显示该图像 我在使用 Canvas 的 Android 应用程序中有一个工作代码 但我不知道如何使用 Flutter 来做到这一
  • Java中如何让程序等待按钮按下

    现在 我不确定这是否可能 甚至是完成我想要做的事情的最佳方法 但基本上我正在使用一个非常简单的 Swing GUI 创建一个非常简单的模拟程序 每轮模拟结束后 界面上的一些按钮都会启用 供用户进行更改 然后用户可以按 继续 按钮再次开始模拟
  • JPA 继承 - 更改实体类型

    我有两节课 Entity Inheritance strategy InheritanceType SINGLE TABLE DiscriminatorColumn name PERSONTYPE DiscriminatorValue va
  • 草皮遮罩返回没有洞的多边形

    我得到一些奇怪的结果草皮 mask https turfjs org docs mask 这是polygon我正在尝试运行mask 功能 https gist githubusercontent com Stophface 50155878
  • 在参数中运行带引号的命令适用于commands.getoutput(),但不适用于子进程模块

    我正在创建一个 python 程序 它调用许多其他程序和脚本 在 Unix SUNos Linux 上 除了 1 个脚本之外 我在所有地方都使用子进程 我不使用子进程的脚本是一个 perl 脚本 它已被制作成可执行文件 不知何故 它不允许我
  • 4 次矩阵乘法的 np.einsum 性能

    给定以下 3 个矩阵 M np arange 35 37 59 reshape 35 37 59 A np arange 35 51 59 reshape 35 51 59 B np arange 37 51 51 59 reshape 3
  • SqlDataReader 参数不起作用

    我有一个 Windows 窗体 要求用户在 textbox1 中输入 pcname 然后尝试使用SqlDataReader从数据库中读取以获取电脑IP地址 然后将电脑驱动器映射到我的本地电脑 但由于某种原因 当我在 SQL 参数中使用文本框
  • 不要将 --build-id 从 gcc 传递给链接器

    我正在尝试使用以下命令编译嵌入式手臂处理器gcc arm linux gnueabi and nostdlib删除对 c 库和启动文件的依赖关系 该芯片没有任何解释 elf 文件的方法 因此使用objcopy O binary 我可以从中删
  • OpenGL 纹理上传:UNSIGNED_BYTE 与 UNSIGNED_INT_8_8_8_8

    我正在调用 glTexSubImage2D 如果我的像素格式是GL RGBA 然后是像素类型GL UNSIGNED BYTE and GL UNSIGNED INT 8 8 8 8完全等价 另外 这两对等价吗 Format GL RGBA
  • GATT 配置文件和 UART 服务

    我是开发通过蓝牙连接到外围设备的移动应用程序的新手 我搜索到 GATT 是用于蓝牙LE 通信的相关配置文件 但我们的客户建议我们使用 UART 服务 现在我很困惑 1 这两件事是如何关联的 2 我们是否必须选择其中之一 如果是的话 每一个的