Переглянути джерело

Improved Handling of New Zone Faults

Avoids some inaccuracies where a newly faulted zone could cause
other faulted zones to appear as ready temporarily.

Fixes #50
main
KRKeegan 3 роки тому
джерело
коміт
66752a6c88
1 змінених файлів з 10 додано та 2 видалено
  1. +10
    -2
      alarmdecoder/zonetracking.py

+ 10
- 2
alarmdecoder/zonetracking.py Переглянути файл

@@ -198,6 +198,9 @@ class Zonetracker(object):
self._update_zone(zone)
self._clear_zones(zone)

# Save our spot for the next message.
self._last_zone_fault = zone

else:
status = Zone.FAULT
if message.check_zone:
@@ -207,8 +210,8 @@ class Zonetracker(object):
self._zones_faulted.append(zone)
self._zones_faulted.sort()

# Save our spot for the next message.
self._last_zone_fault = zone
# A new zone fault, so it is out of sequence.
self._last_zone_fault = 0

self._clear_expired_zones()

@@ -245,6 +248,11 @@ class Zonetracker(object):
:param zone: current zone being processed
:type zone: int
"""

if self._last_zone_fault == 0:
# We don't know what the last faulted zone was, nothing to do
return

cleared_zones = []
found_last_faulted = found_current = at_end = False



Завантаження…
Відмінити
Зберегти