(&self, prefix_length: u32, nwkid_bits: u32)
| 94 | } |
| 95 | |
| 96 | fn get_dev_addr_prefix(&self, prefix_length: u32, nwkid_bits: u32) -> DevAddrPrefix { |
| 97 | // type prefix |
| 98 | let mut prefix: u32 = 254 << (32 - prefix_length); |
| 99 | |
| 100 | // NwkID prefix |
| 101 | let mut netid_bytes: [u8; 4] = [0; 4]; |
| 102 | let netid_id = self.id(); |
| 103 | netid_bytes[4 - netid_id.len()..].clone_from_slice(&netid_id); |
| 104 | let mut nwkid = u32::from_be_bytes(netid_bytes); |
| 105 | nwkid <<= 32 - nwkid_bits; // truncate the MSB of the NetID ID field |
| 106 | nwkid >>= prefix_length; // shift base for the prefix MSB |
| 107 | |
| 108 | // merge type prefix with nwkid. |
| 109 | prefix |= nwkid; |
| 110 | |
| 111 | DevAddrPrefix::new(prefix.to_be_bytes(), prefix_length + nwkid_bits) |
| 112 | } |
| 113 | } |
| 114 | |
| 115 | impl fmt::Display for NetID { |
no test coverage detected