BACSharp.Services.Confirmed.ReadPropertyMultiple.GetBytes C# (CSharp) Method

GetBytes() public method

public GetBytes ( ) : byte[]
return byte[]
        public byte[] GetBytes()
        {
            ArrayList res = new ArrayList();

            res.Add((byte)((byte)BacNetEnums.BACNET_PDU_TYPE.PDU_TYPE_CONFIRMED_SERVICE_REQUEST | (1 << 1)));
            res.Add((byte)84);

            res.Add((byte)InvokeId);
            res.Add((byte)BacNetEnums.BACNET_CONFIRMED_SERVICE.SERVICE_CONFIRMED_READ_PROP_MULTIPLE);

            //Object ID
            foreach (BacNetObject obj in ObjectList)
            {
                BacNetTag objectTag = new BacNetTag { Class = true, Length = 4, Number = 0 };
                res.AddRange(objectTag.GetBytes());
                res.AddRange(obj.GetObjectBytes());
                BacNetTag openingTag = new BacNetTag{Class = true, Length = 6, Number = 1};
                res.AddRange(openingTag.GetBytes());
                foreach (BacNetProperty property in obj.Properties)
                {
                    //Property ID
                    BacNetTag propertyIdTag = new BacNetTag { Class = true, Length = (byte)property.PropertyId.GetLength(), Number = 0 };
                    res.AddRange(propertyIdTag.GetBytes());
                    res.AddRange(property.PropertyId.GetBytes());
                }
                BacNetTag closingTag = new BacNetTag { Class = true, Length = 7, Number = 1 };
                res.AddRange(closingTag.GetBytes());
            }
            return (byte[])res.ToArray(typeof(byte));
        }