MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / get_random_dev_addr

Function get_random_dev_addr

chirpstack/src/devaddr.rs:5–23  ·  view source on GitHub ↗
(prefixes: &[lrwn::DevAddrPrefix])

Source from the content-addressed store, hash-verified

3use rand::seq::IndexedRandom;
4
5pub 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}

Callers 4

get_random_dev_addrMethod · 0.85
create_deploymentMethod · 0.85
get_random_dev_addrMethod · 0.85
set_random_dev_addrMethod · 0.85

Calls 2

unwrapMethod · 0.80
set_dev_addr_prefixMethod · 0.80

Tested by

no test coverage detected