diff --git a/sandbox/mutable_schedule_object.py b/sandbox/mutable_schedule_object.py new file mode 100644 index 0000000..f2cf288 --- /dev/null +++ b/sandbox/mutable_schedule_object.py @@ -0,0 +1,70 @@ +#!/usr/bin/python + +""" +Muteable Schedule Object +""" + +from bacpypes.debugging import bacpypes_debugging, ModuleLogger +from bacpypes.consolelogging import ArgumentParser + +from bacpypes.primitivedata import Unsigned +from bacpypes.constructeddata import ArrayOf +from bacpypes.basetypes import DailySchedule +from bacpypes.object import WritableProperty, ScheduleObject, register_object_type + +# some debugging +_debug = 0 +_log = ModuleLogger(globals()) + +# +# MyScheduleObject +# + +@register_object_type(vendor_id=999) +class MyScheduleObject(ScheduleObject): + + properties = [ + WritableProperty('weeklySchedule', ArrayOf(DailySchedule)), + WritableProperty('priorityForWriting', Unsigned), + ] + + def __init__(self, **kwargs): + if _debug: MyScheduleObject._debug("__init__ %r", kwargs) + ScheduleObject.__init__(self, **kwargs) + +# +# +# + +# parse the command line arguments +parser = ArgumentParser(usage=__doc__) +args = parser.parse_args() + +if _debug: _log.debug("initialization") +if _debug: _log.debug(" - args: %r", args) + +# create a schedule object +mso = MyScheduleObject( + objectIdentifier=('schedule', 1), + objectName="myScheduleObject", + weeklySchedule=[], + priorityForWriting=1, + ) + +print("getting value") +print(mso.priorityForWriting) +print("") + +print("setting value") +mso.priorityForWriting = 2 +print("") + +print("reading value") +value = mso.ReadProperty('priorityForWriting') +print("{}".format(value)) +print("") + +print("writing value") +mso.WriteProperty('priorityForWriting', 3) +print("") +