jonas-schievink/rubble

Implement AccessAddress generation

开放

#16 创建于 2019年3月20日

 (0 条评论) (0 个反应) (0 位负责人)Rust (61 个派生)user submission
area: link layerhelp wantedstatus: needs codetype: enhancement

仓库指标

星标
 (403 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

This is needed if the device wants to initiate a connection (by sending a connection request PDU), it is not needed if the device is just a peripheral that accepts a connection. It is specified in Part B 2.1.2 of Bluetooth Core v4.2.

Depends on #2.

Things that need to be done:

  • Create a struct AccessAddress(u32); newtype
  • Replace current uses of u32 for access addresses with the new type
    • The current advertising::ACCESS_ADDRESS constant can be replaced by an associated const AccessAddress::ADVERTISING
  • Implement Debug by hand and print the hex representation of the address
  • Implement a is_valid method that checks the requirements in the specification (also implement a lot of unit tests for this)
  • Implement a random constructor method that uses a rand_core::RngCore implementor to generate a random AccessAddress that adheres to the specified requirements

贡献者指南