Example #1
0
        public override GroupValue Convert(Field field, ConversionContext context)
        {
            var sequence = (Sequence)field;
            var seqDef   = GroupConverter.Convert(sequence.Group, new Message(SessionControlProtocol_1_1.SEQUENCE_INSTR), context);

            seqDef.SetBool("Optional", sequence.Optional);
            if (!sequence.ImplicitLength)
            {
                var lengthGroup = SessionControlProtocol_1_1.SEQUENCE_INSTR.GetGroup("Length");
                var lengthDef   = new GroupValue(lengthGroup);
                var length      = sequence.Length;
                var nameDef     = new GroupValue(lengthGroup.GetGroup("Name"));
                SetNameAndId(length, nameDef);
                lengthDef.SetFieldValue("Name", nameDef);
                seqDef.SetFieldValue("Length", lengthDef);

                if (!length.Operator.Equals(Operator.NONE))
                {
                    var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator"));
                    operatorDef.SetFieldValue(0, CreateOperator(length));
                    lengthDef.SetFieldValue("Operator", operatorDef);
                }

                if (!length.DefaultValue.Undefined)
                {
                    lengthDef.SetFieldValue("InitialValue", length.DefaultValue);
                }
            }
            return(seqDef);
        }
Example #2
0
        public override bool Equals(object o)
        {
            if (this == o)
            {
                return(true);
            }
            if (o == null || GetType() != o.GetType())
            {
                return(false);
            }

            SearchGroup <TGroupValue> that = (SearchGroup <TGroupValue>)o;

            if (GroupValue == null)
            {
                if (that.GroupValue != null)
                {
                    return(false);
                }
            }
            else if (!GroupValue.Equals(that.GroupValue))
            {
                return(false);
            }

            return(true);
        }
Example #3
0
        public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
        {
            var  type         = (Type)TEMPLATE_TYPE_MAP[fieldDef.GetGroup()];
            bool optional     = fieldDef.GetBool("Optional");
            var  initialValue = ScalarValue.UNDEFINED;

            if (fieldDef.IsDefined("InitialValue"))
            {
                initialValue = (ScalarValue)fieldDef.GetValue("InitialValue");
            }

            if (fieldDef.IsDefined("Operator"))
            {
                GroupValue operatorGroup    = fieldDef.GetGroup("Operator").GetGroup(0);
                Operator   operator_Renamed = GetOperator(operatorGroup.GetGroup());
                var        scalar           = new Scalar(fieldDef.GetString("Name"), type, operator_Renamed, initialValue, optional);
                if (operatorGroup.IsDefined("Dictionary"))
                {
                    scalar.Dictionary = operatorGroup.GetString("Dictionary");
                }
                if (operatorGroup.IsDefined("Key"))
                {
                    string name = operatorGroup.GetGroup("Key").GetString("Name");
                    string ns   = operatorGroup.GetGroup("Key").GetString("Ns");
                    scalar.Key = new QName(name, ns);
                }
                return(scalar);
            }
            return(new Scalar(fieldDef.GetString("Name"), type, Operator.NONE, initialValue, optional));
        }
Example #4
0
        public override IFieldValue Decode(Stream inStream, Group decodeTemplate, Context context,
                                           BitVectorReader pmapReader)
        {
            try
            {
                if (!UsesPresenceMapBit || pmapReader.Read())
                {
                    if (context.TraceEnabled)
                    {
                        context.DecodeTrace.GroupStart(this);
                    }

                    var groupValue = new GroupValue(this, DecodeFieldValues(inStream, decodeTemplate, context));

                    if (context.TraceEnabled)
                    {
                        context.DecodeTrace.GroupEnd();
                    }

                    return(groupValue);
                }
                return(null);
            }
            catch (DynErrorException e)
            {
                throw new DynErrorException(e, e.Error, "Error occurred while decoding {0}", this);
            }
        }
Example #5
0
        public void TestEquals()
        {
            GroupValue v  = ObjectMother.NewAllocation(null, 10.0, 11.0);
            GroupValue v2 = ObjectMother.NewAllocation(null, 10.0, 11.0);

            Assert.AreEqual(v, v2);
        }
