|
@@ -182,6 +182,8 @@ class AD2USB(object): |
|
|
F3 = unichr(3) + unichr(3) + unichr(3) |
|
|
F3 = unichr(3) + unichr(3) + unichr(3) |
|
|
F4 = unichr(4) + unichr(4) + unichr(4) |
|
|
F4 = unichr(4) + unichr(4) + unichr(4) |
|
|
|
|
|
|
|
|
|
|
|
BATTERY_TIMEOUT = 30 |
|
|
|
|
|
|
|
|
def __init__(self, device): |
|
|
def __init__(self, device): |
|
|
""" |
|
|
""" |
|
|
Constructor |
|
|
Constructor |
|
@@ -194,7 +196,8 @@ class AD2USB(object): |
|
|
self._bypass_status = None |
|
|
self._bypass_status = None |
|
|
self._armed_status = None |
|
|
self._armed_status = None |
|
|
self._fire_status = None |
|
|
self._fire_status = None |
|
|
self._battery_status = None |
|
|
|
|
|
|
|
|
self._battery_status = (False, 0) |
|
|
|
|
|
self._previous_battery_status = (None, 0) |
|
|
self._panic_status = None |
|
|
self._panic_status = None |
|
|
|
|
|
|
|
|
self.address = 18 |
|
|
self.address = 18 |
|
@@ -410,13 +413,19 @@ class AD2USB(object): |
|
|
else: |
|
|
else: |
|
|
self.on_disarm() |
|
|
self.on_disarm() |
|
|
|
|
|
|
|
|
# TODO: This needs a timeout or something.. only set on the LO BAT messages |
|
|
|
|
|
# instead of all messages after. |
|
|
|
|
|
if message.battery_low != self._battery_status: |
|
|
|
|
|
self._battery_status, old_status = message.battery_low, self._battery_status |
|
|
|
|
|
|
|
|
# Battery status toggle. This is kinda ugly.. may be a better way to do it. |
|
|
|
|
|
if message.battery_low != self._battery_status[0]: |
|
|
|
|
|
if time.time() > self._battery_status[1] + AD2USB.BATTERY_TIMEOUT: |
|
|
|
|
|
self._battery_status, self._previous_battery_status = (message.battery_low, time.time()), self._battery_status |
|
|
|
|
|
|
|
|
|
|
|
self.on_low_battery(self._battery_status) |
|
|
|
|
|
|
|
|
|
|
|
else: |
|
|
|
|
|
self._previous_battery_status = self._battery_status |
|
|
|
|
|
|
|
|
if old_status is not None and self._battery_status == True: |
|
|
|
|
|
self.on_low_battery(self._battery_status) |
|
|
|
|
|
|
|
|
else: |
|
|
|
|
|
if self._battery_status[0] == self._previous_battery_status[0]: |
|
|
|
|
|
self._battery_status = (self._battery_status[0], time.time()) |
|
|
|
|
|
|
|
|
# TODO: Also needs a timeout. |
|
|
# TODO: Also needs a timeout. |
|
|
if message.fire_alarm != self._fire_status: |
|
|
if message.fire_alarm != self._fire_status: |
|
|