| @@ -106,6 +106,8 @@ class AD2USB(object): | |||||
| on_read = event.Event('Called when a line has been read from the device') | on_read = event.Event('Called when a line has been read from the device') | ||||
| on_write = event.Event('Called when data has been written to the device') | on_write = event.Event('Called when data has been written to the device') | ||||
| on_message = event.Event('Called when a message has been received from the device.') | |||||
| def __init__(self, device): | def __init__(self, device): | ||||
| self._device = device | self._device = device | ||||
| @@ -126,6 +128,15 @@ class AD2USB(object): | |||||
| self._device.on_read += self._on_read | self._device.on_read += self._on_read | ||||
| self._device.on_write += self._on_write | self._device.on_write += self._on_write | ||||
| def _handle_message(self, data): | |||||
| if data[0] == '!': | |||||
| return None | |||||
| msg = Message() | |||||
| msg.ignore_packet = True | |||||
| print msg.ignore_packet | |||||
| def _on_open(self, sender, args): | def _on_open(self, sender, args): | ||||
| self.on_open(args) | self.on_open(args) | ||||
| @@ -133,7 +144,158 @@ class AD2USB(object): | |||||
| self.on_close(args) | self.on_close(args) | ||||
| def _on_read(self, sender, args): | def _on_read(self, sender, args): | ||||
| msg = self._handle_message(args) | |||||
| if msg: | |||||
| self.on_message(msg) | |||||
| self.on_read(args) | self.on_read(args) | ||||
| def _on_write(self, sender, args): | def _on_write(self, sender, args): | ||||
| self.on_write(args) | self.on_write(args) | ||||
| class Message(object): | |||||
| def __init__(self): | |||||
| self._ignore_packet = False | |||||
| self._ready = False | |||||
| self._armed_away = False | |||||
| self._armed_home = False | |||||
| self._backlight = False | |||||
| self._programming_mode = False | |||||
| self._beeps = -1 | |||||
| self._bypass = False | |||||
| self._ac = False | |||||
| self._chime_mode = False | |||||
| self._alarm_event_occurred = False | |||||
| self._alarm_bell = False | |||||
| self._numeric = "" | |||||
| self._text = "" | |||||
| self._cursor = -1 | |||||
| self._raw_text = "" | |||||
| @property | |||||
| def ignore_packet(self): | |||||
| return self._ignore_packet | |||||
| @ignore_packet.setter | |||||
| def ignore_packet(self, value): | |||||
| self._ignore_packet = value | |||||
| @property | |||||
| def ready(self): | |||||
| return self._ready | |||||
| @ready.setter | |||||
| def ready(self, value): | |||||
| self._ready = value | |||||
| @property | |||||
| def armed_away(self): | |||||
| return self._armed_away | |||||
| @armed_away.setter | |||||
| def armed_away(self, value): | |||||
| self._armed_away = value | |||||
| @property | |||||
| def armed_home(self): | |||||
| return self._armed_home | |||||
| @armed_home.setter | |||||
| def armed_home(self, value): | |||||
| self._armed_home = value | |||||
| @property | |||||
| def backlight(self): | |||||
| return self._backlight | |||||
| @backlight.setter | |||||
| def backlight(self, value): | |||||
| self._backlight = value | |||||
| @property | |||||
| def programming_mode(self): | |||||
| return self._programming_mode | |||||
| @programming_mode.setter | |||||
| def programming_mode(self, value): | |||||
| self._programming_mode = value | |||||
| @property | |||||
| def beeps(self): | |||||
| return self._beeps | |||||
| @beeps.setter | |||||
| def beeps(self, value): | |||||
| self._beeps = value | |||||
| @property | |||||
| def bypass(self): | |||||
| return self._bypass | |||||
| @bypass.setter | |||||
| def bypass(self, value): | |||||
| self._bypass = value | |||||
| @property | |||||
| def ac(self): | |||||
| return self._ac | |||||
| @ac.setter | |||||
| def ac(self, value): | |||||
| self._ac = value | |||||
| @property | |||||
| def chime_mode(self): | |||||
| return self._chime_mode | |||||
| @chime_mode.setter | |||||
| def chime_mode(self, value): | |||||
| self._chime_mode = value | |||||
| @property | |||||
| def alarm_event_occurred(self): | |||||
| return self._alarm_event_occurred | |||||
| @alarm_event_occurred.setter | |||||
| def alarm_event_occurred(self, value): | |||||
| self._alarm_event_occurred = value | |||||
| @property | |||||
| def alarm_bell(self): | |||||
| return self._alarm_bell | |||||
| @alarm_bell.setter | |||||
| def alarm_bell(self, value): | |||||
| self._alarm_bell = value | |||||
| @property | |||||
| def numeric(self): | |||||
| return self._numeric | |||||
| @numeric.setter | |||||
| def numeric(self, value): | |||||
| self._numeric = value | |||||
| @property | |||||
| def text(self): | |||||
| return self._text | |||||
| @text.setter | |||||
| def text(self, value): | |||||
| self._text = value | |||||
| @property | |||||
| def cursor(self): | |||||
| return self._cursor | |||||
| @cursor.setter | |||||
| def cursor(self, value): | |||||
| self._cursor = value | |||||
| @property | |||||
| def raw_text(self): | |||||
| return self._raw_text | |||||
| @raw_text.setter | |||||
| def raw_text(self, value): | |||||
| self._raw_text = value | |||||