关于每个服务特征数量的问题

12个帖子/ 0新
最后一篇
曼希克林
离线
最后一次露面:4年1个月前
加入:2016-08-26 06:08
关于每个服务特征数量的问题

你好,
当我创建枚举类型EX时,我对每项服务有限的特征有很多麻烦,请:
枚举{
//服务ADC1控制
cust1_idx_svc_adc1_control = 0,//服务ADC1
cust1_idx_svc_adc2_control,//服务ADC2
cust1_idx_svc_adc3_control,//服务ADC3
cust1_idx_svc_adc4_control,//服务ADC4
cust1_idx_svc_thermistor_control,//服务热敏电阻
// ADC1传感器的特性
/ ***************************** /
char_adc1_cont_notif_type_char,
char_adc1_cont_notif_type_val,
char_adc1_cont_notif_type_user_desc,
.......................
.......................
cust1_idx_nb,
}

因此,Cust1_IDX_NB的MAX是46,为什么Cust1_DX_NB的限制为46.当我创建更多特征构建程序OK时,但是在运行调试代码时停止“void wrap_platform_reset(uint32_t错误)”。我做错了什么?
我在ble_app_peripheral示例版本sdk 5.0.4中更改代码。

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨曼希克灵,

嗨曼希克灵,

您可以在服务中拥有的特征量受到用于数据库的堆量的限制,您获得的平台重置是因为无法分配更多的空间(似乎您的特性超过了为db_heap_sz定义的默认值这是1024),您应该收到一个错误0xf2f2f2f2 reset_mem_alloc_fail。您可以尝试增加DB_HEAP的大小并尝试再次宣传。为了增加数据库堆的大小,转到DA1458x_config_Advanced.h并在#define use_memory_map下添加#define db_heap_sz,例如您想要2048的理想大小。

谢谢mt_dialog.

曼希克林
离线
最后一次露面:4年1个月前
加入:2016-08-26 06:08
嗨mt_dialog,

嗨mt_dialog,
我有了指示的流程,但增加了另一个问题:
//服务CHO ADC1控制
枚举
{
cust1_idx_svc_adc1_control = 0,
// Charectic Cho ADC1传感器
/ ***************************** /
char_adc1_cont_notif_type_char,
char_adc1_cont_notif_type_val,
char_adc1_cont_notif_type_user_desc,

/ ************************ /
char_adc1_notif_value_char,
char_adc1_notif_value_val,
char_adc1_notif_value_ntf_cfg,
char_adc1_notif_value_user_desc,
/ **************************** /
char_adc1_cont_notif_intvl_char,
char_adc1_cont_notif_intvl_val,
// char_adc1_cont_notif_intvl_cfg,
char_adc1_cont_notif_intvl_desc,

/ **************************** /
char_adc1_change_notif_step_char,
char_adc1_change_notif_step_val,
char_adc1_change_notif_step_cfg,
char_adc1_change_notif_step_desc,

/ ****************************** /
char_adc1_cross_notif_thesh_char,
char_adc1_cross_notif_thesh_val,
char_adc1_cross_notif_thesh_cfg,
char_adc1_cross_notif_thesh_desc,
/ ********************************* /
char_adc1_num_cmds_proc_char,
char_adc1_num_cmds_proc_val,
char_adc1_num_cmds_proc_cfg,
char_adc1_num_cmds_proc_desc,
cust1_idx_nb.
}

{
/ *
* char_adc1_cont_notif_type w
* /
[char_adc1_cont_notif_type_char] = {(uint8_t *)和att_decl_char,att_uuid_16_len,perm(rd,启用),
sizeof(custs1_adc1_control_char),sizeof(custs1_adc1_control_char),(uint8_t *)&custs1_adc1_control_char},

//控制点特征值
[char_adc1_cont_notif_type_val] = {cust1_adc1_cont_notif_type_uuid_128,att_uuid_128_len,perm(wr,启用),
def_cust1_ctrladc_point_char_len,0,null},

//控制点特征用户描述
[char_adc1_cont_notif_type_user_desc] = {(uint8_t *)&att_decl_user_desc,att_uuid_16_len,perm(rd,启用),
sizeof(cust1_adc1_cont_notif_type_user_desc) - 1,sizeof(cust1_adc1_cont_notif_type_user_desc) - 1,cust1_adc1_cont_notif_type_user_desc},
}
{
static struct att_char128_desc custs1_adc1_control_char = {att_char_prop_wr_no_resp,
{0,0},
def_cust1_adc1_cont_notif_type_uuid_128};
}

