ela-compil / BACnet

BACnet protocol library for .NET :satellite:
https://www.nuget.org/packages/bacnet/
MIT License
215 stars 95 forks source link

ReadPropertyMultiple request without specifying BacnetPropertyReference->propertyArrayIndex #101

Open lc1337 opened 2 years ago

lc1337 commented 2 years ago

I am trying to send to server "ReadPropertyMultiple" request, however I am unable to read non-array BACNet properties, since the System.IO.BACnet.BacnetClient.ReadPropertyMultipleRequest requires list of System.IO.BACnet.BacnetPropertyReference(s) ...

public bool ReadPropertyMultipleRequest(BacnetAddress address, BacnetObjectId objectId, IList<BacnetPropertyReference> propertyIdAndArrayIndex, out IList<BacnetReadAccessResult> values, byte invokeId = 0);

.. and the System.IO.BACnet.BacnetPropertyReference requires propertyArrayIndex ..

    public struct BacnetPropertyReference
    {
        public uint propertyIdentifier;
        public uint propertyArrayIndex;

        public BacnetPropertyReference(uint id, uint arrayIndex);

        public BacnetPropertyIds GetPropertyId();
        public override string ToString();
    }

.. which, when not set, defaults to 0. This causes, that after request with this list is sent, all properties are requested with propertyArrayIndex: 0, which fail for non-array object properties.

Is there any way to not add the propertyArrayIndex into request and thus be able to read non-array properties with ReadPropertyMultiple request?

Thanks