我正在尝试修改样本128设计,以便一次处理超过1个字节,我没有太大的运气。是否有一个可用的版本,可以一次编写超过1个字节?谢谢!
氰化物,您可以在sample128_task.c第~103行中为value属性分配更多的空间。使用sample128示例中描述的方法创建新服务比使用其他服务更棘手。你可以检查DIS服务文件diss.c和dis_task .c作为一个基础
感谢您的响应VESA,为value属性分配更多空间是我已经尝试过的。当我这样做时,我在NMI处理程序中达到断点,声明看门狗已过期。
也许可以让我开始比样品128更好的榜样?
我的需求很简单,我希望让我的手机应用程序向DA14580发送数据请求,这将以〜30字节的信息响应。
氰化物,
那个错误可能意味着程序陷入困境。很难对错误说出其他任何事情。我记得,128位UUID服务样本中所示的方法非常棘手,因为有很多魔术数字。我建议看到DIS服务。如果在“配置文件”文件夹中打开“文件段和dist_task.c,则会看到配置文件结构非常容易理解此方法:const struct attm_desc diss_att_db [dis_idx_nb] ={//设备信息服务声明[dis_idx_svc] = {att_decl_primary_service,perm(rd,启用),sizeof(diss_dis_svc),sizeof(diss_dis_svc),(uint8_t *)和diss_dis_svc},//制造商名称特征声明[dis_idx_manufacturer_name_char] = {att_decl_characterativom,perm(rd,启用),sizeof(diss_manufacturer_name_char),sizeof(diss_manufacturer_name_char),(uint8_t *)和dist_manufacturer_name_char},//制造商名称特征值[dis_idx_manufacturer_name_val] = {att_char_manuf_name,perm(rd,启用),dis_val_max_len,0,null},......};
const struct attm_desc diss_att_db [dis_idx_nb] ={//设备信息服务声明[dis_idx_svc] = {att_decl_primary_service,perm(rd,启用),sizeof(diss_dis_svc),sizeof(diss_dis_svc),(uint8_t *)和diss_dis_svc},//制造商名称特征声明[dis_idx_manufacturer_name_char] = {att_decl_characterativom,perm(rd,启用),sizeof(diss_manufacturer_name_char),sizeof(diss_manufacturer_name_char),(uint8_t *)和dist_manufacturer_name_char},//制造商名称特征值[dis_idx_manufacturer_name_val] = {att_char_manuf_name,perm(rd,启用),dis_val_max_len,0,null},......};
在dist_task.c中,您有一个函数diss_create_db_req_handler.,它将为数据库创建服务。看看函数调用ATTM_SVC_CREATE_DB()在创建数据库请求处理程序中。没有必要用手工进行魔法计算。
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个字节的数据,您是否可以考虑一直在广告数据包中发送它?然后手机不需要请求数据。或者您还需要在发送数据之前向设备发送一些特定数据?
再次感谢VESA,以获得这么好的回复。我会透过你所说的事情并继续努力。
我确实需要首先向设备发送一些特定数据,然后发送正确的响应,每个有效响应都小于30字节。所以这似乎是一项简单的任务,但我显然是与SDK有一些麻烦。
我有运气使用自定义配置文件来发送我的30个字节,但现在我想知道我是否可以通过UART添加文本菜单,类似于“外设示例”的工作原理。
更详细地了解我想做的是通过UART打印菜单,选择一个选项(1,2,3,4 ...等),并且具有DA14580保存20个字节值,然后我的手机读取应用程序。
关于最简单的实现这一目标的想法?我尝试将它添加到“Arch_main()”中的“外设示例”,但这似乎并不完全工作,因为它在打印菜单到UART时不断崩溃。
谢谢!
请在项目中包含app_console(dk_apps / src / modules / app / src / app_utils)。app_console提供Arch_printf.打印格式化文本的功能。语法类似于Printf.函数提供的C标准库。不幸的是,app_console目前似乎没有提供收集输入的方法。参见peripheral_examples源文件夹中的uart.h。你可以在那里找到UART_REVEIVE_BYTE.功能。请务必在DA14580_CONFIG中启用PRINTF功能:#define cfg_printf.。否则,这些功能不存在
Arch_printf.
Printf.
UART_REVEIVE_BYTE.
#define cfg_printf.
谢谢
再次感谢VESA。正是我需要的。
谢谢你的vesa!我们非常感谢您帮助DA14580用户。如果你很快前往假期,请让自己成为一个伟大的圣诞节
BR JE_DIALOG.
氰化物,
您可以在sample128_task.c第~103行中为value属性分配更多的空间。使用sample128示例中描述的方法创建新服务比使用其他服务更棘手。你可以检查DIS服务文件diss.c和dis_task .c作为一个基础
感谢您的响应VESA,为value属性分配更多空间是我已经尝试过的。当我这样做时,我在NMI处理程序中达到断点,声明看门狗已过期。
也许可以让我开始比样品128更好的榜样?
我的需求很简单,我希望让我的手机应用程序向DA14580发送数据请求,这将以〜30字节的信息响应。
氰化物,
那个错误可能意味着程序陷入困境。很难对错误说出其他任何事情。我记得,128位UUID服务样本中所示的方法非常棘手,因为有很多魔术数字。我建议看到DIS服务。如果在“配置文件”文件夹中打开“文件段和dist_task.c,则会看到配置文件结构非常容易理解此方法:
const struct attm_desc diss_att_db [dis_idx_nb] =
{
//设备信息服务声明
[dis_idx_svc] = {att_decl_primary_service,perm(rd,启用),sizeof(diss_dis_svc),
sizeof(diss_dis_svc),(uint8_t *)和diss_dis_svc},
//制造商名称特征声明
[dis_idx_manufacturer_name_char] = {att_decl_characterativom,perm(rd,启用),sizeof(diss_manufacturer_name_char),
sizeof(diss_manufacturer_name_char),(uint8_t *)和dist_manufacturer_name_char},
//制造商名称特征值
[dis_idx_manufacturer_name_val] = {att_char_manuf_name,perm(rd,启用),dis_val_max_len,0,null},
......
};
在dist_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个字节的数据,您是否可以考虑一直在广告数据包中发送它?然后手机不需要请求数据。或者您还需要在发送数据之前向设备发送一些特定数据?
再次感谢VESA,以获得这么好的回复。我会透过你所说的事情并继续努力。
我确实需要首先向设备发送一些特定数据,然后发送正确的响应,每个有效响应都小于30字节。所以这似乎是一项简单的任务,但我显然是与SDK有一些麻烦。
我有运气使用自定义配置文件来发送我的30个字节,但现在我想知道我是否可以通过UART添加文本菜单,类似于“外设示例”的工作原理。
更详细地了解我想做的是通过UART打印菜单,选择一个选项(1,2,3,4 ...等),并且具有DA14580保存20个字节值,然后我的手机读取应用程序。
关于最简单的实现这一目标的想法?我尝试将它添加到“Arch_main()”中的“外设示例”,但这似乎并不完全工作,因为它在打印菜单到UART时不断崩溃。
谢谢!
氰化物,
请在项目中包含app_console(dk_apps / src / modules / app / src / app_utils)。app_console提供
Arch_printf.
打印格式化文本的功能。语法类似于Printf.
函数提供的C标准库。不幸的是,app_console目前似乎没有提供收集输入的方法。参见peripheral_examples源文件夹中的uart.h。你可以在那里找到UART_REVEIVE_BYTE.
功能。请务必在DA14580_CONFIG中启用PRINTF功能:#define cfg_printf.
。否则,这些功能不存在谢谢
再次感谢VESA。正是我需要的。
谢谢你的vesa!我们非常感谢您帮助DA14580用户。如果你很快前往假期,请让自己成为一个伟大的圣诞节
BR JE_DIALOG.