method to return if lora.nvram is available
- 
					
					
					
					
 When a device has rebooted from a deepsleep, is there a simple method to check if lora.nvram_save() was implemented and can be used with lora.nvram_restore()? 
 line 3 in the sample code below is what I am trying to achieve, however calling lora.nvram_restore() does not return a value, so it cannot be used.
 Any ideas?from network import LoRa lora = LoRa(mode=LoRa.LORAWAN) if lora.nvram_restore(): #I want to do something like this lora.nvram_restore() while not lora.has_joined(): time.sleep(0.5) else: lora = LoRa(mode=LoRa.LORAWAN, region=LoRa.AU915, adr=False, tx_retries=0, device_class=LoRa.CLASS_A) appeui = binascii.unhexlify(app_eui) appkey = binascii.unhexlify(app_key) lora.join(activation=LoRa.OTAA, auth=(appeui, appkey), timeout=0) s = socket.socket(socket.AF_LORA, socket.SOCK_RAW) s.setsockopt(socket.SOL_LORA, socket.SO_DR, 5) s.setblocking(True) s.send("some data") s.setblocking(False) rev_data = s.recv(64) print('recieved data: ', rev_data) lora.nvram_save() machine.deepsleep(some_time)
 
- 
					
					
					
					
 OK @Asb comment got me thinking that everyone seems to be fine with the lora.has_joined() method call. 
 So I put a slight delay following the nvram_restore call, and it seems to work ok. 2 seconds seems to be optimal.
 This code seems to work most of the time.lora = LoRa(mode=LoRa.LORAWAN) lora.nvram_restore(): time.sleep(2) if not lora.has_joined(): print('failed to join via nvram_restore') lora = LoRa(mode=LoRa.LORAWAN, region=LoRa.AU915, adr=False, tx_retries=0, device_class=LoRa.CLASS_A) for i in range(16, 65): #AU915 TTN gateways need channels removed lora.remove_channel(i) for i in range(66, 72): lora.remove_channel(i) appeui = binascii.unhexlify(app_eui) appkey = binascii.unhexlify(app_key) lora.join(activation=LoRa.OTAA, auth=(appeui, appkey), timeout=0) while not lora.has_joined(): print('trying to join OTAA') time.sleep(0.5) print('connected and ready to publish') s = socket.socket(socket.AF_LORA, socket.SOCK_RAW) s.setsockopt(socket.SOL_LORA, socket.SO_DR, 5) s.setblocking(True) s.send("some data") s.setblocking(False) rev_data = s.recv(64) print('recieved data: ', rev_data) lora.nvram_save() time.sleep(2)
 
- 
					
					
					
					
 @Asb thanks for the response. 
 As you can see from the code, I am using lora.has_joined() method. However lora.has_joined() takes some time to connect and return True, also the time it takes to connect is not predictable.
 I hoped to call a method that immediately returned a Boolean to reduce time 'wasted' waiting to connect when nvram_save() was never used.
 
- 
					
					
					
					
 If you start by calling nvram_restore, you can check usinglora.has_joined(), iflora.navram_save()was successfully saved,lora.has_joined()will returntrue
 
