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));
}