Exemplo n.º 1
0
        /*public override void write(ByteStream queue)
         * {
         *  if (nullValue != null)
         *      nullValue.write(queue);
         *  else if (realValue != null)
         *      realValue.write(queue);
         *  else if (binaryValue != null)
         *      binaryValue.write(queue);
         *  else if (integerValue != null)
         *      integerValue.write(queue);
         *  else
         *      constructedValue.write(queue, 0);
         * }*/

        public PriorityValue(ByteStream queue)
        {
            // Sweet Jesus...
            int tag = (queue.PeekFromHere(0) & 0xff);

            if ((tag & 8) == 8)
            {
                // A class tag, so this is a constructed value.
                ConstructedValue = new AmbiguousValue(queue, 0);
            }
            else
            {
                // A primitive value
                tag = tag >> 4;
                if (tag == Null.TYPE_ID)
                {
                    NullValue = new Null(queue);
                }
                else if (tag == Real.TYPE_ID)
                {
                    RealValue = new Real(queue);
                }
                else if (tag == Primitive.Enumerated.TYPE_ID)
                {
                    BinaryValue = new BinaryPV(queue);
                }
                else if (tag == UnsignedInteger.TYPE_ID)
                {
                    IntegerValue = new UnsignedInteger(queue);
                }
                else
                {
                    throw new BACnetErrorException(ErrorClass.Property, ErrorCode.InvalidDataType,
                                                   "Unsupported primitive id: " + tag);
                }
            }
        }
Exemplo n.º 2
0
 public CommandFailure(ByteStream queue)
 {
     CommandValue  = new AmbiguousValue(queue, 0);
     StatusFlags   = (StatusFlags)read(queue, typeof(StatusFlags), 1);
     FeedbackValue = new AmbiguousValue(queue, 2);
 }