Example #6
0
        public void TestEmptyOperatorWithMandatoryField()
        {
            var field = new Scalar("", FASTType.U32, Operator.NONE,
                    ScalarValue.UNDEFINED, false);
            MessageTemplate template = registerTemplate(field);

            var msg1 = new Message(template);
            msg1.SetInteger(1, 0);

            var msg2 = new Message(template);
            msg2.SetInteger(1, 16);

            //                 --PMAP-- --TID--- ---#1---
            String encoding = "11000000 11110001 10000000";
            encodeAndAssertEquals(encoding, msg1);

            //          --PMAP-- ---#1---
            encoding = "10000000 10010000";
            byte[] encodedMessage = encoder.Encode(msg2);
            TestUtil.AssertBitVectorEquals(encoding, encodedMessage);
            output.Write(encodedMessage);

            GroupValue readMessage = decoder.ReadMessage();
            Assert.AreEqual(msg1, readMessage);
            readMessage = decoder.ReadMessage();
            Assert.AreEqual(msg2, readMessage);
        }
        public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
        {
            string name = fieldDef.GetString("Name");
            string ns = fieldDef.GetString("Ns");
            var qname = new QName(name, ns);
            var fields = GroupConverter.ParseFieldInstructions(fieldDef, templateRegistry, context);
            bool optional = fieldDef.GetBool("Optional");
            Scalar length = null;
            if (fieldDef.IsDefined("Length"))
            {
                var lengthDef = fieldDef.GetGroup("Length");
                QName lengthName;
                string id = null;
                if (lengthDef.IsDefined("Name"))
                {
                    var nameDef = lengthDef.GetGroup("Name");
                    lengthName = new QName(nameDef.GetString("Name"), nameDef.GetString("Ns"));
                    if (nameDef.IsDefined("AuxId"))
                        id = nameDef.GetString("AuxId");
                }
                else
                    lengthName = Global.CreateImplicitName(qname);
                var operator_Renamed = Operator.NONE;
                if (lengthDef.IsDefined("Operator"))
                    operator_Renamed = GetOperator(lengthDef.GetGroup("Operator").GetGroup(0).GetGroup());
                var initialValue = ScalarValue.UNDEFINED;
                if (lengthDef.IsDefined("InitialValue"))
                    initialValue = (ScalarValue) lengthDef.GetValue("InitialValue");
                length = new Scalar(lengthName, Type.U32, operator_Renamed, initialValue, optional) {Id = id};
            }

            return new Sequence(qname, length, fields, optional);
        }
        public void TestEmptyOperatorWithSequenceOfMessages()
        {
            var field = new Scalar("", FastType.U32, Operator.None,
                                   ScalarValue.Undefined, true);
            MessageTemplate template = RegisterTemplate(field);

            var msg1 = new Message(template);

            var msg2 = new Message(template);

            msg2.SetInteger(1, 15);

            //                 --PMAP-- --TID--- ---#1---
            String encoding = "11000000 11110001 10000000";

            EncodeAndAssertEquals(encoding, msg1);

            //          --PMAP-- ---#1---
            encoding = "10000000 10010000";
            byte[] encodedMessage = _encoder.Encode(msg2);
            TestUtil.AssertBitVectorEquals(encoding, encodedMessage);
            _output.Write(encodedMessage);

            GroupValue readMessage = _decoder.ReadMessage();

            Assert.AreEqual(msg1, readMessage);
            readMessage = _decoder.ReadMessage();
            Assert.AreEqual(msg2, readMessage);
        }
 public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
 {
     var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns"));
     bool optional = fieldDef.GetBool("Optional");
     GroupValue exponentDef = fieldDef.GetGroup("Exponent");
     GroupValue exponentOperatorDef = exponentDef.GetGroup("Operator").GetGroup(0);
     Operator exponentOperator = GetOperator(exponentOperatorDef.Group);
     ScalarValue exponentDefaultValue = ScalarValue.Undefined;
     if (exponentDef.IsDefined("InitialValue"))
         exponentDefaultValue = new IntegerValue(exponentDef.GetInt("InitialValue"));
     GroupValue mantissaDef = fieldDef.GetGroup("Mantissa");
     GroupValue mantissaOperatorDef = mantissaDef.GetGroup("Operator").GetGroup(0);
     Operator mantissaOperator = GetOperator(mantissaOperatorDef.Group);
     ScalarValue mantissaDefaultValue = ScalarValue.Undefined;
     if (mantissaDef.IsDefined("InitialValue"))
         mantissaDefaultValue = new LongValue(mantissaDef.GetInt("InitialValue"));
     ComposedScalar composedDecimal = Util.ComposedDecimal(name, exponentOperator, exponentDefaultValue,
                                                           mantissaOperator, mantissaDefaultValue, optional);
     IFieldValue retAuxId;
     if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId!=null)
     {
         composedDecimal.Id = retAuxId.ToString();
     }
     return composedDecimal;
 }
Example #10
0
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            var         name                 = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns"));
            bool        optional             = fieldDef.GetBool("Optional");
            GroupValue  exponentDef          = fieldDef.GetGroup("Exponent");
            GroupValue  exponentOperatorDef  = exponentDef.GetGroup("Operator").GetGroup(0);
            Operator    exponentOperator     = GetOperator(exponentOperatorDef.Group);
            ScalarValue exponentDefaultValue = ScalarValue.Undefined;

            if (exponentDef.IsDefined("InitialValue"))
            {
                exponentDefaultValue = new IntegerValue(exponentDef.GetInt("InitialValue"));
            }
            GroupValue  mantissaDef          = fieldDef.GetGroup("Mantissa");
            GroupValue  mantissaOperatorDef  = mantissaDef.GetGroup("Operator").GetGroup(0);
            Operator    mantissaOperator     = GetOperator(mantissaOperatorDef.Group);
            ScalarValue mantissaDefaultValue = ScalarValue.Undefined;

            if (mantissaDef.IsDefined("InitialValue"))
            {
                mantissaDefaultValue = new LongValue(mantissaDef.GetInt("InitialValue"));
            }
            ComposedScalar composedDecimal = Util.ComposedDecimal(name, exponentOperator, exponentDefaultValue,
                                                                  mantissaOperator, mantissaDefaultValue, optional);
            IFieldValue retAuxId;

            if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null)
            {
                composedDecimal.Id = retAuxId.ToString();
            }
            return(composedDecimal);
        }
 public static void  SetNameAndId(Field field, GroupValue fieldDef)
 {
     SetName(field, fieldDef);
     if (field.Id != null)
     {
         fieldDef.SetString("AuxId", field.Id);
     }
 }
 public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
 {
     var scalar = (Scalar) base.Convert(fieldDef, templateRegistry, context);
     IFieldValue retLength;
     if (fieldDef.TryGetValue("Length", out retLength) && retLength != null)
         scalar.AddAttribute(FastConstants.LengthField, ((GroupValue) retLength).GetString("Name"));
     return scalar;
 }
Example #13
0
        public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
        {
            string name = fieldDef.GetString("Name");

            Field[] fields   = ParseFieldInstructions(fieldDef, templateRegistry, context);
            bool    optional = fieldDef.GetBool("Optional");

            return(new Group(name, fields, optional));
        }
 public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
 {
     var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns"));
     if (!templateRegistry.IsDefined(name))
     {
         throw new System.SystemException("Referenced template " + name + " not defined.");
     }
     return new StaticTemplateReference(templateRegistry.get_Renamed(name));
 }
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns"));
            MessageTemplate template;
            if (templateRegistry.TryGetTemplate(name, out template))
                return new StaticTemplateReference(template);

            throw new ArgumentOutOfRangeException("fieldDef", name, "Referenced template name not defined.");
        }
 public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
 {
     var scalar = (Scalar) base.Convert(fieldDef, templateRegistry, context);
     if (fieldDef.IsDefined("Length"))
     {
         scalar.AddAttribute(Error.FastConstants.LENGTH_FIELD, fieldDef.GetGroup("Length").GetString("Name"));
     }
     return scalar;
 }
 public ActionResult <string> read()
 {
     using (Bus bus = new Bus(new KnxIpTunnelingConnectorParameters("192.168.0.10", 0x0e57, false)))
     {
         // Read value from sensor
         GroupValue data = bus.ReadValue("0/0/1");
     }
     return("read");
 }
        public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
        {
            var scalar = (Scalar)base.Convert(fieldDef, templateRegistry, context);

            if (fieldDef.IsDefined("Length"))
            {
                scalar.AddAttribute(Error.FastConstants.LENGTH_FIELD, fieldDef.GetGroup("Length").GetString("Name"));
            }
            return(scalar);
        }
        public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
        {
            var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns"));

            if (!templateRegistry.IsDefined(name))
            {
                throw new System.SystemException("Referenced template " + name + " not defined.");
            }
            return(new StaticTemplateReference(templateRegistry.get_Renamed(name)));
        }
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            var         scalar = (Scalar)base.Convert(fieldDef, templateRegistry, context);
            IFieldValue retLength;

            if (fieldDef.TryGetValue("Length", out retLength) && retLength != null)
            {
                scalar.AddAttribute(FastConstants.LengthField, ((GroupValue)retLength).GetString("Name"));
            }
            return(scalar);
        }
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            var             name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns"));
            MessageTemplate template;

            if (templateRegistry.TryGetTemplate(name, out template))
            {
                return(new StaticTemplateReference(template));
            }

            throw new ArgumentOutOfRangeException("fieldDef", name, "Referenced template name not defined.");
        }
