在Bluetooth 5.0规范中的“2.3.7 AuxPointer”,示例AUX_ADV_IND可以用于指示主广告,并在接收方的AUX_CHAIN_IND消息中指出辅助广告。然而,在规范中,此示例的代码不正确,因为它没有正确地指定链路层帧控制字段的参数。具体来说,实现该示例的代码行:
lld_adv_aux_ptr_set(&p->adv_handle, NULL, aux_offset, 0);
应该更改为:
lld_adv_aux_ptr_set(&p->adv_handle, NULL, aux_offset, LLD_AUX_RANDOM_ADDR);
通过将最后一个参数更改为“LLD_AUX_RANDOM_ADDR”,可以正确设置链路层帧控制字段。这是正确的实现示例代码:
/* Advertising handle generated by the protocol stack */ uint8_t adv_handle;
/* Auxiliary advertisement packet offset */ uint32_t aux_offset;
/* Set up single AUX pointer */ lld_adv_aux_ptr_set(&adv_handle, NULL, aux_offset, LLD_AUX_RANDOM_ADDR);
这个改变可以确保AUX_ADV_IND实例代码正确地指示主广告,同时在接收到AUX_CHAIN_IND消息时提供正确的辅助广告信息。