From d8703a4e57a2c84a2dd5c3d09fce98e34c3cd489 Mon Sep 17 00:00:00 2001 From: Joel Bender Date: Thu, 15 Feb 2018 23:09:36 -0500 Subject: [PATCH] merge #160 --- py25/bacpypes/service/device.py | 10 ++++++---- py27/bacpypes/service/device.py | 10 ++++++---- py34/bacpypes/service/device.py | 10 ++++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/py25/bacpypes/service/device.py b/py25/bacpypes/service/device.py index 87e618f..3c0e9ba 100644 --- a/py25/bacpypes/service/device.py +++ b/py25/bacpypes/service/device.py @@ -113,13 +113,15 @@ class LocalDeviceObject(CurrentPropertyListMixIn, DeviceObject): if 'objectIdentifier' not in kwargs: raise RuntimeError("objectIdentifier is required") + # coerce the object identifier + object_identifier = kwargs['objectIdentifier'] + if isinstance(object_identifier, (int, long)): + object_identifier = ('device', object_identifier) + # the object list is provided if 'objectList' in kwargs: raise RuntimeError("objectList is provided by LocalDeviceObject and cannot be overridden") - else: - kwargs['objectList'] = ArrayOf(ObjectIdentifier)([ - kwargs['objectIdentifier'], - ]) + kwargs['objectList'] = ArrayOf(ObjectIdentifier)([object_identifier]) # check for a minimum value if kwargs['maxApduLengthAccepted'] < 50: diff --git a/py27/bacpypes/service/device.py b/py27/bacpypes/service/device.py index 647714b..25283a4 100644 --- a/py27/bacpypes/service/device.py +++ b/py27/bacpypes/service/device.py @@ -114,13 +114,15 @@ class LocalDeviceObject(CurrentPropertyListMixIn, DeviceObject): if 'objectIdentifier' not in kwargs: raise RuntimeError("objectIdentifier is required") + # coerce the object identifier + object_identifier = kwargs['objectIdentifier'] + if isinstance(object_identifier, (int, long)): + object_identifier = ('device', object_identifier) + # the object list is provided if 'objectList' in kwargs: raise RuntimeError("objectList is provided by LocalDeviceObject and cannot be overridden") - else: - kwargs['objectList'] = ArrayOf(ObjectIdentifier)([ - kwargs['objectIdentifier'], - ]) + kwargs['objectList'] = ArrayOf(ObjectIdentifier)([object_identifier]) # check for a minimum value if kwargs['maxApduLengthAccepted'] < 50: diff --git a/py34/bacpypes/service/device.py b/py34/bacpypes/service/device.py index f8871c7..7a97051 100644 --- a/py34/bacpypes/service/device.py +++ b/py34/bacpypes/service/device.py @@ -114,13 +114,15 @@ class LocalDeviceObject(CurrentPropertyListMixIn, DeviceObject): if 'objectIdentifier' not in kwargs: raise RuntimeError("objectIdentifier is required") + # coerce the object identifier + object_identifier = kwargs['objectIdentifier'] + if isinstance(object_identifier, int): + object_identifier = ('device', object_identifier) + # the object list is provided if 'objectList' in kwargs: raise RuntimeError("objectList is provided by LocalDeviceObject and cannot be overridden") - else: - kwargs['objectList'] = ArrayOf(ObjectIdentifier)([ - kwargs['objectIdentifier'], - ]) + kwargs['objectList'] = ArrayOf(ObjectIdentifier)([object_identifier]) # check for a minimum value if kwargs['maxApduLengthAccepted'] < 50: