标签: bluegiga

BlueGiga BLE开发工具

我正在尝试使用BlueGiga BLE112套件为iOS进行一些BLE开发.

我正在从TI CC2540密钥卡套件切换,因为我的IAR Embedded Workbench评估许可证已过期(30天),该软件的许可证价格为2500美元.

我想知道为BLE112编写代码的工具是什么; 该网站提到了"BG Script"和"BG Profile Toolkit",但我找不到任何有关这些工具的环境/许可的信息.它还提到为"8051"编写C代码(不知道这是什么).编写该代码需要什么环境/编译器?此外,许可条款是什么?

development-environment bluetooth bluetooth-lowenergy bluegiga

7
推荐指数
1
解决办法
1万
查看次数

了解BLE中的GATT协议

我最近开始学习开发一个基于微控制器的设备,它将具有BLE模块.该设备应该将从传感器获取的模拟读数发送到我要开发的Android应用程序.
我所研究的关于GATT的工作方式是:

  1. 基于微控制器的设备将是GATT服务器.
  2. android应用程序将是GATT客户端.
  3. 从通信的角度来看,基于微控制器的设备是Slave,android应用程序是Master.

问题:

  1. 为了从GATT Client接收命令并发送响应(这将是一个浮点值),我如何确定需要定义的属性数?我是否需要有两个不同的属性:一个用于Android发送命令,另一个用于基于微控制器的设备向android发送数据?或者我可以使用单个属性?
  2. GATT似乎是一个事件驱动的系统.
    2.1:当android向基于微控制器的设备发送命令时会产生什么事件:(客户端到服务器)?
    2.2:当数据写在Android应用程序将要读取的属性上时,是否会生成事件:(服务器到客户端)?
  3. Android应用程序(GATT客户端)应该使用读/写命令与基于微控制器的设备(GATT服务器)进行通信.并且,GATT服务器应使用Notify/Indicate将数据传递给GATT客户端.我的理解是否正确?

我正在使用这个BlueGiga BLE112模块进行开发.

我到目前为止编写的gatt.xml文件是:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 1800: org.bluetooth.service.generic_access -->
<service uuid="1800" id="generic_access">
  <description>Generic Access</description>
  <!-- 2A00: org.bluetooth.characteristic.gap.device_name -->
    <characteristic uuid="2A00" id="c_device_name">
      <description>Device Name</description>
      <properties read="true" const="true" />
      <value>MyBLEDev</value>
    </characteristic>
  <!-- 2A01: org.bluetooth.characteristic.gap.appearance -->
    <characteristic uuid="2A01" id="c_appearance">
      <description>Appearance</description>
      <properties read="true" const="true" />
      <value type="hex">0300</value>
    </characteristic>
  </service>

  <!-- custom service -->
  <service uuid="624e957f-cb42-4cd6-bacc-84aeb898f69b" advertise="true">
    <description>Custom Device Service</description>

    <!-- custom write-only characteristic for Client to send …
Run Code Online (Sandbox Code Playgroud)

bluetooth-lowenergy gatt bluegiga

6
推荐指数
1
解决办法
6647
查看次数

蓝牙数据更新通知未触发

从蓝牙外围设备读取数据时遇到一些问题。我们有一个带有以下gatt详细信息的蓝牙设备。

<service uuid="service id" advertise="true">
    <description>XXXX service</description>
    <characteristic uuid="characteristic id" id="xgatt_data">
        <description>Data</description>
        <properties write="true" indicate="true" />
        <value variable_length="true" length="20" type="user" />
    </characteristic>
</service>
Run Code Online (Sandbox Code Playgroud)

我在做什么

  • 搜索具有“服务ID”的外围设备
  • 找到后连接到外围设备,并保持对其的强烈参考。
  • 连接设置委托并搜索提供的所有服务后
  • 循环所有服务并在发现服务后扫描特征
  • 找到所需特性后,我将启用通知
  • 在按钮上单击我正在将数据写入特征

我能够连接到设备。而且我也可以向外围设备发送命令(数据)。一旦我们向设备发送任何命令,它就会发送一些数据作为响应。我可以在设备上看到日志,一旦接收到任何命令,它就会发送一些数据。但是在我的iOS设备上,我无法通过使用通知或常规读取功能来读取数据。我在这里想念什么?

bluetooth objective-c ios core-bluetooth bluegiga

5
推荐指数
1
解决办法
445
查看次数

CoreBluetooth 外设标识符更改

我正在使用 CoreBluetooth 连接到我使用 BlueGiga BLE113 模块开发的多个相同的蓝牙秤。我的应用程序保留每个秤的 CBPeripheral.Identifier.UUIDString 的本地副本以及有关该物理秤的一些相关数据,以便我可以区分它们。例如“比例 A”和“比例 B”

我的麻烦是设备的 UUIDString 经常发生变化。我可以针对一台设备开发几天,然后有一天 UUID 会有所不同。体重秤尚未重置,应用程序尚未重新启动,手机上的蓝牙也尚未循环。

我需要一种方法来可靠地识别每个蓝牙外围设备(规模),并且我不想在生产过程中将标识符硬编码到每个设备中。

有没有更好的方法来长期识别外设?

bluetooth ios core-bluetooth bluegiga

4
推荐指数
1
解决办法
3214
查看次数