Example #22
0
        internal Text(GroupValue groupValue, string defaultValue)
        {
            if (groupValue == null)
            {
                Format = defaultValue;
                Params = new string[] { };
                return;
            }

            Format = groupValue.First().ToString();
            Params = groupValue.Skip(1).Select(x => x.ToString()).ToArray();
        }
 public override GroupValue Convert(Field field, ConversionContext context)
 {
     var scalar = (Scalar) field;
     GroupValue fieldDef = base.Convert(field, context);
     if (scalar.HasAttribute(Error.FastConstants.LENGTH_FIELD))
     {
         var lengthDef = new GroupValue(fieldDef.GetGroup().GetGroup("Length"));
         lengthDef.SetString("Name", scalar.GetAttribute(Error.FastConstants.LENGTH_FIELD));
         fieldDef.SetFieldValue("Length", lengthDef);
     }
     return fieldDef;
 }
        public override GroupValue Convert(Field field, ConversionContext context)
        {
            var        scalar   = (Scalar)field;
            GroupValue fieldDef = base.Convert(field, context);

            if (scalar.HasAttribute(Error.FastConstants.LENGTH_FIELD))
            {
                var lengthDef = new GroupValue(fieldDef.GetGroup().GetGroup("Length"));
                lengthDef.SetString("Name", scalar.GetAttribute(Error.FastConstants.LENGTH_FIELD));
                fieldDef.SetFieldValue("Length", lengthDef);
            }
            return(fieldDef);
        }
 public override GroupValue Convert(Field field, ConversionContext context)
 {
     var scalar = (Scalar) field;
     GroupValue fieldDef = base.Convert(field, context);
     string value;
     if (scalar.TryGetAttribute(FastConstants.LengthField, out value))
     {
         var lengthDef = new GroupValue(fieldDef.Group.GetGroup("Length"));
         lengthDef.SetString("Name", value);
         fieldDef.SetFieldValue("Length", lengthDef);
     }
     return fieldDef;
 }
Example #26
0
        public override GroupValue Convert(Field field, ConversionContext context)
        {
            var composedScalar = (ComposedScalar)field;
            var message        = new Message(SessionControlProtocol11.CompDecimalInstr);

            SetNameAndId(field, message);
            message.SetInteger("Optional", field.IsOptional ? 1 : 0);
            GroupValue exponentDef = CreateComponent(composedScalar.Fields[0], "Exponent");
            GroupValue mantissaDef = CreateComponent(composedScalar.Fields[1], "Mantissa");

            message.SetFieldValue("Exponent", exponentDef);
            message.SetFieldValue("Mantissa", mantissaDef);
            return(message);
        }
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            string name = fieldDef.GetString("Name");
            string ns = fieldDef.GetString("Ns");
            var qname = new QName(name, ns);
            Field[] fields = GroupConverter.ParseFieldInstructions(fieldDef, templateRegistry, context);
            bool optional = fieldDef.GetBool("Optional");
            Scalar length = null;
            IFieldValue retLength;
            if (fieldDef.TryGetValue("Length", out retLength) && retLength!=null)
            {
                GroupValue lengthDef = (GroupValue)retLength;
                QName lengthName;
                string id = null;
                IFieldValue retName;
                if (lengthDef.TryGetValue("Name", out retName) && retName != null)
                {
                    GroupValue nameDef = (GroupValue)retName;
                    lengthName = new QName(nameDef.GetString("Name"), nameDef.GetString("Ns"));
                    IFieldValue retAuxId;
                    if (nameDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null)
                        id = retAuxId.ToString();
                }
                else
                    lengthName = Global.CreateImplicitName(qname);
                Operator op = Operator.None;
                IFieldValue retOperator;
                if (lengthDef.TryGetValue("Operator", out retOperator) && retOperator != null)
                    op = GetOperator(((GroupValue)retOperator).GetGroup(0).Group);
                ScalarValue initialValue = ScalarValue.Undefined;
                IFieldValue retInitialValue;
                if (lengthDef.TryGetValue("InitialValue", out retInitialValue) && retInitialValue != null)
                    initialValue = (ScalarValue) retInitialValue;
                length = new Scalar(lengthName, FastType.U32, op, initialValue, optional) {Id = id};
            }

            var sequence = new Sequence(qname, length, fields, optional);
            IFieldValue retTypeRef;
            if (fieldDef.TryGetValue("TypeRef", out retTypeRef) && retTypeRef != null)
            {
                GroupValue typeRef = (GroupValue)retTypeRef;
                string typeRefName = typeRef.GetString("Name");
                string typeRefNs = ""; // context.getNamespace();
                IFieldValue rettypeRefNs;
                if (typeRef.TryGetValue("Ns", out rettypeRefNs) && rettypeRefNs!=null)
                    typeRefNs = rettypeRefNs.ToString();
                sequence.TypeReference = new QName(typeRefName, typeRefNs);
            }
            return sequence;
        }
        public override GroupValue Convert(Field field, ConversionContext context)
        {
            var        scalar   = (Scalar)field;
            GroupValue fieldDef = base.Convert(field, context);
            string     value;

            if (scalar.TryGetAttribute(FastConstants.LengthField, out value))
            {
                var lengthDef = new GroupValue(fieldDef.Group.GetGroup("Length"));
                lengthDef.SetString("Name", value);
                fieldDef.SetFieldValue("Length", lengthDef);
            }
            return(fieldDef);
        }
