status = attmdb_add_attribute(spotar_env.spota_shdl,att_uuid_128_len,// data size = 2(att_uuid_16_len服务uuid) ATT_UUID_16_LEN,(UINT8_T *)&ATT_DECL_SVC,PERM(RD,ENABLE), &(spotar_env.spota_shdl));
status = attmdb_att_set_value(spotar_env.spota_shdl,att_uuid_128_len,(uint8_t *)spotar_service);
嗨jun-ichi tobe,
你的意思是哪个uuid?标识Suota的那个(进入广告字符串的ID)或UUID特征?可以改变它在你想要的UUID中,特征的UUID在Spotar.c文件中定义,但是由于应用程序期望使用该特定UUID查找这些特征,因此您不会能够执行Suota过程。为了开始程序。对于广告字符串的UUID,同样适用于广告字符串的UUID,期望在广告字符串上找到特定的UUID,以便显示该设备具有Suota服务。
谢谢mt_dialog.
你好支持,
对不起,解释是不完整的。
我从日本支持工程师那里得到了评论,所以如下所述添加说明。
据我所知,Spotar.c,有以下意见。
// SIG为Spotar Service(0xFef5)分配了16位UUID。但是,我们使用专有的UUID为特征。
此示例是否使用以下使用128bit UUID而不是ATT_SVC_SPOTAR 0xFEF5?正确的?
#define spota_mem_dev_uuid.
#define spota_gpio_map_uuid.
#define spota_mem_info_uuid.
#define spota_patch_len_uuid.
#define spota_patch_data_uuid.
#define spota_serv_status_uuid.
如果是这样,客户将为外围设备和中央应用程序修改128位UUID。
我认为在两侧修改客户时,两个方面的UUID仍然匹配,因此修改是没有问题。正确的?
顺便说一下,客户在585年工作套筒。这些例子可以在585上工作吗?
问候,
Jun-Ichi.
嗨jun-ichi tobe,
正如日本Collegue提到的那样,如果您更改了拟议外围设备的UUID,则必须在UUID上进行同样的事情,即Suota Central正在寻找。如果两个UUID都在中央和外设都更改,那么是的,Suota将能够使用不同的UUID。这同样适用于585 SDK,如果这是您的要求,585有一个不同的SDK。
谢谢mt_dialog.
嗨支持,
谢谢你的支持。
我认为你的意思是580 SDK的项目不起作用585.对吗?
我想,因为585上的BLE堆栈是更新的。
询问此问题的原因是客户在BOT HOF外围和中央的SUOTA应用于580 SDK。它适用于16位UUID。
现在他们正在为拟议工作585。然后他们想将UUID更改为128bit到Disting 585 Suota,从580个拟议,修改为580 SDK。
请告知他们应该做些什么来确认585的拟议。
此致,
凯西
你好,
是的,580和585之间的SDK是不同的,包括Suota配置文件,我不确定第580页的Suota上的配置文件实现是否将在585上运行,但我不认为这不会用完框。
在580和585上的两个Suota实现都在广告字符串上使用16位UUID,以符合SIG(0xF5FE是对话框为Suota服务保留的16位UUID)。关于Suida应用程序的特征是默认情况下的128bit特征(自其完全简档),因为我提到了一个想要改变外围设备上的UUID的UUID的特征,那么应该将应该应用于特征的UUID修改中央正在寻找。
我不确定我是否正确地获得了这个问题,他们想在585上更改Suota广告UUID,并使它成为128bit而不是16位,以便将580与585套筒应用区分开来?如果是这种情况,那么如果他们不改变手机应用程序的中心侧,以便能够跟踪广告字符串上的特定的128bit号码,那么手机应用程序根本无法跟踪设备。
谢谢mt_dialog.
你好,
谢谢你的评论,抱歉制作混乱。
现在客户只询问580个局面,请忘记大约585,如果可以将16位UUID(0xF5FE)更改为128位。
如果有可能请告诉如何改变。
他们已经检查了Suota代码,他们已经看到了uuid在spotar.c中定义。
特别是如果它们可以在spotar_create_db_req_handler()中可以保留下面的代码,它们是越换的。
这是Spotar_Task.c中的84-89行。
//将服务添加到数据库中
nb_att_16 = 8;// 8 UUID16 ATT
nb_att_32 = 0; //没有UUID32 ATT
nb_att_128 = 6;// 1 UUID128 ATT
status = attmdb_add_service(&(spotar_env.spota_shdl),task_spotar,
nb_att_16,nb_att_32,nb_att_128,153);//总attributte大小= 153,2(SVC)+ 6 * 19(desc_char)+ 37(attr数据)
此致,
凯西
你好,
为了改变SUOTA的服务,以1个128bit的UUID,你将不得不做一些修改,以在功能spotar_create_db_req_handler你提到的spotar_task.c文件。让我们假设128bit uuid将是{0x01,0x02,0x03,0x04,0x08,0x09,0x0.0x11,0x12,0x13,0x10,0x11,0x12,0x13,0x14,0x15,0x16}这将取代0xF5FE。
status = attmdb_add_attribute(spotar_env.spota_shdl,att_uuid_128_len,// data size = 2(att_uuid_16_len服务uuid)
ATT_UUID_16_LEN,(UINT8_T *)&ATT_DECL_SVC,PERM(RD,ENABLE),
&(spotar_env.spota_shdl));
status = attmdb_att_set_value(spotar_env.spota_shdl,att_uuid_128_len,(uint8_t *)spotar_service);
上述更改将从16位到128bit服务将UUID的服务更改为UUID。
为了改变0xF5FE,它是放置在广告串中的UUID中,您只需在广告字符串中放置所需的128位UUID。
例如,允许乘坐具有Suota配置文件实例的接近记者,并将0xF5FE改变为16位UUID,例如0x0102030405070708080909101013141516,因为这需要将其放置在具有有限量的广告串中它可以适合28 + 3强制标志的字节,因为这将是128bit uuid字符串,这意味着您必须使用合适的标记在广告字符串中标记它。
因此,为了授予您刚刚创建的128bit UUID,定义user_advertise_data必须如下更改:
#define user_advertise_data“\ x07”\
adv_type_complete_list_16bit_service_ids \
adv_uuid_link_loss_service \
avd_uuid_immediate_alert_service \
adv_uuid_tx_power_service \
“\ x11”\
adv_type_complete_list_128bit_service_ids \
avv_uuid_spotar_service //这个值是从“\ xfe \ xf5”改变为“\ x01 \ x02 \ x03 \ x04 \ x05 \ x06 \ x07 \ x08 \ x09 \ x10 \ x11 \ x12 \ x13 \ x14 \ x12 \ x13”
但是,我必须提到Suota Android / IOS应用程序不会能够跟踪它或与修改的UUID与设备进行交互。
谢谢mt_dialog.