Beispiel #1
0
        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_SUBSCRIBE_COV);


            //Process ID
            var processIdTag = new BacNetTag {
                Class = true, Length = (byte)ProccessId.GetLength(), Number = 0
            };

            res.AddRange(processIdTag.GetBytes());
            res.AddRange(ProccessId.GetBytes());

            //Object ID
            var objectTag = new BacNetTag {
                Class = true, Length = 4, Number = 1
            };

            res.AddRange(objectTag.GetBytes());
            res.AddRange(ObjectId.GetObjectBytes());

            //Issue Confirmed Notifications
            var icn = new BacNetBool();

            icn.Value = false;
            var icnTag = new BacNetTag {
                Class = true, Length = (byte)icn.GetLength(), Number = 2
            };

            res.AddRange(icnTag.GetBytes());
            res.AddRange(icn.GetBytes());

            //Lifetime
            var lifeTime = new BacNetUInt();

            lifeTime.Value = 360;
            var lifeTimeTag = new BacNetTag {
                Class = true, Length = (byte)lifeTime.GetLength(), Number = 3
            };

            res.AddRange(lifeTimeTag.GetBytes());
            res.AddRange(lifeTime.GetBytes());

            return((byte[])res.ToArray(typeof(byte)));
        }