Example #29
0
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            FastType    type     = _templateTypeMap[fieldDef.Group];
            bool        optional = fieldDef.GetBool("Optional");
            IFieldValue retInitialValue;
            ScalarValue initialValue = fieldDef.TryGetValue("InitialValue", out retInitialValue) && retInitialValue != null
                                           ? (ScalarValue)retInitialValue
                                           : ScalarValue.Undefined;

            string      name = fieldDef.GetString("Name");
            IFieldValue rettempNs;
            string      tempNs = fieldDef.TryGetValue("Ns", out rettempNs) && rettempNs != null?rettempNs.ToString() : "";

            var qname = new QName(name, tempNs);

            Scalar      scalar;
            IFieldValue retOperator;

            if (fieldDef.TryGetValue("Operator", out retOperator) && retOperator != null)
            {
                GroupValue operatorGroup = ((GroupValue)retOperator).GetGroup(0);
                Operator   operatortemp  = GetOperator(operatorGroup.Group);
                scalar = new Scalar(qname, type, operatortemp, initialValue, optional);
                IFieldValue retDictionary;
                if (operatorGroup.TryGetValue("Dictionary", out retDictionary) && retDictionary != null)
                {
                    scalar.Dictionary = retDictionary.ToString();
                }
                IFieldValue retKey;
                if (operatorGroup.TryGetValue("Key", out retKey) && retKey != null)
                {
                    GroupValue retOperatorGroup = (GroupValue)retKey;
                    string     keyName          = retOperatorGroup.GetString("Name");
                    string     ns = retOperatorGroup.GetString("Ns");
                    scalar.Key = new QName(keyName, ns);
                }
            }
            else
            {
                scalar = new Scalar(qname, type, Operator.None, initialValue, optional);
            }
            IFieldValue retAuxId;

            if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null)
            {
                scalar.Id = retAuxId.ToString();
            }
            return(scalar);
        }
        private static GroupValue CreateComponent(Scalar component, string componentName)
        {
            var componentGroup         = SessionControlProtocol_1_1.COMP_DECIMAL_INSTR.GetGroup(componentName);
            var componentDef           = new GroupValue(componentGroup);
            var componentOperatorDef   = CreateOperator(component);
            var componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator"));

            componentDef.SetFieldValue("Operator", componentOperatorGroup);
            componentOperatorGroup.SetFieldValue(0, componentOperatorDef);
            if (!component.DefaultValue.Undefined)
            {
                componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt());
            }
            return(componentDef);
        }
Example #31
0
        public void TestDecodeSequentialEmptyMessages()
        {
            var    messageTemplate = new MessageTemplate("", new Field[0]);
            Stream input           = ByteUtil.CreateByteStream("11000000 11110001 10000000");
            var    context         = new Context();

            context.RegisterTemplate(113, messageTemplate);

            var        decoder  = new FastDecoder(context, input);
            GroupValue message  = decoder.ReadMessage();
            GroupValue message2 = decoder.ReadMessage();

            Assert.AreEqual(113, message.GetInt(0));
            Assert.AreEqual(113, message2.GetInt(0));
        }
Example #32
0
        public static Message NewAllocInstrctn(String id, int side,
                                               double quantity, double averagePrice, GroupValue instrument,
                                               SequenceValue allocations)
        {
            var allocInstrctn = new Message(AllocationInstruction);

            allocInstrctn.SetFieldValue(1, allocations);
            allocInstrctn.SetFieldValue(2, instrument);
            allocInstrctn.SetFieldValue(3, new StringValue(id));
            allocInstrctn.SetFieldValue(4, new IntegerValue(side));
            allocInstrctn.SetFieldValue(5, new DecimalValue(quantity));
            allocInstrctn.SetFieldValue(6, new DecimalValue(averagePrice));

            return(allocInstrctn);
        }
Example #33
0
        private static GroupValue CreateComponent(Scalar component, string componentName)
        {
            Group      componentGroup         = SessionControlProtocol11.CompDecimalInstr.GetGroup(componentName);
            var        componentDef           = new GroupValue(componentGroup);
            GroupValue componentOperatorDef   = CreateOperator(component);
            var        componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator"));

            componentDef.SetFieldValue("Operator", componentOperatorGroup);
            componentOperatorGroup.SetFieldValue(0, componentOperatorDef);
            if (!component.DefaultValue.IsUndefined)
            {
                componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt());
            }
            return(componentDef);
        }
Example #34
0
        public static Message Convert(Group group, Message groupMsg, ConversionContext context)
        {
            SetNameAndId(group, groupMsg);
            if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference))
            {
                var typeRef =
                    new GroupValue(
                        (Group)SessionControlProtocol11
                        .TypeRef
                        .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace)));

                SetName(typeRef, group.TypeReference);
                groupMsg.SetFieldValue("TypeRef", typeRef);
            }

            var instructions = new SequenceValue(
                SessionControlProtocol11.TemplateDefinition.GetSequence("Instructions"));

            if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference))
            {
                var typeRef =
                    new GroupValue(
                        (Group)
                        SessionControlProtocol11
                        .TypeRef
                        .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace)));

                SetName(typeRef, group.TypeReference);
                groupMsg.SetFieldValue("TypeRef", typeRef);
            }

            Field[] fields = group.FieldDefinitions;
            for (int i = group is MessageTemplate ? 1 : 0; i < fields.Length; i++)
            {
                Field field = fields[i];

                IFieldInstructionConverter converter = context.GetConverter(field);
                if (converter == null)
                {
                    throw new InvalidOperationException("No converter found for type " + field.GetType());
                }

                IFieldValue v = converter.Convert(field, context);
                instructions.Add(new[] { v });
            }
            groupMsg.SetFieldValue("Instructions", instructions);
            return(groupMsg);
        }
 public static Field[] ParseFieldInstructions(GroupValue groupDef, TemplateRegistry registry, ConversionContext context)
 {
     var instructions = groupDef.GetSequence("Instructions");
     var fields = new Field[instructions.Length];
     for (int i = 0; i < fields.Length; i++)
     {
         var fieldDef = instructions[i].GetGroup(0);
         var converter = context.GetConverter(fieldDef.GetGroup());
         if (converter == null)
         {
             throw new System.SystemException("Encountered unknown group " + fieldDef.GetGroup() + "while processing field instructions " + groupDef.GetGroup());
         }
         fields[i] = converter.Convert(fieldDef, registry, context);
     }
     return fields;
 }
        public static Message Convert(Group group, Message groupMsg, ConversionContext context)
        {
            SetNameAndId(group, groupMsg);
            if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference))
            {
                var typeRef =
                    new GroupValue(
                        (Group) SessionControlProtocol11
                                    .TypeRef
                                    .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace)));

                SetName(typeRef, group.TypeReference);
                groupMsg.SetFieldValue("TypeRef", typeRef);
            }

            var instructions = new SequenceValue(
                SessionControlProtocol11.TemplateDefinition.GetSequence("Instructions"));

            if (group.TypeReference != null && !FastConstants.AnyType.Equals(group.TypeReference))
            {
                var typeRef =
                    new GroupValue(
                        (Group)
                        SessionControlProtocol11
                            .TypeRef
                            .GetField(new QName("TypeRef", SessionControlProtocol11.Namespace)));

                SetName(typeRef, group.TypeReference);
                groupMsg.SetFieldValue("TypeRef", typeRef);
            }

            Field[] fields = group.FieldDefinitions;
            for (int i = group is MessageTemplate ? 1 : 0; i < fields.Length; i++)
            {
                Field field = fields[i];

                IFieldInstructionConverter converter = context.GetConverter(field);
                if (converter == null)
                    throw new InvalidOperationException("No converter found for type " + field.GetType());

                IFieldValue v = converter.Convert(field, context);
                instructions.Add(new[] {v});
            }
            groupMsg.SetFieldValue("Instructions", instructions);
            return groupMsg;
        }
        public void TestEmptyOperatorWithOptionalFieldOnNullValue()
        {
            var field = new Scalar("", FastType.U32, Operator.None,
                                   ScalarValue.Undefined, true);
            MessageTemplate template = RegisterTemplate(field);

            var message = new Message(template);

            //                       --PMAP-- --TID--- ---#1---
            const string encoding = "11000000 11110001 10000000";

            EncodeAndAssertEquals(encoding, message);

            GroupValue readMessage = _decoder.ReadMessage();

            Assert.AreEqual(message, readMessage);
        }
