我正在尝试修改sample128设计,以便它一次可以处理超过1个字节的数据,我运气不太好。是否有一个版本可以一次写入超过1个字节?谢谢
嗨,蓝精灵,您可以通过为Sample128_Task.c行中的Value属性进行更多空间来开始。使用示例128中描述的方法创建新服务比其他服务使用更棘手。您可以将DISS Service Files Cons.c和dist_task.c身份视为基础
感谢您的回复Vesa,为value属性分配更多空间是我已经尝试过的。当我这样做时,我到达NMI处理程序中的断点,该断点表示看门狗已过期。
也许有一个更好的例子比sample128更好?
我的需求很简单,我希望我的移动应用程序向DA14580发送数据请求,DA14580将以约30字节的信息进行响应。
嗨,蓝精灵,
这个错误可能意味着程序被卡住了。关于这个错误,很难说别的。我记得128位UUID服务示例中显示的方法很难使用,因为有很多幻数. 我建议去看dis服务。如果在profiles文件夹中打开文件diss.c和diss_task.c,您会发现使用此方法很容易理解概要文件结构:const struct attm_desc diss_att_db[DIS_IDX_NB]={//设备信息服务声明[DIS_IDX_SVC]={ATT_DECL_PRIMARY_服务,PERM(RD,ENABLE),sizeof(diss_DIS_SVC),大小(diss_disu svc),(uint8_t*)和diss_disu svc},//制造商名称特性声明[DIS_IDX_MANUFACTURER_NAME_CHAR]={ATT_DECL_CHARACTERISTIC,PERM(RD,ENABLE),sizeof(diss_MANUFACTURER_NAME_CHAR),sizeof(diss_制造商名称字符),(uint8_t*)和diss_制造商名称字符},//制造商名称特征值[DIS_IDX_MANUF_NAME_VAL]={ATT_CHAR_MANUF_NAME,PERM(RD,ENABLE),DIS_VAL_MAX_LEN,0,NULL},...};
const struct attm_desc diss_att_db[DIS_IDX_NB]={//设备信息服务声明[DIS_IDX_SVC]={ATT_DECL_PRIMARY_服务,PERM(RD,ENABLE),sizeof(diss_DIS_SVC),大小(diss_disu svc),(uint8_t*)和diss_disu svc},//制造商名称特性声明[DIS_IDX_MANUFACTURER_NAME_CHAR]={ATT_DECL_CHARACTERISTIC,PERM(RD,ENABLE),sizeof(diss_MANUFACTURER_NAME_CHAR),sizeof(diss_制造商名称字符),(uint8_t*)和diss_制造商名称字符},//制造商名称特征值[DIS_IDX_MANUF_NAME_VAL]={ATT_CHAR_MANUF_NAME,PERM(RD,ENABLE),DIS_VAL_MAX_LEN,0,NULL},...};
在diss_task.c中,您有一个函数diss\u创建\u数据库\u请求\u处理程序,它将创建数据库的服务。看看函数调用attm_svc_create_db()在创建数据库请求处理程序中。没有必要用手做神奇的计算。
diss\u创建\u数据库\u请求\u处理程序
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。希望我没有遗漏任何文件
如果你只需要回复30字节的数据,你能考虑只在广告包中不断发送吗?那么手机就不需要请求数据了。或者,在发送数据之前,您是否还需要向设备发送某些特定数据?
再次感谢你这么好的回复。我会仔细检查你说的话,并继续努力。
我确实需要先向设备发送一些特定的数据,然后返回正确的响应,所有有效响应都少于30字节。因此,这似乎是一个简单的任务,但我显然有一些麻烦的SDK。
我很幸运地使用了一个自定义配置文件来发送我的30个字节,但现在我想知道是否可以通过uart添加一个类似于“外围示例”的文本菜单。
更详细地说,我想做的是通过UART打印菜单,选择一个选项(1,2,3,4。。。等)并让DA14580保存一个20字节的值,然后我的移动应用程序可以读取该值。
关于最简单的实现方法有什么想法吗?我曾尝试将它添加到“arch_main()”中,就像在“外围示例”中一样,但这似乎一点也不起作用,因为它在将菜单打印到UART时不断崩溃。
谢谢
请在项目中包括应用程序控制台(dk_apps/src/modules/app/src/app_utils)。应用程序控制台提供拱门印刷厂用于打印格式化文本的函数。语法类似于printfC标准lib提供的功能。不幸的是,App_Console似乎没有提供目前收集输入的手段。请参阅UART.h在peripheral_examples源文件夹中。在那里,你可以找到uart字节功能。确保在da14580_config.h中启用printf函数:#定义CFG_PRINTF. 否则这些函数将不存在
拱门印刷厂
printf
uart字节
#定义CFG_PRINTF
再次感谢你,维萨。正是我需要的。
谢谢你,维萨!我们非常感谢您帮助DA14580用户。如果你很快就要去度假了,祝你圣诞快乐,
BR JE_对话
嗨,蓝精灵,
您可以通过为Sample128_Task.c行中的Value属性进行更多空间来开始。使用示例128中描述的方法创建新服务比其他服务使用更棘手。您可以将DISS Service Files Cons.c和dist_task.c身份视为基础
感谢您的回复Vesa,为value属性分配更多空间是我已经尝试过的。当我这样做时,我到达NMI处理程序中的断点,该断点表示看门狗已过期。
也许有一个更好的例子比sample128更好?
我的需求很简单,我希望我的移动应用程序向DA14580发送数据请求,DA14580将以约30字节的信息进行响应。
嗨,蓝精灵,
这个错误可能意味着程序被卡住了。关于这个错误,很难说别的。我记得128位UUID服务示例中显示的方法很难使用,因为有很多幻数. 我建议去看dis服务。如果在profiles文件夹中打开文件diss.c和diss_task.c,您会发现使用此方法很容易理解概要文件结构:
const struct attm_desc diss_att_db[DIS_IDX_NB]=
{
//设备信息服务声明
[DIS_IDX_SVC]={ATT_DECL_PRIMARY_服务,PERM(RD,ENABLE),sizeof(diss_DIS_SVC),
大小(diss_disu svc),(uint8_t*)和diss_disu svc},
//制造商名称特性声明
[DIS_IDX_MANUFACTURER_NAME_CHAR]={ATT_DECL_CHARACTERISTIC,PERM(RD,ENABLE),sizeof(diss_MANUFACTURER_NAME_CHAR),
sizeof(diss_制造商名称字符),(uint8_t*)和diss_制造商名称字符},
//制造商名称特征值
[DIS_IDX_MANUF_NAME_VAL]={ATT_CHAR_MANUF_NAME,PERM(RD,ENABLE),DIS_VAL_MAX_LEN,0,NULL},
...
};
在diss_task.c中,您有一个函数
diss\u创建\u数据库\u请求\u处理程序
,它将创建数据库的服务。看看函数调用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。希望我没有遗漏任何文件
如果你只需要回复30字节的数据,你能考虑只在广告包中不断发送吗?那么手机就不需要请求数据了。或者,在发送数据之前,您是否还需要向设备发送某些特定数据?
再次感谢你这么好的回复。我会仔细检查你说的话,并继续努力。
我确实需要先向设备发送一些特定的数据,然后返回正确的响应,所有有效响应都少于30字节。因此,这似乎是一个简单的任务,但我显然有一些麻烦的SDK。
我很幸运地使用了一个自定义配置文件来发送我的30个字节,但现在我想知道是否可以通过uart添加一个类似于“外围示例”的文本菜单。
更详细地说,我想做的是通过UART打印菜单,选择一个选项(1,2,3,4。。。等)并让DA14580保存一个20字节的值,然后我的移动应用程序可以读取该值。
关于最简单的实现方法有什么想法吗?我曾尝试将它添加到“arch_main()”中,就像在“外围示例”中一样,但这似乎一点也不起作用,因为它在将菜单打印到UART时不断崩溃。
谢谢
嗨,蓝精灵,
请在项目中包括应用程序控制台(dk_apps/src/modules/app/src/app_utils)。应用程序控制台提供
拱门印刷厂
用于打印格式化文本的函数。语法类似于printf
C标准lib提供的功能。不幸的是,App_Console似乎没有提供目前收集输入的手段。请参阅UART.h在peripheral_examples源文件夹中。在那里,你可以找到uart字节
功能。确保在da14580_config.h中启用printf函数:#定义CFG_PRINTF
. 否则这些函数将不存在谢谢
再次感谢你,维萨。正是我需要的。
谢谢你,维萨!我们非常感谢您帮助DA14580用户。如果你很快就要去度假了,祝你圣诞快乐,
BR JE_对话