def load(self, prov_db): """Loads the keys from the provisioning datase and sets the local unicast address. prov_db : Mesh database. """ self.prov_db = prov_db self.__next_free_address = ( self.prov_db.provisioners[0].allocated_unicast_range[0].low_address) for node in self.prov_db.nodes: self.__next_free_address = max(self.__next_free_address, node.unicast_address + len(node.elements)) self.iaci.send(cmd.AddrLocalUnicastSet(self.__address, 1)) for key in self.prov_db.net_keys: self.iaci.send(cmd.SubnetAdd(key.index, key.key)) for key in self.prov_db.app_keys: self.iaci.send(cmd.AppkeyAdd(key.index, key.bound_net_key, key.key))
def quick_setup(self): self.send(cmd.SubnetAdd(0, bytearray(self.DEFAULT_SUBNET_KEY))) self.send(cmd.AppkeyAdd(0, 0, bytearray(self.DEFAULT_APP_KEY))) self.send( cmd.AddrLocalUnicastSet(self.local_unicast_address_start, self.CONFIG.ACCESS_ELEMENT_COUNT))