Example #38
0
        public static Field[] ParseFieldInstructions(GroupValue groupDef, TemplateRegistry registry, ConversionContext context)
        {
            var instructions = groupDef.GetSequence("Instructions");
            var fields       = new Field[instructions.Length];

            for (int i = 0; i < fields.Length; i++)
            {
                var fieldDef  = instructions[i].GetGroup(0);
                var converter = context.GetConverter(fieldDef.GetGroup());
                if (converter == null)
                {
                    throw new System.SystemException("Encountered unknown group " + fieldDef.GetGroup() + "while processing field instructions " + groupDef.GetGroup());
                }
                fields[i] = converter.Convert(fieldDef, registry, context);
            }
            return(fields);
        }
Example #39
0
        public override GroupValue Convert(Field field, ConversionContext context)
        {
            var     sequence = (Sequence)field;
            Message seqDef   = GroupConverter.Convert(
                sequence.Group,
                new Message(SessionControlProtocol11.SequenceInstr),
                context);

            seqDef.SetBool("Optional", sequence.IsOptional);
            if (!sequence.ImplicitLength)
            {
                Group  lengthGroup = SessionControlProtocol11.SequenceInstr.GetGroup("Length");
                var    lengthDef   = new GroupValue(lengthGroup);
                Scalar length      = sequence.Length;
                var    nameDef     = new GroupValue(lengthGroup.GetGroup("Name"));
                SetNameAndId(length, nameDef);
                lengthDef.SetFieldValue("Name", nameDef);
                seqDef.SetFieldValue("Length", lengthDef);

                if (!length.Operator.Equals(Operator.None))
                {
                    var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator"));
                    operatorDef.SetFieldValue(0, CreateOperator(length));
                    lengthDef.SetFieldValue("Operator", operatorDef);
                }

                if (!length.DefaultValue.IsUndefined)
                {
                    lengthDef.SetFieldValue("InitialValue", length.DefaultValue);
                }
            }

            if (sequence.TypeReference != null && !FastConstants.AnyType.Equals(sequence.TypeReference))
            {
                var typeRef =
                    new GroupValue(
                        (Group)
                        SessionControlProtocol11.TypeRef.GetField(new QName("TypeRef",
                                                                            SessionControlProtocol11.Namespace)));
                SetName(typeRef, sequence.TypeReference);
                seqDef.SetFieldValue("TypeRef", typeRef);
            }

            return(seqDef);
        }
Example #40
0
        public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
        {
            string name     = fieldDef.GetString("Name");
            string ns       = fieldDef.GetString("Ns");
            var    qname    = new QName(name, ns);
            var    fields   = GroupConverter.ParseFieldInstructions(fieldDef, templateRegistry, context);
            bool   optional = fieldDef.GetBool("Optional");
            Scalar length   = null;

            if (fieldDef.IsDefined("Length"))
            {
                var    lengthDef = fieldDef.GetGroup("Length");
                QName  lengthName;
                string id = null;
                if (lengthDef.IsDefined("Name"))
                {
                    var nameDef = lengthDef.GetGroup("Name");
                    lengthName = new QName(nameDef.GetString("Name"), nameDef.GetString("Ns"));
                    if (nameDef.IsDefined("AuxId"))
                    {
                        id = nameDef.GetString("AuxId");
                    }
                }
                else
                {
                    lengthName = Global.CreateImplicitName(qname);
                }
                var operator_Renamed = Operator.NONE;
                if (lengthDef.IsDefined("Operator"))
                {
                    operator_Renamed = GetOperator(lengthDef.GetGroup("Operator").GetGroup(0).GetGroup());
                }
                var initialValue = ScalarValue.UNDEFINED;
                if (lengthDef.IsDefined("InitialValue"))
                {
                    initialValue = (ScalarValue)lengthDef.GetValue("InitialValue");
                }
                length = new Scalar(lengthName, Type.U32, operator_Renamed, initialValue, optional)
                {
                    Id = id
                };
            }

            return(new Sequence(qname, length, fields, optional));
        }
