public byte[] GetBytes()
{
ArrayList res = new ArrayList();
res.Add((byte)BacNetEnums.BACNET_PDU_TYPE.PDU_TYPE_COMPLEX_ACK);
res.Add(InvokeId);
res.Add((byte)BacNetEnums.BACNET_CONFIRMED_SERVICE.SERVICE_CONFIRMED_READ_PROPERTY);
//Object ID
BacNetTag objectTag = new BacNetTag { Class = true, Length = 4, Number = 0 };
res.AddRange(objectTag.GetBytes());
res.AddRange(Obj.GetObjectBytes());
//Max APDU
BacNetTag propertyIdTag = new BacNetTag { Class = true, Length = (byte)Obj.Properties[0].PropertyId.GetLength(), Number = 1 };
res.AddRange(propertyIdTag.GetBytes());
res.AddRange(Obj.Properties[0].PropertyId.GetBytes());
/*if (ArrayIndex != null)
{
BacNetTag arrayIndexTag = new BacNetTag { Class = true, Length = (byte)ArrayIndex.GetLength(), Number = 2 };
res.AddRange(arrayIndexTag.GetBytes());
res.AddRange(ArrayIndex.GetBytes());
}*/
return (byte[])res.ToArray(typeof(byte));
}