9个帖子/ 0新
最后发表
cyanolum
离线
最后看到:5年10个月前
加入:2014-11-13 20:59
Sample128问题

我正试图修改sample128设计,以便它可以处理超过1字节在一个时间,我没有太多的运气。是否有一个版本可以一次写入超过1个字节?谢谢!

VesaN
离线
最后看到:5年3个月前
格鲁鲁 主
加入:2014-06-26 08:49
嗨cyanolum,

嗨cyanolum,
您可以通过为Sample128_Task.c行中的Value属性进行更多空间来开始。使用示例128中描述的方法创建新服务比其他服务使用更棘手。您可以将DISS Service Files Cons.c和dist_task.c身份视为基础

cyanolum
离线
最后看到:5年10个月前
加入:2014-11-13 20:59
谢谢你的回复

谢谢你的回复Vesa,为value属性分配更多的空间是我已经尝试过的。当我这样做时,就会到达NMI处理程序中声明看门狗已过期的断点。

也许有一个比sample128更好的例子?

我的需求很简单,我希望我的移动应用程序向DA14580发送一个数据请求,它将响应约30字节的信息。

VesaN
离线
最后看到:5年3个月前
格鲁鲁 主
加入:2014-06-26 08:49
嗨cyanolum,

嗨cyanolum,

这个错误可能意味着程序在某个地方卡住了。关于这个错误,很难说什么别的了。我记得128位UUID服务示例中显示的方法使用起来非常棘手,因为有很多神奇的数字。我建议你去看看这个服务。如果你在profiles文件夹中打开文件diss.c和diss_task.c,你会看到配置文件的结构很容易理解,使用这种方法:

const struct attm_desc diss_att_db[DIS_IDX_NB] =

//设备信息服务声明
[DIS_IDX_SVC] = {ATT_DECL_PRIMARY_SERVICE, PERM(RD, ENABLE), sizeof(dis_dis_svc),
sizeof (diss_dis_svc), (uint8_t *) &diss_dis_svc},
//制造商名称特征声明
[DIS_IDX_MANUFACTURER_NAME_CHAR] = {ATT_DECL_CHARACTERISTIC, PERM(RD, ENABLE), sizeof(dis_manufacturer_name_char),
sizeof (diss_manufacturer_name_char), (uint8_t *) &diss_manufacturer_name_char},
//制造商名称特征值
[dis_idx_manufacturer_name_val] = {att_char_manuf_name, perm (rd, enable), dis_val_max_len, 0, null},
...
};

在diss_task.c中,有一个函数diss_create_db_req_handler,它将创建数据库的服务。看一下函数调用attm_svc_create_db ()在创建数据库请求处理程序中。不需要手工做神奇的计算。

不幸的是,在此方法中只能使用简短的UUID定义。

我发现用当前的SDK创建新的配置文件是不愉快的麻烦。希望在SDK的未来版本中会有一些缓和。

如果您正在创建一个全新的配置文件,请记住修改da14580_config.h、prf_utils.c、rwble_hl_config.h、app_api.h、app_task_handlers.h和rwip_config.h。希望我没有漏掉任何文件

PS.如果你只需要回复30字节的数据,可以考虑在广告包中不断发送吗?这样手机就不需要请求数据了。或者,在数据发送之前,您还需要向设备发送一些特定的数据吗?

cyanolum
离线
最后看到:5年10个月前
加入:2014-11-13 20:59
再次感谢你的vesa

再次感谢Vesa如此好的回复。我会浏览你说过的东西,并继续努力。

我确实需要先向设备发送一些特定的数据,然后发送正确的响应,所有有效的响应都小于30字节。所以这似乎是一个简单的任务,但我显然有一些问题与SDK。

cyanolum
离线
最后看到:5年10个月前
加入:2014-11-13 20:59
我有运气了

我有运气使用自定义配置文件发送我的30字节,但现在我想知道,如果我可以添加一个文本菜单通过uart类似于如何“外围示例”的工作。

更详细地说,我想做的是通过UART打印一个菜单,选择一个选项(1,2,3,4…等等),让DA14580保存一个20字节的值,然后可以被我的移动应用程序读取。

有什么最简单的方法来实现它吗?我尝试过将它添加到“arch_main()”中,就像在“外围示例”中一样,但这似乎并没有很好地工作,因为它在打印菜单到UART时不断崩溃。

谢谢!

VesaN
离线
最后看到:5年3个月前
格鲁鲁 主
加入:2014-06-26 08:49
嗨cyanolum,

嗨cyanolum,

请在你的项目中包含app_console (dk_apps/src/modules/app/src/app_utils)。app_console提供arch_printf函数打印格式化文本。语法类似于printfC标准lib提供的功能。不幸的是,App_Console似乎没有提供目前收集输入的手段。请参阅UART.h在peripheral_examples源文件夹中。在那里,你可以找到uart_reveive_byte函数。请确保在da14580_config.h中启用printf函数:#定义CFG_PRINTF。否则这些函数将不存在

谢谢

cyanolum
离线
最后看到:5年10个月前
加入:2014-11-13 20:59
再次感谢你,维萨。完全

再次感谢你,维萨。这正是我所需要的。

JE_Dialog
离线
最后看到:1天58分钟前
工作人员
加入:2013-12-05 14:02
谢谢Vesa !我们真的

谢谢Vesa !我们非常感谢您对DA14580用户的帮助。如果你很快就要去度假了,祝你圣诞节愉快,

BR JE_Dialog