diff --git a/Wallaby/Wallaby.py b/Wallaby/Wallaby.py index 24398f0..6a4fffc 100644 --- a/Wallaby/Wallaby.py +++ b/Wallaby/Wallaby.py @@ -157,9 +157,13 @@ class ListPrograms(Pipe): class Sensor(Pipe): """ + -> {"subscribe" : {"analog" : [1, 2, 3], "digital" : [1, 2, 3]}} {"unsubscribe" : {"analog" : [1, 2, 3], "digital" : [1, 2, 3]}} {"poll_rate" : 10} + + <- + {"analog" : {1 : 1240}, "digital" : {1 : 0, 2 : 0}} """ def run(self, data, peer, handler): if type(data) is dict: @@ -190,7 +194,6 @@ class Sensor(Pipe): self.sensor_readout = SensorReadout(handler) - class WallabyControl(Route): def __init__(self, output_unbuffer): self.output_unbuffer = output_unbuffer @@ -267,9 +270,12 @@ class Processes(Pipe): class Handler(Client): def setup(self, routes, debug=False): - super().setup(routes, piping=True, debug=debug) - + super().setup(routes, debug=debug) + def peer_unavaliable(self, peer): + if self.debug: + Logging.info("Unsubscribing '%s' from all sensor updates." % peer) + self.routes["sensor"].sensor_readout.unsubscribe_all(peer) CONFIG_PATH = "wallaby.cfg"