From 0e0ef9273c73388d955a47bff628594f6a40993d Mon Sep 17 00:00:00 2001 From: Scott Petersen Date: Wed, 16 Oct 2013 13:22:47 -0700 Subject: [PATCH] Added support for grabbing the correct zone from ECP failures. --- pyad2usb/zonetracking.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pyad2usb/zonetracking.py b/pyad2usb/zonetracking.py index 45d3224..6ab3303 100644 --- a/pyad2usb/zonetracking.py +++ b/pyad2usb/zonetracking.py @@ -2,6 +2,7 @@ Provides zone tracking functionality for the AD2USB device family. """ +import re import time from .event import event from . import messages @@ -109,6 +110,19 @@ class Zonetracker(object): except ValueError: zone = int(message.numeric_code, 16) + # NOTE: Odd case for ECP failures. Apparently they report as zone 191 (0xBF) regardless + # of whether or not the 3-digit mode is enabled... so we have to pull it out of the + # alpha message. + if zone == 191: + # TODO: parse message text. + zone_regex = re.compile('^CHECK (\d+).*$') + + m = zone_regex.match(message.text) + if m is None: + return + + zone = m.group(1) + # Add new zones and clear expired ones. if zone in self._zones_faulted: self._update_zone(zone)