Added hardware error communication to UI and improved RNode cleanup on teardown
This commit is contained in:
parent
2cdc2bfb58
commit
76545fec4d
|
@ -1,5 +1,4 @@
|
||||||
# TODO: Reset
|
__debug_build__ = False
|
||||||
__debug_build__ = True
|
|
||||||
__disable_shaders__ = True
|
__disable_shaders__ = True
|
||||||
__version__ = "0.2.6"
|
__version__ = "0.2.6"
|
||||||
__variant__ = "beta"
|
__variant__ = "beta"
|
||||||
|
|
|
@ -321,6 +321,7 @@ class SidebandService():
|
||||||
|
|
||||||
time.sleep(sleep_time)
|
time.sleep(sleep_time)
|
||||||
|
|
||||||
|
self.sideband.cleanup()
|
||||||
self.release_locks()
|
self.release_locks()
|
||||||
|
|
||||||
SidebandService().start()
|
SidebandService().start()
|
||||||
|
|
|
@ -9,6 +9,8 @@ import sqlite3
|
||||||
import RNS.vendor.umsgpack as msgpack
|
import RNS.vendor.umsgpack as msgpack
|
||||||
import RNS.Interfaces.Interface as Interface
|
import RNS.Interfaces.Interface as Interface
|
||||||
|
|
||||||
|
from .res import sideband_fb_data
|
||||||
|
|
||||||
if RNS.vendor.platformutils.get_platform() == "android":
|
if RNS.vendor.platformutils.get_platform() == "android":
|
||||||
from jnius import autoclass, cast
|
from jnius import autoclass, cast
|
||||||
|
|
||||||
|
@ -396,7 +398,10 @@ class SidebandCore():
|
||||||
self.active_propagation_node = dest
|
self.active_propagation_node = dest
|
||||||
self.config["last_lxmf_propagation_node"] = dest
|
self.config["last_lxmf_propagation_node"] = dest
|
||||||
self.message_router.set_outbound_propagation_node(dest)
|
self.message_router.set_outbound_propagation_node(dest)
|
||||||
|
|
||||||
|
if not self.is_service:
|
||||||
self.owner_app.root.ids.settings_propagation_node_address.text = RNS.hexrep(dest, delimit=False)
|
self.owner_app.root.ids.settings_propagation_node_address.text = RNS.hexrep(dest, delimit=False)
|
||||||
|
|
||||||
RNS.log("Active propagation node set to: "+RNS.prettyhexrep(dest))
|
RNS.log("Active propagation node set to: "+RNS.prettyhexrep(dest))
|
||||||
self.__save_config()
|
self.__save_config()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -675,6 +680,13 @@ class SidebandCore():
|
||||||
try:
|
try:
|
||||||
entry = result[0]
|
entry = result[0]
|
||||||
val = msgpack.unpackb(entry[1])
|
val = msgpack.unpackb(entry[1])
|
||||||
|
if val == None:
|
||||||
|
db = sqlite3.connect(self.db_path)
|
||||||
|
dbc = db.cursor()
|
||||||
|
query = "delete from persistent where (property=:uprop);"
|
||||||
|
dbc.execute(query, {"uprop": prop.encode("utf-8")})
|
||||||
|
db.commit()
|
||||||
|
|
||||||
return val
|
return val
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
RNS.log("Could not unpack persistent value from database for property \""+str(prop)+"\". The contained exception was: "+str(e), RNS.LOG_ERROR)
|
RNS.log("Could not unpack persistent value from database for property \""+str(prop)+"\". The contained exception was: "+str(e), RNS.LOG_ERROR)
|
||||||
|
@ -1372,6 +1384,14 @@ class SidebandCore():
|
||||||
self.reticulum._add_interface(rnodeinterface, mode = if_mode, ifac_netname = ifac_netname, ifac_netkey = ifac_netkey)
|
self.reticulum._add_interface(rnodeinterface, mode = if_mode, ifac_netname = ifac_netname, ifac_netkey = ifac_netkey)
|
||||||
self.interface_rnode = rnodeinterface
|
self.interface_rnode = rnodeinterface
|
||||||
|
|
||||||
|
if rnodeinterface != None:
|
||||||
|
if len(rnodeinterface.hw_errors) > 0:
|
||||||
|
self.setpersistent("startup.errors.rnode", rnodeinterface.hw_errors[0])
|
||||||
|
|
||||||
|
if self.interface_rnode.online:
|
||||||
|
self.interface_rnode.display_image(sideband_fb_data)
|
||||||
|
self.interface_rnode.enable_external_framebuffer()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
RNS.log("Error while adding RNode Interface. The contained exception was: "+str(e))
|
RNS.log("Error while adding RNode Interface. The contained exception was: "+str(e))
|
||||||
self.interface_rnode = None
|
self.interface_rnode = None
|
||||||
|
@ -1699,6 +1719,11 @@ class SidebandCore():
|
||||||
else:
|
else:
|
||||||
return "Unknown"
|
return "Unknown"
|
||||||
|
|
||||||
|
def cleanup(self):
|
||||||
|
if RNS.vendor.platformutils.get_platform() == "android":
|
||||||
|
if not self.reticulum.is_connected_to_shared_instance:
|
||||||
|
RNS.Transport.detach_interfaces()
|
||||||
|
|
||||||
rns_config = """
|
rns_config = """
|
||||||
[reticulum]
|
[reticulum]
|
||||||
enable_transport = TRANSPORT_IS_ENABLED
|
enable_transport = TRANSPORT_IS_ENABLED
|
||||||
|
|
Loading…
Reference in New Issue