Example #41
0
        public void TestEmptyOperatorWithOptionalField()
        {
            var field = new Scalar("", FASTType.U32, Operator.NONE,
                    ScalarValue.UNDEFINED, true);
            MessageTemplate template = registerTemplate(field);

            var message = new Message(template);
            message.SetInteger(1, 126);

            //                 --PMAP-- --TID--- ---#1---
            const string encoding = "11000000 11110001 11111111";

            encodeAndAssertEquals(encoding, message);

            GroupValue readMessage = decoder.ReadMessage();

            Assert.AreEqual(message, readMessage);
        }
 public static GroupValue CreateOperator(Scalar scalar)
 {
     MessageTemplate operatorTemplate;
     if (!OperatorTemplateMap.TryGetValue(scalar.Operator, out operatorTemplate))
         return null;
     GroupValue operatorMessage = new Message(operatorTemplate);
     if (!scalar.Dictionary.Equals(DictionaryFields.Global))
         operatorMessage.SetString("Dictionary", scalar.Dictionary);
     if (!scalar.Key.Equals(scalar.QName))
     {
         Group key = operatorTemplate.GetGroup("Key");
         var keyValue = new GroupValue(key);
         keyValue.SetString("Name", scalar.Key.Name);
         keyValue.SetString("Ns", scalar.Key.Namespace);
         operatorMessage.SetFieldValue(key, keyValue);
     }
     return operatorMessage;
 }
 public override Field Convert(GroupValue fieldDef, TemplateRegistry templateRegistry, ConversionContext context)
 {
     var name = new QName(fieldDef.GetString("Name"), fieldDef.GetString("Ns"));
     bool optional = fieldDef.GetBool("Optional");
     var exponentDef = fieldDef.GetGroup("Exponent");
     var exponentOperatorDef = exponentDef.GetGroup("Operator").GetGroup(0);
     var exponentOperator = GetOperator(exponentOperatorDef.GetGroup());
     var exponentDefaultValue = ScalarValue.UNDEFINED;
     if (exponentDef.IsDefined("InitialValue"))
         exponentDefaultValue = new IntegerValue(exponentDef.GetInt("InitialValue"));
     var mantissaDef = fieldDef.GetGroup("Mantissa");
     var mantissaOperatorDef = mantissaDef.GetGroup("Operator").GetGroup(0);
     var mantissaOperator = GetOperator(mantissaOperatorDef.GetGroup());
     var mantissaDefaultValue = ScalarValue.UNDEFINED;
     if (mantissaDef.IsDefined("InitialValue"))
         mantissaDefaultValue = new LongValue(mantissaDef.GetInt("InitialValue"));
     return Util.ComposedDecimal(name, exponentOperator, exponentDefaultValue, mantissaOperator, mantissaDefaultValue, optional);
 }
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            FastType type = _templateTypeMap[fieldDef.Group];
            bool optional = fieldDef.GetBool("Optional");
            IFieldValue retInitialValue;
            ScalarValue initialValue = fieldDef.TryGetValue("InitialValue",out retInitialValue) && retInitialValue!=null
                                           ? (ScalarValue)retInitialValue
                                           : ScalarValue.Undefined;

            string name = fieldDef.GetString("Name");
            IFieldValue rettempNs;
            string tempNs = fieldDef.TryGetValue("Ns", out rettempNs) && rettempNs != null ? rettempNs.ToString() : "";
            var qname = new QName(name, tempNs);

            Scalar scalar;
            IFieldValue retOperator;
            if (fieldDef.TryGetValue("Operator", out retOperator) && retOperator!=null)
            {
                GroupValue operatorGroup = ((GroupValue)retOperator).GetGroup(0);
                Operator operatortemp = GetOperator(operatorGroup.Group);
                scalar = new Scalar(qname, type, operatortemp, initialValue, optional);
                IFieldValue retDictionary;
                if (operatorGroup.TryGetValue("Dictionary", out retDictionary) && retDictionary != null)
                    scalar.Dictionary = retDictionary.ToString();
                IFieldValue retKey;
                if (operatorGroup.TryGetValue("Key", out retKey) && retKey != null)
                {
                    GroupValue retOperatorGroup = (GroupValue) retKey;
                    string keyName = retOperatorGroup.GetString("Name");
                    string ns = retOperatorGroup.GetString("Ns");
                    scalar.Key = new QName(keyName, ns);
                }
            }
            else
            {
                scalar = new Scalar(qname, type, Operator.None, initialValue, optional);
            }
            IFieldValue retAuxId;
            if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId!=null)
            {
                scalar.Id = retAuxId.ToString();
            }
            return scalar;
        }
        public static Field[] ParseFieldInstructions(GroupValue groupDef, ITemplateRegistry registry,
                                                     ConversionContext context)
        {
            SequenceValue instructions = groupDef.GetSequence("Instructions");
            var fields = new Field[instructions.Length];
            for (int i = 0; i < fields.Length; i++)
            {
                GroupValue fieldDef = instructions[i].GetGroup(0);
                IFieldInstructionConverter converter = context.GetConverter(fieldDef.Group);
                if (converter == null)
                    throw new SystemException(
                        string.Format("Encountered unknown group {0} while processing field instructions {1}",
                                      fieldDef.Group, groupDef.Group));

                fields[i] = converter.Convert(fieldDef, registry, context);
            }
            return fields;
        }
 public virtual Field Convert(GroupValue groupValue, TemplateRegistry templateRegistry, ConversionContext context)
 {
     return DynamicTemplateReference.INSTANCE;
 }
 private static GroupValue CreateComponent(Scalar component, string componentName)
 {
     Group componentGroup = SessionControlProtocol11.CompDecimalInstr.GetGroup(componentName);
     var componentDef = new GroupValue(componentGroup);
     GroupValue componentOperatorDef = CreateOperator(component);
     var componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator"));
     componentDef.SetFieldValue("Operator", componentOperatorGroup);
     componentOperatorGroup.SetFieldValue(0, componentOperatorDef);
     if (!component.DefaultValue.IsUndefined)
         componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt());
     return componentDef;
 }
