added basic event handling support to units (not verified)

doublebuf
Ondřej Hruška 7 years ago
parent 64614b8e59
commit 94ae9a3608
Signed by: MightyPork
GPG Key ID: 2C5FD5035250423D
  1. 9
      gex/Unit.py
  2. 3
      gex/units/Pin.py

@ -8,6 +8,11 @@ class Unit:
self.unit_type = self._type() self.unit_type = self._type()
self.callsign = client.get_callsign(name, self.unit_type) self.callsign = client.get_callsign(name, self.unit_type)
def evt_hdl(event: int, payload):
self.on_event(event, payload)
self.client.bind_report_listener(self.callsign, evt_hdl)
def _type(self) -> str: def _type(self) -> str:
raise NotImplementedError("Missing _type() in Unit class \"%s\"" % self.__class__.__name__) raise NotImplementedError("Missing _type() in Unit class \"%s\"" % self.__class__.__name__)
@ -33,3 +38,7 @@ class Unit:
bulk is the data to write. bulk is the data to write.
""" """
self.client.bulk_write(cs=self.callsign, cmd=cmd, id=id, pld=pld, bulk=bulk) self.client.bulk_write(cs=self.callsign, cmd=cmd, id=id, pld=pld, bulk=bulk)
def on_event(self, event:int, payload):
""" Stub for an event handler """
raise NotImplementedError("Missing on_event() in Unit class \"%s\"" % self.__class__.__name__)

@ -4,6 +4,9 @@ class Pin(gex.Unit):
def _type(self): def _type(self):
return 'PIN' return 'PIN'
def on_event(self, event:int, payload):
pass
def off(self): def off(self):
self.send(0x00) self.send(0x00)

Loading…
Cancel
Save