(prefixes: &[lrwn::DevAddrPrefix])
| 3 | use rand::seq::IndexedRandom; |
| 4 | |
| 5 | pub fn get_random_dev_addr(prefixes: &[lrwn::DevAddrPrefix]) -> DevAddr { |
| 6 | let mut rng = rand::rng(); |
| 7 | |
| 8 | // Pick a random one (in case multiple prefixes are configured). |
| 9 | let prefix = *prefixes.choose(&mut rng).unwrap(); |
| 10 | |
| 11 | // Generate random DevAddr. |
| 12 | let mut dev_addr: [u8; 4] = [0; 4]; |
| 13 | rng.fill_bytes(&mut dev_addr); |
| 14 | #[cfg(test)] |
| 15 | { |
| 16 | dev_addr = [1, 2, 3, 4]; |
| 17 | } |
| 18 | let mut dev_addr = DevAddr::from_be_bytes(dev_addr); |
| 19 | |
| 20 | // Set DevAddr prefix. |
| 21 | dev_addr.set_dev_addr_prefix(prefix); |
| 22 | dev_addr |
| 23 | } |
no test coverage detected