Waiting For Link Status
In this discussion there needs to be a way for applications to know if the link (all links? some links?) are ready for downstream packets. This could be waiting for foreign device registration with IPv4/IPv6, connection ready for SC, connections and subscriptions acked for MQTT, exchanges and queues ready for AMPQ, etc.
I don't know if you've actually tested this yet but when I run this after customizing the points I'm looking for, I get this:
$ ./MultipleReadPropertyForeign.py --debug __main__
DEBUG:__main__:initialization
DEBUG:__main__: - args: Namespace(buggers=False, color=False, debug=['__main__'], ini=<class 'bacpypes.consolelogging.ini'>)
DEBUG:__main__: - this_device: <bacpypes.local.device.LocalDeviceObject object at 0x10360c470>
DEBUG:__main__.ReadPointListApplication:__init__ [('31:10', 'analogInput:7', 'presentValue'), ('31:10', 'analogInput:8', 'presentValue')], (<bacpypes.local.device.LocalDeviceObject object at 0x10360c470>, '192.168.160.232', <Address 192.168.172.103>, 30)
DEBUG:__main__.PrairieDog:__init__ 500
DEBUG:__main__: - dog: <__main__.PrairieDog object at 0x10302a080>
<__main__.PrairieDog object at 0x10302a080>
isScheduled = False
taskInterval = 500
DEBUG:__main__:running
DEBUG:__main__.PrairieDog:process_task
DEBUG:__main__.PrairieDog: - success
DEBUG:__main__.ReadPointListApplication:next_request
DEBUG:__main__.PrairieDog:process_task
DEBUG:__main__.PrairieDog: - success
DEBUG:__main__.ReadPointListApplication:next_request
DEBUG:__main__.PrairieDog:process_task
DEBUG:__main__.PrairieDog: - success
DEBUG:__main__.ReadPointListApplication:next_request
DEBUG:__main__.ReadPointListApplication: - done
DEBUG:__main__:fini
...with no result. Should be able to dig more later tonight.
Here's a gist of the full "--debug bacnet" output:
https://gist.github.com/mdsteveb/1482b9a6d5e1c64a301ebbd30eaa9b88
And in case it's a factor here is the ini file I'm using (which is just derived from other BACpypes examples):
[BACpypes]
objectName: panther
address: 192.168.160.232
objectIdentifier: 599
maxApduLengthAccepted: 1024
segmentationSupported: segmentedBoth
maxSegmentsAccepted: 1024
vendorIdentifier: 15
foreignPort: 0
foreignBBMD: 192.168.172.103
foreignTTL: 30
(IP addresses scrubbed in all of this of course)
postponed for a later release