Example #48
0
        static void switchON(string _taskguid, string _dtable)
        {
            string _TaskID = string.Empty;
            string _channelGroup = string.Empty;
            string _PillarID = string.Empty;
            string _TaskSubject = string.Empty;
            DateTime _TaskStart = DateTime.Now;
            DateTime _TaskEnd = DateTime.Now;

            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
            {
                string sqlSelect = "SELECT [ID],[ChannelGroup],[PillarID],[Subject],[Start],[End] FROM [db_knx].[dbo].[Scheduler] WHERE [TaskGUID] LIKE N'" + _taskguid + "' AND [Start] = (SELECT MIN([Start]) FROM [db_knx].[dbo].[Scheduler] WHERE [TaskGUID] LIKE N'"+_taskguid+"');";

                conn.Open();

                using (SqlCommand sqlComm = new SqlCommand(sqlSelect, conn))
                {
                    SqlDataReader _dt = sqlComm.ExecuteReader();

                    while (_dt.Read())
                    {
                        _TaskID = _dt["ID"].ToString();
                        _channelGroup = _dt["ChannelGroup"].ToString();
                        _PillarID = _dt["PillarID"].ToString();
                        _TaskSubject = _dt["Subject"].ToString();
                        _TaskStart = (DateTime)_dt["Start"];
                        _TaskEnd = (DateTime)_dt["End"];
                    }

                    _dt.Close();
                }

                conn.Close();
            }

            string[] ChannelsArray = _channelGroup.Split(',');
            for(var i=0; i<ChannelsArray.Count(); i++)
            {
                while(ChannelsArray[i].IndexOf(" ") > -1)
                {
                    ChannelsArray[i] = ChannelsArray[i].Replace(" ", "");
                }
            }

            string AddressIP = string.Empty; string AddressPort = string.Empty; bool AddressNat = false;
            string TypeKNX = string.Empty; string MeterSerial = string.Empty;
            List<string> GroupAddressMeter = new List<string>(); List<string> GroupAddressON = new List<string>();

            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
            {
                string sqlSelect = "SELECT [AddressIP],[AddressPort],[AddressNat],[TypeKNX],[MeterSerialNo] FROM [db_knx].[dbo].[Pillars] WHERE [ID] = " + _PillarID + ";";

                conn.Open();

                using (SqlCommand sqlComm = new SqlCommand(sqlSelect, conn))
                {
                    SqlDataReader _dt = sqlComm.ExecuteReader();

                    while (_dt.Read())
                    {
                        AddressIP = _dt["AddressIP"].ToString();
                        AddressPort = _dt["AddressPort"].ToString();
                        AddressNat = (bool)_dt["AddressNat"];
                        TypeKNX = _dt["TypeKNX"].ToString();
                        MeterSerial = _dt["MeterSerialNo"].ToString();
                    }

                    _dt.Close();
                }

                for (var i = 0; i < ChannelsArray.Count(); i++)
                {
                    sqlSelect = "SELECT [On/Off Address],[MeasureCurrent Address] FROM [db_knx].[dbo].[" + TypeKNX + "_" + MeterSerial + "] WHERE [Departure] = " + ChannelsArray[i] + ";";

                    using (SqlCommand sqlComm = new SqlCommand(sqlSelect, conn))
                    {
                        SqlDataReader _dt = sqlComm.ExecuteReader();

                        while (_dt.Read())
                        {
                            GroupAddressON.Add(_dt["On/Off Address"].ToString());
                            GroupAddressMeter.Add(_dt["MeasureCurrent Address"].ToString());
                        }

                        _dt.Close();
                    }
                }

                conn.Close();
            }

            Ping pingOrder = new Ping();
            for (var i=0; i<4; i++)
            {
                try
                {
                    pingOrder.Send(AddressIP);
                }
                catch (PingException ex)
                {

                }
            }
            pingOrder = null;

            using (Bus _bus = new Bus(new KnxIpTunnelingConnectorParameters(AddressIP, ushort.Parse(AddressPort), AddressNat)))
            {
                try
                {
                    _bus.Connect();

                    for (var i = 0; i < GroupAddressON.Count; i++)
                    {
                        GroupAddress _groupAddress = GroupAddress.Parse(GroupAddressON[i]);
                        GroupValue _groupValue = new GroupValue(true);
                        _bus.WriteValue(_groupAddress, _groupValue, Priority.Low);

                        //GroupAddress _groupAddressMeter = GroupAddress.Parse(GroupAddressMeter[i]);
                        //GroupValue groupValue = _bus.ReadValue(_groupAddressMeter, Priority.Low);

                        //DataPointTranslator _dpt = new DataPointTranslator();
                        //decimal _value = (decimal)_dpt.FromDataPoint("9.001", groupValue.Value);
                        //storeValueToDB(_value, MeterSerial, ChannelsArray[i]);
                    }

                    _bus.Disconnect();
                    _bus.Dispose();
                    updateSchedulerTable(_TaskID, false);
                    updatePillarDeparturesSQL(_PillarID, _channelGroup, true);
                    updateTask(_taskguid, "On");
                    emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, null, null, null);
                }
                catch (ConnectorException ex)
                {
                    updateSchedulerTable(_TaskID, true);
                    updateReportScheduler1(_TaskID, ex.ErrorReason);
                    emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, ex, null, null);
                    if (_bus != null)
                    {
                        _bus.Disconnect();
                        _bus.Dispose();
                    }
                }
                catch (ConnectionException ex)
                {
                    updateSchedulerTable(_TaskID, true);
                    updateReportScheduler2(_TaskID, ex.ErrorReason);
                    emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, null, ex, null);
                    if (_bus != null)
                    {
                        _bus.Disconnect();
                        _bus.Dispose();
                    }
                }
                catch (NoResponseReceivedException ex)
                {
                    updateSchedulerTable(_TaskID, true);
                    updateReportScheduler3(_TaskID, ex.ErrorReason);
                    emailWaring(_TaskID, _TaskSubject, _TaskStart, _TaskEnd, _channelGroup, _PillarID, null, null, ex);
                    if (_bus != null)
                    {
                        _bus.Disconnect();
                        _bus.Dispose();
                    }
                }
                finally
                {
                    if (_bus != null)
                    {
                        _bus.Disconnect();
                        _bus.Dispose();
                    }
                }
            }
        }
        public override GroupValue Convert(Field field, ConversionContext context)
        {
            var sequence = (Sequence) field;
            var seqDef = GroupConverter.Convert(sequence.Group, new Message(SessionControlProtocol_1_1.SEQUENCE_INSTR), context);
            seqDef.SetBool("Optional", sequence.Optional);
            if (!sequence.ImplicitLength)
            {
                var lengthGroup = SessionControlProtocol_1_1.SEQUENCE_INSTR.GetGroup("Length");
                var lengthDef = new GroupValue(lengthGroup);
                var length = sequence.Length;
                var nameDef = new GroupValue(lengthGroup.GetGroup("Name"));
                SetNameAndId(length, nameDef);
                lengthDef.SetFieldValue("Name", nameDef);
                seqDef.SetFieldValue("Length", lengthDef);

                if (!length.Operator.Equals(Operator.NONE))
                {
                    var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator"));
                    operatorDef.SetFieldValue(0, CreateOperator(length));
                    lengthDef.SetFieldValue("Operator", operatorDef);
                }

                if (!length.DefaultValue.Undefined)
                {
                    lengthDef.SetFieldValue("InitialValue", length.DefaultValue);
                }
            }
            return seqDef;
        }
 public abstract Field Convert(GroupValue param1, ITemplateRegistry param2,
                               ConversionContext param3);
        public override GroupValue Convert(Field field, ConversionContext context)
        {
            var sequence = (Sequence) field;
            Message seqDef = GroupConverter.Convert(
                sequence.Group,
                new Message(SessionControlProtocol11.SequenceInstr),
                context);

            seqDef.SetBool("Optional", sequence.IsOptional);
            if (!sequence.ImplicitLength)
            {
                Group lengthGroup = SessionControlProtocol11.SequenceInstr.GetGroup("Length");
                var lengthDef = new GroupValue(lengthGroup);
                Scalar length = sequence.Length;
                var nameDef = new GroupValue(lengthGroup.GetGroup("Name"));
                SetNameAndId(length, nameDef);
                lengthDef.SetFieldValue("Name", nameDef);
                seqDef.SetFieldValue("Length", lengthDef);

                if (!length.Operator.Equals(Operator.None))
                {
                    var operatorDef = new GroupValue(lengthGroup.GetGroup("Operator"));
                    operatorDef.SetFieldValue(0, CreateOperator(length));
                    lengthDef.SetFieldValue("Operator", operatorDef);
                }

                if (!length.DefaultValue.IsUndefined)
                {
                    lengthDef.SetFieldValue("InitialValue", length.DefaultValue);
                }
            }

            if (sequence.TypeReference != null && !FastConstants.AnyType.Equals(sequence.TypeReference))
            {
                var typeRef =
                    new GroupValue(
                        (Group)
                        SessionControlProtocol11.TypeRef.GetField(new QName("TypeRef",
                                                                              SessionControlProtocol11.Namespace)));
                SetName(typeRef, sequence.TypeReference);
                seqDef.SetFieldValue("TypeRef", typeRef);
            }

            return seqDef;
        }
 public static void SetName(GroupValue fieldDef, QName qname)
 {
     fieldDef.SetString("Name", qname.Name);
     fieldDef.SetString("Ns", qname.Namespace);
 }
 private static GroupValue CreateComponent(Scalar component, string componentName)
 {
     var componentGroup = SessionControlProtocol_1_1.COMP_DECIMAL_INSTR.GetGroup(componentName);
     var componentDef = new GroupValue(componentGroup);
     var componentOperatorDef = CreateOperator(component);
     var componentOperatorGroup = new GroupValue(componentGroup.GetGroup("Operator"));
     componentDef.SetFieldValue("Operator", componentOperatorGroup);
     componentOperatorGroup.SetFieldValue(0, componentOperatorDef);
     if (!component.DefaultValue.Undefined)
         componentDef.SetInteger("InitialValue", component.DefaultValue.ToInt());
     return componentDef;
 }
 private void ReadMessageAndAssertEquals(GroupValue msg1)
 {
     GroupValue readMessage = _decoder.ReadMessage();
     Assert.AreEqual(msg1, readMessage);
 }
 public static void SetName(Field field, GroupValue fieldDef)
 {
     QName qname = field.QName;
     SetName(fieldDef, qname);
 }
 public static void SetNameAndId(Field field, GroupValue fieldDef)
 {
     SetName(field, fieldDef);
     if (!field.IsIdNull())
         fieldDef.SetString("AuxId", field.Id);
 }
        public static Message NewAllocInstrctn(String id, int side,
                                               double quantity, double averagePrice, GroupValue instrument,
                                               SequenceValue allocations)
        {
            var allocInstrctn = new Message(AllocationInstruction);
            allocInstrctn.SetFieldValue(1, allocations);
            allocInstrctn.SetFieldValue(2, instrument);
            allocInstrctn.SetFieldValue(3, new StringValue(id));
            allocInstrctn.SetFieldValue(4, new IntegerValue(side));
            allocInstrctn.SetFieldValue(5, new DecimalValue(quantity));
            allocInstrctn.SetFieldValue(6, new DecimalValue(averagePrice));

            return allocInstrctn;
        }
