Browse Source

Reworked regex so that it doesn't give me nightmares.

pyserial_fix
Scott Petersen 11 years ago
parent
commit
3bdda82c4a
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      alarmdecoder/messages.py

+ 2
- 2
alarmdecoder/messages.py View File

@@ -90,7 +90,7 @@ class Message(BaseMessage):
"""
BaseMessage.__init__(self)

self._regex = re.compile('("(?:[^"]|"")*"|[^,]*),("(?:[^"]|"")*"|[^,]*),("(?:[^"]|"")*"|[^,]*),("(?:[^"]|"")*"|[^,]*)')
self._regex = re.compile('^(!KPE:){0,1}(\[[a-fA-F0-9\-]+\]),([a-fA-F0-9]+),(\[[a-fA-F0-9]+\]),(".+")$')

if data is not None:
self._parse_message(data)
@@ -115,7 +115,7 @@ class Message(BaseMessage):
if match is None:
raise InvalidMessageError('Received invalid message: {0}'.format(data))

self.bitfield, self.numeric_code, self.panel_data, alpha = match.group(1, 2, 3, 4)
header, self.bitfield, self.numeric_code, self.panel_data, alpha = match.group(1, 2, 3, 4, 5)
self.mask = int(self.panel_data[3:3+8], 16)

is_bit_set = lambda bit: not self.bitfield[bit] == "0"


Loading…
Cancel
Save