Skip to content

Commit

Permalink
Merge pull request #113 from ChristianTremblay/develop
Browse files Browse the repository at this point in the history
Fix to handle IP address
  • Loading branch information
ChristianTremblay committed Oct 16, 2018
2 parents d80314f + 7bb1fba commit 63f630a
Show file tree
Hide file tree
Showing 25 changed files with 460 additions and 1,086 deletions.
5 changes: 3 additions & 2 deletions BAC0/core/devices/Device.py 100644 → 100755
Expand Up @@ -115,7 +115,7 @@ def __init__(self, address=None, device_id=None, network=None, *, poll=10,
from_backup=None, segmentation_supported=True,
object_list=None, auto_save=False,
clear_history_on_save=False, history_size=None):

self.properties = DeviceProperties()

self.properties.address = address
Expand All @@ -138,6 +138,7 @@ def __init__(self, address=None, device_id=None, network=None, *, poll=10,
self.properties.db_name = ''

self.points = []
self.trendlogs = {}

self._polling_task = namedtuple('_polling_task', ['task', 'running'])
self._polling_task.task = None
Expand Down Expand Up @@ -462,7 +463,7 @@ def _buildPointList(self):
self._log.info('Device {}:[{}] found... building points list'.format(
self.properties.device_id, self.properties.name))
try:
self.properties.objects_list, self.points = self._discoverPoints(
self.properties.objects_list, self.points, self.trendlogs = self._discoverPoints(
self.custom_object_list)
if self.properties.pollDelay > 0:
self.poll(delay=self.properties.pollDelay)
Expand Down
2 changes: 1 addition & 1 deletion BAC0/core/devices/Trends.py 100644 → 100755
Expand Up @@ -64,7 +64,7 @@ class TrendLog(TrendLogProperties):
"""
BAC0 simplification of TrendLog Object
"""
def __init__(self, OID, device=None, read_log_on_creation = True):
def __init__(self, OID, device=None, read_log_on_creation = True, multiple_request = None):
self.properties = TrendLogProperties()
self.properties.device = device
self.properties.oid = OID
Expand Down
88 changes: 68 additions & 20 deletions BAC0/core/devices/create_objects.py
@@ -1,35 +1,83 @@
from bacpypes.object import MultiStateValueObject,AnalogValueObject, BinaryValueObject, Property, register_object_type

from bacpypes.object import MultiStateValueObject, AnalogValueObject, \
BinaryValueObject, AnalogInputObject, \
BinaryInputObject, AnalogOutputObject, \
BinaryOutputObject, Property, register_object_type
from bacpypes.primitivedata import CharacterString
from bacpypes.constructeddata import ArrayOf
from bacpypes.primitivedata import Real, Boolean
from bacpypes.basetypes import EngineeringUnits


def create_MV(oid=1, pv=0, name='MV', states=['red','green','blue']):
def create_MV(oid=1, pv=0, name='MV', states=['red', 'green', 'blue']):
msvo = MultiStateValueObject(
objectIdentifier=('multiStateValue', oid),
objectName=name,
presentValue=pv,
numberOfStates=len(states),
stateText=ArrayOf(CharacterString)(states),
)
objectIdentifier=('multiStateValue', oid),
objectName=name,
presentValue=pv,
numberOfStates=len(states),
stateText=ArrayOf(CharacterString)(states)
)
return msvo


def create_AV(oid=1, pv=0, name='AV', units=None):
avo = AnalogValueObject(
objectIdentifier=('analogValue', oid),
objectName=name,
presentValue=pv,
units=units
)
objectIdentifier=('analogValue', oid),
objectName=name,
presentValue=pv,
units=units,
)
return avo


def create_BV(oid=1, pv=0, name='BV', activeText='On', inactiveText='Off'):
bvo = BinaryValueObject(
objectIdentifier=('binaryValue', oid),
objectName=name,
presentValue=pv,
activeText=activeText,
inactiveText=inactiveText
)
return bvo
objectIdentifier=('binaryValue', oid),
objectName=name,
presentValue=pv,
activeText=activeText,
inactiveText=inactiveText,
)
return bvo


def create_AI(oid=1, pv=0, name='AI', units=None):
aio = AnalogInputObject(
objectIdentifier=('analogInput', oid),
objectName=name,
presentValue=pv,
units=units
)
return aio


def create_BI(oid=1, pv=0, name='BI', activeText='On', inactiveText='Off'):
bio = BinaryInputObject(
objectIdentifier=('binaryInput', oid),
objectName=name,
presentValue=pv,
activeText=activeText,
inactiveText=inactiveText
)
return bio


def create_AO(oid=1, pv=0, name='AO', units=None):
aoo = AnalogOutputObject(
objectIdentifier=('analogOutput', oid),
objectName=name,
presentValue=pv,
units=units
)
return aoo


def create_BO(oid=1, pv=0, name='BO', activeText='On', inactiveText='Off'):
boo = BinaryOutputObject(
objectIdentifier=('binaryOutput', oid),
objectName=name,
presentValue=pv,
activeText=activeText,
inactiveText=inactiveText
)
return boo

0 comments on commit 63f630a

Please sign in to comment.