Browse Source

Merge branch 'dev' of git.corp.nutech.com:ad2usb/pyad2usb into dev

pyserial_fix
Scott Petersen 8 years ago
parent
commit
db1e40cfb3
1 changed files with 38 additions and 0 deletions
  1. +38
    -0
      alarmdecoder/decoder.py

+ 38
- 0
alarmdecoder/decoder.py View File

@@ -87,6 +87,14 @@ class AlarmDecoder(object):
mode = ADEMCO
"""The panel mode that the AlarmDecoder is in. Currently supports ADEMCO and DSC."""

#Version Information
serial_number = 0xFFFFFFFF
"""The device serial number"""
version_number = 'Unknown'
"""The device firmware version"""
version_flags = ""
"""Device flags enabled"""

def __init__(self, device):
"""
Constructor
@@ -119,6 +127,10 @@ class AlarmDecoder(object):
self.deduplicate = False
self.mode = ADEMCO

self.serial_number = 0xFFFFFFFF
self.version_number = 'Unknown'
self.version_flags = ""

def __enter__(self):
"""
Support for context manager __enter__.
@@ -266,6 +278,12 @@ class AlarmDecoder(object):

return '&'.join(['='.join(t) for t in config_entries])

def get_version(self):
"""
Retrieves the version string from the device. Called automatically by :py:meth:`_on_open`.
"""
self.send("V\r")

def reboot(self):
"""
Reboots the device.
@@ -354,6 +372,9 @@ class AlarmDecoder(object):
elif data.startswith('!CONFIG'):
self._handle_config(data)

elif data.startswith('!VER'):
self._handle_version(data)

elif data.startswith('!Sending'):
self._handle_sending(data)

@@ -432,6 +453,21 @@ class AlarmDecoder(object):

return msg

def _handle_version(self, data):
"""
Handles received version data.
:param data: Version string to parse
:type data: string
"""

_, version_string = data.split(':')
version_parts = version_string.split(',')

self.serial_number = version_parts[0]
self.version_number = version_parts[1]
self.version_flags = version_parts[2]

def _handle_config(self, data):
"""
Handles received configuration data.
@@ -656,6 +692,8 @@ class AlarmDecoder(object):
"""
self.get_config()

self.get_version()

self.on_open()

def _on_close(self, sender, *args, **kwargs):


Loading…
Cancel
Save