首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLE112模块BGAPI中的BlueGiga读写错误

BLE112模块BGAPI中的BlueGiga读写错误
EN

Stack Overflow用户
提问于 2014-02-19 14:49:05
回答 2查看 2.9K关注 0票数 1

我正试图通过BLE112实现BLE112智能灯笼BlueGiga之间的通信。

这两个支持AT命令集。

我已经成功地在BLEGUI工具上执行了这两者之间的配对,如下面的屏幕快照所示。

对于读取操作,控制台显示如下:

代码语言:javascript
复制
ble_cmd_attclient_read_by_handle connection: 0 chrhandle: 3
TX: 00030404000300

ble_rsp_attclient_read_by_handle connection: 0 result: 0 ['No Error']
RX: 00030404000000

ble_evt_attclient_attribute_value connection: 0 atthandle: 3 type: 0 value:426c75656769676120554152542044656d6f
RX: 801704050003000012426c75656769676120554152542044656d6f

上面的行意味着客户端(BLED112 USB )能够读取存储在服务器(BLE112板)中的第三个吸引值。自从我收到它,这个价值就一直在里面。

下面的部分显示了我试图读取设备上没有出现的第7个属性,但我打算创建。由于下面的read命令是由我直接写到BLEGUI的控制台上的,所以它以一种不同于通过BLEGUI上的按钮发送的方式出现。

代码语言:javascript
复制
ble_cmd_attclient_read_by_handle 0 7 
TX: 00030404000700  

ble_rsp_attclient_read_by_handle connection: 0 result: 0 ['No Error']
RX: 00030404000700

ble_evt_attclient_procedure_completed connection: 0 result: 401 ['The attribute handle given was not valid on this server']chrhandle: 7
RX: 800504010001040700

我有以下问题:

  1. 我可以在设备上创建新的(用户定义的)属性吗?
  2. 我可以写入/更改设备上的现有属性吗?
  3. 如果我打算将任何数据存储到设备上,如何做到这一点?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-26 17:14:27

是的,您可以创建自己的固件并将其上传到BLE112板上,并提供由您定义的服务和特性。这个过程中的一个很好的指南是Bluegiga的应用说明“开发您的第一个蓝牙智能应用程序”,可以在这里找到:BLE112文档和软件

关于存储数据,BLE112有一个持久存储,您可以在其中存储(键,值)对。查看有关如何访问它的详细信息的“蓝牙智能软件API参考”文档。此文档也可在上述链接下找到。

票数 2
EN

Stack Overflow用户

发布于 2015-03-26 05:03:48

对于以后看这个问题的人,我将尝试嵌入一些示例代码。

我可以在设备上创建新的(用户定义的)属性吗? 我可以写入/更改设备上的现有属性吗?

@stathisv提供了Bluegiga文档的链接,但下面是一些实用示例:https://github.com/sureshjoshi/ble113-firmware-examples

您需要编辑gatt.xml,定义服务(或使用现有的)并定义特性。例如:

代码语言:javascript
复制
<service uuid="aaa51666-e7cb-469b-8e4d-2742f1ba7aaa" advertise="true">
        <characteristic uuid="0dddd780-b042-4876-aae1-112855353ddd" id="xgatt_who">
            <description>Who Am I</description>
            <properties read="true" notify="true" />
            <value length="1" />
        </characteristic>   
</service>

如果我打算将任何数据存储到设备上,如何做到这一点?

我已经在这里编写了一个可编译的示例:https://github.com/sureshjoshi/ble113-firmware-examples/tree/master/Persistence,但是基本原理就像两个API命令一样简单:

代码语言:javascript
复制
# Write value to PS-store
call flash_ps_save($8000, 2, value_data(0:2))

# Read value from PS-store
call flash_ps_load($8000)(read_result, len, data(0:2))

唯一真正的诀窍是$8000,这是Bluegiga文档中的第一个可用(持久)内存地址。

请注意,如果您使用CC-调试器或OTA编程覆盖BLE112/BLE113固件,则会删除所有持久的闪存信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21883950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档