Example #58
0
 public override FieldValue Decode(System.IO.Stream in_Renamed, Group decodeTemplate, Context context, BitVectorReader pmapReader)
 {
     try
     {
         if (!UsesPresenceMapBit() || pmapReader.Read())
         {
             if (context.TraceEnabled)
             {
                 context.DecodeTrace.GroupStart(this);
             }
             var groupValue = new GroupValue(this, DecodeFieldValues(in_Renamed, decodeTemplate, context));
             if (context.TraceEnabled)
                 context.DecodeTrace.GroupEnd();
             return groupValue;
         }
         return null;
     }
     catch (FastException e)
     {
         throw new FastException("Error occurred while decoding " + this, e.Code, e);
     }
 }
Example #59
0
        public override IFieldValue Decode(Stream inStream, Group decodeTemplate, Context context,
                                           BitVectorReader pmapReader)
        {
            try
            {
                if (!UsesPresenceMapBit || pmapReader.Read())
                {
                    if (context.TraceEnabled)
                        context.DecodeTrace.GroupStart(this);

                    var groupValue = new GroupValue(this, DecodeFieldValues(inStream, decodeTemplate, context));

                    if (context.TraceEnabled)
                        context.DecodeTrace.GroupEnd();

                    return groupValue;
                }
                return null;
            }
            catch (DynErrorException e)
            {
                throw new DynErrorException(e, e.Error, "Error occurred while decoding {0}", this);
            }
        }
        public override Field Convert(GroupValue fieldDef, ITemplateRegistry templateRegistry, ConversionContext context)
        {
            string name = fieldDef.GetString("Name");
            string namespacetemp = "";
            IFieldValue retns;

            if (fieldDef.TryGetValue("Ns", out retns) && retns != null)
                namespacetemp = retns.ToString();

            Field[] fields = ParseFieldInstructions(fieldDef, templateRegistry, context);
            bool optional = fieldDef.GetBool("Optional");
            var group = new Group(new QName(name, namespacetemp), fields, optional);

            IFieldValue retTypeRef;
            if (fieldDef.TryGetValue("TypeRef", out retTypeRef) && retTypeRef != null)
            {
                var typeRef = (GroupValue) retTypeRef;
                String typeRefName = typeRef.GetString("Name");
                String typeRefNs = ""; // context.getNamespace();
                IFieldValue retNsTypeRef;
                if (typeRef.TryGetValue("Ns", out retNsTypeRef) && retNsTypeRef != null)
                    typeRefNs = retNsTypeRef.ToString();
                group.TypeReference = new QName(typeRefName, typeRefNs);
            }

            IFieldValue retAuxId;
            if (fieldDef.TryGetValue("AuxId", out retAuxId) && retAuxId != null)
                group.Id = retAuxId.ToString();

            return group;
        }