当我从app“ble扫描仪”发送'1'到ble设备特征“char_adc1_cont_notif_type_val”接收='1'所以“char_adc1_cross_notif_thesh_val”发送返回电话是“index ++”但是特征“char_adc1_cont_notif_type”接收索引++它没有接收数据?因为特征有“att_char_prop_wr_no_rep”,为什么?????

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨曼希克灵,

嗨曼希克灵,

我不太了解这个问题,可以让你改写这个问题,你是经验的问题吗?Please dont just paste code, describe your setup and what you would like to do, as far as could understand you send a a write command to your device from the BLE scanner application to a characteristics value and you expect some index value (whatever that value represents) to be send back to your phone and this value appears on your phone but at a wrong characteristic ?

谢谢mt_dialog.

曼希克林
离线
最后一次露面:4年1个月前
加入:2016-08-26 06:08
sory mt_dialog,

对不起mt_dialog,
我的问题:例如:
当我创建第一个特征时属性是“WR”,第二个具有“RD + NTF”。从应用程序“BLE扫描仪”我将数据发送数据“1'到BLE设备,特征第二reieever'1'是真实的,在应用程序中显示了这个节目,但在App”BLE扫描仪“中的第一个特征展示中是十六进制:'0x31'=>错误为什么??因为第一个特征是“WR”而不是“RD或NTF”。我创建了30个Charectic和5服务,我定义文件“da1458x_config_advanced.h”:
#define db_heap_sz 4096.
#define env_heap_sz 2296.
#define msg_heap_sz 6240.
#define non_ret_heap_sz 4096.
#define db_heap_size(4096 + 12)和ble_connection_max_user = 1 in file“da1458x_catter_config.h”。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨曼希奇

嗨曼希奇

我仍然无法理解您想要说的话,但如果您发送“1”,另一侧将其解释为0x31是因为您在十六进制中发送ASCII字符和“1”是0x31。检查BLE扫描仪如何解释接收的数据。

谢谢mt_dialog.

曼希克林
离线
最后一次露面:4年1个月前
加入:2016-08-26 06:08
嗨对话框

嗨对话框
示例:我将“1”从App“BLE扫描仪”发送到BLE设备使用特性1,在收到'1'时,在BLE设备上会增加索引++,因此“BLE扫描仪”特征2将收到'索引++:1,2,3,4......'好的,因为特征2有属性是“Rd + NTF”,但特征1只有“WR”甚至收到'索引++:1,2,3,4 ...''相同的特征2,并显示在“ble中”扫描仪“。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨manhaviking,

嗨manhaviking,

因此,您正在写入可写字符,当处理程序点击时,您在写处理程序中的变量中存储值并增加一个,以及更新可读的其他特征的值,并且您可以更新在手机上看到这一点。如果您希望在可写的特征中读取2(假设您先前发送1),则可以执行此操作,因为索引变量已经增加,但是如果索引变量也会更新可写特征,如果是特征只可写,你不会能够阅读它。

谢谢mt_dialog.

曼希克林
离线
最后一次露面:4年1个月前
加入:2016-08-26 06:08
嗨对话框,

嗨对话框,
正是,只有可写特性的问题,它显示了应用程序“BLE扫描仪”的索引增加。我不知道为什么?请记住,我创建了30个以上表征

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨曼希克灵,

嗨曼希克灵,

所以你已经改变了一个索引,你可以从价值为2的可写特征读取?

谢谢mt_dialog.

曼希克林
离线
最后一次露面:4年1个月前
加入:2016-08-26 06:08
嗨对话框,

嗨对话框,
当我在应用程序中发出“1”在App中发送'1'时,它显示了“索引++”。它应该显示为'0x31'

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨曼希克灵,

嗨曼希克灵,

仍然无法理解你所做的事情,我的意思是我明白你正在增加你从580写入你的表情的价值,我没有得到什么,你什么时候读它你会看到一个不同的数字(我的意思是它是一个可写的特征,即使580改变了数据库中的值,你也不会从BLE扫描仪中读取它,这是一个在BLE扫描仪上指示的值,其最新值是应用程序已发送到的最新值外围)​​。那么,你是否能够通过已经实现的特征复制您在外围示例上看到的内容?

谢谢mt_dialog.