1
0
mirror of https://github.com/JoelBender/bacpypes synced 2025-09-28 22:15:23 +08:00

clean up debugging

This commit is contained in:
Joel Bender 2016-02-27 22:22:43 -05:00
parent c96ff1e018
commit b983e3e2af
2 changed files with 40 additions and 22 deletions

View File

@ -29,6 +29,8 @@ The OCTETSTR is an optional sequence of pairs of hex characters.
The CHARSTR can be single quoted (') or double quoted (").
The BITSTR is an optional sequence of 0 or 1 digits.
The DATESTR and TIMESTR are patterns matched by associated primitive data
type classes Date and Time.
@ -127,62 +129,72 @@ def statement(pattern):
#
@statement(r"opening(\s+tag)?(\s+context)? [0-9]+")
@bacpypes_debugging
def opening_tag_statement(value):
if _debug: ExtendedTagList._debug("opening_tag_statement %r", value)
if _debug: opening_tag_statement._debug("opening_tag_statement %r", value)
return OpeningTag(int(value))
@statement(r"closing(\s+tag)?(\s+context)? [0-9]+")
@bacpypes_debugging
def closing_tag_statement(value):
if _debug: ExtendedTagList._debug("closing_tag_statement %r", value)
if _debug: closing_tag_statement._debug("closing_tag_statement %r", value)
return ClosingTag(int(value))
@statement(r"null")
@bacpypes_debugging
def null_statement(value):
if _debug: ExtendedTagList._debug("null_statement %r", value)
if _debug: null_statement._debug("null_statement %r", value)
return Null()
@statement(r"boolean false|true")
@bacpypes_debugging
def boolean_statement(value):
if _debug: ExtendedTagList._debug("boolean_statement %r", value)
if _debug: boolean_statement._debug("boolean_statement %r", value)
return Boolean(value)
@statement(r"unsigned [0-9]+")
@bacpypes_debugging
def unsigned_statement(value):
if _debug: ExtendedTagList._debug("unsigned_statement %r", value)
if _debug: unsigned_statement._debug("unsigned_statement %r", value)
return Unsigned(int(value))
@statement(r"integer [+-]?[0-9]+")
@bacpypes_debugging
def integer_statement(value):
if _debug: ExtendedTagList._debug("integer_statement %r", value)
if _debug: integer_statement._debug("integer_statement %r", value)
return Integer(int(value))
@statement(r"real [+-]?[0-9]+([.][0-9]+)?|nan")
@bacpypes_debugging
def real_statement(value):
if _debug: ExtendedTagList._debug("real_statement %r", value)
if _debug: real_statement._debug("real_statement %r", value)
return Real(float(value))
@statement(r"double [+-]?[0-9]+([.][0-9]+)?|nan")
@bacpypes_debugging
def double_statement(value):
if _debug: ExtendedTagList._debug("double_statement %r", value)
if _debug: double_statement._debug("double_statement %r", value)
return Double(float(value))
@statement(r"octet(\s+string)? ([0-9A-Fa-f][0-9A-Fa-f][.]?)*")
@bacpypes_debugging
def octet_string_statement(value):
if _debug: ExtendedTagList._debug("octet_string_statement %r", value)
if _debug: octet_string_statement._debug("octet_string_statement %r", value)
return OctetString(xtob(value.replace('.', '')))
@statement(r"""(character\s+)?string ([0-9]+\s+)?(?P<q>['"]).*(?P=q)""")
@bacpypes_debugging
def character_string_statement(value):
if _debug: ExtendedTagList._debug("character_string_statement %r", value)
if _debug: character_string_statement._debug("character_string_statement %r", value)
# chop off the encoding
encoding = None
@ -202,42 +214,47 @@ def character_string_statement(value):
return element
@statement(r"bit(\s+string)? [01]*")
@bacpypes_debugging
def bit_string_statement(value):
if _debug: ExtendedTagList._debug("bit_string_statement %r", value)
if _debug: bit_string_statement._debug("bit_string_statement %r", value)
return BitString([int(c) for c in value])
@statement(r"enumerated [0-9]+")
@bacpypes_debugging
def enumerated_statement(value):
if _debug: ExtendedTagList._debug("enumerated_statement %r", value)
if _debug: enumerated_statement._debug("enumerated_statement %r", value)
return Enumerated(int(value))
@statement(r"date [*\w/-]+(\s+[*\w]+)?")
@bacpypes_debugging
def date_statement(value):
if _debug: ExtendedTagList._debug("date_statement %r", value)
if _debug: date_statement._debug("date_statement %r", value)
return Date(value)
@statement(r"time [*\d:.]+")
@bacpypes_debugging
def time_statement(value):
if _debug: ExtendedTagList._debug("time_statement %r", value)
if _debug: time_statement._debug("time_statement %r", value)
return Time(value)
@statement(r"object(\s+identifier)? [\w]+(\s+|\s*[,]\s*)[\d]+")
@bacpypes_debugging
def object_identifier_statement(value):
if _debug: ExtendedTagList._debug("object_identifier_statement %r", value)
if _debug: object_identifier_statement._debug("object_identifier_statement %r", value)
# split into two pieces
object_type, object_instance = re.split('[, ]+', value)
if object_type.isdigit():
object_type = int(object_type)
if _debug: ExtendedTagList._debug(" - object_type: %r", object_type)
if _debug: object_identifier_statement._debug(" - object_type: %r", object_type)
object_instance = int(object_instance)
if _debug: ExtendedTagList._debug(" - object_instance: %r", object_instance)
if _debug: object_identifier_statement._debug(" - object_instance: %r", object_instance)
return ObjectIdentifier(object_type, object_instance)
@ -245,6 +262,7 @@ def object_identifier_statement(value):
# statement_to_tag
#
@bacpypes_debugging
def statement_to_tag(line):
"""Parse a line of text and return the appropriate tag."""
if _debug: statement_to_tag._debug("statement_to_tag %r", line)

View File

@ -72,7 +72,7 @@ def date_endec(v, x):
class TestDate(unittest.TestCase):
def test_date(self):
if _debug: TestInteger._debug("test_date")
if _debug: TestDate._debug("test_date")
# default values is all dont care
obj = Date()
@ -84,14 +84,14 @@ class TestDate(unittest.TestCase):
Date(1.0)
def test_date_tuple(self):
if _debug: TestInteger._debug("test_date_tuple")
if _debug: TestDate._debug("test_date_tuple")
obj = Date((1,2,3,4))
assert obj.value == (1,2,3,4)
assert str(obj) == "Date(1901-2-3 thu)"
def test_date_tag(self):
if _debug: TestInteger._debug("test_date_tag")
if _debug: TestDate._debug("test_date_tag")
tag = Tag(Tag.applicationTagClass, Tag.dateAppTag, 4, xtob('01020304'))
obj = Date(tag)
@ -110,7 +110,7 @@ class TestDate(unittest.TestCase):
Date(tag)
def test_date_copy(self):
if _debug: TestInteger._debug("test_date_copy")
if _debug: TestDate._debug("test_date_copy")
value = (1, 2, 3, 4)
obj1 = Date(value)
@ -118,7 +118,7 @@ class TestDate(unittest.TestCase):
assert obj2.value == value
def test_date_endec(self):
if _debug: TestInteger._debug("test_date_endec")
if _debug: TestDate._debug("test_date_endec")
with self.assertRaises(InvalidTag):
obj = Date(date_tag(''))