added stateful behavior

This commit is contained in:
nepoz 2021-07-05 11:26:46 -05:00
parent f141b95d8f
commit 4987c7d3e2

View file

@ -17,6 +17,7 @@ class Module(core.module.Module):
self._is_wireless = True self._is_wireless = True
self._interface = None self._interface = None
self._message = None self._message = None
self.__signal = -110
def network(self, widgets): def network(self, widgets):
# run ip route command, tokenize output # run ip route command, tokenize output
@ -51,18 +52,26 @@ class Module(core.module.Module):
config_dat = " ".join(util.cli.execute(cmd).split()) config_dat = " ".join(util.cli.execute(cmd).split())
config_tokens = config_dat.replace("=", " ").split() config_tokens = config_dat.replace("=", " ").split()
strength = config_tokens[config_tokens.index("level") + 1] strength = config_tokens[config_tokens.index("level") + 1]
strength = util.format.asint(strength, minimum=-110, maximum=-30) self.__signal = util.format.asint(strength, minimum=-110, maximum=-30)
self._message = self.__generate_wireless_message(ssid, strength) self._message = self.__generate_wireless_message(ssid, self.__signal)
else: else:
self._message = self._message self._message = self._message
return self._message return self._message
def state(self, widget):
if self.__signal < -65:
return "warning"
if self.__signal < -80:
return "critical"
return None
def __generate_wireless_message(self, ssid, strength): def __generate_wireless_message(self, ssid, strength):
computed_strength = 100 * (strength + 110) / 70.0 computed_strength = 100 * ((strength + 100) / 70.0)
if computed_strength < 25: if computed_strength < 30:
return ssid + " poor" return ssid + " poor"
if computed_strength < 50: if computed_strength < 50:
return ssid + " fair" return ssid + " fair"