Browse Source

Added support for the system fault bit as well as source panel type for messages.

pyserial_fix
Scott Petersen 10 years ago
parent
commit
eb699b6032
1 changed files with 9 additions and 1 deletions
  1. +9
    -1
      alarmdecoder/messages.py

+ 9
- 1
alarmdecoder/messages.py View File

@@ -16,6 +16,7 @@ import re
import datetime

from .util import InvalidMessageError
from .panels import MODES, ADEMCO, DSC


class BaseMessage(object):
@@ -95,6 +96,10 @@ class Message(BaseMessage):
"""Indicates whether or not there are zones that require attention."""
perimeter_only = False
"""Indicates whether or not the perimeter is armed."""
system_fault = False
"""Indicates whether a system fault has occurred."""
panel_type = ADEMCO
"""Indicates which panel type was the source of this message."""
numeric_code = None
"""The numeric code associated with the message."""
text = None
@@ -158,7 +163,10 @@ class Message(BaseMessage):
self.fire_alarm = is_bit_set(14)
self.check_zone = is_bit_set(15)
self.perimeter_only = is_bit_set(16)
# bits 17-20 unused.
self.system_fault = is_bit_set(17)
if self.bitfield[18] in MODES.keys():
self.panel_type = MODES.keys()[MODES.values().index(self.bitfield[18])])
# pos 20-21 - Unused.
self.text = alpha.strip('"')

if int(self.panel_data[19:21], 16) & 0x01 > 0:


Loading…
Cancel
Save