mirror of
https://github.com/JoelBender/bacpypes
synced 2025-10-05 22:18:16 +08:00
94 lines
2.4 KiB
Python
94 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
|
|
"""
|
|
Rebuilt Commandable
|
|
"""
|
|
|
|
from bacpypes.debugging import ModuleLogger
|
|
from bacpypes.consolelogging import ConfigArgumentParser
|
|
|
|
from bacpypes.core import run
|
|
|
|
from bacpypes.primitivedata import Date
|
|
|
|
from bacpypes.app import BIPSimpleApplication
|
|
from bacpypes.object import register_object_type
|
|
from bacpypes.local.device import (
|
|
LocalDeviceObject,
|
|
)
|
|
from bacpypes.local.object import (
|
|
AnalogValueCmdObject,
|
|
BinaryOutputCmdObject,
|
|
DateValueCmdObject,
|
|
)
|
|
|
|
# some debugging
|
|
_debug = 0
|
|
_log = ModuleLogger(globals())
|
|
|
|
# register the classes
|
|
register_object_type(LocalDeviceObject, vendor_id=999)
|
|
register_object_type(AnalogValueCmdObject, vendor_id=999)
|
|
register_object_type(BinaryOutputCmdObject, vendor_id=999)
|
|
register_object_type(DateValueCmdObject, vendor_id=999)
|
|
|
|
def main():
|
|
global this_application
|
|
|
|
# parse the command line arguments
|
|
args = ConfigArgumentParser(description=__doc__).parse_args()
|
|
|
|
if _debug:
|
|
_log.debug("initialization")
|
|
if _debug:
|
|
_log.debug(" - args: %r", args)
|
|
|
|
# make a device object
|
|
this_device = LocalDeviceObject(ini=args.ini)
|
|
if _debug:
|
|
_log.debug(" - this_device: %r", this_device)
|
|
|
|
# make a sample application
|
|
this_application = BIPSimpleApplication(this_device, args.ini.address)
|
|
|
|
# make a commandable analog value object, add to the device
|
|
avo1 = AnalogValueCmdObject(objectIdentifier=("analogValue", 1), objectName="avo1")
|
|
if _debug:
|
|
_log.debug(" - avo1: %r", avo1)
|
|
this_application.add_object(avo1)
|
|
|
|
# make a commandable binary output object, add to the device
|
|
boo1 = BinaryOutputCmdObject(
|
|
objectIdentifier=("binaryOutput", 1),
|
|
objectName="boo1",
|
|
presentValue="inactive",
|
|
relinquishDefault="inactive",
|
|
minimumOnTime=5, # let it warm up
|
|
minimumOffTime=10, # let it cool off
|
|
)
|
|
if _debug:
|
|
_log.debug(" - boo1: %r", boo1)
|
|
this_application.add_object(boo1)
|
|
|
|
# get the current date
|
|
today = Date().now()
|
|
|
|
# make a commandable date value object, add to the device
|
|
dvo1 = DateValueCmdObject(
|
|
objectIdentifier=("dateValue", 1), objectName="dvo1", presentValue=today.value
|
|
)
|
|
if _debug:
|
|
_log.debug(" - dvo1: %r", dvo1)
|
|
this_application.add_object(dvo1)
|
|
|
|
if _debug:
|
|
_log.debug("running")
|
|
|
|
run()
|
|
|
|
_log.debug("fini")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|